Make the SR, FSR and FIR registers 32 bits regardless of the target.
authorAndrew Cagney <cagney@redhat.com>
Wed, 1 Apr 1998 14:26:37 +0000 (14:26 +0000)
committerAndrew Cagney <cagney@redhat.com>
Wed, 1 Apr 1998 14:26:37 +0000 (14:26 +0000)
gdb/ChangeLog
gdb/config/mips/tm-mips.h
gdb/config/mips/tm-mips64.h

index f35812e7cf62cdb15e3a43637e285cfb8614cb35..f8b55411d5242a6c65747a8206aba8574dbd0ee3 100644 (file)
@@ -1,3 +1,12 @@
+Wed Apr  1 23:13:23 1998  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * config/mips/tm-mips.h (REGISTER_VIRTUAL_TYPE): Handle 32 bit SR,
+       FSR and FIR registers.
+       (REGISTER_VIRTUAL_SIZE): Compute using REGISTER_VIRTUAL_TYPE.
+       (REGISTER_RAW_SIZE): Define using REGISTER_VIRTUAL_SIZE.
+
+       * config/mips/tm-mips64.h: Ditto.
+
 Tue Mar 31 21:30:39 1998  Nick Clifton  <nickc@cygnus.com>
 
        * arm-tdep.c (gdb_print_insn_arm): Attach a fake Thumb symbol
index 36edcbb8523bb0edabf0062cd977e4f05a665784..a0bcd39a830eae92a35183902576d0ffd25afbfc 100644 (file)
@@ -262,14 +262,14 @@ extern void mips_do_registers_info PARAMS ((int, int));
 #define REGISTER_BYTE(N) ((N) * MIPS_REGSIZE)
 
 /* Number of bytes of storage in the actual machine representation
-   for register N.  On mips, all regs are the same size.  */
+   for register N. */
 
-#define REGISTER_RAW_SIZE(N) MIPS_REGSIZE
+#define REGISTER_RAW_SIZE(N) REGISTER_VIRTUAL_SIZE(N)
 
 /* Number of bytes of storage in the program's representation
-   for register N.  On mips, all regs are the same size.  */
+   for register N. */
 
-#define REGISTER_VIRTUAL_SIZE(N) MIPS_REGSIZE
+#define REGISTER_VIRTUAL_SIZE(N) TYPE_LENGTH (REGISTER_VIRTUAL_TYPE (N))
 
 /* Largest value REGISTER_RAW_SIZE can have.  */
 
@@ -279,13 +279,15 @@ extern void mips_do_registers_info PARAMS ((int, int));
 
 #define MAX_REGISTER_VIRTUAL_SIZE 8
 
-/* Return the GDB type object for the "standard" data type
-   of data in register N.  */
+/* Return the GDB type object for the "standard" data type of data in
+   register N.  */
 
 #ifndef REGISTER_VIRTUAL_TYPE
 #define REGISTER_VIRTUAL_TYPE(N) \
-       (((N) >= FP0_REGNUM && (N) < FP0_REGNUM+32)  \
-        ? builtin_type_float : builtin_type_int)
+       (((N) >= FP0_REGNUM && (N) < FP0_REGNUM+32) ? builtin_type_float \
+        : ((N) == 32 /*SR*/) ? builtin_type_uint32 \
+        : ((N) >= 70 && (N) <= 89) ? builtin_type_uint32 \
+        : builtin_type_int)
 #endif
 
 /* All mips targets store doubles in a register pair with the least
index 4dc35e2d816e0bc04549cd538a8b093b01f7fa07..56a8927314dda88b66401f01eb934566b15d43ee 100644 (file)
@@ -25,8 +25,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* define 8 byte register type */
 #define REGISTER_VIRTUAL_TYPE(N) \
-        (((N) >= FP0_REGNUM && (N) < FP0_REGNUM+32)  \
-         ? builtin_type_double : builtin_type_long_long) \
+        (((N) >= FP0_REGNUM && (N) < FP0_REGNUM+32) ? builtin_type_double \
+        : ((N) == 32 /*SR*/) ? builtin_type_uint32 \
+        : ((N) >= 70 && (N) <= 89) ? builtin_type_uint32 \
+        : builtin_type_long_long)
 
 /* Load double words in CALL_DUMMY.  */
 #define OP_LDFPR 065   /* ldc1 */