aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/mips-tdep.c10
2 files changed, 14 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9ec6c70..b175619 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2007-03-07 Joel Brobecker <brobecker@adacore.com>
+
+ * mips-tdep.c (mips_insn16_frame_cache, mips_insn32_frame_sniffer):
+ Revert the previous change that had some unexpected side-effects
+ on mips32.
+ (mips_insn16_frame_cache, mips_insn32_frame_cache): Use the proper
+ function to get the address of the calling instruction.
+
2007-03-07 Denis Pilat <denis.pilat@st.com>
* tui/tui-hooks.c (tui_selected_frame_level_changed_hook): Replace
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index c8e958a..3a5e49b 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -1640,7 +1640,8 @@ mips_insn16_frame_cache (struct frame_info *next_frame, void **this_cache)
/* Analyze the function prologue. */
{
- const CORE_ADDR pc = frame_pc_unwind (next_frame);
+ const CORE_ADDR pc =
+ frame_unwind_address_in_block (next_frame, NORMAL_FRAME);
CORE_ADDR start_addr;
find_pc_partial_function (pc, NULL, &start_addr, NULL);
@@ -1693,7 +1694,7 @@ static const struct frame_unwind mips_insn16_frame_unwind =
static const struct frame_unwind *
mips_insn16_frame_sniffer (struct frame_info *next_frame)
{
- CORE_ADDR pc = frame_unwind_address_in_block (next_frame, NORMAL_FRAME);
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
if (mips_pc_is_mips16 (pc))
return &mips_insn16_frame_unwind;
return NULL;
@@ -1961,7 +1962,8 @@ mips_insn32_frame_cache (struct frame_info *next_frame, void **this_cache)
/* Analyze the function prologue. */
{
- const CORE_ADDR pc = frame_pc_unwind (next_frame);
+ const CORE_ADDR pc =
+ frame_unwind_address_in_block (next_frame, NORMAL_FRAME);
CORE_ADDR start_addr;
find_pc_partial_function (pc, NULL, &start_addr, NULL);
@@ -2014,7 +2016,7 @@ static const struct frame_unwind mips_insn32_frame_unwind =
static const struct frame_unwind *
mips_insn32_frame_sniffer (struct frame_info *next_frame)
{
- CORE_ADDR pc = frame_unwind_address_in_block (next_frame, NORMAL_FRAME);
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
if (! mips_pc_is_mips16 (pc))
return &mips_insn32_frame_unwind;
return NULL;