aboutsummaryrefslogtreecommitdiff
path: root/gdb/tm-sparc.h
diff options
context:
space:
mode:
authorJohn Gilmore <gnu@cygnus>1991-08-14 00:00:25 +0000
committerJohn Gilmore <gnu@cygnus>1991-08-14 00:00:25 +0000
commit5259796be2dcfdbb88a281cab9030d3f37c3bacb (patch)
tree33f4fc155f99dda448a3a29cfa2b19700b243270 /gdb/tm-sparc.h
parent39c52804dfd59b6d75331ff51abfba02460c5a7a (diff)
downloadgdb-5259796be2dcfdbb88a281cab9030d3f37c3bacb.zip
gdb-5259796be2dcfdbb88a281cab9030d3f37c3bacb.tar.gz
gdb-5259796be2dcfdbb88a281cab9030d3f37c3bacb.tar.bz2
* 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.
Diffstat (limited to 'gdb/tm-sparc.h')
-rw-r--r--gdb/tm-sparc.h11
1 files changed, 8 insertions, 3 deletions
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