- Main Page
- Modules
- Data Structures
- Files

- Search for |

- File List
- Globals

# xed-inst.h File Reference

`#include "xed-util.h"`
`#include "xed-portability.h"`
`#include "xed-category-enum.h"`
`#include "xed-extension-enum.h"`
`#include "xed-iclass-enum.h"`
`#include "xed-operand-enum.h"`
`#include "xed-operand-visibility-enum.h"`
`#include "xed-operand-action-enum.h"`
`#include "xed-operand-convert-enum.h"`
`#include "xed-operand-type-enum.h"`
`#include "xed-nonterminal-enum.h"`
`#include "xed-operand-width-enum.h"`
`#include "xed-operand-element-xtype-enum.h"`
`#include "xed-reg-enum.h"`
`#include "xed-attribute-enum.h"`
`#include "xed-exception-enum.h"`
`#include "xed-iform-enum.h"`
`#include "xed-iform-map.h"`
`#include "xed-attributes.h"`

Go to the source code of this file.

## 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...

## xed_inst_t Attribute access

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.
XED_DLL_EXPORT unsigned int | xed_attribute_max (void)
| Return the maximum number of defined attributes, independent of any instruction.
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.
XED_DLL_EXPORT xed_attributes_t | xed_inst_get_attributes (const xed_inst_t *p)
| Return the attributes bit vector.

## xed_inst_t Template Instruction Information

static XED_INLINE xed_category_enum_t | xed_inst_category (const xed_inst_t *p)
XED_DLL_EXPORT unsigned int | xed_inst_cpl (const xed_inst_t *p)
| xed_inst_cpl() is DEPRECATED.
static XED_INLINE xed_extension_enum_t | xed_inst_extension (const xed_inst_t *p)
XED_DLL_EXPORT xed_uint32_t | xed_inst_flag_info_index (const xed_inst_t *p)
static XED_INLINE xed_iclass_enum_t | xed_inst_iclass (const xed_inst_t *p)
static XED_INLINE xed_iform_enum_t | xed_inst_iform_enum (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.
XED_DLL_EXPORT const xed_operand_t * | xed_inst_operand (const xed_inst_t *p, unsigned int i)
| Obtain a pointer to an individual operand.

## 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.

## xed_inst_t Template Operand Read/Written

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).
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).
XED_DLL_EXPORT xed_uint_t | xed_operand_read (const xed_operand_t *p)
| If the operand is read, including conditional reads.
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.
XED_DLL_EXPORT xed_uint_t | xed_operand_read_only (const xed_operand_t *p)
| If the operand is read-only, including conditional reads.
static XED_INLINE xed_operand_action_enum_t | xed_operand_rw (const xed_operand_t *p)
| Returns the raw R/W action.
XED_DLL_EXPORT xed_uint_t | xed_operand_written (const xed_operand_t *p)
| If the operand is written, including conditional writes.
XED_DLL_EXPORT xed_uint_t | xed_operand_written_only (const xed_operand_t *p)
| If the operand is written-only, including conditional writes.

## xed_inst_t Template Operands Access

static XED_INLINE xed_uint32_t | xed_operand_imm (const xed_operand_t *p)
static XED_INLINE xed_operand_enum_t | xed_operand_name (const xed_operand_t *p)
static XED_INLINE xed_nonterminal_enum_t | xed_operand_nonterminal_name (const xed_operand_t *p)
static XED_INLINE xed_operand_visibility_enum_t | xed_operand_operand_visibility (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.
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.
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().
static XED_INLINE xed_operand_type_enum_t | xed_operand_type (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_operand_element_xtype_enum_t | xed_operand_xtype (const xed_operand_t *p)

## xed_inst_t Template Operand Enum Name Classification

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}.
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.

## Defines

#define | _XED_INST_H_

## Typedefs

typedef 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.
typedef void(* | xed_operand_extractor_fn_t )(struct xed_decoded_inst_s *xds)
typedef xed_operand_s | xed_operand_t
| Constant information about an individual generic operand, like an operand template, describing the operand properties.

## Functions

XED_DLL_EXPORT const xed_inst_t * | xed_inst_table_base (void)
| Return the base of instruction table.

## Detailed Description

Definition in file xed-inst.h.

## Define Documentation

#define _XED_INST_H_

| Definition at line 35 of file xed-inst.h.

## Typedef Documentation

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

| Definition at line 59 of file xed-inst.h.

## Function Documentation

static XED_INLINE xed_category_enum_t xed_inst_category | ( | const xed_inst_t * | p | ) | `[static]`

| Definition at line 281 of file xed-inst.h.

static XED_INLINE xed_extension_enum_t xed_inst_extension | ( | const xed_inst_t * | p | ) | `[static]`

| Definition at line 285 of file xed-inst.h.

XED_DLL_EXPORT xed_uint32_t xed_inst_flag_info_index | ( | const xed_inst_t * | p | ) |

static XED_INLINE xed_iclass_enum_t xed_inst_iclass | ( | const xed_inst_t * | p | ) | `[static]`

| Definition at line 277 of file xed-inst.h.

static XED_INLINE xed_iform_enum_t xed_inst_iform_enum | ( | const xed_inst_t * | p | ) | `[static]`

| Definition at line 292 of file xed-inst.h.

static XED_INLINE xed_isa_set_enum_t xed_inst_isa_set | ( | const xed_inst_t * | p | ) | `[static]`

| Definition at line 288 of file xed-inst.h.