mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-22 13:29:44 +00:00
Fix the encoding and parsing of clrex instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123936 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
55931ab992
commit
e47f3751d7
@ -2912,13 +2912,16 @@ def t2STREXD : T2I_strex<0b11, (outs rGPR:$Rd),
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Clear-Exclusive is for disassembly only.
|
// Clear-Exclusive is for disassembly only.
|
||||||
def t2CLREX : T2I<(outs), (ins), NoItinerary, "clrex", "",
|
def t2CLREX : T2XI<(outs), (ins), NoItinerary, "clrex",
|
||||||
[/* For disassembly only; pattern left blank */]>,
|
[/* For disassembly only; pattern left blank */]>,
|
||||||
Requires<[IsARM, HasV7]> {
|
Requires<[IsThumb2, HasV7]> {
|
||||||
let Inst{31-20} = 0xf3b;
|
let Inst{31-16} = 0xf3bf;
|
||||||
let Inst{15-14} = 0b10;
|
let Inst{15-14} = 0b10;
|
||||||
|
let Inst{13} = 0;
|
||||||
let Inst{12} = 0;
|
let Inst{12} = 0;
|
||||||
|
let Inst{11-8} = 0b1111;
|
||||||
let Inst{7-4} = 0b0010;
|
let Inst{7-4} = 0b0010;
|
||||||
|
let Inst{3-0} = 0b1111;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
@ -1194,7 +1194,8 @@ GetMnemonicAcceptInfo(StringRef Mnemonic, bool &CanAcceptCarrySet,
|
|||||||
Mnemonic == "cps" || Mnemonic == "mcr2" || Mnemonic == "it" ||
|
Mnemonic == "cps" || Mnemonic == "mcr2" || Mnemonic == "it" ||
|
||||||
Mnemonic == "mcrr2" || Mnemonic == "cbz" || Mnemonic == "cdp2" ||
|
Mnemonic == "mcrr2" || Mnemonic == "cbz" || Mnemonic == "cdp2" ||
|
||||||
Mnemonic == "trap" || Mnemonic == "mrc2" || Mnemonic == "mrrc2" ||
|
Mnemonic == "trap" || Mnemonic == "mrc2" || Mnemonic == "mrrc2" ||
|
||||||
Mnemonic == "dsb" || Mnemonic == "movs" || Mnemonic == "isb") {
|
Mnemonic == "dsb" || Mnemonic == "movs" || Mnemonic == "isb" ||
|
||||||
|
Mnemonic == "clrex") {
|
||||||
CanAcceptPredicationCode = false;
|
CanAcceptPredicationCode = false;
|
||||||
} else {
|
} else {
|
||||||
CanAcceptPredicationCode = true;
|
CanAcceptPredicationCode = true;
|
||||||
|
@ -159,3 +159,5 @@
|
|||||||
@ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xfe]
|
@ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xfe]
|
||||||
cdp2 p7, #1, c1, c1, c1, #4
|
cdp2 p7, #1, c1, c1, c1, #4
|
||||||
|
|
||||||
|
@ CHECK: clrex @ encoding: [0x1f,0xf0,0x7f,0xf5]
|
||||||
|
clrex
|
||||||
|
@ -197,3 +197,5 @@
|
|||||||
@ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xfe,0x81,0x17]
|
@ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xfe,0x81,0x17]
|
||||||
cdp2 p7, #1, c1, c1, c1, #4
|
cdp2 p7, #1, c1, c1, c1, #4
|
||||||
|
|
||||||
|
@ CHECK: clrex @ encoding: [0xbf,0xf3,0x2f,0x8f]
|
||||||
|
clrex
|
||||||
|
Loading…
x
Reference in New Issue
Block a user