summaryrefslogtreecommitdiff
path: root/sim/mips
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-04-16 02:11:12 -0400
committerMike Frysinger <vapier@gentoo.org>2015-04-17 02:44:30 -0400
commit034685f9ce92cf6dfb6656745365b6a5904a8e84 (patch)
treec4b591263048d0a9d89af68c9abd8e69786ed2f7 /sim/mips
parent27b97b40bca216097d16d53fa9408a70cd281479 (diff)
downloadbinutils-gdb-034685f9ce92cf6dfb6656745365b6a5904a8e84.tar.gz
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/ChangeLog10
-rw-r--r--sim/mips/dv-tx3904cpu.c8
-rw-r--r--sim/mips/interp.c4
-rw-r--r--sim/mips/m16run.c6
-rw-r--r--sim/mips/sim-main.h2
5 files changed, 19 insertions, 11 deletions
diff --git a/sim/mips/ChangeLog b/sim/mips/ChangeLog
index 249e8c57386..00f7871e05f 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 56b33862a43..cf9399a1d77 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 d6136ab2ca0..38f25247c71 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 0f5fec11ac6..44fb9e4538c 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 a0445040204..7a58bd30f50 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)