From f0861129d52b00fe57beb4fb0efca668faa3939a Mon Sep 17 00:00:00 2001 From: Michael Snyder Date: Wed, 2 Jul 2003 19:04:58 +0000 Subject: [PATCH] 2003-06-24 Michael Snyder * sim-main.h (SIM_WIFSTOPPED, SIM_WSTOPSIG): Define. * compile.c (sim_resume): Use the above to return stop signal. --- sim/h8300/ChangeLog | 5 +++++ sim/h8300/compile.c | 6 ++++++ sim/h8300/sim-main.h | 6 ++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/sim/h8300/ChangeLog b/sim/h8300/ChangeLog index cd81e6eed8b..2112ad92682 100644 --- a/sim/h8300/ChangeLog +++ b/sim/h8300/ChangeLog @@ -1,3 +1,8 @@ +2003-06-24 Michael Snyder + + * sim-main.h (SIM_WIFSTOPPED, SIM_WSTOPSIG): Define. + * compile.c (sim_resume): Use the above to return stop signal. + 2003-06-18 Michael Snyder * compile.c: Replace "Hitachi" with "Renesas". diff --git a/sim/h8300/compile.c b/sim/h8300/compile.c index f416695277d..7635655b3e5 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 6acf901d5de..284a5586d16 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 */ -- 2.39.2