diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1993-07-05 17:59:09 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1993-07-05 17:59:09 -0400 |
commit | 26f1a00ea1cbe0d9785292e5bb900ca2837647f5 (patch) | |
tree | af83022a2ba3abdb67b3e9c750525c043dcdcbde | |
parent | bc0776c6205c3f0804cb607214ff51c7eab20a18 (diff) | |
download | gcc-26f1a00ea1cbe0d9785292e5bb900ca2837647f5.zip gcc-26f1a00ea1cbe0d9785292e5bb900ca2837647f5.tar.gz gcc-26f1a00ea1cbe0d9785292e5bb900ca2837647f5.tar.bz2 |
(subst_reloads): Don't use gen_lowpart_common to get reload register
into proper mode.
From-SVN: r4854
-rw-r--r-- | gcc/reload.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index 35fe843..eacea86 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -4659,9 +4659,11 @@ subst_reloads () if (reloadreg) { /* Encapsulate RELOADREG so its machine mode matches what - used to be there. */ + used to be there. Note that gen_lowpart_common will + do the wrong thing if RELOADREG is multi-word. RELOADREG + will always be a REG here. */ if (GET_MODE (reloadreg) != r->mode && r->mode != VOIDmode) - reloadreg = gen_lowpart_common (r->mode, reloadreg); + reloadreg = gen_rtx (REG, r->mode, REGNO (reloadreg)); /* If we are putting this into a SUBREG and RELOADREG is a SUBREG, we would be making nested SUBREGs, so we have to fix |