2004-01-12 Andrew Cagney <cagney@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Wed, 14 Jan 2004 02:51:42 +0000 (02:51 +0000)
committerAndrew Cagney <cagney@redhat.com>
Wed, 14 Jan 2004 02:51:42 +0000 (02:51 +0000)
* 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.

gdb/ChangeLog
gdb/mips-tdep.c

index b161cfe..b9364b2 100644 (file)
@@ -1,3 +1,10 @@
+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.
+
 2004-01-13  Andrew Cagney  <cagney@redhat.com>
 
        * gdbarch.sh (FUNCTION_START_OFFSET): Make zero the default.
index 6b89c0a..a7d4af4 100644 (file)
@@ -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);