Commit d3b9996a by Richard Stallman

(find_dummy_reload): Restore original RTX instead of passed IN rtx.

From-SVN: r1928
parent 144499ab
...@@ -1382,6 +1382,7 @@ find_dummy_reload (real_in, real_out, inloc, outloc, class, for_real) ...@@ -1382,6 +1382,7 @@ find_dummy_reload (real_in, real_out, inloc, outloc, class, for_real)
{ {
register int regno = REGNO (out) + out_offset; register int regno = REGNO (out) + out_offset;
int nwords = HARD_REGNO_NREGS (regno, GET_MODE (real_out)); int nwords = HARD_REGNO_NREGS (regno, GET_MODE (real_out));
rtx saved_rtx;
/* When we consider whether the insn uses OUT, /* When we consider whether the insn uses OUT,
ignore references within IN. They don't prevent us 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) ...@@ -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, If the insn uses IN elsewhere and it contains OUT,
that counts. We can't be sure it's the "same" operand that counts. We can't be sure it's the "same" operand
so it might not go through this reload. */ so it might not go through this reload. */
saved_rtx = *inloc;
*inloc = const0_rtx; *inloc = const0_rtx;
if (regno < FIRST_PSEUDO_REGISTER if (regno < FIRST_PSEUDO_REGISTER
...@@ -1418,7 +1420,7 @@ find_dummy_reload (real_in, real_out, inloc, outloc, class, for_real) ...@@ -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 /* Consider using IN if OUT was not acceptable
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment