aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-05-24 07:49:54 +0000
committerRichard Stallman <rms@gnu.org>1993-05-24 07:49:54 +0000
commit8908158db387544f2bf19409617455766be8511f (patch)
tree0e543a7f36b0a2f5ac7f0de5fd9487b7c4f5d86b
parent19808e22caa8929ed61043340b832b5c51d4012a (diff)
downloadgcc-8908158db387544f2bf19409617455766be8511f.zip
gcc-8908158db387544f2bf19409617455766be8511f.tar.gz
gcc-8908158db387544f2bf19409617455766be8511f.tar.bz2
(choose_reload_regs): If inheriting a spill reg,
and reload_out has a wider mode, just copy from that spill reg, don't use it for the reload. From-SVN: r4555
-rw-r--r--gcc/reload1.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index d528807..d6c361d 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -4835,7 +4835,11 @@ choose_reload_regs (insn, avoid_return_reg)
reload_earlyclobbers[i1]))
break;
- if (i1 != n_earlyclobbers)
+ if (i1 != n_earlyclobbers
+ /* Don't really use the inherited spill reg
+ if we need it wider than we've got it. */
+ || (GET_MODE_SIZE (reload_mode[r])
+ > GET_MODE_SIZE (mode)))
reload_override_in[r] = reg_last_reload_reg[regno];
else
{