Hi, a very high pseudo register number is needed here to actually cause a segfault.
I observed it on s390 with a high value in max-completely-peeled-insns when compiling the href benchmark on s390. Ok for mainline, 4.6, 4.5, and 4.4? Bye, -Andreas- 2011-12-13 Andreas Krebbel <andreas.kreb...@de.ibm.com> * regmove.c (fixup_match_2): Only access call_used_regs with hard regs. Index: gcc/regmove.c =================================================================== *** gcc/regmove.c.orig --- gcc/regmove.c *************** fixup_match_2 (rtx insn, rtx dst, rtx sr *** 859,865 **** if (REG_N_CALLS_CROSSED (REGNO (src)) == 0) break; ! if (call_used_regs [REGNO (dst)] || find_reg_fusage (p, CLOBBER, dst)) break; } --- 859,865 ---- if (REG_N_CALLS_CROSSED (REGNO (src)) == 0) break; ! if ((REGNO (dst) < FIRST_PSEUDO_REGISTER && call_used_regs [REGNO (dst)]) || find_reg_fusage (p, CLOBBER, dst)) break; }