Fix ARM assembly parsing for upper case condition codes on IT instructions.
authorRichard Barton <richard.barton@arm.com>
Fri, 27 Apr 2012 17:34:01 +0000 (17:34 +0000)
committerRichard Barton <richard.barton@arm.com>
Fri, 27 Apr 2012 17:34:01 +0000 (17:34 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155720 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/AsmParser/ARMAsmParser.cpp
test/MC/ARM/basic-thumb2-instructions.s

index fdefe43bb88fb4d21eb0f06c47ddc20f257534e3..57c76d81cf42adca81966f2792cbe91907aa4d3f 100644 (file)
@@ -2674,7 +2674,7 @@ parseITCondCode(SmallVectorImpl<MCParsedAsmOperand*> &Operands) {
   const AsmToken &Tok = Parser.getTok();
   if (!Tok.is(AsmToken::Identifier))
     return MatchOperand_NoMatch;
-  unsigned CC = StringSwitch<unsigned>(Tok.getString())
+  unsigned CC = StringSwitch<unsigned>(Tok.getString().lower())
     .Case("eq", ARMCC::EQ)
     .Case("ne", ARMCC::NE)
     .Case("hs", ARMCC::HS)
index 68ef2897c176830f90ba694d37dd9b0291a027c8..4aed9e2bea1f67d64429d51dc1e112d6163a06a7 100644 (file)
@@ -509,6 +509,19 @@ _func:
 @ CHECK: subne r5, r6, r7              @ encoding: [0xf5,0x1b]
 @ CHECK: addeq r1, r2, #4              @ encoding: [0x11,0x1d]
 
+@ Should also work for UPPER CASE condition codes.
+
+        ITEET EQ
+        ADDEQ R0, R1, R2
+        NOPNE
+        SUBNE R5, R6, R7
+        ADDEQ R1, R2, #4
+
+@ CHECK: iteet eq                      @ encoding: [0x0d,0xbf]
+@ CHECK: addeq r0, r1, r2              @ encoding: [0x88,0x18]
+@ CHECK: nopne                          @ encoding: [0x00,0xbf]
+@ CHECK: subne r5, r6, r7              @ encoding: [0xf5,0x1b]
+@ CHECK: addeq r1, r2, #4              @ encoding: [0x11,0x1d]
 
 @------------------------------------------------------------------------------
 @ LDC{L}/LDC2{L}