3 * File name: ir/tv/tv_t.h
4 * Purpose: Representation of and static computations on target machine
5 * values -- private header.
10 * Copyright: (c) 2003 Universität Karlsruhe
11 * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
16 #include "firm_config.h"
26 resid_tarval_undefined = 2,
27 resid_tarval_b_false = 3,
28 resid_tarval_b_true = 4
32 * Initialization of the tarval module.
34 * Call before init_mode().
36 * @param null_value The reference mode NULL value, typical 0l
38 void init_tarval_1(long null_value);
41 * Initialization of the tarval module.
43 * Call after init_mode().
45 void init_tarval_2(void);
48 * Free all memory occupied by the tarval module.
50 void finish_tarval(void);
53 * This struct represents the afore mentioned tarvals.
55 * A tarval struct consists of an internal representation of the
56 * value and some additional fields further describing the value.
59 * - ir_mode *mode The mode of the stored value
60 * - void *value The internal representation
63 * irmode.h for predefined modes
66 firm_kind kind; /**< must be k_tarval */
67 ir_mode *mode; /**< the mode of the stored value */
68 const void *value; /**< the value stored in an internal way... */
69 unsigned int length; /**< the length of the stored value */
72 /** remove tarval representing an entity that is about to be destroyed */
73 void free_tarval_entity(entity *ent);
75 /* inline functions */
77 * Access routines for tarval fields ========================================
79 static INLINE ir_mode *
80 _get_tarval_mode(const tarval *tv) {
85 static INLINE tarval *
86 _get_tarval_bad(void) {
90 static INLINE tarval *
91 _get_tarval_undefined(void) {
92 return tarval_undefined;
95 static INLINE tarval *
96 _get_tarval_b_false(void) {
97 return tarval_b_false;
100 static INLINE tarval *
101 _get_tarval_b_true(void) {
102 return tarval_b_true;
105 #define get_tarval_mode(tv) _get_tarval_mode(tv)
106 #define get_tarval_bad() _get_tarval_bad()
107 #define get_tarval_undefined() _get_tarval_undefined()
108 #define get_tarval_b_false() _get_tarval_b_false()
109 #define get_tarval_b_true() _get_tarval_b_true()
110 #define get_tarval_P_void() _get_tarval_P_void()
112 #endif /* _TV_T_H_ */