Hi,
I've committed the attached patch as a followup for the recent
JUMP_TABLE_DATA change. Without this, SH fails to build during
compiling libgcc.
Regards,
kaz
--
2013-03-31 Kaz Kojima <[email protected]>
* config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
of next_real_insn.
(casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
--- ORIG/trunk/gcc/config/sh/sh.md 2013-03-14 10:12:08.000000000 +0900
+++ trunk/gcc/config/sh/sh.md 2013-03-31 09:22:59.000000000 +0900
@@ -10725,7 +10725,7 @@ label:
(clobber (match_scratch:SI 3 "=X,1"))]
"TARGET_SH1"
{
- rtx diff_vec = PATTERN (next_real_insn (operands[2]));
+ rtx diff_vec = PATTERN (next_active_insn (operands[2]));
gcc_assert (GET_CODE (diff_vec) == ADDR_DIFF_VEC);
@@ -10759,7 +10759,7 @@ label:
(clobber (match_operand:SI 4 "" "=X,1"))]
"TARGET_SH2 && reload_completed && flag_pic"
{
- rtx diff_vec = PATTERN (next_real_insn (operands[2]));
+ rtx diff_vec = PATTERN (next_active_insn (operands[2]));
gcc_assert (GET_CODE (diff_vec) == ADDR_DIFF_VEC);
switch (GET_MODE (diff_vec))
@@ -10797,7 +10797,7 @@ label:
UNSPEC_CASESI)))]
"TARGET_SHMEDIA"
{
- rtx diff_vec = PATTERN (next_real_insn (operands[2]));
+ rtx diff_vec = PATTERN (next_active_insn (operands[2]));
gcc_assert (GET_CODE (diff_vec) == ADDR_DIFF_VEC);
@@ -10824,7 +10824,7 @@ label:
(label_ref:DI (match_operand 3 "" ""))] UNSPEC_CASESI)))]
"TARGET_SHMEDIA"
{
- rtx diff_vec = PATTERN (next_real_insn (operands[3]));
+ rtx diff_vec = PATTERN (next_active_insn (operands[3]));
gcc_assert (GET_CODE (diff_vec) == ADDR_DIFF_VEC);