[llvm] r228151 - [ARM] Fix subtarget feature set truncation when using .cpu directive
Bradley Smith
bradley.smith at arm.com
Wed Feb 4 08:23:25 PST 2015
Author: brasmi01
Date: Wed Feb 4 10:23:24 2015
New Revision: 228151
URL: http://llvm.org/viewvc/llvm-project?rev=228151&view=rev
Log:
[ARM] Fix subtarget feature set truncation when using .cpu directive
This is a bug that was caused due to storing the feature bitset in a 32-bit
variable when it is a 64-bit mask, discarding the top half of the feature set.
Modified:
llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
llvm/trunk/test/MC/ARM/cpu-test.s
Modified: llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp?rev=228151&r1=228150&r2=228151&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp (original)
+++ llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp Wed Feb 4 10:23:24 2015
@@ -9182,8 +9182,7 @@ bool ARMAsmParser::parseDirectiveCPU(SML
// see: http://llvm.org/bugs/show_bug.cgi?id=20757
STI.InitMCProcessorInfo(CPU, "");
STI.InitCPUSchedModel(CPU);
- unsigned FB = ComputeAvailableFeatures(STI.getFeatureBits());
- setAvailableFeatures(FB);
+ setAvailableFeatures(ComputeAvailableFeatures(STI.getFeatureBits()));
return false;
}
Modified: llvm/trunk/test/MC/ARM/cpu-test.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ARM/cpu-test.s?rev=228151&r1=228150&r2=228151&view=diff
==============================================================================
--- llvm/trunk/test/MC/ARM/cpu-test.s (original)
+++ llvm/trunk/test/MC/ARM/cpu-test.s Wed Feb 4 10:23:24 2015
@@ -11,3 +11,7 @@ dsb
dsb
// CHECK-ERROR: error: Unknown CPU name
.cpu foobar
+// CHECK: .cpu cortex-m3
+.cpu cortex-m3
+// CHECK: sub sp, #16
+sub sp,#16
More information about the llvm-commits
mailing list