Thumb2 assembly parsing and encoding for MLA and MLS.
authorJim Grosbach <grosbach@apple.com>
Fri, 9 Sep 2011 20:24:45 +0000 (20:24 +0000)
committerJim Grosbach <grosbach@apple.com>
Fri, 9 Sep 2011 20:24:45 +0000 (20:24 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139399 91177308-0d34-0410-b5e6-96231b3b80d8

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

index b994d0fa7589dc76f0dbc662bc3228246360eba6..882c4fe3d20037c1f8939ff5cecbeaee6aaa7f50 100644 (file)
@@ -3184,9 +3184,9 @@ 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 == "mla" || Mnemonic == "umull" ||
+      Mnemonic == "sbc" || Mnemonic == "umull" ||
       Mnemonic == "eor" || Mnemonic == "smlal" || Mnemonic == "neg" ||
-      (Mnemonic == "mov" && !isThumb())) {
+      ((Mnemonic == "mov" || Mnemonic == "mla") && !isThumb())) {
     CanAcceptCarrySet = true;
   } else {
     CanAcceptCarrySet = false;
index 83e5391ef21ad39f07af5f8ac1c72be11fea227a..4e0f4f5c78da217a3f24984e3f46a775966ee24d 100644 (file)
@@ -972,6 +972,16 @@ _func:
 @ CHECK: mcrr2 p7, #15, r5, r4, c1     @ encoding: [0x44,0xfc,0xf1,0x57]
 
 
+@------------------------------------------------------------------------------
+@ MLA/MLS
+@------------------------------------------------------------------------------
+        mla  r1,r2,r3,r4
+        mls  r1,r2,r3,r4
+
+@ CHECK: mla   r1, r2, r3, r4          @ encoding: [0x02,0xfb,0x03,0x41]
+@ CHECK: mls   r1, r2, r3, r4          @ encoding: [0x02,0xfb,0x13,0x41]
+
+
 @------------------------------------------------------------------------------
 @ IT
 @------------------------------------------------------------------------------