diff options
| author | Jim Grosbach <grosbach@apple.com> | 2011-07-27 21:58:11 +0000 | 
|---|---|---|
| committer | Jim Grosbach <grosbach@apple.com> | 2011-07-27 21:58:11 +0000 | 
| commit | 0c398b9c7ed42b313cedbc15c82c09f14abb2c37 (patch) | |
| tree | fea7bc0b751e007ca5c817ee698390a0cade8cb4 /llvm | |
| parent | bae31201bb913b9f7bf75cad4fef9ed9a0dffe47 (diff) | |
| download | bcm5719-llvm-0c398b9c7ed42b313cedbc15c82c09f14abb2c37.tar.gz bcm5719-llvm-0c398b9c7ed42b313cedbc15c82c09f14abb2c37.zip  | |
ARM assembly parsing and encoding for UMLAL.
Fix parsing of the 's' suffix for the mnemonic. Add tests.
llvm-svn: 136274
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp | 3 | ||||
| -rw-r--r-- | llvm/test/MC/ARM/basic-arm-instructions.s | 13 | 
2 files changed, 15 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp index 352e9020098..6af52812944 100644 --- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -2359,7 +2359,8 @@ StringRef ARMAsmParser::splitMnemonic(StringRef Mnemonic,    // First, split out any predication code. Ignore mnemonics we know aren't    // predicated but do have a carry-set and so weren't caught above.    if (Mnemonic != "adcs" && Mnemonic != "bics" && Mnemonic != "movs" && -      Mnemonic != "muls" && Mnemonic != "smlals" && Mnemonic != "smulls") { +      Mnemonic != "muls" && Mnemonic != "smlals" && Mnemonic != "smulls" && +      Mnemonic != "umlals") {      unsigned CC = StringSwitch<unsigned>(Mnemonic.substr(Mnemonic.size()-2))        .Case("eq", ARMCC::EQ)        .Case("ne", ARMCC::NE) diff --git a/llvm/test/MC/ARM/basic-arm-instructions.s b/llvm/test/MC/ARM/basic-arm-instructions.s index c5d27debc22..f09bfd92dc2 100644 --- a/llvm/test/MC/ARM/basic-arm-instructions.s +++ b/llvm/test/MC/ARM/basic-arm-instructions.s @@ -2068,3 +2068,16 @@ _func:  @ CHECK: umaal	r3, r4, r5, r6          @ encoding: [0x95,0x46,0x43,0xe0]  @ CHECK: umaallt	r3, r4, r5, r6  @ encoding: [0x95,0x46,0x43,0xb0] + +@------------------------------------------------------------------------------ +@ UMLAL +@------------------------------------------------------------------------------ +        umlal r2, r4, r6, r8 +        umlalgt r6, r1, r2, r6 +        umlals r2, r9, r2, r3 +        umlalseq r3, r5, r1, r2 + +@ CHECK: umlal	r2, r4, r6, r8          @ encoding: [0x96,0x28,0xa4,0xe0] +@ CHECK: umlalgt	r6, r1, r2, r6  @ encoding: [0x92,0x66,0xa1,0xc0] +@ CHECK: umlals	r2, r9, r2, r3          @ encoding: [0x92,0x23,0xb9,0xe0] +@ CHECK: umlalseq	r3, r5, r1, r2  @ encoding: [0x91,0x32,0xb5,0x00]  | 

