mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-17 07:53:51 +08:00
* mn10200-tdep.c (mn10200_analyze_prologue): Look for save of "a1"
in the prologue too.
This commit is contained in:
@ -1,5 +1,8 @@
|
||||
Thu Mar 20 20:52:04 1997 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* mn10200-tdep.c (mn10200_analyze_prologue): Look for save of "a1"
|
||||
in the prologue too.
|
||||
|
||||
* remote-sim.c (gdb_os_vprintf_filtered): Fix to work with non-ANSI
|
||||
compilers.
|
||||
(gdb_os_evprintf_filtered): Similarly.
|
||||
|
@ -37,7 +37,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
mov fp,a0
|
||||
mov sp,fp
|
||||
add <size>,sp
|
||||
Register saves for d2, d3, a3 as needed. Saves start
|
||||
Register saves for d2, d3, a1, a2 as needed. Saves start
|
||||
at fp - <size> and work towards higher addresses. Note
|
||||
that the saves are actually done off the stack pointer
|
||||
in the prologue! This makes for smaller code and easier
|
||||
@ -46,7 +46,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
Without frame pointer:
|
||||
add <size>,sp
|
||||
Register saves for d2, d3, a3 as needed. Saves start
|
||||
Register saves for d2, d3, a1, a2 as needed. Saves start
|
||||
at sp and work towards higher addresses.
|
||||
|
||||
|
||||
@ -325,6 +325,7 @@ mn10200_analyze_prologue (fi, pc)
|
||||
|
||||
Search for movx d2,(X,a3) (0xf55eXX)
|
||||
then movx d3,(X,a3) (0xf55fXX)
|
||||
then mov a1,(X,a3) (0x5dXX) No frame pointer case
|
||||
then mov a2,(X,a3) (0x5eXX) No frame pointer case
|
||||
or mov a0,(X,a3) (0x5cXX) Frame pointer case. */
|
||||
|
||||
@ -365,6 +366,23 @@ mn10200_analyze_prologue (fi, pc)
|
||||
if (status != 0)
|
||||
return addr;
|
||||
}
|
||||
if (buf[0] == 0x5d)
|
||||
{
|
||||
if (fi)
|
||||
{
|
||||
status = target_read_memory (addr + 1, buf, 1);
|
||||
if (status != 0)
|
||||
return addr;
|
||||
fi->fsr.regs[5] = (fi->frame + stack_size
|
||||
+ extract_signed_integer (buf, 1));
|
||||
}
|
||||
addr += 2;
|
||||
if (addr >= stop)
|
||||
return addr;
|
||||
status = target_read_memory (addr, buf, 2);
|
||||
if (status != 0)
|
||||
return addr;
|
||||
}
|
||||
if (buf[0] == 0x5e || buf[0] == 0x5c)
|
||||
{
|
||||
if (fi)
|
||||
|
Reference in New Issue
Block a user