From: Hans-Peter Nilsson Date: Fri, 20 Feb 2004 04:53:16 +0000 (+0000) Subject: cris.md ("*andsi_movu"): Correct parentheses in predicate. X-Git-Tag: releases/gcc-4.0.0~9977 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f38a62ffc53e07312eaa9148e05029c39e0df6a8;p=thirdparty%2Fgcc.git cris.md ("*andsi_movu"): Correct parentheses in predicate. * config/cris/cris.md ("*andsi_movu"): Correct parentheses in predicate. ("*andsi_clear"): Tweak constraints to not match postincrement. Adjust the predicate to exclude a volatile memory reference. ("*andhi_clear"): Ditto. Rename from "*andhi_clear_signed". ("*andhi_clear_unsigned"): Remove, non-matching pattern. From-SVN: r78147 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ce6b42892a19..cdefdbae93bb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2004-02-20 Hans-Peter Nilsson + + * config/cris/cris.md ("*andsi_movu"): Correct parentheses in + predicate. + ("*andsi_clear"): Tweak constraints to not match postincrement. + Adjust the predicate to exclude a volatile memory reference. + ("*andhi_clear"): Ditto. Rename from "*andhi_clear_signed". + ("*andhi_clear_unsigned"): Remove, non-matching pattern. + 2004-02-19 Matt Kraai * move-if-change: Remove. diff --git a/gcc/config/cris/cris.md b/gcc/config/cris/cris.md index a3b7de5bb782..38aa556fe07f 100644 --- a/gcc/config/cris/cris.md +++ b/gcc/config/cris/cris.md @@ -2685,16 +2685,17 @@ [(set (match_operand:SI 0 "register_operand" "=r,r,r") (and:SI (match_operand:SI 1 "nonimmediate_operand" "%r,Q,To") (match_operand:SI 2 "const_int_operand" "n,n,n")))] - "INTVAL (operands[2]) == 255 || INTVAL (operands[2]) == 65535 + "(INTVAL (operands[2]) == 255 || INTVAL (operands[2]) == 65535) && (GET_CODE (operands[1]) != MEM || ! MEM_VOLATILE_P (operands[1]))" "movu.%z2 %1,%0" [(set_attr "slottable" "yes,yes,no")]) (define_insn "*andsi_clear" - [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,Q>,Q>,m,m") + [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,Q,Q,To,To") (and:SI (match_operand:SI 1 "nonimmediate_operand" "%0,0,0,0,0,0") (match_operand:SI 2 "const_int_operand" "P,n,P,n,P,n")))] - "INTVAL (operands[2]) == -65536 || INTVAL (operands[2]) == -256" + "(INTVAL (operands[2]) == -65536 || INTVAL (operands[2]) == -256) + && (GET_CODE (operands[0]) != MEM || ! MEM_VOLATILE_P (operands[0]))" "@ cLear.b %0 cLear.w %0 @@ -2778,21 +2779,11 @@ "mOvu.b %1,%0" [(set_attr "slottable" "yes,yes,no")]) -(define_insn "*andhi_clear_signed" - [(set (match_operand:HI 0 "nonimmediate_operand" "=r,Q>,m") +(define_insn "*andhi_clear" + [(set (match_operand:HI 0 "nonimmediate_operand" "=r,Q,To") (and:HI (match_operand:HI 1 "nonimmediate_operand" "0,0,0") (const_int -256)))] - "" - "cLear.b %0" - [(set_attr "slottable" "yes,yes,no") - (set_attr "cc" "none")]) - -;; FIXME: Either this or the pattern above should be redundant. -(define_insn "*andhi_clear_unsigned" - [(set (match_operand:HI 0 "nonimmediate_operand" "=r,Q>,m") - (and:HI (match_operand:HI 1 "nonimmediate_operand" "0,0,0") - (const_int 65280)))] - "" + "GET_CODE (operands[0]) != MEM || ! MEM_VOLATILE_P (operands[0])" "cLear.b %0" [(set_attr "slottable" "yes,yes,no") (set_attr "cc" "none")])