i386.opt (-mstackrealign): New flag.
* gcc/config/i386/i386.opt (-mstackrealign): New flag. *
gcc/config/i386/i386.c (force_align_arg_pointer): New attribute.
(ix86_handle_cconv_attribute): Emit error when
force_align_arg_pointer attribute collides with too many regparms.
(ix86_function_regparm): Limit regparms when used with
force_align_arg_pointer attribute. (ix86_internal_arg_pointer):
Support stack-realigning prologue in non-main functions. Emit
warning for nested functions under -mstackrealign, emit error for
nested functions with force_align_arg_pointer attribute.
* gcc/doc/extend.texi (force_align_arg_pointer): Document it.
* gcc/doc/invoke.texi (-mstackrealign): Document it.
* testsuite/gcc.target/i386/
20060512-1.c: New.
* testsuite/gcc.target/i386/
20060512-2.c: New.
* testsuite/gcc.target/i386/
20060512-3.c: New.
* testsuite/gcc.target/i386/
20060512-4.c: New.
From-SVN: r113880