2004-02-08 Andrew Cagney <cagney@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Sun, 8 Feb 2004 21:04:39 +0000 (21:04 +0000)
committerAndrew Cagney <cagney@redhat.com>
Sun, 8 Feb 2004 21:04:39 +0000 (21:04 +0000)
* mips-tdep.c (mips_unwind_pc): New function.
(mips_gdbarch_init): Set mips_unwind_pc.

gdb/ChangeLog
gdb/mips-tdep.c

index cfddb8a5e8ac12a530602bae323c1d1e84eacb37..f61954fb5425c9ea41e22949dd33d6289e217249 100644 (file)
@@ -1,5 +1,8 @@
 2004-02-08  Andrew Cagney  <cagney@redhat.com>
 
+       * mips-tdep.c (mips_unwind_pc): New function.
+       (mips_gdbarch_init): Set mips_unwind_pc.
+
        * frame.c (legacy_saved_regs_this_id): Return a null frame ID.
        (get_frame_id): Allow the UNKNOWN_FRAME.
        (frame_register_unwind, get_frame_type): Ditto.
index 28e3dc1c7b7fe314f4673f401941f3ec75c9d6b7..254c4fb7f391e0a01e6c7be2668496b89855b594 100644 (file)
@@ -810,6 +810,12 @@ mips_read_pc (ptid_t ptid)
   return read_signed_register_pid (mips_regnum (current_gdbarch)->pc, ptid);
 }
 
+static CORE_ADDR
+mips_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
+{
+  return frame_unwind_register_signed (next_frame, mips_regnum (gdbarch)->pc);
+}
+
 static void
 mips_write_pc (CORE_ADDR pc, ptid_t ptid)
 {
@@ -6030,6 +6036,8 @@ mips_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
      ensure that all 32 bit addresses are sign extended to 64 bits.  */
   set_gdbarch_addr_bits_remove (gdbarch, mips_addr_bits_remove);
 
+  /* Unwind the frame.  */
+  set_gdbarch_unwind_pc (gdbarch, mips_unwind_pc);
 #if 0
 #else
   set_gdbarch_deprecated_target_read_fp (gdbarch, mips_read_sp);       /* Draft FRAME base.  */