diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2011-07-08 22:16:47 +0000 |
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2011-07-08 22:16:47 +0000 |
| commit | f06ff4eae3ed2277555b25ee8e95b539f589b63c (patch) | |
| tree | ba6c6c1788a9a081a3cc80c267e677f4b79c3afa /lib/Target/X86/MCTargetDesc | |
| parent | abc43e69eaace780d6d1893d904e6f1b8a6ca2de (diff) | |
| download | external_llvm-f06ff4eae3ed2277555b25ee8e95b539f589b63c.zip external_llvm-f06ff4eae3ed2277555b25ee8e95b539f589b63c.tar.gz external_llvm-f06ff4eae3ed2277555b25ee8e95b539f589b63c.tar.bz2 | |
Default 64-bit target features and SSE2 on when a triple specifies x86-64. Clean up all the other hacks which are now unnecessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134753 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/MCTargetDesc')
| -rw-r--r-- | lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp | 28 |
1 files changed, 1 insertions, 27 deletions
diff --git a/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp b/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp index 204485d..4bddce4 100644 --- a/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp +++ b/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp @@ -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"; + return "+64bit-mode,+64bit,+sse2"; return "-64bit-mode"; } @@ -107,28 +107,6 @@ void X86_MC::DetectFamilyModel(unsigned EAX, unsigned &Family, } } -static bool hasX86_64() { - // FIXME: Code duplication. See X86Subtarget::AutoDetectSubtargetFeatures. - unsigned EAX = 0, EBX = 0, ECX = 0, EDX = 0; - union { - unsigned u[3]; - char c[12]; - } text; - - if (X86_MC::GetCpuIDAndInfo(0, &EAX, text.u+0, text.u+2, text.u+1)) - return false; - - bool IsIntel = memcmp(text.c, "GenuineIntel", 12) == 0; - bool IsAMD = !IsIntel && memcmp(text.c, "AuthenticAMD", 12) == 0; - if (IsIntel || IsAMD) { - X86_MC::GetCpuIDAndInfo(0x80000001, &EAX, &EBX, &ECX, &EDX); - if ((EDX >> 29) & 0x1) - return true; - } - - return false; -} - MCSubtargetInfo *X86_MC::createX86MCSubtargetInfo(StringRef TT, StringRef CPU, StringRef FS) { std::string ArchFS = X86_MC::ParseX86Triple(TT); @@ -148,10 +126,6 @@ MCSubtargetInfo *X86_MC::createX86MCSubtargetInfo(StringRef TT, StringRef CPU, #endif } - if (ArchFS.empty() && CPUName.empty() && hasX86_64()) - // Auto-detect if host is 64-bit capable, it's the default if true. - ArchFS = "+64bit-mode"; - MCSubtargetInfo *X = new MCSubtargetInfo(); InitX86MCSubtargetInfo(X, CPUName, ArchFS); return X; |
