aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2004-02-08 21:04:39 +0000
committerAndrew Cagney <cagney@redhat.com>2004-02-08 21:04:39 +0000
commit58dfe9ff598452395a21b5f886ac38eba9b44ebb (patch)
tree9cec53a2881cf1a76946574357902c28cc3519d9
parent1152e35e879dc17287a4a549f397b0a39ae05c9d (diff)
downloadgdb-58dfe9ff598452395a21b5f886ac38eba9b44ebb.zip
gdb-58dfe9ff598452395a21b5f886ac38eba9b44ebb.tar.gz
gdb-58dfe9ff598452395a21b5f886ac38eba9b44ebb.tar.bz2
2004-02-08 Andrew Cagney <cagney@redhat.com>
* mips-tdep.c (mips_unwind_pc): New function. (mips_gdbarch_init): Set mips_unwind_pc.
-rw-r--r--gdb/ChangeLog3
-rw-r--r--gdb/mips-tdep.c8
2 files changed, 11 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index cfddb8a..f61954f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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.
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 28e3dc1..254c4fb 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -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. */