Zydis v4.0.0
|
Defines the basic ZydisDecodedInstruction
and ZydisDecodedOperand
structs.
More...
#include <Zycore/Types.h>
#include <Zydis/MetaInfo.h>
#include <Zydis/Mnemonic.h>
#include <Zydis/Register.h>
#include <Zydis/SharedTypes.h>
Go to the source code of this file.
Data Structures | |
struct | ZydisDecodedOperandReg_ |
Extended info for register-operands. More... | |
struct | ZydisDecodedOperandMem_ |
Extended info for memory-operands. More... | |
struct | ZydisDecodedOperandMem_::ZydisDecodedOperandMemDisp_ |
Extended info for memory-operands with displacement. More... | |
struct | ZydisDecodedOperandPtr_ |
Extended info for pointer-operands. More... | |
struct | ZydisDecodedOperandImm_ |
Extended info for immediate-operands. More... | |
union | ZydisDecodedOperandImm_::ZydisDecodedOperandImmValue_ |
The immediate value. More... | |
struct | ZydisDecodedOperand_ |
Defines the ZydisDecodedOperand struct. More... | |
struct | ZydisAccessedFlags_ |
struct | ZydisDecodedInstructionRawRex_ |
Detailed info about the REX prefix. More... | |
struct | ZydisDecodedInstructionRawXop_ |
Detailed info about the XOP prefix. More... | |
struct | ZydisDecodedInstructionRawVex_ |
Detailed info about the VEX prefix. More... | |
struct | ZydisDecodedInstructionRawEvex |
Detailed info about the EVEX prefix. More... | |
struct | ZydisDecodedInstructionRawMvex_ |
Detailed info about the MVEX prefix. More... | |
struct | ZydisDecodedInstructionAvx_ |
Extended info for AVX instructions. More... | |
struct | ZydisDecodedInstructionAvx_::ZydisDecodedInstructionAvxMask_ |
Info about the embedded writemask-register (AVX-512 and KNC only). More... | |
struct | ZydisDecodedInstructionAvx_::ZydisDecodedInstructionAvxBroadcast_ |
Contains info about the AVX broadcast. More... | |
struct | ZydisDecodedInstructionAvx_::ZydisDecodedInstructionAvxRounding_ |
Contains info about the AVX rounding. More... | |
struct | ZydisDecodedInstructionAvx_::ZydisDecodedInstructionAvxSwizzle_ |
Contains info about the AVX register-swizzle (KNC only). More... | |
struct | ZydisDecodedInstructionAvx_::ZydisDecodedInstructionAvxConversion_ |
Contains info about the AVX data-conversion (KNC only). More... | |
struct | ZydisDecodedInstructionMeta_ |
Instruction meta info. More... | |
struct | ZydisDecodedInstructionRaw_ |
Detailed info about different instruction-parts like ModRM , SIB or encoding-prefixes. More... | |
struct | ZydisDecodedInstructionRaw_::ZydisDecodedInstructionRawPrefixes_ |
Detailed info about the legacy prefixes (including REX ). More... | |
struct | ZydisDecodedInstructionRaw_::ZydisDecodedInstructionModRm_ |
Detailed info about the ModRM byte. More... | |
struct | ZydisDecodedInstructionRaw_::ZydisDecodedInstructionRawSib_ |
Detailed info about the SIB byte. More... | |
struct | ZydisDecodedInstructionRaw_::ZydisDecodedInstructionRawDisp_ |
Detailed info about displacement-bytes. More... | |
struct | ZydisDecodedInstructionRaw_::ZydisDecodedInstructionRawImm_ |
Detailed info about immediate-bytes. More... | |
union | ZydisDecodedInstructionRaw_::ZydisDecodedInstructionRawImm_::ZydisDecodedInstructionRawImmValue_ |
The immediate value. More... | |
struct | ZydisDecodedInstruction_ |
Information about a decoded instruction. More... | |
struct | ZydisDecoderContext_ |
The decoder context is used to preserve some internal state between subsequent decode operations for THE SAME instruction. More... | |
Macros | |
#define | ZYDIS_OATTRIB_IS_MULTISOURCE4 0x01 |
The operand is a MULTISOURCE4 register operand. More... | |
#define | ZYDIS_CPUFLAG_CF (1ul << 0) |
Carry flag. | |
#define | ZYDIS_CPUFLAG_PF (1ul << 2) |
Parity flag. | |
#define | ZYDIS_CPUFLAG_AF (1ul << 4) |
Adjust flag. | |
#define | ZYDIS_CPUFLAG_ZF (1ul << 6) |
Zero flag. | |
#define | ZYDIS_CPUFLAG_SF (1ul << 7) |
Sign flag. | |
#define | ZYDIS_CPUFLAG_TF (1ul << 8) |
Trap flag. | |
#define | ZYDIS_CPUFLAG_IF (1ul << 9) |
Interrupt enable flag. | |
#define | ZYDIS_CPUFLAG_DF (1ul << 10) |
Direction flag. | |
#define | ZYDIS_CPUFLAG_OF (1ul << 11) |
Overflow flag. | |
#define | ZYDIS_CPUFLAG_IOPL (1ul << 12) |
I/O privilege level flag. | |
#define | ZYDIS_CPUFLAG_NT (1ul << 14) |
Nested task flag. | |
#define | ZYDIS_CPUFLAG_RF (1ul << 16) |
Resume flag. | |
#define | ZYDIS_CPUFLAG_VM (1ul << 17) |
Virtual 8086 mode flag. | |
#define | ZYDIS_CPUFLAG_AC (1ul << 18) |
Alignment check. | |
#define | ZYDIS_CPUFLAG_VIF (1ul << 19) |
Virtual interrupt flag. | |
#define | ZYDIS_CPUFLAG_VIP (1ul << 20) |
Virtual interrupt pending. | |
#define | ZYDIS_CPUFLAG_ID (1ul << 21) |
Able to use CPUID instruction. | |
#define | ZYDIS_FPUFLAG_C0 (1ul << 0) |
FPU condition-code flag 0. | |
#define | ZYDIS_FPUFLAG_C1 (1ul << 1) |
FPU condition-code flag 1. | |
#define | ZYDIS_FPUFLAG_C2 (1ul << 2) |
FPU condition-code flag 2. | |
#define | ZYDIS_FPUFLAG_C3 (1ul << 3) |
FPU condition-code flag 3. | |
Typedefs | |
typedef ZyanU8 | ZydisOperandAttributes |
Defines the ZydisOperandAttributes data-type. | |
typedef enum ZydisMemoryOperandType_ | ZydisMemoryOperandType |
Defines the ZydisMemoryOperandType enum. | |
typedef struct ZydisDecodedOperandReg_ | ZydisDecodedOperandReg |
Extended info for register-operands. | |
typedef struct ZydisDecodedOperandMem_ | ZydisDecodedOperandMem |
Extended info for memory-operands. | |
typedef struct ZydisDecodedOperandPtr_ | ZydisDecodedOperandPtr |
Extended info for pointer-operands. | |
typedef struct ZydisDecodedOperandImm_ | ZydisDecodedOperandImm |
Extended info for immediate-operands. | |
typedef struct ZydisDecodedOperand_ | ZydisDecodedOperand |
Defines the ZydisDecodedOperand struct. | |
typedef ZyanU32 | ZydisAccessedFlagsMask |
Defines the ZydisAccessedFlagsMask data-type. | |
typedef struct ZydisAccessedFlags_ | ZydisAccessedFlags |
typedef enum ZydisBranchType_ | ZydisBranchType |
Defines the ZydisBranchType enum. | |
typedef enum ZydisExceptionClass_ | ZydisExceptionClass |
Defines the ZydisExceptionClass enum. | |
typedef enum ZydisMaskMode_ | ZydisMaskMode |
Defines the ZydisMaskMode enum. | |
typedef enum ZydisBroadcastMode_ | ZydisBroadcastMode |
Defines the ZydisBroadcastMode enum. | |
typedef enum ZydisRoundingMode_ | ZydisRoundingMode |
Defines the ZydisRoundingMode enum. | |
typedef enum ZydisSwizzleMode_ | ZydisSwizzleMode |
Defines the ZydisSwizzleMode enum. | |
typedef enum ZydisConversionMode_ | ZydisConversionMode |
Defines the ZydisConversionMode enum. | |
typedef enum ZydisPrefixType_ | ZydisPrefixType |
Defines the ZydisPrefixType enum. | |
typedef struct ZydisDecodedInstructionRawRex_ | ZydisDecodedInstructionRawRex |
Detailed info about the REX prefix. | |
typedef struct ZydisDecodedInstructionRawXop_ | ZydisDecodedInstructionRawXop |
Detailed info about the XOP prefix. | |
typedef struct ZydisDecodedInstructionRawVex_ | ZydisDecodedInstructionRawVex |
Detailed info about the VEX prefix. | |
typedef struct ZydisDecodedInstructionRawEvex | ZydisDecodedInstructionRawEvex |
Detailed info about the EVEX prefix. | |
typedef struct ZydisDecodedInstructionRawMvex_ | ZydisDecodedInstructionRawMvex |
Detailed info about the MVEX prefix. | |
typedef struct ZydisDecodedInstructionAvx_ | ZydisDecodedInstructionAvx |
Extended info for AVX instructions. | |
typedef struct ZydisDecodedInstructionMeta_ | ZydisDecodedInstructionMeta |
Instruction meta info. | |
typedef struct ZydisDecodedInstructionRaw_ | ZydisDecodedInstructionRaw |
Detailed info about different instruction-parts like ModRM , SIB or encoding-prefixes. | |
typedef struct ZydisDecodedInstruction_ | ZydisDecodedInstruction |
Information about a decoded instruction. | |
typedef struct ZydisDecoderContext_ | ZydisDecoderContext |
The decoder context is used to preserve some internal state between subsequent decode operations for THE SAME instruction. More... | |
Enumerations | |
enum | ZydisMemoryOperandType_ { ZYDIS_MEMOP_TYPE_INVALID , ZYDIS_MEMOP_TYPE_MEM , ZYDIS_MEMOP_TYPE_AGEN , ZYDIS_MEMOP_TYPE_MIB , ZYDIS_MEMOP_TYPE_VSIB , ZYDIS_MEMOP_TYPE_MAX_VALUE = ZYDIS_MEMOP_TYPE_VSIB , ZYDIS_MEMOP_TYPE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_MEMOP_TYPE_MAX_VALUE) } |
Defines the ZydisMemoryOperandType enum. More... | |
enum | ZydisBranchType_ { ZYDIS_BRANCH_TYPE_NONE , ZYDIS_BRANCH_TYPE_SHORT , ZYDIS_BRANCH_TYPE_NEAR , ZYDIS_BRANCH_TYPE_FAR , ZYDIS_BRANCH_TYPE_MAX_VALUE = ZYDIS_BRANCH_TYPE_FAR , ZYDIS_BRANCH_TYPE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_BRANCH_TYPE_MAX_VALUE) } |
Defines the ZydisBranchType enum. More... | |
enum | ZydisExceptionClass_ { ZYDIS_EXCEPTION_CLASS_NONE , ZYDIS_EXCEPTION_CLASS_SSE1 , ZYDIS_EXCEPTION_CLASS_SSE2 , ZYDIS_EXCEPTION_CLASS_SSE3 , ZYDIS_EXCEPTION_CLASS_SSE4 , ZYDIS_EXCEPTION_CLASS_SSE5 , ZYDIS_EXCEPTION_CLASS_SSE7 , ZYDIS_EXCEPTION_CLASS_AVX1 , ZYDIS_EXCEPTION_CLASS_AVX2 , ZYDIS_EXCEPTION_CLASS_AVX3 , ZYDIS_EXCEPTION_CLASS_AVX4 , ZYDIS_EXCEPTION_CLASS_AVX5 , ZYDIS_EXCEPTION_CLASS_AVX6 , ZYDIS_EXCEPTION_CLASS_AVX7 , ZYDIS_EXCEPTION_CLASS_AVX8 , ZYDIS_EXCEPTION_CLASS_AVX11 , ZYDIS_EXCEPTION_CLASS_AVX12 , ZYDIS_EXCEPTION_CLASS_E1 , ZYDIS_EXCEPTION_CLASS_E1NF , ZYDIS_EXCEPTION_CLASS_E2 , ZYDIS_EXCEPTION_CLASS_E2NF , ZYDIS_EXCEPTION_CLASS_E3 , ZYDIS_EXCEPTION_CLASS_E3NF , ZYDIS_EXCEPTION_CLASS_E4 , ZYDIS_EXCEPTION_CLASS_E4NF , ZYDIS_EXCEPTION_CLASS_E5 , ZYDIS_EXCEPTION_CLASS_E5NF , ZYDIS_EXCEPTION_CLASS_E6 , ZYDIS_EXCEPTION_CLASS_E6NF , ZYDIS_EXCEPTION_CLASS_E7NM , ZYDIS_EXCEPTION_CLASS_E7NM128 , ZYDIS_EXCEPTION_CLASS_E9NF , ZYDIS_EXCEPTION_CLASS_E10 , ZYDIS_EXCEPTION_CLASS_E10NF , ZYDIS_EXCEPTION_CLASS_E11 , ZYDIS_EXCEPTION_CLASS_E11NF , ZYDIS_EXCEPTION_CLASS_E12 , ZYDIS_EXCEPTION_CLASS_E12NP , ZYDIS_EXCEPTION_CLASS_K20 , ZYDIS_EXCEPTION_CLASS_K21 , ZYDIS_EXCEPTION_CLASS_AMXE1 , ZYDIS_EXCEPTION_CLASS_AMXE2 , ZYDIS_EXCEPTION_CLASS_AMXE3 , ZYDIS_EXCEPTION_CLASS_AMXE4 , ZYDIS_EXCEPTION_CLASS_AMXE5 , ZYDIS_EXCEPTION_CLASS_AMXE6 , ZYDIS_EXCEPTION_CLASS_MAX_VALUE = ZYDIS_EXCEPTION_CLASS_AMXE6 , ZYDIS_EXCEPTION_CLASS_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_EXCEPTION_CLASS_MAX_VALUE) } |
Defines the ZydisExceptionClass enum. More... | |
enum | ZydisMaskMode_ { ZYDIS_MASK_MODE_INVALID , ZYDIS_MASK_MODE_DISABLED , ZYDIS_MASK_MODE_MERGING , ZYDIS_MASK_MODE_ZEROING , ZYDIS_MASK_MODE_CONTROL , ZYDIS_MASK_MODE_CONTROL_ZEROING , ZYDIS_MASK_MODE_MAX_VALUE = ZYDIS_MASK_MODE_CONTROL_ZEROING , ZYDIS_MASK_MODE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_MASK_MODE_MAX_VALUE) } |
Defines the ZydisMaskMode enum. More... | |
enum | ZydisBroadcastMode_ { 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_BROADCAST_MODE_1_TO_32 , ZYDIS_BROADCAST_MODE_1_TO_64 , ZYDIS_BROADCAST_MODE_2_TO_4 , ZYDIS_BROADCAST_MODE_2_TO_8 , ZYDIS_BROADCAST_MODE_2_TO_16 , ZYDIS_BROADCAST_MODE_4_TO_8 , ZYDIS_BROADCAST_MODE_4_TO_16 , ZYDIS_BROADCAST_MODE_8_TO_16 , ZYDIS_BROADCAST_MODE_MAX_VALUE = ZYDIS_BROADCAST_MODE_8_TO_16 , ZYDIS_BROADCAST_MODE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_BROADCAST_MODE_MAX_VALUE) } |
Defines the ZydisBroadcastMode enum. More... | |
enum | ZydisRoundingMode_ { ZYDIS_ROUNDING_MODE_INVALID , ZYDIS_ROUNDING_MODE_RN , ZYDIS_ROUNDING_MODE_RD , ZYDIS_ROUNDING_MODE_RU , ZYDIS_ROUNDING_MODE_RZ , ZYDIS_ROUNDING_MODE_MAX_VALUE = ZYDIS_ROUNDING_MODE_RZ , ZYDIS_ROUNDING_MODE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_ROUNDING_MODE_MAX_VALUE) } |
Defines the ZydisRoundingMode enum. More... | |
enum | ZydisSwizzleMode_ { ZYDIS_SWIZZLE_MODE_INVALID , ZYDIS_SWIZZLE_MODE_DCBA , ZYDIS_SWIZZLE_MODE_CDAB , ZYDIS_SWIZZLE_MODE_BADC , ZYDIS_SWIZZLE_MODE_DACB , ZYDIS_SWIZZLE_MODE_AAAA , ZYDIS_SWIZZLE_MODE_BBBB , ZYDIS_SWIZZLE_MODE_CCCC , ZYDIS_SWIZZLE_MODE_DDDD , ZYDIS_SWIZZLE_MODE_MAX_VALUE = ZYDIS_SWIZZLE_MODE_DDDD , ZYDIS_SWIZZLE_MODE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_SWIZZLE_MODE_MAX_VALUE) } |
Defines the ZydisSwizzleMode enum. More... | |
enum | ZydisConversionMode_ { ZYDIS_CONVERSION_MODE_INVALID , ZYDIS_CONVERSION_MODE_FLOAT16 , ZYDIS_CONVERSION_MODE_SINT8 , ZYDIS_CONVERSION_MODE_UINT8 , ZYDIS_CONVERSION_MODE_SINT16 , ZYDIS_CONVERSION_MODE_UINT16 , ZYDIS_CONVERSION_MODE_MAX_VALUE = ZYDIS_CONVERSION_MODE_UINT16 , ZYDIS_CONVERSION_MODE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_CONVERSION_MODE_MAX_VALUE) } |
Defines the ZydisConversionMode enum. More... | |
enum | ZydisPrefixType_ { ZYDIS_PREFIX_TYPE_IGNORED , ZYDIS_PREFIX_TYPE_EFFECTIVE , ZYDIS_PREFIX_TYPE_MANDATORY , ZYDIS_PREFIX_TYPE_MAX_VALUE = ZYDIS_PREFIX_TYPE_MANDATORY , ZYDIS_PREFIX_TYPE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_PREFIX_TYPE_MAX_VALUE) } |
Defines the ZydisPrefixType enum. More... | |
Defines the basic ZydisDecodedInstruction
and ZydisDecodedOperand
structs.
#define ZYDIS_OATTRIB_IS_MULTISOURCE4 0x01 |
The operand is a MULTISOURCE4
register operand.
This is a special register operand-type used by 4FMAPS
instructions where the given register points to the first register of a register range (4 registers in total).
Example: ZMM3 -> [ZMM3..ZMM6]
typedef struct ZydisDecoderContext_ ZydisDecoderContext |
The decoder context is used to preserve some internal state between subsequent decode operations for THE SAME instruction.
The context is initialized by ZydisDecoderDecodeInstruction
and required by e.g. ZydisDecoderDecodeOperands
.
All fields in this struct should be considered as "private". Any changes may lead to unexpected behavior.
This struct is neither ABI nor API stable!
enum ZydisBranchType_ |
Defines the ZydisBranchType
enum.
enum ZydisBroadcastMode_ |
enum ZydisConversionMode_ |
enum ZydisExceptionClass_ |
enum ZydisMaskMode_ |
Defines the ZydisMaskMode
enum.
Defines the ZydisMemoryOperandType
enum.
enum ZydisPrefixType_ |
Defines the ZydisPrefixType
enum.
enum ZydisRoundingMode_ |
Defines the ZydisRoundingMode
enum.
enum ZydisSwizzleMode_ |