34 #ifndef _XED_ENCODE_H_
35 # define _XED_ENCODE_H_
271 const unsigned int ilen,
283 const unsigned int ilen);
The main container for instructions.
XED_DLL_EXPORT void xed_encoder_request_set_repne(xed_encoder_request_t *p)
for REPNE(F2) prefix on string ops
XED_DLL_EXPORT void xed_encoder_request_set_relbr(xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_set_effective_address_size(xed_encoder_request_t *p, xed_uint_t width_bits)
XED_DLL_EXPORT xed_error_enum_t xed_encode_nop(xed_uint8_t *array, const unsigned int ilen)
This function will attempt to encode a NOP of exactly ilen bytes.
XED_DLL_EXPORT void xed_encoder_request_clear_rep(xed_encoder_request_t *p)
clear the REP prefix indicator
XED_DLL_EXPORT void xed_encoder_request_set_scale(xed_encoder_request_t *p, xed_uint_t scale)
XED_DLL_EXPORT void xed_encoder_request_set_effective_operand_width(xed_encoder_request_t *p, xed_uint_t width_bits)
XED_DLL_EXPORT void xed_encoder_request_zero_operand_order(xed_encoder_request_t *p)
static XED_INLINE xed_uint_t xed_encoder_request_operand_order_entries(xed_encoder_request_t *p)
Retreive the number of entries in the encoder operand order array.
XED_DLL_EXPORT void xed_encoder_request_set_index(xed_encoder_request_t *p, xed_reg_enum_t index_reg)
XED_DLL_EXPORT xed_operand_values_t * xed_encoder_request_operands(xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_set_branch_displacement(xed_encoder_request_t *p, xed_int32_t brdisp, xed_uint_t nbytes)
XED_DLL_EXPORT void xed_encoder_request_set_operand_order(xed_encoder_request_t *p, xed_uint_t operand_index, xed_operand_enum_t name)
XED_DLL_EXPORT void xed_encoder_request_init_from_decode(struct xed_decoded_inst_s *d)
Converts an decoder request to a valid encoder request.
XED_DLL_EXPORT void xed_encoder_request_set_uimm0(xed_encoder_request_t *p, xed_uint64_t uimm, xed_uint_t nbytes)
Set the uimm0 using a BYTE width.
XED_DLL_EXPORT void xed_encoder_request_set_simm(xed_encoder_request_t *p, xed_int32_t simm, xed_uint_t nbytes)
same storage as uimm0
XED_DLL_EXPORT void xed_encoder_request_set_base1(xed_encoder_request_t *p, xed_reg_enum_t base_reg)
xed_decoded_inst_t xed_encoder_request_t
XED_DLL_EXPORT void xed_encoder_request_set_base0(xed_encoder_request_t *p, xed_reg_enum_t base_reg)
XED_DLL_EXPORT void xed_encoder_request_set_lock(xed_encoder_request_t *p)
For locked (atomic read-modify-write) memops requests.
XED_DLL_EXPORT void xed_encoder_request_zero_set_mode(xed_encoder_request_t *p, const xed_state_t *dstate)
XED_DLL_EXPORT void xed_encoder_request_set_ptr(xed_encoder_request_t *p)
XED_DLL_EXPORT const xed_operand_values_t * xed_encoder_request_operands_const(const xed_encoder_request_t *p)
Encapsulates machine modes for decoder/encoder requests.
XED_DLL_EXPORT void xed_encoder_request_set_memory_operand_length(xed_encoder_request_t *p, xed_uint_t nbytes)
XED_DLL_EXPORT void xed_encoder_request_set_iclass(xed_encoder_request_t *p, xed_iclass_enum_t iclass)
XED_DLL_EXPORT void xed_encode_request_print(const xed_encoder_request_t *p, char *buf, xed_uint_t buflen)
XED_DLL_EXPORT xed_operand_enum_t xed_encoder_request_get_operand_order(xed_encoder_request_t *p, xed_uint_t operand_index)
XED_DLL_EXPORT void xed_encoder_request_set_mem0(xed_encoder_request_t *p)
XED_DLL_EXPORT xed_iclass_enum_t xed_encoder_request_get_iclass(const xed_encoder_request_t *p)
XED_DLL_EXPORT xed_error_enum_t xed_encode(xed_encoder_request_t *r, xed_uint8_t *array, const unsigned int ilen, unsigned int *olen)
This is the main interface to the encoder.
XED_DLL_EXPORT void xed_encoder_request_set_agen(xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_set_memory_displacement(xed_encoder_request_t *p, xed_int64_t memdisp, xed_uint_t nbytes)
XED_DLL_EXPORT void xed_encoder_request_set_uimm0_bits(xed_encoder_request_t *p, xed_uint64_t uimm, xed_uint_t nbits)
Set the uimm0 using a BIT width.
xed_uint8_t _n_operand_order
Length of the _operand_order[] array.
XED_DLL_EXPORT void xed_encoder_request_set_seg1(xed_encoder_request_t *p, xed_reg_enum_t seg_reg)
XED_DLL_EXPORT void xed_encoder_request_set_mem1(xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_set_reg(xed_encoder_request_t *p, xed_operand_enum_t operand, xed_reg_enum_t reg)
XED_DLL_EXPORT void xed_encoder_request_set_seg0(xed_encoder_request_t *p, xed_reg_enum_t seg_reg)
XED_DLL_EXPORT void xed_encoder_request_set_uimm1(xed_encoder_request_t *p, xed_uint8_t uimm)
XED_DLL_EXPORT void xed_encoder_request_set_rep(xed_encoder_request_t *p)
for REP(F3) prefix on string ops
XED_DLL_EXPORT void xed_encoder_request_zero(xed_encoder_request_t *p)