diff options
author | David Edelsohn <dje.gcc@gmail.com> | 1996-03-11 19:30:53 +0000 |
---|---|---|
committer | David Edelsohn <dje.gcc@gmail.com> | 1996-03-11 19:30:53 +0000 |
commit | 4dfb4ffcd1828740bf905bd018533aa84b24f486 (patch) | |
tree | 7fb47154d18f492bcf6154726ead80b7674aece2 /sim/h8300 | |
parent | 1ef980b961f19eb7bf5b18b0417a000d29e4d15e (diff) | |
download | gdb-4dfb4ffcd1828740bf905bd018533aa84b24f486.zip gdb-4dfb4ffcd1828740bf905bd018533aa84b24f486.tar.gz gdb-4dfb4ffcd1828740bf905bd018533aa84b24f486.tar.bz2 |
* compile.c: #include "wait.h".
(sim_resume, sleep insn): Check program exit status in r0.
Diffstat (limited to 'sim/h8300')
-rw-r--r-- | sim/h8300/ChangeLog | 3 | ||||
-rw-r--r-- | sim/h8300/compile.c | 6 |
2 files changed, 7 insertions, 2 deletions
diff --git a/sim/h8300/ChangeLog b/sim/h8300/ChangeLog index 5ac0fb0..479e4849 100644 --- a/sim/h8300/ChangeLog +++ b/sim/h8300/ChangeLog @@ -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. diff --git a/sim/h8300/compile.c b/sim/h8300/compile.c index bfeb74c..7a2df63 100644 --- a/sim/h8300/compile.c +++ b/sim/h8300/compile.c @@ -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; |