#include "xed-types.h"
#include "xed-reg-enum.h"
#include "xed-state.h"
#include "xed-iclass-enum.h"
#include "xed-portability.h"
#include "xed-encode.h"
Go to the source code of this file.
Data Structures | |
| struct | xed_enc_displacement_t |
| struct | xed_encoder_instruction_t |
| struct | xed_encoder_operand_t |
| union | xed_encoder_prefixes_t |
| struct | xed_memop_t |
Register and Immmediate Operands | |
| static XED_INLINE xed_encoder_operand_t | imm0 (xed_uint64_t v, xed_uint_t width) |
| a first immediate operand (known as IMM0) | |
| static XED_INLINE xed_encoder_operand_t | imm1 (xed_uint8_t v) |
| an second immediate operand (known as IMM1) | |
| static XED_INLINE xed_encoder_operand_t | simm0 (xed_int64_t v, xed_uint_t width) |
| an signed immediate operand | |
| static XED_INLINE xed_encoder_operand_t | xreg (xed_reg_enum_t reg) |
| a register operand | |
Instruction Properties and prefixes | |
| static XED_INLINE void | xaddr (xed_encoder_instruction_t *x, xed_uint_t width) |
| This is to specify effective address size different than the default. | |
| xed_bool_t | xed_convert_to_encoder_request (xed_encoder_request_t *out, xed_encoder_instruction_t *in) |
| convert a xed_encoder_instruction_t to a xed_encoder_request_t for encoding | |
| static XED_INLINE void | xlock (xed_encoder_instruction_t *x) |
| static XED_INLINE void | xrep (xed_encoder_instruction_t *x) |
| static XED_INLINE void | xrepne (xed_encoder_instruction_t *x) |
Memory Displacement | |
| static XED_INLINE xed_enc_displacement_t | xdisp (xed_uint64_t displacement, xed_uint32_t displacement_width) |
| a memory displacement (not for branches) | |
Creating instructions from operands | |
| static XED_INLINE void | xed_inst0 (xed_encoder_instruction_t *inst, xed_state_t mode, xed_iclass_enum_t iclass, xed_uint_t effective_operand_width) |
| instruction with no operands | |
| static XED_INLINE void | xed_inst1 (xed_encoder_instruction_t *inst, xed_state_t mode, xed_iclass_enum_t iclass, xed_uint_t effective_operand_width, xed_encoder_operand_t op0) |
| instruction with one operand | |
| static XED_INLINE void | xed_inst2 (xed_encoder_instruction_t *inst, xed_state_t mode, xed_iclass_enum_t iclass, xed_uint_t effective_operand_width, xed_encoder_operand_t op0, xed_encoder_operand_t op1) |
| instruction with two operands | |
| static XED_INLINE void | xed_inst3 (xed_encoder_instruction_t *inst, xed_state_t mode, xed_iclass_enum_t iclass, xed_uint_t effective_operand_width, xed_encoder_operand_t op0, xed_encoder_operand_t op1, xed_encoder_operand_t op2) |
| instruction with three operands | |
Memory and Segment-releated Operands | |
| static XED_INLINE xed_encoder_operand_t | xmem_b (xed_reg_enum_t base, xed_uint_t width) |
| memory operand - base only | |
| static XED_INLINE xed_encoder_operand_t | xmem_bd (xed_reg_enum_t base, xed_enc_displacement_t disp, xed_uint_t width) |
| memory operand - base and displacement only | |
| static XED_INLINE xed_encoder_operand_t | xmem_bisd (xed_reg_enum_t base, xed_reg_enum_t index, xed_uint_t scale, xed_enc_displacement_t disp, xed_uint_t width) |
| memory operand - base, index, scale, displacement | |
| static XED_INLINE xed_encoder_operand_t | xmem_gb (xed_reg_enum_t seg, xed_reg_enum_t base, xed_uint_t width) |
| memory operand - segment and base only | |
| static XED_INLINE xed_encoder_operand_t | xmem_gbd (xed_reg_enum_t seg, xed_reg_enum_t base, xed_enc_displacement_t disp, xed_uint_t width) |
| memory operand - segment, base and displacement only | |
| static XED_INLINE xed_encoder_operand_t | xmem_gbisd (xed_reg_enum_t seg, xed_reg_enum_t base, xed_reg_enum_t index, xed_uint_t scale, xed_enc_displacement_t disp, xed_uint_t width) |
| memory operand - segment, base, index, scale, and displacement | |
| static XED_INLINE xed_encoder_operand_t | xseg0 (xed_reg_enum_t seg0) |
| seg reg override for implicit suppressed memory ops | |
| static XED_INLINE xed_encoder_operand_t | xseg1 (xed_reg_enum_t seg1) |
| seg reg override for implicit suppressed memory ops | |
Pointer Displacement | |
| static XED_INLINE xed_encoder_operand_t | xptr (xed_int32_t brdisp, xed_uint_t width) |
| a relative displacement for a PTR operand -- the subsequent imm0 holds the 16b selector | |
Branch Displacement | |
| static XED_INLINE xed_encoder_operand_t | xrelbr (xed_int32_t brdisp, xed_uint_t width) |
| a relative branch displacement operand | |
Defines | |
| #define | XED_ENCODER_OPERANDS_MAX 3 |
Enumerations | |
| enum | xed_encoder_operand_type_t { XED_ENCODER_OPERAND_TYPE_INVALID, XED_ENCODER_OPERAND_TYPE_BRDISP, XED_ENCODER_OPERAND_TYPE_REG, XED_ENCODER_OPERAND_TYPE_IMM0, XED_ENCODER_OPERAND_TYPE_SIMM0, XED_ENCODER_OPERAND_TYPE_IMM1, XED_ENCODER_OPERAND_TYPE_MEM, XED_ENCODER_OPERAND_TYPE_PTR, XED_ENCODER_OPERAND_TYPE_SEG0, XED_ENCODER_OPERAND_TYPE_SEG1 } |
|
|
Definition at line 298 of file xed-encoder-hl.h. |
|
|
Definition at line 71 of file xed-encoder-hl.h. |
1.4.6