aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>1998-04-01 14:26:37 +0000
committerAndrew Cagney <cagney@redhat.com>1998-04-01 14:26:37 +0000
commitd0136bf32ac68edd8d191559e2dea1d0a7ca6555 (patch)
treeafd83ff9d74740dff11fb9bee0f9c6b5d26797da
parent6b0c51c9299c47f0ad37e8a32a4963deed6f9580 (diff)
downloadgdb-d0136bf32ac68edd8d191559e2dea1d0a7ca6555.zip
gdb-d0136bf32ac68edd8d191559e2dea1d0a7ca6555.tar.gz
gdb-d0136bf32ac68edd8d191559e2dea1d0a7ca6555.tar.bz2
Make the SR, FSR and FIR registers 32 bits regardless of the target.
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/config/mips/tm-mips.h18
-rw-r--r--gdb/config/mips/tm-mips64.h6
3 files changed, 23 insertions, 10 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f35812e..f8b5541 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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
diff --git a/gdb/config/mips/tm-mips.h b/gdb/config/mips/tm-mips.h
index 36edcbb..a0bcd39 100644
--- a/gdb/config/mips/tm-mips.h
+++ b/gdb/config/mips/tm-mips.h
@@ -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
diff --git a/gdb/config/mips/tm-mips64.h b/gdb/config/mips/tm-mips64.h
index 4dc35e2..56a8927 100644
--- a/gdb/config/mips/tm-mips64.h
+++ b/gdb/config/mips/tm-mips64.h
@@ -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 */