summaryrefslogtreecommitdiff
path: root/gcc/optabs.c
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-16 06:26:03 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-16 06:26:03 +0000
commit227ea5664211b8f4fa0c3bd56c876392877383c9 (patch)
tree2ecd38868f22ba9382ae22d97394f481c7e6a628 /gcc/optabs.c
parent92643d95e4fdc95da196b453ac036a606426ccf5 (diff)
downloadgcc-227ea5664211b8f4fa0c3bd56c876392877383c9.tar.gz
* optabs.c (emit_libcall_block): Don't hoist insns past a label.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68001 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/optabs.c')
-rw-r--r--gcc/optabs.c5
1 files changed, 5 insertions, 0 deletions
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 ();