sim: avr: switch to common sim-reg
authorMike Frysinger <vapier@gentoo.org>
Sun, 22 Nov 2015 05:12:59 +0000 (21:12 -0800)
committerMike Frysinger <vapier@gentoo.org>
Sun, 22 Nov 2015 05:53:23 +0000 (00:53 -0500)
This is not entirely useful as avr 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/avr/ChangeLog
sim/avr/interp.c

index 0f52474daa9925059f5fc676370f19a33253f6ff..410cacaaec3d9b92f205663aaffff7faa7c5137a 100644 (file)
@@ -1,3 +1,11 @@
+2015-11-21  Mike Frysinger  <vapier@gentoo.org>
+
+       * interp.c (sim_store_register): Rename to ...
+       (avr_reg_store): ... this.  Adjust signature.
+       (sim_fetch_register): Rename to ...
+       (avr_reg_fetch): ... this.  Adjust signature.
+       (sim_open): Call CPU_REG_FETCH and CPU_REG_STORE.
+
 2015-11-15  Mike Frysinger  <vapier@gentoo.org>
 
        * Makefile.in (SIM_OBJS): Delete sim-reason.o and sim-stop.o.
index 0b84c3b45726f1779f0dfcb23fac1aeba87e4830..48d219540b77b5143474f5c4d082d9f796000083 100644 (file)
@@ -1604,8 +1604,8 @@ sim_read (SIM_DESC sd, SIM_ADDR addr, unsigned char *buffer, int size)
     }
 }
 
-int
-sim_store_register (SIM_DESC sd, int rn, unsigned char *memory, int length)
+static int
+avr_reg_store (SIM_CPU *cpu, int rn, unsigned char *memory, int length)
 {
   if (rn < 32 && length == 1)
     {
@@ -1633,8 +1633,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
+avr_reg_fetch (SIM_CPU *cpu, int rn, unsigned char *memory, int length)
 {
   if (rn < 32 && length == 1)
     {
@@ -1747,6 +1747,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) = avr_reg_fetch;
+      CPU_REG_STORE (cpu) = avr_reg_store;
       CPU_PC_FETCH (cpu) = avr_pc_get;
       CPU_PC_STORE (cpu) = avr_pc_set;
     }