aboutsummaryrefslogtreecommitdiff
path: root/sim/v850
diff options
context:
space:
mode:
Diffstat (limited to 'sim/v850')
-rw-r--r--sim/v850/ChangeLog5
-rw-r--r--sim/v850/simops.c9
2 files changed, 11 insertions, 3 deletions
diff --git a/sim/v850/ChangeLog b/sim/v850/ChangeLog
index 3bf8dd8..b1545eb 100644
--- a/sim/v850/ChangeLog
+++ b/sim/v850/ChangeLog
@@ -1,3 +1,8 @@
+Tue Dec 31 18:11:13 1996 Michael Meissner <meissner@tiktok.cygnus.com>
+
+ * simops.c (OP_10007E0): Know that kill encodes the signal number
+ via: 0xdead0000 | signal and turn it back into a signal.
+
Fri Dec 27 14:44:06 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* v850_sim.h (SIG_V850_EXIT): Define as -1.
diff --git a/sim/v850/simops.c b/sim/v850/simops.c
index 49fc6e5..e044c46 100644
--- a/sim/v850/simops.c
+++ b/sim/v850/simops.c
@@ -2053,9 +2053,12 @@ OP_10007E0 ()
RETVAL = v850_callback->open (v850_callback, MEMPTR (PARM1), PARM2);
break;
case SYS_exit:
- /* EXIT - caller can look in PARM1 to work out the
- reason */
- State.exception = SIG_V850_EXIT;
+ if ((PARM1 & 0xffff0000) == 0xdead0000 && (PARM1 & 0xffff) != 0)
+ State.exception = PARM1 & 0xffff; /* get signal encoded by kill */
+ else if (PARM1 == 0xdead)
+ State.exception = SIGABRT; /* old libraries */
+ else
+ State.exception = SIG_V850_EXIT; /* PARM1 has exit status encoded */
break;
case SYS_stat: /* added at hmsi */