Commit 25108646 by Andrew Haley Committed by Andrew Haley

function.c (expand_function_end): Move blockage to just after we emit the label…

function.c (expand_function_end): Move blockage to just after we emit the label for the naked return from the...

2007-03-06  Andrew Haley  <aph@redhat.com>

        * function.c (expand_function_end): Move blockage to just after we
        emit the label for the naked return from the function.

From-SVN: r122626
parent af17c030
2007-03-06 Andrew Haley <aph@redhat.com>
* function.c (expand_function_end): Move blockage to just after we
emit the label for the naked return from the function.
2007-03-06 Richard Sandiford <richard@codesourcery.com>
* config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
......
......@@ -4327,16 +4327,6 @@ expand_function_end (void)
if (flag_exceptions)
sjlj_emit_function_exit_after (get_last_insn ());
}
else
{
/* @@@ 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, ""));
}
/* If this is an implementation of throw, do what's necessary to
communicate between __builtin_eh_return and the epilogue. */
......@@ -4478,6 +4468,14 @@ expand_function_end (void)
/* Output the label for the naked return from the function. */
emit_label (naked_return_label);
/* @@@ 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 (! USING_SJLJ_EXCEPTIONS && flag_non_call_exceptions)
emit_insn (gen_rtx_ASM_INPUT (VOIDmode, ""));
/* If stack protection is enabled for this function, check the guard. */
if (cfun->stack_protect_guard)
stack_protect_epilogue ();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment