diff options
author | Jonathan Roelofs <jonathan@codesourcery.com> | 2017-09-19 21:23:19 +0000 |
---|---|---|
committer | Jonathan Roelofs <jonathan@codesourcery.com> | 2017-09-19 21:23:19 +0000 |
commit | 85908aa84b05717c16057618f7e75e802a8ab0cc (patch) | |
tree | 1c85d88b61b92ab4c06c647ecf91c742aa1e8ce9 | |
parent | ffdf08749904ff06fe743bed56d8b255ef8698f1 (diff) | |
download | bcm5719-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
-rw-r--r-- | llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp | 2 | ||||
-rw-r--r-- | llvm/test/MC/ARM/basic-arm-instructions.s | 2 |
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] |