From d4bbf8f515a1a68b8979c06f793007639870324c Mon Sep 17 00:00:00 2001 From: cagney Date: Sun, 19 Jan 2003 22:24:50 +0000 Subject: [PATCH] 2003-01-19 Andrew Cagney * d10v-tdep.c (d10v_frame_saved_pc, d10v_frame_chain): Restore code handling dummy frames. --- gdb/ChangeLog | 5 +++++ gdb/d10v-tdep.c | 11 +++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b383e54c2d..8ae914eb5e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2003-01-19 Andrew Cagney + * d10v-tdep.c (d10v_frame_saved_pc, d10v_frame_chain): Restore + code handling dummy frames. + +2003-01-19 Andrew Cagney + * frame-unwind.h (frame_unwind_pop_ftype): Declare. (struct frame_unwind): Add field pop. * frame.h (frame_pop): Declare. diff --git a/gdb/d10v-tdep.c b/gdb/d10v-tdep.c index 63efe4c154..b00cd9d068 100644 --- a/gdb/d10v-tdep.c +++ b/gdb/d10v-tdep.c @@ -521,7 +521,12 @@ d10v_extract_struct_value_address (struct regcache *regcache) static CORE_ADDR d10v_frame_saved_pc (struct frame_info *frame) { - return (get_frame_extra_info (frame)->return_pc); + if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, 0, 0)) + return d10v_make_iaddr (deprecated_read_register_dummy (frame->pc, + frame->frame, + PC_REGNUM)); + else + return ((frame)->extra_info->return_pc); } /* Immediately after a function call, return the saved pc. We can't @@ -692,8 +697,10 @@ d10v_frame_chain (struct frame_info *fi) CORE_ADDR addr; /* A generic call dummy's frame is the same as caller's. */ - d10v_frame_init_saved_regs (fi); + if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, 0, 0)) + return fi->frame; + d10v_frame_init_saved_regs (fi); if (get_frame_extra_info (fi)->return_pc == IMEM_START || inside_entry_file (get_frame_extra_info (fi)->return_pc)) -- 2.11.0