diff options
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/cris/cris.md | 23 |
2 files changed, 16 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ce6b428..cdefdba 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2004-02-20 Hans-Peter Nilsson <hp@axis.com> + + * 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 <kraai@alumni.cmu.edu> * move-if-change: Remove. diff --git a/gcc/config/cris/cris.md b/gcc/config/cris/cris.md index a3b7de5..38aa556 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")]) |