Added `MONITORX`, `MWAITX` and `ENCLV` instructions

This commit is contained in:
flobernd 2018-02-19 18:59:33 +01:00
parent a4f0b9731e
commit 2cd7018b5b
No known key found for this signature in database
GPG Key ID: 9C3AE0ED4A969F10
9 changed files with 5632 additions and 5599 deletions

View File

@ -106,6 +106,7 @@ enum ZydisISAExts
ZYDIS_ISA_EXT_LONGMODE, ZYDIS_ISA_EXT_LONGMODE,
ZYDIS_ISA_EXT_LZCNT, ZYDIS_ISA_EXT_LZCNT,
ZYDIS_ISA_EXT_MONITOR, ZYDIS_ISA_EXT_MONITOR,
ZYDIS_ISA_EXT_MONITORX,
ZYDIS_ISA_EXT_MOVBE, ZYDIS_ISA_EXT_MOVBE,
ZYDIS_ISA_EXT_MPX, ZYDIS_ISA_EXT_MPX,
ZYDIS_ISA_EXT_PAUSE, ZYDIS_ISA_EXT_PAUSE,
@ -127,6 +128,7 @@ enum ZydisISAExts
ZYDIS_ISA_EXT_RDWRFSGS, ZYDIS_ISA_EXT_RDWRFSGS,
ZYDIS_ISA_EXT_RTM, ZYDIS_ISA_EXT_RTM,
ZYDIS_ISA_EXT_SGX, ZYDIS_ISA_EXT_SGX,
ZYDIS_ISA_EXT_SGX_ENCLV,
ZYDIS_ISA_EXT_SHA, ZYDIS_ISA_EXT_SHA,
ZYDIS_ISA_EXT_SMAP, ZYDIS_ISA_EXT_SMAP,
ZYDIS_ISA_EXT_SMX, ZYDIS_ISA_EXT_SMX,

View File

@ -38,6 +38,7 @@ enum ZydisISASets
ZYDIS_ISA_SET_LZCNT, ZYDIS_ISA_SET_LZCNT,
ZYDIS_ISA_SET_MMX, ZYDIS_ISA_SET_MMX,
ZYDIS_ISA_SET_MONITOR, ZYDIS_ISA_SET_MONITOR,
ZYDIS_ISA_SET_MONITORX,
ZYDIS_ISA_SET_MOVBE, ZYDIS_ISA_SET_MOVBE,
ZYDIS_ISA_SET_MPX, ZYDIS_ISA_SET_MPX,
ZYDIS_ISA_SET_PAUSE, ZYDIS_ISA_SET_PAUSE,
@ -53,6 +54,7 @@ enum ZydisISASets
ZYDIS_ISA_SET_RDWRFSGS, ZYDIS_ISA_SET_RDWRFSGS,
ZYDIS_ISA_SET_RTM, ZYDIS_ISA_SET_RTM,
ZYDIS_ISA_SET_SGX, ZYDIS_ISA_SET_SGX,
ZYDIS_ISA_SET_SGX_ENCLV,
ZYDIS_ISA_SET_SHA, ZYDIS_ISA_SET_SHA,
ZYDIS_ISA_SET_SMAP, ZYDIS_ISA_SET_SMAP,
ZYDIS_ISA_SET_SMX, ZYDIS_ISA_SET_SMX,

View File

@ -155,6 +155,7 @@ enum ZydisMnemonics
ZYDIS_MNEMONIC_EMMS, ZYDIS_MNEMONIC_EMMS,
ZYDIS_MNEMONIC_ENCLS, ZYDIS_MNEMONIC_ENCLS,
ZYDIS_MNEMONIC_ENCLU, ZYDIS_MNEMONIC_ENCLU,
ZYDIS_MNEMONIC_ENCLV,
ZYDIS_MNEMONIC_ENDBR32, ZYDIS_MNEMONIC_ENDBR32,
ZYDIS_MNEMONIC_ENDBR64, ZYDIS_MNEMONIC_ENDBR64,
ZYDIS_MNEMONIC_ENTER, ZYDIS_MNEMONIC_ENTER,
@ -418,6 +419,7 @@ enum ZydisMnemonics
ZYDIS_MNEMONIC_MINSD, ZYDIS_MNEMONIC_MINSD,
ZYDIS_MNEMONIC_MINSS, ZYDIS_MNEMONIC_MINSS,
ZYDIS_MNEMONIC_MONITOR, ZYDIS_MNEMONIC_MONITOR,
ZYDIS_MNEMONIC_MONITORX,
ZYDIS_MNEMONIC_MOV, ZYDIS_MNEMONIC_MOV,
ZYDIS_MNEMONIC_MOVAPD, ZYDIS_MNEMONIC_MOVAPD,
ZYDIS_MNEMONIC_MOVAPS, ZYDIS_MNEMONIC_MOVAPS,
@ -465,6 +467,7 @@ enum ZydisMnemonics
ZYDIS_MNEMONIC_MULSS, ZYDIS_MNEMONIC_MULSS,
ZYDIS_MNEMONIC_MULX, ZYDIS_MNEMONIC_MULX,
ZYDIS_MNEMONIC_MWAIT, ZYDIS_MNEMONIC_MWAIT,
ZYDIS_MNEMONIC_MWAITX,
ZYDIS_MNEMONIC_NEG, ZYDIS_MNEMONIC_NEG,
ZYDIS_MNEMONIC_NOP, ZYDIS_MNEMONIC_NOP,
ZYDIS_MNEMONIC_NOT, ZYDIS_MNEMONIC_NOT,

File diff suppressed because one or more lines are too long

View File

@ -98,6 +98,7 @@ static const char* zydisISAExtStrings[] =
"LONGMODE", "LONGMODE",
"LZCNT", "LZCNT",
"MONITOR", "MONITOR",
"MONITORX",
"MOVBE", "MOVBE",
"MPX", "MPX",
"PAUSE", "PAUSE",
@ -119,6 +120,7 @@ static const char* zydisISAExtStrings[] =
"RDWRFSGS", "RDWRFSGS",
"RTM", "RTM",
"SGX", "SGX",
"SGX_ENCLV",
"SHA", "SHA",
"SMAP", "SMAP",
"SMX", "SMX",

View File

@ -30,6 +30,7 @@ static const char* zydisISASetStrings[] =
"LZCNT", "LZCNT",
"MMX", "MMX",
"MONITOR", "MONITOR",
"MONITORX",
"MOVBE", "MOVBE",
"MPX", "MPX",
"PAUSE", "PAUSE",
@ -45,6 +46,7 @@ static const char* zydisISASetStrings[] =
"RDWRFSGS", "RDWRFSGS",
"RTM", "RTM",
"SGX", "SGX",
"SGX_ENCLV",
"SHA", "SHA",
"SMAP", "SMAP",
"SMX", "SMX",

View File

@ -147,6 +147,7 @@ static const ZydisStaticString zydisMnemonicStrings[] =
ZYDIS_MAKE_STATIC_STRING("emms"), ZYDIS_MAKE_STATIC_STRING("emms"),
ZYDIS_MAKE_STATIC_STRING("encls"), ZYDIS_MAKE_STATIC_STRING("encls"),
ZYDIS_MAKE_STATIC_STRING("enclu"), ZYDIS_MAKE_STATIC_STRING("enclu"),
ZYDIS_MAKE_STATIC_STRING("enclv"),
ZYDIS_MAKE_STATIC_STRING("endbr32"), ZYDIS_MAKE_STATIC_STRING("endbr32"),
ZYDIS_MAKE_STATIC_STRING("endbr64"), ZYDIS_MAKE_STATIC_STRING("endbr64"),
ZYDIS_MAKE_STATIC_STRING("enter"), ZYDIS_MAKE_STATIC_STRING("enter"),
@ -410,6 +411,7 @@ static const ZydisStaticString zydisMnemonicStrings[] =
ZYDIS_MAKE_STATIC_STRING("minsd"), ZYDIS_MAKE_STATIC_STRING("minsd"),
ZYDIS_MAKE_STATIC_STRING("minss"), ZYDIS_MAKE_STATIC_STRING("minss"),
ZYDIS_MAKE_STATIC_STRING("monitor"), ZYDIS_MAKE_STATIC_STRING("monitor"),
ZYDIS_MAKE_STATIC_STRING("monitorx"),
ZYDIS_MAKE_STATIC_STRING("mov"), ZYDIS_MAKE_STATIC_STRING("mov"),
ZYDIS_MAKE_STATIC_STRING("movapd"), ZYDIS_MAKE_STATIC_STRING("movapd"),
ZYDIS_MAKE_STATIC_STRING("movaps"), ZYDIS_MAKE_STATIC_STRING("movaps"),
@ -457,6 +459,7 @@ static const ZydisStaticString zydisMnemonicStrings[] =
ZYDIS_MAKE_STATIC_STRING("mulss"), ZYDIS_MAKE_STATIC_STRING("mulss"),
ZYDIS_MAKE_STATIC_STRING("mulx"), ZYDIS_MAKE_STATIC_STRING("mulx"),
ZYDIS_MAKE_STATIC_STRING("mwait"), ZYDIS_MAKE_STATIC_STRING("mwait"),
ZYDIS_MAKE_STATIC_STRING("mwaitx"),
ZYDIS_MAKE_STATIC_STRING("neg"), ZYDIS_MAKE_STATIC_STRING("neg"),
ZYDIS_MAKE_STATIC_STRING("nop"), ZYDIS_MAKE_STATIC_STRING("nop"),
ZYDIS_MAKE_STATIC_STRING("not"), ZYDIS_MAKE_STATIC_STRING("not"),

File diff suppressed because it is too large Load Diff

View File

@ -1170,6 +1170,10 @@ const ZydisOperandDefinition operandDefinitions[] =
{ ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RBX } } } }, { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RBX } } } },
{ ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RCX } } } }, { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RCX } } } },
{ ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RDX } } } }, { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RDX } } } },
{ ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_IELEMENT_TYPE_UINT32, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } },
{ ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 8, 8, 8 }, ZYDIS_IELEMENT_TYPE_UINT64, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RBX } } } },
{ ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 8, 8, 8 }, ZYDIS_IELEMENT_TYPE_UINT64, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RCX } } } },
{ ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 8, 8, 8 }, ZYDIS_IELEMENT_TYPE_UINT64, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RDX } } } },
{ ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
{ ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
{ ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 4, 4 }, ZYDIS_IELEMENT_TYPE_INT, { .encoding = ZYDIS_OPERAND_ENCODING_SIMM16_32_32 } }, { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 4, 4 }, ZYDIS_IELEMENT_TYPE_INT, { .encoding = ZYDIS_OPERAND_ENCODING_SIMM16_32_32 } },