X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Ftv%2Ftv_t.h;h=d029f3042bd7f1518b50803e75063e9f8a181549;hb=ead91aed10122a0137167cc5930d2b4c9e292995;hp=77503fdb3f4a9b3ed8b4384e56db8ba26ead6214;hpb=806ff40754652772d7a4ec137a234935d8c676e7;p=libfirm diff --git a/ir/tv/tv_t.h b/ir/tv/tv_t.h index 77503fdb3..d029f3042 100644 --- a/ir/tv/tv_t.h +++ b/ir/tv/tv_t.h @@ -37,10 +37,12 @@ /** Debugging aid for the firmEvaluator: Marks for reserved tarvals values. */ enum reserved_id { - resid_tarval_bad = 1, /**< tarval_bad marker. */ - resid_tarval_undefined = 2, /**< tarval_undefined marker. */ - resid_tarval_b_false = 3, /**< tarval_b_false marker. */ - resid_tarval_b_true = 4 /**< tarval_b_true marker. */ + resid_tarval_bad = 1, /**< tarval_bad marker. */ + resid_tarval_undefined = 2, /**< tarval_undefined marker. */ + resid_tarval_b_false = 3, /**< tarval_b_false marker. */ + resid_tarval_b_true = 4, /**< tarval_b_true marker. */ + resid_tarval_unreachable = 5, /**< tarval_unreachable marker. */ + resid_tarval_reachable = 6 /**< tarval_reachable marker. */ }; /** @@ -48,9 +50,12 @@ enum reserved_id { * * 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. @@ -78,10 +83,10 @@ void finish_tarval(void); * 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 */ + 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 */ }; /* inline functions */ @@ -90,28 +95,38 @@ struct tarval { */ static INLINE ir_mode * _get_tarval_mode(const tarval *tv) { - assert(tv); - return tv->mode; + assert(tv); + return tv->mode; } static INLINE tarval * _get_tarval_bad(void) { - return tarval_bad; + return tarval_bad; } static INLINE tarval * _get_tarval_undefined(void) { - return tarval_undefined; + return tarval_undefined; } static INLINE tarval * _get_tarval_b_false(void) { - return tarval_b_false; + return tarval_b_false; } static INLINE tarval * _get_tarval_b_true(void) { - return tarval_b_true; + return tarval_b_true; +} + +static INLINE tarval * +_get_tarval_reachable(void) { + return tarval_reachable; +} + +static INLINE tarval * +_get_tarval_unreachable(void) { + return tarval_unreachable; } static INLINE int @@ -119,12 +134,14 @@ _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 is_tarval(thing) _is_tarval(thing) +#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 get_tarval_P_void() _get_tarval_P_void() +#define is_tarval(thing) _is_tarval(thing) #endif /* FIRM_TV_TV_T_H */