aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-06-28 15:05:55 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1996-06-28 15:05:55 -0400
commit89b7c471e2ddf10bd5a00cc084d46f8bfac91f68 (patch)
tree2a23bfd59b92d26dd1780db742ed64a21796c0f5
parentd7f21d631f9250504b35e3873598ca5c34dd3a76 (diff)
downloadgcc-89b7c471e2ddf10bd5a00cc084d46f8bfac91f68.zip
gcc-89b7c471e2ddf10bd5a00cc084d46f8bfac91f68.tar.gz
gcc-89b7c471e2ddf10bd5a00cc084d46f8bfac91f68.tar.bz2
(alpha_emit_conditional_move): Emit correct code when incoming
comparison code is NE. From-SVN: r12364
-rw-r--r--gcc/config/alpha/alpha.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 71989de..b3befe1 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -1035,6 +1035,7 @@ alpha_emit_conditional_move (cmp, mode)
enum machine_mode mode;
{
enum rtx_code code = GET_CODE (cmp);
+ enum rtx_code cmov_code = NE;
rtx op0 = alpha_compare_op0;
rtx op1 = alpha_compare_op1;
enum machine_mode cmp_mode
@@ -1065,6 +1066,7 @@ alpha_emit_conditional_move (cmp, mode)
case NE:
/* This must be reversed. */
code = reverse_condition (code);
+ cmov_code = EQ;
break;
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);
emit_move_insn (tem, gen_rtx (code, cmp_op_mode, op0, op1));
- return gen_rtx (code == NE ? EQ : NE, VOIDmode, tem,
- CONST0_RTX (cmp_op_mode));
+ return gen_rtx (cmov_code, VOIDmode, tem, CONST0_RTX (cmp_op_mode));
}
/* Adjust the cost of a scheduling dependency. Return the new cost of