From ea99a9d7ba1da1e4c4cb0c6caae5e2a644914247 Mon Sep 17 00:00:00 2001 From: Florian Liekweg Date: Fri, 26 Nov 2004 16:01:24 +0000 Subject: [PATCH] prepare add of 'link' field to tarvals [r4482] --- ir/tv/tv.c | 33 +++++++++++++++++++++------------ ir/tv/tv.h | 49 ++++++++++++++++++++++++++----------------------- ir/tv/tv_t.h | 7 ++++--- 3 files changed, 51 insertions(+), 38 deletions(-) diff --git a/ir/tv/tv.c b/ir/tv/tv.c index 92ab9a2cb..cb6f12f05 100644 --- a/ir/tv/tv.c +++ b/ir/tv/tv.c @@ -414,6 +414,15 @@ ir_mode *get_tarval_mode (tarval *tv) /* get the mode of the tarval */ return tv->mode; } +/* +void *get_tarval_link (tarval *tv) +{ + ANNOUNCE (); + assert (tv); + return (tv->link); +} +*/ + /* * Special value query functions ============================================ * @@ -1432,19 +1441,19 @@ int tarval_snprintf(char *buf, size_t len, tarval *tv) 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) { @@ -1496,7 +1505,7 @@ char *get_tarval_bitpattern(tarval *tv) 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'; diff --git a/ir/tv/tv.h b/ir/tv/tv.h index 8ed8a5490..1cb437e0e 100644 --- a/ir/tv/tv.h +++ b/ir/tv/tv.h @@ -244,26 +244,29 @@ int tarval_is_double(tarval *tv); /** 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); @@ -466,12 +469,12 @@ int tarval_carry(void); * 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; @@ -480,11 +483,11 @@ typedef enum { * 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; /** @@ -492,8 +495,8 @@ typedef struct 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. */ @@ -504,7 +507,7 @@ int set_tarval_mode_output_option(ir_mode *mode, const tarval_mode_info *modein * * 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 */ @@ -554,8 +557,8 @@ char *get_tarval_bitpattern(tarval *tv); * - 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. @@ -566,10 +569,10 @@ unsigned char get_tarval_sub_bits(tarval *tv, unsigned byte_ofs); * 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; /** diff --git a/ir/tv/tv_t.h b/ir/tv/tv_t.h index 43167406f..b5c622dde 100644 --- a/ir/tv/tv_t.h +++ b/ir/tv/tv_t.h @@ -52,9 +52,10 @@ void finish_tarval(void); * irmode.h for predefined modes */ struct tarval { - ir_mode *mode; /**< the mode of the stored value */ - const void *value; /**< the value stored in an internal way... */ - unsigned int length; /**< the length of the stored value */ + ir_mode *mode; /**< the mode of the stored value */ + const void *value; /**< the value stored in an internal way... */ + unsigned int length; /**< the length of the stored value */ + /* void *link; */ /**< some opaque information */ }; /** remove tarval representing an entity that is about to be destroyed */ -- 2.20.1