Public Attributes | Public Member Functions | List of all members
regval_t Struct Reference

Detailed Description

Structure to hold a register value.

Small values (up to 64-bit integers and floating point values) use RVT_INT and RVT_FLOAT types. For bigger values the bytes() vector is used.

Public Attributes

int32 rvtype
 one of Register value types
union {
   uint64   ival
 8: integer value
   uint16   fval [6]
 12: floating point value in the internal representation (see ieee.h)
   uchar   reserve [sizeof(bytevec_t)]
 bytevec_t: custom data type (use bytes() to access it)

Public Member Functions

 regval_t (const regval_t &r)
regval_toperator= (const regval_t &r)
 Assign this regval to the given value.
void clear (void)
 Clear register value.
bool operator== (const regval_t &r) const
 Compare two regvals with '=='.
bool operator!= (const regval_t &r) const
 Compare two regvals with '!='.
void swap (regval_t &r)
 Set this = r and r = this.
void _set_int (uint64 x)
 Use set_int()
void _set_float (const ushort *x)
 Use set_float()
void _set_bytes (const uchar *data, size_t size)
 Use set_bytes(const uchar *, size_t)
void _set_bytes (const bytevec_t &v)
 Use set_bytes(const bytevec_t &)
bytevec_t_set_bytes (void)
 Use set_bytes(void)

These functions ensure that the previous value is cleared

void set_int (uint64 x)
 Set int value (ival)
void set_float (const ushort *x)
 Set float value (fval)
void set_bytes (const uchar *data, size_t size)
 Set custom regval with raw data.
void set_bytes (const bytevec_t &v)
 Set custom value with existing bytevec.
bytevec_tset_bytes (void)
 Initialize this regval to an empty custom value.
bytevec_tbytes (void)
 Get custom value.
const bytevec_tbytes (void) const
 Get const custom value.
void * get_data (void)
 Get pointer to value.
const void * get_data (void) const
 Get const pointer to value.
size_t get_data_size (void) const
 Get size of value.

The documentation for this struct was generated from the following file: