X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fmips%2Fmips_new_nodes.c;h=ad8ce10bc0d85d49f879d1bac46f41d27885f87f;hb=f37b4dbb329604edd67ff5877161cb5322e93020;hp=029f6b2366b996dfa93b1ae8186cb9cd522e6112;hpb=f7dfa0917a2f0469129bbf9b4c0884d37810abcd;p=libfirm diff --git a/ir/be/mips/mips_new_nodes.c b/ir/be/mips/mips_new_nodes.c index 029f6b236..ad8ce10bc 100644 --- a/ir/be/mips/mips_new_nodes.c +++ b/ir/be/mips/mips_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. * @@ -94,11 +94,27 @@ static void dump_reg_req(FILE *F, ir_node *n, const arch_register_req_t **reqs, } if (reqs[i]->type & arch_register_req_type_should_be_same) { - ir_fprintf(F, " same as %+F", get_irn_n(n, 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", i); + } + } } if (reqs[i]->type & arch_register_req_type_should_be_different) { - ir_fprintf(F, " different from %+F", get_irn_n(n, 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", i); + } + } } fprintf(F, "\n"); @@ -391,13 +407,12 @@ static void init_mips_attributes(ir_node *node, arch_irn_flags_t 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); mips_attr_t *attr = get_mips_attr(node); (void) execution_units; - (void) latency; attr->flags = flags; attr->out_req = out_reqs;