summaryrefslogtreecommitdiff
path: root/gdb/armnbsd-tdep.c
diff options
context:
space:
mode:
authorRichard Earnshaw <richard.earnshaw@arm.com>2002-02-18 13:35:31 +0000
committerRichard Earnshaw <richard.earnshaw@arm.com>2002-02-18 13:35:31 +0000
commit9df628e0aa21fe96d386e6a634d0af30d9b2efb7 (patch)
tree503736636ec7c2ab30389dada3d698497f8e14d0 /gdb/armnbsd-tdep.c
parent82bd7b59c94c3fbb5ee9186e7c08b350ea073375 (diff)
downloadbinutils-gdb-9df628e0aa21fe96d386e6a634d0af30d9b2efb7.tar.gz
* gdbarch.sh (GET_LONGJMP_TARGET): Add rule.
* gdbarch.c gdbarch.h: Regenerate. * breakpoint.c (create_longjmp_breakpoint): Always compile this function. (breakpoint_reset): Test GET_LONGJMP_TARGET_P(). * infrun.c (GET_LONGJMP_TARGET): Delete default definition. (handle_inferior_event): Test GET_LONGJMP_TARGET_P(). * arm-tdep.h (struct gdbarch_tdep): Add jb_pc and jb_elt_size fields. * arm-tdep.c (arm_get_longjmp_target): New function. (arm_gdbarch_init): Initialize jb_pc to -1. If ABI handler changes this to a positive value register arm_get_longjmp_target as the longjmp handler. * arm-linux-tdep.c (arm_get_longjmp_target): Delete. (arm_linux_init_abi): Set up longjmp description in tdep. * armnbsd-nat.c (get_longjmp_target): Delete. * armnbsd-tdep.c (arm_netbsd_init_abi_common): Set up longjmp description in tdep. * config/arm/tm-nbsd.h (JB_ELEMENT_SIZE, JB_PC): Delete. (get_longjmp_target): Delete declaration. (GET_LONGJMP_TARGET): Delete. * config/arm/tm-linux.h (arm_get_longjmp_target): Delete declaration. (GET_LONGJMP_TARGET): Delete.
Diffstat (limited to 'gdb/armnbsd-tdep.c')
-rw-r--r--gdb/armnbsd-tdep.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/armnbsd-tdep.c b/gdb/armnbsd-tdep.c
index 25c2f164247..291273b1fb8 100644
--- a/gdb/armnbsd-tdep.c
+++ b/gdb/armnbsd-tdep.c
@@ -22,6 +22,10 @@
#include "arm-tdep.h"
+/* Description of the longjmp buffer. */
+#define JB_PC 24
+#define JB_ELEMENT_SIZE INT_REGISTER_RAW_SIZE
+
/* For compatibility with previous implemenations of GDB on arm/NetBSD,
override the default little-endian breakpoint. */
static const char arm_nbsd_arm_le_breakpoint[] = {0x11, 0x00, 0x00, 0xe6};
@@ -35,6 +39,9 @@ arm_netbsd_init_abi_common (struct gdbarch_info info,
tdep->lowest_pc = 0x8000;
tdep->arm_breakpoint = arm_nbsd_arm_le_breakpoint;
tdep->arm_breakpoint_size = sizeof (arm_nbsd_arm_le_breakpoint);
+
+ tdep->jb_pc = JB_PC;
+ tdep->jb_elt_size = JB_ELEMENT_SIZE;
}
static void