mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-21 01:12:32 +08:00
* arm-tdep.c (arm_call_dummy_words): Define.
* arm-linux-tdep.c (arm_linux_call_dummy_words): Define. * config/arm/tm-arm.h (CALL_DUMMY_P): Define. (CALL_DUMMY_WORDS): Define. (arm_call_dummy_words): Declare. * config/arm/tm-linux.h (CALL_DUMMY_WORDS): Define. (arm_linux_call_dummy_words): Declare.
This commit is contained in:
parent
ca09e32bb2
commit
6eb69eab29
@ -1,3 +1,13 @@
|
||||
2002-01-30 Richard Earnshaw <rearnsha@arm.com>
|
||||
|
||||
* arm-tdep.c (arm_call_dummy_words): Define.
|
||||
* arm-linux-tdep.c (arm_linux_call_dummy_words): Define.
|
||||
* config/arm/tm-arm.h (CALL_DUMMY_P): Define.
|
||||
(CALL_DUMMY_WORDS): Define.
|
||||
(arm_call_dummy_words): Declare.
|
||||
* config/arm/tm-linux.h (CALL_DUMMY_WORDS): Define.
|
||||
(arm_linux_call_dummy_words): Declare.
|
||||
|
||||
2002-01-30 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* m68klinux-nat.c: Fix last change to use regcache_collect
|
||||
|
@ -33,6 +33,20 @@
|
||||
#include "symfile.h"
|
||||
#include "objfiles.h"
|
||||
|
||||
/* CALL_DUMMY_WORDS:
|
||||
This sequence of words is the instructions
|
||||
|
||||
mov lr, pc
|
||||
mov pc, r4
|
||||
swi bkpt_swi
|
||||
|
||||
Note this is 12 bytes. */
|
||||
|
||||
LONGEST arm_linux_call_dummy_words[] =
|
||||
{
|
||||
0xe1a0e00f, 0xe1a0f004, 0xef9f001
|
||||
};
|
||||
|
||||
#ifdef GET_LONGJMP_TARGET
|
||||
|
||||
/* Figure out where the longjmp will land. We expect that we have
|
||||
|
@ -1249,6 +1249,20 @@ arm_push_dummy_frame (void)
|
||||
write_register (SP_REGNUM, sp);
|
||||
}
|
||||
|
||||
/* CALL_DUMMY_WORDS:
|
||||
This sequence of words is the instructions
|
||||
|
||||
mov lr,pc
|
||||
mov pc,r4
|
||||
illegal
|
||||
|
||||
Note this is 12 bytes. */
|
||||
|
||||
LONGEST arm_call_dummy_words[] =
|
||||
{
|
||||
0xe1a0e00f, 0xe1a0f004, 0xe7ffdefe
|
||||
};
|
||||
|
||||
/* Fix up the call dummy, based on whether the processor is currently
|
||||
in Thumb or ARM mode, and whether the target function is Thumb or
|
||||
ARM. There are three different situations requiring three
|
||||
|
@ -406,15 +406,13 @@ void arm_pop_frame (void);
|
||||
|
||||
#define POP_FRAME arm_pop_frame ()
|
||||
|
||||
/* This sequence of words is the instructions
|
||||
#define CALL_DUMMY_P (1)
|
||||
|
||||
mov lr,pc
|
||||
mov pc,r4
|
||||
illegal
|
||||
#define CALL_DUMMY_WORDS arm_call_dummy_words
|
||||
extern LONGEST arm_call_dummy_words[];
|
||||
|
||||
Note this is 12 bytes. */
|
||||
#define SIZEOF_CALL_DUMMY_WORDS (3 * sizeof (LONGEST))
|
||||
|
||||
#define CALL_DUMMY {0xe1a0e00f, 0xe1a0f004, 0xe7ffdefe}
|
||||
#define CALL_DUMMY_START_OFFSET 0 /* Start execution at beginning of dummy */
|
||||
|
||||
#define CALL_DUMMY_BREAKPOINT_OFFSET arm_call_dummy_breakpoint_offset()
|
||||
|
@ -44,17 +44,9 @@ extern struct link_map_offsets *arm_linux_svr4_fetch_link_map_offsets (void);
|
||||
#undef ARM_LE_BREAKPOINT
|
||||
#define ARM_LE_BREAKPOINT {0x01,0x00,0x9f,0xef}
|
||||
|
||||
/* This sequence of words used in the CALL_DUMMY are the following
|
||||
instructions:
|
||||
|
||||
mov lr, pc
|
||||
mov pc, r4
|
||||
swi bkpt_swi
|
||||
|
||||
Note this is 12 bytes. */
|
||||
|
||||
#undef CALL_DUMMY
|
||||
#define CALL_DUMMY {0xe1a0e00f, 0xe1a0f004, 0xef9f001}
|
||||
#undef CALL_DUMMY_WORDS
|
||||
#define CALL_DUMMY_WORDS arm_linux_call_dummy_words
|
||||
extern LONGEST arm_linux_call_dummy_words[];
|
||||
|
||||
/* Extract from an array REGBUF containing the (raw) register state
|
||||
a function return value of type TYPE, and copy that, in virtual format,
|
||||
|
Loading…
Reference in New Issue
Block a user