record_reg_classes): When an alternative requires a match...

record_reg_classes): When an alternative requires a match, but we do
it with a copy into a register, that alternative wins.

From-SVN: r3862
This commit is contained in:
Richard Kenner 1993-03-23 20:18:04 -05:00
parent 6d44728adf
commit 77e67eac60

View File

@ -957,18 +957,12 @@ record_reg_classes (n_alts, n_ops, ops, modes, constraints, insn)
if (rtx_equal_p (ops[j], op))
;
/* If we can't put the other operand into a register, this
alternative can't be used. */
/* If we can put the other operand into a register, add to
the cost of this alternative the cost to copy this
operand to the register used for the other operand. */
else if (classes[j] == NO_REGS)
alt_fail = 1;
/* Otherwise, add to the cost of this alternative the cost
to copy this operand to the register used for the other
operand. */
else
alt_cost += copy_cost (op, mode, classes[j], 1);
if (classes[j] != NO_REGS)
alt_cost += copy_cost (op, mode, classes[j], 1), win = 1;
}
else if (GET_CODE (ops[j]) != REG
|| REGNO (ops[j]) < FIRST_PSEUDO_REGISTER)