summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeandro Lupori <luporl@FreeBSD.org>2019-11-01 11:28:43 +0000
committerLeandro Lupori <luporl@FreeBSD.org>2019-11-01 11:28:43 +0000
commit9d8d1209839f802b4cdaeb794cca2d2b5597a9a5 (patch)
tree0341b55fdfd9f7bb46547ffc67426394401e33c0
parentc1903b634c3db81f3283bc508e1feeb3fc8316db (diff)
Notes
-rw-r--r--contrib/gdb/gdb/ppcfbsd-tdep.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/contrib/gdb/gdb/ppcfbsd-tdep.c b/contrib/gdb/gdb/ppcfbsd-tdep.c
index d8352246fa8e4..2a96951f04ebc 100644
--- a/contrib/gdb/gdb/ppcfbsd-tdep.c
+++ b/contrib/gdb/gdb/ppcfbsd-tdep.c
@@ -487,6 +487,12 @@ ppcfbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
return (pc >= 0x7fffef00U) ? 1 : 0;
}
+static int
+ppc64_fbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
+{
+ return (pc >= 0x3fffffffffffe000U && pc <= 0x3fffffffffffefffU) ? 1 : 0;
+}
+
/* NetBSD is confused. It appears that 1.5 was using the correct SVr4
convention but, 1.6 switched to the below broken convention. For
the moment use the broken convention. Ulgh!. */
@@ -518,10 +524,9 @@ ppcfbsd_init_abi (struct gdbarch_info info,
/* FreeBSD doesn't support the 128-bit `long double' from the psABI. */
set_gdbarch_long_double_bit (gdbarch, 64);
- set_gdbarch_pc_in_sigtramp (gdbarch, ppcfbsd_pc_in_sigtramp);
-
if (tdep->wordsize == 4)
{
+ set_gdbarch_pc_in_sigtramp (gdbarch, ppcfbsd_pc_in_sigtramp);
set_gdbarch_return_value (gdbarch, ppcfbsd_return_value);
set_solib_svr4_fetch_link_map_offsets (gdbarch,
svr4_ilp32_fetch_link_map_offsets);
@@ -529,6 +534,7 @@ ppcfbsd_init_abi (struct gdbarch_info info,
if (tdep->wordsize == 8)
{
+ set_gdbarch_pc_in_sigtramp (gdbarch, ppc64_fbsd_pc_in_sigtramp);
set_gdbarch_convert_from_func_ptr_addr
(gdbarch, ppc64_fbsd_convert_from_func_ptr_addr);