aboutsummaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@vmware.com>2003-07-02 19:04:58 +0000
committerMichael Snyder <msnyder@vmware.com>2003-07-02 19:04:58 +0000
commitf0861129d52b00fe57beb4fb0efca668faa3939a (patch)
tree2bac9b6593db78f58f8116a686dd9f2453f83e94 /sim
parentfd13a04acf73b5a59f9212c8a0fac24ddd0d434a (diff)
downloadfsf-binutils-gdb-f0861129d52b00fe57beb4fb0efca668faa3939a.zip
fsf-binutils-gdb-f0861129d52b00fe57beb4fb0efca668faa3939a.tar.gz
fsf-binutils-gdb-f0861129d52b00fe57beb4fb0efca668faa3939a.tar.bz2
2003-06-24 Michael Snyder <msnyder@redhat.com>
* sim-main.h (SIM_WIFSTOPPED, SIM_WSTOPSIG): Define. * compile.c (sim_resume): Use the above to return stop signal.
Diffstat (limited to 'sim')
-rw-r--r--sim/h8300/ChangeLog5
-rw-r--r--sim/h8300/compile.c6
-rw-r--r--sim/h8300/sim-main.h6
3 files changed, 15 insertions, 2 deletions
diff --git a/sim/h8300/ChangeLog b/sim/h8300/ChangeLog
index cd81e6e..2112ad9 100644
--- a/sim/h8300/ChangeLog
+++ b/sim/h8300/ChangeLog
@@ -1,3 +1,8 @@
+2003-06-24 Michael Snyder <msnyder@redhat.com>
+
+ * sim-main.h (SIM_WIFSTOPPED, SIM_WSTOPSIG): Define.
+ * compile.c (sim_resume): Use the above to return stop signal.
+
2003-06-18 Michael Snyder <msnyder@redhat.com>
* compile.c: Replace "Hitachi" with "Renesas".
diff --git a/sim/h8300/compile.c b/sim/h8300/compile.c
index f416695..7635655 100644
--- a/sim/h8300/compile.c
+++ b/sim/h8300/compile.c
@@ -3575,6 +3575,12 @@ sim_resume (SIM_DESC sd, int step, int siggnal)
sim_engine_set_run_state (sd, sim_exited,
SIM_WEXITSTATUS (h8_get_reg (sd, 0)));
}
+ else if (SIM_WIFSTOPPED (h8_get_reg (sd, 0)))
+ {
+ /* Pass the stop signal up to gdb. */
+ sim_engine_set_run_state (sd, sim_stopped,
+ SIM_WSTOPSIG (h8_get_reg (sd, 0)));
+ }
else
{
/* Treat it as a sigtrap. */
diff --git a/sim/h8300/sim-main.h b/sim/h8300/sim-main.h
index 6acf901..284a558 100644
--- a/sim/h8300/sim-main.h
+++ b/sim/h8300/sim-main.h
@@ -164,7 +164,9 @@ struct sim_state {
/* Local version of macros for decoding exit status.
(included here rather than try to find target version of wait.h)
*/
-#define SIM_WIFEXITED(V) (((V) & 0xff) == 0)
-#define SIM_WEXITSTATUS(V) ((V) >> 8)
+#define SIM_WIFEXITED(V) (((V) & 0xff) == 0)
+#define SIM_WIFSTOPPED(V) (!SIM_WIFEXITED (V))
+#define SIM_WEXITSTATUS(V) (((V) >> 8) & 0xff)
+#define SIM_WSTOPSIG(V) ((V) & 0x7f)
#endif /* SIM_MAIN_H */