i386.c (override_options): Move handling of TARGET_SUBTARGET* earlier.

2007-06-06  Eric Christopher  <echristo@apple.com>

        * config/i386/i386.c (override_options): Move handling
        of TARGET_SUBTARGET* earlier.

From-SVN: r125497
This commit is contained in:
Eric Christopher 2007-06-06 18:39:25 +00:00
parent 1fd994f191
commit d6b0b376ea
2 changed files with 36 additions and 31 deletions

View File

@ -1,3 +1,8 @@
2007-06-06 Eric Christopher <echristo@apple.com>
* config/i386/i386.c (override_options): Move handling
of TARGET_SUBTARGET* earlier.
2007-06-06 Paolo Bonzini <bonzini@gnu.org>
* genmodes.c (tagged_printf, emit_insn_modes_h): Don't
@ -14,7 +19,7 @@
non-removed insns.
(rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
(delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
to delete_insn_chain.
(rtl_verify_flow_info_1): Verify that the insns in header and footer
do not have bb field set.
@ -127,7 +132,7 @@
Sebastian Pop <sebpop@gmail.com>
* lambda.h (build_linear_expr): New.
* lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
* lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
Use build_linear_expr, call fold and force_gimple_operand.
(lambda_loopnest_to_gcc_loopnest): Check that there is
something to insert.
@ -138,7 +143,7 @@
PR preprocessor/23479
* doc/extend.texi: Document the 0b-prefixed binary integer
constant extension.
2007-06-05 Uros Bizjak <ubizjak@gmail.com>
PR tree-optimization/32215
@ -437,7 +442,7 @@
* config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
LOADGP_ABSOLUTE and not binds_local_p.
2007-06-01 Geoffrey Keating <geoffk@apple.com>
* config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.

View File

@ -2219,6 +2219,33 @@ override_options (void)
error ("pc%d is not valid precision setting (32, 64 or 80)", i);
}
if (TARGET_64BIT)
{
target_flags |= TARGET_SUBTARGET64_DEFAULT & ~target_flags_explicit;
/* Enable by default the SSE and MMX builtins. Do allow the user to
explicitly disable any of these. In particular, disabling SSE and
MMX for kernel code is extremely useful. */
ix86_isa_flags
|= ((OPTION_MASK_ISA_SSE2 | OPTION_MASK_ISA_SSE | OPTION_MASK_ISA_MMX
| TARGET_SUBTARGET64_ISA_DEFAULT) & ~ix86_isa_flags_explicit);
if (TARGET_RTD)
warning (0, "-mrtd is ignored in 64bit mode");
}
else
{
target_flags |= TARGET_SUBTARGET32_DEFAULT & ~target_flags_explicit;
ix86_isa_flags
|= TARGET_SUBTARGET32_ISA_DEFAULT & ~ix86_isa_flags_explicit;
/* i386 ABI does not specify red zone. It still makes sense to use it
when programmer takes care to stack from being destroyed. */
if (!(target_flags_explicit & MASK_NO_RED_ZONE))
target_flags |= MASK_NO_RED_ZONE;
}
/* Keep nonleaf frame pointers. */
if (flag_omit_frame_pointer)
target_flags &= ~MASK_OMIT_LEAF_FRAME_POINTER;
@ -2282,33 +2309,6 @@ override_options (void)
if (TARGET_ABM)
x86_popcnt = true;
if (TARGET_64BIT)
{
target_flags |= TARGET_SUBTARGET64_DEFAULT & ~target_flags_explicit;
/* Enable by default the SSE and MMX builtins. Do allow the user to
explicitly disable any of these. In particular, disabling SSE and
MMX for kernel code is extremely useful. */
ix86_isa_flags
|= ((OPTION_MASK_ISA_SSE2 | OPTION_MASK_ISA_SSE | OPTION_MASK_ISA_MMX
| TARGET_SUBTARGET64_ISA_DEFAULT) & ~ix86_isa_flags_explicit);
if (TARGET_RTD)
warning (0, "-mrtd is ignored in 64bit mode");
}
else
{
target_flags |= TARGET_SUBTARGET32_DEFAULT & ~target_flags_explicit;
ix86_isa_flags
|= TARGET_SUBTARGET32_ISA_DEFAULT & ~ix86_isa_flags_explicit;
/* i386 ABI does not specify red zone. It still makes sense to use it
when programmer takes care to stack from being destroyed. */
if (!(target_flags_explicit & MASK_NO_RED_ZONE))
target_flags |= MASK_NO_RED_ZONE;
}
/* Validate -mpreferred-stack-boundary= value, or provide default.
The default of 128 bits is for Pentium III's SSE __m128. We can't
change it because of optimize_size. Otherwise, we can't mix object