diff options
| author | Craig Topper <craig.topper@gmail.com> | 2013-09-11 06:48:53 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2013-09-11 06:48:53 +0000 |
| commit | c0070a43202b451f78d099a3adc66e7edc45a53e (patch) | |
| tree | c9307e4adba8d565af1a75fc422e8ade3788956a /clang/lib/Basic/Targets.cpp | |
| parent | 0ad114c446bcf6d75f8f7b03e67b418b4191b9f7 (diff) | |
| download | bcm5719-llvm-c0070a43202b451f78d099a3adc66e7edc45a53e.tar.gz bcm5719-llvm-c0070a43202b451f78d099a3adc66e7edc45a53e.zip | |
Fix a bug where -msse followed by -mno-sse would leave MMX enabled.
llvm-svn: 190496
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
| -rw-r--r-- | clang/lib/Basic/Targets.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index aa0993d4aa7..00431c2a0d6 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -2143,8 +2143,6 @@ void X86TargetInfo::setSSELevel(llvm::StringMap<bool> &Features, case SSE2: Features["sse2"] = true; case SSE1: - if (!Features.count("mmx")) - setMMXLevel(Features, MMX, Enabled); Features["sse"] = true; case NoSSE: break; @@ -2427,10 +2425,14 @@ bool X86TargetInfo::HandleTargetFeatures(std::vector<std::string> &Features, // Don't tell the backend if we're turning off mmx; it will end up disabling // SSE, which we don't want. + // Additionally, if SSE is enabled and mmx is not explicitly disabled, + // then enable MMX. std::vector<std::string>::iterator it; it = std::find(Features.begin(), Features.end(), "-mmx"); if (it != Features.end()) Features.erase(it); + else if (SSELevel > NoSSE) + MMX3DNowLevel = std::max(MMX3DNowLevel, MMX); return true; } |

