diff options
author | Andrew Cagney <cagney@redhat.com> | 2003-03-12 15:39:30 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2003-03-12 15:39:30 +0000 |
commit | 7a25a7c1cc419c2f4106843387e0c8be92471523 (patch) | |
tree | e5d344262a55505f1431211070aed2ee1a9667bf /gdb/d10v-tdep.c | |
parent | c4d8feb262fa437232fb144da11b9f449d3b7715 (diff) | |
download | gdb-7a25a7c1cc419c2f4106843387e0c8be92471523.zip gdb-7a25a7c1cc419c2f4106843387e0c8be92471523.tar.gz gdb-7a25a7c1cc419c2f4106843387e0c8be92471523.tar.bz2 |
2003-03-12 Andrew Cagney <cagney@redhat.com>
Eliminate the need for POP_FRAME.
* frame.c (do_frame_unwind_register): New function.
(frame_pop): When no POP_FRAME, pop the frame using register
unwind and a scratch regcache.
(frame_saved_regs_pop): Delete function.
(trad_frame_unwinder): Update.
* d10v-tdep.c (d10v_frame_pop): Delete function.
(d10v_frame_unwind): Update.
* sentinel-frame.c (sentinel_frame_pop): Delete function.
(sentinel_frame_unwinder): Update.
* dummy-frame.c (dummy_frame_pop): Delete function.
(dummy_frame_unwind): Update.
* frame-unwind.h (frame_unwind_pop_ftype): Delete definition.
(struct frame_unwind): Update.
Diffstat (limited to 'gdb/d10v-tdep.c')
-rw-r--r-- | gdb/d10v-tdep.c | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/gdb/d10v-tdep.c b/gdb/d10v-tdep.c index 516cde4..b60ce7f 100644 --- a/gdb/d10v-tdep.c +++ b/gdb/d10v-tdep.c @@ -1572,45 +1572,7 @@ d10v_frame_register_unwind (struct frame_info *frame, } -static void -d10v_frame_pop (struct frame_info *fi, void **unwind_cache, - struct regcache *regcache) -{ - struct d10v_unwind_cache *info = d10v_frame_unwind_cache (fi, unwind_cache); - CORE_ADDR fp; - int regnum; - char raw_buffer[8]; - - fp = get_frame_base (fi); - - /* now update the current registers with the old values */ - for (regnum = A0_REGNUM; regnum < A0_REGNUM + NR_A_REGS; regnum++) - { - frame_unwind_register (fi, regnum, raw_buffer); - regcache_cooked_write (regcache, regnum, raw_buffer); - } - for (regnum = 0; regnum < SP_REGNUM; regnum++) - { - frame_unwind_register (fi, regnum, raw_buffer); - regcache_cooked_write (regcache, regnum, raw_buffer); - } - frame_unwind_register (fi, PSW_REGNUM, raw_buffer); - regcache_cooked_write (regcache, PSW_REGNUM, raw_buffer); - - frame_unwind_register (fi, PC_REGNUM, raw_buffer); - regcache_cooked_write (regcache, PC_REGNUM, raw_buffer); - - store_unsigned_integer (raw_buffer, - register_size (current_gdbarch, SP_REGNUM), - fp + info->size); - regcache_cooked_write (regcache, SP_REGNUM, raw_buffer); - - target_store_registers (-1); - flush_cached_frames (); -} - static struct frame_unwind d10v_frame_unwind = { - d10v_frame_pop, d10v_frame_id_unwind, d10v_frame_register_unwind }; |