36 #ifndef _XED_IMMDIS_H_
37 # define _XED_IMMDIS_H_
59 #define XED_MAX_IMMDIS_BYTES 8
XED_DLL_EXPORT void xed_immdis_add8(xed_immdis_t *p, xed_int8_t d)
add an 8 bit value to the byte array
xed_bool_t immediate_is_unsigned
XED_DLL_EXPORT xed_bool_t xed_immdis_is_unsigned(const xed_immdis_t *p)
Return true if signed.
XED_DLL_EXPORT int xed_immdis_print_value_signed(const xed_immdis_t *p, char *buf, int buflen)
print the signed value, appropriate width, with a leading 0x
XED_DLL_EXPORT void xed_immdis_add_byte(xed_immdis_t *p, xed_uint8_t b)
XED_DLL_EXPORT void xed_immdis_add_shortest_width_unsigned(xed_immdis_t *p, xed_uint64_t x, xed_uint8_t legal_widths)
See add_shortest_width_signed()
XED_DLL_EXPORT unsigned int xed_immdis_get_bytes(const xed_immdis_t *p)
return the number of bytes added
xed_uint8_t x[XED_MAX_IMMDIS_BYTES]
int xed_immdis__print_ptr(const xed_immdis_t *p, char *buf, int buflen)
XED_DLL_EXPORT void xed_immdis_add32(xed_immdis_t *p, xed_int32_t d)
add a 32 bit value to the byte array
XED_DLL_EXPORT xed_uint64_t xed_immdis_get_unsigned64(const xed_immdis_t *p)
XED_DLL_EXPORT void xed_immdis_add16(xed_immdis_t *p, xed_int16_t d)
add a 16 bit value to the byte array
XED_DLL_EXPORT void xed_immdis_set_max_len(xed_immdis_t *p, unsigned int mx)
XED_DLL_EXPORT xed_bool_t xed_immdis_is_signed(const xed_immdis_t *p)
Return true if signed.
XED_DLL_EXPORT xed_uint8_t xed_immdis_get_byte(const xed_immdis_t *p, unsigned int i)
Access the i'th byte of the immediate.
XED_DLL_EXPORT int xed_immdis_print(const xed_immdis_t *p, char *buf, int buflen)
just print the raw bytes in hex with a leading 0x
XED_DLL_EXPORT void xed_immdis_add_byte_array(xed_immdis_t *p, int nb, xed_uint8_t *ba)
XED_DLL_EXPORT void xed_immdis_zero(xed_immdis_t *p)
XED_DLL_EXPORT void xed_immdis_add_shortest_width_signed(xed_immdis_t *p, xed_int64_t x, xed_uint8_t legal_widths)
Add 1, 2, 4 or 8 bytes depending on the value x and the mask of legal_widths.
XED_DLL_EXPORT void xed_immdis__check(xed_immdis_t *q, int p)
XED_DLL_EXPORT void xed_immdis_set_unsigned(xed_immdis_t *p)
Set the immediate to be unsigned; For decoder use only.
XED_DLL_EXPORT void xed_immdis_set_signed(xed_immdis_t *p)
Set the immediate to be signed; For decoder use only.
#define XED_MAX_IMMDIS_BYTES
XED_DLL_EXPORT void xed_immdis_init(xed_immdis_t *p, int max_bytes)
XED_DLL_EXPORT xed_int64_t xed_immdis_get_signed64(const xed_immdis_t *p)
unsigned int max_allocated_space
struct xed_immdis_s xed_immdis_t
Stores immediates and displacements for the encoder & decoder.
XED_DLL_EXPORT xed_bool_t xed_immdis_is_one(const xed_immdis_t *p)
XED_DLL_EXPORT void xed_immdis_set_present(xed_immdis_t *p)
unsigned int currently_used_space
union xed_immdis_values_t value
XED_DLL_EXPORT int xed_immdis_print_value_unsigned(const xed_immdis_t *p, char *buf, int buflen)
print the unsigned value, appropriate width, with a leading 0x
XED_DLL_EXPORT unsigned int xed_immdis_get_max_length(const xed_immdis_t *p)
Stores immediates and displacements for the encoder & decoder.
XED_DLL_EXPORT int xed_immdis_print_signed_or_unsigned(const xed_immdis_t *p, char *buf, int buflen)
Print the value as a signed or unsigned number depending on the value of the immediate_is_unsigned va...
XED_DLL_EXPORT xed_bool_t xed_immdis_is_present(const xed_immdis_t *p)
True if the object has had a value or individual bytes added to it.
XED_DLL_EXPORT void xed_immdis_add64(xed_immdis_t *p, xed_int64_t d)
add a 64 bit value to the byte array.
XED_DLL_EXPORT xed_bool_t xed_immdis_is_zero(const xed_immdis_t *p)