From 07555a72863c79f6146a10730ef9468e9f4abc7f Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Thu, 28 Nov 2002 21:38:44 +0000 Subject: [PATCH] 2002-11-28 Andrew Cagney * gdbarch.sh (DEPRECATED_USE_GENERIC_DUMMY_FRAMES): Rename USE_GENERIC_DUMMY_FRAMES. * gdbarch.h, gdbarch.c: Regenerate. * valops.c, frame.c: Update. * config/z8k/tm-z8k.h, config/mn10200/tm-mn10200.h: Update. * config/m32r/tm-m32r.h, config/h8500/tm-h8500.h: Update. * config/pa/tm-hppa.h, blockframe.c: Update. * vax-tdep.c, sparc-tdep.c, ns32k-tdep.c: Ditto. * m68k-tdep.c, alpha-tdep.c: Ditto. * arm-tdep.c: Eliminate USE_GENERIC_DUMMY_FRAMES as always 1. * mips-tdep.c: Ditto. Index: doc/ChangeLog 2002-11-28 Andrew Cagney * gdbint.texinfo (Host Definition): Delete documentation on USE_GENERIC_DUMMY_FRAMES. --- gdb/ChangeLog | 15 ++++++++++ gdb/alpha-tdep.c | 2 +- gdb/arm-tdep.c | 51 ++++++--------------------------- gdb/blockframe.c | 2 +- gdb/breakpoint.c | 6 ++-- gdb/config/h8500/tm-h8500.h | 2 +- gdb/config/m32r/tm-m32r.h | 2 +- gdb/config/mn10200/tm-mn10200.h | 2 +- gdb/config/pa/tm-hppa.h | 2 +- gdb/config/z8k/tm-z8k.h | 2 +- gdb/doc/ChangeLog | 5 ++++ gdb/doc/gdbint.texinfo | 5 ---- gdb/frame.c | 11 +++---- gdb/gdbarch.c | 36 +++++++++++------------ gdb/gdbarch.h | 16 +++++------ gdb/gdbarch.sh | 2 +- gdb/m68k-tdep.c | 2 +- gdb/mips-tdep.c | 15 ++++------ gdb/ns32k-tdep.c | 2 +- gdb/sparc-tdep.c | 2 +- gdb/valops.c | 8 +++--- gdb/vax-tdep.c | 2 +- 22 files changed, 84 insertions(+), 108 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3b932a2c50f..1ed848f4e89 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,18 @@ +2002-11-28 Andrew Cagney + + * gdbarch.sh (DEPRECATED_USE_GENERIC_DUMMY_FRAMES): Rename + USE_GENERIC_DUMMY_FRAMES. + * gdbarch.h, gdbarch.c: Regenerate. + * valops.c, frame.c: Update. + * config/z8k/tm-z8k.h, config/mn10200/tm-mn10200.h: Update. + * config/m32r/tm-m32r.h, config/h8500/tm-h8500.h: Update. + * config/pa/tm-hppa.h, blockframe.c: Update. + * vax-tdep.c, sparc-tdep.c, ns32k-tdep.c: Ditto. + * m68k-tdep.c, alpha-tdep.c: Ditto. + + * arm-tdep.c: Eliminate USE_GENERIC_DUMMY_FRAMES as always 1. + * mips-tdep.c: Ditto. + 2002-11-27 Andrew Cagney * gdbarch.sh (CALL_DUMMY_LOCATION): Default to AT_ENTRY_POINT. diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c index b4d50929188..ead1d935afd 100644 --- a/gdb/alpha-tdep.c +++ b/gdb/alpha-tdep.c @@ -1868,7 +1868,7 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) alpha_extract_struct_value_address); /* Settings for calling functions in the inferior. */ - set_gdbarch_use_generic_dummy_frames (gdbarch, 0); + set_gdbarch_deprecated_use_generic_dummy_frames (gdbarch, 0); set_gdbarch_call_dummy_length (gdbarch, 0); set_gdbarch_push_arguments (gdbarch, alpha_push_arguments); set_gdbarch_pop_frame (gdbarch, alpha_pop_frame); diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index b7db0856c94..742b0d26934 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -410,8 +410,7 @@ arm_skip_prologue (CORE_ADDR pc) struct symtab_and_line sal; /* If we're in a dummy frame, don't even try to skip the prologue. */ - if (USE_GENERIC_DUMMY_FRAMES - && PC_IN_CALL_DUMMY (pc, 0, 0)) + if (PC_IN_CALL_DUMMY (pc, 0, 0)) return pc; /* See what the symbol table says. */ @@ -536,8 +535,7 @@ thumb_scan_prologue (struct frame_info *fi) int i; /* Don't try to scan dummy frames. */ - if (USE_GENERIC_DUMMY_FRAMES - && fi != NULL + if (fi != NULL && PC_IN_CALL_DUMMY (fi->pc, 0, 0)) return; @@ -992,8 +990,7 @@ arm_find_callers_reg (struct frame_info *fi, int regnum) function could be called directly. */ for (; fi; fi = fi->next) { - if (USE_GENERIC_DUMMY_FRAMES - && PC_IN_CALL_DUMMY (fi->pc, 0, 0)) + if (PC_IN_CALL_DUMMY (fi->pc, 0, 0)) { return deprecated_read_register_dummy (fi->pc, fi->frame, regnum); } @@ -1022,8 +1019,7 @@ arm_frame_chain (struct frame_info *fi) CORE_ADDR caller_pc; int framereg = fi->extra_info->framereg; - if (USE_GENERIC_DUMMY_FRAMES - && PC_IN_CALL_DUMMY (fi->pc, 0, 0)) + if (PC_IN_CALL_DUMMY (fi->pc, 0, 0)) /* A generic call dummy's frame is the same as caller's. */ return fi->frame; @@ -1106,8 +1102,7 @@ arm_init_extra_frame_info (int fromleaf, struct frame_info *fi) the sigtramp and call dummy cases. */ if (!fi->next) sp = read_sp(); - else if (USE_GENERIC_DUMMY_FRAMES - && PC_IN_CALL_DUMMY (fi->next->pc, 0, 0)) + else if (PC_IN_CALL_DUMMY (fi->next->pc, 0, 0)) /* For generic dummy frames, pull the value direct from the frame. Having an unwind function to do this would be nice. */ sp = deprecated_read_register_dummy (fi->next->pc, fi->next->frame, @@ -1148,33 +1143,6 @@ arm_init_extra_frame_info (int fromleaf, struct frame_info *fi) fi->extra_info->frameoffset = 0; } - else if (!USE_GENERIC_DUMMY_FRAMES - && PC_IN_CALL_DUMMY (fi->pc, sp, fi->frame)) - { - CORE_ADDR rp; - CORE_ADDR callers_sp; - - /* Set rp point at the high end of the saved registers. */ - rp = fi->frame - REGISTER_SIZE; - - /* Fill in addresses of saved registers. */ - fi->saved_regs[ARM_PS_REGNUM] = rp; - rp -= REGISTER_RAW_SIZE (ARM_PS_REGNUM); - for (reg = ARM_PC_REGNUM; reg >= 0; reg--) - { - fi->saved_regs[reg] = rp; - rp -= REGISTER_RAW_SIZE (reg); - } - - callers_sp = read_memory_integer (fi->saved_regs[ARM_SP_REGNUM], - REGISTER_RAW_SIZE (ARM_SP_REGNUM)); - if (arm_pc_is_thumb (fi->pc)) - fi->extra_info->framereg = THUMB_FP_REGNUM; - else - fi->extra_info->framereg = ARM_FP_REGNUM; - fi->extra_info->framesize = callers_sp - sp; - fi->extra_info->frameoffset = fi->frame - sp; - } else { arm_scan_prologue (fi); @@ -1182,8 +1150,7 @@ arm_init_extra_frame_info (int fromleaf, struct frame_info *fi) if (!fi->next) /* This is the innermost frame? */ fi->frame = read_register (fi->extra_info->framereg); - else if (USE_GENERIC_DUMMY_FRAMES - && PC_IN_CALL_DUMMY (fi->next->pc, 0, 0)) + else if (PC_IN_CALL_DUMMY (fi->next->pc, 0, 0)) /* Next inner most frame is a dummy, just grab its frame. Dummy frames always have the same FP as their caller. */ fi->frame = fi->next->frame; @@ -1224,8 +1191,7 @@ static CORE_ADDR arm_frame_saved_pc (struct frame_info *fi) { /* If a dummy frame, pull the PC out of the frame's register buffer. */ - if (USE_GENERIC_DUMMY_FRAMES - && PC_IN_CALL_DUMMY (fi->pc, 0, 0)) + if (PC_IN_CALL_DUMMY (fi->pc, 0, 0)) return deprecated_read_register_dummy (fi->pc, fi->frame, ARM_PC_REGNUM); if (PC_IN_CALL_DUMMY (fi->pc, fi->frame - fi->extra_info->frameoffset, @@ -1554,8 +1520,7 @@ arm_pop_frame (void) CORE_ADDR old_SP = (frame->frame - frame->extra_info->frameoffset + frame->extra_info->framesize); - if (USE_GENERIC_DUMMY_FRAMES - && PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame)) + if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame)) { generic_pop_dummy_frame (); flush_cached_frames (); diff --git a/gdb/blockframe.c b/gdb/blockframe.c index ee3b47489e5..8aa4ae90e49 100644 --- a/gdb/blockframe.c +++ b/gdb/blockframe.c @@ -719,7 +719,7 @@ generic_file_frame_chain_valid (CORE_ADDR fp, struct frame_info *fi) int generic_func_frame_chain_valid (CORE_ADDR fp, struct frame_info *fi) { - if (USE_GENERIC_DUMMY_FRAMES + if (DEPRECATED_USE_GENERIC_DUMMY_FRAMES && PC_IN_CALL_DUMMY ((fi)->pc, 0, 0)) return 1; /* don't prune CALL_DUMMY frames */ else /* fall back to default algorithm (see frame.h) */ diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index d8b12398026..4fc247b28c8 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -1697,9 +1697,9 @@ deprecated_frame_in_dummy (struct frame_info *frame) return 0; /* This function is used by two files: get_frame_type(), after first - checking that !USE_GENERIC_DUMMY_FRAMES; and sparc-tdep.c, which - doesn't yet use generic dummy frames anyway. */ - gdb_assert (!USE_GENERIC_DUMMY_FRAMES); + checking that !DEPRECATED_USE_GENERIC_DUMMY_FRAMES; and + sparc-tdep.c, which doesn't yet use generic dummy frames anyway. */ + gdb_assert (!DEPRECATED_USE_GENERIC_DUMMY_FRAMES); ALL_BREAKPOINTS (b) { diff --git a/gdb/config/h8500/tm-h8500.h b/gdb/config/h8500/tm-h8500.h index ecfb86a5745..ded1165eef8 100644 --- a/gdb/config/h8500/tm-h8500.h +++ b/gdb/config/h8500/tm-h8500.h @@ -23,7 +23,7 @@ #include "regcache.h" /* NOTE: cagney/2002-11-24: This is a guess. */ -#define USE_GENERIC_DUMMY_FRAMES 0 +#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES 0 #define CALL_DUMMY_LOCATION ON_STACK #define PC_IN_CALL_DUMMY(pc, sp, frame_address) deprecated_pc_in_call_dummy_on_stack (pc, sp, frame_address) diff --git a/gdb/config/m32r/tm-m32r.h b/gdb/config/m32r/tm-m32r.h index f38a760deb8..72e4bce69f3 100644 --- a/gdb/config/m32r/tm-m32r.h +++ b/gdb/config/m32r/tm-m32r.h @@ -224,7 +224,7 @@ extern CORE_ADDR m32r_push_arguments (int nargs, deprecated_generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval) -#define USE_GENERIC_DUMMY_FRAMES 1 +#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES 1 #define CALL_DUMMY {0} #define CALL_DUMMY_LENGTH (0) #define CALL_DUMMY_START_OFFSET (0) diff --git a/gdb/config/mn10200/tm-mn10200.h b/gdb/config/mn10200/tm-mn10200.h index e8c52ee8ae9..a4794704698 100644 --- a/gdb/config/mn10200/tm-mn10200.h +++ b/gdb/config/mn10200/tm-mn10200.h @@ -184,7 +184,7 @@ extern CORE_ADDR mn10200_skip_prologue (CORE_ADDR); extern void mn10200_pop_frame (struct frame_info *); #define POP_FRAME mn10200_pop_frame (get_current_frame ()) -#define USE_GENERIC_DUMMY_FRAMES 1 +#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES 1 #define CALL_DUMMY {0} #define CALL_DUMMY_START_OFFSET (0) #define CALL_DUMMY_BREAKPOINT_OFFSET (0) diff --git a/gdb/config/pa/tm-hppa.h b/gdb/config/pa/tm-hppa.h index bb45a62a0be..835140f9bc8 100644 --- a/gdb/config/pa/tm-hppa.h +++ b/gdb/config/pa/tm-hppa.h @@ -27,7 +27,7 @@ #define GDB_MULTI_ARCH 0 /* NOTE: cagney/2002-11-24: This is a guess. */ -#define USE_GENERIC_DUMMY_FRAMES 0 +#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES 0 #define CALL_DUMMY_LOCATION ON_STACK #define PC_IN_CALL_DUMMY(pc, sp, frame_address) deprecated_pc_in_call_dummy_on_stack (pc, sp, frame_address) diff --git a/gdb/config/z8k/tm-z8k.h b/gdb/config/z8k/tm-z8k.h index f4407e52e07..1a3ff4590aa 100644 --- a/gdb/config/z8k/tm-z8k.h +++ b/gdb/config/z8k/tm-z8k.h @@ -21,7 +21,7 @@ Boston, MA 02111-1307, USA. */ /* NOTE: cagney/2002-11-24: This is a guess. */ -#define USE_GENERIC_DUMMY_FRAMES 0 +#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES 0 #define CALL_DUMMY_LOCATION ON_STACK #define PC_IN_CALL_DUMMY(pc, sp, frame_address) deprecated_pc_in_call_dummy_on_stack (pc, sp, frame_address) diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 6a0c30af35e..eb815c2e20b 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2002-11-28 Andrew Cagney + + * gdbint.texinfo (Host Definition): Delete documentation on + USE_GENERIC_DUMMY_FRAMES. + 2002-11-26 Elena Zannoni Fix PR gdb/723 and PR gdb/245. diff --git a/gdb/doc/gdbint.texinfo b/gdb/doc/gdbint.texinfo index 0cdbc053376..c6936b884c6 100644 --- a/gdb/doc/gdbint.texinfo +++ b/gdb/doc/gdbint.texinfo @@ -2245,11 +2245,6 @@ of functions to indicate that they never return. The default is already set correctly if compiling with GCC. This will almost never need to be defined. -@item USE_GENERIC_DUMMY_FRAMES -@cindex generic dummy frames -Define this to 1 if the target is using the generic inferior function -call code. See @code{blockframe.c} for more information. - @item USE_MMALLOC @findex mmalloc @value{GDBN} will use the @code{mmalloc} library for memory allocation diff --git a/gdb/frame.c b/gdb/frame.c index cf7f2b9a16c..44207f3bfea 100644 --- a/gdb/frame.c +++ b/gdb/frame.c @@ -458,7 +458,7 @@ frame_saved_regs_register_unwind (struct frame_info *frame, void **cache, /* If we're using generic dummy frames, we'd better not be in a call dummy. (generic_call_dummy_register_unwind ought to have been called instead.) */ - gdb_assert (!(USE_GENERIC_DUMMY_FRAMES + gdb_assert (!(DEPRECATED_USE_GENERIC_DUMMY_FRAMES && (get_frame_type (frame) == DUMMY_FRAME))); /* Load the saved_regs register cache. */ @@ -649,7 +649,7 @@ set_unwind_by_pc (CORE_ADDR pc, CORE_ADDR fp, frame_register_unwind_ftype **unwind_register, frame_pc_unwind_ftype **unwind_pc) { - if (!USE_GENERIC_DUMMY_FRAMES) + if (!DEPRECATED_USE_GENERIC_DUMMY_FRAMES) { /* Still need to set this to something. The ``info frame'' code calls this function to find out where the saved registers are. @@ -704,7 +704,7 @@ create_new_frame (CORE_ADDR addr, CORE_ADDR pc) pc_in_dummy_frame() as some architectures don't set PC_IN_CALL_DUMMY() to generic_pc_in_call_dummy() (remember the latter is implemented by simply calling pc_in_dummy_frame). */ - if (USE_GENERIC_DUMMY_FRAMES && PC_IN_CALL_DUMMY (pc, 0, 0)) + if (DEPRECATED_USE_GENERIC_DUMMY_FRAMES && PC_IN_CALL_DUMMY (pc, 0, 0)) /* NOTE: cagney/2002-11-11: Does this even occure? */ type = DUMMY_FRAME; else @@ -989,7 +989,8 @@ get_prev_frame (struct frame_info *next_frame) pc_in_dummy_frame() as some architectures don't set PC_IN_CALL_DUMMY() to generic_pc_in_call_dummy() (remember the latter is implemented by simply calling pc_in_dummy_frame). */ - if (USE_GENERIC_DUMMY_FRAMES && PC_IN_CALL_DUMMY (prev->pc, 0, 0)) + if (DEPRECATED_USE_GENERIC_DUMMY_FRAMES + && PC_IN_CALL_DUMMY (prev->pc, 0, 0)) prev->type = DUMMY_FRAME; else { @@ -1045,7 +1046,7 @@ get_frame_type (struct frame_info *frame) { /* Some targets still don't use [generic] dummy frames. Catch them here. */ - if (!USE_GENERIC_DUMMY_FRAMES + if (!DEPRECATED_USE_GENERIC_DUMMY_FRAMES && deprecated_frame_in_dummy (frame)) return DUMMY_FRAME; return frame->type; diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index c7ecfd8b777..8027249df1a 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -181,7 +181,7 @@ struct gdbarch gdbarch_cannot_fetch_register_ftype *cannot_fetch_register; gdbarch_cannot_store_register_ftype *cannot_store_register; gdbarch_get_longjmp_target_ftype *get_longjmp_target; - int use_generic_dummy_frames; + int deprecated_use_generic_dummy_frames; int call_dummy_location; gdbarch_call_dummy_address_ftype *call_dummy_address; CORE_ADDR call_dummy_start_offset; @@ -522,7 +522,7 @@ gdbarch_alloc (const struct gdbarch_info *info, current_gdbarch->register_sim_regno = legacy_register_sim_regno; current_gdbarch->cannot_fetch_register = cannot_register_not; current_gdbarch->cannot_store_register = cannot_register_not; - current_gdbarch->use_generic_dummy_frames = 1; + current_gdbarch->deprecated_use_generic_dummy_frames = 1; current_gdbarch->call_dummy_location = AT_ENTRY_POINT; current_gdbarch->call_dummy_start_offset = -1; current_gdbarch->call_dummy_breakpoint_offset = -1; @@ -680,7 +680,7 @@ verify_gdbarch (struct gdbarch *gdbarch) /* Skip verify of cannot_fetch_register, invalid_p == 0 */ /* Skip verify of cannot_store_register, invalid_p == 0 */ /* Skip verify of get_longjmp_target, has predicate */ - /* Skip verify of use_generic_dummy_frames, invalid_p == 0 */ + /* Skip verify of deprecated_use_generic_dummy_frames, invalid_p == 0 */ /* Skip verify of call_dummy_location, invalid_p == 0 */ if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && (gdbarch->call_dummy_location == AT_ENTRY_POINT && gdbarch->call_dummy_address == 0)) @@ -1160,6 +1160,14 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) (long) current_gdbarch->deprecated_store_return_value /*DEPRECATED_STORE_RETURN_VALUE ()*/); #endif +#ifdef DEPRECATED_USE_GENERIC_DUMMY_FRAMES + fprintf_unfiltered (file, + "gdbarch_dump: DEPRECATED_USE_GENERIC_DUMMY_FRAMES # %s\n", + XSTRING (DEPRECATED_USE_GENERIC_DUMMY_FRAMES)); + fprintf_unfiltered (file, + "gdbarch_dump: DEPRECATED_USE_GENERIC_DUMMY_FRAMES = %d\n", + DEPRECATED_USE_GENERIC_DUMMY_FRAMES); +#endif #ifdef DWARF2_BUILD_FRAME_INFO #if GDB_MULTI_ARCH /* Macro might contain `[{}]' when not multi-arch */ @@ -2289,14 +2297,6 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) (long) current_gdbarch->write_sp /*TARGET_WRITE_SP ()*/); #endif -#ifdef USE_GENERIC_DUMMY_FRAMES - fprintf_unfiltered (file, - "gdbarch_dump: USE_GENERIC_DUMMY_FRAMES # %s\n", - XSTRING (USE_GENERIC_DUMMY_FRAMES)); - fprintf_unfiltered (file, - "gdbarch_dump: USE_GENERIC_DUMMY_FRAMES = %d\n", - USE_GENERIC_DUMMY_FRAMES); -#endif #ifdef USE_STRUCT_CONVENTION fprintf_unfiltered (file, "gdbarch_dump: %s # %s\n", @@ -3321,20 +3321,20 @@ set_gdbarch_get_longjmp_target (struct gdbarch *gdbarch, } int -gdbarch_use_generic_dummy_frames (struct gdbarch *gdbarch) +gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - /* Skip verify of use_generic_dummy_frames, invalid_p == 0 */ + /* Skip verify of deprecated_use_generic_dummy_frames, invalid_p == 0 */ if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_use_generic_dummy_frames called\n"); - return gdbarch->use_generic_dummy_frames; + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_use_generic_dummy_frames called\n"); + return gdbarch->deprecated_use_generic_dummy_frames; } void -set_gdbarch_use_generic_dummy_frames (struct gdbarch *gdbarch, - int use_generic_dummy_frames) +set_gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch, + int deprecated_use_generic_dummy_frames) { - gdbarch->use_generic_dummy_frames = use_generic_dummy_frames; + gdbarch->deprecated_use_generic_dummy_frames = deprecated_use_generic_dummy_frames; } int diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index b90865349e7..56b4f6bd5c8 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -971,18 +971,18 @@ extern void set_gdbarch_get_longjmp_target (struct gdbarch *gdbarch, gdbarch_get avoids any potential problems with moving beyond multi-arch partial. */ /* Default (value) for non- multi-arch platforms. */ -#if (!GDB_MULTI_ARCH) && !defined (USE_GENERIC_DUMMY_FRAMES) -#define USE_GENERIC_DUMMY_FRAMES (1) +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_USE_GENERIC_DUMMY_FRAMES) +#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES (1) #endif -extern int gdbarch_use_generic_dummy_frames (struct gdbarch *gdbarch); -extern void set_gdbarch_use_generic_dummy_frames (struct gdbarch *gdbarch, int use_generic_dummy_frames); -#if (GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL) && defined (USE_GENERIC_DUMMY_FRAMES) -#error "Non multi-arch definition of USE_GENERIC_DUMMY_FRAMES" +extern int gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch); +extern void set_gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch, int deprecated_use_generic_dummy_frames); +#if (GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_USE_GENERIC_DUMMY_FRAMES) +#error "Non multi-arch definition of DEPRECATED_USE_GENERIC_DUMMY_FRAMES" #endif #if GDB_MULTI_ARCH -#if (GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL) || !defined (USE_GENERIC_DUMMY_FRAMES) -#define USE_GENERIC_DUMMY_FRAMES (gdbarch_use_generic_dummy_frames (current_gdbarch)) +#if (GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_USE_GENERIC_DUMMY_FRAMES) +#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES (gdbarch_deprecated_use_generic_dummy_frames (current_gdbarch)) #endif #endif diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index 9c91a7c76dc..7c23c84bd19 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -488,7 +488,7 @@ F:2:GET_LONGJMP_TARGET:int:get_longjmp_target:CORE_ADDR *pc:pc::0:0 # behaviour here (and hence entrench it further) gdbarch simply # reqires that these methods be set up from the word go. This also # avoids any potential problems with moving beyond multi-arch partial. -v:1:USE_GENERIC_DUMMY_FRAMES:int:use_generic_dummy_frames:::::1::0 +v:1:DEPRECATED_USE_GENERIC_DUMMY_FRAMES:int:deprecated_use_generic_dummy_frames:::::1::0 v:1:CALL_DUMMY_LOCATION:int:call_dummy_location:::::AT_ENTRY_POINT::0 f:2:CALL_DUMMY_ADDRESS:CORE_ADDR:call_dummy_address:void:::0:0::gdbarch->call_dummy_location == AT_ENTRY_POINT && gdbarch->call_dummy_address == 0 v:2:CALL_DUMMY_START_OFFSET:CORE_ADDR:call_dummy_start_offset::::0:-1:::0x%08lx diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c index d9570581044..67d1a991ca5 100644 --- a/gdb/m68k-tdep.c +++ b/gdb/m68k-tdep.c @@ -1031,7 +1031,7 @@ m68k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_ps_regnum (gdbarch, M68K_PS_REGNUM); set_gdbarch_fp0_regnum (gdbarch, M68K_FP0_REGNUM); - set_gdbarch_use_generic_dummy_frames (gdbarch, 0); + set_gdbarch_deprecated_use_generic_dummy_frames (gdbarch, 0); set_gdbarch_call_dummy_location (gdbarch, ON_STACK); set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1); set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 24); diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index 320456ea99f..f0a943d7e6a 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -1704,8 +1704,7 @@ mips_frame_saved_pc (struct frame_info *frame) int pcreg = (get_frame_type (frame) == SIGTRAMP_FRAME) ? PC_REGNUM : (proc_desc ? PROC_PC_REG (proc_desc) : RA_REGNUM); - if (USE_GENERIC_DUMMY_FRAMES - && PC_IN_CALL_DUMMY (frame->pc, 0, 0)) + if (PC_IN_CALL_DUMMY (frame->pc, 0, 0)) { LONGEST tmp; frame_unwind_signed_register (frame, PC_REGNUM, &tmp); @@ -2428,8 +2427,7 @@ mips_frame_chain (struct frame_info *frame) if ((tmp = SKIP_TRAMPOLINE_CODE (saved_pc)) != 0) saved_pc = tmp; - if (USE_GENERIC_DUMMY_FRAMES - && PC_IN_CALL_DUMMY (saved_pc, 0, 0)) + if (PC_IN_CALL_DUMMY (saved_pc, 0, 0)) { /* A dummy frame, uses SP not FP. Get the old SP value. If all is well, frame->frame the bottom of the current frame will @@ -2454,8 +2452,7 @@ mips_frame_chain (struct frame_info *frame) && !(get_frame_type (frame) == SIGTRAMP_FRAME) /* For a generic dummy frame, let get_frame_pointer() unwind a register value saved as part of the dummy frame call. */ - && !(USE_GENERIC_DUMMY_FRAMES - && PC_IN_CALL_DUMMY (frame->pc, 0, 0))) + && !(PC_IN_CALL_DUMMY (frame->pc, 0, 0))) return 0; else return get_frame_pointer (frame, proc_desc); @@ -2485,8 +2482,7 @@ mips_init_extra_frame_info (int fromleaf, struct frame_info *fci) if (fci->pc == PROC_LOW_ADDR (proc_desc) && !PROC_DESC_IS_DUMMY (proc_desc)) fci->frame = read_next_frame_reg (fci->next, SP_REGNUM); - else if (USE_GENERIC_DUMMY_FRAMES - && PC_IN_CALL_DUMMY (fci->pc, 0, 0)) + else if (PC_IN_CALL_DUMMY (fci->pc, 0, 0)) /* Do not ``fix'' fci->frame. It will have the value of the generic dummy frame's top-of-stack (since the draft fci->frame is obtained by returning the unwound stack @@ -3816,8 +3812,7 @@ mips_pop_frame (void) CORE_ADDR new_sp = get_frame_base (frame); mips_extra_func_info_t proc_desc = frame->extra_info->proc_desc; - if (USE_GENERIC_DUMMY_FRAMES - && PC_IN_CALL_DUMMY (frame->pc, 0, 0)) + if (PC_IN_CALL_DUMMY (frame->pc, 0, 0)) { generic_pop_dummy_frame (); flush_cached_frames (); diff --git a/gdb/ns32k-tdep.c b/gdb/ns32k-tdep.c index c14404ee332..fecd134e7b5 100644 --- a/gdb/ns32k-tdep.c +++ b/gdb/ns32k-tdep.c @@ -615,7 +615,7 @@ ns32k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_fix_call_dummy (gdbarch, ns32k_fix_call_dummy); set_gdbarch_call_dummy_start_offset (gdbarch, 3); set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 0); - set_gdbarch_use_generic_dummy_frames (gdbarch, 0); + set_gdbarch_deprecated_use_generic_dummy_frames (gdbarch, 0); set_gdbarch_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_on_stack); set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0); diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c index 6be33928145..a7619785cb1 100644 --- a/gdb/sparc-tdep.c +++ b/gdb/sparc-tdep.c @@ -3179,7 +3179,7 @@ sparc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT); set_gdbarch_skip_prologue (gdbarch, sparc_skip_prologue); set_gdbarch_sp_regnum (gdbarch, SPARC_SP_REGNUM); - set_gdbarch_use_generic_dummy_frames (gdbarch, 0); + set_gdbarch_deprecated_use_generic_dummy_frames (gdbarch, 0); set_gdbarch_write_pc (gdbarch, generic_target_write_pc); /* diff --git a/gdb/valops.c b/gdb/valops.c index 1cf22a8f209..753a43cc1e8 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -1462,7 +1462,7 @@ hand_function_call (struct value *function, int nargs, struct value **args) if (CALL_DUMMY_LOCATION == ON_STACK) { write_memory (start_sp, (char *) dummy1, sizeof_dummy1); - if (USE_GENERIC_DUMMY_FRAMES) + if (DEPRECATED_USE_GENERIC_DUMMY_FRAMES) generic_save_call_dummy_addr (start_sp, start_sp + sizeof_dummy1); } @@ -1480,7 +1480,7 @@ hand_function_call (struct value *function, int nargs, struct value **args) sp = old_sp; real_pc = text_end - sizeof_dummy1; write_memory (real_pc, (char *) dummy1, sizeof_dummy1); - if (USE_GENERIC_DUMMY_FRAMES) + if (DEPRECATED_USE_GENERIC_DUMMY_FRAMES) generic_save_call_dummy_addr (real_pc, real_pc + sizeof_dummy1); } @@ -1493,14 +1493,14 @@ hand_function_call (struct value *function, int nargs, struct value **args) errcode = target_write_memory (real_pc, (char *) dummy1, sizeof_dummy1); if (errcode != 0) error ("Cannot write text segment -- call_function failed"); - if (USE_GENERIC_DUMMY_FRAMES) + if (DEPRECATED_USE_GENERIC_DUMMY_FRAMES) generic_save_call_dummy_addr (real_pc, real_pc + sizeof_dummy1); } if (CALL_DUMMY_LOCATION == AT_ENTRY_POINT) { real_pc = funaddr; - if (USE_GENERIC_DUMMY_FRAMES) + if (DEPRECATED_USE_GENERIC_DUMMY_FRAMES) /* NOTE: cagney/2002-04-13: The entry point is going to be modified with a single breakpoint. */ generic_save_call_dummy_addr (CALL_DUMMY_ADDRESS (), diff --git a/gdb/vax-tdep.c b/gdb/vax-tdep.c index 3b7de9602d3..6a936837162 100644 --- a/gdb/vax-tdep.c +++ b/gdb/vax-tdep.c @@ -690,7 +690,7 @@ vax_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_call_dummy_start_offset (gdbarch, 0); set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1); set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 7); - set_gdbarch_use_generic_dummy_frames (gdbarch, 0); + set_gdbarch_deprecated_use_generic_dummy_frames (gdbarch, 0); set_gdbarch_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_on_stack); set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0); -- 2.30.2