Re: [PowerPC] PR23774 stack backchain broken saga

2005-09-13 Thread Segher Boessenkool
Especially as the ABI states that the write of the backlink and the stack pointer update _have_ to be done in one insn. That's on allocation. Deallocation isn't so critical. You just need to ensure the backchain is written before updating sp. Yes, but your example generated code showed all

Re: [PowerPC] PR23774 stack backchain broken saga

2005-09-13 Thread Alan Modra
On Tue, Sep 13, 2005 at 11:28:07AM +0200, Segher Boessenkool wrote: > Especially as the ABI states that the write of the backlink > and the stack pointer update _have_ to be done in one insn. That's on allocation. Deallocation isn't so critical. You just need to ensure the backchain is written b

Re: [PowerPC] PR23774 stack backchain broken saga

2005-09-13 Thread Segher Boessenkool
On 10 sep 2005, at 02:03, Richard Henderson wrote: On Sat, Sep 10, 2005 at 01:00:04AM +0930, Alan Modra wrote: 2) Next, I defined parallels to keep things together. Like the following, with another for DImode. This seems most reasonable to me. Especially as the ABI states that the write o

Re: [PowerPC] PR23774 stack backchain broken saga

2005-09-09 Thread Richard Henderson
On Sat, Sep 10, 2005 at 12:57:49PM +0930, Alan Modra wrote: > Also stack deallocation when finished with alloca memory. Ah. > For some reason 4.0/4.1 doesn't combine this deallocation with > stack adjustment in the epilogue, a regression from 3.4. Yeah, I've been meaning to write a pass that goe

Re: [PowerPC] PR23774 stack backchain broken saga

2005-09-09 Thread Alan Modra
On Fri, Sep 09, 2005 at 05:03:48PM -0700, Richard Henderson wrote: > On Sat, Sep 10, 2005 at 01:00:04AM +0930, Alan Modra wrote: > > 2) Next, I defined parallels to keep things together. Like the > > following, with another for DImode. > > This seems most reasonable to me. > > > This works, but

Re: [PowerPC] PR23774 stack backchain broken saga

2005-09-09 Thread Richard Henderson
On Sat, Sep 10, 2005 at 01:00:04AM +0930, Alan Modra wrote: > 2) Next, I defined parallels to keep things together. Like the > following, with another for DImode. This seems most reasonable to me. > This works, but doesn't give ideal power4/5 insn grouping, with (I > think) one too many nops bei

[PowerPC] PR23774 stack backchain broken saga

2005-09-09 Thread Alan Modra
PR23774 shows a situation where powerpc-linux (and other rs6000 targets) break an ABI requirement that 0(r1) always holds a pointer to the previous stack frame, except for the topmost frame. This particular case concerns dynamic stack (eg. alloca) deallocation. The other case where this happens i