From b10ed55576e7a0e0f861eb5e8b8e34e1d194cb13 Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Mon, 15 May 1995 01:32:32 +0000 Subject: [PATCH] (movsicc, case NE): Don't generate unrecognizable insn. (movdicc, case NE): Likewise. From-SVN: r9685 --- gcc/config/alpha/alpha.md | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md index 4f46a13..aa745ab 100644 --- a/gcc/config/alpha/alpha.md +++ b/gcc/config/alpha/alpha.md @@ -2234,13 +2234,18 @@ " { rtx op0,op1; - enum rtx_code code = GET_CODE (operands[1]); + enum rtx_code code = GET_CODE (operands[1]), code2 = NE; if (alpha_compare_fp_p) FAIL; switch (code) { - case EQ: case NE: case LE: case LT: + case EQ: case LE: case LT: + op0 = alpha_compare_op0; + op1 = alpha_compare_op1; + break; + case NE: + code = code2 = EQ; op0 = alpha_compare_op0; op1 = alpha_compare_op1; break; @@ -2259,7 +2264,7 @@ } operands[1] = gen_rtx (code, DImode, op0, op1); operands[4] = gen_reg_rtx (DImode); - operands[5] = gen_rtx (NE, VOIDmode, operands[4], CONST0_RTX (DImode)); + operands[5] = gen_rtx (code2, VOIDmode, operands[4], CONST0_RTX (DImode)); }") (define_expand "movdicc" @@ -2272,13 +2277,18 @@ " { rtx op0,op1; - enum rtx_code code = GET_CODE (operands[1]); + enum rtx_code code = GET_CODE (operands[1]), code2 = NE; if (alpha_compare_fp_p) FAIL; switch (code) { - case EQ: case NE: case LE: case LT: + case EQ: case LE: case LT: + op0 = alpha_compare_op0; + op1 = alpha_compare_op1; + break; + case NE: + code = code2 = EQ; op0 = alpha_compare_op0; op1 = alpha_compare_op1; break; @@ -2297,7 +2307,7 @@ } operands[1] = gen_rtx (code, DImode, op0, op1); operands[4] = gen_reg_rtx (DImode); - operands[5] = gen_rtx (NE, VOIDmode, operands[4], CONST0_RTX (DImode)); + operands[5] = gen_rtx (code2, VOIDmode, operands[4], CONST0_RTX (DImode)); }") (define_expand "movsfcc" -- 2.7.4