[PATCH] D37953: [ARM] Relax `cpsie`/`cpsid` flag parsing.
    Jonathan Roelofs via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Sat Sep 16 18:11:32 PDT 2017
    
    
  
jroelofs created this revision.
Herald added subscribers: kristof.beyls, javed.absar, aemerson.
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
Files:
  lib/Target/ARM/AsmParser/ARMAsmParser.cpp
  test/MC/ARM/basic-arm-instructions.s
Index: test/MC/ARM/basic-arm-instructions.s
===================================================================
--- test/MC/ARM/basic-arm-instructions.s
+++ test/MC/ARM/basic-arm-instructions.s
@@ -791,10 +791,12 @@
 @ 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]
 
Index: lib/Target/ARM/AsmParser/ARMAsmParser.cpp
===================================================================
--- lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+++ lib/Target/ARM/AsmParser/ARMAsmParser.cpp
@@ -4023,7 +4023,7 @@
   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)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D37953.115551.patch
Type: text/x-patch
Size: 1206 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170917/9196719c/attachment.bin>
    
    
More information about the llvm-commits
mailing list