libFirm
|
Data modes of operations. More...
Go to the source code of this file.
Enumerations | |
enum | ir_mode_arithmetic { irma_none = 1, irma_twos_complement = 2, irma_ieee754 = 256, irma_x86_extended_float, irma_last = irma_x86_extended_float } |
These values represent the different arithmetic operations possible with a mode. More... |
Functions | |
ir_mode * | new_int_mode (const char *name, ir_mode_arithmetic arithmetic, unsigned bit_size, int sign, unsigned modulo_shift) |
Creates a new mode. | |
ir_mode * | new_reference_mode (const char *name, ir_mode_arithmetic arithmetic, unsigned bit_size, unsigned modulo_shift) |
Create a new reference mode. | |
ir_mode * | new_float_mode (const char *name, ir_mode_arithmetic arithmetic, unsigned exponent_size, unsigned mantissa_size) |
Create a new ieee754 float mode. | |
int | is_mode (const void *thing) |
Checks whether a pointer points to a mode. | |
ident * | get_mode_ident (const ir_mode *mode) |
Returns the ident* of the mode. | |
const char * | get_mode_name (const ir_mode *mode) |
Returns the null-terminated name of this mode. | |
unsigned | get_mode_size_bits (const ir_mode *mode) |
Returns the size of values of the mode in bits. | |
unsigned | get_mode_size_bytes (const ir_mode *mode) |
Returns the size of values of the mode in bytes. | |
int | get_mode_sign (const ir_mode *mode) |
Returns the signess of a mode. | |
ir_mode_arithmetic | get_mode_arithmetic (const ir_mode *mode) |
Returns the arithmetic of a mode. | |
unsigned int | get_mode_modulo_shift (const ir_mode *mode) |
Returns the modulo shift attribute. | |
void * | get_mode_link (const ir_mode *mode) |
Returns the stored intermediate information. | |
void | set_mode_link (ir_mode *mode, void *l) |
Stores new intermediate information. | |
ir_tarval * | get_mode_min (ir_mode *mode) |
Returns the smallest representable value of a given mode. | |
ir_tarval * | get_mode_max (ir_mode *mode) |
Returns the biggest representable value o f a given mode. | |
ir_tarval * | get_mode_null (ir_mode *mode) |
Returns the value Zero represented in this mode. | |
ir_tarval * | get_mode_one (ir_mode *mode) |
Returns the value One, represented in this mode. | |
ir_tarval * | get_mode_minus_one (ir_mode *mode) |
Returns the value Minus One, represented in this mode. | |
ir_tarval * | get_mode_all_one (ir_mode *mode) |
Returns the value where all bits are One, represented in this mode. | |
ir_tarval * | get_mode_infinite (ir_mode *mode) |
Returns the positive infinite value of a mode. | |
ir_tarval * | get_mode_NAN (ir_mode *mode) |
Returns the NAN value of a given mode. | |
ir_mode * | get_modeF (void) |
Returns float mode. | |
ir_mode * | get_modeD (void) |
Returns double mode. | |
ir_mode * | get_modeQ (void) |
Returns quadruple prevision mode. | |
ir_mode * | get_modeBs (void) |
Returns byte signed mode. | |
ir_mode * | get_modeBu (void) |
Returns byte unsigned mode. | |
ir_mode * | get_modeHs (void) |
Returns halfword signed mode. | |
ir_mode * | get_modeHu (void) |
Returns halfword unsigned mode. | |
ir_mode * | get_modeIs (void) |
Returns integer signed mode. | |
ir_mode * | get_modeIu (void) |
Returns integer unsigned mode. | |
ir_mode * | get_modeLs (void) |
Returns long signed mode. | |
ir_mode * | get_modeLu (void) |
Returns long unsigned mode. | |
ir_mode * | get_modeLLs (void) |
Returns long long signed mode. | |
ir_mode * | get_modeLLu (void) |
Returns long long unsigned mode. | |
ir_mode * | get_modeP (void) |
Returns pointer mode. | |
ir_mode * | get_modeb (void) |
Returns internal boolean mode. | |
ir_mode * | get_modeX (void) |
Returns control-flow mode. | |
ir_mode * | get_modeBB (void) |
Returns Basic-Block mode. | |
ir_mode * | get_modeM (void) |
Returns memory mode. | |
ir_mode * | get_modeT (void) |
Returns tuple mode. | |
ir_mode * | get_modeANY (void) |
Returns ANY mode. | |
ir_mode * | get_modeBAD (void) |
Returns BAD mode. | |
ir_mode * | get_modeP_code (void) |
Returns the machine specific pointer mode for code addresses. | |
ir_mode * | get_modeP_data (void) |
Returns the machine specific pointer mode for data addresses. | |
void | set_modeP_code (ir_mode *p) |
Sets the machine specific pointer mode for code addresses. | |
void | set_modeP_data (ir_mode *p) |
Sets the machine specific pointer mode for data addresses. | |
int | mode_is_signed (const ir_mode *mode) |
Returns 1 if mode is signed, 0 otherwise. | |
int | mode_is_float (const ir_mode *mode) |
Returns 1 if mode is for floatingpoint numbers, 0 otherwise. | |
int | mode_is_int (const ir_mode *mode) |
Returns 1 if mode is for integer numbers, 0 otherwise. | |
int | mode_is_reference (const ir_mode *mode) |
Returns 1 if mode is for references/pointers, 0 otherwise. | |
int | mode_is_num (const ir_mode *mode) |
Returns 1 if mode is for numeric values, 0 otherwise. | |
int | mode_is_data (const ir_mode *mode) |
Returns 1 if mode is for data values, 0 otherwise. | |
int | mode_is_datab (const ir_mode *mode) |
Returns 1 if mode is for data values or internal booleans, 0 otherwise. | |
int | mode_is_dataM (const ir_mode *mode) |
Returns 1 if mode is for data values or memory, 0 otherwise. | |
int | smaller_mode (const ir_mode *sm, const ir_mode *lm) |
Returns true if a value of mode sm can be converted to mode lm without loss. | |
int | values_in_mode (const ir_mode *sm, const ir_mode *lm) |
Returns true if no information is lost when converting a value of mode sm into mode lm (and back to mode sm ). | |
ir_mode * | find_unsigned_mode (const ir_mode *mode) |
Returns a matching unsigned mode for a given integer signed mode. | |
ir_mode * | find_signed_mode (const ir_mode *mode) |
Returns a matching signed mode for a given integer unsigned mode. | |
ir_mode * | find_double_bits_int_mode (const ir_mode *mode) |
Returns an integer mode with 2*n bits for a given integer mode with n bits. | |
int | mode_honor_signed_zeros (const ir_mode *mode) |
Returns non-zero if the given mode honors signed zero's, i.e., a +0 and a -0 exists and handled differently. | |
int | mode_overflow_on_unary_Minus (const ir_mode *mode) |
Returns non-zero if the given mode might overflow on unary Minus. | |
int | mode_wrap_around (const ir_mode *mode) |
Returns non-zero if the mode has a reversed wrap-around logic, especially (a + x) - x == a. | |
ir_mode * | get_reference_mode_signed_eq (ir_mode *mode) |
Returns the signed integer equivalent mode for an reference mode. | |
void | set_reference_mode_signed_eq (ir_mode *ref_mode, ir_mode *int_mode) |
Sets the signed integer equivalent mode for an reference mode. | |
ir_mode * | get_reference_mode_unsigned_eq (ir_mode *mode) |
Returns the unsigned integer equivalent mode for an reference mode. | |
void | set_reference_mode_unsigned_eq (ir_mode *ref_mode, ir_mode *int_mode) |
Sets the unsigned integer equivalent mode for an reference mode. | |
unsigned | get_mode_mantissa_size (const ir_mode *mode) |
Returns size of mantissa in bits (for float modes). | |
unsigned | get_mode_exponent_size (const ir_mode *mode) |
Returns size of exponent in bits (for float modes) | |
int | is_reinterpret_cast (const ir_mode *src, const ir_mode *dst) |
Returns non-zero if the cast from mode src to mode dst is a reinterpret cast (ie. | |
ir_type * | get_type_for_mode (const ir_mode *mode) |
Returns the primitive type matching the given mode. | |
size_t | ir_get_n_modes (void) |
Returns number of known modes. | |
ir_mode * | ir_get_mode (size_t num) |
Returns known mode number num . |
Variables | |
ir_mode * | mode_M |
memory | |
ir_mode * | mode_F |
ieee754 binary32 float (single precision) | |
ir_mode * | mode_D |
ieee754 binary64 float (double precision) | |
ir_mode * | mode_Q |
ieee754 binary128 float (quadruple precision) | |
ir_mode * | mode_Bs |
int8 | |
ir_mode * | mode_Bu |
uint8 | |
ir_mode * | mode_Hs |
int16 | |
ir_mode * | mode_Hu |
uint16 | |
ir_mode * | mode_Is |
int32 | |
ir_mode * | mode_Iu |
uint32 | |
ir_mode * | mode_Ls |
int64 | |
ir_mode * | mode_Lu |
uint64 | |
ir_mode * | mode_LLs |
int128 | |
ir_mode * | mode_LLu |
uint128 | |
ir_mode * | mode_P |
pointer | |
ir_mode * | mode_P_code |
A pointer mode that is set by the client of libfirm. | |
ir_mode * | mode_P_data |
A pointer mode that is set by the client of libfirm. | |
ir_mode * | mode_b |
internal boolean | |
ir_mode * | mode_X |
execution | |
ir_mode * | mode_BB |
block | |
ir_mode * | mode_T |
tuple (none) | |
ir_mode * | mode_ANY |
undefined mode | |
ir_mode * | mode_BAD |
bad mode |
Data modes of operations.
Definition in file irmode.h.