From: bernds Date: Thu, 15 Apr 2010 08:57:27 +0000 (+0000) Subject: PR target/43742 X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=563558451d40c83ada35186e3b2ff62f7e4297f2 PR target/43742 * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use matching constraints to ensure inputs match the output. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158367 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a49e6b1122a..2f224387c7e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-04-15 Bernd Schmidt + + PR target/43742 + * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use + matching constraints to ensure inputs match the output. + 2010-04-15 Kaz Kojima PR target/43742 diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index aa0b449833d..485c038775e 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -7050,22 +7050,21 @@ label: (define_insn_and_split "doloop_end_split" [(set (pc) - (if_then_else (ne:SI (match_operand:SI 0 "arith_reg_dest" "") + (if_then_else (ne:SI (match_operand:SI 2 "arith_reg_dest" "0") (const_int 1)) (label_ref (match_operand 1 "" "")) (pc))) - (set (match_dup 0) - (plus (match_dup 0) (const_int -1))) + (set (match_operand:SI 0 "arith_reg_dest" "=r") + (plus (match_dup 2) (const_int -1))) (clobber (reg:SI T_REG))] "TARGET_SH2" "#" "" [(parallel [(set (reg:SI T_REG) - (eq:SI (match_operand:SI 0 "arith_reg_dest" "+r") - (const_int 1))) - (set (match_dup 0) (plus:SI (match_dup 0) (const_int -1)))]) + (eq:SI (match_dup 2) (const_int 1))) + (set (match_dup 0) (plus:SI (match_dup 2) (const_int -1)))]) (set (pc) (if_then_else (eq (reg:SI T_REG) (const_int 0)) - (label_ref (match_operand 1 "" "")) + (label_ref (match_dup 1)) (pc)))] "" [(set_attr "type" "cbranch")]) @@ -8308,8 +8307,9 @@ label: (define_insn "dect" [(set (reg:SI T_REG) - (eq:SI (match_operand:SI 0 "arith_reg_dest" "+r") (const_int 1))) - (set (match_dup 0) (plus:SI (match_dup 0) (const_int -1)))] + (eq:SI (match_operand:SI 1 "arith_reg_dest" "0") (const_int 1))) + (set (match_operand:SI 0 "arith_reg_dest" "=r") + (plus:SI (match_dup 1) (const_int -1)))] "TARGET_SH2" "dt %0" [(set_attr "type" "arith")])