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.