diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2004-02-20 04:53:16 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@gcc.gnu.org> | 2004-02-20 04:53:16 +0000 |
commit | f38a62ffc53e07312eaa9148e05029c39e0df6a8 (patch) | |
tree | fd3ec58dd1b5a043e2e8a05299030939b1f1ceee /gcc/config/cris | |
parent | 88e3a2a3983942615023ee9e1c8739edc0c16e7c (diff) | |
download | gcc-f38a62ffc53e07312eaa9148e05029c39e0df6a8.zip gcc-f38a62ffc53e07312eaa9148e05029c39e0df6a8.tar.gz gcc-f38a62ffc53e07312eaa9148e05029c39e0df6a8.tar.bz2 |
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
Diffstat (limited to 'gcc/config/cris')
-rw-r--r-- | gcc/config/cris/cris.md | 23 |
1 files changed, 7 insertions, 16 deletions
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")]) |