From: Richard Sandiford Date: Mon, 16 Jun 2003 06:26:03 +0000 (+0000) Subject: * optabs.c (emit_libcall_block): Don't hoist insns past a label. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=695a94b30aef2dbf9d30e96d02c8fdfa5d99c3eb;p=gcc.git * optabs.c (emit_libcall_block): Don't hoist insns past a label. From-SVN: r68001 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d9c45b10832..e4215a2022e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2003-06-16 Richard Sandiford + + * optabs.c (emit_libcall_block): Don't hoist insns past a label. + 2003-06-16 Richard Henderson * config/alpha/alpha-protos.h, config/alpha/elf.h, diff --git a/gcc/optabs.c b/gcc/optabs.c index 06299e8ffda..18d9e2acbb6 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -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 ();