remaining new darwin regressions

Uros Bizjak ubizjak@gmail.com
Wed Jan 21 19:41:00 GMT 2009


Hello!

> 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.

MAX(X,Y) macro selects the higher of two values, i.e.:

#define MIN(X,Y) ((X) < (Y) ? (X) : (Y))
#define MAX(X,Y) ((X) > (Y) ? (X) : (Y))

(The definition is in system.h).

So, we never go below 128.

Uros.



More information about the Gcc mailing list