diff options
author | Richard Sandiford <rsandifo@redhat.com> | 2003-06-16 06:26:03 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2003-06-16 06:26:03 +0000 |
commit | 695a94b30aef2dbf9d30e96d02c8fdfa5d99c3eb (patch) | |
tree | 2ecd38868f22ba9382ae22d97394f481c7e6a628 /gcc | |
parent | a5c2492672af53c58d1649e1c0f0291923516f47 (diff) | |
download | gcc-695a94b30aef2dbf9d30e96d02c8fdfa5d99c3eb.zip gcc-695a94b30aef2dbf9d30e96d02c8fdfa5d99c3eb.tar.gz gcc-695a94b30aef2dbf9d30e96d02c8fdfa5d99c3eb.tar.bz2 |
* optabs.c (emit_libcall_block): Don't hoist insns past a label.
From-SVN: r68001
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/optabs.c | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d9c45b1..e4215a2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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, diff --git a/gcc/optabs.c b/gcc/optabs.c index 06299e8..18d9e2a 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 (); |