From 014a45652d320277892a26549cbe3117c26a431f Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Mon, 6 Mar 1995 00:29:33 -0700 Subject: [PATCH] * pa.md (movsicc): New expander. From-SVN: r9124 --- gcc/config/pa/pa.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index b7ae3ad40f1..b01a504e3c6 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -762,6 +762,29 @@ (set_attr "length" "8,8")]) ;;; Experimental conditional move patterns +(define_expand "movsicc" + [(set (match_operand:SI 0 "register_operand" "") + (if_then_else:SI + (match_operator 1 "comparison_operator" + [(match_operand:SI 4 "register_operand" "") + (match_operand:SI 5 "arith11_operand" "")]) + (match_operand:SI 2 "reg_or_cint_move_operand" "") + (match_operand:SI 3 "reg_or_cint_move_operand" "")))] + "" + " +{ + enum rtx_code code = GET_CODE (operands[1]); + + if (hppa_branch_type != CMP_SI) + FAIL; + + /* operands[1] is currently the result of compare_from_rtx. We want to + emit a compare of the original operands. */ + operands[1] = gen_rtx (code, SImode, hppa_compare_op0, hppa_compare_op1); + operands[4] = hppa_compare_op0; + operands[5] = hppa_compare_op1; +}") + ; We need the first constraint alternative in order to avoid ; earlyclobbers on all other alternatives. (define_insn "" -- 2.30.2