mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-28 16:01:00 +08:00
i386.c (override_options): Replace ABI_STACK_BOUNDARY with MIN_STACK_BOUNDARY.
2008-08-01 H.J. Lu <hongjiu.lu@intel.com> * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY with MIN_STACK_BOUNDARY. (ix86_update_stack_boundary): Likewise. (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of STACK_BOUNDARY. * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ... (MIN_STACK_BOUNDARY): This. From-SVN: r138517
This commit is contained in:
parent
62bb3fdb86
commit
de1132d194
@ -3045,9 +3045,9 @@ override_options (bool main_args_p)
|
||||
ix86_force_align_arg_pointer = STACK_REALIGN_DEFAULT;
|
||||
|
||||
/* Validate -mincoming-stack-boundary= value or default it to
|
||||
ABI_STACK_BOUNDARY/PREFERRED_STACK_BOUNDARY. */
|
||||
MIN_STACK_BOUNDARY/PREFERRED_STACK_BOUNDARY. */
|
||||
if (ix86_force_align_arg_pointer)
|
||||
ix86_default_incoming_stack_boundary = ABI_STACK_BOUNDARY;
|
||||
ix86_default_incoming_stack_boundary = MIN_STACK_BOUNDARY;
|
||||
else
|
||||
ix86_default_incoming_stack_boundary = PREFERRED_STACK_BOUNDARY;
|
||||
ix86_incoming_stack_boundary = ix86_default_incoming_stack_boundary;
|
||||
@ -7520,10 +7520,10 @@ ix86_update_stack_boundary (void)
|
||||
/* Incoming stack alignment can be changed on individual functions
|
||||
via force_align_arg_pointer attribute. We use the smallest
|
||||
incoming stack boundary. */
|
||||
if (ix86_incoming_stack_boundary > ABI_STACK_BOUNDARY
|
||||
if (ix86_incoming_stack_boundary > MIN_STACK_BOUNDARY
|
||||
&& lookup_attribute (ix86_force_align_arg_pointer_string,
|
||||
TYPE_ATTRIBUTES (TREE_TYPE (current_function_decl))))
|
||||
ix86_incoming_stack_boundary = ABI_STACK_BOUNDARY;
|
||||
ix86_incoming_stack_boundary = MIN_STACK_BOUNDARY;
|
||||
|
||||
/* Stack at entrance of main is aligned by runtime. We use the
|
||||
smallest incoming stack boundary. */
|
||||
@ -7710,7 +7710,7 @@ ix86_expand_prologue (void)
|
||||
if (stack_realign_fp)
|
||||
{
|
||||
int align_bytes = crtl->stack_alignment_needed / BITS_PER_UNIT;
|
||||
gcc_assert (align_bytes > STACK_BOUNDARY / BITS_PER_UNIT);
|
||||
gcc_assert (align_bytes > MIN_STACK_BOUNDARY / BITS_PER_UNIT);
|
||||
|
||||
/* Align the stack. */
|
||||
insn = emit_insn ((*ix86_gen_andsp) (stack_pointer_rtx,
|
||||
|
@ -651,14 +651,14 @@ enum target_cpu_default
|
||||
/* Stack boundary of the main function guaranteed by OS. */
|
||||
#define MAIN_STACK_BOUNDARY (TARGET_64BIT ? 128 : 32)
|
||||
|
||||
/* Stack boundary guaranteed by ABI. */
|
||||
#define ABI_STACK_BOUNDARY (TARGET_64BIT ? 128 : 32)
|
||||
/* Minimum stack boundary. */
|
||||
#define MIN_STACK_BOUNDARY (TARGET_64BIT ? 128 : 32)
|
||||
|
||||
/* Boundary (in *bits*) on which the stack pointer prefers to be
|
||||
aligned; the compiler cannot rely on having this alignment. */
|
||||
#define PREFERRED_STACK_BOUNDARY ix86_preferred_stack_boundary
|
||||
|
||||
/* It should be ABI_STACK_BOUNDARY. But we set it to 128 bits for
|
||||
/* It should be MIN_STACK_BOUNDARY. But we set it to 128 bits for
|
||||
both 32bit and 64bit, to support codes that need 128 bit stack
|
||||
alignment for SSE instructions, but can't realign the stack. */
|
||||
#define PREFERRED_STACK_BOUNDARY_DEFAULT 128
|
||||
|
Loading…
x
Reference in New Issue
Block a user