* remote-e7000.c: unuse TM_FILE defined macro.
authorYoshinori Sato <ysato@users.sourceforge.jp>
Wed, 16 Feb 2005 03:21:03 +0000 (03:21 +0000)
committerYoshinori Sato <ysato@users.sourceforge.jp>
Wed, 16 Feb 2005 03:21:03 +0000 (03:21 +0000)
(e7000_fetch_registers)
(e7000_store_registers)
(e7000_wait): delete NUM_REALREGS.
* remote-hms.c: move TM_FILE macro.
(CCR_REGNO): move define from tm-h8300.h.

gdb/ChangeLog
gdb/remote-e7000.c
gdb/remote-hms.c

index e1faf827918d3ce5517c9e5e8cf7ae3a10d5049b..6493af46c6a3fcafb306641deac07838963590ad 100644 (file)
@@ -1,3 +1,12 @@
+2005-02-16  Yoshinori Sato  <ysato@users.sourceforge.jp>
+
+       * remote-e7000.c: unuse TM_FILE defined macro.
+       (e7000_fetch_registers) 
+       (e7000_store_registers)
+       (e7000_wait): delete NUM_REALREGS.
+       * remote-hms.c: move TM_FILE macro.
+       (CCR_REGNO): move define from tm-h8300.h.
+       
 2005-02-15  Mark Kettenis  <kettenis@gnu.org>
 
        * amd64-linux-tdep.c: Update copyright year.
index 0848c8cd1f6c8a2246bd62dc7c4dc1d2977f8036..d3b42f42ccdfc0257c1ee544deb565eead3cc3ea 100644 (file)
@@ -893,12 +893,14 @@ e7000_fetch_registers (void)
 {
   int regno;
   char *wanted = NULL;
+  int realregs = 0;
 
   puts_e7000debug ("R\r");
 
   if (TARGET_ARCHITECTURE->arch == bfd_arch_sh)
     {
       wanted = want_sh;
+      realregs = 59;
       switch (TARGET_ARCHITECTURE->mach)
        {
        case bfd_mach_sh3:
@@ -910,6 +912,7 @@ e7000_fetch_registers (void)
   if (TARGET_ARCHITECTURE->arch == bfd_arch_h8300)
     {
       wanted = want_h8300h;
+      realregs = 10;
       switch (TARGET_ARCHITECTURE->mach)
        {
        case bfd_mach_h8300s:
@@ -917,13 +920,14 @@ e7000_fetch_registers (void)
        case bfd_mach_h8300sx:
        case bfd_mach_h8300sxn:
          wanted = want_h8300s;
+         realregs = 11;
        }
     }
 
   fetch_regs_from_dump (gch, wanted);
 
   /* And supply the extra ones the simulator uses */
-  for (regno = NUM_REALREGS; regno < NUM_REGS; regno++)
+  for (regno = realregs; regno < NUM_REGS; regno++)
     {
       int buf = 0;
 
@@ -946,8 +950,18 @@ static void
 e7000_store_registers (void)
 {
   int regno;
+  int realregs = 0;
 
-  for (regno = 0; regno < NUM_REALREGS; regno++)
+  if (TARGET_ARCHITECTURE->arch == bfd_arch_sh)
+    realregs = 59;
+  if (TARGET_ARCHITECTURE->arch == bfd_arch_h8300) {
+    realregs = ((TARGET_ARCHITECTURE->mach == bfd_mach_h8300s ||
+                TARGET_ARCHITECTURE->mach == bfd_mach_h8300sn ||
+                TARGET_ARCHITECTURE->mach == bfd_mach_h8300sx ||
+                TARGET_ARCHITECTURE->mach == bfd_mach_h8300sxn) ? 11 : 10);
+  }
+
+  for (regno = 0; regno < realregs; regno++)
     e7000_store_register (regno);
 
   registers_changed ();
@@ -1998,6 +2012,7 @@ e7000_wait (ptid_t ptid, struct target_waitstatus *status)
   int had_sleep = 0;
   int loop = 1;
   char *wanted_nopc = NULL;
+  int realregs = 0;
 
   /* Then echo chars until PC= string seen */
   gch ();                      /* Drop cr */
@@ -2039,6 +2054,7 @@ e7000_wait (ptid_t ptid, struct target_waitstatus *status)
   if (TARGET_ARCHITECTURE->arch == bfd_arch_sh)
     {
       wanted_nopc = want_nopc_sh;
+      realregs = 59;
       switch (TARGET_ARCHITECTURE->mach)
        {
        case bfd_mach_sh3:
@@ -2050,6 +2066,7 @@ e7000_wait (ptid_t ptid, struct target_waitstatus *status)
   if (TARGET_ARCHITECTURE->arch == bfd_arch_h8300)
     {
       wanted_nopc = want_nopc_h8300h;
+      realregs = 10;
       switch (TARGET_ARCHITECTURE->mach)
        {
        case bfd_mach_h8300s:
@@ -2057,12 +2074,13 @@ e7000_wait (ptid_t ptid, struct target_waitstatus *status)
        case bfd_mach_h8300sx:
        case bfd_mach_h8300sxn:
          wanted_nopc = want_nopc_h8300s;
+         realregs = 11;
        }
     }
   fetch_regs_from_dump (gch, wanted_nopc);
 
   /* And supply the extra ones the simulator uses */
-  for (regno = NUM_REALREGS; regno < NUM_REGS; regno++)
+  for (regno = realregs; regno < NUM_REGS; regno++)
     {
       int buf = 0;
       regcache_raw_supply (current_regcache, regno, (char *) &buf);
index 756748610237efc36a0884ddabb717ce4cd6c0c9..2b2186099a1c9ea536fa2a5281f826bc4c93dbbe 100644 (file)
@@ -28,6 +28,8 @@
 #include "serial.h"
 #include "regcache.h"
 
+#define CCR_REGNUM 8
+
 static void hms_open (char *args, int from_tty);
 static void
 hms_supply_register (char *regname, int regnamelen, char *val, int vallen)