From: Bernd Schmidt Date: Fri, 12 Jan 2001 16:33:07 +0000 (+0000) Subject: Avoid scheduling set of frame pointer across other insns X-Git-Tag: prereleases/gcc-2.95.3-test2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9173f5bea61c3fe5fc5bdd68168e459b56142604;p=thirdparty%2Fgcc.git Avoid scheduling set of frame pointer across other insns From-SVN: r38945 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a67412aec5a0..9c84b0974f89 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-01-12 Bernd Schmidt + + * expr.c (expand_builtin_setjmp_receiver): Emit a scheduling barrier + as last insn. + 2001-01-11 Bernd Schmidt * version.c: Bump. diff --git a/gcc/expr.c b/gcc/expr.c index 3624f77b2337..6499e6bc8ff8 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -8664,6 +8664,13 @@ expand_builtin_setjmp_receiver (receiver_label) { ; /* 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, "")); }