summaryrefslogtreecommitdiffstats
path: root/gdb/rs6000-tdep.c
diff options
context:
space:
mode:
authorPeter Schauer <Peter.Schauer@mytum.de>2000-09-24 09:58:16 +0000
committerPeter Schauer <Peter.Schauer@mytum.de>2000-09-24 09:58:16 +0000
commit582236304cbb83fa360f178a9fa5b3e036e7a0a9 (patch)
tree8be6716168f13ed97fb2b2d15692f42cdd4f6850 /gdb/rs6000-tdep.c
parent0e7e8d51a4cc7dd8b40e4a4032bab953fed4e204 (diff)
downloadppe42-binutils-582236304cbb83fa360f178a9fa5b3e036e7a0a9.tar.gz
ppe42-binutils-582236304cbb83fa360f178a9fa5b3e036e7a0a9.zip
* rs6000-tdep.c (rs6000_pop_frame): Use PC_IN_CALL_DUMMY to test
for call dummy instead of accessing stop_stack_dummy, which does not work if we `return' from a stop in a call dummy. (rs6000_gdbarch_init): Use generic_save_dummy_frame_tos for dummy_frame_tos function to make PC_IN_CALL_DUMMY work.
Diffstat (limited to 'gdb/rs6000-tdep.c')
-rw-r--r--gdb/rs6000-tdep.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 2c9e134469..ccb4299684 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -671,8 +671,6 @@ skip_prologue (CORE_ADDR pc, struct rs6000_framedata *fdata)
frames, etc.
*************************************************************************/
-extern int stop_stack_dummy;
-
/* Pop the innermost frame, go back to the caller. */
@@ -687,7 +685,7 @@ rs6000_pop_frame (void)
pc = read_pc ();
sp = FRAME_FP (frame);
- if (stop_stack_dummy)
+ if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
{
generic_pop_dummy_frame ();
flush_cached_frames ();
@@ -2140,6 +2138,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_get_saved_register (gdbarch, generic_get_saved_register);
set_gdbarch_fix_call_dummy (gdbarch, rs6000_fix_call_dummy);
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
+ set_gdbarch_save_dummy_frame_tos (gdbarch, generic_save_dummy_frame_tos);
set_gdbarch_push_return_address (gdbarch, ppc_push_return_address);
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
set_gdbarch_coerce_float_to_double (gdbarch, rs6000_coerce_float_to_double);
OpenPOWER on IntegriCloud