* expr.c (emit_push_insn): Add code to use movstrti if present.
authorHans-Peter Nilsson <hp@axis.se>
Mon, 2 Feb 1998 00:23:13 +0000 (01:23 +0100)
committerJeff Law <law@gcc.gnu.org>
Mon, 2 Feb 1998 00:23:13 +0000 (17:23 -0700)
From-SVN: r17589

gcc/ChangeLog
gcc/expr.c

index 48bd10a1c0d98c0d6f8895263f01fa049c1a072c..446844c1afe09b346e8e7e584cd8cc3be31349c5 100644 (file)
@@ -1,5 +1,7 @@
 Mon Feb  2 01:22:46 1998  Hans-Peter Nilsson  <hp@axis.se>
 
+       * expr.c (emit_push_insn): Add code to use movstrti if present.
+
        * expr.c (emit_push_insn): Use same max-move-amount for movstrhi
        and movstrqi as in emit_block_move ().
 
index 468cc3b1ba4981edc0d610481a5f487afbc74bd9..af90d2447b67450152b0128e22535d970edeaccf 100644 (file)
@@ -2651,6 +2651,18 @@ emit_push_insn (x, mode, type, size, align, partial, reg, extra,
                }
            }
 #endif
+#ifdef HAVE_movstrti
+  if (HAVE_movstrti)
+    {
+      rtx pat = gen_movstrti (gen_rtx (MEM, BLKmode, temp),
+                             xinner, size, GEN_INT (align));
+      if (pat != 0)
+       {
+         emit_insn (pat);
+         goto ret;
+       }
+    }
+#endif
 
 #ifndef ACCUMULATE_OUTGOING_ARGS
          /* If the source is referenced relative to the stack pointer,