mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-26 13:10:42 +00:00
Fix disassembling of INVEPT and INVVPID to take operands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140955 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e1b4a1a07e
commit
846a2dcada
@ -16,9 +16,15 @@
|
||||
// VMX instructions
|
||||
|
||||
// 66 0F 38 80
|
||||
def INVEPT : I<0x80, RawFrm, (outs), (ins), "invept", []>, OpSize, T8;
|
||||
def INVEPT32 : I<0x80, MRMSrcMem, (outs), (ins GR32:$src1, i128mem:$src2),
|
||||
"invept {$src2, $src1|$src1, $src2}", []>, OpSize, T8;
|
||||
def INVEPT64 : I<0x80, MRMSrcMem, (outs), (ins GR64:$src1, i128mem:$src2),
|
||||
"invept {$src2, $src1|$src1, $src2}", []>, OpSize, T8;
|
||||
// 66 0F 38 81
|
||||
def INVVPID : I<0x81, RawFrm, (outs), (ins), "invvpid", []>, OpSize, T8;
|
||||
def INVVPID32 : I<0x81, MRMSrcMem, (outs), (ins GR32:$src1, i128mem:$src2),
|
||||
"invvpid {$src2, $src1|$src1, $src2}", []>, OpSize, T8;
|
||||
def INVVPID64 : I<0x81, MRMSrcMem, (outs), (ins GR64:$src1, i128mem:$src2),
|
||||
"invvpid {$src2, $src1|$src1, $src2}", []>, OpSize, T8;
|
||||
// 0F 01 C1
|
||||
def VMCALL : I<0x01, MRM_C1, (outs), (ins), "vmcall", []>, TB;
|
||||
def VMCLEARm : I<0xC7, MRM6m, (outs), (ins i64mem:$vmcs),
|
||||
|
@ -302,3 +302,9 @@
|
||||
|
||||
# CHECK: crc32q %rax, %rax
|
||||
0xf2 0x48 0x0f 0x38 0xf1 0xc0
|
||||
|
||||
# CHECK: invept (%rax), %rax
|
||||
0x66 0x0f 0x38 0x80 0x00
|
||||
|
||||
# CHECK: invvpid (%rax), %rax
|
||||
0x66 0x0f 0x38 0x81 0x00
|
||||
|
@ -322,3 +322,8 @@
|
||||
# CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
|
||||
0xc4 0xe3 0x79 0x0b 0xc0 0x00
|
||||
|
||||
# CHECK: invept (%eax), %eax
|
||||
0x66 0x0f 0x38 0x80 0x00
|
||||
|
||||
# CHECK: invvpid (%eax), %eax
|
||||
0x66 0x0f 0x38 0x81 0x00
|
||||
|
@ -255,6 +255,8 @@ RecognizableInstr::RecognizableInstr(DisassemblerTables &tables,
|
||||
Rec->getName() == "REX64_PREFIX" ||
|
||||
Rec->getName().find("VMREAD64") != Name.npos ||
|
||||
Rec->getName().find("VMWRITE64") != Name.npos ||
|
||||
Rec->getName().find("INVEPT64") != Name.npos ||
|
||||
Rec->getName().find("INVVPID64") != Name.npos ||
|
||||
Rec->getName().find("MOV64") != Name.npos ||
|
||||
Rec->getName().find("PUSH64") != Name.npos ||
|
||||
Rec->getName().find("POP64") != Name.npos;
|
||||
|
Loading…
Reference in New Issue
Block a user