On Tue, Oct 31, 2017 at 09:12:25AM -0600, Jeff Law wrote:
> On 10/31/2017 03:41 AM, Segher Boessenkool wrote:
> > If the user asks for a stack clash probe interval of 64kB, we currently
> > generate a "stdu rX,-65536(r1)" instruction.  That instruction does not
> > exist (the offset is a 16-bit signed number).  If the offset is too big
> > we should force it into a register and generate a "stdux rX,rY,r1"
> > instruction, instead.
> > 
> > Bootstrapped and regression checked on powerpc64-linux {-m32,-m64};
> > committing to trunk.
> > 
> > 
> > Segher
> > 
> > 
> > 2017-10-31  Segher Boessenkool  <seg...@kernel.crsahing.org>
> > 
> >     PR target/82674
> >     * config/rs6000/rs6000.md (allocate_stack): Force update interval
> >     into a register if it does not fit into an immediate offset field.
> :-)  That's one I had a fix for.  But the issues with large probing
> intervals are much more serious.  In particular dealing with large
> probing intervals for allocations in the prologue is a significantly
> tougher problem due to the lack of a free hard reg.

Yes, but I haven't seen testcases for that?  The PR was just this.

We do have more than one register we can use here, FWIW.  It gets a
bit nasty because it depends on which ABI you're on exactly, which.


Segher

Reply via email to