* arm-tdep.c (arm_call_dummy_words): Define.
authorRichard Earnshaw <richard.earnshaw@arm.com>
Wed, 30 Jan 2002 16:35:51 +0000 (16:35 +0000)
committerRichard Earnshaw <richard.earnshaw@arm.com>
Wed, 30 Jan 2002 16:35:51 +0000 (16:35 +0000)
* 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.

gdb/ChangeLog
gdb/arm-linux-tdep.c
gdb/arm-tdep.c
gdb/config/arm/tm-arm.h
gdb/config/arm/tm-linux.h

index 83b3900f61cb870a814f3ca3a3ec521a6fb084bf..fadb65de5d43e98ff5094c41a8e355316028d3cb 100644 (file)
@@ -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
index 652273021466eff3f1b5c80b51f6e64c0529d7b7..ff896d95c4029f85b7444ab6dd8ee500519d6488 100644 (file)
 #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
index 15ae2d35283a4406ffe3db0af25b23e682a7d963..8fdb1e57e20b08c13bab1b3dcd7f3d505bb417e0 100644 (file)
@@ -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
index 7316f92e3008890e63a5db4ec78d8df0c235f3dd..941af9106e10a824517cf52da9313d9623677318 100644 (file)
@@ -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()
index 51036b663661a708aa650747aa338c1ed87264d4..c815c4849ccc3a27bb17dc3abdb28b6b2777961e 100644 (file)
@@ -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,