return tv->mode;
}
+/*
+void *get_tarval_link (tarval *tv)
+{
+ ANNOUNCE ();
+ assert (tv);
+ return (tv->link);
+}
+*/
+
/*
* Special value query functions ============================================
*
case irms_reference:
if (tv == tarval_P_void) return snprintf(buf, len, "NULL");
if (tv->value != NULL){
- if (len > tv->length) {
- memcpy(buf, tv->value, tv->length);
- buf[tv->length] = '\0';
- }
- else {
- /* truncated */
- memcpy(buf, tv->value, len-1);
- buf[len-1] = '\0';
- }
- return tv->length;
+ if (len > tv->length) {
+ memcpy(buf, tv->value, tv->length);
+ buf[tv->length] = '\0';
+ }
+ else {
+ /* truncated */
+ memcpy(buf, tv->value, len-1);
+ buf[len-1] = '\0';
+ }
+ return tv->length;
}
else
- return snprintf(buf, len, "void");
+ return snprintf(buf, len, "void");
case irms_internal_boolean:
switch (mode_info->mode_output) {
byte = get_tarval_sub_bits(tv, i);
for(j = 1; j < 256; j <<= 1)
if(pos < n)
- res[pos++] = j & byte ? '1' : '0';
+ res[pos++] = j & byte ? '1' : '0';
}
res[n] = '\0';
/** Returns the mode of the tarval. */
ir_mode *get_tarval_mode (tarval *tv);
+/** Returns the contents of the 'link' field of the tarval */
+/* void *get_tarval_link (tarval*); */
+
/* Testing properties of the represented values */
/**
* Returns 1 if tv is negative
*
- * @param a the tarval
+ * @param a the tarval
*/
int tarval_is_negative(tarval *a);
/**
* Returns 1 if tv is null
*
- * @param a the tarval
+ * @param a the tarval
*/
int tarval_is_null(tarval *a);
/**
* Returns 1 if tv is the "one"
*
- * @param a the tarval
+ * @param a the tarval
*/
int tarval_is_one(tarval *a);
* However, we can do this in the tarval much simplier...
*/
typedef enum {
- TVO_NATIVE, /**< the default output mode, depends on the mode */
- TVO_HEX, /**< use hex representation, always possible */
- TVO_DECIMAL, /**< use decimal representation */
- TVO_OCTAL, /**< use octal representation */
- TVO_BINARY, /**< use binary representation */
- TVO_FLOAT, /**< use floating point representation (i.e 1.342e-2)*/
+ TVO_NATIVE, /**< the default output mode, depends on the mode */
+ TVO_HEX, /**< use hex representation, always possible */
+ TVO_DECIMAL, /**< use decimal representation */
+ TVO_OCTAL, /**< use octal representation */
+ TVO_BINARY, /**< use binary representation */
+ TVO_FLOAT, /**< use floating point representation (i.e 1.342e-2)*/
TVO_HEXFLOAT /**< use hexadecimal floating point representation (i.e 0x1.ea32p-12)*/
} tv_output_mode;
* of a tarval of a mode.
*/
typedef struct tarval_mode_info {
- tv_output_mode mode_output; /**< if != TVO_NATIVE select a special mode */
- const char *mode_prefix; /**< if set, this prefix will be printed
- before a value of this mode */
- const char *mode_suffix; /**< if set, this suffix will be printed
- after a value of this mode */
+ tv_output_mode mode_output; /**< if != TVO_NATIVE select a special mode */
+ const char *mode_prefix; /**< if set, this prefix will be printed
+ before a value of this mode */
+ const char *mode_suffix; /**< if set, this suffix will be printed
+ after a value of this mode */
} tarval_mode_info;
/**
*
* This functions stores the modinfo, so DO NOT DESTROY it.
*
- * @param mode a ir_mode that should be associated
- * @param modeinfo the output format info
+ * @param mode a ir_mode that should be associated
+ * @param modeinfo the output format info
*
* @return zero on success.
*/
*
* This functions returns the modinfo of a given mode.
*
- * @param mode a ir_mode that should be associated
+ * @param mode a ir_mode that should be associated
*
* @return the output option
*/
* - concatenation (endian dependance MUST be handled by the CALLER)
* - bitwise logical operations to select/mask bits
*
- * @param tv the tarval
- * @param byte_ofs the byte offset
+ * @param tv the tarval
+ * @param byte_ofs the byte offset
*
* @note
* The result of this funcion is undefined if the mode is neither integer nor float.
* Return values of tarval classify
*/
typedef enum _tarval_classification_t {
- TV_CLASSIFY_NULL = 0, /**< the tarval represents the additive neutral element */
- TV_CLASSIFY_ONE = +1, /**< the tarval represents the multiplicative neutral element */
- TV_CLASSIFY_ALL_ONE = -1, /**< the tarval represents the bitwise-and neutral element */
- TV_CLASSIFY_OTHER = 2 /**< all other tarvals */
+ TV_CLASSIFY_NULL = 0, /**< the tarval represents the additive neutral element */
+ TV_CLASSIFY_ONE = +1, /**< the tarval represents the multiplicative neutral element */
+ TV_CLASSIFY_ALL_ONE = -1, /**< the tarval represents the bitwise-and neutral element */
+ TV_CLASSIFY_OTHER = 2 /**< all other tarvals */
} tarval_classification_t;
/**