Thumb2 assembly parsing and encoding for SMMULL.

llvm-svn: 139921
This commit is contained in:
Jim Grosbach 2011-09-16 18:05:48 +00:00
parent 9c0a94ad64
commit d73c6458de
2 changed files with 15 additions and 3 deletions

View File

@ -3168,14 +3168,14 @@ getMnemonicAcceptInfo(StringRef Mnemonic, bool &CanAcceptCarrySet,
bool &CanAcceptPredicationCode) {
if (Mnemonic == "and" || Mnemonic == "lsl" || Mnemonic == "lsr" ||
Mnemonic == "rrx" || Mnemonic == "ror" || Mnemonic == "sub" ||
Mnemonic == "smull" || Mnemonic == "add" || Mnemonic == "adc" ||
Mnemonic == "add" || Mnemonic == "adc" ||
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 == "neg" ||
(!isThumb() && (Mnemonic == "mov" || Mnemonic == "mla" ||
Mnemonic == "smlal"))) {
(!isThumb() && (Mnemonic == "smull" || Mnemonic == "mov" ||
Mnemonic == "mla" || Mnemonic == "smlal"))) {
CanAcceptCarrySet = true;
} else
CanAcceptCarrySet = false;

View File

@ -1974,6 +1974,18 @@ _func:
@ CHECK: smulttlt r8, r3, r4 @ encoding: [0x13,0xfb,0x34,0xf8]
@------------------------------------------------------------------------------
@ SMULL
@------------------------------------------------------------------------------
smull r3, r9, r0, r1
it eq
smulleq r8, r3, r4, r5
@ CHECK: smull r3, r9, r0, r1 @ encoding: [0x80,0xfb,0x01,0x39]
@ CHECK: it eq @ encoding: [0x08,0xbf]
@ CHECK: smulleq r8, r3, r4, r5 @ encoding: [0x84,0xfb,0x05,0x83]
@------------------------------------------------------------------------------
@ SUB (register)
@------------------------------------------------------------------------------