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  <kkoj...@gcc.gnu.org>

        * 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);
 

Reply via email to