diff options
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 (); |