Commit 89b7c471 by Richard Kenner

(alpha_emit_conditional_move): Emit correct code when incoming

comparison code is NE.

From-SVN: r12364
parent d7f21d63
...@@ -1035,6 +1035,7 @@ alpha_emit_conditional_move (cmp, mode) ...@@ -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) ...@@ -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) ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment