X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fia32%2Fia32_nodes_attr.h;h=77b56ac3a38b773f7848cb00f17c56cb7af34031;hb=61f4d246e707173f272e6ead6f42360a4674f951;hp=2b89bd22946bc05acb75ca50f55ece9fcac08c24;hpb=1161999117f5c0f56b3af2dc9bb7150e03761905;p=libfirm diff --git a/ir/be/ia32/ia32_nodes_attr.h b/ir/be/ia32/ia32_nodes_attr.h index 2b89bd229..77b56ac3a 100644 --- a/ir/be/ia32/ia32_nodes_attr.h +++ b/ir/be/ia32/ia32_nodes_attr.h @@ -1,3 +1,9 @@ +/** + * Type definitions for ia32 node attributes. + * @author Christian Wuerdig + * $Id$ + */ + #ifndef _IA32_NODES_ATTR_H_ #define _IA32_NODES_ATTR_H_ @@ -88,11 +94,15 @@ typedef struct _ia32_attr_t { unsigned emit_cl:1; /**< indicates whether we must emit cl instead of ecx (needed for shifts) */ - unsigned n_res:8; /**< number of results produced by this node */ + unsigned got_lea:1; /**< indicates whether or not this node already consumed a LEA */ + + unsigned got_reload:1; /**< set to 1 if node cosumed a reload */ + + unsigned n_res:6; /**< number of results produced by this node */ } data; - struct obstack *am_offs; /**< offsets for AddrMode */ - ident *am_sc; /**< SymConst for AddrMode */ + long am_offs; /**< offsets for AddrMode */ + ident *am_sc; /**< SymConst for AddrMode */ union { tarval *tv; /**< tarval for immediate operations */ @@ -110,6 +120,8 @@ typedef struct _ia32_attr_t { long pn_code; /**< projnum "types" (e.g. indicate compare operators and argument numbers) */ + unsigned latency; /**< the latency of the instruction in clock cycles */ + #ifndef NDEBUG const char *orig_node; /**< holds the name of the original ir node for debugging purposes */ #endif /* NDEBUG */