------- Comment #31 from bergner at vnet dot ibm dot com 2006-12-05 04:41 ------- ...and here's the patch I mentioned in the previous comment:
Index: reload1.c =================================================================== --- reload1.c (revision 119497) +++ reload1.c (working copy) @@ -2930,7 +2930,7 @@ eliminate_regs_in_insn (rtx insn, int re int icode = recog_memoized (insn); rtx old_body = PATTERN (insn); int insn_is_asm = asm_noperands (old_body) >= 0; - rtx old_set = single_set (insn); + rtx old_set; rtx new_body; int val = 0; int i; @@ -2949,6 +2949,12 @@ eliminate_regs_in_insn (rtx insn, int re return 0; } + /* Guard against a PARALLEL with a REG_UNUSED note. */ + if (GET_CODE (PATTERN (insn)) != PARALLEL) + old_set = single_set (insn); + else + old_set = 0; + if (old_set != 0 && REG_P (SET_DEST (old_set)) && REGNO (SET_DEST (old_set)) < FIRST_PSEUDO_REGISTER) { -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28690