X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Ftv%2Ftv_t.h;h=54f7db60f7df939b0ff0ed9e83ffd99acd109a82;hb=7039e499eb395a6c98b66c38353025490604a256;hp=cba32a02a0a38b0de1029b7cc1eff90314a4a9f4;hpb=75bba3420ce91776ab8690b6cd3fc9ad1c5be965;p=libfirm diff --git a/ir/tv/tv_t.h b/ir/tv/tv_t.h index cba32a02a..54f7db60f 100644 --- a/ir/tv/tv_t.h +++ b/ir/tv/tv_t.h @@ -1,41 +1,35 @@ /* - * Project: libFIRM - * File name: ir/tv/tv_t.h - * Purpose: Representation of and static computations on target machine - * values -- private header. - * Author: Mathias Heil - * Modified by: - * Created: - * CVS-ID: $Id$ - * Copyright: (c) 2003 Universität Karlsruhe - * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. + * This file is part of libFirm. + * Copyright (C) 2012 University of Karlsruhe. */ -#ifndef _TV_T_H_ -#define _TV_T_H_ -#include "firm_config.h" +/** + * @file + * @brief Representation of and static computations on target machine + * values -- private header. + * @date 2003 + * @author Mathias Heil + */ +#ifndef FIRM_TV_TV_T_H +#define FIRM_TV_TV_T_H + +#include "firm_common.h" #include -#include "entity.h" #include "irmode.h" #include "tv.h" -/* debugging aid */ -enum reserved_id { - resid_tarval_bad = 1, - resid_tarval_undefined = 2, - resid_tarval_b_false = 3, - resid_tarval_b_true = 4 -}; - /** * Initialization of the tarval module. * * Call before init_mode(). * - * @param null_value The reference mode NULL value, typical 0l + * @param null_value + * The reference mode NULL value, typical 0l + * @param support_quad_precision + * If non-zero, activate support for quad precision */ -void init_tarval_1(long null_value); +void init_tarval_1(long null_value, int support_quad_precision); /** * Initialization of the tarval module. @@ -62,51 +56,65 @@ void finish_tarval(void); * @sa * irmode.h for predefined modes */ -struct tarval { - 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 */ +struct ir_tarval { + 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... */ + size_t length; /**< the length of the stored value */ }; -/** remove tarval representing an entity that is about to be destroyed */ -void free_tarval_entity(ir_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 ir_mode *_get_tarval_mode(const ir_tarval *tv) +{ + assert(tv); + return tv->mode; +} + +static inline ir_tarval *_get_tarval_bad(void) +{ + return tarval_bad; +} + +static inline ir_tarval *_get_tarval_undefined(void) +{ + return tarval_undefined; +} + +static inline ir_tarval *_get_tarval_b_false(void) +{ + return tarval_b_false; } -static INLINE tarval * -_get_tarval_bad(void) { - return tarval_bad; +static inline ir_tarval *_get_tarval_b_true(void) +{ + return tarval_b_true; } -static INLINE tarval * -_get_tarval_undefined(void) { - return tarval_undefined; +static inline ir_tarval *_get_tarval_reachable(void) +{ + return tarval_reachable; } -static INLINE tarval * -_get_tarval_b_false(void) { - return tarval_b_false; +static inline ir_tarval *_get_tarval_unreachable(void) +{ + return tarval_unreachable; } -static INLINE tarval * -_get_tarval_b_true(void) { - return tarval_b_true; +static inline int _is_tarval(const void *thing) +{ + return get_kind(thing) == k_tarval; } -#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() +#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_unreachable() _get_tarval_unreachable() +#define get_tarval_reachable() _get_tarval_reachable() +#define is_tarval(thing) _is_tarval(thing) -#endif /* _TV_T_H_ */ +#endif /* FIRM_TV_TV_T_H */