* compile.c: #include "wait.h".
authorDavid Edelsohn <dje.gcc@gmail.com>
Mon, 11 Mar 1996 19:30:53 +0000 (19:30 +0000)
committerDavid Edelsohn <dje.gcc@gmail.com>
Mon, 11 Mar 1996 19:30:53 +0000 (19:30 +0000)
  (sim_resume, sleep insn): Check program exit status in r0.

sim/h8300/ChangeLog
sim/h8300/compile.c

index 5ac0fb0e2c4337ef33ea1c3327b8aac43ce15d8b..479e4849e678b21898b35cd77d99bda280de2109 100644 (file)
@@ -1,6 +1,7 @@
 Mon Mar 11 09:53:25 1996  Doug Evans  <dje@charmed.cygnus.com>
 
-       * compile.c (sim_resume): Watch for calls to abort.
+       * compile.c: #include "wait.h".
+       (sim_resume, sleep insn): Check program exit status in r0.
        * run.c: #include <signal.h>.
        (main): Abort if program got SIGILL.
 
index bfeb74ca3fe51a91a5783d03f74975c26ae0c4a5..7a2df633c0986de7563070e9c14b01a5efb6c255 100644 (file)
@@ -27,6 +27,7 @@
 #include <stdlib.h>
 #endif
 #include <sys/param.h>
+#include "wait.h"
 #include "ansidecl.h"
 #include "callback.h"
 #include "remote-sim.h"
@@ -1254,7 +1255,10 @@ sim_resume (step, siggnal)
          cpu.exception = SIGILL;
          goto end;
        case O (O_SLEEP, SB):
-         if ((short) cpu.regs[0] == -255)
+         /* The format of r0 is defined by devo/include/wait.h.
+            cpu.exception handling needs some cleanup: we need to make the
+            the handling of normal exits vs signals, etc. more sensible.  */
+         if (! WIFEXITED (cpu.regs[0]) && WIFSIGNALED (cpu.regs[0]))
            cpu.exception = SIGILL;
          else
            cpu.exception = SIGTRAP;