Commit bd55b817 by Kaz Kojima

sh.c (find_barrier): Skip call insn with a REG_EH_REGION note when flag_exceptions is set.

	* config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
	note when flag_exceptions is set.

From-SVN: r156656
parent 2ab43a52
2010-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
note when flag_exceptions is set.
2010-02-10 Duncan Sands <baldrick@free.fr> 2010-02-10 Duncan Sands <baldrick@free.fr>
* Makefile.in (PLUGIN_HEADERS): Add debug.h. * Makefile.in (PLUGIN_HEADERS): Add debug.h.
......
...@@ -4654,6 +4654,13 @@ find_barrier (int num_mova, rtx mova, rtx from) ...@@ -4654,6 +4654,13 @@ find_barrier (int num_mova, rtx mova, rtx from)
if (last_got) if (last_got)
from = PREV_INSN (last_got); from = PREV_INSN (last_got);
/* Don't insert the constant pool table at the position which
may be the landing pad. */
if (flag_exceptions
&& CALL_P (from)
&& find_reg_note (from, REG_EH_REGION, NULL_RTX))
from = PREV_INSN (from);
/* Walk back to be just before any jump or label. /* Walk back to be just before any jump or label.
Putting it before a label reduces the number of times the branch Putting it before a label reduces the number of times the branch
around the constant pool table will be hit. Putting it before around the constant pool table will be hit. Putting it before
......
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