aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/cris
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2004-02-20 04:53:16 +0000
committerHans-Peter Nilsson <hp@gcc.gnu.org>2004-02-20 04:53:16 +0000
commitf38a62ffc53e07312eaa9148e05029c39e0df6a8 (patch)
treefd3ec58dd1b5a043e2e8a05299030939b1f1ceee /gcc/config/cris
parent88e3a2a3983942615023ee9e1c8739edc0c16e7c (diff)
downloadgcc-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.md23
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")])