From: Bradley Smith Date: Wed, 4 Feb 2015 16:23:24 +0000 (+0000) Subject: [ARM] Fix subtarget feature set truncation when using .cpu directive X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=960ce2aafa610f2ab3d025262fe85ef978682279;p=oota-llvm.git [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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228151 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp index 3b7a67d0d1f..b89f453d27d 100644 --- a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -9182,8 +9182,7 @@ bool ARMAsmParser::parseDirectiveCPU(SMLoc L) { // 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; } diff --git a/test/MC/ARM/cpu-test.s b/test/MC/ARM/cpu-test.s index 766e454d080..7a619075888 100644 --- a/test/MC/ARM/cpu-test.s +++ b/test/MC/ARM/cpu-test.s @@ -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