View | Details | Return to bug 40838 | Differences between
and this patch

Collapse All | Expand All

(-)a/gcc/config/i386/i386.c (+23 lines)
Lines 4382-4387 ix86_option_override_internal (bool main Link Here
4382
  if (!opts_set->x_ix86_force_align_arg_pointer)
4382
  if (!opts_set->x_ix86_force_align_arg_pointer)
4383
    opts->x_ix86_force_align_arg_pointer = STACK_REALIGN_DEFAULT;
4383
    opts->x_ix86_force_align_arg_pointer = STACK_REALIGN_DEFAULT;
4384
4384
4385
  /* 32-bit SSE need more align */
4386
  if ((opts->x_ix86_isa_flags &
4387
       (OPTION_MASK_ISA_64BIT | OPTION_MASK_ISA_SSE | OPTION_MASK_ISA_SSE4A))
4388
      == OPTION_MASK_ISA_SSE
4389
      && !opts->x_ix86_force_align_arg_pointer
4390
      && (opts->x_flag_vect_cost_model != VECT_COST_MODEL_CHEAP
4391
          || opts->x_flag_simd_cost_model != VECT_COST_MODEL_CHEAP))
4392
    {
4393
#if ENABLE_STACKREALIGN_ABI_VIOLATION
4394
      if (opts_set->x_ix86_force_align_arg_pointer)
4395
	{
4396
#endif
4397
	  if (!opts_set->x_flag_vect_cost_model)
4398
	      opts->x_flag_vect_cost_model = VECT_COST_MODEL_CHEAP;
4399
	  if (!opts_set->x_flag_simd_cost_model)
4400
	      opts->x_flag_simd_cost_model = VECT_COST_MODEL_CHEAP;
4401
#if ENABLE_STACKREALIGN_ABI_VIOLATION
4402
	}
4403
	else
4404
	  opts->x_ix86_force_align_arg_pointer = 1;
4405
#endif
4406
    }
4407
4385
  ix86_default_incoming_stack_boundary = PREFERRED_STACK_BOUNDARY;
4408
  ix86_default_incoming_stack_boundary = PREFERRED_STACK_BOUNDARY;
4386
4409
4387
  /* Validate -mincoming-stack-boundary= value or default it to
4410
  /* Validate -mincoming-stack-boundary= value or default it to
(-)a/gcc/config/i386/t-i386 (+2 lines)
Line 18 Link Here
18
# <http://www.gnu.org/licenses/>.
18
# <http://www.gnu.org/licenses/>.
19
20
TARGET_LIBGCC2_CFLAGS += -mno-stackrealign

Return to bug 40838