diff options
author | Mike Frysinger <vapier@gentoo.org> | 2021-07-07 02:05:06 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2021-11-28 01:01:50 -0500 |
commit | 9af706c919bc6bcc3b0838af0b750258c2351975 (patch) | |
tree | ebdcd1dd1d097b4f4fc80cabd032d94b4337b02c /sim/mn10300 | |
parent | d485f8c7c2412382413419785d4371febd4eaeb1 (diff) | |
download | gdb-9af706c919bc6bcc3b0838af0b750258c2351975.zip gdb-9af706c919bc6bcc3b0838af0b750258c2351975.tar.gz gdb-9af706c919bc6bcc3b0838af0b750258c2351975.tar.bz2 |
sim: mn10300: resolve syscalls dynamically
Avoid use of TARGET_<syscall> defines and rely on the callback layers
to resolve these dynamically so we can support multiple syscall layers
instead of assuming the newlib/libgloss numbers all the time.
Diffstat (limited to 'sim/mn10300')
-rw-r--r-- | sim/mn10300/mn10300.igen | 2 | ||||
-rw-r--r-- | sim/mn10300/mn10300_sim.h | 2 | ||||
-rw-r--r-- | sim/mn10300/op_utils.c | 5 |
3 files changed, 4 insertions, 5 deletions
diff --git a/sim/mn10300/mn10300.igen b/sim/mn10300/mn10300.igen index f67468d..9431c0b 100644 --- a/sim/mn10300/mn10300.igen +++ b/sim/mn10300/mn10300.igen @@ -3947,7 +3947,7 @@ { /* OP_F0C0 (); */ PC = cia; - do_syscall (); + do_syscall (SD); } diff --git a/sim/mn10300/mn10300_sim.h b/sim/mn10300/mn10300_sim.h index f3e43a7..82306e6 100644 --- a/sim/mn10300/mn10300_sim.h +++ b/sim/mn10300/mn10300_sim.h @@ -200,7 +200,7 @@ INLINE_SIM_MAIN (void) genericCmp (unsigned32 leftOpnd, unsigned32 rightOpnd); INLINE_SIM_MAIN (void) genericOr (unsigned32 source, unsigned32 destReg); INLINE_SIM_MAIN (void) genericXor (unsigned32 source, unsigned32 destReg); INLINE_SIM_MAIN (void) genericBtst (unsigned32 leftOpnd, unsigned32 rightOpnd); -INLINE_SIM_MAIN (void) do_syscall (void); +INLINE_SIM_MAIN (void) do_syscall (SIM_DESC sd); void program_interrupt (SIM_DESC sd, sim_cpu *cpu, sim_cia cia, SIM_SIGNAL sig); void mn10300_cpu_exception_trigger(SIM_DESC sd, sim_cpu* cpu, address_word pc); diff --git a/sim/mn10300/op_utils.c b/sim/mn10300/op_utils.c index df95be3..eb4439f 100644 --- a/sim/mn10300/op_utils.c +++ b/sim/mn10300/op_utils.c @@ -4,7 +4,6 @@ #include "sim-main.h" #include "sim-signal.h" #include "sim-syscall.h" -#include "targ-vals.h" #include <time.h> #ifdef HAVE_UNISTD_H @@ -132,7 +131,7 @@ genericBtst(unsigned32 leftOpnd, unsigned32 rightOpnd) /* syscall */ INLINE_SIM_MAIN (void) -do_syscall (void) +do_syscall (SIM_DESC sd) { /* Registers passed to trap 0. */ @@ -150,7 +149,7 @@ do_syscall (void) int save_errno = errno; errno = 0; - if (func == TARGET_SYS_exit) + if (cb_target_to_host_syscall (STATE_CALLBACK (sd), func) == CB_SYS_exit) { /* EXIT - caller can look in parm1 to work out the reason */ sim_engine_halt (simulator, STATE_CPU (simulator, 0), NULL, PC, |