(alpha_emit_conditional_move): Emit correct code when incoming
comparison code is NE. From-SVN: r12364
This commit is contained in:
parent
d7f21d631f
commit
89b7c471e2
@ -1035,6 +1035,7 @@ alpha_emit_conditional_move (cmp, mode)
|
|||||||
enum machine_mode mode;
|
enum machine_mode mode;
|
||||||
{
|
{
|
||||||
enum rtx_code code = GET_CODE (cmp);
|
enum rtx_code code = GET_CODE (cmp);
|
||||||
|
enum rtx_code cmov_code = NE;
|
||||||
rtx op0 = alpha_compare_op0;
|
rtx op0 = alpha_compare_op0;
|
||||||
rtx op1 = alpha_compare_op1;
|
rtx op1 = alpha_compare_op1;
|
||||||
enum machine_mode cmp_mode
|
enum machine_mode cmp_mode
|
||||||
@ -1065,6 +1066,7 @@ alpha_emit_conditional_move (cmp, mode)
|
|||||||
case NE:
|
case NE:
|
||||||
/* This must be reversed. */
|
/* This must be reversed. */
|
||||||
code = reverse_condition (code);
|
code = reverse_condition (code);
|
||||||
|
cmov_code = EQ;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GE: case GT: case GEU: case GTU:
|
case GE: case GT: case GEU: case GTU:
|
||||||
@ -1081,8 +1083,7 @@ alpha_emit_conditional_move (cmp, mode)
|
|||||||
|
|
||||||
tem = gen_reg_rtx (cmp_op_mode);
|
tem = gen_reg_rtx (cmp_op_mode);
|
||||||
emit_move_insn (tem, gen_rtx (code, cmp_op_mode, op0, op1));
|
emit_move_insn (tem, gen_rtx (code, cmp_op_mode, op0, op1));
|
||||||
return gen_rtx (code == NE ? EQ : NE, VOIDmode, tem,
|
return gen_rtx (cmov_code, VOIDmode, tem, CONST0_RTX (cmp_op_mode));
|
||||||
CONST0_RTX (cmp_op_mode));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Adjust the cost of a scheduling dependency. Return the new cost of
|
/* Adjust the cost of a scheduling dependency. Return the new cost of
|
||||||
|
Loading…
Reference in New Issue
Block a user