mirror of
https://github.com/TinyCC/tinycc.git
synced 2025-11-16 12:34:45 +00:00
x86asm: Add vm* and iret[wlq] insns
The no-operand vm* instructions can be interpreted as having a funny modrm byte, but unlike no-operand OPC_MODRM it's also the r/m field which selects the insn, not (only) the reg field (aka group), so we need another insn type.
This commit is contained in:
@@ -30,6 +30,9 @@
|
||||
DEF_ASM_OP0(int3, 0xcc)
|
||||
DEF_ASM_OP0(into, 0xce)
|
||||
DEF_ASM_OP0(iret, 0xcf)
|
||||
DEF_ASM_OP0(iretw, 0x66cf)
|
||||
DEF_ASM_OP0(iretl, 0xcf)
|
||||
DEF_ASM_OP0(iretq, 0x48cf)
|
||||
DEF_ASM_OP0(rsm, 0x0faa)
|
||||
DEF_ASM_OP0(hlt, 0xf4)
|
||||
DEF_ASM_OP0(wait, 0x9b)
|
||||
@@ -37,6 +40,11 @@
|
||||
DEF_ASM_OP0(pause, 0xf390)
|
||||
DEF_ASM_OP0(xlat, 0xd7)
|
||||
|
||||
DEF_ASM_OP0L(vmcall, 0xc1, 0, OPC_0F01)
|
||||
DEF_ASM_OP0L(vmlaunch, 0xc2, 0, OPC_0F01)
|
||||
DEF_ASM_OP0L(vmresume, 0xc3, 0, OPC_0F01)
|
||||
DEF_ASM_OP0L(vmxoff, 0xc4, 0, OPC_0F01)
|
||||
|
||||
/* strings */
|
||||
ALT(DEF_ASM_OP0L(cmpsb, 0xa6, 0, OPC_BWLX))
|
||||
ALT(DEF_ASM_OP0L(scmpb, 0xa6, 0, OPC_BWLX))
|
||||
|
||||
Reference in New Issue
Block a user