mirror of https://github.com/x64dbg/zydis
Improved support for MPX instructions
This commit is contained in:
parent
4de4def535
commit
38df6e0d1e
|
@ -46,6 +46,41 @@ extern "C" {
|
|||
/* Decoded operand */
|
||||
/* ============================================================================================== */
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
/* Memory type */
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @brief Defines the @c ZydisMemoryOperandType datatype.
|
||||
*/
|
||||
typedef uint8_t ZydisMemoryOperandType;
|
||||
|
||||
/**
|
||||
* @brief Values that represent memory-operand types.
|
||||
*/
|
||||
enum ZydisMemoryOperandTypes
|
||||
{
|
||||
ZYDIS_MEMOP_TYPE_INVALID,
|
||||
/**
|
||||
* @brief Normal memory operand.
|
||||
*/
|
||||
ZYDIS_MEMOP_TYPE_MEM,
|
||||
/**
|
||||
* @brief The memory operand is only used for address-generation. No real memory-access is
|
||||
* caused.
|
||||
*/
|
||||
ZYDIS_MEMOP_TYPE_AGEN,
|
||||
/**
|
||||
* @brief A memory operand using `SIB` addressing form, where the index register is not used
|
||||
* in address calculation and scale is ignored.
|
||||
*/
|
||||
ZYDIS_MEMOP_TYPE_MIB
|
||||
};
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
/* Decoded operand */
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @brief Defines the @c ZydisDecodedOperand struct.
|
||||
*/
|
||||
|
@ -104,9 +139,9 @@ typedef struct ZydisDecodedOperand_
|
|||
struct
|
||||
{
|
||||
/**
|
||||
* @brief Signals, if the memory operand is only used for address generation.
|
||||
* @brief The type of the memory operand.
|
||||
*/
|
||||
ZydisBool isAddressGenOnly;
|
||||
ZydisMemoryOperandType type;
|
||||
/**
|
||||
* @brief The segment register.
|
||||
*/
|
||||
|
@ -171,6 +206,8 @@ typedef struct ZydisDecodedOperand_
|
|||
} imm;
|
||||
} ZydisDecodedOperand;
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
/* ============================================================================================== */
|
||||
/* Decoded instruction */
|
||||
/* ============================================================================================== */
|
||||
|
|
|
@ -1096,7 +1096,7 @@ static void ZydisSetOperandSizeAndElementInfo(ZydisDecoderContext* context,
|
|||
case ZYDIS_INSTRUCTION_ENCODING_3DNOW:
|
||||
case ZYDIS_INSTRUCTION_ENCODING_XOP:
|
||||
case ZYDIS_INSTRUCTION_ENCODING_VEX:
|
||||
if (operand->mem.isAddressGenOnly)
|
||||
if (operand->mem.type != ZYDIS_MEMOP_TYPE_MEM)
|
||||
{
|
||||
ZYDIS_ASSERT(definition->size[context->eoszIndex] == 0);
|
||||
operand->size = instruction->addressWidth;
|
||||
|
@ -1365,6 +1365,7 @@ static ZydisStatus ZydisDecodeOperandMemory(ZydisDecoderContext* context,
|
|||
((instruction->addressWidth == 32) || (instruction->addressWidth == 64))));
|
||||
|
||||
operand->type = ZYDIS_OPERAND_TYPE_MEMORY;
|
||||
operand->mem.type = ZYDIS_MEMOP_TYPE_MEM;
|
||||
|
||||
uint8_t modrm_rm = instruction->raw.modrm.rm;
|
||||
uint8_t displacementSize = 0;
|
||||
|
@ -1864,10 +1865,10 @@ static ZydisStatus ZydisDecodeOperands(ZydisDecoderContext* context,
|
|||
break;
|
||||
case ZYDIS_SEMANTIC_OPTYPE_AGEN:
|
||||
instruction->operands[i].action = ZYDIS_OPERAND_ACTION_INVALID;
|
||||
instruction->operands[i].mem.isAddressGenOnly = ZYDIS_TRUE;
|
||||
ZYDIS_CHECK(
|
||||
ZydisDecodeOperandMemory(
|
||||
context, instruction, &instruction->operands[i], ZYDIS_REGISTER_NONE));
|
||||
instruction->operands[i].mem.type = ZYDIS_MEMOP_TYPE_AGEN;
|
||||
break;
|
||||
case ZYDIS_SEMANTIC_OPTYPE_MOFFS:
|
||||
ZYDIS_ASSERT(instruction->raw.disp.size);
|
||||
|
@ -1875,6 +1876,19 @@ static ZydisStatus ZydisDecodeOperands(ZydisDecoderContext* context,
|
|||
instruction->operands[i].mem.disp.hasDisplacement = ZYDIS_TRUE;
|
||||
instruction->operands[i].mem.disp.value = instruction->raw.disp.value;
|
||||
break;
|
||||
case ZYDIS_SEMANTIC_OPTYPE_MIB:
|
||||
instruction->operands[i].action = ZYDIS_OPERAND_ACTION_INVALID;
|
||||
ZYDIS_CHECK(
|
||||
ZydisDecodeOperandMemory(
|
||||
context, instruction, &instruction->operands[i], ZYDIS_REGISTER_NONE));
|
||||
instruction->operands[i].mem.type = ZYDIS_MEMOP_TYPE_MIB;
|
||||
// Relative addressing is not allowed for this type of memory-operand
|
||||
if ((instruction->operands[i].mem.base == ZYDIS_REGISTER_EIP) ||
|
||||
(instruction->operands[i].mem.base == ZYDIS_REGISTER_RIP))
|
||||
{
|
||||
return ZYDIS_STATUS_DECODING_ERROR;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -4284,6 +4298,13 @@ static ZydisStatus ZydisDecodeInstruction(ZydisDecoderContext* context,
|
|||
case ZYDIS_NODETYPE_FILTER_MVEX_E:
|
||||
status = ZydisNodeHandlerMvexE(instruction, &index);
|
||||
break;
|
||||
case ZYDIS_NODETYPE_FILTER_FEATURE_MPX:
|
||||
case ZYDIS_NODETYPE_FILTER_FEATURE_CET:
|
||||
case ZYDIS_NODETYPE_FILTER_FEATURE_LZCNT:
|
||||
case ZYDIS_NODETYPE_FILTER_FEATURE_TZCNT:
|
||||
// TODO: Make configurable by option
|
||||
index = 1;
|
||||
break;
|
||||
default:
|
||||
if (nodeType & ZYDIS_NODETYPE_DEFINITION_MASK)
|
||||
{
|
||||
|
|
|
@ -333,6 +333,18 @@ const ZydisDecoderTreeNode* ZydisDecoderTreeGetChildNode(const ZydisDecoderTreeN
|
|||
case ZYDIS_NODETYPE_FILTER_MVEX_E:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return &filtersMVEXE[parent->value][index];
|
||||
case ZYDIS_NODETYPE_FILTER_FEATURE_MPX:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return &filtersFeatureMPX[parent->value][index];
|
||||
case ZYDIS_NODETYPE_FILTER_FEATURE_CET:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return &filtersFeatureCET[parent->value][index];
|
||||
case ZYDIS_NODETYPE_FILTER_FEATURE_LZCNT:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return &filtersFeatureLZCNT[parent->value][index];
|
||||
case ZYDIS_NODETYPE_FILTER_FEATURE_TZCNT:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return &filtersFeatureTZCNT[parent->value][index];
|
||||
default:
|
||||
ZYDIS_UNREACHABLE;
|
||||
}
|
||||
|
|
|
@ -136,7 +136,23 @@ enum ZydisDecoderTreeNodeTypes
|
|||
/**
|
||||
* @brief Reference to an MVEX.E filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_MVEX_E = 0x12
|
||||
ZYDIS_NODETYPE_FILTER_MVEX_E = 0x12,
|
||||
/**
|
||||
* @brief Reference to a MPX-feature filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_FEATURE_MPX = 0x13,
|
||||
/**
|
||||
* @brief Reference to a CET-feature filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_FEATURE_CET = 0x14,
|
||||
/**
|
||||
* @brief Reference to a LZCNT-feature filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_FEATURE_LZCNT = 0x15,
|
||||
/**
|
||||
* @brief Reference to a TZCNT-feature filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_FEATURE_TZCNT = 0x16
|
||||
};
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
|
|
@ -191,7 +191,8 @@ static ZydisStatus ZydisFormatterFormatOperandMemIntel(const ZydisFormatter* for
|
|||
}
|
||||
ZYDIS_CHECK(ZydisPrintStr(buffer, bufEnd - *buffer, reg, ZYDIS_LETTER_CASE));
|
||||
}
|
||||
if (operand->mem.index != ZYDIS_REGISTER_NONE)
|
||||
if ((operand->mem.index != ZYDIS_REGISTER_NONE) &&
|
||||
(operand->mem.type != ZYDIS_MEMOP_TYPE_MIB))
|
||||
{
|
||||
const char* reg = ZydisRegisterGetString(operand->mem.index);
|
||||
if (!reg)
|
||||
|
@ -418,11 +419,14 @@ static ZydisStatus ZydisFormatterPrintOperandSizeIntel(const ZydisFormatter* for
|
|||
uint32_t typecast = 0;
|
||||
if (formatter->flags & ZYDIS_FMTFLAG_FORCE_OPERANDSIZE)
|
||||
{
|
||||
if ((operand->type == ZYDIS_OPERAND_TYPE_MEMORY) && (!operand->mem.isAddressGenOnly))
|
||||
if ((operand->type == ZYDIS_OPERAND_TYPE_MEMORY) &&
|
||||
(operand->mem.type == ZYDIS_MEMOP_TYPE_MEM))
|
||||
{
|
||||
typecast = instruction->operands[operand->id].size;
|
||||
}
|
||||
} else if ((operand->type == ZYDIS_OPERAND_TYPE_MEMORY) && (!operand->mem.isAddressGenOnly))
|
||||
} else
|
||||
if ((operand->type == ZYDIS_OPERAND_TYPE_MEMORY) &&
|
||||
(operand->mem.type == ZYDIS_MEMOP_TYPE_MEM))
|
||||
{
|
||||
switch (operand->id)
|
||||
{
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -108,32 +108,30 @@ const ZydisInstructionDefinitionDEFAULT instructionDefinitionsDEFAULT[] =
|
|||
{ ZYDIS_MNEMONIC_BLENDVPD, 3, 0xAF5, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_SSE, ZYDIS_ISA_SET_SSE4, ZYDIS_ISA_EXT_SSE4, ZYDIS_EXCEPTION_CLASS_SSE4, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BLENDVPS, 3, 0xAF8, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_SSE, ZYDIS_ISA_SET_SSE4, ZYDIS_ISA_EXT_SSE4, ZYDIS_EXCEPTION_CLASS_SSE4, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_BLENDVPS, 3, 0xAFB, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_SSE, ZYDIS_ISA_SET_SSE4, ZYDIS_ISA_EXT_SSE4, ZYDIS_EXCEPTION_CLASS_SSE4, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDCL, 2, 0x156C, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDCL, 2, 0x156E, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_BNDCL, 2, 0x156C, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_BNDCL, 2, 0x156E, 0, 0x4, ZYDIS_FALSE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDCL, 2, 0x1570, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_BNDCN, 2, 0x156C, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDCN, 2, 0x156E, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_BNDCL, 2, 0x156E, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDCN, 2, 0x156C, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_BNDCN, 2, 0x156E, 0, 0x4, ZYDIS_FALSE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDCN, 2, 0x1570, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_BNDCU, 2, 0x156C, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDCU, 2, 0x156E, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_BNDCN, 2, 0x156E, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDCU, 2, 0x156C, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_BNDCU, 2, 0x156E, 0, 0x4, ZYDIS_FALSE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDCU, 2, 0x1570, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_BNDLDX, 2, 0x1572, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDLDX, 2, 0x1572, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDLDX, 2, 0x1572, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDLDX, 2, 0x1574, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDCU, 2, 0x156E, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDLDX, 2, 0x1572, 0, 0x4, ZYDIS_FALSE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_BNDLDX, 2, 0x1574, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_BNDMK, 2, 0x1576, 0, 0x4, ZYDIS_FALSE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDMK, 2, 0x1576, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDMOV, 2, 0x1578, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_BNDMOV, 2, 0x157A, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDMOV, 2, 0x157A, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDMOV, 2, 0x157A, 0, 0x4, ZYDIS_FALSE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDMOV, 2, 0x157C, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDMOV, 2, 0x157E, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_BNDMOV, 2, 0x1580, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDMOV, 2, 0x1580, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDMOV, 2, 0x1580, 0, 0x4, ZYDIS_FALSE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDMOV, 2, 0x1582, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDSTX, 2, 0x1584, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDSTX, 2, 0x1584, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDSTX, 2, 0x1584, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDSTX, 2, 0x1586, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BNDSTX, 2, 0x1584, 0, 0x4, ZYDIS_FALSE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_BNDSTX, 2, 0x1586, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_MPX, ZYDIS_ISA_SET_MPX, ZYDIS_ISA_EXT_MPX, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_BOUND, 2, 0x1588, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_INTERRUPT, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_I186, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BOUND, 2, 0x158A, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_INTERRUPT, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_I186, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_BSF, 3, 0xAFE, 0, 0x8, ZYDIS_TRUE, ZYDIS_CATEGORY_BITBYTE, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_I386, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
|
@ -906,14 +904,10 @@ const ZydisInstructionDefinitionDEFAULT instructionDefinitionsDEFAULT[] =
|
|||
{ ZYDIS_MNEMONIC_NOP, 1, 0x451, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_FAT_NOP, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB04, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_FAT_NOP, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB07, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_FAT_NOP, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB04, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_FAT_NOP, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB04, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_PPRO, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB07, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_FAT_NOP, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0x16E0, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_PPRO, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB04, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_PPRO, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB04, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_FAT_NOP, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB04, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_PPRO, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB07, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_FAT_NOP, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0x16E0, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_PPRO, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB04, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_PPRO, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB04, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_PPRO, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
|
@ -921,7 +915,6 @@ const ZydisInstructionDefinitionDEFAULT instructionDefinitionsDEFAULT[] =
|
|||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB07, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_FAT_NOP, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB04, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_FAT_NOP, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB07, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_FAT_NOP, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB07, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_FAT_NOP, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB07, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_PPRO, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB04, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_FAT_NOP, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
{ ZYDIS_MNEMONIC_NOP, 2, 0xB04, 0, 0x4, ZYDIS_TRUE, ZYDIS_CATEGORY_WIDENOP, ZYDIS_ISA_SET_BASE, ZYDIS_ISA_EXT_PPRO, ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
|
||||
|
|
|
@ -5485,32 +5485,32 @@ const ZydisOperandDefinition operandDefinitions[] =
|
|||
{ ZYDIS_SEMANTIC_OPTYPE_MASK, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READWRITE, { 2, 2, 2 }, ZYDIS_IELEMENT_TYPE_INT1, { .encoding = ZYDIS_OPERAND_ENCODING_MASK } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_ZMM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 64, 64, 64 }, ZYDIS_IELEMENT_TYPE_FLOAT32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_AGEN, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_GPR64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_AGEN, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_GPR32, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 24, 24, 24 }, ZYDIS_IELEMENT_TYPE_UINT64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_MIB, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 24, 24, 24 }, ZYDIS_IELEMENT_TYPE_UINT64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 12, 12, 12 }, ZYDIS_IELEMENT_TYPE_UINT32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_MIB, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 12, 12, 12 }, ZYDIS_IELEMENT_TYPE_UINT32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_AGEN, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_IELEMENT_TYPE_UINT32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 16, 16, 16 }, ZYDIS_IELEMENT_TYPE_UINT64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 8, 8, 8 }, ZYDIS_IELEMENT_TYPE_UINT32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_IELEMENT_TYPE_UINT32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 16, 16, 16 }, ZYDIS_IELEMENT_TYPE_UINT64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 24, 24, 24 }, ZYDIS_IELEMENT_TYPE_UINT64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 8, 8, 8 }, ZYDIS_IELEMENT_TYPE_UINT32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 12, 12, 12 }, ZYDIS_IELEMENT_TYPE_UINT32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_MIB, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 24, 24, 24 }, ZYDIS_IELEMENT_TYPE_UINT64, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_MIB, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_WRITE, { 12, 12, 12 }, ZYDIS_IELEMENT_TYPE_UINT32, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_BND, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 0, 0, 0 }, ZYDIS_IELEMENT_TYPE_INVALID, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_REG } },
|
||||
{ ZYDIS_SEMANTIC_OPTYPE_MEM, ZYDIS_OPERAND_VISIBILITY_EXPLICIT, ZYDIS_OPERAND_ACTION_READ, { 4, 4, 4 }, ZYDIS_IELEMENT_TYPE_INT16, { .encoding = ZYDIS_OPERAND_ENCODING_MODRM_RM } },
|
||||
|
|
|
@ -92,7 +92,8 @@ enum ZydisSemanticOperandTypes
|
|||
ZYDIS_SEMANTIC_OPTYPE_REL,
|
||||
ZYDIS_SEMANTIC_OPTYPE_PTR,
|
||||
ZYDIS_SEMANTIC_OPTYPE_AGEN,
|
||||
ZYDIS_SEMANTIC_OPTYPE_MOFFS
|
||||
ZYDIS_SEMANTIC_OPTYPE_MOFFS,
|
||||
ZYDIS_SEMANTIC_OPTYPE_MIB
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -155,6 +155,13 @@ void printOperands(ZydisDecodedInstruction* instruction)
|
|||
"JIMM32_32_64",
|
||||
"JIMM16_32_32"
|
||||
};
|
||||
static const char* memopTypes[] =
|
||||
{
|
||||
"INVALID",
|
||||
"MEM",
|
||||
"AGEN",
|
||||
"MIB"
|
||||
};
|
||||
printf("%2d %9s %10s %6s %12s %5d %4d %6d %8s",
|
||||
i,
|
||||
operandTypes[instruction->operands[i].type],
|
||||
|
@ -171,7 +178,9 @@ void printOperands(ZydisDecodedInstruction* instruction)
|
|||
printf(" %27s", ZydisRegisterGetString(instruction->operands[i].reg.value));
|
||||
break;
|
||||
case ZYDIS_OPERAND_TYPE_MEMORY:
|
||||
printf(" SEG =%20s\n", ZydisRegisterGetString(instruction->operands[i].mem.segment));
|
||||
printf(" TYPE =%20s\n", memopTypes[instruction->operands[i].mem.type]);
|
||||
printf(" %84s =%20s\n",
|
||||
"SEG ", ZydisRegisterGetString(instruction->operands[i].mem.segment));
|
||||
printf(" %84s =%20s\n",
|
||||
"BASE ", ZydisRegisterGetString(instruction->operands[i].mem.base));
|
||||
printf(" %84s =%20s\n",
|
||||
|
|
Loading…
Reference in New Issue