From 5259796be2dcfdbb88a281cab9030d3f37c3bacb Mon Sep 17 00:00:00 2001 From: John Gilmore Date: Wed, 14 Aug 1991 00:00:25 +0000 Subject: * blockframe.c (frameless_look_for_prologue): Speed up by calling SKIP_PROLOGUE_FRAMELESS_P if it's defined. * tm-sparc.h (SKIP_PROLOGUE, SKIP_PROLOGUE_FRAMELESS_P): Define two variants, one faster. * sparc-tdep.c (sparc_frame_chain): Use target_read_memory and return zero, rather than giving an error. (setup_arbitrary_frame): Initialize the PC in the new frame. (skip_prologue): Add a second arg saying whether we're just checking for a frameless function or not. --- gdb/tm-sparc.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'gdb/tm-sparc.h') diff --git a/gdb/tm-sparc.h b/gdb/tm-sparc.h index 3f3f2e4..7f0fb4e 100644 --- a/gdb/tm-sparc.h +++ b/gdb/tm-sparc.h @@ -64,10 +64,15 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #define FUNCTION_START_OFFSET 0 /* Advance PC across any function entry prologue instructions - to reach some "real" code. */ + to reach some "real" code. SKIP_PROLOGUE_FRAMELESS_P advances + the PC past some of the prologue, but stops as soon as it + knows that the function has a frame. Its result is equal + to its input PC if the function is frameless, unequal otherwise. */ #define SKIP_PROLOGUE(pc) \ - { pc = skip_prologue (pc); } + { pc = skip_prologue (pc, 0); } +#define SKIP_PROLOGUE_FRAMELESS_P(pc) \ + { pc = skip_prologue (pc, 1); } extern CORE_ADDR skip_prologue (); /* Immediately after a function call, return the saved pc. @@ -570,7 +575,7 @@ extern void single_step (); /* We need two arguments (in general) to the "info frame" command. Note that the definition of this macro implies that there exists a - function "setup_arbitrary_frame" in mach-dep.c */ + function "setup_arbitrary_frame" in sparc-tdep.c */ #define FRAME_SPECIFICATION_DYADIC -- cgit v1.1