diff options
author | David S. Miller <davem@redhat.com> | 2002-04-22 00:27:39 +0000 |
---|---|---|
committer | David S. Miller <davem@redhat.com> | 2002-04-22 00:27:39 +0000 |
commit | 9319a2feca1b89d455884f911a662c09fcd05a8e (patch) | |
tree | 9268993710973e30f597d9d2d52ff60942485262 /gdb/sparc-tdep.c | |
parent | eaa7db9139bb30566dd0a20f83a4b2257829d580 (diff) | |
download | gdb-9319a2feca1b89d455884f911a662c09fcd05a8e.zip gdb-9319a2feca1b89d455884f911a662c09fcd05a8e.tar.gz gdb-9319a2feca1b89d455884f911a662c09fcd05a8e.tar.bz2 |
2002-04-21 David S. Miller <davem@redhat.com>
* arch-utils.c (generic_prologue_frameless_p): Kill
SKIP_PROLOGUE_FRAMELESS_P code.
* config/arc/tm-arc.h (SKIP_PROLOGUE_FRAMELESS_P): Delete
references.
(PROLOGUE_FRAMELESS_P, arc_prologue_frameless_p): New.
* arc-tdep.c (arc_prologue_frameless_p): Implement.
* config/arc/tm-sparc.h (SKIP_PROLOGUE_FRAMELESS_P): Delete
references.
(PROLOGUE_FRAMELESS_P, sparc_prologue_frameless_p): New.
* sparc-tdep.c (sparc_prologue_frameless_p): Implement.
(sparc_gdbarch_init): Pass it to
set_gdbarch_prologue_frameless_p.
Diffstat (limited to 'gdb/sparc-tdep.c')
-rw-r--r-- | gdb/sparc-tdep.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c index 88aeb67..274daa6 100644 --- a/gdb/sparc-tdep.c +++ b/gdb/sparc-tdep.c @@ -691,6 +691,14 @@ sparc_skip_prologue (CORE_ADDR start_pc, int frameless_p) return examine_prologue (start_pc, frameless_p, NULL, NULL); } +/* Is the prologue at IP frameless? */ + +int +sparc_prologue_frameless_p (CORE_ADDR ip) +{ + return ip == sparc_skip_prologue (ip, 1); +} + /* Check instruction at ADDR to see if it is a branch. All non-annulled instructions will go to NPC or will trap. Set *TARGET if we find a candidate branch; set to zero if not. @@ -2777,10 +2785,7 @@ sparc64_register_byte (int regno) } /* Advance PC across any function entry prologue instructions 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. */ + some "real" code. */ static CORE_ADDR sparc_gdbarch_skip_prologue (CORE_ADDR ip) @@ -2986,6 +2991,7 @@ sparc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_reg_struct_has_addr (gdbarch, sparc_reg_struct_has_addr); set_gdbarch_return_value_on_stack (gdbarch, sparc_return_value_on_stack); set_gdbarch_saved_pc_after_call (gdbarch, sparc_saved_pc_after_call); + set_gdbarch_prologue_frameless_p (gdbarch, sparc_prologue_frameless_p); set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT); set_gdbarch_skip_prologue (gdbarch, sparc_gdbarch_skip_prologue); set_gdbarch_sp_regnum (gdbarch, SPARC_SP_REGNUM); |