This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [rfa:ppc] Eliminate write_sp, but how?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]