]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
sim: microblaze: invert sim_cpu storage
authorMike Frysinger <vapier@gentoo.org>
Sat, 13 Aug 2016 02:10:49 +0000 (10:10 +0800)
committerMike Frysinger <vapier@gentoo.org>
Thu, 10 Nov 2022 18:44:20 +0000 (01:44 +0700)
sim/microblaze/interp.c
sim/microblaze/microblaze.h
sim/microblaze/sim-main.h

index ad0812ea41d9f1ef8d055bd9d5398b00667da914..3d7fde0af3e37fbe1e7d51a07f3769c947c86230 100644 (file)
@@ -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;
index e871b91af09751598cd732dd6f60bcda42acbe7d..6b1d25bede95dc4f924ddec72b24cb9d70c64fe5 100644 (file)
@@ -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]
index 650ba20e85bb0a1d29add0724fe42a42e4b5a0c1..df85a6f1e23262e428a2f321032037ba6e9cc2be 100644 (file)
@@ -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 */