Thumb2 assembly parsing and encoding for SMLAL.
authorJim Grosbach <grosbach@apple.com>
Fri, 16 Sep 2011 16:38:00 +0000 (16:38 +0000)
committerJim Grosbach <grosbach@apple.com>
Fri, 16 Sep 2011 16:38:00 +0000 (16:38 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139902 91177308-0d34-0410-b5e6-96231b3b80d8

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

index 59e5e84c7e4ce7eba653c13cd1864eb2201634bb..b8100ab0c171f9bc4cd87be43b658656e762d762 100644 (file)
@@ -3217,9 +3217,10 @@ getMnemonicAcceptInfo(StringRef Mnemonic, bool &CanAcceptCarrySet,
       Mnemonic == "mul" || Mnemonic == "bic" || Mnemonic == "asr" ||
       Mnemonic == "umlal" || Mnemonic == "orr" || Mnemonic == "mvn" ||
       Mnemonic == "rsb" || Mnemonic == "rsc" || Mnemonic == "orn" ||
-      Mnemonic == "sbc" || Mnemonic == "umull" ||
-      Mnemonic == "eor" || Mnemonic == "smlal" || Mnemonic == "neg" ||
-      ((Mnemonic == "mov" || Mnemonic == "mla") && !isThumb())) {
+      Mnemonic == "sbc" || Mnemonic == "umull" || Mnemonic == "eor" ||
+      Mnemonic == "neg" ||
+      (!isThumb() && (Mnemonic == "mov" || Mnemonic == "mla" ||
+                      Mnemonic == "smlal"))) {
     CanAcceptCarrySet = true;
   } else {
     CanAcceptCarrySet = false;
index 13b71b4947351f6a430961499069e61c47d66f07..2adb665a62144cd85b8683b233ce2d733ddd8ff0 100644 (file)
@@ -1786,6 +1786,18 @@ _func:
 @ CHECK: smladxhi      r2, r3, r5, r8  @ encoding: [0x23,0xfb,0x15,0x82]
 
 
+@------------------------------------------------------------------------------
+@ SMLAL
+@------------------------------------------------------------------------------
+        smlal r2, r3, r5, r8
+        it eq
+        smlaleq r2, r3, r5, r8
+
+@ CHECK: smlal r2, r3, r5, r8          @ encoding: [0xc5,0xfb,0x08,0x23]
+@ CHECK: it    eq                      @ encoding: [0x08,0xbf]
+@ CHECK: smlaleq r2, r3, r5, r8         @ encoding: [0xc5,0xfb,0x08,0x23]
+
+
 @------------------------------------------------------------------------------
 @ SUB (register)
 @------------------------------------------------------------------------------