From a5afb99fc1bc3708dafc1201ff30bd263ec2b266 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Wed, 11 Dec 2002 02:26:38 +0000 Subject: [PATCH] 2002-12-10 Andrew Cagney * gdbarch.sh (DEPRECATED_INIT_FRAME_PC): Rename INIT_FRAME_PC. Change to a function with predicate. * gdbarch.h, gdbarch.c: Re-generate. * frame.c (get_prev_frame): Update. Test DEPRECATED_INIT_FRAME_PC_P. * config/sparc/tm-sparc.h (DEPRECATED_INIT_FRAME_PC): Update. * config/rs6000/tm-rs6000.h (DEPRECATED_INIT_FRAME_PC): Update. * config/mn10200/tm-mn10200.h (DEPRECATED_INIT_FRAME_PC): Update. * alpha-tdep.c (alpha_gdbarch_init): Update. * mn10300-tdep.c (mn10300_gdbarch_init): Update. * mips-tdep.c (mips_gdbarch_init): Update. * i386-interix-tdep.c (i386_interix_init_abi): Update. * arm-tdep.c: Update comments. * h8300-tdep.c (h8300_gdbarch_init): Explicitly set init_frame_pc. * config/m32r/tm-m32r.h (DEPRECATED_INIT_FRAME_PC): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * x86-64-tdep.c (x86_64_init_abi): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * v850-tdep.c (v850_gdbarch_init): Ditto. * vax-tdep.c (vax_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * ns32k-tdep.c (ns32k_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * mcore-tdep.c (mcore_gdbarch_init): Ditto. * xstormy16-tdep.c (xstormy16_gdbarch_init): Ditto. * i386-tdep.c (i386_gdbarch_init): Ditto. * d10v-tdep.c (d10v_gdbarch_init): Ditto. * cris-tdep.c (cris_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * config/z8k/tm-z8k.h (INIT_FRAME_PC_FIRST): Delete macro. (DEPRECATED_INIT_FRAME_PC): Rename INIT_FRAME_PC. --- gdb/ChangeLog | 36 +++++++++++++++++++ gdb/alpha-tdep.c | 2 +- gdb/arm-tdep.c | 10 ++++-- gdb/avr-tdep.c | 11 ++++-- gdb/config/m32r/tm-m32r.h | 4 +-- gdb/config/mn10200/tm-mn10200.h | 2 +- gdb/config/pa/tm-hppa.h | 1 + gdb/config/rs6000/tm-rs6000.h | 2 +- gdb/config/sparc/tm-sparc.h | 2 +- gdb/config/z8k/tm-z8k.h | 2 +- gdb/cris-tdep.c | 4 +++ gdb/d10v-tdep.c | 12 ++++--- gdb/doc/ChangeLog | 5 +++ gdb/doc/gdbint.texinfo | 10 +++--- gdb/frame.c | 27 ++++++++------- gdb/frv-tdep.c | 4 +++ gdb/gdbarch.c | 61 ++++++++++++++++++++------------- gdb/gdbarch.h | 40 +++++++++++++++------ gdb/gdbarch.sh | 2 +- gdb/h8300-tdep.c | 11 ++++-- gdb/h8500-tdep.c | 7 ++-- gdb/hppa-tdep.c | 7 ++-- gdb/i386-interix-tdep.c | 2 +- gdb/i386-tdep.c | 4 +++ gdb/ia64-tdep.c | 3 ++ gdb/m32r-tdep.c | 10 +++--- gdb/m68hc11-tdep.c | 12 ++++--- gdb/m68k-tdep.c | 4 +++ gdb/mcore-tdep.c | 11 ++++-- gdb/mips-tdep.c | 2 +- gdb/mn10300-tdep.c | 2 +- gdb/ns32k-tdep.c | 4 +++ gdb/s390-tdep.c | 4 +++ gdb/sh-tdep.c | 11 ++++-- gdb/v850-tdep.c | 4 +++ gdb/vax-tdep.c | 4 +++ gdb/x86-64-tdep.c | 2 +- gdb/xstormy16-tdep.c | 4 +++ 38 files changed, 248 insertions(+), 97 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d002d3d9f8..b0c6d62eb4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,39 @@ +2002-12-10 Andrew Cagney + + * gdbarch.sh (DEPRECATED_INIT_FRAME_PC): Rename INIT_FRAME_PC. + Change to a function with predicate. + * gdbarch.h, gdbarch.c: Re-generate. + * frame.c (get_prev_frame): Update. Test + DEPRECATED_INIT_FRAME_PC_P. + * config/sparc/tm-sparc.h (DEPRECATED_INIT_FRAME_PC): Update. + * config/rs6000/tm-rs6000.h (DEPRECATED_INIT_FRAME_PC): Update. + * config/mn10200/tm-mn10200.h (DEPRECATED_INIT_FRAME_PC): Update. + * alpha-tdep.c (alpha_gdbarch_init): Update. + * mn10300-tdep.c (mn10300_gdbarch_init): Update. + * mips-tdep.c (mips_gdbarch_init): Update. + * i386-interix-tdep.c (i386_interix_init_abi): Update. + * arm-tdep.c: Update comments. + * h8300-tdep.c (h8300_gdbarch_init): Explicitly set init_frame_pc. + * config/m32r/tm-m32r.h (DEPRECATED_INIT_FRAME_PC): Ditto. + * frv-tdep.c (frv_gdbarch_init): Ditto. + * x86-64-tdep.c (x86_64_init_abi): Ditto. + * ia64-tdep.c (ia64_gdbarch_init): Ditto. + * s390-tdep.c (s390_gdbarch_init): Ditto. + * v850-tdep.c (v850_gdbarch_init): Ditto. + * vax-tdep.c (vax_gdbarch_init): Ditto. + * sh-tdep.c (sh_gdbarch_init): Ditto. + * ns32k-tdep.c (ns32k_gdbarch_init): Ditto. + * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. + * mcore-tdep.c (mcore_gdbarch_init): Ditto. + * xstormy16-tdep.c (xstormy16_gdbarch_init): Ditto. + * i386-tdep.c (i386_gdbarch_init): Ditto. + * d10v-tdep.c (d10v_gdbarch_init): Ditto. + * cris-tdep.c (cris_gdbarch_init): Ditto. + * avr-tdep.c (avr_gdbarch_init): Ditto. + * arm-tdep.c (arm_gdbarch_init): Ditto. + * config/z8k/tm-z8k.h (INIT_FRAME_PC_FIRST): Delete macro. + (DEPRECATED_INIT_FRAME_PC): Rename INIT_FRAME_PC. + 2002-12-10 Daniel Jacobowitz * config/pa/nm-hppah.h (CHILD_POST_FOLLOW_VFORK): Change to diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c index b0da5b3768..12dcc62568 100644 --- a/gdb/alpha-tdep.c +++ b/gdb/alpha-tdep.c @@ -1895,7 +1895,7 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0); set_gdbarch_push_dummy_frame (gdbarch, alpha_push_dummy_frame); set_gdbarch_fix_call_dummy (gdbarch, alpha_fix_call_dummy); - set_gdbarch_init_frame_pc (gdbarch, init_frame_pc_noop); + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_noop); set_gdbarch_deprecated_init_frame_pc_first (gdbarch, alpha_init_frame_pc_first); set_gdbarch_inner_than (gdbarch, core_addr_lessthan); diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 386ab9163b..4b1740aab1 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -1009,9 +1009,9 @@ arm_find_callers_reg (struct frame_info *fi, int regnum) } /* Function: frame_chain Given a GDB frame, determine the address of the calling function's frame. This will be used to create a new - GDB frame struct, and then INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC - will be called for the new frame. For ARM, we save the frame size - when we initialize the frame_info. */ + GDB frame struct, and then INIT_EXTRA_FRAME_INFO and + DEPRECATED_INIT_FRAME_PC will be called for the new frame. For + ARM, we save the frame size when we initialize the frame_info. */ static CORE_ADDR arm_frame_chain (struct frame_info *fi) @@ -2748,6 +2748,10 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) tdep = xmalloc (sizeof (struct gdbarch_tdep)); gdbarch = gdbarch_alloc (&info, tdep); + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); + tdep->osabi = osabi; /* This is the way it has always defaulted. */ diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c index 45a4f20922..1c93860c34 100644 --- a/gdb/avr-tdep.c +++ b/gdb/avr-tdep.c @@ -1020,9 +1020,10 @@ avr_frame_address (struct frame_info *fi) return avr_make_saddr (fi->frame); } -/* Given a GDB frame, determine the address of the calling function's frame. - This will be used to create a new GDB frame struct, and then - INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame. +/* Given a GDB frame, determine the address of the calling function's + frame. This will be used to create a new GDB frame struct, and + then INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC will be + called for the new frame. For us, the frame address is its stack pointer value, so we look up the function prologue to determine the caller's sp value, and return it. */ @@ -1166,6 +1167,10 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) tdep = XMALLOC (struct gdbarch_tdep); gdbarch = gdbarch_alloc (&info, tdep); + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); + /* If we ever need to differentiate the device types, do it here. */ switch (info.bfd_arch_info->mach) { diff --git a/gdb/config/m32r/tm-m32r.h b/gdb/config/m32r/tm-m32r.h index 51c8f7212d..70a30a8a55 100644 --- a/gdb/config/m32r/tm-m32r.h +++ b/gdb/config/m32r/tm-m32r.h @@ -109,8 +109,8 @@ struct value; extern void m32r_init_extra_frame_info (struct frame_info *fi); /* mvs_check INIT_EXTRA_FRAME_INFO */ #define INIT_EXTRA_FRAME_INFO(fromleaf, fi) m32r_init_extra_frame_info (fi) -/* mvs_no_check INIT_FRAME_PC */ -#define INIT_FRAME_PC /* Not necessary */ +/* mvs_no_check DEPRECATED_INIT_FRAME_PC */ +#define DEPRECATED_INIT_FRAME_PC init_frame_pc_noop extern void m32r_frame_find_saved_regs (struct frame_info *fi, diff --git a/gdb/config/mn10200/tm-mn10200.h b/gdb/config/mn10200/tm-mn10200.h index d7b9f0986a..b2d03857c5 100644 --- a/gdb/config/mn10200/tm-mn10200.h +++ b/gdb/config/mn10200/tm-mn10200.h @@ -107,7 +107,7 @@ struct value; extern void mn10200_init_extra_frame_info (struct frame_info *); #define INIT_EXTRA_FRAME_INFO(fromleaf, fi) mn10200_init_extra_frame_info (fi) -#define INIT_FRAME_PC(x,y) (init_frame_pc_noop (x, y)) +#define DEPRECATED_INIT_FRAME_PC(x,y) (init_frame_pc_noop (x, y)) #define INIT_FRAME_PC_FIRST(x,y) (init_frame_pc_noop (x, y)) extern void mn10200_frame_find_saved_regs (struct frame_info *, diff --git a/gdb/config/pa/tm-hppa.h b/gdb/config/pa/tm-hppa.h index 5cf60fffcb..ce35906d2b 100644 --- a/gdb/config/pa/tm-hppa.h +++ b/gdb/config/pa/tm-hppa.h @@ -30,6 +30,7 @@ #define DEPRECATED_USE_GENERIC_DUMMY_FRAMES 0 #define CALL_DUMMY_LOCATION ON_STACK #define DEPRECATED_PC_IN_CALL_DUMMY(pc, sp, frame_address) deprecated_pc_in_call_dummy_on_stack (pc, sp, frame_address) +#define DEPRECATED_INIT_FRAME_PC(l,f) (init_frame_pc_default (l, f)) /* Forward declarations of some types we use in prototypes */ diff --git a/gdb/config/rs6000/tm-rs6000.h b/gdb/config/rs6000/tm-rs6000.h index 3f21bd7e38..1bdd9ebd52 100644 --- a/gdb/config/rs6000/tm-rs6000.h +++ b/gdb/config/rs6000/tm-rs6000.h @@ -86,7 +86,7 @@ extern void aix_process_linenos (void); "arch-utils.h" here. Not too bad as this entire file is going away anyway. */ extern CORE_ADDR init_frame_pc_noop (int fromleaf, struct frame_info *prev); -#define INIT_FRAME_PC(fromleaf, prev) (init_frame_pc_noop (fromleaf, prev)) +#define DEPRECATED_INIT_FRAME_PC(fromleaf, prev) (init_frame_pc_noop (fromleaf, prev)) /* Flag for machine-specific stuff in shared files. FIXME */ #define IBM6000_TARGET diff --git a/gdb/config/sparc/tm-sparc.h b/gdb/config/sparc/tm-sparc.h index 0516078945..f0a457223c 100644 --- a/gdb/config/sparc/tm-sparc.h +++ b/gdb/config/sparc/tm-sparc.h @@ -519,7 +519,7 @@ extern void sparc_print_extra_frame_info (struct frame_info *); /* INIT_EXTRA_FRAME_INFO needs the PC to detect flat frames. */ -#define INIT_FRAME_PC(FROMLEAF, PREV) (init_frame_pc_noop (FROMLEAF, PREV)) +#define DEPRECATED_INIT_FRAME_PC(FROMLEAF, PREV) (init_frame_pc_noop (FROMLEAF, PREV)) #define DEPRECATED_INIT_FRAME_PC_FIRST(FROMLEAF, PREV) \ ((FROMLEAF) ? SAVED_PC_AFTER_CALL ((PREV)->next) : \ (PREV)->next ? FRAME_SAVED_PC ((PREV)->next) : read_pc ()) diff --git a/gdb/config/z8k/tm-z8k.h b/gdb/config/z8k/tm-z8k.h index 12ba24794a..86cc4a4b59 100644 --- a/gdb/config/z8k/tm-z8k.h +++ b/gdb/config/z8k/tm-z8k.h @@ -108,7 +108,7 @@ extern int z8k_saved_pc_after_call (struct frame_info *frame); #define REGISTER_VIRTUAL_TYPE(N) \ (REGISTER_VIRTUAL_SIZE(N) == 2? builtin_type_unsigned_int : builtin_type_long) -#define INIT_FRAME_PC(x,y) (init_frame_pc_noop (x, y)) +#define DEPRECATED_INIT_FRAME_PC(x,y) (init_frame_pc_noop (x, y)) #define INIT_FRAME_PC_FIRST(x,y) (init_frame_pc_noop (x, y)) #define REGISTER_NAMES \ diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c index 35ba291213..0d552b8bda 100644 --- a/gdb/cris-tdep.c +++ b/gdb/cris-tdep.c @@ -4123,6 +4123,10 @@ cris_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) tdep = (struct gdbarch_tdep *) xmalloc (sizeof (struct gdbarch_tdep)); gdbarch = gdbarch_alloc (&info, tdep); + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); + tdep->cris_version = cris_version; tdep->cris_mode = cris_mode; tdep->cris_abi = cris_abi; diff --git a/gdb/d10v-tdep.c b/gdb/d10v-tdep.c index d1fcafc261..14fd95a032 100644 --- a/gdb/d10v-tdep.c +++ b/gdb/d10v-tdep.c @@ -677,10 +677,10 @@ d10v_skip_prologue (CORE_ADDR pc) return pc; } -/* Given a GDB frame, determine the address of the calling function's frame. - This will be used to create a new GDB frame struct, and then - INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame. - */ +/* Given a GDB frame, determine the address of the calling function's + frame. This will be used to create a new GDB frame struct, and + then INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC will be + called for the new frame. */ static CORE_ADDR d10v_frame_chain (struct frame_info *fi) @@ -1518,6 +1518,10 @@ d10v_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) tdep = XMALLOC (struct gdbarch_tdep); gdbarch = gdbarch_alloc (&info, tdep); + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); + switch (info.bfd_arch_info->mach) { case bfd_mach_d10v_ts2: diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index a85398e5f7..39059dd130 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2002-12-05 Andrew Cagney + + * gdbint.texinfo (Algorithms): Replace INIT_FRAME_PC with + DEPRECATED_INIT_FRAME_PC. + 2002-12-01 Andrew Cagney * gdbint.texinfo (Target Architecture Definition): Delete diff --git a/gdb/doc/gdbint.texinfo b/gdb/doc/gdbint.texinfo index 5aba24ddda..26fd5236c1 100644 --- a/gdb/doc/gdbint.texinfo +++ b/gdb/doc/gdbint.texinfo @@ -253,9 +253,9 @@ your frames are nonstandard.) @cindex frame chain Given a @value{GDBN} frame, define @code{FRAME_CHAIN} to determine the -address of the calling function's frame. This will be used to create -a new @value{GDBN} frame struct, and then @code{INIT_EXTRA_FRAME_INFO} -and @code{INIT_FRAME_PC} will be called for the new frame. +address of the calling function's frame. This will be used to create a +new @value{GDBN} frame struct, and then @code{INIT_EXTRA_FRAME_INFO} and +@code{DEPRECATED_INIT_FRAME_PC} will be called for the new frame. @section Breakpoint Handling @@ -3453,8 +3453,8 @@ If additional information about the frame is required this should be stored in @code{frame->extra_info}. Space for @code{frame->extra_info} is allocated using @code{frame_obstack_alloc}. -@item INIT_FRAME_PC (@var{fromleaf}, @var{prev}) -@findex INIT_FRAME_PC +@item DEPRECATED_INIT_FRAME_PC (@var{fromleaf}, @var{prev}) +@findex DEPRECATED_INIT_FRAME_PC This is a C statement that sets the pc of the frame pointed to by @var{prev}. [By default...] diff --git a/gdb/frame.c b/gdb/frame.c index 3652e3357a..deee6c0d2c 100644 --- a/gdb/frame.c +++ b/gdb/frame.c @@ -972,25 +972,25 @@ get_prev_frame (struct frame_info *next_frame) prev->type = NORMAL_FRAME; /* This change should not be needed, FIXME! We should determine - whether any targets *need* INIT_FRAME_PC to happen after - INIT_EXTRA_FRAME_INFO and come up with a simple way to express - what goes on here. + whether any targets *need* DEPRECATED_INIT_FRAME_PC to happen + after INIT_EXTRA_FRAME_INFO and come up with a simple way to + express what goes on here. INIT_EXTRA_FRAME_INFO is called from two places: create_new_frame (where the PC is already set up) and here (where it isn't). - INIT_FRAME_PC is only called from here, always after + DEPRECATED_INIT_FRAME_PC is only called from here, always after INIT_EXTRA_FRAME_INFO. The catch is the MIPS, where INIT_EXTRA_FRAME_INFO requires the PC value (which hasn't been set yet). Some other machines appear to require INIT_EXTRA_FRAME_INFO before they can do - INIT_FRAME_PC. Phoo. + DEPRECATED_INIT_FRAME_PC. Phoo. We shouldn't need DEPRECATED_INIT_FRAME_PC_FIRST to add more complication to an already overcomplicated part of GDB. gnu@cygnus.com, 15Sep92. - Assuming that some machines need INIT_FRAME_PC after + Assuming that some machines need DEPRECATED_INIT_FRAME_PC after INIT_EXTRA_FRAME_INFO, one possible scheme: SETUP_INNERMOST_FRAME(): Default version is just create_new_frame @@ -1002,17 +1002,17 @@ get_prev_frame (struct frame_info *next_frame) SETUP_ARBITRARY_FRAME would have to do that. INIT_PREV_FRAME(fromleaf, prev) Replace INIT_EXTRA_FRAME_INFO and - INIT_FRAME_PC. This should also return a flag saying whether to - keep the new frame, or whether to discard it, because on some - machines (e.g. mips) it is really awkward to have + DEPRECATED_INIT_FRAME_PC. This should also return a flag saying + whether to keep the new frame, or whether to discard it, because + on some machines (e.g. mips) it is really awkward to have FRAME_CHAIN_VALID called *before* INIT_EXTRA_FRAME_INFO (there is no good way to get information deduced in FRAME_CHAIN_VALID into the extra fields of the new frame). std_frame_pc(fromleaf, prev) This is the default setting for INIT_PREV_FRAME. It just does - what the default INIT_FRAME_PC does. Some machines will call it - from INIT_PREV_FRAME (either at the beginning, the end, or in the - middle). Some machines won't use it. + what the default DEPRECATED_INIT_FRAME_PC does. Some machines + will call it from INIT_PREV_FRAME (either at the beginning, the + end, or in the middle). Some machines won't use it. kingdon@cygnus.com, 13Apr93, 31Jan94, 14Dec94. */ @@ -1050,7 +1050,8 @@ get_prev_frame (struct frame_info *next_frame) /* This entry is in the frame queue now, which is good since FRAME_SAVED_PC may use that queue to figure out its value (see tm-sparc.h). We want the pc saved in the inferior frame. */ - prev->pc = (INIT_FRAME_PC (fromleaf, prev)); + if (DEPRECATED_INIT_FRAME_PC_P ()) + prev->pc = DEPRECATED_INIT_FRAME_PC (fromleaf, prev); /* If ->frame and ->pc are unchanged, we are in the process of getting ourselves into an infinite backtrace. Some architectures diff --git a/gdb/frv-tdep.c b/gdb/frv-tdep.c index b6f0b79a7d..0c14e53a00 100644 --- a/gdb/frv-tdep.c +++ b/gdb/frv-tdep.c @@ -1045,6 +1045,10 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) gdbarch = gdbarch_alloc (&info, var); + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); + set_gdbarch_short_bit (gdbarch, 16); set_gdbarch_int_bit (gdbarch, 32); set_gdbarch_long_bit (gdbarch, 32); diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index 999f32cd58..03a4ae3326 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -196,7 +196,7 @@ struct gdbarch int call_dummy_stack_adjust; gdbarch_fix_call_dummy_ftype *fix_call_dummy; gdbarch_deprecated_init_frame_pc_first_ftype *deprecated_init_frame_pc_first; - gdbarch_init_frame_pc_ftype *init_frame_pc; + gdbarch_deprecated_init_frame_pc_ftype *deprecated_init_frame_pc; int believe_pcc_promotion; int believe_pcc_promotion_type; gdbarch_coerce_float_to_double_ftype *coerce_float_to_double; @@ -533,7 +533,6 @@ gdbarch_alloc (const struct gdbarch_info *info, current_gdbarch->call_dummy_words = legacy_call_dummy_words; current_gdbarch->sizeof_call_dummy_words = legacy_sizeof_call_dummy_words; current_gdbarch->call_dummy_stack_adjust_p = -1; - current_gdbarch->init_frame_pc = init_frame_pc_default; current_gdbarch->coerce_float_to_double = default_coerce_float_to_double; current_gdbarch->register_convertible = generic_register_convertible_not; current_gdbarch->convert_register_p = legacy_convert_register_p; @@ -712,7 +711,7 @@ verify_gdbarch (struct gdbarch *gdbarch) && (gdbarch->fix_call_dummy == 0)) fprintf_unfiltered (log, "\n\tfix_call_dummy"); /* Skip verify of deprecated_init_frame_pc_first, has predicate */ - /* Skip verify of init_frame_pc, invalid_p == 0 */ + /* Skip verify of deprecated_init_frame_pc, has predicate */ /* Skip verify of coerce_float_to_double, invalid_p == 0 */ /* Skip verify of get_saved_register, has predicate */ /* Skip verify of register_convertible, invalid_p == 0 */ @@ -1192,6 +1191,26 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) (long) current_gdbarch->deprecated_extract_struct_value_address /*DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS ()*/); #endif +#ifdef DEPRECATED_INIT_FRAME_PC_P + fprintf_unfiltered (file, + "gdbarch_dump: %s # %s\n", + "DEPRECATED_INIT_FRAME_PC_P()", + XSTRING (DEPRECATED_INIT_FRAME_PC_P ())); + fprintf_unfiltered (file, + "gdbarch_dump: DEPRECATED_INIT_FRAME_PC_P() = %d\n", + DEPRECATED_INIT_FRAME_PC_P ()); +#endif +#ifdef DEPRECATED_INIT_FRAME_PC + fprintf_unfiltered (file, + "gdbarch_dump: %s # %s\n", + "DEPRECATED_INIT_FRAME_PC(fromleaf, prev)", + XSTRING (DEPRECATED_INIT_FRAME_PC (fromleaf, prev))); + if (GDB_MULTI_ARCH) + fprintf_unfiltered (file, + "gdbarch_dump: DEPRECATED_INIT_FRAME_PC = <0x%08lx>\n", + (long) current_gdbarch->deprecated_init_frame_pc + /*DEPRECATED_INIT_FRAME_PC ()*/); +#endif #ifdef DEPRECATED_INIT_FRAME_PC_FIRST_P fprintf_unfiltered (file, "gdbarch_dump: %s # %s\n", @@ -1577,17 +1596,6 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) (long) current_gdbarch->init_extra_frame_info /*INIT_EXTRA_FRAME_INFO ()*/); #endif -#ifdef INIT_FRAME_PC - fprintf_unfiltered (file, - "gdbarch_dump: %s # %s\n", - "INIT_FRAME_PC(fromleaf, prev)", - XSTRING (INIT_FRAME_PC (fromleaf, prev))); - if (GDB_MULTI_ARCH) - fprintf_unfiltered (file, - "gdbarch_dump: INIT_FRAME_PC = <0x%08lx>\n", - (long) current_gdbarch->init_frame_pc - /*INIT_FRAME_PC ()*/); -#endif #ifdef INNER_THAN fprintf_unfiltered (file, "gdbarch_dump: %s # %s\n", @@ -3804,23 +3812,30 @@ set_gdbarch_deprecated_init_frame_pc_first (struct gdbarch *gdbarch, gdbarch->deprecated_init_frame_pc_first = deprecated_init_frame_pc_first; } -CORE_ADDR -gdbarch_init_frame_pc (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev) +int +gdbarch_deprecated_init_frame_pc_p (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - if (gdbarch->init_frame_pc == 0) + return gdbarch->deprecated_init_frame_pc != 0; +} + +CORE_ADDR +gdbarch_deprecated_init_frame_pc (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev) +{ + gdb_assert (gdbarch != NULL); + if (gdbarch->deprecated_init_frame_pc == 0) internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_init_frame_pc invalid"); + "gdbarch: gdbarch_deprecated_init_frame_pc invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_init_frame_pc called\n"); - return gdbarch->init_frame_pc (fromleaf, prev); + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_init_frame_pc called\n"); + return gdbarch->deprecated_init_frame_pc (fromleaf, prev); } void -set_gdbarch_init_frame_pc (struct gdbarch *gdbarch, - gdbarch_init_frame_pc_ftype init_frame_pc) +set_gdbarch_deprecated_init_frame_pc (struct gdbarch *gdbarch, + gdbarch_deprecated_init_frame_pc_ftype deprecated_init_frame_pc) { - gdbarch->init_frame_pc = init_frame_pc; + gdbarch->deprecated_init_frame_pc = deprecated_init_frame_pc; } int diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index 026a9c0558..b8ad9a0e3b 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -1215,20 +1215,40 @@ extern void set_gdbarch_deprecated_init_frame_pc_first (struct gdbarch *gdbarch, #endif #endif -/* Default (function) for non- multi-arch platforms. */ -#if (!GDB_MULTI_ARCH) && !defined (INIT_FRAME_PC) -#define INIT_FRAME_PC(fromleaf, prev) (init_frame_pc_default (fromleaf, prev)) +#if defined (DEPRECATED_INIT_FRAME_PC) +/* Legacy for systems yet to multi-arch DEPRECATED_INIT_FRAME_PC */ +#if !defined (DEPRECATED_INIT_FRAME_PC_P) +#define DEPRECATED_INIT_FRAME_PC_P() (1) +#endif #endif -typedef CORE_ADDR (gdbarch_init_frame_pc_ftype) (int fromleaf, struct frame_info *prev); -extern CORE_ADDR gdbarch_init_frame_pc (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev); -extern void set_gdbarch_init_frame_pc (struct gdbarch *gdbarch, gdbarch_init_frame_pc_ftype *init_frame_pc); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (INIT_FRAME_PC) -#error "Non multi-arch definition of INIT_FRAME_PC" +/* Default predicate for non- multi-arch targets. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_INIT_FRAME_PC_P) +#define DEPRECATED_INIT_FRAME_PC_P() (0) +#endif + +extern int gdbarch_deprecated_init_frame_pc_p (struct gdbarch *gdbarch); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_INIT_FRAME_PC_P) +#error "Non multi-arch definition of DEPRECATED_INIT_FRAME_PC" +#endif +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_INIT_FRAME_PC_P) +#define DEPRECATED_INIT_FRAME_PC_P() (gdbarch_deprecated_init_frame_pc_p (current_gdbarch)) +#endif + +/* Default (function) for non- multi-arch platforms. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_INIT_FRAME_PC) +#define DEPRECATED_INIT_FRAME_PC(fromleaf, prev) (internal_error (__FILE__, __LINE__, "DEPRECATED_INIT_FRAME_PC"), 0) +#endif + +typedef CORE_ADDR (gdbarch_deprecated_init_frame_pc_ftype) (int fromleaf, struct frame_info *prev); +extern CORE_ADDR gdbarch_deprecated_init_frame_pc (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev); +extern void set_gdbarch_deprecated_init_frame_pc (struct gdbarch *gdbarch, gdbarch_deprecated_init_frame_pc_ftype *deprecated_init_frame_pc); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_INIT_FRAME_PC) +#error "Non multi-arch definition of DEPRECATED_INIT_FRAME_PC" #endif #if GDB_MULTI_ARCH -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (INIT_FRAME_PC) -#define INIT_FRAME_PC(fromleaf, prev) (gdbarch_init_frame_pc (current_gdbarch, fromleaf, prev)) +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_INIT_FRAME_PC) +#define DEPRECATED_INIT_FRAME_PC(fromleaf, prev) (gdbarch_deprecated_init_frame_pc (current_gdbarch, fromleaf, prev)) #endif #endif diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index 8ca7477260..8458ae3c5e 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -514,7 +514,7 @@ v:1:CALL_DUMMY_STACK_ADJUST_P:int:call_dummy_stack_adjust_p::::0:-1:::0x%08lx v:2:CALL_DUMMY_STACK_ADJUST:int:call_dummy_stack_adjust::::0:::gdbarch->call_dummy_stack_adjust_p && gdbarch->call_dummy_stack_adjust == 0:0x%08lx::CALL_DUMMY_STACK_ADJUST_P f:2:FIX_CALL_DUMMY:void:fix_call_dummy:char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p:dummy, pc, fun, nargs, args, type, gcc_p:::0 F:2:DEPRECATED_INIT_FRAME_PC_FIRST:CORE_ADDR:deprecated_init_frame_pc_first:int fromleaf, struct frame_info *prev:fromleaf, prev -f:2:INIT_FRAME_PC:CORE_ADDR:init_frame_pc:int fromleaf, struct frame_info *prev:fromleaf, prev:::init_frame_pc_default::0 +F::DEPRECATED_INIT_FRAME_PC:CORE_ADDR:deprecated_init_frame_pc:int fromleaf, struct frame_info *prev:fromleaf, prev # v:2:BELIEVE_PCC_PROMOTION:int:believe_pcc_promotion::::::: v:2:BELIEVE_PCC_PROMOTION_TYPE:int:believe_pcc_promotion_type::::::: diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c index 34cd1fbc83..0fc9d86d69 100644 --- a/gdb/h8300-tdep.c +++ b/gdb/h8300-tdep.c @@ -482,9 +482,10 @@ h8300_frame_init_saved_regs (struct frame_info *fi) } } -/* Given a GDB frame, determine the address of the calling function's frame. - This will be used to create a new GDB frame struct, and then - INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame. +/* Given a GDB frame, determine the address of the calling function's + frame. This will be used to create a new GDB frame struct, and + then INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC will be + called for the new frame. For us, the frame address is its stack pointer value, so we look up the function prologue to determine the caller's sp value, and return it. */ @@ -1079,6 +1080,10 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) gdbarch = gdbarch_alloc (&info, 0); + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); + /* * Basic register fields and methods. */ diff --git a/gdb/h8500-tdep.c b/gdb/h8500-tdep.c index a3d61b134f..b717401c6f 100644 --- a/gdb/h8500-tdep.c +++ b/gdb/h8500-tdep.c @@ -106,9 +106,10 @@ h8500_addr_bits_remove (CORE_ADDR addr) return ((addr) & 0xffffff); } -/* Given a GDB frame, determine the address of the calling function's frame. - This will be used to create a new GDB frame struct, and then - INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame. +/* Given a GDB frame, determine the address of the calling function's + frame. This will be used to create a new GDB frame struct, and + then INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC will be + called for the new frame. For us, the frame address is its stack pointer value, so we look up the function prologue to determine the caller's sp value, and return it. */ diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c index 2ea7906428..704d26d2aa 100644 --- a/gdb/hppa-tdep.c +++ b/gdb/hppa-tdep.c @@ -1080,9 +1080,10 @@ init_extra_frame_info (int fromleaf, struct frame_info *frame) frame->frame = read_register (SP_REGNUM) - framesize; } -/* Given a GDB frame, determine the address of the calling function's frame. - This will be used to create a new GDB frame struct, and then - INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame. +/* Given a GDB frame, determine the address of the calling function's + frame. This will be used to create a new GDB frame struct, and + then INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC will be + called for the new frame. This may involve searching through prologues for several functions at boundaries where GCC calls HP C code, or where code which has diff --git a/gdb/i386-interix-tdep.c b/gdb/i386-interix-tdep.c index 46a2be970b..62bc49637e 100644 --- a/gdb/i386-interix-tdep.c +++ b/gdb/i386-interix-tdep.c @@ -331,7 +331,7 @@ i386_interix_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_skip_trampoline_code (gdbarch, i386_interix_skip_trampoline_code); set_gdbarch_init_extra_frame_info (gdbarch, i386_interix_back_one_frame); - set_gdbarch_init_frame_pc (gdbarch, init_frame_pc_noop); + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_noop); set_gdbarch_frame_chain_valid (gdbarch, i386_interix_frame_chain_valid); set_gdbarch_frame_saved_pc (gdbarch, i386_interix_frame_saved_pc); set_gdbarch_name_of_malloc (gdbarch, "_malloc"); diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index d1230f12f7..5d76460831 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -1519,6 +1519,10 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) tdep = XMALLOC (struct gdbarch_tdep); gdbarch = gdbarch_alloc (&info, tdep); + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); + tdep->osabi = osabi; /* The i386 default settings don't include the SSE registers. diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c index 0587f0b1f9..fab210aa86 100644 --- a/gdb/ia64-tdep.c +++ b/gdb/ia64-tdep.c @@ -2120,6 +2120,9 @@ ia64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) gdbarch = gdbarch_alloc (&info, tdep); tdep->os_ident = os_ident; + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); /* Set the method of obtaining the sigcontext addresses at which registers are saved. The method of checking to see if diff --git a/gdb/m32r-tdep.c b/gdb/m32r-tdep.c index 649d396545..eeb6335131 100644 --- a/gdb/m32r-tdep.c +++ b/gdb/m32r-tdep.c @@ -470,11 +470,11 @@ m32r_find_callers_reg (struct frame_info *fi, int regnum) return read_register (regnum); } -/* Function: frame_chain - Given a GDB frame, determine the address of the calling function's frame. - This will be used to create a new GDB frame struct, and then - INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame. - For m32r, we save the frame size when we initialize the frame_info. */ +/* Function: frame_chain Given a GDB frame, determine the address of + the calling function's frame. This will be used to create a new + GDB frame struct, and then INIT_EXTRA_FRAME_INFO and + DEPRECATED_INIT_FRAME_PC will be called for the new frame. For + m32r, we save the frame size when we initialize the frame_info. */ CORE_ADDR m32r_frame_chain (struct frame_info *fi) diff --git a/gdb/m68hc11-tdep.c b/gdb/m68hc11-tdep.c index 2e21abf01f..7b2dc43809 100644 --- a/gdb/m68hc11-tdep.c +++ b/gdb/m68hc11-tdep.c @@ -802,10 +802,10 @@ m68hc11_skip_prologue (CORE_ADDR pc) return pc; } -/* Given a GDB frame, determine the address of the calling function's frame. - This will be used to create a new GDB frame struct, and then - INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame. -*/ +/* Given a GDB frame, determine the address of the calling function's + frame. This will be used to create a new GDB frame struct, and + then INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC will be + called for the new frame. */ static CORE_ADDR m68hc11_frame_chain (struct frame_info *frame) @@ -1236,6 +1236,10 @@ m68hc11_gdbarch_init (struct gdbarch_info info, gdbarch = gdbarch_alloc (&info, tdep); tdep->elf_flags = elf_flags; + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); + switch (info.bfd_arch_info->arch) { case bfd_arch_m68hc11: diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c index 3f16e19cc7..8735e07bd5 100644 --- a/gdb/m68k-tdep.c +++ b/gdb/m68k-tdep.c @@ -983,6 +983,10 @@ m68k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) gdbarch = gdbarch_alloc (&info, 0); + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); + set_gdbarch_long_double_format (gdbarch, &floatformat_m68881_ext); set_gdbarch_long_double_bit (gdbarch, 96); diff --git a/gdb/mcore-tdep.c b/gdb/mcore-tdep.c index f29b3a87c7..ae2821f87f 100644 --- a/gdb/mcore-tdep.c +++ b/gdb/mcore-tdep.c @@ -638,9 +638,10 @@ mcore_analyze_prologue (struct frame_info *fi, CORE_ADDR pc, int skip_prologue) return addr; } -/* Given a GDB frame, determine the address of the calling function's frame. - This will be used to create a new GDB frame struct, and then - INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame. */ +/* Given a GDB frame, determine the address of the calling function's + frame. This will be used to create a new GDB frame struct, and + then INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC will be + called for the new frame. */ CORE_ADDR mcore_frame_chain (struct frame_info * fi) @@ -1084,6 +1085,10 @@ mcore_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) gdbarch = gdbarch_alloc (&info, 0); + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); + /* Registers: */ /* All registers are 32 bits */ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index fc51c6ede4..799415a390 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -5966,7 +5966,7 @@ mips_gdbarch_init (struct gdbarch_info info, /* There's a mess in stack frame creation. See comments in blockframe.c near reference to DEPRECATED_INIT_FRAME_PC_FIRST. */ set_gdbarch_deprecated_init_frame_pc_first (gdbarch, mips_init_frame_pc_first); - set_gdbarch_init_frame_pc (gdbarch, init_frame_pc_noop); + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_noop); /* Map debug register numbers onto internal register numbers. */ set_gdbarch_stab_reg_to_regnum (gdbarch, mips_stab_reg_to_regnum); diff --git a/gdb/mn10300-tdep.c b/gdb/mn10300-tdep.c index f68664d19b..e503d197ad 100644 --- a/gdb/mn10300-tdep.c +++ b/gdb/mn10300-tdep.c @@ -1167,7 +1167,7 @@ mn10300_gdbarch_init (struct gdbarch_info info, set_gdbarch_frame_chain_valid (gdbarch, generic_file_frame_chain_valid); set_gdbarch_saved_pc_after_call (gdbarch, mn10300_saved_pc_after_call); set_gdbarch_init_extra_frame_info (gdbarch, mn10300_init_extra_frame_info); - set_gdbarch_init_frame_pc (gdbarch, init_frame_pc_noop); + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_noop); set_gdbarch_frame_init_saved_regs (gdbarch, mn10300_frame_init_saved_regs); set_gdbarch_frame_chain (gdbarch, mn10300_frame_chain); set_gdbarch_frame_saved_pc (gdbarch, mn10300_frame_saved_pc); diff --git a/gdb/ns32k-tdep.c b/gdb/ns32k-tdep.c index 26e88cd3b1..6e51b83216 100644 --- a/gdb/ns32k-tdep.c +++ b/gdb/ns32k-tdep.c @@ -560,6 +560,10 @@ ns32k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) tdep = xmalloc (sizeof (struct gdbarch_tdep)); gdbarch = gdbarch_alloc (&info, tdep); + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); + tdep->osabi = osabi; /* Register info */ diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c index 48842dafc4..964c23a31b 100644 --- a/gdb/s390-tdep.c +++ b/gdb/s390-tdep.c @@ -1761,6 +1761,10 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Yes: create a new gdbarch for the specified machine type. */ gdbarch = gdbarch_alloc (&info, NULL); + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); + set_gdbarch_believe_pcc_promotion (gdbarch, 0); set_gdbarch_char_signed (gdbarch, 0); diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c index b25ff5ab87..dc68b15fad 100644 --- a/gdb/sh-tdep.c +++ b/gdb/sh-tdep.c @@ -918,9 +918,10 @@ gdb_print_insn_sh (bfd_vma memaddr, disassemble_info *info) return print_insn_sh (memaddr, info); } -/* Given a GDB frame, determine the address of the calling function's frame. - This will be used to create a new GDB frame struct, and then - INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame. +/* Given a GDB frame, determine the address of the calling function's + frame. This will be used to create a new GDB frame struct, and + then INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC will be + called for the new frame. For us, the frame address is its stack pointer value, so we look up the function prologue to determine the caller's sp value, and return it. */ @@ -4241,6 +4242,10 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) tdep = XMALLOC (struct gdbarch_tdep); gdbarch = gdbarch_alloc (&info, tdep); + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); + tdep->osabi = osabi; /* Initialize the register numbers that are not common to all the diff --git a/gdb/v850-tdep.c b/gdb/v850-tdep.c index 6c54769104..6872de81a9 100644 --- a/gdb/v850-tdep.c +++ b/gdb/v850-tdep.c @@ -1197,6 +1197,10 @@ v850_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) gdbarch = gdbarch_alloc (&info, 0); + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); + for (i = 0; v850_processor_type_table[i].regnames != NULL; i++) { if (v850_processor_type_table[i].mach == info.bfd_arch_info->mach) diff --git a/gdb/vax-tdep.c b/gdb/vax-tdep.c index 119f013083..359029de67 100644 --- a/gdb/vax-tdep.c +++ b/gdb/vax-tdep.c @@ -632,6 +632,10 @@ vax_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) tdep = xmalloc (sizeof (struct gdbarch_tdep)); gdbarch = gdbarch_alloc (&info, tdep); + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); + tdep->osabi = osabi; /* Register info */ diff --git a/gdb/x86-64-tdep.c b/gdb/x86-64-tdep.c index 8b76341567..1a65131579 100644 --- a/gdb/x86-64-tdep.c +++ b/gdb/x86-64-tdep.c @@ -1032,7 +1032,7 @@ x86_64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_init_extra_frame_info (gdbarch, cfi_init_extra_frame_info); /* Frame PC initialization is handled by using CFI. */ - set_gdbarch_init_frame_pc (gdbarch, x86_64_init_frame_pc); + set_gdbarch_deprecated_init_frame_pc (gdbarch, x86_64_init_frame_pc); /* Cons up virtual frame pointer for trace. */ set_gdbarch_virtual_frame_pointer (gdbarch, cfi_virtual_frame_pointer); diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c index 7d59216146..fb7ff3ce01 100644 --- a/gdb/xstormy16-tdep.c +++ b/gdb/xstormy16-tdep.c @@ -1023,6 +1023,10 @@ xstormy16_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) gdbarch = gdbarch_alloc (&info, 0); + /* NOTE: cagney/2002-12-06: This can be deleted when this arch is + ready to unwind the PC first (see frame.c:get_prev_frame()). */ + set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); + /* * Basic register fields and methods. */