aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Christopher <echristo@gcc.gnu.org>2007-06-06 18:39:25 +0000
committerEric Christopher <echristo@gcc.gnu.org>2007-06-06 18:39:25 +0000
commitd6b0b376ea57964c73786fa1730b15cafeb7ea07 (patch)
tree099e0e3e9febcb39755dfe14557dbe9b97407f60
parent1fd994f19119dfca57de3af7d2c6a3bc431e56e4 (diff)
downloadgcc-d6b0b376ea57964c73786fa1730b15cafeb7ea07.zip
gcc-d6b0b376ea57964c73786fa1730b15cafeb7ea07.tar.gz
gcc-d6b0b376ea57964c73786fa1730b15cafeb7ea07.tar.bz2
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
-rw-r--r--gcc/ChangeLog13
-rw-r--r--gcc/config/i386/i386.c54
2 files changed, 36 insertions, 31 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4059bb1..c493244 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 7046ae5..c23b5b7 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -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