X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Ftv%2Ftv_t.h;h=0d1a141eb9f0146b254dd0f893506bb4f12ed496;hb=d2dc2564b47d9c113d7e6e598574e9733627fcca;hp=76522b9a5c1fbc9ef482773691c14d1557f64c8c;hpb=36af4d96294e644bbec2246fe309ed8e7a7c62f6;p=libfirm diff --git a/ir/tv/tv_t.h b/ir/tv/tv_t.h index 76522b9a5..0d1a141eb 100644 --- a/ir/tv/tv_t.h +++ b/ir/tv/tv_t.h @@ -10,23 +10,24 @@ * Copyright: (c) 2003 Universität Karlsruhe * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. */ - - - #ifndef _TV_T_H_ #define _TV_T_H_ +#include "firm_config.h" + +#include #include "entity.h" #include "irmode.h" #include "tv.h" - /** * Initialization of the tarval module. * * Call before init_mode(). + * + * @param null_value The reference mode NULL value, typical 0l */ -void init_tarval_1(void); +void init_tarval_1(long null_value); /** * Initialization of the tarval module. @@ -54,13 +55,50 @@ 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 */ - /* void *link; */ /**< some opaque information */ + firm_kind kind; /**< must be k_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 */ }; /** remove tarval representing an entity that is about to be destroyed */ void free_tarval_entity(entity *ent); +/* inline functions */ +/* + * Access routines for tarval fields ======================================== + */ +static INLINE ir_mode * +_get_tarval_mode(const tarval *tv) { + assert(tv); + return tv->mode; +} + +static INLINE tarval * +_get_tarval_bad(void) { + return tarval_bad; +} + +static INLINE tarval * +_get_tarval_undefined(void) { + return tarval_undefined; +} + +static INLINE tarval * +_get_tarval_b_false(void) { + return tarval_b_false; +} + +static INLINE tarval * +_get_tarval_b_true(void) { + return tarval_b_true; +} + +#define get_tarval_mode(tv) _get_tarval_mode(tv) +#define get_tarval_bad() _get_tarval_bad() +#define get_tarval_undefined() _get_tarval_undefined() +#define get_tarval_b_false() _get_tarval_b_false() +#define get_tarval_b_true() _get_tarval_b_true() +#define get_tarval_P_void() _get_tarval_P_void() + #endif /* _TV_T_H_ */