diff options
-rw-r--r-- | sim/microblaze/interp.c | 7 | ||||
-rw-r--r-- | sim/microblaze/microblaze.h | 2 | ||||
-rw-r--r-- | sim/microblaze/sim-main.h | 7 |
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 */ |