]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386.c (override_options): Move handling of TARGET_SUBTARGET* earlier.
authorEric Christopher <echristo@gcc.gnu.org>
Wed, 6 Jun 2007 18:39:25 +0000 (18:39 +0000)
committerEric Christopher <echristo@gcc.gnu.org>
Wed, 6 Jun 2007 18:39:25 +0000 (18:39 +0000)
2007-06-06  Eric Christopher  <echristo@apple.com>

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

From-SVN: r125497

gcc/ChangeLog
gcc/config/i386/i386.c

index 4059bb161bac77b4e788fc8b858a12dc952c9e88..c493244282463226b5f095ae8e8dffda19794fb7 100644 (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.
            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.
        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
 
        * 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.
index 7046ae50c31a1aef0aba2a548512a9459895bbff..c23b5b796e8c4224c89b268f9153466baf90d3f8 100644 (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