Intel® X86 Encoder Decoder
|
There are several functions that provide more information about the flags read and written. More...
Data Structures | |
union | xed_flag_dfv_s |
struct | xed_flag_enum_s |
union | xed_flag_set_s |
struct | xed_simple_flag_s |
Typedefs | |
typedef union xed_flag_dfv_s | xed_flag_dfv_t |
Functions | |
XED_DLL_EXPORT xed_bool_t | xed_flag_dfv_get_default_flags_values (xed_reg_enum_t dfv_reg, xed_flag_dfv_t *p) |
Flag-set accessors | |
typedef struct xed_flag_enum_s | xed_flag_action_t |
XED_DLL_EXPORT int | xed_flag_set_print (const xed_flag_set_t *p, char *buf, int buflen) |
XED_DLL_EXPORT xed_bool_t | xed_flag_set_is_subset_of (const xed_flag_set_t *p, const xed_flag_set_t *other) |
Lowest-level flag-action accessors | |
typedef struct xed_simple_flag_s | xed_simple_flag_t |
XED_DLL_EXPORT xed_flag_enum_t | xed_flag_action_get_flag_name (const xed_flag_action_t *p) |
XED_DLL_EXPORT xed_flag_action_enum_t | xed_flag_action_get_action (const xed_flag_action_t *p, unsigned int i) |
XED_DLL_EXPORT xed_bool_t | xed_flag_action_action_invalid (const xed_flag_action_enum_t a) |
XED_DLL_EXPORT int | xed_flag_action_print (const xed_flag_action_t *p, char *buf, int buflen) |
XED_DLL_EXPORT xed_bool_t | xed_flag_action_read_flag (const xed_flag_action_t *p) |
XED_DLL_EXPORT xed_bool_t | xed_flag_action_writes_flag (const xed_flag_action_t *p) |
XED_DLL_EXPORT xed_bool_t | xed_flag_action_read_action (xed_flag_action_enum_t a) |
XED_DLL_EXPORT xed_bool_t | xed_flag_action_write_action (xed_flag_action_enum_t a) |
There are several functions that provide more information about the flags read and written.
The flags are available from the xed_decoded_inst_t via the xed_decoded_inst_get_rflags_info() function which returns a xed_simple_flag_t pointer.
The type xed_flag_set_t keeps the integer flags in the order specified by the RFLAGS register. The x87 flags are stored in the most significant 4 bits of the flag set. This should not affect use by the normal integer operations; Those bits are reserved as zero in the RFLAGS.
typedef struct xed_flag_enum_s xed_flag_action_t |
Associated with each flag field there can be one action.
typedef union xed_flag_dfv_s xed_flag_dfv_t |
a struct representing an instruction's default flags values
typedef struct xed_simple_flag_s xed_simple_flag_t |
A collection of xed_flag_action_t's and unions of read and written flags
XED_DLL_EXPORT xed_bool_t xed_flag_action_action_invalid | ( | const xed_flag_action_enum_t | a | ) |
returns true if the specified action is invalid. Only the 2nd flag might be invalid.
XED_DLL_EXPORT xed_flag_action_enum_t xed_flag_action_get_action | ( | const xed_flag_action_t * | p, |
unsigned int | i | ||
) |
return the action
XED_DLL_EXPORT xed_flag_enum_t xed_flag_action_get_flag_name | ( | const xed_flag_action_t * | p | ) |
get the name of the flag
XED_DLL_EXPORT int xed_flag_action_print | ( | const xed_flag_action_t * | p, |
char * | buf, | ||
int | buflen | ||
) |
print the flag & actions
XED_DLL_EXPORT xed_bool_t xed_flag_action_read_action | ( | xed_flag_action_enum_t | a | ) |
test to see if the specific action is a read
XED_DLL_EXPORT xed_bool_t xed_flag_action_read_flag | ( | const xed_flag_action_t * | p | ) |
returns true if either action is a read
XED_DLL_EXPORT xed_bool_t xed_flag_action_write_action | ( | xed_flag_action_enum_t | a | ) |
test to see if a specific action is a write
XED_DLL_EXPORT xed_bool_t xed_flag_action_writes_flag | ( | const xed_flag_action_t * | p | ) |
returns true if either action is a write
XED_DLL_EXPORT xed_bool_t xed_flag_dfv_get_default_flags_values | ( | xed_reg_enum_t | dfv_reg, |
xed_flag_dfv_t * | p | ||
) |
extracts the default flags values from XED DFV pseudo-register to a given xed_flag_dfv_t pointer If the given DFV enumeration is invalid, the function returns 0
XED_DLL_EXPORT xed_bool_t xed_flag_set_is_subset_of | ( | const xed_flag_set_t * | p, |
const xed_flag_set_t * | other | ||
) |
returns true if this object has a subset of the flags of the "other" object.
|
static |
Return the flags as a mask
XED_DLL_EXPORT int xed_flag_set_print | ( | const xed_flag_set_t * | p, |
char * | buf, | ||
int | buflen | ||
) |
print the flag set in the supplied buffer
const XED_DLL_EXPORT xed_flag_action_t* xed_simple_flag_get_flag_action | ( | const xed_simple_flag_t * | p, |
unsigned int | i | ||
) |
return the specific flag-action. Very detailed low level information
XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_may_write | ( | const xed_simple_flag_t * | p | ) |
Indicates the flags are only conditionally written. Usually MAY-writes of the flags instructions that are dependent on a REP count.
XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_must_write | ( | const xed_simple_flag_t * | p | ) |
the flags always written
XED_DLL_EXPORT unsigned int xed_simple_flag_get_nflags | ( | const xed_simple_flag_t * | p | ) |
returns the number of flag-actions
const XED_DLL_EXPORT xed_flag_set_t* xed_simple_flag_get_read_flag_set | ( | const xed_simple_flag_t * | p | ) |
return union of bits for read flags
const XED_DLL_EXPORT xed_flag_set_t* xed_simple_flag_get_undefined_flag_set | ( | const xed_simple_flag_t * | p | ) |
return union of bits for undefined flags
const XED_DLL_EXPORT xed_flag_set_t* xed_simple_flag_get_written_flag_set | ( | const xed_simple_flag_t * | p | ) |
return union of bits for written flags
XED_DLL_EXPORT int xed_simple_flag_print | ( | const xed_simple_flag_t * | p, |
char * | buf, | ||
int | buflen | ||
) |
print the flags
XED_DLL_EXPORT xed_bool_t xed_simple_flag_reads_flags | ( | const xed_simple_flag_t * | p | ) |
boolean test to see if flags are read, scans the flags
XED_DLL_EXPORT xed_bool_t xed_simple_flag_writes_flags | ( | const xed_simple_flag_t * | p | ) |
boolean test to see if flags are written, scans the flags