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 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.
{
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;