diff options
author | Joel Brobecker <brobecker@gnat.com> | 2011-06-27 16:35:59 +0000 |
---|---|---|
committer | Joel Brobecker <brobecker@gnat.com> | 2011-06-27 16:35:59 +0000 |
commit | ec55b84eeaaa0e16fb752dd7b2934c1de38ddff5 (patch) | |
tree | c55905ff802d3a1009f72046cfacc5373ea2a3f0 /gdb/sparc64nbsd-tdep.c | |
parent | 225c042e8c58864a404eb3439c5d230614dc6f83 (diff) | |
download | gdb-ec55b84eeaaa0e16fb752dd7b2934c1de38ddff5.tar.gz |
Add support for single register window model on SPARC
2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
* sparc-tdep.h (struct sparc_frame_cache): Add frame_offset,
saved_regs_mask and copied_regs_mask fields.
(sparc_record_save_insn): New prototype.
* sparc-tdep.c (sparc_alloc_frame_cache): Initialize the new fields.
(sparc_record_save_insn): New function.
(sparc_analyze_prologue): Add head comment. Recognize store insns
of call-saved registers. Use OFFSET consistently. Recognize flat
frames and cache their settings.
(sparc32_skip_prologue): Handle flat frames.
(sparc_frame_cache): Add frame_offset to the base address.
(sparc32_frame_cache): Adjust to new frame description.
(sparc32_frame_prev_register): Likewise.
* sparc64-tdep.c (sparc64_frame_prev_register): Likewise.
* sparc-sol2-tdep.c (sparc32_sol2_sigtramp_frame_cache): Likewise.
* sparc64-sol2-tdep.c (sparc64_sol2_sigtramp_frame_cache): Likewise.
* sparcnbsd-tdep.c (sparc32nbsd_sigcontext_frame_cache): Force the
frame by calling sparc_record_save_insn.
* sparc64nbsd-tdep.c (sparc64nbsd_sigcontext_frame_cache): Likewise.
* sparcobsd-tdep.c (sparc32obsd_sigtramp_frame_cache): Likewise.
* sparc64obsd-tdep.c (sparc64obsd_frame_cache): Likewise.
Diffstat (limited to 'gdb/sparc64nbsd-tdep.c')
-rw-r--r-- | gdb/sparc64nbsd-tdep.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gdb/sparc64nbsd-tdep.c b/gdb/sparc64nbsd-tdep.c index 5d6c27c17f4..94e0f3e83c2 100644 --- a/gdb/sparc64nbsd-tdep.c +++ b/gdb/sparc64nbsd-tdep.c @@ -173,7 +173,7 @@ sparc64nbsd_sigcontext_frame_cache (struct frame_info *this_frame, /* Since we couldn't find the frame's function, the cache was initialized under the assumption that we're frameless. */ - cache->frameless_p = 0; + sparc_record_save_insn (cache); addr = get_frame_register_unsigned (this_frame, SPARC_FP_REGNUM); if (addr & 1) addr += BIAS; |