sim: mcore: switch to common sim-reg

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.
This commit is contained in:
Mike Frysinger
2015-11-15 00:17:02 -08:00
parent 5809534fe1
commit 9ef4651c49
3 changed files with 16 additions and 4 deletions

View File

@ -1,3 +1,12 @@
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> 2015-11-15 Mike Frysinger <vapier@gentoo.org>
* Makefile.in (SIM_OBJS): Add sim-reason.o and sim-resume.o. * Makefile.in (SIM_OBJS): Add sim-reason.o and sim-resume.o.

View File

@ -25,6 +25,7 @@ SIM_OBJS = \
$(SIM_NEW_COMMON_OBJS) \ $(SIM_NEW_COMMON_OBJS) \
sim-hload.o \ sim-hload.o \
sim-reason.o \ sim-reason.o \
sim-reg.o \
sim-resume.o \ sim-resume.o \
sim-stop.o sim-stop.o

View File

@ -1285,8 +1285,8 @@ sim_engine_run (SIM_DESC sd,
} }
} }
int static int
sim_store_register (SIM_DESC sd, int rn, unsigned char *memory, int length) mcore_reg_store (SIM_CPU *scpu, int rn, unsigned char *memory, int length)
{ {
if (rn < NUM_MCORE_REGS && rn >= 0) 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; return 0;
} }
int static int
sim_fetch_register (SIM_DESC sd, int rn, unsigned char *memory, int length) mcore_reg_fetch (SIM_CPU *scpu, int rn, unsigned char *memory, int length)
{ {
if (rn < NUM_MCORE_REGS && rn >= 0) 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); 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_FETCH (cpu) = mcore_pc_get;
CPU_PC_STORE (cpu) = mcore_pc_set; CPU_PC_STORE (cpu) = mcore_pc_set;