From 31687c3c2505191d73aa0036d62f2794a1f7d0d9 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Thu, 12 Feb 2004 16:52:45 +0000 Subject: [PATCH] 2004-02-12 Andrew Cagney * gdbarch.sh (PROLOGUE_FRAMELESS_P): Delete. gdbarch.h, gdbarch.c: Re-generate. * cris-tdep.c (cris_gdbarch_init): Do not set prologue_frameless_p to generic_prologue_frameless_p. * arch-utils.h (generic_prologue_frameless_p): Delete declaration. * arch-utils.c (generic_prologue_frameless_p): Delete function. --- gdb/ChangeLog | 9 +++++++++ gdb/arch-utils.c | 6 ------ gdb/arch-utils.h | 5 ----- gdb/blockframe.c | 13 ++++++++++--- gdb/cris-tdep.c | 1 - gdb/gdbarch.c | 31 ------------------------------- gdb/gdbarch.h | 10 ---------- gdb/gdbarch.sh | 1 - 8 files changed, 19 insertions(+), 57 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 930c2fa1698..8040ed1d553 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2004-02-12 Andrew Cagney + + * gdbarch.sh (PROLOGUE_FRAMELESS_P): Delete. + gdbarch.h, gdbarch.c: Re-generate. + * cris-tdep.c (cris_gdbarch_init): Do not set prologue_frameless_p + to generic_prologue_frameless_p. + * arch-utils.h (generic_prologue_frameless_p): Delete declaration. + * arch-utils.c (generic_prologue_frameless_p): Delete function. + 2004-02-11 Daniel Jacobowitz * mips-linux-tdep.c: Include "frame.h". diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c index a5d8a1c11b1..e8c070d1080 100644 --- a/gdb/arch-utils.c +++ b/gdb/arch-utils.c @@ -143,12 +143,6 @@ generic_remote_translate_xfer_address (struct gdbarch *gdbarch, *rem_len = gdb_len; } -int -generic_prologue_frameless_p (CORE_ADDR ip) -{ - return ip == SKIP_PROLOGUE (ip); -} - /* Helper functions for INNER_THAN */ int diff --git a/gdb/arch-utils.h b/gdb/arch-utils.h index f8bd5bbfada..b15f6912cd8 100644 --- a/gdb/arch-utils.h +++ b/gdb/arch-utils.h @@ -61,11 +61,6 @@ extern int legacy_sizeof_call_dummy_words; /* Typical remote_translate_xfer_address */ extern gdbarch_remote_translate_xfer_address_ftype generic_remote_translate_xfer_address; -/* Generic implementation of prologue_frameless_p. Just calls - SKIP_PROLOG and checks the return value to see if it actually - changed. */ -extern gdbarch_prologue_frameless_p_ftype generic_prologue_frameless_p; - /* The only possible cases for inner_than. */ extern int core_addr_lessthan (CORE_ADDR lhs, CORE_ADDR rhs); extern int core_addr_greaterthan (CORE_ADDR lhs, CORE_ADDR rhs); diff --git a/gdb/blockframe.c b/gdb/blockframe.c index 409ec946156..701d9865132 100644 --- a/gdb/blockframe.c +++ b/gdb/blockframe.c @@ -199,9 +199,16 @@ frameless_look_for_prologue (struct frame_info *frame) if (func_start) { func_start += FUNCTION_START_OFFSET; - /* This is faster, since only care whether there *is* a - prologue, not how long it is. */ - return PROLOGUE_FRAMELESS_P (func_start); + /* NOTE: cagney/2004-02-09: Eliminated per-architecture + PROLOGUE_FRAMELESS_P call as architectures with custom + implementations had all been deleted. Eventually even this + function can go - GDB no longer tries to differentiate + between framed, frameless and stackless functions. They are + all now considered equally evil :-^. */ + /* If skipping the prologue ends up skips nothing, there must be + no prologue and hence no code creating a frame. There for + the function is "frameless" :-/. */ + return func_start == SKIP_PROLOGUE (func_start); } else if (get_frame_pc (frame) == 0) /* A frame with a zero PC is usually created by dereferencing a diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c index 7efc4a609d8..5b1f9db682f 100644 --- a/gdb/cris-tdep.c +++ b/gdb/cris-tdep.c @@ -4259,7 +4259,6 @@ cris_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, cris_frame_init_saved_regs); set_gdbarch_deprecated_init_extra_frame_info (gdbarch, cris_init_extra_frame_info); set_gdbarch_skip_prologue (gdbarch, cris_skip_prologue); - set_gdbarch_prologue_frameless_p (gdbarch, generic_prologue_frameless_p); /* The stack grows downward. */ set_gdbarch_inner_than (gdbarch, core_addr_lessthan); diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index 911075c3731..d46d2d530e3 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -212,7 +212,6 @@ struct gdbarch gdbarch_deprecated_frame_init_saved_regs_ftype *deprecated_frame_init_saved_regs; gdbarch_deprecated_init_extra_frame_info_ftype *deprecated_init_extra_frame_info; gdbarch_skip_prologue_ftype *skip_prologue; - gdbarch_prologue_frameless_p_ftype *prologue_frameless_p; gdbarch_inner_than_ftype *inner_than; gdbarch_breakpoint_from_pc_ftype *breakpoint_from_pc; gdbarch_adjust_breakpoint_address_ftype *adjust_breakpoint_address; @@ -383,7 +382,6 @@ struct gdbarch startup_gdbarch = 0, /* deprecated_frame_init_saved_regs */ 0, /* deprecated_init_extra_frame_info */ 0, /* skip_prologue */ - 0, /* prologue_frameless_p */ 0, /* inner_than */ 0, /* breakpoint_from_pc */ 0, /* adjust_breakpoint_address */ @@ -519,7 +517,6 @@ gdbarch_alloc (const struct gdbarch_info *info, current_gdbarch->extract_return_value = legacy_extract_return_value; current_gdbarch->store_return_value = legacy_store_return_value; current_gdbarch->use_struct_convention = generic_use_struct_convention; - current_gdbarch->prologue_frameless_p = generic_prologue_frameless_p; current_gdbarch->memory_insert_breakpoint = default_memory_insert_breakpoint; current_gdbarch->memory_remove_breakpoint = default_memory_remove_breakpoint; current_gdbarch->remote_translate_xfer_address = generic_remote_translate_xfer_address; @@ -691,7 +688,6 @@ verify_gdbarch (struct gdbarch *current_gdbarch) if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && (current_gdbarch->skip_prologue == 0)) fprintf_unfiltered (log, "\n\tskip_prologue"); - /* Skip verify of prologue_frameless_p, invalid_p == 0 */ if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && (current_gdbarch->inner_than == 0)) fprintf_unfiltered (log, "\n\tinner_than"); @@ -2020,16 +2016,6 @@ gdbarch_dump (struct gdbarch *current_gdbarch, struct ui_file *file) fprintf_unfiltered (file, "gdbarch_dump: print_vector_info = 0x%08lx\n", (long) current_gdbarch->print_vector_info); -#ifdef PROLOGUE_FRAMELESS_P - fprintf_unfiltered (file, - "gdbarch_dump: %s # %s\n", - "PROLOGUE_FRAMELESS_P(ip)", - XSTRING (PROLOGUE_FRAMELESS_P (ip))); - fprintf_unfiltered (file, - "gdbarch_dump: PROLOGUE_FRAMELESS_P = <0x%08lx>\n", - (long) current_gdbarch->prologue_frameless_p - /*PROLOGUE_FRAMELESS_P ()*/); -#endif #ifdef PS_REGNUM fprintf_unfiltered (file, "gdbarch_dump: PS_REGNUM # %s\n", @@ -4431,23 +4417,6 @@ set_gdbarch_skip_prologue (struct gdbarch *gdbarch, gdbarch->skip_prologue = skip_prologue; } -int -gdbarch_prologue_frameless_p (struct gdbarch *gdbarch, CORE_ADDR ip) -{ - gdb_assert (gdbarch != NULL); - gdb_assert (gdbarch->prologue_frameless_p != NULL); - if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_prologue_frameless_p called\n"); - return gdbarch->prologue_frameless_p (ip); -} - -void -set_gdbarch_prologue_frameless_p (struct gdbarch *gdbarch, - gdbarch_prologue_frameless_p_ftype prologue_frameless_p) -{ - gdbarch->prologue_frameless_p = prologue_frameless_p; -} - int gdbarch_inner_than (struct gdbarch *gdbarch, CORE_ADDR lhs, CORE_ADDR rhs) { diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index e6651c7d9d3..bce32b4b891 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -1612,16 +1612,6 @@ extern void set_gdbarch_skip_prologue (struct gdbarch *gdbarch, gdbarch_skip_pro #define SKIP_PROLOGUE(ip) (gdbarch_skip_prologue (current_gdbarch, ip)) #endif -typedef int (gdbarch_prologue_frameless_p_ftype) (CORE_ADDR ip); -extern int gdbarch_prologue_frameless_p (struct gdbarch *gdbarch, CORE_ADDR ip); -extern void set_gdbarch_prologue_frameless_p (struct gdbarch *gdbarch, gdbarch_prologue_frameless_p_ftype *prologue_frameless_p); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (PROLOGUE_FRAMELESS_P) -#error "Non multi-arch definition of PROLOGUE_FRAMELESS_P" -#endif -#if !defined (PROLOGUE_FRAMELESS_P) -#define PROLOGUE_FRAMELESS_P(ip) (gdbarch_prologue_frameless_p (current_gdbarch, ip)) -#endif - typedef int (gdbarch_inner_than_ftype) (CORE_ADDR lhs, CORE_ADDR rhs); extern int gdbarch_inner_than (struct gdbarch *gdbarch, CORE_ADDR lhs, CORE_ADDR rhs); extern void set_gdbarch_inner_than (struct gdbarch *gdbarch, gdbarch_inner_than_ftype *inner_than); diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index 08c6f3cac16..0c5a44038bb 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -640,7 +640,6 @@ F:2:DEPRECATED_FRAME_INIT_SAVED_REGS:void:deprecated_frame_init_saved_regs:struc F:2:DEPRECATED_INIT_EXTRA_FRAME_INFO:void:deprecated_init_extra_frame_info:int fromleaf, struct frame_info *frame:fromleaf, frame # f:2:SKIP_PROLOGUE:CORE_ADDR:skip_prologue:CORE_ADDR ip:ip::0:0 -f:2:PROLOGUE_FRAMELESS_P:int:prologue_frameless_p:CORE_ADDR ip:ip::0:generic_prologue_frameless_p::0 f:2:INNER_THAN:int:inner_than:CORE_ADDR lhs, CORE_ADDR rhs:lhs, rhs::0:0 f::BREAKPOINT_FROM_PC:const unsigned char *:breakpoint_from_pc:CORE_ADDR *pcptr, int *lenptr:pcptr, lenptr:::0: M:2:ADJUST_BREAKPOINT_ADDRESS:CORE_ADDR:adjust_breakpoint_address:CORE_ADDR bpaddr:bpaddr -- 2.30.2