summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-04-15 01:22:34 -0400
committerMike Frysinger <vapier@gentoo.org>2015-04-15 01:25:32 -0400
commitf95f4ed2c4680fea68399691481b277ece11570e (patch)
tree748d1545cd42a16b83339b64bd02327252079e85
parent0ce398f106dac65c3a1d2f7d254213fa652af089 (diff)
sim: cris/frv/h8300/iq2000/lm32/m32r/sh64: standardize cpu state
This sets up the sim_state structure and the cpu member to match what we do in most other sims, and what the common code suggests. This is a step to unifying on the sim-cpu.o object.
-rw-r--r--sim/cris/ChangeLog5
-rw-r--r--sim/cris/sim-main.h8
-rw-r--r--sim/frv/ChangeLog5
-rw-r--r--sim/frv/sim-main.h8
-rw-r--r--sim/h8300/ChangeLog7
-rw-r--r--sim/h8300/compile.c10
-rw-r--r--sim/h8300/sim-main.h8
-rw-r--r--sim/iq2000/ChangeLog5
-rw-r--r--sim/iq2000/sim-main.h8
-rw-r--r--sim/lm32/ChangeLog5
-rw-r--r--sim/lm32/sim-main.h8
-rw-r--r--sim/m32r/ChangeLog5
-rw-r--r--sim/m32r/sim-main.h8
-rw-r--r--sim/sh64/ChangeLog5
-rw-r--r--sim/sh64/sim-main.h8
15 files changed, 88 insertions, 15 deletions
diff --git a/sim/cris/ChangeLog b/sim/cris/ChangeLog
index b69e20fc63..b1ac59136f 100644
--- a/sim/cris/ChangeLog
+++ b/sim/cris/ChangeLog
@@ -1,3 +1,8 @@
+2015-04-15 Mike Frysinger <vapier@gentoo.org>
+
+ * sim-main.h (struct sim_state): Change cpu to an array of pointers.
+ (STATE_CPU): Handle WITH_SMP.
+
2015-04-13 Mike Frysinger <vapier@gentoo.org>
* configure: Regenerate.
diff --git a/sim/cris/sim-main.h b/sim/cris/sim-main.h
index 18c536ff69..5ae292e998 100644
--- a/sim/cris/sim-main.h
+++ b/sim/cris/sim-main.h
@@ -225,8 +225,12 @@ struct _sim_cpu {
/* The sim_state struct. */
struct sim_state {
- sim_cpu *cpu;
-#define STATE_CPU(sd, n) (/*&*/ (sd)->cpu)
+ sim_cpu *cpu[MAX_NR_PROCESSORS];
+#if (WITH_SMP)
+#define STATE_CPU(sd,n) ((sd)->cpu[n])
+#else
+#define STATE_CPU(sd,n) ((sd)->cpu[0])
+#endif
CGEN_STATE cgen_state;
diff --git a/sim/frv/ChangeLog b/sim/frv/ChangeLog
index 9580c5649c..8e7e995b4b 100644
--- a/sim/frv/ChangeLog
+++ b/sim/frv/ChangeLog
@@ -1,3 +1,8 @@
+2015-04-15 Mike Frysinger <vapier@gentoo.org>
+
+ * sim-main.h (struct sim_state): Change cpu to an array of pointers.
+ (STATE_CPU): Handle WITH_SMP.
+
2015-04-13 Mike Frysinger <vapier@gentoo.org>
* configure: Regenerate.
diff --git a/sim/frv/sim-main.h b/sim/frv/sim-main.h
index 7528f6acea..e7dc1a2d91 100644
--- a/sim/frv/sim-main.h
+++ b/sim/frv/sim-main.h
@@ -118,8 +118,12 @@ struct _sim_cpu {
/* The sim_state struct. */
struct sim_state {
- sim_cpu *cpu;
-#define STATE_CPU(sd, n) (/*&*/ (sd)->cpu)
+ sim_cpu *cpu[MAX_NR_PROCESSORS];
+#if (WITH_SMP)
+#define STATE_CPU(sd,n) ((sd)->cpu[n])
+#else
+#define STATE_CPU(sd,n) ((sd)->cpu[0])
+#endif
CGEN_STATE cgen_state;
diff --git a/sim/h8300/ChangeLog b/sim/h8300/ChangeLog
index 215a182fbc..1740b3db50 100644
--- a/sim/h8300/ChangeLog
+++ b/sim/h8300/ChangeLog
@@ -1,3 +1,10 @@
+2015-04-15 Mike Frysinger <vapier@gentoo.org>
+
+ * compile.c: Include sim-options.h.
+ (sim_open): Call sim_cpu_alloc_all instead of sim_cpu_alloc.
+ * sim-main.h (struct sim_state): Change cpu to an array of pointers.
+ (STATE_CPU): Handle WITH_SMP.
+
2015-04-13 Mike Frysinger <vapier@gentoo.org>
* configure: Regenerate.
diff --git a/sim/h8300/compile.c b/sim/h8300/compile.c
index 2574168e33..e14c3ab625 100644
--- a/sim/h8300/compile.c
+++ b/sim/h8300/compile.c
@@ -34,6 +34,7 @@
#include "gdb/sim-h8300.h"
#include "sys/stat.h"
#include "sys/types.h"
+#include "sim-options.h"
#ifndef SIGTRAP
# define SIGTRAP 5
@@ -4886,7 +4887,14 @@ sim_open (SIM_OPEN_KIND kind,
sim_cpu *cpu;
sd = sim_state_alloc (kind, callback);
- sd->cpu = sim_cpu_alloc (sd, 0);
+
+ /* The cpu data is kept in a separately allocated chunk of memory. */
+ if (sim_cpu_alloc_all (sd, 1, /*cgen_cpu_max_extra_bytes ()*/0) != SIM_RC_OK)
+ {
+ free_state (sd);
+ return 0;
+ }
+
cpu = STATE_CPU (sd, 0);
SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
sim_state_initialize (sd, cpu);
diff --git a/sim/h8300/sim-main.h b/sim/h8300/sim-main.h
index 964388ac56..7126fa35c0 100644
--- a/sim/h8300/sim-main.h
+++ b/sim/h8300/sim-main.h
@@ -138,7 +138,7 @@ struct _sim_cpu {
/* The sim_state struct. */
struct sim_state {
- struct _sim_cpu *cpu;
+ sim_cpu *cpu[MAX_NR_PROCESSORS];
unsigned int sim_cache_size;
decoded_inst *sim_cache;
unsigned short *cache_idx;
@@ -155,7 +155,11 @@ struct sim_state {
#define CIA_GET(CPU) (cpu_get_pc (CPU))
#define CIA_SET(CPU, VAL) (cpu_set_pc ((CPU), (VAL)))
-#define STATE_CPU(SD, N) ((SD)->cpu) /* Single Processor. */
+#if (WITH_SMP)
+#define STATE_CPU(sd,n) ((sd)->cpu[n])
+#else
+#define STATE_CPU(sd,n) ((sd)->cpu[0])
+#endif
#define cpu_set_pc(CPU, VAL) (((CPU)->pc) = (VAL))
#define cpu_get_pc(CPU) (((CPU)->pc))
diff --git a/sim/iq2000/ChangeLog b/sim/iq2000/ChangeLog
index 9da17e5908..b590cb043a 100644
--- a/sim/iq2000/ChangeLog
+++ b/sim/iq2000/ChangeLog
@@ -1,3 +1,8 @@
+2015-04-15 Mike Frysinger <vapier@gentoo.org>
+
+ * sim-main.h (struct sim_state): Change cpu to an array of pointers.
+ (STATE_CPU): Handle WITH_SMP.
+
2015-04-13 Mike Frysinger <vapier@gentoo.org>
* configure: Regenerate.
diff --git a/sim/iq2000/sim-main.h b/sim/iq2000/sim-main.h
index d6cb7825e1..623c0a6e57 100644
--- a/sim/iq2000/sim-main.h
+++ b/sim/iq2000/sim-main.h
@@ -57,8 +57,12 @@ struct _sim_cpu {
/* The sim_state struct. */
struct sim_state {
- sim_cpu *cpu;
-#define STATE_CPU(sd, n) (/*&*/ (sd)->cpu)
+ sim_cpu *cpu[MAX_NR_PROCESSORS];
+#if (WITH_SMP)
+#define STATE_CPU(sd,n) ((sd)->cpu[n])
+#else
+#define STATE_CPU(sd,n) ((sd)->cpu[0])
+#endif
CGEN_STATE cgen_state;
diff --git a/sim/lm32/ChangeLog b/sim/lm32/ChangeLog
index fdb204bb05..94a1ccddbf 100644
--- a/sim/lm32/ChangeLog
+++ b/sim/lm32/ChangeLog
@@ -1,3 +1,8 @@
+2015-04-15 Mike Frysinger <vapier@gentoo.org>
+
+ * sim-main.h (struct sim_state): Change cpu to an array of pointers.
+ (STATE_CPU): Handle WITH_SMP.
+
2015-04-13 Mike Frysinger <vapier@gentoo.org>
* configure: Regenerate.
diff --git a/sim/lm32/sim-main.h b/sim/lm32/sim-main.h
index a4e4423737..d98560753d 100644
--- a/sim/lm32/sim-main.h
+++ b/sim/lm32/sim-main.h
@@ -83,8 +83,12 @@ struct _sim_cpu
struct sim_state
{
- sim_cpu *cpu;
-#define STATE_CPU(sd, n) (/*&*/ (sd)->cpu)
+ sim_cpu *cpu[MAX_NR_PROCESSORS];
+#if (WITH_SMP)
+#define STATE_CPU(sd,n) ((sd)->cpu[n])
+#else
+#define STATE_CPU(sd,n) ((sd)->cpu[0])
+#endif
CGEN_STATE cgen_state;
diff --git a/sim/m32r/ChangeLog b/sim/m32r/ChangeLog
index 2dcd3a0787..c8a285cfea 100644
--- a/sim/m32r/ChangeLog
+++ b/sim/m32r/ChangeLog
@@ -1,3 +1,8 @@
+2015-04-15 Mike Frysinger <vapier@gentoo.org>
+
+ * sim-main.h (struct sim_state): Change cpu to an array of pointers.
+ (STATE_CPU): Handle WITH_SMP.
+
2015-04-13 Mike Frysinger <vapier@gentoo.org>
* configure: Regenerate.
diff --git a/sim/m32r/sim-main.h b/sim/m32r/sim-main.h
index 2cbb40b99b..96c1ec1747 100644
--- a/sim/m32r/sim-main.h
+++ b/sim/m32r/sim-main.h
@@ -68,8 +68,12 @@ struct _sim_cpu {
/* The sim_state struct. */
struct sim_state {
- sim_cpu *cpu;
-#define STATE_CPU(sd, n) (/*&*/ (sd)->cpu)
+ sim_cpu *cpu[MAX_NR_PROCESSORS];
+#if (WITH_SMP)
+#define STATE_CPU(sd,n) ((sd)->cpu[n])
+#else
+#define STATE_CPU(sd,n) ((sd)->cpu[0])
+#endif
CGEN_STATE cgen_state;
diff --git a/sim/sh64/ChangeLog b/sim/sh64/ChangeLog
index 574fbb1088..5bbc7a3f51 100644
--- a/sim/sh64/ChangeLog
+++ b/sim/sh64/ChangeLog
@@ -1,3 +1,8 @@
+2015-04-15 Mike Frysinger <vapier@gentoo.org>
+
+ * sim-main.h (struct sim_state): Change cpu to an array of pointers.
+ (STATE_CPU): Handle WITH_SMP.
+
2015-04-13 Mike Frysinger <vapier@gentoo.org>
* configure: Regenerate.
diff --git a/sim/sh64/sim-main.h b/sim/sh64/sim-main.h
index e7cbe99217..5ae4309916 100644
--- a/sim/sh64/sim-main.h
+++ b/sim/sh64/sim-main.h
@@ -53,8 +53,12 @@ struct _sim_cpu {
/* The sim_state struct. */
struct sim_state {
- sim_cpu *cpu;
-#define STATE_CPU(sd, n) (/*&*/ (sd)->cpu)
+ sim_cpu *cpu[MAX_NR_PROCESSORS];
+#if (WITH_SMP)
+#define STATE_CPU(sd,n) ((sd)->cpu[n])
+#else
+#define STATE_CPU(sd,n) ((sd)->cpu[0])
+#endif
CGEN_STATE cgen_state;