From: Christian Würdig Date: Mon, 27 Feb 2006 16:33:25 +0000 (+0000) Subject: fixed some bugs X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=8c99b54ba9c75d5eeb4727e92076571a5222b3df;p=libfirm fixed some bugs --- diff --git a/ir/be/ia32/ia32_new_nodes.c b/ir/be/ia32/ia32_new_nodes.c index 6d3901614..82e24c5d3 100644 --- a/ir/be/ia32/ia32_new_nodes.c +++ b/ir/be/ia32/ia32_new_nodes.c @@ -774,7 +774,7 @@ void set_ia32_pncode(ir_node *node, long code) { /** * Gets the type of an ia32_Const. */ -unsigned get_ia32_Const_type(ir_node *node) { +unsigned get_ia32_Const_type(const ir_node *node) { ia32_attr_t *attr = get_ia32_attr(node); assert((is_ia32_Const(node) || is_ia32_fConst(node)) && "Need ia32_Const to get type"); @@ -806,7 +806,8 @@ void set_ia32_Immop_attr(ir_node *node, ir_node *cnst) { na->tv = ca->tv; if (ca->sc) { - na->sc = copy_str(na->sc, ca->sc); + na->sc = copy_str(na->sc, ca->sc); + na->cnst = na->sc; } else { na->cnst = set_cnst_from_tv(na->cnst, na->tv); @@ -863,7 +864,7 @@ void set_ia32_AddrMode(ir_node *node, char direction) { /** * Returns whether or not the node is an AddrModeS node. */ -int is_ia32_AddrModeS(ir_node *node) { +int is_ia32_AddrModeS(const ir_node *node) { ia32_attr_t *attr = get_ia32_attr(node); return (attr->tp == ia32_AddrModeS); } @@ -871,12 +872,24 @@ int is_ia32_AddrModeS(ir_node *node) { /** * Returns whether or not the node is an AddrModeD node. */ -int is_ia32_AddrModeD(ir_node *node) { +int is_ia32_AddrModeD(const ir_node *node) { ia32_attr_t *attr = get_ia32_attr(node); return (attr->tp == ia32_AddrModeD); } +/** + * Checks if node is a Load or fLoad. + */ +int is_ia32_Ld(const ir_node *node) { + return is_ia32_Load(node) || is_ia32_fLoad(node); +} +/** + * Checks if node is a Store or fStore. + */ +int is_ia32_St(const ir_node *node) { + return is_ia32_Store(node) || is_ia32_fStore(node); +} /*************************************************************************************** * _ _ _ diff --git a/ir/be/ia32/ia32_new_nodes.h b/ir/be/ia32/ia32_new_nodes.h index 96ca3a509..6c9e5e661 100644 --- a/ir/be/ia32/ia32_new_nodes.h +++ b/ir/be/ia32/ia32_new_nodes.h @@ -228,7 +228,7 @@ void set_ia32_pncode(ir_node *node, long code); /** * Gets the type of an ia32_Const. */ -unsigned get_ia32_Const_type(ir_node *node); +unsigned get_ia32_Const_type(const ir_node *node); /** * Sets the type of an ia32_Const. @@ -254,12 +254,22 @@ void set_ia32_AddrMode(ir_node *node, char direction); /** * Returns whether or not the node is an AddrModeS node. */ -int is_ia32_AddrModeS(ir_node *node); +int is_ia32_AddrModeS(const ir_node *node); /** * Returns whether or not the node is an AddrModeD node. */ -int is_ia32_AddrModeD(ir_node *node); +int is_ia32_AddrModeD(const ir_node *node); + +/** + * Checks if node is a Load or fLoad. + */ +int is_ia32_Ld(const ir_node *node); + +/** + * Checks if node is a Store or fStore. + */ +int is_ia32_St(const ir_node *node); /* Include the generated headers */ #include "gen_ia32_new_nodes.h"