summaryrefslogtreecommitdiff
path: root/gdb/sparc64nbsd-tdep.c
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2005-03-09 22:08:13 +0000
committerMark Kettenis <kettenis@gnu.org>2005-03-09 22:08:13 +0000
commitbc092d53a6dfc3fc6ce54a66f492092beda298b9 (patch)
tree87f897dcc15f1b54de80978db005a21db0cc84ed /gdb/sparc64nbsd-tdep.c
parent6a45d0c2f179323d59724ca2f1b44bec67dd0488 (diff)
downloadgdb-bc092d53a6dfc3fc6ce54a66f492092beda298b9.tar.gz
* sparc-tdep.c (sparc_frame_cache): Adjust cached frame base
address for 64-bit code. (sparc_unwind_dummy_id): Likewise. * sparc64-tdep.c (sparc64_frame_prev_register): Adjust for new frame base address convention. (sparc64_push_dummy_call): Likewise. * sparc64nbsd-tdep.c: Update copyright year. (sparc64nbsd_sigcontext_frame_cache): Adjust cached frame base address for 64-bit code. (sparc64nbsd_init_abi): Tweak comment. * sparc64obsd-tdep.c: Update copyright year. (sparc64obsd_frame_cache): Adjust cached frame base address for 64-bit code. (sparc64obsd_init_abi): Tweak comment.
Diffstat (limited to 'gdb/sparc64nbsd-tdep.c')
-rw-r--r--gdb/sparc64nbsd-tdep.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gdb/sparc64nbsd-tdep.c b/gdb/sparc64nbsd-tdep.c
index e02ee3ae6d9..7d4b1933767 100644
--- a/gdb/sparc64nbsd-tdep.c
+++ b/gdb/sparc64nbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for NetBSD/sparc64.
- Copyright 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Based on code contributed by Wasabi Systems, Inc.
This file is part of GDB.
@@ -161,12 +161,14 @@ sparc64nbsd_sigcontext_frame_cache (struct frame_info *next_frame,
initialized under the assumption that we're frameless. */
cache->frameless_p = 0;
addr = frame_unwind_register_unsigned (next_frame, SPARC_FP_REGNUM);
+ if (addr & 1)
+ addr += BIAS;
cache->base = addr;
}
/* We find the appropriate instance of `struct sigcontext' at a
fixed offset in the signal frame. */
- addr = cache->base + BIAS + 128 + 8;
+ addr = cache->base + 128 + 8;
cache->saved_regs = sparc64nbsd_sigcontext_saved_regs (addr, next_frame);
return cache;
@@ -237,13 +239,13 @@ sparc64nbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
sparc64_init_abi (info, gdbarch);
- /* NetBSD/sparc64 has SVR4-style shared libraries... */
+ /* NetBSD/sparc64 has SVR4-style shared libraries. */
set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
set_solib_svr4_fetch_link_map_offsets
(gdbarch, svr4_lp64_fetch_link_map_offsets);
}
-
+
/* Provide a prototype to silence -Wmissing-prototypes. */
void _initialize_sparc64nbsd_tdep (void);