summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Demangle/MicrosoftDemangle.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-08-26 18:29:33 +0000
committerCraig Topper <craig.topper@intel.com>2018-08-26 18:29:33 +0000
commit128915f4ae04f07a958e4efe28f68cc7893f1c0c (patch)
tree4c07331b1f5d9b264c140204ad31ae02f663a9c7 /llvm/lib/Demangle/MicrosoftDemangle.cpp
parentb68a78b9acf7c3875ccbeb8af4efc65c91bf06ba (diff)
downloadbcm5719-llvm-128915f4ae04f07a958e4efe28f68cc7893f1c0c.tar.gz
bcm5719-llvm-128915f4ae04f07a958e4efe28f68cc7893f1c0c.zip
[X86] Add FeatureCMOV explicitly to all CPUs that support it. Remove FeatureCMOV implication from Feature64Bit and FeatureSSE1
Summary: Previously most CPUs inherited cmov support through Feature64Bit(or FeatureCMPXCHG16HB implying Feature64Bit) or FeatureSSE1. This has the surprising side effect that -mattr=-cmov causes an assert to fire in 64-bit mode because it clears the Feature64Bit. Or in 32-bit mode, -mattr=-cmov disables any sse/avx features which seems surprising. This patch removes the implication and instead updates hasCMOV in X86Subtarget to check SSE1 or is64Bit in addition to the regular cmov flag. This should keep most things working the way they did before. I don't believe there is a way to specific "-cmov" directly from clang so this should only effect our lower level tools. This does stop -mattr=cx16(cmpxchg16b) from implying cmov is enabled via the 64bit flag as you can see from one of the changed tests. But that was a 32-bit test so I don't know why it enabled cx16 anyway. For the other test I had to add -sse to override the new sse check in hasCMOV. Reviewers: RKSimon, DavidKreitzer, spatel Reviewed By: RKSimon Subscribers: llvm-commits, jfb Differential Revision: https://reviews.llvm.org/D51228 llvm-svn: 340707
Diffstat (limited to 'llvm/lib/Demangle/MicrosoftDemangle.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud