From 1db4db9ec2b51f456e5ead11d1701c53b9a8affa Mon Sep 17 00:00:00 2001 From: flobernd Date: Fri, 16 Jun 2017 03:25:39 +0200 Subject: [PATCH] Added semantic decoding of implicit register operands --- include/Zydis/InstructionInfo.h | 10 +- include/Zydis/Internal/InstructionTable.h | 32 +- include/Zydis/Internal/OperandDefinitions.inc | 842 +++++++++--------- include/Zydis/Register.h | 30 +- include/Zydis/Status.h | 1 - src/Decoder.c | 185 +++- src/Formatter.c | 38 +- src/Register.c | 30 +- src/Utils.c | 3 +- 9 files changed, 674 insertions(+), 497 deletions(-) diff --git a/include/Zydis/InstructionInfo.h b/include/Zydis/InstructionInfo.h index c3d0e26..1ba2585 100644 --- a/include/Zydis/InstructionInfo.h +++ b/include/Zydis/InstructionInfo.h @@ -818,11 +818,11 @@ typedef uint16_t ZydisBroadcastMode; */ enum ZydisBroadcastModes { - ZYDIS_BROADCAST_MODE_INVALID, - ZYDIS_BROADCAST_MODE_1_TO_2, - ZYDIS_BROADCAST_MODE_1_TO_4, - ZYDIS_BROADCAST_MODE_1_TO_8, - ZYDIS_BROADCAST_MODE_1_TO_16 + ZYDIS_BCSTMODE_INVALID, + ZYDIS_BCSTMODE_1_TO_2, + ZYDIS_BCSTMODE_1_TO_4, + ZYDIS_BCSTMODE_1_TO_8, + ZYDIS_BCSTMODE_1_TO_16 }; /* ---------------------------------------------------------------------------------------------- */ diff --git a/include/Zydis/Internal/InstructionTable.h b/include/Zydis/Internal/InstructionTable.h index cb19508..c9d3c72 100644 --- a/include/Zydis/Internal/InstructionTable.h +++ b/include/Zydis/Internal/InstructionTable.h @@ -63,9 +63,6 @@ typedef uint16_t ZydisInstructionTreeNodeValue; /** * @brief Defines the @c ZydisInstructionTreeNode struct. - * - * This struct is static for now, because its size is sufficient to encode up to 65535 - * instruction filters (what is about 10 times more than we currently need). */ typedef struct ZydisInstructionTreeNode_ { @@ -220,7 +217,15 @@ typedef struct ZydisOperandDefinition_ union { uint8_t encoding; - ZydisRegister reg; + struct + { + uint8_t type : 3; + union + { + ZydisRegister reg : 8; + uint8_t id : 6; + } reg; + } reg; struct { uint8_t seg : 3; @@ -230,6 +235,25 @@ typedef struct ZydisOperandDefinition_ } op; } ZydisOperandDefinition; +enum ZydisImplicitRegisterType +{ + ZYDIS_IMPLREG_TYPE_STATIC, + ZYDIS_IMPLREG_TYPE_GPR_OSZ, + ZYDIS_IMPLREG_TYPE_GPR_ASZ, + ZYDIS_IMPLREG_TYPE_GPR_SSZ, + ZYDIS_IMPLREG_TYPE_IP_ASZ, + ZYDIS_IMPLREG_TYPE_IP_SSZ, + ZYDIS_IMPLREG_TYPE_FLAGS_SSZ +}; + +enum ZydisImplicitMemBase +{ + ZYDIS_IMPLMEM_BASE_ASI, + ZYDIS_IMPLMEM_BASE_ADI, + ZYDIS_IMPLMEM_BASE_ABP, + ZYDIS_IMPLMEM_BASE_ABX +}; + /* ---------------------------------------------------------------------------------------------- */ /* Instruction definition */ /* ---------------------------------------------------------------------------------------------- */ diff --git a/include/Zydis/Internal/OperandDefinitions.inc b/include/Zydis/Internal/OperandDefinitions.inc index b461fb2..9d209c5 100644 --- a/include/Zydis/Internal/OperandDefinitions.inc +++ b/include/Zydis/Internal/OperandDefinitions.inc @@ -1,93 +1,93 @@ const ZydisOperandDefinition operandDefinitions[] = { - /*0000*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0001*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0002*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0003*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0004*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0005*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0006*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0007*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0008*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0009*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*000A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*000B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*000C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*000D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*000E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*000F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0010*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0011*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0012*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0013*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0014*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0015*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0016*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0017*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0018*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0019*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*001A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*001B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*001C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*001D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0000*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, + /*0001*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_CX } } } }, + /*0002*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, + /*0003*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_BX } } } }, + /*0004*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_SP } } } }, + /*0005*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_BP } } } }, + /*0006*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_SI } } } }, + /*0007*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DI } } } }, + /*0008*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*0009*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, + /*000A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*000B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EBX } } } }, + /*000C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ESP } } } }, + /*000D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EBP } } } }, + /*000E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ESI } } } }, + /*000F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDI } } } }, + /*0010*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, + /*0011*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_CX } } } }, + /*0012*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, + /*0013*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_BX } } } }, + /*0014*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_BP } } } }, + /*0015*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_SI } } } }, + /*0016*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DI } } } }, + /*0017*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*0018*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, + /*0019*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*001A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EBX } } } }, + /*001B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EBP } } } }, + /*001C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ESI } } } }, + /*001D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDI } } } }, /*001E*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*001F*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*0020*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*0021*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0022*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0023*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0021*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*0022*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*0023*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, /*0024*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0025*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*0026*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*0027*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0028*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0029*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0027*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*0028*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*0029*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, /*002A*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*002B*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*002C*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*002D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*002E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*002F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*002D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RAX } } } }, + /*002E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RDX } } } }, + /*002F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RCX } } } }, /*0030*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0031*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*0032*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*0033*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0034*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0035*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0033*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RAX } } } }, + /*0034*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RDX } } } }, + /*0035*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RCX } } } }, /*0036*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0037*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*0038*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*0039*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*003A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*003B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, + /*0039*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*003A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*003B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XMM0 } } } }, /*003C*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*003D*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*003E*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*003F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0040*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0041*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, + /*003F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*0040*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*0041*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XMM0 } } } }, /*0042*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0043*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*0044*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*0045*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0046*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0047*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, + /*0045*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RAX } } } }, + /*0046*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RDX } } } }, + /*0047*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XMM0 } } } }, /*0048*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0049*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*004A*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*004B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*004C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*004D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, + /*004B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RAX } } } }, + /*004C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RDX } } } }, + /*004D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XMM0 } } } }, /*004E*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*004F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0050*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0051*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0052*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*004F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RDX } } } }, + /*0050*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RAX } } } }, + /*0051*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RCX } } } }, + /*0052*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RBX } } } }, /*0053*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*0054*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0055*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0056*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0057*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0054*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*0055*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*0056*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, + /*0057*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EBX } } } }, /*0058*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0059*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_NDS } }, /*005A*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, @@ -943,54 +943,54 @@ const ZydisOperandDefinition operandDefinitions[] = /*03AC*/ { ZYDIS_SEMANTIC_OPTYPE_ZMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 64, 64, 64 }, ZYDIS_ELEMENT_TYPE_UINT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_NDS } }, /*03AD*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_VARIABLE, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*03AE*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*03AF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03B0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03B1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03B2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03B3*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03B4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03B5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03B6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*03AF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*03B0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EBX } } } }, + /*03B1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, + /*03B2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*03B3*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*03B4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RBX } } } }, + /*03B5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RCX } } } }, + /*03B6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RDX } } } }, /*03B7*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*03B8*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*03B9*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*03BA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*03BA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, /*03BB*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*03BC*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*03BD*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*03BE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*03BE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, /*03BF*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*03C0*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*03C1*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*03C2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*03C2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RCX } } } }, /*03C3*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*03C4*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*03C5*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*03C6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*03C6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RCX } } } }, /*03C7*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*03C8*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*03C9*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*03CA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, + /*03CA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XMM0 } } } }, /*03CB*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*03CC*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*03CD*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*03CE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*03CF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03D0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03D1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03D2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*03CE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XMM0 } } } }, + /*03CF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, + /*03D0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*03D1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*03D2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XCR0 } } } }, /*03D3*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 576, 576, 576 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*03D4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03D5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03D6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*03D4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*03D5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*03D6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XCR0 } } } }, /*03D7*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 576, 576, 576 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*03D8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03D9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03DA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03DB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03DC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03DD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*03DE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*03D8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*03D9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*03DA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XCR0 } } } }, + /*03DB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, + /*03DC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*03DD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*03DE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XCR0 } } } }, /*03DF*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 1, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*03E0*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 1, { .encoding = ZYDIS_OPERAND_ENCODING_NDS } }, /*03E1*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 1, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, @@ -1130,19 +1130,19 @@ const ZydisOperandDefinition operandDefinitions[] = /*0467*/ { ZYDIS_SEMANTIC_OPTYPE_GPR32, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0468*/ { ZYDIS_SEMANTIC_OPTYPE_GPR32, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_NDS } }, /*0469*/ { ZYDIS_SEMANTIC_OPTYPE_GPR32, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*046A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*046A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, /*046B*/ { ZYDIS_SEMANTIC_OPTYPE_GPR32, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*046C*/ { ZYDIS_SEMANTIC_OPTYPE_GPR32, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_NDS } }, /*046D*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*046E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*046E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, /*046F*/ { ZYDIS_SEMANTIC_OPTYPE_GPR64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0470*/ { ZYDIS_SEMANTIC_OPTYPE_GPR64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_NDS } }, /*0471*/ { ZYDIS_SEMANTIC_OPTYPE_GPR64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*0472*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0472*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RDX } } } }, /*0473*/ { ZYDIS_SEMANTIC_OPTYPE_GPR64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0474*/ { ZYDIS_SEMANTIC_OPTYPE_GPR64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_NDS } }, /*0475*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*0476*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0476*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RDX } } } }, /*0477*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0478*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_NDS } }, /*0479*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, @@ -2248,11 +2248,11 @@ const ZydisOperandDefinition operandDefinitions[] = /*08C5*/ { ZYDIS_SEMANTIC_OPTYPE_ZMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 64, 64, 64 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_NDS } }, /*08C6*/ { ZYDIS_SEMANTIC_OPTYPE_ZMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 64, 64, 64 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*08C7*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_INT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_SIMM8 } }, - /*08C8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*08C9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*08C8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, + /*08C9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AH } } } }, /*08CA*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_INT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_SIMM8 } }, - /*08CB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*08CC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*08CB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, + /*08CC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AH } } } }, /*08CD*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*08CE*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*08CF*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, @@ -2273,64 +2273,64 @@ const ZydisOperandDefinition operandDefinitions[] = /*08DE*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, /*08DF*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*08E0*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*08E1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 64, { 0 } }, + /*08E1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 64, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XMM0 } } } }, /*08E2*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*08E3*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*08E4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 64, { 0 } }, + /*08E4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 64, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XMM0 } } } }, /*08E5*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*08E6*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*08E7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 32, { 0 } }, + /*08E7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 32, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XMM0 } } } }, /*08E8*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*08E9*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*08EA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 32, { 0 } }, + /*08EA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 32, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XMM0 } } } }, /*08EB*/ { ZYDIS_SEMANTIC_OPTYPE_PTR, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 6, 6 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_JIMM16_32_32 } }, /*08EC*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM16 } }, - /*08ED*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*08EE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*08EF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*08F0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*08F1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*08F2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*08F3*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*08ED*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_IP_ASZ, { .id = -1 } } } }, + /*08EE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*08EF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*08F0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*08F1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*08F2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*08F3*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, /*08F4*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*08F5*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*08F6*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, /*08F7*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*08F8*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*08F9*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*08FA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { 0 } }, - /*08FB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { 0 } }, - /*08FC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*08FA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*08FB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*08FC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, /*08FD*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*08FE*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*08FF*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, /*0900*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0901*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*0902*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*0903*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, - /*0904*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, - /*0905*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0903*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0904*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0905*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, /*0906*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*0907*/ { ZYDIS_SEMANTIC_OPTYPE_GPR8, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, - /*0908*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0908*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, /*0909*/ { ZYDIS_SEMANTIC_OPTYPE_GPR8, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*090A*/ { ZYDIS_SEMANTIC_OPTYPE_GPR8, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, - /*090B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*090B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, /*090C*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 2, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*090D*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, - /*090E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*090E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 0 } } } }, /*090F*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*0910*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, - /*0911*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0911*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 0 } } } }, /*0912*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*0913*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0914*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0913*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 0 } } } }, + /*0914*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 2 } } } }, /*0915*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*0916*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0917*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0916*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 0 } } } }, + /*0917*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 2 } } } }, /*0918*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM16 } }, /*0919*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*091A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*091A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 5 } } } }, /*091B*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*091C*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*091D*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, @@ -2350,113 +2350,113 @@ const ZydisOperandDefinition operandDefinitions[] = /*092B*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*092C*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_INT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_SIMM8 } }, /*092D*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*092E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*092F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*092E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, + /*092F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, /*0930*/ { ZYDIS_SEMANTIC_OPTYPE_GPR8, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*0931*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0932*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0931*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, + /*0932*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, /*0933*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*0934*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0935*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0934*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 0 } } } }, + /*0935*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 2 } } } }, /*0936*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*0937*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0938*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0939*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*093A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*093B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*093C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*093D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*093E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0937*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 0 } } } }, + /*0938*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 2 } } } }, + /*0939*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*093A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, + /*093B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*093C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*093D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, + /*093E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, /*093F*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0940*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*0941*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*0942*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, - /*0943*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0944*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0942*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0943*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, + /*0944*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, /*0945*/ { ZYDIS_SEMANTIC_OPTYPE_REL, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_INT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_JIMM8 } }, - /*0946*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0947*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0946*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_CX } } } }, + /*0947*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_IP } } } }, /*0948*/ { ZYDIS_SEMANTIC_OPTYPE_REL, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_INT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_JIMM8 } }, - /*0949*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*094A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0949*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, + /*094A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EIP } } } }, /*094B*/ { ZYDIS_SEMANTIC_OPTYPE_REL, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_INT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_JIMM8 } }, - /*094C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*094D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*094C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, + /*094D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RIP } } } }, /*094E*/ { ZYDIS_SEMANTIC_OPTYPE_REL, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_INT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_JIMM8 } }, - /*094F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0950*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*094F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RCX } } } }, + /*0950*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RIP } } } }, /*0951*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_32, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0952*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 6, 6 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*0953*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0954*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 2, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { 0 } }, - /*0955*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0956*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0953*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DS } } } }, + /*0954*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 2, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .mem = { 2, ZYDIS_IMPLMEM_BASE_ABP, ZYDIS_OPERAND_ACTION_READ } } }, + /*0955*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 5 } } } }, + /*0956*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 4 } } } }, /*0957*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_32, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0958*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 6, 6 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*0959*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0959*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ES } } } }, /*095A*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*095B*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 6, 10 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*095C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*095C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_FS } } } }, /*095D*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*095E*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 6, 10 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*095F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0960*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0961*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*0962*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0963*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0964*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*0965*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0966*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0967*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { 0 } }, - /*0968*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0969*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*096A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, - /*096B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*095F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_GS } } } }, + /*0960*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, + /*0961*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0962*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*0963*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*0964*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0965*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*0966*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RAX } } } }, + /*0967*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0968*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*0969*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, + /*096A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*096B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, /*096C*/ { ZYDIS_SEMANTIC_OPTYPE_REL, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_INT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_JIMM8 } }, - /*096D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*096E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*096D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*096E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_IP_ASZ, { .id = -1 } } } }, /*096F*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0970*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 6, 10 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*0971*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0971*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_SS } } } }, /*0972*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0973*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*0974*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, + /*0974*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, /*0975*/ { ZYDIS_SEMANTIC_OPTYPE_MMX, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0976*/ { ZYDIS_SEMANTIC_OPTYPE_MMX, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*0977*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { 0 } }, - /*0978*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0979*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*097A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*097B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*097C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*097D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*097E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*097F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*0980*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0981*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*0982*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*0983*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0984*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { 0 } }, - /*0985*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { 0 } }, - /*0986*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0987*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, - /*0988*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, - /*0989*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0977*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0978*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, + /*0979*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, + /*097A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*097B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RAX } } } }, + /*097C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, + /*097D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*097E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*097F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0980*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*0981*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0982*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0983*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*0984*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0985*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0986*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*0987*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0988*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0989*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, /*098A*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*098B*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*098C*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, /*098D*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*098E*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*098F*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*0990*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0991*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*0992*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0993*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0994*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*0995*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0996*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0997*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, - /*0998*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0990*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, + /*0991*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0992*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*0993*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, + /*0994*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0995*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*0996*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, + /*0997*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0998*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, /*0999*/ { ZYDIS_SEMANTIC_OPTYPE_MMX, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*099A*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*099B*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, @@ -2471,10 +2471,10 @@ const ZydisOperandDefinition operandDefinitions[] = /*09A4*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, /*09A5*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*09A6*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*09A7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, + /*09A7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XMM0 } } } }, /*09A8*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*09A9*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*09AA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, + /*09AA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XMM0 } } } }, /*09AB*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*09AC*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*09AD*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, @@ -2544,15 +2544,15 @@ const ZydisOperandDefinition operandDefinitions[] = /*09ED*/ { ZYDIS_SEMANTIC_OPTYPE_MMX, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_UINT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*09EE*/ { ZYDIS_SEMANTIC_OPTYPE_MMX, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_UINT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*09EF*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*09F0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*09F1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*09F2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*09F3*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*09F4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*09F5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*09F6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*09F7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*09F8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*09F0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*09F1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*09F2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, + /*09F3*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*09F4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*09F5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, + /*09F6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*09F7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*09F8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, /*09F9*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*09FA*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*09FB*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, @@ -2577,24 +2577,24 @@ const ZydisOperandDefinition operandDefinitions[] = /*0A0E*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0A0F*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*0A10*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*0A11*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A12*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*0A13*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A14*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A15*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*0A16*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A17*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A18*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { 0 } }, - /*0A19*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A1A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A1B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, - /*0A1C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0A11*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, + /*0A12*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0A13*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*0A14*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*0A15*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0A16*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*0A17*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RAX } } } }, + /*0A18*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0A19*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*0A1A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, + /*0A1B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDREAD, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0A1C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, /*0A1D*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0A1E*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*0A1F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, + /*0A1F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XMM0 } } } }, /*0A20*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0A21*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*0A22*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, + /*0A22*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_XMM0 } } } }, /*0A23*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 2, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*0A24*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0A25*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, @@ -2603,28 +2603,28 @@ const ZydisOperandDefinition operandDefinitions[] = /*0A28*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, /*0A29*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 2, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*0A2A*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, - /*0A2B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0A2B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_CL } } } }, /*0A2C*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*0A2D*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, - /*0A2E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A2F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*0A30*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A31*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A32*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*0A33*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A34*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A35*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { 0 } }, - /*0A36*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A37*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A38*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, - /*0A39*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A3A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A3B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A3C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A3D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A3E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A3F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*0A40*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*0A2E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_CL } } } }, + /*0A2F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0A30*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, + /*0A31*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*0A32*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0A33*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*0A34*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*0A35*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0A36*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RAX } } } }, + /*0A37*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*0A38*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_CONDWRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*0A39*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, + /*0A3A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_ASZ, { .id = 1 } } } }, + /*0A3B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*0A3C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*0A3D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, + /*0A3E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EDX } } } }, + /*0A3F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*0A40*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, /*0A41*/ { ZYDIS_SEMANTIC_OPTYPE_GPR32, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0A42*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*0A43*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM32 } }, @@ -2888,7 +2888,7 @@ const ZydisOperandDefinition operandDefinitions[] = /*0B45*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_NDS } }, /*0B46*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0B47*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*0B48*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, + /*0B48*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, /*0B49*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*0B4A*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_NDS } }, /*0B4B*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, @@ -4576,9 +4576,9 @@ const ZydisOperandDefinition operandDefinitions[] = /*11DD*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*11DE*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*11DF*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*11E0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*11E0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, /*11E1*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_INT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_SIMM8 } }, - /*11E2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*11E2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 0 } } } }, /*11E3*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_SIMM16_32_32 } }, /*11E4*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*11E5*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_INT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_SIMM8 } }, @@ -4659,41 +4659,41 @@ const ZydisOperandDefinition operandDefinitions[] = /*1230*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*1231*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, /*1232*/ { ZYDIS_SEMANTIC_OPTYPE_REL, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_JIMM16_32_32 } }, - /*1233*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1233*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_IP_ASZ, { .id = -1 } } } }, /*1234*/ { ZYDIS_SEMANTIC_OPTYPE_REL, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_JIMM32 } }, - /*1235*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1235*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_IP_ASZ, { .id = -1 } } } }, /*1236*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*1237*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1237*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_IP_ASZ, { .id = -1 } } } }, /*1238*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*1239*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1239*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_IP_ASZ, { .id = -1 } } } }, /*123A*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 6, 10 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*123B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*123C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*123D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*123E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*123F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*123B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_IP_ASZ, { .id = -1 } } } }, + /*123C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, + /*123D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, + /*123E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RAX } } } }, + /*123F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, /*1240*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*1241*/ { ZYDIS_SEMANTIC_OPTYPE_GPR8, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*1242*/ { ZYDIS_SEMANTIC_OPTYPE_GPR8, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*1243*/ { ZYDIS_SEMANTIC_OPTYPE_GPR8, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*1244*/ { ZYDIS_SEMANTIC_OPTYPE_GPR8, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*1245*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*1246*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1246*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, /*1247*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_INT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_SIMM8 } }, - /*1248*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1248*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 0 } } } }, /*1249*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_SIMM16_32_32 } }, /*124A*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*124B*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_INT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_SIMM8 } }, /*124C*/ { ZYDIS_SEMANTIC_OPTYPE_GPR8, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*124D*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_INT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_SIMM8 } }, - /*124E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*124F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*1250*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*1251*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*1252*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { 0 } }, - /*1253*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { 0 } }, - /*1254*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, - /*1255*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, + /*124E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*124F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*1250*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*1251*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*1252*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*1253*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*1254*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*1255*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, /*1256*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*1257*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*1258*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, @@ -4702,8 +4702,8 @@ const ZydisOperandDefinition operandDefinitions[] = /*125B*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*125C*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*125D*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*125E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*125F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*125E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RDX } } } }, + /*125F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RAX } } } }, /*1260*/ { ZYDIS_SEMANTIC_OPTYPE_GPR32_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 4, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*1261*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*1262*/ { ZYDIS_SEMANTIC_OPTYPE_GPR32_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 4, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, @@ -4794,144 +4794,144 @@ const ZydisOperandDefinition operandDefinitions[] = /*12B7*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*12B8*/ { ZYDIS_SEMANTIC_OPTYPE_MMX, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*12B9*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12BA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*12BB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*12BC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*12BD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*12BA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, + /*12BB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, + /*12BC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*12BD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, /*12BE*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12BF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*12BF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, /*12C0*/ { ZYDIS_SEMANTIC_OPTYPE_GPR8, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12C1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*12C2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12C1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, + /*12C2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12C3*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12C4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12C4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12C5*/ { ZYDIS_SEMANTIC_OPTYPE_FPR, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12C6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12C6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12C7*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*12C8*/ { ZYDIS_SEMANTIC_OPTYPE_FPR, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12C9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, - /*12CA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12C9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, + /*12CA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12CB*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_LONGBCD, 80, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*12CC*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_LONGBCD, 80, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12CD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, - /*12CE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_CONDWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12CD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, + /*12CE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_CONDWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12CF*/ { ZYDIS_SEMANTIC_OPTYPE_FPR, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12D0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12D0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12D1*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12D2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12D2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12D3*/ { ZYDIS_SEMANTIC_OPTYPE_FPR, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12D4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12D4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12D5*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12D6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, - /*12D7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, - /*12D8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12D6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, + /*12D7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST1 } } } }, + /*12D8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12D9*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12DA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12DA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12DB*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12DC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12DC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12DD*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12DE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12DE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12DF*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12E0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12E0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12E1*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12E2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12E2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12E3*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12E4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12E4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12E5*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*12E6*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12E7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12E7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12E8*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12E9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12E9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12EA*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12EB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, - /*12EC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12EB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, + /*12EC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12ED*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12EE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12EE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12EF*/ { ZYDIS_SEMANTIC_OPTYPE_FPR, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12F0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12F0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12F1*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12F2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12F2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12F3*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12F4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, - /*12F5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, - /*12F6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, - /*12F7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, - /*12F8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, - /*12F9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12F4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, + /*12F5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST1 } } } }, + /*12F6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, + /*12F7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST1 } } } }, + /*12F8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, + /*12F9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST1 } } } }, /*12FA*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12FB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12FB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12FC*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12FD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12FD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*12FE*/ { ZYDIS_SEMANTIC_OPTYPE_FPR, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*12FF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*12FF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*1300*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*1301*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, - /*1302*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*1301*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, + /*1302*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*1303*/ { ZYDIS_SEMANTIC_OPTYPE_FPR, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*1304*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*1305*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*1306*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1304*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*1305*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EBX } } } }, + /*1306*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, /*1307*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*1308*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*1309*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*130A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*130B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*130C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*130D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*130E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, - /*130F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1308*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, + /*1309*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, + /*130A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*130B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, + /*130C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*130D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, + /*130E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*130F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, /*1310*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*1311*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1311*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_IP_ASZ, { .id = -1 } } } }, /*1312*/ { ZYDIS_SEMANTIC_OPTYPE_GPR64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*1313*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*1314*/ { ZYDIS_SEMANTIC_OPTYPE_GPR32, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*1315*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*1316*/ { ZYDIS_SEMANTIC_OPTYPE_REL, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_INT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_JIMM8 } }, - /*1317*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1317*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_IP_ASZ, { .id = -1 } } } }, /*1318*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*1319*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1319*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_IP_ASZ, { .id = -1 } } } }, /*131A*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*131B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*131B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_IP_ASZ, { .id = -1 } } } }, /*131C*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_CONDWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*131D*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*131E*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*131F*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*1320*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*1321*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1321*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_MXCSR } } } }, /*1322*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*1323*/ { ZYDIS_SEMANTIC_OPTYPE_AGEN, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*1324*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*1325*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1325*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_GDTR } } } }, /*1326*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 6, 6, 10 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*1327*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1327*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_GDTR } } } }, /*1328*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*1329*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1329*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_IDTR } } } }, /*132A*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 6, 6, 10 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*132B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*132B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_IDTR } } } }, /*132C*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*132D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*132D*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_LDTR } } } }, /*132E*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*132F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*132F*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_LDTR } } } }, /*1330*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*1331*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1331*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_CR0 } } } }, /*1332*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*1333*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*1334*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*1335*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*1336*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*1337*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*1338*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*1339*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { 0 } }, - /*133A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*133B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, + /*1333*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_CR0 } } } }, + /*1334*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, + /*1335*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*1336*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*1337*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*1338*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RAX } } } }, + /*1339*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*133A*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, + /*133B*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, /*133C*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*133D*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*133E*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*133F*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_32, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*1340*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*1341*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1341*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_TR } } } }, /*1342*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*1343*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1343*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_TR } } } }, /*1344*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 2, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*1345*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*1346*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 2, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, @@ -4956,14 +4956,14 @@ const ZydisOperandDefinition operandDefinitions[] = /*1359*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*135A*/ { ZYDIS_SEMANTIC_OPTYPE_SREG, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*135B*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*135C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*135C*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, /*135D*/ { ZYDIS_SEMANTIC_OPTYPE_MOFFS, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_DISP16_32_64 } }, - /*135E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*135E*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 0 } } } }, /*135F*/ { ZYDIS_SEMANTIC_OPTYPE_MOFFS, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_DISP16_32_64 } }, /*1360*/ { ZYDIS_SEMANTIC_OPTYPE_MOFFS, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_DISP16_32_64 } }, - /*1361*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1361*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, /*1362*/ { ZYDIS_SEMANTIC_OPTYPE_MOFFS, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 2, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_DISP16_32_64 } }, - /*1363*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1363*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 0 } } } }, /*1364*/ { ZYDIS_SEMANTIC_OPTYPE_GPR8, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_OPCODE } }, /*1365*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, /*1366*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_OPCODE } }, @@ -5068,10 +5068,10 @@ const ZydisOperandDefinition operandDefinitions[] = /*13C9*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*13CA*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_UINT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*13CB*/ { ZYDIS_SEMANTIC_OPTYPE_MMX, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_UINT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*13CC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*13CD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*13CE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*13CF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, + /*13CC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*13CD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*13CE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*13CF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, /*13D0*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*13D1*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*13D2*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, @@ -5080,8 +5080,8 @@ const ZydisOperandDefinition operandDefinitions[] = /*13D5*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*13D6*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*13D7*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, - /*13D8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { 0 } }, - /*13D9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { 0 } }, + /*13D8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*13D9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, /*13DA*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*13DB*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*13DC*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, @@ -5090,8 +5090,8 @@ const ZydisOperandDefinition operandDefinitions[] = /*13DF*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*13E0*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*13E1*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, - /*13E2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, - /*13E3*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, + /*13E2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*13E3*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, /*13E4*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*13E5*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*13E6*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, @@ -5104,20 +5104,20 @@ const ZydisOperandDefinition operandDefinitions[] = /*13ED*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*13EE*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*13EF*/ { ZYDIS_SEMANTIC_OPTYPE_GPR32, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*13F0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*13F1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*13F2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*13F0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*13F1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ECX } } } }, + /*13F2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, /*13F3*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, /*13F4*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM8 } }, - /*13F5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*13F6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*13F7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*13F8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*13F9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*13FA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*13FB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*13FC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*13FD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, + /*13F5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, + /*13F6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, + /*13F7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, + /*13F8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, + /*13F9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*13FA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, + /*13FB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, + /*13FC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DX } } } }, + /*13FD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ASI, ZYDIS_OPERAND_ACTION_READ } } }, /*13FE*/ { ZYDIS_SEMANTIC_OPTYPE_MMX, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*13FF*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*1400*/ { ZYDIS_SEMANTIC_OPTYPE_MMX, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, @@ -5289,55 +5289,55 @@ const ZydisOperandDefinition operandDefinitions[] = /*14A6*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*14A7*/ { ZYDIS_SEMANTIC_OPTYPE_IMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_UIMM_CONST1 } }, /*14A8*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*14A9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*14A9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_CL } } } }, /*14AA*/ { ZYDIS_SEMANTIC_OPTYPE_GPR8, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*14AB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*14AB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_CL } } } }, /*14AC*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 2, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*14AD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*14AD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_CL } } } }, /*14AE*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*14AF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*14AF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_CL } } } }, /*14B0*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*14B1*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_FLOAT32, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*14B2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*14B3*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*14B4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*14B5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*14B6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*14B7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { 0 } }, - /*14B8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*14B9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, + /*14B2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, + /*14B3*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*14B4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*14B5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*14B6*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RAX } } } }, + /*14B7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*14B8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, + /*14B9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, /*14BA*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*14BB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*14BB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_GDTR } } } }, /*14BC*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 6, 6, 10 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*14BD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*14BD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_GDTR } } } }, /*14BE*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 6, 6, 10 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*14BF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*14BF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_IDTR } } } }, /*14C0*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*14C1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*14C1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_IDTR } } } }, /*14C2*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*14C3*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*14C3*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_LDTR } } } }, /*14C4*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*14C5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*14C5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_LDTR } } } }, /*14C6*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*14C7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*14C7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_CR0 } } } }, /*14C8*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*14C9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*14C9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_CR0 } } } }, /*14CA*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*14CB*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*14CC*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*14CD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*14CE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*14CF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*14D0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { 0 } }, - /*14D1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*14D2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { 0 } }, - /*14D3*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*14D4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { 0 } }, - /*14D5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*14CD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_MXCSR } } } }, + /*14CE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*14CF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, + /*14D0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 4 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*14D1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*14D2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*14D3*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RAX } } } }, + /*14D4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .mem = { 1, ZYDIS_IMPLMEM_BASE_ADI, ZYDIS_OPERAND_ACTION_READ } } }, + /*14D5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, /*14D6*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_INT, 16, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*14D7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*14D7*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_TR } } } }, /*14D8*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*14D9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*14D9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_TR } } } }, /*14DA*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*14DB*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_INT, 32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*14DC*/ { ZYDIS_SEMANTIC_OPTYPE_XMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 16, 16, 16 }, ZYDIS_ELEMENT_TYPE_FLOAT64, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, @@ -5377,9 +5377,9 @@ const ZydisOperandDefinition operandDefinitions[] = /*14FE*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*14FF*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } }, /*1500*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_OPCODE } }, - /*1501*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*1502*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { 0 } }, - /*1503*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*1501*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_GPR_OSZ, { .id = 0 } } } }, + /*1502*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 1, 1, 1 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .mem = { 4, ZYDIS_IMPLMEM_BASE_ABX, ZYDIS_OPERAND_ACTION_READ } } }, + /*1503*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AL } } } }, /*1504*/ { ZYDIS_SEMANTIC_OPTYPE_GPR32_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_NDS } }, /*1505*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*1506*/ { ZYDIS_SEMANTIC_OPTYPE_GPR32_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_NDS } }, @@ -5803,7 +5803,7 @@ const ZydisOperandDefinition operandDefinitions[] = /*16A8*/ { ZYDIS_SEMANTIC_OPTYPE_MEM_VSIBZ, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_VARIABLE, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*16A9*/ { ZYDIS_SEMANTIC_OPTYPE_MASK, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_INT, 1, { .encoding = ZYDIS_OPERAND_ENCODING_MASK } }, /*16AA*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 64, 64, 64 }, ZYDIS_ELEMENT_TYPE_INT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*16AB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { 0 } }, + /*16AB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 10, 10, 10 }, ZYDIS_ELEMENT_TYPE_FLOAT80, 80, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ST0 } } } }, /*16AC*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*16AD*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 14, 14, 14 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*16AE*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 28, 28, 28 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, @@ -5812,30 +5812,30 @@ const ZydisOperandDefinition operandDefinitions[] = /*16B1*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 2, 2, 2 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*16B2*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 14, 14, 14 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*16B3*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 28, 28, 28 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*16B4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*16B4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AX } } } }, /*16B5*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 94, 94, 94 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*16B6*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 108, 108, 108 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*16B7*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 512, 512, 512 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*16B8*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 512, 512, 512 }, ZYDIS_ELEMENT_TYPE_STRUCT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*16B9*/ { ZYDIS_SEMANTIC_OPTYPE_GPR64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_UINT, 8, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*16BA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*16BB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*16BC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*16BD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*16BE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*16BF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*16C0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*16C1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*16C2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*16BA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ES } } } }, + /*16BB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_SS } } } }, + /*16BC*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DS } } } }, + /*16BD*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_FS } } } }, + /*16BE*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_GS } } } }, + /*16BF*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_ES } } } }, + /*16C0*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_CS } } } }, + /*16C1*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_SS } } } }, + /*16C2*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_DS } } } }, /*16C3*/ { ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_OPCODE } }, - /*16C4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*16C5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*16C4*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_FS } } } }, + /*16C5*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_GS } } } }, /*16C6*/ { ZYDIS_SEMANTIC_OPTYPE_GPR32_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*16C7*/ { ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 8, 8, 8 }, ZYDIS_ELEMENT_TYPE_UINT, 64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, - /*16C8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*16C9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*16CA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, - /*16CB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { 0 } }, + /*16C8*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_AH } } } }, + /*16C9*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_IMPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EAX } } } }, + /*16CA*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_RIP } } } }, + /*16CB*/ { ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG, ZYDIS_OPERAND_VISIBILITY_HIDDEN, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .reg = { ZYDIS_IMPLREG_TYPE_STATIC, { .reg = ZYDIS_REGISTER_EIP } } } }, /*16CC*/ { ZYDIS_SEMANTIC_OPTYPE_GPR32_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_ELEMENT_TYPE_INVALID, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } }, /*16CD*/ { ZYDIS_SEMANTIC_OPTYPE_GPR32_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 4, 4, 8 }, ZYDIS_ELEMENT_TYPE_INT, 0, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } } }; diff --git a/include/Zydis/Register.h b/include/Zydis/Register.h index 35a372d..5cde496 100644 --- a/include/Zydis/Register.h +++ b/include/Zydis/Register.h @@ -54,27 +54,27 @@ typedef uint8_t ZydisRegister; enum ZydisRegisters { ZYDIS_REGISTER_NONE, - // General purpose registers 64-bit - ZYDIS_REGISTER_RAX, ZYDIS_REGISTER_RCX, ZYDIS_REGISTER_RDX, ZYDIS_REGISTER_RBX, - ZYDIS_REGISTER_RSP, ZYDIS_REGISTER_RBP, ZYDIS_REGISTER_RSI, ZYDIS_REGISTER_RDI, - ZYDIS_REGISTER_R8, ZYDIS_REGISTER_R9, ZYDIS_REGISTER_R10, ZYDIS_REGISTER_R11, - ZYDIS_REGISTER_R12, ZYDIS_REGISTER_R13, ZYDIS_REGISTER_R14, ZYDIS_REGISTER_R15, - // General purpose registers 32-bit - ZYDIS_REGISTER_EAX, ZYDIS_REGISTER_ECX, ZYDIS_REGISTER_EDX, ZYDIS_REGISTER_EBX, - ZYDIS_REGISTER_ESP, ZYDIS_REGISTER_EBP, ZYDIS_REGISTER_ESI, ZYDIS_REGISTER_EDI, - ZYDIS_REGISTER_R8D, ZYDIS_REGISTER_R9D, ZYDIS_REGISTER_R10D, ZYDIS_REGISTER_R11D, - ZYDIS_REGISTER_R12D, ZYDIS_REGISTER_R13D, ZYDIS_REGISTER_R14D, ZYDIS_REGISTER_R15D, - // General purpose registers 16-bit - ZYDIS_REGISTER_AX, ZYDIS_REGISTER_CX, ZYDIS_REGISTER_DX, ZYDIS_REGISTER_BX, - ZYDIS_REGISTER_SP, ZYDIS_REGISTER_BP, ZYDIS_REGISTER_SI, ZYDIS_REGISTER_DI, - ZYDIS_REGISTER_R8W, ZYDIS_REGISTER_R9W, ZYDIS_REGISTER_R10W, ZYDIS_REGISTER_R11W, - ZYDIS_REGISTER_R12W, ZYDIS_REGISTER_R13W, ZYDIS_REGISTER_R14W, ZYDIS_REGISTER_R15W, // General purpose registers 8-bit ZYDIS_REGISTER_AL, ZYDIS_REGISTER_CL, ZYDIS_REGISTER_DL, ZYDIS_REGISTER_BL, ZYDIS_REGISTER_AH, ZYDIS_REGISTER_CH, ZYDIS_REGISTER_DH, ZYDIS_REGISTER_BH, ZYDIS_REGISTER_SPL, ZYDIS_REGISTER_BPL, ZYDIS_REGISTER_SIL, ZYDIS_REGISTER_DIL, ZYDIS_REGISTER_R8B, ZYDIS_REGISTER_R9B, ZYDIS_REGISTER_R10B, ZYDIS_REGISTER_R11B, ZYDIS_REGISTER_R12B, ZYDIS_REGISTER_R13B, ZYDIS_REGISTER_R14B, ZYDIS_REGISTER_R15B, + // General purpose registers 16-bit + ZYDIS_REGISTER_AX, ZYDIS_REGISTER_CX, ZYDIS_REGISTER_DX, ZYDIS_REGISTER_BX, + ZYDIS_REGISTER_SP, ZYDIS_REGISTER_BP, ZYDIS_REGISTER_SI, ZYDIS_REGISTER_DI, + ZYDIS_REGISTER_R8W, ZYDIS_REGISTER_R9W, ZYDIS_REGISTER_R10W, ZYDIS_REGISTER_R11W, + ZYDIS_REGISTER_R12W, ZYDIS_REGISTER_R13W, ZYDIS_REGISTER_R14W, ZYDIS_REGISTER_R15W, + // General purpose registers 32-bit + ZYDIS_REGISTER_EAX, ZYDIS_REGISTER_ECX, ZYDIS_REGISTER_EDX, ZYDIS_REGISTER_EBX, + ZYDIS_REGISTER_ESP, ZYDIS_REGISTER_EBP, ZYDIS_REGISTER_ESI, ZYDIS_REGISTER_EDI, + ZYDIS_REGISTER_R8D, ZYDIS_REGISTER_R9D, ZYDIS_REGISTER_R10D, ZYDIS_REGISTER_R11D, + ZYDIS_REGISTER_R12D, ZYDIS_REGISTER_R13D, ZYDIS_REGISTER_R14D, ZYDIS_REGISTER_R15D, + // General purpose registers 64-bit + ZYDIS_REGISTER_RAX, ZYDIS_REGISTER_RCX, ZYDIS_REGISTER_RDX, ZYDIS_REGISTER_RBX, + ZYDIS_REGISTER_RSP, ZYDIS_REGISTER_RBP, ZYDIS_REGISTER_RSI, ZYDIS_REGISTER_RDI, + ZYDIS_REGISTER_R8, ZYDIS_REGISTER_R9, ZYDIS_REGISTER_R10, ZYDIS_REGISTER_R11, + ZYDIS_REGISTER_R12, ZYDIS_REGISTER_R13, ZYDIS_REGISTER_R14, ZYDIS_REGISTER_R15, // Floating point legacy registers ZYDIS_REGISTER_ST0, ZYDIS_REGISTER_ST1, ZYDIS_REGISTER_ST2, ZYDIS_REGISTER_ST3, ZYDIS_REGISTER_ST4, ZYDIS_REGISTER_ST5, ZYDIS_REGISTER_ST6, ZYDIS_REGISTER_ST7, diff --git a/include/Zydis/Status.h b/include/Zydis/Status.h index 412be12..660266d 100644 --- a/include/Zydis/Status.h +++ b/include/Zydis/Status.h @@ -115,7 +115,6 @@ enum ZydisStatusCode // TODO: ZYDIS_STATUS_INVALID_MASK, - ZYDIS_STATUS_INVALID_VSIB, /* ------------------------------------------------------------------------------------------ */ /* Formatter */ diff --git a/src/Decoder.c b/src/Decoder.c index 735406a..ea04ee1 100644 --- a/src/Decoder.c +++ b/src/Decoder.c @@ -600,7 +600,7 @@ static ZydisStatus ZydisReadImmediate(ZydisDecoderContext* context, ZydisInstruc ZYDIS_CHECK(ZydisInputNext(context, info, &value)); if (isSigned) { - info->details.imm[id].value.sbyte = (int8_t)value; + info->details.imm[id].value.sqword = (int8_t)value; } else { info->details.imm[id].value.ubyte = value; @@ -615,7 +615,7 @@ static ZydisStatus ZydisReadImmediate(ZydisDecoderContext* context, ZydisInstruc uint16_t value = (data[0] << 8) | data[1]; if (isSigned) { - info->details.imm[id].value.sword = (int16_t)value; + info->details.imm[id].value.sqword = (int16_t)value; } else { info->details.imm[id].value.uword = value; @@ -632,7 +632,7 @@ static ZydisStatus ZydisReadImmediate(ZydisDecoderContext* context, ZydisInstruc uint32_t value = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3]; if (isSigned) { - info->details.imm[id].value.sdword = (int32_t)value; + info->details.imm[id].value.sqword = (int32_t)value; } else { info->details.imm[id].value.udword = value; @@ -873,7 +873,7 @@ static ZydisStatus ZydisDecodeOptionalInstructionParts(ZydisDecoderContext* cont if (optionalParts->flags & ZYDIS_INSTRPART_FLAG_HAS_IMM0) { - if (optionalParts->imm[0].isSigned) + if (optionalParts->imm[0].isRelative) { info->attributes |= ZYDIS_ATTRIB_IS_RELATIVE; } @@ -1114,6 +1114,143 @@ static ZydisStatus ZydisDecodeOperandMemory(ZydisDecoderContext* context, return ZYDIS_STATUS_SUCCESS; } +/** + * @brief Decodes an implicit register operand. + * + * @param context A pointer to the @c ZydisDecoderContext instance. + * @param info A pointer to the @c ZydisInstructionInfo struct. + * @param operand A pointer to the @c ZydisOperandInfo struct. + * @param definition A pointer to the @c ZydisOperandDefinition struct. + */ +static void ZydisDecodeOperandImplicitRegister(ZydisDecoderContext* context, + ZydisInstructionInfo* info, ZydisOperandInfo* operand, const ZydisOperandDefinition* definition) +{ + ZYDIS_ASSERT(context); + ZYDIS_ASSERT(info); + ZYDIS_ASSERT(operand); + ZYDIS_ASSERT(definition); + + operand->type = ZYDIS_OPERAND_TYPE_REGISTER; + + switch (definition->op.reg.type) + { + case ZYDIS_IMPLREG_TYPE_STATIC: + operand->reg = definition->op.reg.reg.reg; + break; + case ZYDIS_IMPLREG_TYPE_GPR_OSZ: + { + static const ZydisRegisterClass lookup[3] = + { + ZYDIS_REGCLASS_GPR16, + ZYDIS_REGCLASS_GPR32, + ZYDIS_REGCLASS_GPR64 + }; + operand->reg = ZydisRegisterEncode(lookup[context->eoszIndex], definition->op.reg.reg.id); + break; + } + case ZYDIS_IMPLREG_TYPE_GPR_ASZ: + switch (info->addressWidth) + { + case 16: + operand->reg = ZydisRegisterEncode(ZYDIS_REGCLASS_GPR16, definition->op.reg.reg.id); + break; + case 32: + operand->reg = ZydisRegisterEncode(ZYDIS_REGCLASS_GPR32, definition->op.reg.reg.id); + break; + case 64: + operand->reg = ZydisRegisterEncode(ZYDIS_REGCLASS_GPR64, definition->op.reg.reg.id); + break; + default: + ZYDIS_UNREACHABLE; + } + break; + case ZYDIS_IMPLREG_TYPE_GPR_SSZ: + switch (context->decoder->addressWidth) + { + case 16: + operand->reg = ZydisRegisterEncode(ZYDIS_REGCLASS_GPR16, definition->op.reg.reg.id); + break; + case 32: + operand->reg = ZydisRegisterEncode(ZYDIS_REGCLASS_GPR32, definition->op.reg.reg.id); + break; + case 64: + operand->reg = ZydisRegisterEncode(ZYDIS_REGCLASS_GPR64, definition->op.reg.reg.id); + break; + default: + ZYDIS_UNREACHABLE; + } + break; + case ZYDIS_IMPLREG_TYPE_IP_ASZ: + switch (info->addressWidth) + { + case 16: + operand->reg = ZYDIS_REGISTER_IP; + break; + case 32: + operand->reg = ZYDIS_REGISTER_EIP; + break; + case 64: + operand->reg = ZYDIS_REGISTER_RIP; + break; + default: + ZYDIS_UNREACHABLE; + } + break; + case ZYDIS_IMPLREG_TYPE_IP_SSZ: + switch (context->decoder->addressWidth) + { + case 16: + operand->reg = ZYDIS_REGISTER_IP; + break; + case 32: + operand->reg = ZYDIS_REGISTER_EIP; + break; + case 64: + operand->reg = ZYDIS_REGISTER_RIP; + break; + default: + ZYDIS_UNREACHABLE; + } + break; + case ZYDIS_IMPLREG_TYPE_FLAGS_SSZ: + switch (context->decoder->addressWidth) + { + case 16: + operand->reg = ZYDIS_REGISTER_FLAGS; + break; + case 32: + operand->reg = ZYDIS_REGISTER_EFLAGS; + break; + case 64: + operand->reg = ZYDIS_REGISTER_RFLAGS; + break; + default: + ZYDIS_UNREACHABLE; + } + break; + default: + ZYDIS_UNREACHABLE; + } +} + +/** + * @brief Decodes an implicit memory operand. + * + * @param context A pointer to the @c ZydisDecoderContext instance. + * @param info A pointer to the @c ZydisInstructionInfo struct. + * @param operand A pointer to the @c ZydisOperandInfo struct. + * @param definition A pointer to the @c ZydisOperandDefinition struct. + */ +static void ZydisDecodeOperandImplicitMemory(ZydisDecoderContext* context, + ZydisInstructionInfo* info, ZydisOperandInfo* operand, const ZydisOperandDefinition* definition) +{ + ZYDIS_ASSERT(context); + ZYDIS_ASSERT(info); + ZYDIS_ASSERT(operand); + ZYDIS_ASSERT(definition); + +} + /** * @brief Decodes the instruction operands. * @@ -1141,6 +1278,19 @@ static ZydisStatus ZydisDecodeOperands(ZydisDecoderContext* context, ZydisInstru info->operands[i].visibility = operand->visibility; info->operands[i].action = operand->action; + // Implicit operands + switch (operand->type) + { + case ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG: + ZydisDecodeOperandImplicitRegister(context, info, &info->operands[i], operand); + break; + case ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM: + ZydisDecodeOperandImplicitMemory(context, info, &info->operands[i], operand); + break; + default: + break; + } + // Register operands ZydisRegisterClass registerClass = ZYDIS_REGCLASS_INVALID; switch (operand->type) @@ -1280,6 +1430,7 @@ static ZydisStatus ZydisDecodeOperands(ZydisDecoderContext* context, ZydisInstru case ZYDIS_OPERAND_ENCODING_UIMM8_HI: switch (context->decoder->machineMode) { + // TODO: 16? case 32: ZYDIS_CHECK(ZydisDecodeOperandRegister(info, &info->operands[i], registerClass, (info->details.imm[0].value.ubyte >> 4) & 0x07)); @@ -1344,14 +1495,9 @@ static ZydisStatus ZydisDecodeOperands(ZydisDecoderContext* context, ZydisInstru { if (vsibBaseRegister) { - if (info->details.modrm.rm != 0x04) - { - return ZYDIS_STATUS_INVALID_VSIB; - } + ZYDIS_ASSERT(info->details.modrm.rm == 0x04); switch (info->addressWidth) { - case 16: - return ZYDIS_STATUS_INVALID_VSIB; case 32: info->operands[i].mem.index = info->operands[i].mem.index - ZYDIS_REGISTER_EAX + vsibBaseRegister + @@ -1424,10 +1570,9 @@ static ZydisStatus ZydisDecodeOperands(ZydisDecoderContext* context, ZydisInstru case ZYDIS_SEMANTIC_OPTYPE_REL: ZYDIS_ASSERT(info->details.imm[immId].isRelative); case ZYDIS_SEMANTIC_OPTYPE_IMM: - ZYDIS_ASSERT(!info->details.imm[immId].isRelative); ZYDIS_ASSERT((immId == 0) || (immId == 1)); info->operands[i].type = ZYDIS_OPERAND_TYPE_IMMEDIATE; - info->operands[i].size = info->details.imm[immId].dataSize; + info->operands[i].size = operand->size[context->eoszIndex] * 8; info->operands[i].imm.value.uqword = info->details.imm[immId].value.uqword; info->operands[i].imm.isSigned = info->details.imm[immId].isSigned; info->operands[i].imm.isRelative = info->details.imm[immId].isRelative; @@ -1830,13 +1975,13 @@ static void ZydisSetAVXInformation(ZydisDecoderContext* context, switch (info->avx.vectorLength) { case 128: - info->avx.broadcastMode = ZYDIS_BROADCAST_MODE_1_TO_4; + info->avx.broadcastMode = ZYDIS_BCSTMODE_1_TO_4; break; case 256: - info->avx.broadcastMode = ZYDIS_BROADCAST_MODE_1_TO_8; + info->avx.broadcastMode = ZYDIS_BCSTMODE_1_TO_8; break; case 512: - info->avx.broadcastMode = ZYDIS_BROADCAST_MODE_1_TO_16; + info->avx.broadcastMode = ZYDIS_BCSTMODE_1_TO_16; break; default: ZYDIS_UNREACHABLE; @@ -1848,13 +1993,13 @@ static void ZydisSetAVXInformation(ZydisDecoderContext* context, switch (info->avx.vectorLength) { case 128: - info->avx.broadcastMode = ZYDIS_BROADCAST_MODE_1_TO_2; + info->avx.broadcastMode = ZYDIS_BCSTMODE_1_TO_2; break; case 256: - info->avx.broadcastMode = ZYDIS_BROADCAST_MODE_1_TO_4; + info->avx.broadcastMode = ZYDIS_BCSTMODE_1_TO_4; break; case 512: - info->avx.broadcastMode = ZYDIS_BROADCAST_MODE_1_TO_8; + info->avx.broadcastMode = ZYDIS_BCSTMODE_1_TO_8; break; default: ZYDIS_UNREACHABLE; @@ -2053,7 +2198,7 @@ static void ZydisSetAVXInformation(ZydisDecoderContext* context, } } else { - // TODO: Add tuple type + // TODO: Add tuple type to register-only definitions ZYDIS_ASSERT(info->details.modrm.mod == 3); } @@ -2825,6 +2970,8 @@ ZydisStatus ZydisDecoderDecodeBuffer(ZydisInstructionDecoder* decoder, const voi ZYDIS_CHECK(ZydisCollectOptionalPrefixes(&context, info)); ZYDIS_CHECK(ZydisDecodeInstruction(&context, info)); + info->instrPointer = info->instrAddress + info->length; + // TODO: The index, dest and mask regs for AVX2 gathers must be different. // TODO: More EVEX UD conditions (page 81) diff --git a/src/Formatter.c b/src/Formatter.c index 2e237d4..b78db4c 100644 --- a/src/Formatter.c +++ b/src/Formatter.c @@ -627,13 +627,15 @@ static ZydisStatus ZydisFormatterPrintDecoratorIntel(ZydisInstructionFormatter* return ZYDIS_STATUS_INVALID_PARAMETER; } - /*const char* bufEnd = *buffer + bufferLen; + const char* bufEnd = *buffer + bufferLen; - if (operand->id == 0) + if (operand->id == 1) { - if (info->avx.maskRegister) + if ((operand->type == ZYDIS_OPERAND_TYPE_REGISTER) && + (operand->encoding == ZYDIS_OPERAND_ENCODING_MASK) && + (operand->reg != ZYDIS_REGISTER_K0)) { - const char* reg = ZydisRegisterGetString(info->avx.maskRegister); + const char* reg = ZydisRegisterGetString(operand->reg); if (!reg) { return ZYDIS_STATUS_INVALID_PARAMETER; @@ -641,7 +643,7 @@ static ZydisStatus ZydisFormatterPrintDecoratorIntel(ZydisInstructionFormatter* ZYDIS_CHECK(ZydisStringBufferAppendFormat(buffer, bufEnd - *buffer, ZYDIS_APPENDMODE, " {%s}", reg)); } - if (info->avx.maskMode == ZYDIS_AVX512_MASKMODE_ZERO) + if (info->avx.maskMode == ZYDIS_MASKMODE_ZERO) { ZYDIS_CHECK(ZydisStringBufferAppend(buffer, bufEnd - *buffer, ZYDIS_STRBUF_APPEND_MODE_DEFAULT, " {z}")); @@ -650,23 +652,23 @@ static ZydisStatus ZydisFormatterPrintDecoratorIntel(ZydisInstructionFormatter* { if (info->operands[operand->id].type == ZYDIS_OPERAND_TYPE_MEMORY) { - switch (info->avx.broadcast) + switch (info->avx.broadcastMode) { - case ZYDIS_AVX512_BCSTMODE_INVALID: + case ZYDIS_BCSTMODE_INVALID: break; - case ZYDIS_AVX512_BCSTMODE_2: + case ZYDIS_BCSTMODE_1_TO_2: ZYDIS_CHECK(ZydisStringBufferAppend(buffer, bufEnd - *buffer, ZYDIS_STRBUF_APPEND_MODE_DEFAULT, " {1to2}")); break; - case ZYDIS_AVX512_BCSTMODE_4: + case ZYDIS_BCSTMODE_1_TO_4: ZYDIS_CHECK(ZydisStringBufferAppend(buffer, bufEnd - *buffer, ZYDIS_STRBUF_APPEND_MODE_DEFAULT, " {1to4}")); break; - case ZYDIS_AVX512_BCSTMODE_8: + case ZYDIS_BCSTMODE_1_TO_8: ZYDIS_CHECK(ZydisStringBufferAppend(buffer, bufEnd - *buffer, ZYDIS_STRBUF_APPEND_MODE_DEFAULT, " {1to8}")); break; - case ZYDIS_AVX512_BCSTMODE_16: + case ZYDIS_BCSTMODE_1_TO_16: ZYDIS_CHECK(ZydisStringBufferAppend(buffer, bufEnd - *buffer, ZYDIS_STRBUF_APPEND_MODE_DEFAULT, " {1to16}")); break; @@ -679,7 +681,7 @@ static ZydisStatus ZydisFormatterPrintDecoratorIntel(ZydisInstructionFormatter* ((operand->id != (info->operandCount - 1)) && (info->operands[operand->id + 1].type == ZYDIS_OPERAND_TYPE_IMMEDIATE))) { - switch (info->avx.roundingMode) + /*switch (info->avx.roundingMode) { case ZYDIS_AVX_RNDMODE_INVALID: if (info->avx.hasSAE) @@ -706,9 +708,9 @@ static ZydisStatus ZydisFormatterPrintDecoratorIntel(ZydisInstructionFormatter* break; default: return ZYDIS_STATUS_INVALID_PARAMETER; - } + }*/ } - }*/ + } return ZYDIS_STATUS_SUCCESS; } @@ -721,7 +723,7 @@ static ZydisStatus ZydisFormatterFormatInstrIntel(ZydisInstructionFormatter* for return ZYDIS_STATUS_INVALID_PARAMETER; } - char* bufEnd = *buffer + bufferLen; + char* bufEnd = *buffer + bufferLen; ZYDIS_CHECK(formatter->funcPrintPrefixes(formatter, buffer, bufEnd - *buffer, info)); ZYDIS_CHECK(formatter->funcPrintMnemonic(formatter, buffer, bufEnd - *buffer, info)); @@ -733,6 +735,11 @@ static ZydisStatus ZydisFormatterFormatInstrIntel(ZydisInstructionFormatter* for for (uint8_t i = 0; i < info->operandCount; ++i) { + if (info->operands[i].visibility == ZYDIS_OPERAND_VISIBILITY_HIDDEN) + { + break; + } + if (i != 0) { bufRestore = *buffer; @@ -816,6 +823,7 @@ ZydisStatus ZydisFormatterInitInstructionFormatterEx( (displacementFormat != ZYDIS_FORMATTER_DISP_HEX_SIGNED) && (displacementFormat != ZYDIS_FORMATTER_DISP_HEX_UNSIGNED)) || ((immmediateFormat != ZYDIS_FORMATTER_IMM_DEFAULT) && + (immmediateFormat != ZYDIS_FORMATTER_IMM_HEX_AUTO) && (immmediateFormat != ZYDIS_FORMATTER_IMM_HEX_SIGNED) && (immmediateFormat != ZYDIS_FORMATTER_IMM_HEX_UNSIGNED))) { diff --git a/src/Register.c b/src/Register.c index 6a14bf6..d85364d 100644 --- a/src/Register.c +++ b/src/Register.c @@ -33,27 +33,27 @@ const char* registerStrings[] = { "none", - // General purpose registers 64-bit - "rax", "rcx", "rdx", "rbx", - "rsp", "rbp", "rsi", "rdi", - "r8", "r9", "r10", "r11", - "r12", "r13", "r14", "r15", - // General purpose registers 32-bit - "eax", "ecx", "edx", "ebx", - "esp", "ebp", "esi", "edi", - "r8d", "r9d", "r10d", "r11d", - "r12d", "r13d", "r14d", "r15d", - // General purpose registers 16-bit - "ax", "cx", "dx", "bx", - "sp", "bp", "si", "di", - "r8w", "r9w", "r10w", "r11w", - "r12w", "r13w", "r14w", "r15w", // General purpose registers 8-bit "al", "cl", "dl", "bl", "ah", "ch", "dh", "bh", "spl", "bpl", "sil", "dil", "r8b", "r9b", "r10b", "r11b", "r12b", "r13b", "r14b", "r15b", + // General purpose registers 16-bit + "ax", "cx", "dx", "bx", + "sp", "bp", "si", "di", + "r8w", "r9w", "r10w", "r11w", + "r12w", "r13w", "r14w", "r15w", + // General purpose registers 32-bit + "eax", "ecx", "edx", "ebx", + "esp", "ebp", "esi", "edi", + "r8d", "r9d", "r10d", "r11d", + "r12d", "r13d", "r14d", "r15d", + // General purpose registers 64-bit + "rax", "rcx", "rdx", "rbx", + "rsp", "rbp", "rsi", "rdi", + "r8", "r9", "r10", "r11", + "r12", "r13", "r14", "r15", // Floating point legacy registers "st0", "st1", "st2", "st3", "st4", "st5", "st6", "st7", diff --git a/src/Utils.c b/src/Utils.c index 109d7d6..604786e 100644 --- a/src/Utils.c +++ b/src/Utils.c @@ -64,8 +64,7 @@ ZydisStatus ZydisUtilsCalcAbsoluteTargetAddress(const ZydisInstructionInfo* info case ZYDIS_OPERAND_TYPE_IMMEDIATE: if (operand->imm.isSigned && operand->imm.isRelative) { - *address = - (uint64_t)((int64_t)info->instrPointer + info->length + operand->imm.value.sqword); + *address = (uint64_t)((int64_t)info->instrPointer + operand->imm.value.sqword); switch (info->machineMode) { case 16: