regmove.c (fixup_match_2): Only access call_used_regs with hard regs.
authorAndreas Krebbel <Andreas.Krebbel@de.ibm.com>
Tue, 13 Dec 2011 20:22:59 +0000 (20:22 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Tue, 13 Dec 2011 20:22:59 +0000 (20:22 +0000)
2011-12-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

* regmove.c (fixup_match_2): Only access call_used_regs with hard
regs.

From-SVN: r182306

gcc/ChangeLog
gcc/regmove.c

index 06c6f7dd95c6ef4c41f3aba1737d7ee87f3b6433..0ea90501c138eb13f12832f7a39a40d0a95737bb 100644 (file)
@@ -1,3 +1,8 @@
+2011-12-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * regmove.c (fixup_match_2): Only access call_used_regs with hard
+       regs.
+
 2011-12-13  Andrew Pinski  <apinski@cavium.com>
             Adam Nemet  <anemet@caviumnetworks.com>
 
index a2baca1c3bb3d2cb76ef6cafd23e4d5d3d5ef887..454c97741e392160cb436e71ab32421fc66cfe87 100644 (file)
@@ -859,7 +859,7 @@ fixup_match_2 (rtx insn, rtx dst, rtx src, rtx offset)
          if (REG_N_CALLS_CROSSED (REGNO (src)) == 0)
            break;
 
-         if (call_used_regs [REGNO (dst)]
+         if ((HARD_REGISTER_P (dst) && call_used_regs [REGNO (dst)])
              || find_reg_fusage (p, CLOBBER, dst))
            break;
        }