]> 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:35:54 +0000 (23:35 +0000)
committerUlrich Weigand <uweigand@gcc.gnu.org>
Thu, 27 Jan 2005 23:35:54 +0000 (23:35 +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: r94350

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

index 74168608bea247c9c2ea81ff4f0fff4bc96330a2..aa2c259e4d650e658a1435ca25dfff8baeb2a3b7 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-27  Marek Michalkiewicz  <marekm@amelek.gda.pl>
 
        PR target/19293
index acdd158164fb566da88a6077209790a70b1efe91..345a36a185902e3cb53e2663796f2422d20e2e42 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]);