X86 Encoder Decoder
xed-inst.h File Reference

Data Structures

struct  xed_inst_s
 constant information about a decoded instruction form, including the pointer to the constant operand properties xed_operand_t for this instruction form. More...
 
struct  xed_operand_s
 Constant information about an individual generic operand, like an operand template, describing the operand properties. More...
 

Typedefs

typedef struct xed_inst_s xed_inst_t
 constant information about a decoded instruction form, including the pointer to the constant operand properties xed_operand_t for this instruction form. More...
 
typedef void(* xed_operand_extractor_fn_t) (struct xed_decoded_inst_s *xds)
 
typedef struct xed_operand_s xed_operand_t
 Constant information about an individual generic operand, like an operand template, describing the operand properties. More...
 

Functions

XED_DLL_EXPORT const xed_inst_txed_inst_table_base (void)
 Return the base of instruction table. More...
 
xed_inst_t Template Operands Access
static XED_INLINE xed_operand_enum_t xed_operand_name (const xed_operand_t *p)
 
static XED_INLINE xed_operand_visibility_enum_t xed_operand_operand_visibility (const xed_operand_t *p)
 
static XED_INLINE xed_operand_type_enum_t xed_operand_type (const xed_operand_t *p)
 
static XED_INLINE xed_operand_element_xtype_enum_t xed_operand_xtype (const xed_operand_t *p)
 
static XED_INLINE xed_operand_width_enum_t xed_operand_width (const xed_operand_t *p)
 
XED_DLL_EXPORT xed_uint32_t xed_operand_width_bits (const xed_operand_t *p, const xed_uint32_t eosz)
 
static XED_INLINE xed_nonterminal_enum_t xed_operand_nonterminal_name (const xed_operand_t *p)
 
static XED_INLINE xed_reg_enum_t xed_operand_reg (const xed_operand_t *p)
 Careful with this one – use xed_decoded_inst_get_reg()! This one is probably not what you think it is. More...
 
static XED_INLINE xed_uint_t xed_operand_template_is_register (const xed_operand_t *p)
 Careful with this one; See xed_operand_is_register(). More...
 
static XED_INLINE xed_uint32_t xed_operand_imm (const xed_operand_t *p)
 
XED_DLL_EXPORT void xed_operand_print (const xed_operand_t *p, char *buf, int buflen)
 Print the operand p into the buffer buf, of length buflen. More...
 
xed_inst_t Template Operand Enum Name Classification
static XED_INLINE xed_uint_t xed_operand_is_register (xed_operand_enum_t name)
 Tests the enum for inclusion in XED_OPERAND_REG0 through XED_OPERAND_REG15. More...
 
static XED_INLINE xed_uint_t xed_operand_is_memory_addressing_register (xed_operand_enum_t name)
 Tests the enum for inclusion in XED_OPERAND_{BASE0,BASE1,INDEX,SEG0,SEG1}. More...
 
xed_inst_t Template Operand Read/Written
static XED_INLINE xed_operand_action_enum_t xed_operand_rw (const xed_operand_t *p)
 DEPRECATED: Returns the raw R/W action. More...
 
XED_DLL_EXPORT xed_uint_t xed_operand_read (const xed_operand_t *p)
 If the operand is read, including conditional reads. More...
 
XED_DLL_EXPORT xed_uint_t xed_operand_read_only (const xed_operand_t *p)
 If the operand is read-only, including conditional reads. More...
 
XED_DLL_EXPORT xed_uint_t xed_operand_written (const xed_operand_t *p)
 If the operand is written, including conditional writes. More...
 
XED_DLL_EXPORT xed_uint_t xed_operand_written_only (const xed_operand_t *p)
 If the operand is written-only, including conditional writes. More...
 
XED_DLL_EXPORT xed_uint_t xed_operand_read_and_written (const xed_operand_t *p)
 If the operand is read-and-written, conditional reads and conditional writes. More...
 
XED_DLL_EXPORT xed_uint_t xed_operand_conditional_read (const xed_operand_t *p)
 If the operand has a conditional read (may also write) More...
 
XED_DLL_EXPORT xed_uint_t xed_operand_conditional_write (const xed_operand_t *p)
 If the operand has a conditional write (may also read) More...
 
xed_inst_t Template Instruction Information
XED_DLL_EXPORT unsigned int xed_inst_cpl (const xed_inst_t *p)
 xed_inst_cpl() is DEPRECATED. More...
 
static XED_INLINE xed_iform_enum_t xed_inst_iform_enum (const xed_inst_t *p)
 
static XED_INLINE xed_iclass_enum_t xed_inst_iclass (const xed_inst_t *p)
 
static XED_INLINE xed_category_enum_t xed_inst_category (const xed_inst_t *p)
 
static XED_INLINE xed_extension_enum_t xed_inst_extension (const xed_inst_t *p)
 
static XED_INLINE xed_isa_set_enum_t xed_inst_isa_set (const xed_inst_t *p)
 
static XED_INLINE unsigned int xed_inst_noperands (const xed_inst_t *p)
 Number of instruction operands. More...
 
XED_DLL_EXPORT const xed_operand_txed_inst_operand (const xed_inst_t *p, unsigned int i)
 Obtain a pointer to an individual operand. More...
 
XED_DLL_EXPORT xed_uint32_t xed_inst_flag_info_index (const xed_inst_t *p)
 
xed_inst_t Attribute access
XED_DLL_EXPORT xed_uint32_t xed_inst_get_attribute (const xed_inst_t *p, xed_attribute_enum_t attr)
 Scan for the attribute attr and return 1 if it is found, 0 otherwise. More...
 
XED_DLL_EXPORT xed_attributes_t xed_inst_get_attributes (const xed_inst_t *p)
 Return the attributes bit vector. More...
 
XED_DLL_EXPORT unsigned int xed_attribute_max (void)
 Return the maximum number of defined attributes, independent of any instruction. More...
 
XED_DLL_EXPORT xed_attribute_enum_t xed_attribute (unsigned int i)
 Return the i'th global attribute in a linear sequence, independent of any instruction. More...
 
Exceptions
static XED_INLINE xed_exception_enum_t xed_inst_exception (const xed_inst_t *p)
 Return xed_exception_enum_t if present for the specified instruction. More...
 

Typedef Documentation

◆ xed_operand_extractor_fn_t

typedef void(* xed_operand_extractor_fn_t) (struct xed_decoded_inst_s *xds)