mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-25 11:04:18 +08:00
2002-09-17 Andrew Cagney <ac131313@redhat.com>
* arch-utils.c (legacy_virtual_frame_pointer): If FP_REGNUM is invalid, return SP_REGNUM.
This commit is contained in:
parent
009a997142
commit
20bcf01c7a
@ -1,3 +1,8 @@
|
||||
2002-09-17 Andrew Cagney <ac131313@redhat.com>
|
||||
|
||||
* arch-utils.c (legacy_virtual_frame_pointer): If FP_REGNUM is
|
||||
invalid, return SP_REGNUM.
|
||||
|
||||
2002-09-17 Michael Snyder <msnyder@redhat.com>
|
||||
|
||||
* mips-tdep.c (mips_pop_frame): Read saved values of floating
|
||||
|
@ -423,8 +423,19 @@ legacy_virtual_frame_pointer (CORE_ADDR pc,
|
||||
int *frame_regnum,
|
||||
LONGEST *frame_offset)
|
||||
{
|
||||
gdb_assert (FP_REGNUM >= 0);
|
||||
*frame_regnum = FP_REGNUM;
|
||||
/* FIXME: cagney/2002-09-13: This code is used when identifying the
|
||||
frame pointer of the current PC. It is assuming that a single
|
||||
register and an offset can determine this. I think it should
|
||||
instead generate a byte code expression as that would work better
|
||||
with things like Dwarf2's CFI. */
|
||||
if (FP_REGNUM >= 0 && FP_REGNUM < NUM_REGS)
|
||||
*frame_regnum = FP_REGNUM;
|
||||
else if (SP_REGNUM >= 0 && SP_REGNUM < NUM_REGS)
|
||||
*frame_regnum = SP_REGNUM;
|
||||
else
|
||||
/* Should this be an internal error? I guess so, it is reflecting
|
||||
an architectural limitation in the current design. */
|
||||
internal_error (__FILE__, __LINE__, "No virtual frame pointer available");
|
||||
*frame_offset = 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user