On Wed, Jan 21, 2009 at 11:59:09AM -0800, Mike Stump wrote:
> On Jan 21, 2009, at 8:40 PM, Uros Bizjak wrote:
>>> Sure, in i386/darwin.h we have:
>>>
>>> /* Since we'll never want a stack boundary less aligned than 128 bits
>>> we need the extra work here otherwise bits of gcc get very grumpy
>>> when we ask for lower alignment. We could just reject values less
>>> than 128 bits for Darwin, but it's easier to up the alignment if
>>> it's below the minimum. */
>>> #undef PREFERRED_STACK_BOUNDARY
>>> #define PREFERRED_STACK_BOUNDARY \
>>> MAX (STACK_BOUNDARY, ix86_preferred_stack_boundary)
>>>
>>> This selects the maximal alignment to be 128 (16-bytes), the
>>> testcase works for all alignments of 16-bytes or less. For more
>>> aligning, I think that MAX, should be just a MIN:
>>
>> Er, no.
>
> Er, [ feeling stupid ] shucks. :-( I was thinking the problem was the
> instructions to do on demand alignment, fails to be generated in darwin,
> because darwin goes out of it's way to say, you don't need to do that
> (since we already have 128 aligned stacks), but that code fails to
> consider alignments greater than 128, thus causing the failure.
Mike,
So that invalidates your previously proposed patch? Or should I still
test it?
Jack