diff options
author | Leandro Lupori <luporl@FreeBSD.org> | 2019-11-01 11:28:43 +0000 |
---|---|---|
committer | Leandro Lupori <luporl@FreeBSD.org> | 2019-11-01 11:28:43 +0000 |
commit | 9d8d1209839f802b4cdaeb794cca2d2b5597a9a5 (patch) | |
tree | 0341b55fdfd9f7bb46547ffc67426394401e33c0 | |
parent | c1903b634c3db81f3283bc508e1feeb3fc8316db (diff) |
Notes
-rw-r--r-- | contrib/gdb/gdb/ppcfbsd-tdep.c | 10 |
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); |