This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [rfa:ppc] Eliminate write_sp, but how?
- From: Kevin Buettner <kevinb at redhat dot com>
- To: Andrew Cagney <ac131313 at redhat dot com>, gdb-patches at sources dot redhat dot com
- Date: Wed, 10 Sep 2003 15:14:44 -0700
- Subject: Re: [rfa:ppc] Eliminate write_sp, but how?
- References: <3F5F9A15.8090801@redhat.com>
On Sep 10, 5:39pm, Andrew Cagney wrote:
> 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 :-).
I agree with you.
> 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?
I can't think of any problems that would arise from moving the "write
SP" code to the end of the various push_dummy_call() methods. But
just in case, when you change it, please note how it used to be done
and why doing it in a different location *shouldn't* be a problem.
(It may someday make it easier to debug that obscure target which
randomly picks a stopped thread's stack to service an interrupt...)
> 2003-09-10 Andrew Cagney <cagney@redhat.com>
>
> * rs6000-tdep.c (rs6000_gdbarch_init): Do not set
> "deprecated_dummy_write_sp".
Okay.
Kevin