*** empty log message ***
authorRichard Stallman <rms@gnu.org>
Tue, 24 Mar 1992 19:01:29 +0000 (19:01 +0000)
committerRichard Stallman <rms@gnu.org>
Tue, 24 Mar 1992 19:01:29 +0000 (19:01 +0000)
From-SVN: r582

gcc/function.c

index d250d5be8b677598550d30d50dc65ac7e2bf7c79..819245d0219a8b87a1e459e3b193e7cacd99a0eb 100644 (file)
@@ -2210,9 +2210,17 @@ instantiate_virtual_regs_1 (loc, object, extra_insns)
 
             Note that we cannot pass X as the object in the recursive call
             since the insn being processed may not allow all valid
-            addresses.  */
+            addresses.  However, if we were not passed on object, we can
+            only modify X without copying it if X will have a valid
+            address.
 
-         if (instantiate_virtual_regs_1 (&XEXP (x, 0), object, 0))
+            ??? Also note that this can still lose if OBJECT is an insn that
+            has less restrictions on an address that some other insn.
+            In that case, we will modify the shared address.  This case
+            doesn't seem very likely, though.  */
+
+         if (instantiate_virtual_regs_1 (&XEXP (x, 0),
+                                         object ? object : x, 0))
            return 1;
 
          /* Otherwise make a copy and process that copy.  We copy the entire