intoduced kind field to mode node graph
[libfirm] / ir / ir / irmode_t.h
1
2 /* $Id$ */
3
4 /**
5  * @file irmode_t.h
6  */
7
8 # ifndef _IRMODE_T_H_
9 # define _IRMODE_T_H_
10
11 # include "irmode.h"
12 # include "tv.h"
13
14 /** This struct is supposed to completely define a mode. **/
15 struct ir_mode {
16   firm_kind         kind;       /**< distinguishes this node from others */
17   modecode          code;       /**< unambiguous identifier of a mode */
18   ident             *name;      /**< Name ident of this mode */
19   mode_sort         sort;       /**< coarse classification of this mode:
20                                      int, float, reference ...
21                                      (see irmode.h) */
22   mode_arithmetic   arithmetic; /**< different arithmetic operations possible with a mode */
23   int               size;       /**< size of the mode in Bits. */
24   int               align;      /**< byte alignment */
25   unsigned          sign:1;     /**< signedness of this mode */
26
27   tarval            *min;
28   tarval            *max;
29   tarval            *null;
30   tarval            *one;
31   void              *link;      /**< To store some intermediate information */
32   const void        *tv_priv;   /**< tarval module will save private data here */
33 };
34
35 #endif