Avoid scheduling builtin setjmp receivers

From-SVN: r39515
This commit is contained in:
Bernd Schmidt 2001-02-07 10:24:22 +00:00 committed by Bernd Schmidt
parent b3eda2ff9c
commit bcd7edfe5e
2 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2001-02-07 Bernd Schmidt <bernds@redhat.com>
* builtins.c (expand_builtin_setjmp_receiver): Emit an ASM_INPUT as
a scheduling barrier at the end.
2001-02-07 Alexandre Oliva <aoliva@redhat.com> 2001-02-07 Alexandre Oliva <aoliva@redhat.com>
* config/sh/sh.md (reload_outsf): Removed. * config/sh/sh.md (reload_outsf): Removed.

View File

@ -581,6 +581,13 @@ expand_builtin_setjmp_receiver (receiver_label)
else else
#endif #endif
{ /* Nothing */ } { /* Nothing */ }
/* @@@ This is a kludge. Not all machine descriptions define a blockage
insn, but we must not allow the code we just generated to be reordered
by scheduling. Specifically, the update of the frame pointer must
happen immediately, not later. So emit an ASM_INPUT to act as blockage
insn. */
emit_insn (gen_rtx_ASM_INPUT (VOIDmode, ""));
} }
/* __builtin_setjmp is passed a pointer to an array of five words (not /* __builtin_setjmp is passed a pointer to an array of five words (not