It is not sensible to query any other than the first output register requirement...
authorChristoph Mallon <christoph.mallon@gmx.de>
Wed, 15 Oct 2008 09:50:20 +0000 (09:50 +0000)
committerChristoph Mallon <christoph.mallon@gmx.de>
Wed, 15 Oct 2008 09:50:20 +0000 (09:50 +0000)
[r22895]

ir/be/benode.c
ir/be/ia32/ia32_transform.c

index 75bd5f0..37b0d78 100644 (file)
@@ -1106,6 +1106,7 @@ be_node_get_irn_reg_req(const ir_node *irn, int pos)
                if (get_irn_mode(irn) == mode_T)
                        return arch_no_register_req;
 
+               assert(pos == -1);
                out_pos = redir_proj((const ir_node **)&irn);
                assert(is_be_node(irn));
                return get_out_reg_req(irn, out_pos);
index ca77451..de9c451 100644 (file)
@@ -4380,7 +4380,7 @@ static ir_node *gen_Proj_be_Call(ir_node *node)
        } else if (proj == pn_be_Call_M_regular) {
                proj = pn_ia32_Call_M;
        } else {
-               arch_register_req_t const *const req    = arch_get_register_req(node, BE_OUT_POS(proj));
+               arch_register_req_t const *const req    = arch_get_register_req(node, -1);
                int                        const n_outs = get_ia32_n_res(new_call);
                int                              i;