XED
|
#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 |
Macros | |
#define | XED_ENCODER_OPERANDS_MAX 5 /* FIXME */ |
Functions | |
Memory Displacement | |
static XED_INLINE xed_enc_displacement_t | xed_disp (xed_uint64_t displacement, xed_uint32_t displacement_width) |
a memory displacement (not for branches) More... | |
Branch Displacement | |
static XED_INLINE xed_encoder_operand_t | xed_relbr (xed_int32_t brdisp, xed_uint_t width) |
a relative branch displacement operand More... | |
Pointer Displacement | |
static XED_INLINE xed_encoder_operand_t | xed_ptr (xed_int32_t brdisp, xed_uint_t width) |
a relative displacement for a PTR operand – the subsequent imm0 holds the 16b selector More... | |
Register and Immmediate Operands | |
static XED_INLINE xed_encoder_operand_t | xed_reg (xed_reg_enum_t reg) |
a register operand More... | |
static XED_INLINE xed_encoder_operand_t | xed_imm0 (xed_uint64_t v, xed_uint_t width) |
a first immediate operand (known as IMM0) More... | |
static XED_INLINE xed_encoder_operand_t | xed_simm0 (xed_int32_t v, xed_uint_t width) |
an 32b signed immediate operand More... | |
static XED_INLINE xed_encoder_operand_t | xed_imm1 (xed_uint8_t v) |
an second immediate operand (known as IMM1) More... | |
static XED_INLINE xed_encoder_operand_t | xed_other (xed_operand_enum_t operand_name, xed_int32_t value) |
an operand storage field name and value More... | |
Memory and Segment-releated Operands | |
static XED_INLINE xed_encoder_operand_t | xed_seg0 (xed_reg_enum_t seg0) |
seg reg override for implicit suppressed memory ops More... | |
static XED_INLINE xed_encoder_operand_t | xed_seg1 (xed_reg_enum_t seg1) |
seg reg override for implicit suppressed memory ops More... | |
static XED_INLINE xed_encoder_operand_t | xed_mem_b (xed_reg_enum_t base, xed_uint_t width) |
memory operand - base only More... | |
static XED_INLINE xed_encoder_operand_t | xed_mem_bd (xed_reg_enum_t base, xed_enc_displacement_t disp, xed_uint_t width) |
memory operand - base and displacement only More... | |
static XED_INLINE xed_encoder_operand_t | xed_mem_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 More... | |
static XED_INLINE xed_encoder_operand_t | xed_mem_gb (xed_reg_enum_t seg, xed_reg_enum_t base, xed_uint_t width) |
memory operand - segment and base only More... | |
static XED_INLINE xed_encoder_operand_t | xed_mem_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 More... | |
static XED_INLINE xed_encoder_operand_t | xed_mem_gd (xed_reg_enum_t seg, xed_enc_displacement_t disp, xed_uint_t width) |
memory operand - segment and displacement only More... | |
static XED_INLINE xed_encoder_operand_t | xed_mem_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 More... | |
Instruction Properties and prefixes | |
static XED_INLINE void | xed_addr (xed_encoder_instruction_t *x, xed_uint_t width) |
This is to specify effective address size different than the default. More... | |
static XED_INLINE void | xed_rep (xed_encoder_instruction_t *x) |
static XED_INLINE void | xed_repne (xed_encoder_instruction_t *x) |
static XED_INLINE void | xed_lock (xed_encoder_instruction_t *x) |
XED_DLL_EXPORT 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 More... | |
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 More... | |
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 More... | |
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 More... | |
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 More... | |
static XED_INLINE void | xed_inst4 (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, xed_encoder_operand_t op3) |
instruction with four operands More... | |
static XED_INLINE void | xed_inst5 (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, xed_encoder_operand_t op3, xed_encoder_operand_t op4) |
instruction with five operands More... | |
static XED_INLINE void | xed_inst (xed_encoder_instruction_t *inst, xed_state_t mode, xed_iclass_enum_t iclass, xed_uint_t effective_operand_width, xed_uint_t number_of_operands, const xed_encoder_operand_t *operand_array) |
instruction with an array of operands. More... | |
#define XED_ENCODER_OPERANDS_MAX 5 /* FIXME */ |
Definition at line 353 of file xed-encoder-hl.h.
Definition at line 70 of file xed-encoder-hl.h.