This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[rfa:ppc] Eliminate write_sp, but how?
- From: Andrew Cagney <ac131313 at redhat dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: Wed, 10 Sep 2003 17:39:33 -0400
- Subject: [rfa:ppc] Eliminate write_sp, but how?
This one liner isn't obvious.
The various ABIs have a requrement that the SP be decremented before
writing anything to the stack (ignoring the red zone). This is to stop
signal handlers and the like trashing the callers stack. The two PPC
push_dummy_call (nee push_arguments) methods are already carefully
complying to this requirement (setting SP before using the stack) and
hence [deprecated] write_sp method which also sets the SP before a call
is entirely redundant.
Thing is, I don't see any reason to exactly matching the ABI behavior
(that thread is stopped so it won't get anything writing to its stack)
and further, I think exactly matching the behavior makes the code harder
to understand (I'm having trouble convincing my self that it does what I
think it does :-).
So, in addition to eliminating deprecated write_sp, would it be ok to
move the write SP code to the end of the push_dummy_call methods?
Andrew
2003-09-10 Andrew Cagney <cagney@redhat.com>
* rs6000-tdep.c (rs6000_gdbarch_init): Do not set
"deprecated_dummy_write_sp".
Index: rs6000-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/rs6000-tdep.c,v
retrieving revision 1.155
diff -u -r1.155 rs6000-tdep.c
--- rs6000-tdep.c 9 Sep 2003 22:41:47 -0000 1.155
+++ rs6000-tdep.c 10 Sep 2003 21:03:39 -0000
@@ -2896,7 +2896,6 @@
set_gdbarch_print_insn (gdbarch, gdb_print_insn_powerpc);
set_gdbarch_write_pc (gdbarch, generic_target_write_pc);
- set_gdbarch_deprecated_dummy_write_sp (gdbarch, deprecated_write_sp);
set_gdbarch_num_regs (gdbarch, v->nregs);
set_gdbarch_num_pseudo_regs (gdbarch, v->npregs);