Iforms


Data Structures

struct  xed_iform_info_s
 Statically available information about iforms. More...

Typedefs

typedef XED_DLL_EXPORT xed_iform_info_s xed_iform_info_t
 Statically available information about iforms.

Functions

XED_DLL_EXPORT xed_uint32_t xed_iform_first_per_iclass (xed_iclass_enum_t iclass)
 Return the first of the iforms for a particular iclass.
XED_DLL_EXPORT const xed_iform_info_txed_iform_map (xed_iform_enum_t iform)
 Map the xed_iform_enum_t to a pointer to a xed_iform_info_t which indicates the xed_iclass_enum_t, the xed_category_enum_t and the xed_extension_enum_t for the iform.
XED_DLL_EXPORT xed_uint32_t xed_iform_max_per_iclass (xed_iclass_enum_t iclass)
 Return the maximum number of iforms for a particular iclass.
XED_DLL_EXPORT xed_category_enum_t xed_iform_to_category (xed_iform_enum_t iform)
 Return the category for a given iform.
XED_DLL_EXPORT xed_extension_enum_t xed_iform_to_extension (xed_iform_enum_t iform)
 Return the extension for a given iform.
static xed_iclass_enum_t XED_INLINE xed_iform_to_iclass (xed_iform_enum_t iform)
 Return the iclass for a given iform.
XED_DLL_EXPORT xed_isa_set_enum_t xed_iform_to_isa_set (xed_iform_enum_t iform)
 Return the isa_set for a given iform.

Detailed Description

XED classifies instructions as iclasses (ADD, SUB, MUL, etc.) of type xed_iclass_enum_t. To get more information about instructions and their operands, XED creates iforms of type xed_iform_enum_t. The iforms are supposed to aid in creating dispatch tables for instructions. You can often use a flat array indexed by iform. The maximum iform is XED_IFORM_LAST.

The iforms some times do not uniquely identify instructions. For example, many instructions in the ISA are "scalable" in that their operand width depends on the machine mode and the prefixes. The memory operation of these scalable opcodes is either 16 bits, 32 bits or 64 bits. The same opcode can represent several instrutions if you factor in the machine mode and prefixes. Those instructions often map to a single iform and need to be further refined by the xed_operand_values_get_effective_operand_width function.

The iform enumeration xed_iform_enum_t is dense and it has some built-in structure. All the iforms for a particular iclass are sequential. The function xed_iform_max_per_iclass() indicates the number of iforms for a particular iclass.

To get the first iform of a particular iclass you can use xed_iform_first_per_iclass() at runtime. There is also the xed_iformfl_enum_t which indicates for every iclass, the first and last iform in the xed_iform_enum_t.

Given an iform, to get xed_category_enum_t, xed_extension_enum_t, and xed_iclass_enum_t information, you can use xed_iform_map(), or there are accessors listed below to get the iclass, category or extension from that table directly.


Typedef Documentation

typedef struct XED_DLL_EXPORT xed_iform_info_s xed_iform_info_t
 

Statically available information about iforms.

Values are returned by xed_iform_map().


Function Documentation

XED_DLL_EXPORT xed_uint32_t xed_iform_first_per_iclass xed_iclass_enum_t  iclass  ) 
 

Return the first of the iforms for a particular iclass.

This function returns valid data as soon as global data is initialized. (This function does not require a decoded instruction as input).

XED_DLL_EXPORT const xed_iform_info_t* xed_iform_map xed_iform_enum_t  iform  ) 
 

Map the xed_iform_enum_t to a pointer to a xed_iform_info_t which indicates the xed_iclass_enum_t, the xed_category_enum_t and the xed_extension_enum_t for the iform.

Returns 0 if the iform is not a valid iform.

XED_DLL_EXPORT xed_uint32_t xed_iform_max_per_iclass xed_iclass_enum_t  iclass  ) 
 

Return the maximum number of iforms for a particular iclass.

This function returns valid data as soon as global data is initialized. (This function does not require a decoded instruction as input).

XED_DLL_EXPORT xed_category_enum_t xed_iform_to_category xed_iform_enum_t  iform  ) 
 

Return the category for a given iform.

This function returns valid data as soon as global data is initialized. (This function does not require a decoded instruction as input).

XED_DLL_EXPORT xed_extension_enum_t xed_iform_to_extension xed_iform_enum_t  iform  ) 
 

Return the extension for a given iform.

This function returns valid data as soon as global data is initialized. (This function does not require a decoded instruction as input).

static xed_iclass_enum_t XED_INLINE xed_iform_to_iclass xed_iform_enum_t  iform  )  [static]
 

Return the iclass for a given iform.

This function returns valid data as soon as global data is initialized. (This function does not require a decoded instruction as input).

Definition at line 78 of file xed-iform-map.h.

XED_DLL_EXPORT xed_isa_set_enum_t xed_iform_to_isa_set xed_iform_enum_t  iform  ) 
 

Return the isa_set for a given iform.

This function returns valid data as soon as global data is initialized. (This function does not require a decoded instruction as input).


Generated on Tue Nov 22 12:27:53 2011 for XED2 by  doxygen 1.4.6