summaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86Subtarget.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2013-09-18 06:01:53 +0000
committerCraig Topper <craig.topper@gmail.com>2013-09-18 06:01:53 +0000
commit42848553918540e90f77de3c70b5f1ff1dc2be9f (patch)
tree32cf64151eb6ce3ea93725561d9528a1de452f1e /lib/Target/X86/X86Subtarget.cpp
parent773c07606e61c5090d73ea1317a0d1b0c29ec023 (diff)
downloadllvm-42848553918540e90f77de3c70b5f1ff1dc2be9f.tar.gz
llvm-42848553918540e90f77de3c70b5f1ff1dc2be9f.tar.bz2
llvm-42848553918540e90f77de3c70b5f1ff1dc2be9f.tar.xz
Prevent extra calls to ToggleFeature for Feature64Bit and FeatureCMOV if they've already been enabled. The extra call ends up clearing the bit in FeatureBits since its a 'toggle'. Can't prove that anything was broken because of this since I don't think the FeatureBits for these are used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190920 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86Subtarget.cpp')
-rw-r--r--lib/Target/X86/X86Subtarget.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/Target/X86/X86Subtarget.cpp b/lib/Target/X86/X86Subtarget.cpp
index ae31bb834b..f5b261428d 100644
--- a/lib/Target/X86/X86Subtarget.cpp
+++ b/lib/Target/X86/X86Subtarget.cpp
@@ -440,8 +440,8 @@ void X86Subtarget::resetSubtargetFeatures(StringRef CPU, StringRef FS) {
// Make sure 64-bit features are available in 64-bit mode.
if (In64BitMode) {
- HasX86_64 = true; ToggleFeature(X86::Feature64Bit);
- HasCMov = true; ToggleFeature(X86::FeatureCMOV);
+ if (!HasX86_64) { HasX86_64 = true; ToggleFeature(X86::Feature64Bit); }
+ if (!HasCMov) { HasCMov = true; ToggleFeature(X86::FeatureCMOV); }
if (X86SSELevel < SSE2) {
X86SSELevel = SSE2;