aboutsummaryrefslogtreecommitdiff
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
commit87783b8b9e34ff41cd588c28bc8bbb77c2c62753 (patch)
treec9762328e9fdf806f01b21fc5b9b0a0ddae88bac /gdb/mips-tdep.c
parent2efda2fa03b2d345d7918ab690138c5460e0f0b3 (diff)
downloadgdb-87783b8b9e34ff41cd588c28bc8bbb77c2c62753.zip
gdb-87783b8b9e34ff41cd588c28bc8bbb77c2c62753.tar.gz
gdb-87783b8b9e34ff41cd588c28bc8bbb77c2c62753.tar.bz2
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 6b89c0a..a7d4af4 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);