From c4c79048fa21fc836bddd5abccc3956ad6b6bcf9 Mon Sep 17 00:00:00 2001 From: Randolph Chung Date: Sat, 19 Nov 2005 12:39:50 +0000 Subject: 2005-11-19 Randolph Chung * hppa-tdep.c (skip_prologue_hard_way): Add one more insn pattern for "std rp,-0x10(sp)". (hppa_frame_cache): Likewise. (hppa_fallback_frame_cache): Likewise. --- gdb/ChangeLog | 7 +++++++ gdb/hppa-tdep.c | 8 +++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 466d017..9deea60 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2005-11-19 Randolph Chung + * hppa-tdep.c (skip_prologue_hard_way): Add one more insn pattern + for "std rp,-0x10(sp)". + (hppa_frame_cache): Likewise. + (hppa_fallback_frame_cache): Likewise. + +2005-11-19 Randolph Chung + * hppa-tdep.c (hppa_frame_cache): Reformat code and enhance debugging. diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c index 6dfb241..94de581 100644 --- a/gdb/hppa-tdep.c +++ b/gdb/hppa-tdep.c @@ -1491,7 +1491,7 @@ restart: /* There are limited ways to store the return pointer into the stack. */ - if (inst == 0x6bc23fd9 || inst == 0x0fc212c1) + if (inst == 0x6bc23fd9 || inst == 0x0fc212c1 || inst == 0x73c23fe1) save_rp = 0; /* These are the only ways we save SP into the stack. At this time @@ -1846,7 +1846,8 @@ hppa_frame_cache (struct frame_info *next_frame, void **this_cache) looking_for_rp = 0; cache->saved_regs[HPPA_RP_REGNUM].addr = -24; } - else if (inst == 0x0fc212c1) /* std rp,-0x10(sr0,sp) */ + else if (inst == 0x0fc212c1 + || inst == 0x73c23fe1) /* std rp,-0x10(sr0,sp) */ { looking_for_rp = 0; cache->saved_regs[HPPA_RP_REGNUM].addr = -16; @@ -2187,7 +2188,8 @@ hppa_fallback_frame_cache (struct frame_info *next_frame, void **this_cache) cache->saved_regs[HPPA_RP_REGNUM].addr = -20; found_rp = 1; } - else if (insn == 0x0fc212c1) /* std rp,-0x10(sr0,sp) */ + else if (insn == 0x0fc212c1 + || insn == 0x73c23fe1) /* std rp,-0x10(sr0,sp) */ { cache->saved_regs[HPPA_RP_REGNUM].addr = -16; found_rp = 1; -- cgit v1.1