Commit 7a3cb3ab by Kaz Kojima

re PR target/35225 (gcc segfaults when building GTK+ code with -O2 -fPIC for SH4)

	PR target/35225
	* config/sh/sh.c (find_barrier): Don't go past 'from' argument.

From-SVN: r132503
parent 6d4d15b8
2008-02-20 Kaz Kojima <kkojima@gcc.gnu.org> 2008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
PR target/35225
* config/sh/sh.c (find_barrier): Don't go past 'from' argument.
2008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
PR target/35190 PR target/35190
* config/sh/sh.md (jump_compact): Disable for crossing jumps. * config/sh/sh.md (jump_compact): Disable for crossing jumps.
......
...@@ -3838,6 +3838,7 @@ find_barrier (int num_mova, rtx mova, rtx from) ...@@ -3838,6 +3838,7 @@ find_barrier (int num_mova, rtx mova, rtx from)
rtx barrier_before_mova = 0, found_barrier = 0, good_barrier = 0; rtx barrier_before_mova = 0, found_barrier = 0, good_barrier = 0;
int si_limit; int si_limit;
int hi_limit; int hi_limit;
rtx orig = from;
/* For HImode: range is 510, add 4 because pc counts from address of /* For HImode: range is 510, add 4 because pc counts from address of
second instruction after this one, subtract 2 for the jump instruction second instruction after this one, subtract 2 for the jump instruction
...@@ -4070,7 +4071,8 @@ find_barrier (int num_mova, rtx mova, rtx from) ...@@ -4070,7 +4071,8 @@ find_barrier (int num_mova, rtx mova, rtx from)
/* If we exceeded the range, then we must back up over the last /* If we exceeded the range, then we must back up over the last
instruction we looked at. Otherwise, we just need to undo the instruction we looked at. Otherwise, we just need to undo the
NEXT_INSN at the end of the loop. */ NEXT_INSN at the end of the loop. */
if (count_hi > hi_limit || count_si > si_limit) if (PREV_INSN (from) != orig
&& (count_hi > hi_limit || count_si > si_limit))
from = PREV_INSN (PREV_INSN (from)); from = PREV_INSN (PREV_INSN (from));
else else
from = PREV_INSN (from); from = PREV_INSN (from);
......
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