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
This commit is contained in:
Kaz Kojima 2010-02-10 13:13:49 +00:00
parent 2ab43a5241
commit bd55b817bf
2 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,8 @@
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>
* Makefile.in (PLUGIN_HEADERS): Add debug.h.

View File

@ -4654,6 +4654,13 @@ find_barrier (int num_mova, rtx mova, rtx from)
if (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.
Putting it before a label reduces the number of times the branch
around the constant pool table will be hit. Putting it before