]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/7370 (ICE in fixup_var_refs_1 on s390x)
authorUlrich Weigand <uweigand@de.ibm.com>
Tue, 15 Oct 2002 18:34:36 +0000 (18:34 +0000)
committerUlrich Weigand <uweigand@gcc.gnu.org>
Tue, 15 Oct 2002 18:34:36 +0000 (18:34 +0000)
PR target/7370
* config/s390/s390.md ("*addsi3_inv"): New pattern.

PR target/8232
* config/s390/s390.md ("cmpstrsi"): Convert length operand
from SImode to Pmode.

From-SVN: r58171

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

index 375c055f0a3b06bef921a76a15f7b6aa0d34bc5f..9873a34c6a5b1b3b28b7ab30d9c0082517ff97e5 100644 (file)
@@ -1,3 +1,12 @@
+2002-10-15  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       PR target/7370
+       * config/s390/s390.md ("*addsi3_inv"): New pattern.
+
+       PR target/8232
+       * config/s390/s390.md ("cmpstrsi"): Convert length operand
+       from SImode to Pmode.
+
 2002-10-15  Janis Johnson  <janis187@us.ibm.com>
 
        * doc/install.texi: Formatting changes for conformance to HTML 4.01.
index 366a5b30c773c5957a68d42a093f4f2e9c9ed4de..fce55208df4cdafd1b5879aaacca95f3a956c89b 100644 (file)
          reg1 = gen_reg_rtx (DImode);
         }  
 
-      if (! CONSTANT_P (len))
-          len = force_reg (Pmode, len);
-
       /* Load up the address+length pairs.  */
       emit_move_insn (gen_highpart (Pmode, reg0), addr0); 
-      emit_move_insn (gen_lowpart (Pmode, reg0), len);
+      convert_move (gen_lowpart (Pmode, reg0), len, 1);
 
       emit_move_insn (gen_highpart (Pmode, reg1), addr1);
-      emit_move_insn (gen_lowpart (Pmode, reg1), len);
+      convert_move (gen_lowpart (Pmode, reg1), len, 1);
 
       /* Compare! */
       if (TARGET_64BIT) 
   [(set_attr "op_type"  "RR,RI,RX")
    (set_attr "atype"    "reg,reg,mem")])
 
+(define_insn "*addsi3_inv"
+  [(set (match_operand:SI 0 "register_operand" "=d,d,d")
+        (plus:SI (match_operand:SI 1 "general_operand" "%d,K,m")
+                 (match_operand:SI 2 "register_operand" "0,0,0")))
+   (clobber (reg:CC 33))]
+  ""
+  "@
+   ar\\t%0,%1
+   ahi\\t%0,%h1
+   a\\t%0,%1"
+  [(set_attr "op_type"  "RR,RI,RX")
+   (set_attr "atype"    "reg,reg,mem")])
+
 (define_insn "*la_31"
   [(set (match_operand:SI 0 "register_operand" "=d")
         (match_operand:QI 1 "address_operand" "p"))]