summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorJonathan Roelofs <jonathan@codesourcery.com>2017-09-19 21:23:19 +0000
committerJonathan Roelofs <jonathan@codesourcery.com>2017-09-19 21:23:19 +0000
commit85908aa84b05717c16057618f7e75e802a8ab0cc (patch)
tree1c85d88b61b92ab4c06c647ecf91c742aa1e8ce9 /llvm
parentffdf08749904ff06fe743bed56d8b255ef8698f1 (diff)
downloadbcm5719-llvm-85908aa84b05717c16057618f7e75e802a8ab0cc.tar.gz
bcm5719-llvm-85908aa84b05717c16057618f7e75e802a8ab0cc.zip
[ARM] Relax 'cpsie'/'cpsid' flag parsing.
The ARM docs suggest in examples that the flags can have either case, and there are applications in the wild that (libopencm3, for example) that expect to be able to use the uppercase spelling. https://reviews.llvm.org/D37953 llvm-svn: 313680
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp2
-rw-r--r--llvm/test/MC/ARM/basic-arm-instructions.s2
2 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
index 43135ad2103..9abb6eab951 100644
--- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+++ b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
@@ -4023,7 +4023,7 @@ ARMAsmParser::parseProcIFlagsOperand(OperandVector &Operands) {
unsigned IFlags = 0;
if (IFlagsStr != "none") {
for (int i = 0, e = IFlagsStr.size(); i != e; ++i) {
- unsigned Flag = StringSwitch<unsigned>(IFlagsStr.substr(i, 1))
+ unsigned Flag = StringSwitch<unsigned>(IFlagsStr.substr(i, 1).lower())
.Case("a", ARM_PROC::A)
.Case("i", ARM_PROC::I)
.Case("f", ARM_PROC::F)
diff --git a/llvm/test/MC/ARM/basic-arm-instructions.s b/llvm/test/MC/ARM/basic-arm-instructions.s
index da68a6cfd10..d4d79364b3d 100644
--- a/llvm/test/MC/ARM/basic-arm-instructions.s
+++ b/llvm/test/MC/ARM/basic-arm-instructions.s
@@ -791,10 +791,12 @@ Lforward:
@ CPS
@------------------------------------------------------------------------------
cpsie aif
+ cpsie AIF
cps #15
cpsid if, #10
@ CHECK: cpsie aif @ encoding: [0xc0,0x01,0x08,0xf1]
+@ CHECK: cpsie aif @ encoding: [0xc0,0x01,0x08,0xf1]
@ CHECK: cps #15 @ encoding: [0x0f,0x00,0x02,0xf1]
@ CHECK: cpsid if, #10 @ encoding: [0xca,0x00,0x0e,0xf1]
OpenPOWER on IntegriCloud