X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fia32%2Fia32_new_nodes.c;h=41bf6f9dbd23d62b07cec6d2df0beb9c9d736cf6;hb=e07b61c6ed5d198a484761f8a40a4f26520d964d;hp=ba8546f23067654c1db8630f8c2651b4b8441374;hpb=d50bc36f02c6d9e1cc0fcfc421e706f3f81814eb;p=libfirm diff --git a/ir/be/ia32/ia32_new_nodes.c b/ir/be/ia32/ia32_new_nodes.c index ba8546f23..41bf6f9db 100644 --- a/ir/be/ia32/ia32_new_nodes.c +++ b/ir/be/ia32/ia32_new_nodes.c @@ -257,17 +257,14 @@ static int ia32_dump_node(ir_node *n, FILE *F, dump_reason_t reason) { /* dump supported am */ fprintf(F, "AM support = "); switch (get_ia32_am_support(n)) { - case ia32_am_None: - fprintf(F, "none"); - break; - case ia32_am_Source: - fprintf(F, "source only (Load)"); - break; + case ia32_am_none: fputs("none\n", F); break; + case ia32_am_unary: fputs("source (unary)\n", F); break; + case ia32_am_binary: fputs("source (binary)\n", F); break; + default: - fprintf(F, "unknown (%d)", get_ia32_am_support(n)); + fprintf(F, "unknown (%d)\n", get_ia32_am_support(n)); break; } - fprintf(F, "\n"); /* dump AM offset */ if(get_ia32_am_offs_int(n) != 0) { @@ -298,19 +295,11 @@ static int ia32_dump_node(ir_node *n, FILE *F, dump_reason_t reason) { fprintf(F, "size = %u\n", get_ia32_copyb_size(n)); } - /* dump n_res */ fprintf(F, "n_res = %d\n", get_ia32_n_res(n)); - - /* dump use_frame */ fprintf(F, "use_frame = %d\n", is_ia32_use_frame(n)); - - /* commutative */ fprintf(F, "commutative = %d\n", is_ia32_commutative(n)); - - /* need stackent */ fprintf(F, "need stackent = %d\n", is_ia32_need_stackent(n)); - - /* dump latency */ + fprintf(F, "is reload = %d\n", is_ia32_is_reload(n)); fprintf(F, "latency = %d\n", get_ia32_latency(n)); /* dump flags */ @@ -479,15 +468,8 @@ void set_ia32_op_type(ir_node *node, ia32_op_type_t tp) { attr->data.tp = tp; } -/** - * Gets the supported address mode of an ia32 node - */ -ia32_am_type_t get_ia32_am_support(const ir_node *node) { - const ia32_attr_t *attr = get_ia32_attr_const(node); - return attr->data.am_support; -} - -ia32_am_arity_t get_ia32_am_arity(const ir_node *node) { +ia32_am_type_t get_ia32_am_support(const ir_node *node) +{ const ia32_attr_t *attr = get_ia32_attr_const(node); return attr->data.am_arity; } @@ -495,15 +477,10 @@ ia32_am_arity_t get_ia32_am_arity(const ir_node *node) { /** * Sets the supported address mode of an ia32 node */ -void set_ia32_am_support(ir_node *node, ia32_am_type_t am_tp, - ia32_am_arity_t arity) { - ia32_attr_t *attr = get_ia32_attr(node); - attr->data.am_support = am_tp; - attr->data.am_arity = arity; - - assert((am_tp == ia32_am_None && arity == ia32_am_arity_none) || - (am_tp != ia32_am_None && - ((arity == ia32_am_unary) || (arity == ia32_am_binary) || (arity == ia32_am_ternary)))); +void set_ia32_am_support(ir_node *node, ia32_am_type_t arity) +{ + ia32_attr_t *attr = get_ia32_attr(node); + attr->data.am_arity = arity; } /** @@ -660,6 +637,36 @@ int is_ia32_need_stackent(const ir_node *node) { return attr->data.need_stackent; } +void set_ia32_is_reload(ir_node *node) { + ia32_attr_t *attr = get_ia32_attr(node); + attr->data.is_reload = 1; +} + +int is_ia32_is_reload(const ir_node *node) { + const ia32_attr_t *attr = get_ia32_attr_const(node); + return attr->data.is_reload; +} + +void set_ia32_is_spill(ir_node *node) { + ia32_attr_t *attr = get_ia32_attr(node); + attr->data.is_spill = 1; +} + +int is_ia32_is_spill(const ir_node *node) { + const ia32_attr_t *attr = get_ia32_attr_const(node); + return attr->data.is_spill; +} + +void set_ia32_is_remat(ir_node *node) { + ia32_attr_t *attr = get_ia32_attr(node); + attr->data.is_remat = 1; +} + +int is_ia32_is_remat(const ir_node *node) { + const ia32_attr_t *attr = get_ia32_attr_const(node); + return attr->data.is_remat; +} + /** * Gets the mode of the stored/loaded value (only set for Store/Load) */