]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
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:15:53 +0000 (20:15 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Tue, 13 Dec 2011 20:15:53 +0000 (20:15 +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: r182304

gcc/ChangeLog
gcc/regmove.c

index ecca0c2e5f03defa0e2a0efe973f5950b47840f4..14eef623ebffe9815b4b09ca74dbe93f7b19bc4a 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-09  Kazu Hirata  <kazu@codesourcery.com>
 
        Backport from mainline:
index 33e1445e413e59e61f642931c46406da2a41cb85..045ac1915ebb4503f6f28ce5774a4e28fcd02a2b 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;
        }