diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2003-12-17 21:51:57 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2003-12-17 21:51:57 +0000 |
commit | 287ff1982c1e70f66d91ad56615a8694e9c09fa9 (patch) | |
tree | a25bcc9c5488299ac0b841d7b27550483f26d5f5 /gcc | |
parent | c856f5362741637da6fccdfc08f51a2890d5e39a (diff) | |
download | gcc-287ff1982c1e70f66d91ad56615a8694e9c09fa9.zip gcc-287ff1982c1e70f66d91ad56615a8694e9c09fa9.tar.gz gcc-287ff1982c1e70f66d91ad56615a8694e9c09fa9.tar.bz2 |
re PR target/11992 (Wrong built-in code for memcmp with length 1<<24 only (1<<24)-1 possible for CLCL-Instruction)
PR target/11992
* config/s390/s390.md ("*cmpmem_long_64"): Use CLCLE instruction
instead of CLCL.
("*cmpmem_long_31"): Likewise.
From-SVN: r74752
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/s390/s390.md | 14 |
2 files changed, 15 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fb94d1f..34aa467 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2003-12-17 Ulrich Weigand <uweigand@de.ibm.com> + + PR target/11992 + * config/s390/s390.md ("*cmpmem_long_64"): Use CLCLE instruction + instead of CLCL. + ("*cmpmem_long_31"): Likewise. + 2003-12-17 Vladimir Makarov <vmakarov@redhat.com> * config/ia64/ia64.c: Add more comments about insn bundling. diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md index 3f6f6b3..4ebaae5 100644 --- a/gcc/config/s390/s390.md +++ b/gcc/config/s390/s390.md @@ -2080,9 +2080,10 @@ (use (match_dup 2)) (use (match_dup 3))] "TARGET_64BIT" - "clcl\t%0,%1" - [(set_attr "op_type" "RR") - (set_attr "type" "vs")]) + "clcle\t%0,%1,0\;jo\t.-4" + [(set_attr "op_type" "NN") + (set_attr "type" "vs") + (set_attr "length" "8")]) (define_insn "*cmpmem_long_31" [(clobber (match_operand:DI 0 "register_operand" "=d")) @@ -2093,9 +2094,10 @@ (use (match_dup 2)) (use (match_dup 3))] "!TARGET_64BIT" - "clcl\t%0,%1" - [(set_attr "op_type" "RR") - (set_attr "type" "vs")]) + "clcle\t%0,%1,0\;jo\t.-4" + [(set_attr "op_type" "NN") + (set_attr "type" "vs") + (set_attr "length" "8")]) ; Convert condition code to integer in range (-1, 0, 1) |