* optabs.c (emit_libcall_block): Don't hoist insns past a label.
authorRichard Sandiford <rsandifo@redhat.com>
Mon, 16 Jun 2003 06:26:03 +0000 (06:26 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Mon, 16 Jun 2003 06:26:03 +0000 (06:26 +0000)
From-SVN: r68001

gcc/ChangeLog
gcc/optabs.c

index d9c45b108320da58f5e8ddab958be512e5010045..e4215a2022eb27ad9726035190087d12a2dde4b0 100644 (file)
@@ -1,3 +1,7 @@
+2003-06-16  Richard Sandiford  <rsandifo@redhat.com>
+
+       * optabs.c (emit_libcall_block): Don't hoist insns past a label.
+
 2003-06-16  Richard Henderson  <rth@redhat.com>
 
        * config/alpha/alpha-protos.h, config/alpha/elf.h,
index 06299e8ffdafbabbc27b51dfc075e9203b11bdf7..18d9e2acbb640904024a55cd4518e97647968247 100644 (file)
@@ -3449,6 +3449,11 @@ emit_libcall_block (insns, target, result, equiv)
 
          add_insn (insn);
        }
+
+      /* Some ports use a loop to copy large arguments onto the stack.
+        Don't move anything outside such a loop.  */
+      if (GET_CODE (insn) == CODE_LABEL)
+       break;
     }
 
   prev = get_last_insn ();