diff options
author | Richard Stallman <rms@gnu.org> | 1992-03-24 19:01:29 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-03-24 19:01:29 +0000 |
commit | 6461be142d87b3c7f15287df760d89595c752876 (patch) | |
tree | 16dd7ea934cf6ec56a3e2f68a593f00e08cddccb | |
parent | 95f2ba07f8004717648cff209e6624316b07785a (diff) | |
download | gcc-6461be142d87b3c7f15287df760d89595c752876.zip gcc-6461be142d87b3c7f15287df760d89595c752876.tar.gz gcc-6461be142d87b3c7f15287df760d89595c752876.tar.bz2 |
*** empty log message ***
From-SVN: r582
-rw-r--r-- | gcc/function.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/function.c b/gcc/function.c index d250d5b..819245d 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -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 |