diff options
author | Richard Stallman <rms@gnu.org> | 1992-08-21 17:40:27 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-08-21 17:40:27 +0000 |
commit | d3b9996a9873aede974b52497fad10fc8fad9b85 (patch) | |
tree | 7abc61ac0239faa1a871bf6a018df4bb5a519927 /gcc | |
parent | 144499abeb7161ac622f294de3736ed5a3a1d99c (diff) | |
download | gcc-d3b9996a9873aede974b52497fad10fc8fad9b85.zip gcc-d3b9996a9873aede974b52497fad10fc8fad9b85.tar.gz gcc-d3b9996a9873aede974b52497fad10fc8fad9b85.tar.bz2 |
(find_dummy_reload): Restore original RTX instead of passed IN rtx.
From-SVN: r1928
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/reload.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index ccaa4b7..3809423 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -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 |