* 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.
This commit is contained in:
parent
0e7e8d51a4
commit
582236304c
2 changed files with 10 additions and 3 deletions
|
@ -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>
|
2000-09-23 Kevin Buettner <kevinb@redhat.com>
|
||||||
|
|
||||||
* mdebugread.c (mdebug_next_symbol_text): Protoize.
|
* mdebugread.c (mdebug_next_symbol_text): Protoize.
|
||||||
|
|
|
@ -671,8 +671,6 @@ skip_prologue (CORE_ADDR pc, struct rs6000_framedata *fdata)
|
||||||
frames, etc.
|
frames, etc.
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
extern int stop_stack_dummy;
|
|
||||||
|
|
||||||
|
|
||||||
/* Pop the innermost frame, go back to the caller. */
|
/* Pop the innermost frame, go back to the caller. */
|
||||||
|
|
||||||
|
@ -687,7 +685,7 @@ rs6000_pop_frame (void)
|
||||||
pc = read_pc ();
|
pc = read_pc ();
|
||||||
sp = FRAME_FP (frame);
|
sp = FRAME_FP (frame);
|
||||||
|
|
||||||
if (stop_stack_dummy)
|
if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
|
||||||
{
|
{
|
||||||
generic_pop_dummy_frame ();
|
generic_pop_dummy_frame ();
|
||||||
flush_cached_frames ();
|
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_get_saved_register (gdbarch, generic_get_saved_register);
|
||||||
set_gdbarch_fix_call_dummy (gdbarch, rs6000_fix_call_dummy);
|
set_gdbarch_fix_call_dummy (gdbarch, rs6000_fix_call_dummy);
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
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_push_return_address (gdbarch, ppc_push_return_address);
|
||||||
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
|
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
|
||||||
set_gdbarch_coerce_float_to_double (gdbarch, rs6000_coerce_float_to_double);
|
set_gdbarch_coerce_float_to_double (gdbarch, rs6000_coerce_float_to_double);
|
||||||
|
|
Loading…
Add table
Reference in a new issue