Thumb2 parsing and encoding for CLREX.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139172 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jim Grosbach 2011-09-06 20:27:04 +00:00
parent 39950595f7
commit ad2dad930d
3 changed files with 15 additions and 5 deletions

View File

@ -2897,9 +2897,7 @@ def t2STREXD : T2I_strex<0b11, (outs rGPR:$Rd),
let Inst{11-8} = Rt2;
}
// Clear-Exclusive is for disassembly only.
def t2CLREX : T2XI<(outs), (ins), NoItinerary, "clrex",
[/* For disassembly only; pattern left blank */]>,
def t2CLREX : T2I<(outs), (ins), NoItinerary, "clrex", "", []>,
Requires<[IsThumb2, HasV7]> {
let Inst{31-16} = 0xf3bf;
let Inst{15-14} = 0b10;

View File

@ -3022,8 +3022,8 @@ getMnemonicAcceptInfo(StringRef Mnemonic, bool &CanAcceptCarrySet,
Mnemonic == "cps" || Mnemonic == "mcr2" || Mnemonic == "it" ||
Mnemonic == "mcrr2" || Mnemonic == "cbz" || Mnemonic == "cdp2" ||
Mnemonic == "trap" || Mnemonic == "mrc2" || Mnemonic == "mrrc2" ||
Mnemonic == "dsb" || Mnemonic == "isb" || Mnemonic == "clrex" ||
Mnemonic == "setend" ||
Mnemonic == "dsb" || Mnemonic == "isb" || Mnemonic == "setend" ||
(Mnemonic == "clrex" && !isThumb()) ||
(Mnemonic == "nop" && isThumbOne()) ||
((Mnemonic == "pld" || Mnemonic == "pli" || Mnemonic == "pldw") &&
!isThumb()) ||

View File

@ -292,6 +292,18 @@ _func:
@ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xfe,0x81,0x17]
@------------------------------------------------------------------------------
@ CLREX
@------------------------------------------------------------------------------
clrex
it ne
clrexne
@ CHECK: clrex @ encoding: [0xbf,0xf3,0x2f,0x8f]
@ CHECK: it ne @ encoding: [0x18,0xbf]
@ CHECK: clrexne @ encoding: [0xbf,0xf3,0x2f,0x8f]
@------------------------------------------------------------------------------
@ IT
@------------------------------------------------------------------------------