- arch_get_register_req(raenv->aenv, &req, irn, pos);
-
- if (arch_register_req_is(&req, should_be_same) && arch_irn_is(raenv->aenv, req.other_same, ignore)) {
- vi2 = be_get_var_info(req.other_same);
-
- fprintf(raenv->f, "(%d, %d, %d)\n", vi1->var_nr, vi2->var_nr, get_affinity_weight(irn));
+ req = arch_get_register_req(raenv->aenv, irn, pos);
+ if (arch_register_req_is(req, should_be_same)) {
+ const int* i;
+ for (i = req->other_same; i != ENDOF(req->other_same); ++i) {
+ ir_node *other;
+
+ if (*i == -1) break;
+
+ other = get_irn_n(skip_Proj(irn), *i);
+ if(arch_irn_is(raenv->aenv, other, ignore)) {
+ vi2 = be_get_var_info(other);
+ fprintf(raenv->f, "(%d, %d, %d)\n", vi1->var_nr, vi2->var_nr, get_affinity_weight(irn));
+ }
+ }