Deal with kill encoding the signal via the exit status.
authorMichael Meissner <gnu@the-meissners.org>
Tue, 31 Dec 1996 23:18:55 +0000 (23:18 +0000)
committerMichael Meissner <gnu@the-meissners.org>
Tue, 31 Dec 1996 23:18:55 +0000 (23:18 +0000)
sim/v850/ChangeLog
sim/v850/simops.c

index 3bf8dd8121fed1d6afef59c8eff1d8f84ea14de3..b1545eb9b1ec0414e77c32e0ce2e57222f642b4c 100644 (file)
@@ -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.
index 49fc6e58cbbd6ee7bfd9cb543a8062d3148bfa4e..e044c46568ede5861491af9caac6cd679e9d28d1 100644 (file)
@@ -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 */