]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/17771 (-O2 -mmvcle: internal compiler error: in spill_failure, at reload...
authorUlrich Weigand <uweigand@de.ibm.com>
Thu, 27 Jan 2005 23:38:39 +0000 (23:38 +0000)
committerUlrich Weigand <uweigand@gcc.gnu.org>
Thu, 27 Jan 2005 23:38:39 +0000 (23:38 +0000)
PR target/17771
* config/s390/s390.md ("reload_outti"): Remove predicate for
output operand.  Abort if operand is not a MEM.
("reload_outdi", "reload_outdf"): Likewise.

From-SVN: r94351

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

index 4f481e683adca7a85fb8d928df944d2d4c8870a8..c110e861009aca970039452e14a9d0b7ae259a1e 100644 (file)
@@ -1,3 +1,11 @@
+2005-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       PR target/17771
+       Backport from mainline:
+       * config/s390/s390.md ("reload_outti"): Remove predicate for
+       output operand.  Abort if operand is not a MEM.
+       ("reload_outdi", "reload_outdf"): Likewise.
+
 2005-01-22  Roger Sayle  <roger@eyesopen.com>
 
        PR target/18402
index 1fb80c9aa45753c0fb82ea3f553d31d39ce2aeeb..3bc1356f0d5c67c8448439200a65bbd0737f151c 100644 (file)
 })
 
 (define_expand "reload_outti"
-  [(parallel [(match_operand:TI 0 "memory_operand" "")
+  [(parallel [(match_operand:TI 0 "" "")
               (match_operand:TI 1 "register_operand" "d")
               (match_operand:DI 2 "register_operand" "=&a")])]
   "TARGET_64BIT"
 {
+  if (GET_CODE (operands[0]) != MEM)
+    abort ();
   s390_load_address (operands[2], XEXP (operands[0], 0));
   operands[0] = replace_equiv_address (operands[0], operands[2]);
   emit_move_insn (operands[0], operands[1]);
 })
 
 (define_expand "reload_outdi"
-  [(parallel [(match_operand:DI 0 "memory_operand" "")
+  [(parallel [(match_operand:DI 0 "" "")
               (match_operand:DI 1 "register_operand" "d")
               (match_operand:SI 2 "register_operand" "=&a")])]
   "!TARGET_64BIT"
 {
+  if (GET_CODE (operands[0]) != MEM)
+    abort ();
   s390_load_address (operands[2], XEXP (operands[0], 0));
   operands[0] = replace_equiv_address (operands[0], operands[2]);
   emit_move_insn (operands[0], operands[1]);
 })
 
 (define_expand "reload_outdf"
-  [(parallel [(match_operand:DF 0 "memory_operand" "")
+  [(parallel [(match_operand:DF 0 "" "")
               (match_operand:DF 1 "register_operand" "d")
               (match_operand:SI 2 "register_operand" "=&a")])]
   "!TARGET_64BIT"
 {
+  if (GET_CODE (operands[0]) != MEM)
+    abort ();
   s390_load_address (operands[2], XEXP (operands[0], 0));
   operands[0] = replace_equiv_address (operands[0], operands[2]);
   emit_move_insn (operands[0], operands[1]);