2004-04-02 Joel Brobecker <brobecker@gnat.com>

Committed by Andrew Cagney <cagney@redhat.com>.
        * alpha-tdep.c (alpha_heuristic_frame_unwind_cache): Do not take
        into account an instruction saving a register if we have already
        seen an earlier instruction saving that same register.
This commit is contained in:
Andrew Cagney 2004-04-02 23:01:14 +00:00
parent 08be3abd60
commit d15bfd3a43
2 changed files with 17 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2004-04-02 Joel Brobecker <brobecker@gnat.com>
Committed by Andrew Cagney <cagney@redhat.com>.
* alpha-tdep.c (alpha_heuristic_frame_unwind_cache): Do not take
into account an instruction saving a register if we have already
seen an earlier instruction saving that same register.
2004-04-02 Andrew Cagney <cagney@redhat.com>
* gdbarch.sh (DEPRECATED_INIT_FRAME_PC_FIRST): Delete.

View File

@ -1029,6 +1029,16 @@ alpha_heuristic_frame_unwind_cache (struct frame_info *next_frame,
{
reg = (word & 0x03e00000) >> 21;
/* Ignore this instruction if we have already encountered
an instruction saving the same register earlier in the
function code. The current instruction does not tell
us where the original value upon function entry is saved.
All it says is that the function we are scanning reused
that register for some computation of its own, and is now
saving its result. */
if (info->saved_regs[reg])
continue;
if (reg == 31)
continue;