From a74181ee01bd18628a09a4a47064b10b98315e46 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Fri, 31 Jan 2003 20:44:26 +0000 Subject: 2003-01-31 Michael Snyder * libc/sys/h8300hms/_exit.c (_exit, __exit): Slip a magic cookie into registers r1 and r2, so that the simulator can distinguish this trap from a breakpoint trap. Copied from libgloss. --- newlib/libc/sys/h8300hms/_exit.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'newlib/libc') diff --git a/newlib/libc/sys/h8300hms/_exit.c b/newlib/libc/sys/h8300hms/_exit.c index 17d1538cb..701cd8e4a 100644 --- a/newlib/libc/sys/h8300hms/_exit.c +++ b/newlib/libc/sys/h8300hms/_exit.c @@ -10,7 +10,13 @@ void _DEFUN (_exit,(rc), int rc) { - short rc2 = rc << 8; + short rc2; + + rc2 = 0xdead; + asm("mov.w %0,r1" : : "r" (rc2) : "r1"); + rc2 = 0xbeef; + asm("mov.w %0,r2" : : "r" (rc2) : "r2"); + rc2 = rc << 8; asm("mov.w %0,r0\n\tsleep" : : "r" (rc2) : "r0"); } @@ -18,6 +24,12 @@ void _DEFUN (__exit,(rc), int rc) { - short rc2 = rc << 8; + short rc2; + + rc2 = 0xdead; + asm("mov.w %0,r1" : : "r" (rc2) : "r1"); + rc2 = 0xbeef; + asm("mov.w %0,r2" : : "r" (rc2) : "r2"); + rc2 = rc << 8; asm("mov.w %0,r0\n\tsleep" : : "r" (rc2) : "r0"); } -- cgit v1.2.3