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)
|
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
|
* remote-sim.c (gdb_os_vprintf_filtered): Fix to work with non-ANSI
|
||||||
compilers.
|
compilers.
|
||||||
(gdb_os_evprintf_filtered): Similarly.
|
(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 fp,a0
|
||||||
mov sp,fp
|
mov sp,fp
|
||||||
add <size>,sp
|
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
|
at fp - <size> and work towards higher addresses. Note
|
||||||
that the saves are actually done off the stack pointer
|
that the saves are actually done off the stack pointer
|
||||||
in the prologue! This makes for smaller code and easier
|
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:
|
Without frame pointer:
|
||||||
add <size>,sp
|
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.
|
at sp and work towards higher addresses.
|
||||||
|
|
||||||
|
|
||||||
@ -325,6 +325,7 @@ mn10200_analyze_prologue (fi, pc)
|
|||||||
|
|
||||||
Search for movx d2,(X,a3) (0xf55eXX)
|
Search for movx d2,(X,a3) (0xf55eXX)
|
||||||
then movx d3,(X,a3) (0xf55fXX)
|
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
|
then mov a2,(X,a3) (0x5eXX) No frame pointer case
|
||||||
or mov a0,(X,a3) (0x5cXX) Frame pointer case. */
|
or mov a0,(X,a3) (0x5cXX) Frame pointer case. */
|
||||||
|
|
||||||
@ -365,6 +366,23 @@ mn10200_analyze_prologue (fi, pc)
|
|||||||
if (status != 0)
|
if (status != 0)
|
||||||
return addr;
|
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 (buf[0] == 0x5e || buf[0] == 0x5c)
|
||||||
{
|
{
|
||||||
if (fi)
|
if (fi)
|
||||||
|
Reference in New Issue
Block a user