]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/11992 (Wrong built-in code for memcmp with length 1<<24 only (1<<24...
authorUlrich Weigand <uweigand@de.ibm.com>
Wed, 17 Dec 2003 21:54:12 +0000 (21:54 +0000)
committerUlrich Weigand <uweigand@gcc.gnu.org>
Wed, 17 Dec 2003 21:54:12 +0000 (21:54 +0000)
PR target/11992
* config/s390/s390.md ("*cmpmem_long_64"): Use CLCLE instruction
instead of CLCL.
("*cmpmem_long_31"): Likewise.

From-SVN: r74753

gcc/ChangeLog
gcc/config/s390/s390.md

index 78f5984796fa3a8483d7fb4b7a7260c9f26602e3..135438cd5895611e54ecfecbbadc6e1450007041 100644 (file)
@@ -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-16  Zack Weinberg  <zack@codesourcery.com>
 
        Backport the following patches from mainline.
index 866150c76c0363f06b9e01e4d9bef309bdbd1800..a0374d453ad8707090db96ce034a07145e44e7a9 100644 (file)
    (use (match_dup 2))
    (use (match_dup 3))]
   "TARGET_64BIT"
-  "clcl\\t%0,%1"
-  [(set_attr "op_type" "RR")
+  "clcle\\t%0,%1,0\;jo\\t.-4"
+  [(set_attr "op_type" "NN")
    (set_attr "atype"   "mem")
-   (set_attr "type"    "vs")])
+   (set_attr "type"    "vs")
+   (set_attr "length"  "8")])
 
 (define_insn "cmpstr_long_31"
   [(clobber (match_operand:DI 0 "register_operand" "=d"))
    (use (match_dup 2))
    (use (match_dup 3))]
   "!TARGET_64BIT"
-  "clcl\\t%0,%1"
-  [(set_attr "op_type" "RR")
+  "clcle\\t%0,%1,0\;jo\\t.-4"
+  [(set_attr "op_type" "NN")
    (set_attr "atype"   "mem")
-   (set_attr "type"    "vs")])
+   (set_attr "type"    "vs")
+   (set_attr "length"  "8")])
 
 ; Convert condition code to integer in range (-1, 0, 1)