Revert earlier unnecessary hack. Make sure we correctly force on 64bit and cmov...
authorEli Friedman <eli.friedman@gmail.com>
Fri, 8 Jul 2011 23:07:42 +0000 (23:07 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Fri, 8 Jul 2011 23:07:42 +0000 (23:07 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134768 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
lib/Target/X86/X86Subtarget.cpp

index 4bddce426b131bafa1c60c40224065e0bf586f86..728246ffa2eae262ec97b3d8df0165819feb859d 100644 (file)
@@ -35,7 +35,7 @@ using namespace llvm;
 std::string X86_MC::ParseX86Triple(StringRef TT) {
   Triple TheTriple(TT);
   if (TheTriple.getArch() == Triple::x86_64)
-    return "+64bit-mode,+64bit,+sse2";
+    return "+64bit-mode";
   return "-64bit-mode";
 }
 
index 3ae6e6193775732c99dc7a8b646658bb295b2bad..5bd70e402267a0c873a0c4c7129873de066cdedc 100644 (file)
@@ -269,9 +269,14 @@ X86Subtarget::X86Subtarget(const std::string &TT, const std::string &CPU,
     // Otherwise, use CPUID to auto-detect feature set.
     AutoDetectSubtargetFeatures();
 
-    // Make sure SSE2 is enabled; it is available on all X86-64 CPUs.
-    if (In64BitMode && !HasAVX && X86SSELevel < SSE2)
-      X86SSELevel = SSE2;
+    // Make sure 64-bit features are available in 64-bit mode.
+    if (In64BitMode) {
+      HasX86_64 = true;
+      HasCMov = true;
+
+      if (!HasAVX && X86SSELevel < SSE2)
+        X86SSELevel = SSE2;
+    }
   }
     
   DEBUG(dbgs() << "Subtarget features: SSELevel " << X86SSELevel