summaryrefslogtreecommitdiff
path: root/gdb/mips-tdep.c
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2004-01-14 02:51:42 +0000
committerAndrew Cagney <cagney@redhat.com>2004-01-14 02:51:42 +0000
commit7f28473b268a2e85512f9c1bb0872db6b488fa89 (patch)
treedb8ead3cccb2cb6329c99222b30c6486e9b2d48b /gdb/mips-tdep.c
parent96c4afcc4cec94e635bf7a0c2a8e81e1a278787d (diff)
downloadgdb-7f28473b268a2e85512f9c1bb0872db6b488fa89.tar.gz
2004-01-12 Andrew Cagney <cagney@redhat.com>
* mips-tdep.c (mips_convert_register_p): Handle both raw and cooked floating-point registers. (mips_gdbarch_init): Set convert_register_p, register_to_value, and value_to_register.
Diffstat (limited to 'gdb/mips-tdep.c')
-rw-r--r--gdb/mips-tdep.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 6b89c0aa6ae..a7d4af445f0 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -652,7 +652,8 @@ mips_convert_register_p (int regnum, struct type *type)
{
return (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG
&& register_size (current_gdbarch, regnum) == 4
- && (regnum) >= mips_regnum (current_gdbarch)->fp0 && (regnum) < mips_regnum (current_gdbarch)->fp0 + 32
+ && (regnum % NUM_REGS) >= mips_regnum (current_gdbarch)->fp0
+ && (regnum % NUM_REGS) < mips_regnum (current_gdbarch)->fp0 + 32
&& TYPE_CODE(type) == TYPE_CODE_FLT
&& TYPE_LENGTH(type) == 8);
}
@@ -6031,6 +6032,10 @@ mips_gdbarch_init (struct gdbarch_info info,
set_gdbarch_frame_align (gdbarch, mips_frame_align);
set_gdbarch_deprecated_save_dummy_frame_tos (gdbarch, generic_save_dummy_frame_tos);
+ set_gdbarch_convert_register_p (gdbarch, mips_convert_register_p);
+ set_gdbarch_register_to_value (gdbarch, mips_register_to_value);
+ set_gdbarch_value_to_register (gdbarch, mips_value_to_register);
+
set_gdbarch_deprecated_frame_chain (gdbarch, mips_frame_chain);
set_gdbarch_frameless_function_invocation (gdbarch,
generic_frameless_function_invocation_not);