From 7a25a7c1cc419c2f4106843387e0c8be92471523 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Wed, 12 Mar 2003 15:39:30 +0000 Subject: 2003-03-12 Andrew Cagney 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. --- gdb/d10v-tdep.c | 38 -------------------------------------- 1 file changed, 38 deletions(-) (limited to 'gdb/d10v-tdep.c') 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 }; -- cgit v1.1