#[repr(C)]pub struct ZydisEncoderRequest_ {
pub machine_mode: ZydisMachineMode,
pub allowed_encodings: ZydisEncodableEncoding,
pub mnemonic: ZydisMnemonic,
pub prefixes: ZydisInstructionAttributes,
pub branch_type: ZydisBranchType,
pub branch_width: ZydisBranchWidth,
pub address_size_hint: ZydisAddressSizeHint,
pub operand_size_hint: ZydisOperandSizeHint,
pub operand_count: ZyanU8,
pub operands: [ZydisEncoderOperand; 5],
pub evex: ZydisEncoderRequest__ZydisEncoderRequestEvexFeatures_,
pub mvex: ZydisEncoderRequest__ZydisEncoderRequestMvexFeatures_,
}Expand description
Main structure consumed by the encoder. It represents full semantics of an instruction.
Fields§
§machine_mode: ZydisMachineModeThe machine mode used to encode this instruction.
allowed_encodings: ZydisEncodableEncodingThis optional field can be used to restrict allowed physical encodings for desired
instruction. Some mnemonics can be supported by more than one encoding, so this field can
resolve ambiguities e.g. you can disable AVX-512 extensions by prohibiting usage of EVEX
prefix and allow only VEX variants.
mnemonic: ZydisMnemonicThe instruction-mnemonic.
prefixes: ZydisInstructionAttributesA combination of requested encodable prefixes (ZYDIS_ATTRIB_HAS_* flags) for desired
instruction. See ZYDIS_ENCODABLE_PREFIXES for list of available prefixes.
branch_type: ZydisBranchTypeBranch type (required for branching instructions only). Use ZYDIS_BRANCH_TYPE_NONE to let
encoder pick size-optimal branch type automatically (short and near are prioritized over
far).
branch_width: ZydisBranchWidthSpecifies physical size for relative immediate operands. Use ZYDIS_BRANCH_WIDTH_NONE to
let encoder pick size-optimal branch width automatically. For segment:offset far branches
this field applies to physical size of the offset part. For branching instructions without
relative operands this field affects effective operand size attribute.
address_size_hint: ZydisAddressSizeHintOptional address size hint used to resolve ambiguities for some instructions. Generally
encoder deduces address size from ZydisEncoderOperand structures that represent
explicit and implicit operands. This hint resolves conflicts when instruction’s hidden
operands scale with address size attribute.
operand_size_hint: ZydisOperandSizeHintOptional operand size hint used to resolve ambiguities for some instructions. Generally
encoder deduces operand size from ZydisEncoderOperand structures that represent
explicit and implicit operands. This hint resolves conflicts when instruction’s hidden
operands scale with operand size attribute.
operand_count: ZyanU8The number of visible (explicit) instruction operands.
The encoder does not care about hidden (implicit) operands.
operands: [ZydisEncoderOperand; 5]Detailed info for all explicit and implicit instruction operands.
evex: ZydisEncoderRequest__ZydisEncoderRequestEvexFeatures_§mvex: ZydisEncoderRequest__ZydisEncoderRequestMvexFeatures_Trait Implementations§
Source§impl Clone for ZydisEncoderRequest_
impl Clone for ZydisEncoderRequest_
Source§fn clone(&self) -> ZydisEncoderRequest_
fn clone(&self) -> ZydisEncoderRequest_
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more