* rs6000-tdep.c (rs6000_pop_frame): Use PC_IN_CALL_DUMMY to test
authorPeter Schauer <Peter.Schauer@mytum.de>
Sun, 24 Sep 2000 09:58:16 +0000 (09:58 +0000)
committerPeter Schauer <Peter.Schauer@mytum.de>
Sun, 24 Sep 2000 09:58:16 +0000 (09:58 +0000)
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.

gdb/ChangeLog
gdb/rs6000-tdep.c

index 3d6041ffdf4cfff209a6f2d2a28b0ca0442727ae..57cc3d16f94066b96b481e289ba1208a93f2ce62 100644 (file)
@@ -1,3 +1,11 @@
+2000-09-24  Peter Schauer  <pes@regent.e-technik.tu-muenchen.de>
+
+       * 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.
+
 2000-09-23  Kevin Buettner  <kevinb@redhat.com>
 
        * mdebugread.c (mdebug_next_symbol_text): Protoize.
index 2c9e13446909ce24f0b132844d235e728fe009cb..ccb4299684b81c2963208d1721ebec5ee7e68b0f 100644 (file)
@@ -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);