From: Jeff Law Date: Mon, 6 Mar 1995 07:29:33 +0000 (-0700) Subject: * pa.md (movsicc): New expander. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=014a45652d320277892a26549cbe3117c26a431f;p=gcc.git * pa.md (movsicc): New expander. From-SVN: r9124 --- 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 ""