[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
This commit is contained in:
Jonathan Roelofs 2017-09-19 21:23:19 +00:00
parent ffdf087499
commit 85908aa84b
2 changed files with 3 additions and 1 deletions

View File

@ -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)

View File

@ -791,9 +791,11 @@ 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]