From 9173f5bea61c3fe5fc5bdd68168e459b56142604 Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Fri, 12 Jan 2001 16:33:07 +0000 Subject: [PATCH] Avoid scheduling set of frame pointer across other insns From-SVN: r38945 --- gcc/ChangeLog | 5 +++++ gcc/expr.c | 7 +++++++ 2 files changed, 12 insertions(+) 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, "")); } -- 2.47.2