aboutsummaryrefslogtreecommitdiff
path: root/gdb/sparc-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
commit5b2d44a05d619213499bea50fb4044707eaa159d (patch)
tree996f521e6af34a9a58d265be36dca932ba65fa40 /gdb/sparc-tdep.c
parente5a8e242a83d8a2f01a3a3d92e6cf1beb22d3266 (diff)
downloadgdb-5b2d44a05d619213499bea50fb4044707eaa159d.zip
gdb-5b2d44a05d619213499bea50fb4044707eaa159d.tar.gz
gdb-5b2d44a05d619213499bea50fb4044707eaa159d.tar.bz2
* 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/sparc-tdep.c')
-rw-r--r--gdb/sparc-tdep.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c
index 0bcdd48..f9ded35 100644
--- a/gdb/sparc-tdep.c
+++ b/gdb/sparc-tdep.c
@@ -673,6 +673,9 @@ sparc_frame_cache (struct frame_info *next_frame, void **this_cache)
frame_unwind_register_unsigned (next_frame, SPARC_FP_REGNUM);
}
+ if (cache->base & 1)
+ cache->base += BIAS;
+
return cache;
}
@@ -859,6 +862,8 @@ sparc_unwind_dummy_id (struct gdbarch *gdbarch, struct frame_info *next_frame)
CORE_ADDR sp;
sp = frame_unwind_register_unsigned (next_frame, SPARC_SP_REGNUM);
+ if (sp & 1)
+ sp += BIAS;
return frame_id_build (sp, frame_pc_unwind (next_frame));
}