aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sim/microblaze/interp.c7
-rw-r--r--sim/microblaze/microblaze.h2
-rw-r--r--sim/microblaze/sim-main.h7
3 files changed, 8 insertions, 8 deletions
diff --git a/sim/microblaze/interp.c b/sim/microblaze/interp.c
index ad0812e..3d7fde0 100644
--- a/sim/microblaze/interp.c
+++ b/sim/microblaze/interp.c
@@ -382,13 +382,13 @@ sim_info (SIM_DESC sd, int verbose)
static sim_cia
microblaze_pc_get (sim_cpu *cpu)
{
- return cpu->microblaze_cpu.spregs[0];
+ return MICROBLAZE_SIM_CPU (cpu)->spregs[0];
}
static void
microblaze_pc_set (sim_cpu *cpu, sim_cia pc)
{
- cpu->microblaze_cpu.spregs[0] = pc;
+ MICROBLAZE_SIM_CPU (cpu)->spregs[0] = pc;
}
static void
@@ -409,7 +409,8 @@ sim_open (SIM_OPEN_KIND kind, host_callback *cb,
SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
/* The cpu data is kept in a separately allocated chunk of memory. */
- if (sim_cpu_alloc_all (sd, 1) != SIM_RC_OK)
+ if (sim_cpu_alloc_all_extra (sd, 1, sizeof (struct microblaze_regset))
+ != SIM_RC_OK)
{
free_state (sd);
return 0;
diff --git a/sim/microblaze/microblaze.h b/sim/microblaze/microblaze.h
index e871b91..6b1d25b 100644
--- a/sim/microblaze/microblaze.h
+++ b/sim/microblaze/microblaze.h
@@ -24,7 +24,7 @@
#define GET_RA ((inst & RA_MASK) >> RA_LOW)
#define GET_RB ((inst & RB_MASK) >> RB_LOW)
-#define CPU cpu->microblaze_cpu
+#define CPU (*MICROBLAZE_SIM_CPU (cpu))
#define RD CPU.regs[rd]
#define RA CPU.regs[ra]
diff --git a/sim/microblaze/sim-main.h b/sim/microblaze/sim-main.h
index 650ba20..df85a6f 100644
--- a/sim/microblaze/sim-main.h
+++ b/sim/microblaze/sim-main.h
@@ -18,6 +18,8 @@
#ifndef MICROBLAZE_SIM_MAIN
#define MICROBLAZE_SIM_MAIN
+#define SIM_HAVE_COMMON_SIM_CPU
+
#include "microblaze.h"
#include "sim-basics.h"
#include "sim-base.h"
@@ -43,9 +45,6 @@
signed_2 imm_high;
};
-struct _sim_cpu {
- struct microblaze_regset microblaze_cpu;
- sim_cpu_base base;
-};
+#define MICROBLAZE_SIM_CPU(cpu) ((struct microblaze_regset *) CPU_ARCH_DATA (cpu))
#endif /* MICROBLAZE_SIM_MAIN */