]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
s390.md ("load_multiple", [...]): Allow only if reload_completed.
authorUlrich Weigand <uweigand@de.ibm.com>
Sun, 7 Mar 2004 02:48:04 +0000 (02:48 +0000)
committerUlrich Weigand <uweigand@gcc.gnu.org>
Sun, 7 Mar 2004 02:48:04 +0000 (02:48 +0000)
ChangeLog:

* config/s390/s390.md ("load_multiple", "*load_multiple_di",
"*load_multiple_si"): Allow only if reload_completed.
("store_multiple", "*store_multiple_di", "*store_multiple_si"):
Likewise.

testsuite/ChangeLog:

* gcc.dg/20040306-1.c: New test.

From-SVN: r79049

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

index c1dbd772ce4e27dfca32782a3cff0d409a68e253..42f11df104aeda943e62f59bd53a442b8901e7a8 100644 (file)
@@ -1,3 +1,10 @@
+2004-03-05  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.md ("load_multiple", "*load_multiple_di",
+       "*load_multiple_si"): Allow only if reload_completed.
+       ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
+       Likewise.
+
 2004-03-05  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * config/s390/s390.c (s390_expand_movstr): Clobber double-word
index a0374d453ad8707090db96ce034a07145e44e7a9..0ad76dc00d68a44c10c7921eceb966575be08ff8 100644 (file)
 ;
 ; load_multiple pattern(s).
 ;
+; ??? Due to reload problems with replacing registers inside match_parallel
+; we currently support load_multiple/store_multiple only after reload.
+;
+
 
 (define_expand "load_multiple"
   [(match_par_dup 3 [(set (match_operand 0 "" "")
                          (match_operand 1 "" ""))
                     (use (match_operand 2 "" ""))])]
-  ""
+  "reload_completed"
   "
 {
   int regno;
   [(match_parallel 0 "load_multiple_operation"
                   [(set (match_operand:DI 1 "register_operand" "=r")
                         (match_operand:DI 2 "s_operand" "Q"))])]
-  ""
+  "reload_completed"
   "*
 {
   int words = XVECLEN (operands[0], 0);
   [(match_parallel 0 "load_multiple_operation"
                   [(set (match_operand:SI 1 "register_operand" "=r")
                         (match_operand:SI 2 "s_operand" "Q"))])]
-  ""
+  "reload_completed"
   "*
 {
   int words = XVECLEN (operands[0], 0);
   [(match_par_dup 3 [(set (match_operand 0 "" "")
                          (match_operand 1 "" ""))
                     (use (match_operand 2 "" ""))])]
-  ""
+  "reload_completed"
   "
 {
   int regno;
   [(match_parallel 0 "store_multiple_operation"
                   [(set (match_operand:DI 1 "s_operand" "=Q")
                         (match_operand:DI 2 "register_operand" "r"))])]
-  ""
+  "reload_completed"
   "*
 {
   int words = XVECLEN (operands[0], 0);
   [(match_parallel 0 "store_multiple_operation"
                   [(set (match_operand:SI 1 "s_operand" "=Q")
                         (match_operand:SI 2 "register_operand" "r"))])]
-  ""
+  "reload_completed"
   "*
 {
   int words = XVECLEN (operands[0], 0);
index 027c6e7b33a3570fb8a4ff423d74c346ee4db611..2ce064ab6ab0f05287194959875590a65bde7da2 100644 (file)
@@ -1,3 +1,7 @@
+2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * gcc.dg/20040306-1.c: New test.
+
 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
        * g++.dg/opt/inline4.C (dg-final): Robustify regexp.