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_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. | |
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. |
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.
|
Statically available information about iforms. Values are returned by xed_iform_map(). |
|
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). |
|
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. |
|
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). |
|
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). |
|
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). |
|
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. |
|
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). |