|
Memory Addressing |
XED_DLL_EXPORT xed_bool_t | xed_operand_values_accesses_memory (const xed_operand_values_t *p) |
XED_DLL_EXPORT xed_reg_enum_t | xed_operand_values_get_base_reg (const xed_operand_values_t *p, unsigned int memop_idx) |
XED_DLL_EXPORT xed_reg_enum_t | xed_operand_values_get_index_reg (const xed_operand_values_t *p, unsigned int memop_idx) |
XED_DLL_EXPORT unsigned int | xed_operand_values_get_memory_operand_length (const xed_operand_values_t *p, unsigned int memop_idx) |
XED_DLL_EXPORT unsigned int | xed_operand_values_get_scale (const xed_operand_values_t *p) |
XED_DLL_EXPORT xed_reg_enum_t | xed_operand_values_get_seg_reg (const xed_operand_values_t *p, unsigned int memop_idx) |
XED_DLL_EXPORT xed_bool_t | xed_operand_values_has_modrm_byte (const xed_operand_values_t *p) |
| Returns true if the instruction has a MODRM byte.
|
XED_DLL_EXPORT xed_bool_t | xed_operand_values_has_sib_byte (const xed_operand_values_t *p) |
| Returns true if the instruction has a SIB byte.
|
XED_DLL_EXPORT xed_bool_t | xed_operand_values_memop_without_modrm (const xed_operand_values_t *p) |
| Returns true if the instruction access memory but without using a MODRM byte limiting its addressing modes.
|
XED_DLL_EXPORT unsigned int | xed_operand_values_number_of_memory_operands (const xed_operand_values_t *p) |
String output |
XED_DLL_EXPORT void | xed_operand_values_dump (const xed_operand_values_t *ov, char *buf, int buflen) |
| Dump all the information about the operands to buf.
|
XED_DLL_EXPORT void | xed_operand_values_print_short (const xed_operand_values_t *ov, char *buf, int buflen) |
| More tersely dump all the information about the operands to buf.
|
Branch Displacements |
XED_DLL_EXPORT xed_uint8_t | xed_operand_values_get_branch_displacement_byte (const xed_operand_values_t *p, unsigned int i) |
XED_DLL_EXPORT xed_int32_t | xed_operand_values_get_branch_displacement_int32 (const xed_operand_values_t *p) |
XED_DLL_EXPORT xed_uint32_t | xed_operand_values_get_branch_displacement_length (const xed_operand_values_t *p) |
| Return the branch displacement width in bytes.
|
XED_DLL_EXPORT xed_uint32_t | xed_operand_values_get_branch_displacement_length_bits (const xed_operand_values_t *p) |
| Return the branch displacement width in bits.
|
Immediates |
XED_DLL_EXPORT xed_uint8_t | xed_operand_values_get_immediate_byte (const xed_operand_values_t *p, unsigned int i) |
XED_DLL_EXPORT xed_int64_t | xed_operand_values_get_immediate_int64 (const xed_operand_values_t *p) |
XED_DLL_EXPORT xed_uint_t | xed_operand_values_get_immediate_is_signed (const xed_operand_values_t *p) |
| Return true if the first immediate (IMM0) is signed.
|
XED_DLL_EXPORT xed_uint64_t | xed_operand_values_get_immediate_uint64 (const xed_operand_values_t *p) |
XED_DLL_EXPORT xed_uint8_t | xed_operand_values_get_second_immediate (const xed_operand_values_t *p) |
Memory Displacements |
XED_DLL_EXPORT xed_uint8_t | xed_operand_values_get_memory_displacement_byte (const xed_operand_values_t *p, unsigned int i) |
XED_DLL_EXPORT xed_int64_t | xed_operand_values_get_memory_displacement_int64 (const xed_operand_values_t *p) |
XED_DLL_EXPORT xed_uint32_t | xed_operand_values_get_memory_displacement_length (const xed_operand_values_t *p) |
| Return the memory displacement width in BYTES.
|
XED_DLL_EXPORT xed_uint32_t | xed_operand_values_get_memory_displacement_length_bits (const xed_operand_values_t *p) |
| Return the memory displacement width in BITS.
|
REP/REPNE Prefixes |
XED_DLL_EXPORT xed_bool_t | xed_operand_values_has_real_rep (const xed_operand_values_t *p) |
| True if the instruction has a real REP prefix.
|
XED_DLL_EXPORT xed_bool_t | xed_operand_values_has_rep_prefix (const xed_operand_values_t *p) |
| True if the instruction as a real F3 REP prefix.
|
XED_DLL_EXPORT xed_bool_t | xed_operand_values_has_repne_prefix (const xed_operand_values_t *p) |
| True if the instruction as a real F2 REP prefix.
|
Initialization |
XED_DLL_EXPORT void | xed_operand_values_init (xed_operand_values_t *p) |
| Initializes operand structure.
|
XED_DLL_EXPORT void | xed_operand_values_init_keep_mode (xed_operand_values_t *dst, const xed_operand_values_t *src) |
| Initializes dst operand structure but preserves the existing MODE/SMODE/AMODE values from the src operand structure.
|
XED_DLL_EXPORT void | xed_operand_values_init_set_mode (xed_operand_values_t *p, const xed_state_t *dstate) |
| Initializes operand structure and sets state values.
|
Encoding |
XED_DLL_EXPORT void | xed_operand_values_set_base_reg (xed_operand_values_t *p, unsigned int memop_idx, xed_reg_enum_t new_base) |
XED_DLL_EXPORT void | xed_operand_values_set_branch_displacement (xed_operand_values_t *p, xed_int32_t x, unsigned int len) |
| Set the branch displacement using a BYTES length.
|
XED_DLL_EXPORT void | xed_operand_values_set_branch_displacement_bits (xed_operand_values_t *p, xed_int32_t x, unsigned int len_bits) |
| Set the branch displacement using a BITS length.
|
XED_DLL_EXPORT void | xed_operand_values_set_effective_operand_width (xed_operand_values_t *p, unsigned int width) |
XED_DLL_EXPORT void | xed_operand_values_set_iclass (xed_operand_values_t *p, xed_iclass_enum_t iclass) |
XED_DLL_EXPORT void | xed_operand_values_set_immediate_signed (xed_operand_values_t *p, xed_int32_t x, unsigned int bytes) |
| Set the signed immediate using a BYTES length.
|
XED_DLL_EXPORT void | xed_operand_values_set_immediate_signed_bits (xed_operand_values_t *p, xed_int32_t x, unsigned int bits) |
| Set the signed immediate using a BITS length.
|
XED_DLL_EXPORT void | xed_operand_values_set_immediate_unsigned (xed_operand_values_t *p, xed_uint64_t x, unsigned int bytes) |
| Set the unsigned immediate using a BYTE length.
|
XED_DLL_EXPORT void | xed_operand_values_set_immediate_unsigned_bits (xed_operand_values_t *p, xed_uint64_t x, unsigned int bits) |
| Set the unsigned immediate using a BIT length.
|
XED_DLL_EXPORT void | xed_operand_values_set_index_reg (xed_operand_values_t *p, unsigned int memop_idx, xed_reg_enum_t new_index) |
XED_DLL_EXPORT void | xed_operand_values_set_lock (xed_operand_values_t *p) |
XED_DLL_EXPORT void | xed_operand_values_set_memory_displacement (xed_operand_values_t *p, xed_int64_t x, unsigned int len) |
| Set the memory displacement using a BYTES length.
|
XED_DLL_EXPORT void | xed_operand_values_set_memory_displacement_bits (xed_operand_values_t *p, xed_int64_t x, unsigned int len_bits) |
| Set the memory displacement using a BITS length.
|
XED_DLL_EXPORT void | xed_operand_values_set_memory_operand_length (xed_operand_values_t *p, unsigned int memop_length) |
XED_DLL_EXPORT void | xed_operand_values_set_operand_reg (xed_operand_values_t *p, xed_operand_enum_t operand_name, xed_reg_enum_t reg_name) |
| Set the operand storage field entry named 'operand_name' to the register value specified by 'reg_name'.
|
XED_DLL_EXPORT void | xed_operand_values_set_relbr (xed_operand_values_t *p) |
| Indicate that we have a relative branch.
|
XED_DLL_EXPORT void | xed_operand_values_set_scale (xed_operand_values_t *p, xed_uint_t memop_idx, xed_uint_t new_scale) |
XED_DLL_EXPORT void | xed_operand_values_set_seg_reg (xed_operand_values_t *p, unsigned int memop_idx, xed_reg_enum_t new_seg) |
XED_DLL_EXPORT void | xed_operand_values_zero_branch_displacement (xed_operand_values_t *p) |
XED_DLL_EXPORT void | xed_operand_values_zero_immediate (xed_operand_values_t *p) |
XED_DLL_EXPORT void | xed_operand_values_zero_memory_displacement (xed_operand_values_t *p) |
XED_DLL_EXPORT void | xed_operand_values_zero_segment_override (xed_operand_values_t *p) |
Functions |
XED_DLL_EXPORT xed_bool_t | xed_operand_values_branch_not_taken_hint (const xed_operand_values_t *p) |
XED_DLL_EXPORT xed_bool_t | xed_operand_values_branch_taken_hint (const xed_operand_values_t *p) |
XED_DLL_EXPORT xed_bool_t | xed_operand_values_get_atomic (const xed_operand_values_t *p) |
| Returns true if the memory operation has atomic read-modify-write semantics.
|
XED_DLL_EXPORT xed_bool_t | xed_operand_values_get_displacement_for_memop (const xed_operand_values_t *p) |
| Deprecated.
|
XED_DLL_EXPORT xed_uint32_t | xed_operand_values_get_effective_address_width (const xed_operand_values_t *p) |
| Returns The effective address width in bits: 16/32/64.
|
XED_DLL_EXPORT xed_uint32_t | xed_operand_values_get_effective_operand_width (const xed_operand_values_t *p) |
| Returns The effective operand width in bits: 16/32/64.
|
XED_DLL_EXPORT xed_iclass_enum_t | xed_operand_values_get_iclass (const xed_operand_values_t *p) |
XED_DLL_EXPORT xed_bool_t | xed_operand_values_get_long_mode (const xed_operand_values_t *p) |
XED_DLL_EXPORT xed_bool_t | xed_operand_values_has_address_size_prefix (const xed_operand_values_t *p) |
XED_DLL_EXPORT xed_bool_t | xed_operand_values_has_branch_displacement (const xed_operand_values_t *p) |
| True if there is a branch displacement.
|
XED_DLL_EXPORT xed_bool_t | xed_operand_values_has_disp (const xed_operand_values_t *p) |
| ALIAS for has_displacement().
|
XED_DLL_EXPORT xed_bool_t | xed_operand_values_has_displacement (const xed_operand_values_t *p) |
| True if there is a memory or branch displacement.
|
XED_DLL_EXPORT xed_bool_t | xed_operand_values_has_immediate (const xed_operand_values_t *p) |
| Return true if there is an immediate operand.
|
XED_DLL_EXPORT xed_bool_t | xed_operand_values_has_lock_prefix (const xed_operand_values_t *p) |
| Returns true if the memory operatoin has a valid lock prefix.
|
XED_DLL_EXPORT xed_bool_t | xed_operand_values_has_memory_displacement (const xed_operand_values_t *p) |
| True if there is a memory displacement.
|
XED_DLL_EXPORT xed_bool_t | xed_operand_values_has_operand_size_prefix (const xed_operand_values_t *p) |
XED_DLL_EXPORT xed_bool_t | xed_operand_values_has_segment_prefix (const xed_operand_values_t *p) |
XED_DLL_EXPORT xed_bool_t | xed_operand_values_is_nop (const xed_operand_values_t *p) |
XED_DLL_EXPORT xed_bool_t | xed_operand_values_is_prefetch (const xed_operand_values_t *p) |
XED_DLL_EXPORT xed_reg_enum_t | xed_operand_values_segment_prefix (const xed_operand_values_t *p) |
| Return the segment prefix, if any, as a xed_reg_enum_t value.
|
XED_DLL_EXPORT xed_bool_t | xed_operand_values_using_default_segment (const xed_operand_values_t *p, unsigned int i) |
| Indicates if the default segment is being used.
|