From ffad84cd8567351d0c988cebdd5b95e4a4bc04ef Mon Sep 17 00:00:00 2001 From: Andrew Haley Date: Wed, 10 Mar 2004 17:47:45 +0000 Subject: function.c (expand_function_end): Emit a blockage insn before the epilogue when -fnon-call-exceptions is used. 2004-03-10 Andrew Haley * function.c (expand_function_end): Emit a blockage insn before the epilogue when -fnon-call-exceptions is used. * except.c (expand_start_all_catch): Make comment more accurate. From-SVN: r79265 --- gcc/function.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gcc/function.c') diff --git a/gcc/function.c b/gcc/function.c index 4fffcd8..2f68eaa 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -7016,6 +7016,14 @@ expand_function_end (void) clear_pending_stack_adjust (); do_pending_stack_adjust (); + /* @@@ This is a kludge. We want to ensure that instructions that + may trap are not moved into the epilogue by scheduling, because + we don't always emit unwind information for the epilogue. + However, not all machine descriptions define a blockage insn, so + emit an ASM_INPUT to act as one. */ + if (flag_non_call_exceptions) + emit_insn (gen_rtx_ASM_INPUT (VOIDmode, "")); + /* Mark the end of the function body. If control reaches this insn, the function can drop through without returning a value. */ -- cgit v1.1