[3/4] sim: mcore: switch to common sim-reg [committed]
Commit Message
This is not entirely useful as mcore doesn't (yet) store its register
state in the cpu state, but it does allow for switching to the common
code for these functions.
---
sim/mcore/ChangeLog | 9 +++++++++
sim/mcore/Makefile.in | 1 +
sim/mcore/interp.c | 10 ++++++----
3 files changed, 16 insertions(+), 4 deletions(-)
@@ -1,5 +1,14 @@
2015-11-15 Mike Frysinger <vapier@gentoo.org>
+ * Makefile.in (SIM_OBJS): Add sim-reg.o.
+ * interp.c (sim_store_register): Rename to ...
+ (mcore_reg_store): ... this. Change SIM_DESC to SIM_CPU.
+ (sim_fetch_register): Rename to ...
+ (mcore_reg_fetch): ... this. Change SIM_DESC to SIM_CPU.
+ (sim_open): Call CPU_REG_FETCH and CPU_REG_STORE.
+
+2015-11-15 Mike Frysinger <vapier@gentoo.org>
+
* Makefile.in (SIM_OBJS): Add sim-reason.o and sim-resume.o.
* interp.c (struct mcore_regset): Delete exception.
(util): Add SIM_DESC and SIM_CPU args. Call sim_engine_halt instead
@@ -25,6 +25,7 @@ SIM_OBJS = \
$(SIM_NEW_COMMON_OBJS) \
sim-hload.o \
sim-reason.o \
+ sim-reg.o \
sim-resume.o \
sim-stop.o
@@ -1285,8 +1285,8 @@ sim_engine_run (SIM_DESC sd,
}
}
-int
-sim_store_register (SIM_DESC sd, int rn, unsigned char *memory, int length)
+static int
+mcore_reg_store (SIM_CPU *scpu, int rn, unsigned char *memory, int length)
{
if (rn < NUM_MCORE_REGS && rn >= 0)
{
@@ -1305,8 +1305,8 @@ sim_store_register (SIM_DESC sd, int rn, unsigned char *memory, int length)
return 0;
}
-int
-sim_fetch_register (SIM_DESC sd, int rn, unsigned char *memory, int length)
+static int
+mcore_reg_fetch (SIM_CPU *scpu, int rn, unsigned char *memory, int length)
{
if (rn < NUM_MCORE_REGS && rn >= 0)
{
@@ -1447,6 +1447,8 @@ sim_open (SIM_OPEN_KIND kind, host_callback *cb, struct bfd *abfd, char **argv)
{
SIM_CPU *cpu = STATE_CPU (sd, i);
+ CPU_REG_FETCH (cpu) = mcore_reg_fetch;
+ CPU_REG_STORE (cpu) = mcore_reg_store;
CPU_PC_FETCH (cpu) = mcore_pc_get;
CPU_PC_STORE (cpu) = mcore_pc_set;