Zydis: include/Zydis/DecoderTypes.h File Reference

Zydis v4.1.0

Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations
DecoderTypes.h File Reference

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.
#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.

## 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...

## Detailed Description

Defines the basic `ZydisDecodedInstruction` and `ZydisDecodedOperand` structs.

## Macro Definition Documentation

## ◆ ZYDIS_OATTRIB_IS_MULTISOURCE4

#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 Documentation

## ◆ ZydisAccessedFlags

typedef struct ZydisAccessedFlags_ ZydisAccessedFlags

## ◆ ZydisAccessedFlagsMask

typedef ZyanU32 ZydisAccessedFlagsMask

Defines the `ZydisAccessedFlagsMask` data-type.

## ◆ ZydisBranchType

typedef enum ZydisBranchType_ ZydisBranchType

Defines the `ZydisBranchType` enum.

## ◆ ZydisBroadcastMode

typedef enum ZydisBroadcastMode_ ZydisBroadcastMode

Defines the `ZydisBroadcastMode` enum.

## ◆ ZydisConversionMode

typedef enum ZydisConversionMode_ ZydisConversionMode

Defines the `ZydisConversionMode` enum.

## ◆ ZydisDecodedInstruction

typedef struct ZydisDecodedInstruction_ ZydisDecodedInstruction

Information about a decoded instruction.

## ◆ ZydisDecodedInstructionAvx

typedef struct ZydisDecodedInstructionAvx_ ZydisDecodedInstructionAvx

Extended info for `AVX` instructions.

## ◆ ZydisDecodedInstructionMeta

typedef struct ZydisDecodedInstructionMeta_ ZydisDecodedInstructionMeta

Instruction meta info.

## ◆ ZydisDecodedInstructionRaw

typedef struct ZydisDecodedInstructionRaw_ ZydisDecodedInstructionRaw

Detailed info about different instruction-parts like `ModRM`, `SIB` or encoding-prefixes.

## ◆ ZydisDecodedInstructionRawEvex

typedef struct ZydisDecodedInstructionRawEvex ZydisDecodedInstructionRawEvex

Detailed info about the `EVEX` prefix.

## ◆ ZydisDecodedInstructionRawMvex

typedef struct ZydisDecodedInstructionRawMvex_ ZydisDecodedInstructionRawMvex

Detailed info about the `MVEX` prefix.

## ◆ ZydisDecodedInstructionRawRex

typedef struct ZydisDecodedInstructionRawRex_ ZydisDecodedInstructionRawRex

Detailed info about the `REX` prefix.

## ◆ ZydisDecodedInstructionRawVex

typedef struct ZydisDecodedInstructionRawVex_ ZydisDecodedInstructionRawVex

Detailed info about the `VEX` prefix.

## ◆ ZydisDecodedInstructionRawXop

typedef struct ZydisDecodedInstructionRawXop_ ZydisDecodedInstructionRawXop

Detailed info about the `XOP` prefix.

## ◆ ZydisDecodedOperand

typedef struct ZydisDecodedOperand_ ZydisDecodedOperand

Defines the `ZydisDecodedOperand` struct.

## ◆ ZydisDecodedOperandImm

typedef struct ZydisDecodedOperandImm_ ZydisDecodedOperandImm

Extended info for immediate-operands.

## ◆ ZydisDecodedOperandMem

typedef struct ZydisDecodedOperandMem_ ZydisDecodedOperandMem

Extended info for memory-operands.

## ◆ ZydisDecodedOperandPtr

typedef struct ZydisDecodedOperandPtr_ ZydisDecodedOperandPtr

Extended info for pointer-operands.

## ◆ ZydisDecodedOperandReg

typedef struct ZydisDecodedOperandReg_ ZydisDecodedOperandReg

Extended info for register-operands.

## ◆ ZydisDecoderContext

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!

## ◆ ZydisExceptionClass

typedef enum ZydisExceptionClass_ ZydisExceptionClass

Defines the `ZydisExceptionClass` enum.

## ◆ ZydisMaskMode

typedef enum ZydisMaskMode_ ZydisMaskMode

Defines the `ZydisMaskMode` enum.

## ◆ ZydisMemoryOperandType

typedef enum ZydisMemoryOperandType_ ZydisMemoryOperandType

Defines the `ZydisMemoryOperandType` enum.

## ◆ ZydisOperandAttributes

typedef ZyanU8 ZydisOperandAttributes

Defines the `ZydisOperandAttributes` data-type.

## ◆ ZydisPrefixType

typedef enum ZydisPrefixType_ ZydisPrefixType

Defines the `ZydisPrefixType` enum.

## ◆ ZydisRoundingMode

typedef enum ZydisRoundingMode_ ZydisRoundingMode

Defines the `ZydisRoundingMode` enum.

## ◆ ZydisSwizzleMode

typedef enum ZydisSwizzleMode_ ZydisSwizzleMode

Defines the `ZydisSwizzleMode` enum.

## Enumeration Type Documentation

## ◆ ZydisBranchType_

enum ZydisBranchType_

Defines the `ZydisBranchType` enum.

Enumerator
ZYDIS_BRANCH_TYPE_NONE | The instruction is not a branch instruction.
ZYDIS_BRANCH_TYPE_SHORT | The instruction is a short (8-bit) branch instruction.
ZYDIS_BRANCH_TYPE_NEAR | The instruction is a near (16-bit or 32-bit) branch instruction.
ZYDIS_BRANCH_TYPE_FAR | The instruction is a far (inter-segment) branch instruction.
ZYDIS_BRANCH_TYPE_MAX_VALUE | Maximum value of this enum.
ZYDIS_BRANCH_TYPE_REQUIRED_BITS | The minimum number of bits required to represent all values of this enum.

## ◆ ZydisBroadcastMode_

enum ZydisBroadcastMode_

Defines the `ZydisBroadcastMode` enum.

Enumerator
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 | Maximum value of this enum.
ZYDIS_BROADCAST_MODE_REQUIRED_BITS | The minimum number of bits required to represent all values of this enum.

## ◆ ZydisConversionMode_

enum ZydisConversionMode_

Defines the `ZydisConversionMode` enum.

Enumerator
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 | Maximum value of this enum.
ZYDIS_CONVERSION_MODE_REQUIRED_BITS | The minimum number of bits required to represent all values of this enum.

## ◆ ZydisExceptionClass_

enum ZydisExceptionClass_

Defines the `ZydisExceptionClass` enum.

Enumerator
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 | Maximum value of this enum.
ZYDIS_EXCEPTION_CLASS_REQUIRED_BITS | The minimum number of bits required to represent all values of this enum.

## ◆ ZydisMaskMode_

enum ZydisMaskMode_

Defines the `ZydisMaskMode` enum.

Enumerator
ZYDIS_MASK_MODE_INVALID |
ZYDIS_MASK_MODE_DISABLED | Masking is disabled for the current instruction (`K0` register is used).
ZYDIS_MASK_MODE_MERGING | The embedded mask register is used as a merge-mask.
ZYDIS_MASK_MODE_ZEROING | The embedded mask register is used as a zero-mask.
ZYDIS_MASK_MODE_CONTROL | The embedded mask register is used as a control-mask (element selector).
ZYDIS_MASK_MODE_CONTROL_ZEROING | The embedded mask register is used as a zeroing control-mask (element selector).
ZYDIS_MASK_MODE_MAX_VALUE | Maximum value of this enum.
ZYDIS_MASK_MODE_REQUIRED_BITS | The minimum number of bits required to represent all values of this enum.

## ◆ ZydisMemoryOperandType_

enum ZydisMemoryOperandType_

Defines the `ZydisMemoryOperandType` enum.

Enumerator
ZYDIS_MEMOP_TYPE_INVALID |
ZYDIS_MEMOP_TYPE_MEM | Normal memory operand.
ZYDIS_MEMOP_TYPE_AGEN | The memory operand is only used for address-generation. No real memory-access is caused.
ZYDIS_MEMOP_TYPE_MIB | A memory operand using `SIB` addressing form, where the index register is not used in address calculation and scale is ignored. No real memory-access is caused.
ZYDIS_MEMOP_TYPE_VSIB | A vector `SIB` memory addressing operand (`VSIB`).
ZYDIS_MEMOP_TYPE_MAX_VALUE | Maximum value of this enum.
ZYDIS_MEMOP_TYPE_REQUIRED_BITS | The minimum number of bits required to represent all values of this enum.

## ◆ ZydisPrefixType_

enum ZydisPrefixType_

Defines the `ZydisPrefixType` enum.

Enumerator
ZYDIS_PREFIX_TYPE_IGNORED | The prefix is ignored by the instruction. This applies to all prefixes that are not accepted by the instruction in general or the ones that are overwritten by a prefix of the same group closer to the instruction opcode.
ZYDIS_PREFIX_TYPE_EFFECTIVE | The prefix is effectively used by the instruction.
ZYDIS_PREFIX_TYPE_MANDATORY | The prefix is used as a mandatory prefix. A mandatory prefix is interpreted as an opcode extension and has no further effect on the instruction.
ZYDIS_PREFIX_TYPE_MAX_VALUE | Maximum value of this enum.
ZYDIS_PREFIX_TYPE_REQUIRED_BITS | The minimum number of bits required to represent all values of this enum.

## ◆ ZydisRoundingMode_

enum ZydisRoundingMode_

Defines the `ZydisRoundingMode` enum.

Enumerator
ZYDIS_ROUNDING_MODE_INVALID |
ZYDIS_ROUNDING_MODE_RN | Round to nearest.
ZYDIS_ROUNDING_MODE_RD | Round down.
ZYDIS_ROUNDING_MODE_RU | Round up.
ZYDIS_ROUNDING_MODE_RZ | Round towards zero.
ZYDIS_ROUNDING_MODE_MAX_VALUE | Maximum value of this enum.
ZYDIS_ROUNDING_MODE_REQUIRED_BITS | The minimum number of bits required to represent all values of this enum.

## ◆ ZydisSwizzleMode_

enum ZydisSwizzleMode_

Defines the `ZydisSwizzleMode` enum.

Enumerator
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 | Maximum value of this enum.
ZYDIS_SWIZZLE_MODE_REQUIRED_BITS | The minimum number of bits required to represent all values of this enum.