2006-03-30 Randolph Chung <tausq@debian.org>
* hppa-tdep.c (hppa_find_unwind_entry_in_block): New. (hppa_frame_cache): Use new function to find unwind entry. (hppa_frame_this_id): Likewise. (hppa_frame_unwind_sniffer): Likewise.
This commit is contained in:
parent
9dfde49d60
commit
29d375acb5
@ -1,3 +1,10 @@
|
|||||||
|
2006-03-30 Randolph Chung <tausq@debian.org>
|
||||||
|
|
||||||
|
* hppa-tdep.c (hppa_find_unwind_entry_in_block): New.
|
||||||
|
(hppa_frame_cache): Use new function to find unwind entry.
|
||||||
|
(hppa_frame_this_id): Likewise.
|
||||||
|
(hppa_frame_unwind_sniffer): Likewise.
|
||||||
|
|
||||||
2006-03-29 Daniel Jacobowitz <dan@codesourcery.com>
|
2006-03-29 Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
* NEWS: Mention the removal of NLM.
|
* NEWS: Mention the removal of NLM.
|
||||||
|
@ -1782,6 +1782,17 @@ hppa_skip_prologue (CORE_ADDR pc)
|
|||||||
return (skip_prologue_hard_way (pc, 1));
|
return (skip_prologue_hard_way (pc, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return an unwind entry that falls within the frame's code block. */
|
||||||
|
static struct unwind_table_entry *
|
||||||
|
hppa_find_unwind_entry_in_block (struct frame_info *f)
|
||||||
|
{
|
||||||
|
CORE_ADDR pc;
|
||||||
|
|
||||||
|
pc = frame_unwind_address_in_block (f);
|
||||||
|
pc = gdbarch_addr_bits_remove (get_frame_arch (f), pc);
|
||||||
|
return find_unwind_entry (pc);
|
||||||
|
}
|
||||||
|
|
||||||
struct hppa_frame_cache
|
struct hppa_frame_cache
|
||||||
{
|
{
|
||||||
CORE_ADDR base;
|
CORE_ADDR base;
|
||||||
@ -1817,7 +1828,7 @@ hppa_frame_cache (struct frame_info *next_frame, void **this_cache)
|
|||||||
cache->saved_regs = trad_frame_alloc_saved_regs (next_frame);
|
cache->saved_regs = trad_frame_alloc_saved_regs (next_frame);
|
||||||
|
|
||||||
/* Yow! */
|
/* Yow! */
|
||||||
u = find_unwind_entry (frame_pc_unwind (next_frame));
|
u = hppa_find_unwind_entry_in_block (next_frame);
|
||||||
if (!u)
|
if (!u)
|
||||||
{
|
{
|
||||||
if (hppa_debug)
|
if (hppa_debug)
|
||||||
@ -2197,7 +2208,7 @@ hppa_frame_this_id (struct frame_info *next_frame, void **this_cache,
|
|||||||
struct unwind_table_entry *u;
|
struct unwind_table_entry *u;
|
||||||
|
|
||||||
info = hppa_frame_cache (next_frame, this_cache);
|
info = hppa_frame_cache (next_frame, this_cache);
|
||||||
u = find_unwind_entry (pc);
|
u = hppa_find_unwind_entry_in_block (next_frame);
|
||||||
|
|
||||||
(*this_id) = frame_id_build (info->base, u->region_start);
|
(*this_id) = frame_id_build (info->base, u->region_start);
|
||||||
}
|
}
|
||||||
@ -2224,9 +2235,7 @@ static const struct frame_unwind hppa_frame_unwind =
|
|||||||
static const struct frame_unwind *
|
static const struct frame_unwind *
|
||||||
hppa_frame_unwind_sniffer (struct frame_info *next_frame)
|
hppa_frame_unwind_sniffer (struct frame_info *next_frame)
|
||||||
{
|
{
|
||||||
CORE_ADDR pc = frame_pc_unwind (next_frame);
|
if (hppa_find_unwind_entry_in_block (next_frame))
|
||||||
|
|
||||||
if (find_unwind_entry (pc))
|
|
||||||
return &hppa_frame_unwind;
|
return &hppa_frame_unwind;
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user