From 5775e9bd4b13218d125b8e2fa3444b82beeeaa0e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christian=20W=C3=BCrdig?= Date: Fri, 11 Aug 2006 13:37:40 +0000 Subject: [PATCH] added got_reload flag --- ir/be/ia32/ia32_new_nodes.c | 24 ++++++++++++++++++++++++ ir/be/ia32/ia32_new_nodes.h | 15 +++++++++++++++ ir/be/ia32/ia32_nodes_attr.h | 4 +++- 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/ir/be/ia32/ia32_new_nodes.c b/ir/be/ia32/ia32_new_nodes.c index aa54161ed..15ec9f426 100644 --- a/ir/be/ia32/ia32_new_nodes.c +++ b/ir/be/ia32/ia32_new_nodes.c @@ -756,6 +756,30 @@ int is_ia32_got_lea(const ir_node *node) { return attr->data.got_lea; } +/** + * Sets node got_reload. + */ +void set_ia32_got_reload(ir_node *node) { + ia32_attr_t *attr = get_ia32_attr(node); + attr->data.got_reload = 1; +} + +/** + * Clears node got_reload. + */ +void clear_ia32_got_reload(ir_node *node) { + ia32_attr_t *attr = get_ia32_attr(node); + attr->data.got_reload = 0; +} + +/** + * Checks if node got reload. + */ +int is_ia32_got_reload(const ir_node *node) { + ia32_attr_t *attr = get_ia32_attr(node); + return attr->data.got_reload; +} + /** * Gets the mode of the stored/loaded value (only set for Store/Load) */ diff --git a/ir/be/ia32/ia32_new_nodes.h b/ir/be/ia32/ia32_new_nodes.h index 662dbabcf..3b02e51f0 100644 --- a/ir/be/ia32/ia32_new_nodes.h +++ b/ir/be/ia32/ia32_new_nodes.h @@ -216,6 +216,21 @@ void clear_ia32_got_lea(ir_node *node); */ int is_ia32_got_lea(const ir_node *node); +/** + * Sets node got_reload. + */ +void set_ia32_got_reload(ir_node *node); + +/** + * Clears node got_reload. + */ +void clear_ia32_got_reload(ir_node *node); + +/** + * Checks if node got reload. + */ +int is_ia32_got_reload(const ir_node *node); + /** * Gets the mode of the stored/loaded value (only set for Store/Load) */ diff --git a/ir/be/ia32/ia32_nodes_attr.h b/ir/be/ia32/ia32_nodes_attr.h index 1bafa7531..4cbc04ce7 100644 --- a/ir/be/ia32/ia32_nodes_attr.h +++ b/ir/be/ia32/ia32_nodes_attr.h @@ -96,7 +96,9 @@ typedef struct _ia32_attr_t { unsigned got_lea:1; /**< indicates whether or not this node already consumed a LEA */ - unsigned n_res:7; /**< number of results produced by this node */ + 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 */ -- 2.20.1