]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
* mt-tdep.c (mt_gdb_regnums): Define
authorMark Mitchell <mark@codesourcery.com>
Wed, 12 Apr 2006 03:22:29 +0000 (03:22 +0000)
committerMark Mitchell <mark@codesourcery.com>
Wed, 12 Apr 2006 03:22:29 +0000 (03:22 +0000)
MT_COPRO_PSEUDOREG_MAC_REGNUM.
(mt_register_name): Use it.
(mt_copro_register_type): Likewise.
(mt_register_type): Likewise.
(mt_pseudo_register_read): Likewise.  Read the MAC register, not
the coprocessor register.
(mt_pseudo_register_write): Likewise.

ChangeLog.csl
gdb/mt-tdep.c

index c610b84dcb06b933b7109d14fd97138c402c11d4..1ace4225fd23777c3017a4c9b83e3e9eabfb25ae 100644 (file)
@@ -1,3 +1,15 @@
+2006-04-11  Mark Mitchell  <mark@codesourcery.com>
+
+       Issue #658
+       * gdb/mt-tdep.c (mt_gdb_regnums): Define
+       MT_COPRO_PSEUDOREG_MAC_REGNUM.
+       (mt_register_name): Use it.
+       (mt_copro_register_type): Likewise.
+       (mt_register_type): Likewise.
+       (mt_pseudo_register_read): Likewise.  Read the MAC register, not
+       the coprocessor register.
+       (mt_pseudo_register_write): Likewise.
+
 2006-04-11  Daniel Jacobowitz  <dan@codesourcery.com>
 
        * bfd/cpu-arm.c (bfd_is_arm_mapping_symbol_name): Accept more
index 99725e73faaefcc6b4b4b23b2b3d21efd1f1f7f5..3b158aee9c118fe55841992c7c7752eb0f86d05a 100644 (file)
@@ -120,7 +120,12 @@ enum mt_gdb_regnums
 
   MT_COPRO_PSEUDOREG_DIM_1 = 2,
   MT_COPRO_PSEUDOREG_DIM_2 = 8,
-  MT_COPRO_PSEUDOREG_REGS = 32,
+  /* The number of pseudo-registers for each coprocessor.  These
+     include the real coprocessor registers, the pseudo-registe for
+     the coprocessor number, and the pseudo-register for the MAC.  */
+  MT_COPRO_PSEUDOREG_REGS = MT_NUM_REGS - MT_NUM_CPU_REGS + 2,
+  /* The register number of the MAC, relative to a given coprocessor.  */
+  MT_COPRO_PSEUDOREG_MAC_REGNUM = MT_COPRO_PSEUDOREG_REGS - 1,
 
   /* Two pseudo-regs ('coprocessor' and 'mac').  */
   MT_NUM_PSEUDO_REGS = 2 + (MT_COPRO_PSEUDOREG_REGS
@@ -171,7 +176,7 @@ mt_register_name (int regnum)
     dim_1 = ((regnum / MT_COPRO_PSEUDOREG_REGS / MT_COPRO_PSEUDOREG_DIM_2)
             %  MT_COPRO_PSEUDOREG_DIM_1);
     
-    if (index == MT_COPRO_PSEUDOREG_REGS - 1)
+    if (index == MT_COPRO_PSEUDOREG_MAC_REGNUM)
       stub = register_names[MT_MAC_PSEUDOREG_REGNUM];
     else if (index > MT_QCHANNEL_REGNUM - MT_CPR0_REGNUM)
       stub = "";
@@ -219,7 +224,7 @@ mt_copro_register_type (struct gdbarch *arch, int regnum)
     default:
       if (regnum >= MT_CPR0_REGNUM && regnum <= MT_CPR15_REGNUM)
        return builtin_type_int16;
-      else if (regnum == MT_CPR0_REGNUM + MT_COPRO_PSEUDOREG_REGS - 1)
+      else if (regnum == MT_CPR0_REGNUM + MT_COPRO_PSEUDOREG_MAC_REGNUM)
        {
          if (gdbarch_bfd_arch_info (arch)->mach == bfd_mach_mrisc2
              || gdbarch_bfd_arch_info (arch)->mach == bfd_mach_ms2)
@@ -269,7 +274,7 @@ mt_register_type (struct gdbarch *arch, int regnum)
        case MT_MAC_PSEUDOREG_REGNUM:
          return mt_copro_register_type (arch,
                                         MT_CPR0_REGNUM
-                                        + MT_COPRO_PSEUDOREG_REGS - 1);
+                                        + MT_COPRO_PSEUDOREG_MAC_REGNUM);
        default:
          if (regnum >= MT_R0_REGNUM && regnum <= MT_R15_REGNUM)
            return builtin_type_int32;
@@ -530,9 +535,9 @@ mt_pseudo_register_read (struct gdbarch *gdbarch,
       {
        unsigned index = mt_select_coprocessor (gdbarch, regcache, regno);
        
-       if (index == MT_COPRO_PSEUDOREG_REGS - 1)
+       if (index == MT_COPRO_PSEUDOREG_MAC_REGNUM)
          mt_pseudo_register_read (gdbarch, regcache,
-                                  MT_COPRO_PSEUDOREG_REGNUM, buf);
+                                  MT_MAC_PSEUDOREG_REGNUM, buf);
        else if (index < MT_NUM_REGS - MT_CPR0_REGNUM)
          regcache_raw_read (regcache, index + MT_CPR0_REGNUM, buf);
       }
@@ -584,9 +589,9 @@ mt_pseudo_register_write (struct gdbarch *gdbarch,
       {
        unsigned index = mt_select_coprocessor (gdbarch, regcache, regno);
        
-       if (index == MT_COPRO_PSEUDOREG_REGS - 1)
+       if (index == MT_COPRO_PSEUDOREG_MAC_REGNUM)
          mt_pseudo_register_write (gdbarch, regcache,
-                                   MT_COPRO_PSEUDOREG_REGNUM, buf);
+                                   MT_MAC_PSEUDOREG_REGNUM, buf);
        else if (index < MT_NUM_REGS - MT_CPR0_REGNUM)
          regcache_raw_write (regcache, index + MT_CPR0_REGNUM, buf);
       }