diff options
author | hp <hp@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-19 11:28:00 +0000 |
---|---|---|
committer | hp <hp@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-19 11:28:00 +0000 |
commit | 62a3b66746dd371737fab1d17b9b968b03d3eca5 (patch) | |
tree | c50cca739f132fb501e47bf21b98edcda1acacb4 /gcc/config/cris | |
parent | c0634fda7e749aa2267302ac8c75d32c83b8c146 (diff) | |
download | gcc-62a3b66746dd371737fab1d17b9b968b03d3eca5.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78095 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/cris')
-rw-r--r-- | gcc/config/cris/cris.md | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/config/cris/cris.md b/gcc/config/cris/cris.md index ea41aaf539e..a3b7de5bb78 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")]) |