On 04/25/2013 11:29 AM, Vladimir Makarov wrote:
On 04/24/2013 03:42 PM, Michael Meissner wrote:
I'm seeing a lot of failures with these changes in make check.

I've reproduced it, Mike.  I'll work on it.  Thanks.

I've fixed it, Mike.  It is on the branch now.

2013-04-25  Vladimir Makarov  <vmaka...@redhat.com>

        * config/rs6000/rs6000.c (rs6000_emit_move): Use assigned hard reg
        for LRA SD moves.

Index: config/rs6000/rs6000.c
===================================================================
--- config/rs6000/rs6000.c      (revision 198263)
+++ config/rs6000/rs6000.c      (working copy)
@@ -7377,9 +7377,14 @@ rs6000_emit_move (rtx dest, rtx source,

       if (regno >= FIRST_PSEUDO_REGISTER)
    {
-         cl = reg_preferred_class (regno);
-         gcc_assert (cl != NO_REGS);
-         regno = ira_class_hard_regs[cl][0];
+         if (reg_renumber[regno] >= 0)
+           regno = reg_renumber[regno];
+         else
+           {
+             cl = reg_preferred_class (regno);
+             gcc_assert (cl != NO_REGS);
+             regno = ira_class_hard_regs[cl][0];
+           }
        }
       if (FP_REGNO_P (regno))
    {
@@ -7407,9 +7412,14 @@ rs6000_emit_move (rtx dest, rtx source,

       if (regno >= FIRST_PSEUDO_REGISTER)
        {
-         cl = reg_preferred_class (regno);
-         gcc_assert (cl != NO_REGS);
-         regno = ira_class_hard_regs[cl][0];
+         if (reg_renumber[regno] >= 0)
+           regno = reg_renumber[regno];
+         else
+           {
+             cl = reg_preferred_class (regno);
+             gcc_assert (cl != NO_REGS);
+             regno = ira_class_hard_regs[cl][0];
+           }
        }
       if (FP_REGNO_P (regno))
        {



Reply via email to