On Sat, Oct 2, 2010 at 1:01 PM, Richard Henderson <r...@redhat.com> wrote:
> Currently we have
>
> STACK_BOUNDARY
>  -- minimum alignment enforced by hardware.
>
> PREFERRED_STACK_BOUNDARY
>  -- a preserved alignment greater than what the hw enforces
>  (defaults to STACK_BOUNDARY)
>
> INCOMING_STACK_BOUNDARY
>  -- an alignment provided by callers on function entry.
>  (defaults to PREFERRED_STACK_BOUNDARY)
>
> MIN_STACK_BOUNDARY
>  (undocumented; local to i386 atm)
>  -- appears to be the ABI specified stack boundary, i.e.
>  the minimum that must be in place at a call site.  This
>  somehow differs from I_S_B due to proliferation of
>  command-line options.

It is used to implement -mstackreliagn. I think you should just
move it to i386.c. Otherwise, you have to copy the same logic
to where it is used in i386.c.

>
> MAX_STACK_ALIGNMENT
>  -- biggest stack alignment guaranteed by the backend.
>  (defaults to STACK_BOUNDARY, @c sez ought to be P_S_B)
>
> MAX_SUPPORTED_STACK_ALIGNMENT
>  (undocumented; defined solely by defaults.h)
>  -- the same as M_S_A, but with the P_S_B default.
>
> I would like to reduce this to
>
> STACK_BOUNDARY
>  -- unchanged
>
> INCOMING_STACK_BOUNDARY
>  -- default to S_B; x86 backend drops MIN_S_B.

On ia32,  INCOMING_STACK_BOUNDARY may be different
from PREFERRED_STACK_BOUNDARY. It is used to support
linking against libraries with 4byte incoming stack boundary and
generate 16byte outgoing stack boundary.

>
> MAX_STACK_BOUNDARY
>  -- default to I_S_B.
>
> and delete many of the x86 backend options that fiddle
> stuff that users ought not be fiddling.  Like forcing
> the use of DRAP register.
>

-mdrap is mainly for testing purpose and used in testsuite.
It has caught many bugs. Removing it means regressions
may become latent.


-- 
H.J.

Reply via email to