aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2004-02-19 11:28:00 +0000
committerHans-Peter Nilsson <hp@gcc.gnu.org>2004-02-19 11:28:00 +0000
commit428eae942cbe6b1eb416a576c326b052a1a774bd (patch)
treec50cca739f132fb501e47bf21b98edcda1acacb4
parenta5ee8d80039714dccb0ec9881a6840d8f7d948ff (diff)
downloadgcc-428eae942cbe6b1eb416a576c326b052a1a774bd.zip
gcc-428eae942cbe6b1eb416a576c326b052a1a774bd.tar.gz
gcc-428eae942cbe6b1eb416a576c326b052a1a774bd.tar.bz2
re PR target/14209 (Bug in cris.md, shrinking access size of postincrement.)
PR target/14209 * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak constraints to not match postincrement. Adjust the predicate to exclude a volatile memory reference. From-SVN: r78095
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/cris/cris.md9
2 files changed, 12 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a841cb7..90bf8d5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2004-02-19 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/14209
+ * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
+ constraints to not match postincrement. Adjust the predicate to
+ exclude a volatile memory reference.
+
2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
* config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
diff --git a/gcc/config/cris/cris.md b/gcc/config/cris/cris.md
index ea41aaf..a3b7de5 100644
--- a/gcc/config/cris/cris.md
+++ b/gcc/config/cris/cris.md
@@ -2683,9 +2683,10 @@
(define_insn "*andsi_movu"
[(set (match_operand:SI 0 "register_operand" "=r,r,r")
- (and:SI (match_operand:SI 1 "nonimmediate_operand" "%r,Q>,m")
+ (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")])
@@ -2771,9 +2772,9 @@
(define_insn "*andhi_movu"
[(set (match_operand:HI 0 "register_operand" "=r,r,r")
- (and:HI (match_operand:HI 1 "nonimmediate_operand" "r,Q>,m")
+ (and:HI (match_operand:HI 1 "nonimmediate_operand" "r,Q,To")
(const_int 255)))]
- ""
+ "GET_CODE (operands[1]) != MEM || ! MEM_VOLATILE_P (operands[1])"
"mOvu.b %1,%0"
[(set_attr "slottable" "yes,yes,no")])