diff options
author | Mike Frysinger <vapier@gentoo.org> | 2015-04-16 02:11:12 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2015-04-17 02:44:30 -0400 |
commit | 034685f9ce92cf6dfb6656745365b6a5904a8e84 (patch) | |
tree | c4b591263048d0a9d89af68c9abd8e69786ed2f7 /sim/mips | |
parent | 27b97b40bca216097d16d53fa9408a70cd281479 (diff) | |
download | gdb-034685f9ce92cf6dfb6656745365b6a5904a8e84.zip gdb-034685f9ce92cf6dfb6656745365b6a5904a8e84.tar.gz gdb-034685f9ce92cf6dfb6656745365b6a5904a8e84.tar.bz2 |
sim: replace CIA_{GET,SET} with CPU_PC_{GET,SET}
The CIA_{GET,SET} macros serve the same function as CPU_PC_{GET,SET}
except the latter adds a layer of indirection via the sim state. This
lets models set up different functions at runtime and doesn't reach so
directly into the arch-specific cpu state.
It also doesn't make sense to have two sets of macros that do exactly
the same thing, so lets standardize on the one that gets us more.
Diffstat (limited to 'sim/mips')
-rw-r--r-- | sim/mips/ChangeLog | 10 | ||||
-rw-r--r-- | sim/mips/dv-tx3904cpu.c | 8 | ||||
-rw-r--r-- | sim/mips/interp.c | 4 | ||||
-rw-r--r-- | sim/mips/m16run.c | 6 | ||||
-rw-r--r-- | sim/mips/sim-main.h | 2 |
5 files changed, 19 insertions, 11 deletions
diff --git a/sim/mips/ChangeLog b/sim/mips/ChangeLog index 249e8c5..00f7871 100644 --- a/sim/mips/ChangeLog +++ b/sim/mips/ChangeLog @@ -1,3 +1,13 @@ +2015-04-17 Mike Frysinger <vapier@gentoo.org> + + * dv-tx3904cpu.c (deliver_tx3904cpu_interrupt): Change CIA_GET to + PU_PC_GET. + * interp.c (interrupt_event): Change CIA_GET to CPU_PC_GET. + (sim_create_inferior): Change CIA_SET to CPU_PC_SET. + * m16run.c (sim_engine_run): Change CIA_GET to CPU_PC_GET and + CIA_SET to CPU_PC_SET. + * sim-main.h (CIA_GET, CIA_SET): Delete. + 2015-04-15 Mike Frysinger <vapier@gentoo.org> * Makefile.in (SIM_OBJS): Delete sim-cpu.o. diff --git a/sim/mips/dv-tx3904cpu.c b/sim/mips/dv-tx3904cpu.c index 56b3386..cf9399a 100644 --- a/sim/mips/dv-tx3904cpu.c +++ b/sim/mips/dv-tx3904cpu.c @@ -141,7 +141,7 @@ deliver_tx3904cpu_interrupt (struct hw *me, struct tx3904cpu *controller = hw_data (me); SIM_DESC sd = hw_system (me); sim_cpu *cpu = STATE_CPU (sd, 0); /* NB: fix CPU 0. */ - address_word cia = CIA_GET (cpu); + address_word cia = CPU_PC_GET (cpu); #define CPU cpu #define SD current_state @@ -149,20 +149,20 @@ deliver_tx3904cpu_interrupt (struct hw *me, if (controller->pending_reset) { controller->pending_reset = 0; - HW_TRACE ((me, "reset pc=0x%08lx", (long) CIA_GET (cpu))); + HW_TRACE ((me, "reset pc=0x%08lx", (long) CPU_PC_GET (cpu))); SignalExceptionNMIReset(); } else if (controller->pending_nmi) { controller->pending_nmi = 0; - HW_TRACE ((me, "nmi pc=0x%08lx", (long) CIA_GET (cpu))); + HW_TRACE ((me, "nmi pc=0x%08lx", (long) CPU_PC_GET (cpu))); SignalExceptionNMIReset(); } else if (controller->pending_level) { HW_TRACE ((me, "interrupt level=%d pc=0x%08lx sr=0x%08lx", controller->pending_level, - (long) CIA_GET (cpu), (long) SR)); + (long) CPU_PC_GET (cpu), (long) SR)); /* Clear CAUSE register. It may stay this way if the interrupt was cleared with a negative pending_level. */ diff --git a/sim/mips/interp.c b/sim/mips/interp.c index d6136ab..38f2524 100644 --- a/sim/mips/interp.c +++ b/sim/mips/interp.c @@ -311,7 +311,7 @@ void interrupt_event (SIM_DESC sd, void *data) { sim_cpu *cpu = STATE_CPU (sd, 0); /* FIXME */ - address_word cia = CIA_GET (cpu); + address_word cia = CPU_PC_GET (cpu); if (SR & status_IE) { interrupt_pending = 0; @@ -1112,7 +1112,7 @@ sim_create_inferior (SIM_DESC sd, struct bfd *abfd, char **argv, char **env) for (cpu_nr = 0; cpu_nr < sim_engine_nr_cpus (sd); cpu_nr++) { sim_cpu *cpu = STATE_CPU (sd, cpu_nr); - CIA_SET (cpu, (unsigned64) bfd_get_start_address (abfd)); + CPU_PC_SET (cpu, (unsigned64) bfd_get_start_address (abfd)); } } diff --git a/sim/mips/m16run.c b/sim/mips/m16run.c index 0f5fec1..44fb9e4 100644 --- a/sim/mips/m16run.c +++ b/sim/mips/m16run.c @@ -33,7 +33,7 @@ sim_engine_run (SIM_DESC sd, int siggnal) /* ignore */ { sim_cpu *cpu = STATE_CPU (sd, next_cpu_nr); - address_word cia = CIA_GET (cpu); + address_word cia = CPU_PC_GET (cpu); while (1) { @@ -64,9 +64,9 @@ sim_engine_run (SIM_DESC sd, /* process any events */ if (sim_events_tick (sd)) { - CIA_SET (CPU, cia); + CPU_PC_SET (CPU, cia); sim_events_process (sd); - cia = CIA_GET (CPU); + cia = CPU_PC_GET (CPU); } } diff --git a/sim/mips/sim-main.h b/sim/mips/sim-main.h index a044504..7a58bd3 100644 --- a/sim/mips/sim-main.h +++ b/sim/mips/sim-main.h @@ -257,8 +257,6 @@ struct _sim_cpu { /* The following are internal simulator state variables: */ -#define CIA_GET(CPU) ((CPU)->registers[PCIDX] + 0) -#define CIA_SET(CPU,CIA) ((CPU)->registers[PCIDX] = (CIA)) address_word dspc; /* delay-slot PC */ #define DSPC ((CPU)->dspc) |