X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbearch.c;h=d27b4033b99be95b360e30f103f94722ec3a34c5;hb=2cdc5ab3bfbf6e321af7e471a7980167c869bcab;hp=30d02c1ed938cbaf02210ec5c6d15bb9454ebc76;hpb=0c9df6b69d41de3280dcfb9470cb523e62d7e395;p=libfirm diff --git a/ir/be/bearch.c b/ir/be/bearch.c index 30d02c1ed..d27b4033b 100644 --- a/ir/be/bearch.c +++ b/ir/be/bearch.c @@ -208,7 +208,7 @@ int arch_get_allocatable_regs(const arch_env_t *env, const ir_node *irn, int pos void arch_put_non_ignore_regs(const arch_env_t *env, const arch_register_class_t *cls, bitset_t *bs) { - int i; + unsigned i; (void) env; for(i = 0; i < cls->n_regs; ++i) { @@ -220,7 +220,7 @@ void arch_put_non_ignore_regs(const arch_env_t *env, int arch_count_non_ignore_regs(const arch_env_t *env, const arch_register_class_t *cls) { - int i; + unsigned i; int result = 0; (void) env; @@ -333,9 +333,14 @@ extern char *arch_register_req_format(char *buf, size_t len, } if(arch_register_req_is(req, should_be_same)) { - const ir_node *same = get_irn_n(skip_Proj_const(node), req->other_same); + const ir_node *same = get_irn_n(skip_Proj_const(node), req->other_same[0]); ir_snprintf(tmp, sizeof(tmp), " same to: %+F", same); strncat(buf, tmp, len); + if (req->other_same[1] != -1) { + const ir_node *same2 = get_irn_n(skip_Proj_const(node), req->other_same[1]); + ir_snprintf(tmp, sizeof(tmp), "or %+F", same2); + strncat(buf, tmp, len); + } } if(arch_register_req_is(req, should_be_different)) { @@ -351,7 +356,7 @@ static const arch_register_req_t no_requirement = { arch_register_req_type_none, NULL, NULL, - -1, + { -1, -1 }, -1 }; const arch_register_req_t *arch_no_register_req = &no_requirement;