Add "acc" register. Revise register order and names.
authorKevin Buettner <kevinb@redhat.com>
Thu, 24 Jun 2010 20:38:05 +0000 (20:38 +0000)
committerKevin Buettner <kevinb@redhat.com>
Thu, 24 Jun 2010 20:38:05 +0000 (20:38 +0000)
gdb/ChangeLog
gdb/rx-tdep.c
include/gdb/ChangeLog
include/gdb/sim-rx.h
sim/rx/ChangeLog
sim/rx/gdb-if.c

index d3f057e08b145ae88ca15f4fb692aaca1fa68816..c94b08cc04c9eb317cd2ff7946c54f33d36704c5 100644 (file)
@@ -1,3 +1,12 @@
+2010-06-24  Kevin Buettner  <kevinb@redhat.com>
+
+       * rx-tdep.c (RX_ACC_REGNUM): Define.
+       (RX_NUM_REGS): Redefine to 26.
+       (rx_register_name): Add register "acc".  Change order of several
+       registers.  Change name of "vct" register to "fintv" to match RX
+       documentation.
+       (rx_register_type): Add case for RX_ACC_REGNUM.
+
 2010-06-24  Tom Tromey  <tromey@redhat.com>
 
        * psymtab.c (lookup_partial_symbol): Mark definition as static.
index 6506de93138468590bb3b24d4d994705a4efbd6c..de9eec634829068d77987031569d4e3c6ba2af68 100644 (file)
@@ -46,7 +46,8 @@ enum
   RX_FP_REGNUM = 6,
   RX_R15_REGNUM = 15,
   RX_PC_REGNUM = 19,
-  RX_NUM_REGS = 25
+  RX_ACC_REGNUM = 25,
+  RX_NUM_REGS = 26
 };
 
 /* Architecture specific data.  */
@@ -111,15 +112,16 @@ rx_register_name (struct gdbarch *gdbarch, int regnr)
     "r13",
     "r14",
     "r15",
-    "isp",
     "usp",
-    "intb",
-    "pc",
+    "isp",
     "psw",
-    "bpc",
+    "pc",
+    "intb",
     "bpsw",
-    "vct",
-    "fpsw"
+    "bpc",
+    "fintv",
+    "fpsw",
+    "acc"
   };
 
   return reg_names[regnr];
@@ -131,6 +133,8 @@ rx_register_type (struct gdbarch *gdbarch, int reg_nr)
 {
   if (reg_nr == RX_PC_REGNUM)
     return builtin_type (gdbarch)->builtin_func_ptr;
+  else if (reg_nr == RX_ACC_REGNUM)
+    return builtin_type (gdbarch)->builtin_unsigned_long_long;
   else
     return builtin_type (gdbarch)->builtin_unsigned_long;
 }
index 54815ec7d0efcb3255a5a003a6ed75910bec8111..b4d2c68bdfa8a6ebd7bdd0c55ff89591b4f154c2 100644 (file)
@@ -1,3 +1,8 @@
+2010-06-24  Kevin Buettner  <kevinb@redhat.com>
+
+       * sim-rx.h (sim_rx_regnum): Add sim_rx_acc_regnum.  Adjust
+       register order.
+
 2010-04-13  Mike Frysinger  <vapier@gentoo.org>
 
        * callback.h: Strip PARAMS from prototypes.
index 2a7988bf18ced3ff8fc2ff3a2ce1eef36a90d92a..e3ee1d3a4251c94eda14ae73826b5a966b4bcddd 100644 (file)
@@ -40,15 +40,16 @@ enum sim_rx_regnum
     sim_rx_r13_regnum,
     sim_rx_r14_regnum,
     sim_rx_r15_regnum,
-    sim_rx_isp_regnum,
     sim_rx_usp_regnum,
-    sim_rx_intb_regnum,
-    sim_rx_pc_regnum,
+    sim_rx_isp_regnum,
     sim_rx_ps_regnum,
-    sim_rx_bpc_regnum,
+    sim_rx_pc_regnum,
+    sim_rx_intb_regnum,
     sim_rx_bpsw_regnum,
+    sim_rx_bpc_regnum,
     sim_rx_fintv_regnum,
     sim_rx_fpsw_regnum,
+    sim_rx_acc_regnum,
     sim_rx_num_regs
   };
 
index 73558ce00ba90099dd0956149efc44350997e039..53a071730a51bf772caf5c0c954dff8bac081128 100644 (file)
@@ -1,3 +1,8 @@
+2010-06-24  Kevin Buettner  <kevinb@redhat.com>
+
+       * gdb-if.c (trace.h): Include.
+       (reg_size, sim_fetch_register): Add cases for sim_rx_acc_regnum.
+
 2010-06-07  Nick Clifton  <nickc@redhat.com>
 
        * reg.c (set_oszc): Use unsigned int for the mask.
index 5326bb36844da7a0896213f1c72c22371bd50046..b92c01d624b31b192afc69c3fa995515389ac70a 100644 (file)
@@ -36,6 +36,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include "load.h"
 #include "syscalls.h"
 #include "err.h"
+#include "trace.h"
 
 /* Ideally, we'd wrap up all the minisim's data structures in an
    object and pass that around.  However, neither GDB nor run needs
@@ -403,6 +404,9 @@ reg_size (enum sim_rx_regnum regno)
     case sim_rx_fpsw_regnum:
       size = sizeof (regs.r_fpsw);
       break;
+    case sim_rx_acc_regnum:
+      size = sizeof (regs.r_acc);
+      break;
     default:
       size = 0;
       break;
@@ -503,6 +507,9 @@ sim_fetch_register (SIM_DESC sd, int regno, unsigned char *buf, int length)
     case sim_rx_fpsw_regnum:
       val = get_reg (fpsw);
       break;
+    case sim_rx_acc_regnum:
+      val = ((DI) get_reg (acchi) << 32) | get_reg (acclo);
+      break;
     default:
       fprintf (stderr, "rx minisim: unrecognized register number: %d\n",
               regno);