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"
24 * Initialization of the tarval module.
26 * Call before init_mode().
28 void init_tarval_1(void);
31 * Initialization of the tarval module.
33 * Call after init_mode().
35 void init_tarval_2(void);
38 * Free all memory occupied by the tarval module.
40 void finish_tarval(void);
43 * This struct represents the afore mentioned tarvals.
45 * A tarval struct consists of an internal representation of the
46 * value and some additional fields further describing the value.
49 * - ir_mode *mode The mode of the stored value
50 * - void *value The internal representation
53 * irmode.h for predefined modes
56 firm_kind kind; /**< must be k_tarval */
57 ir_mode *mode; /**< the mode of the stored value */
58 const void *value; /**< the value stored in an internal way... */
59 unsigned int length; /**< the length of the stored value */
62 /** remove tarval representing an entity that is about to be destroyed */
63 void free_tarval_entity(entity *ent);
65 /* inline functions */
67 * Access routines for tarval fields ========================================
69 static INLINE ir_mode *
70 _get_tarval_mode(const tarval *tv) {
75 static INLINE tarval *
76 _get_tarval_bad(void) {
80 static INLINE tarval *
81 _get_tarval_undefined(void) {
82 return tarval_undefined;
85 static INLINE tarval *
86 _get_tarval_b_false(void) {
87 return tarval_b_false;
90 static INLINE tarval *
91 _get_tarval_b_true(void) {
95 static INLINE tarval *
96 _get_tarval_P_void(void) {
100 #define get_tarval_mode(tv) _get_tarval_mode(tv)
101 #define get_tarval_bad() _get_tarval_bad()
102 #define get_tarval_undefined() _get_tarval_undefined()
103 #define get_tarval_b_false() _get_tarval_b_false()
104 #define get_tarval_b_true() _get_tarval_b_true()
105 #define get_tarval_P_void() _get_tarval_P_void()
107 #endif /* _TV_T_H_ */