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;
        }

Reply via email to