OSDN Git Service

(find_dummy_reload): Restore original RTX instead of passed IN rtx.
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Aug 1992 17:40:27 +0000 (17:40 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Aug 1992 17:40:27 +0000 (17:40 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1928 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/reload.c

index ccaa4b7..3809423 100644 (file)
@@ -1382,6 +1382,7 @@ find_dummy_reload (real_in, real_out, inloc, outloc, class, for_real)
     {
       register int regno = REGNO (out) + out_offset;
       int nwords = HARD_REGNO_NREGS (regno, GET_MODE (real_out));
+      rtx saved_rtx;
 
       /* When we consider whether the insn uses OUT,
         ignore references within IN.  They don't prevent us
@@ -1392,6 +1393,7 @@ find_dummy_reload (real_in, real_out, inloc, outloc, class, for_real)
         If the insn uses IN elsewhere and it contains OUT,
         that counts.  We can't be sure it's the "same" operand
         so it might not go through this reload.  */
+      saved_rtx = *inloc;
       *inloc = const0_rtx;
 
       if (regno < FIRST_PSEUDO_REGISTER
@@ -1418,7 +1420,7 @@ find_dummy_reload (real_in, real_out, inloc, outloc, class, for_real)
            }
        }
 
-      *inloc = real_in;
+      *inloc = saved_rtx;
     }
 
   /* Consider using IN if OUT was not acceptable