X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Farm%2Farm_new_nodes.c;h=e90b0ccb9fb18b2afdc31ad6af48fa68e1566482;hb=c2e97b05d8d64ff5efdd4b4233f7012461f753ba;hp=88c7abe8b267bae812b865d22ea6adcf906ffde3;hpb=2e16fb5a300446e1b4cc0d9daf7e271adde88922;p=libfirm diff --git a/ir/be/arm/arm_new_nodes.c b/ir/be/arm/arm_new_nodes.c index 88c7abe8b..e90b0ccb9 100644 --- a/ir/be/arm/arm_new_nodes.c +++ b/ir/be/arm/arm_new_nodes.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -100,11 +100,27 @@ static void dump_reg_req(FILE *F, const ir_node *node, } if (reqs[i]->type & arch_register_req_type_should_be_same) { - ir_fprintf(F, " same as %+F", get_irn_n(node, reqs[i]->other_same)); + const unsigned other = reqs[i]->other_same; + int i; + + ir_fprintf(F, " same as"); + for (i = 0; 1U << i <= other; ++i) { + if (other & (1U << i)) { + ir_fprintf(F, " %+F", get_irn_n(node, i)); + } + } } if (reqs[i]->type & arch_register_req_type_should_be_different) { - ir_fprintf(F, " different from %+F", get_irn_n(node, reqs[i]->other_different)); + const unsigned other = reqs[i]->other_different; + int i; + + ir_fprintf(F, " different from"); + for (i = 0; 1U << i <= other; ++i) { + if (other & (1U << i)) { + ir_fprintf(F, " %+F", get_irn_n(node, i)); + } + } } fprintf(F, "\n"); @@ -529,16 +545,15 @@ arm_shift_modifier get_arm_shift_modifier(const ir_node *node) { } /* Set the ARM machine node attributes to default values. */ -void init_arm_attributes(ir_node *node, int flags, +static void init_arm_attributes(ir_node *node, int flags, const arch_register_req_t ** in_reqs, const arch_register_req_t ** out_reqs, const be_execution_unit_t ***execution_units, - int n_res, unsigned latency) { + int n_res) { ir_graph *irg = get_irn_irg(node); struct obstack *obst = get_irg_obstack(irg); arm_attr_t *attr = get_arm_attr(node); (void) execution_units; - (void) latency; attr->in_req = in_reqs; attr->out_req = out_reqs;