aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-03-18 16:57:49 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1995-03-18 16:57:49 -0500
commit64bf47a22d930b3bf5422bffb6b0f9ab395f52a9 (patch)
tree4a07b4a2b7a4412a9e4e12be44e34dcee434c8ed
parent88285acf31c379ab8de092d79027dd164f0b21bc (diff)
downloadgcc-64bf47a22d930b3bf5422bffb6b0f9ab395f52a9.zip
gcc-64bf47a22d930b3bf5422bffb6b0f9ab395f52a9.tar.gz
gcc-64bf47a22d930b3bf5422bffb6b0f9ab395f52a9.tar.bz2
(gen_lowpart_for_combine): Set reg_changes_size, if needed.
From-SVN: r9206
-rw-r--r--gcc/combine.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index 9529474..631d681 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -8320,6 +8320,14 @@ gen_lowpart_for_combine (mode, x)
}
result = gen_lowpart_common (mode, x);
+ if (result != 0
+ && GET_CODE (result) == SUBREG
+ && GET_CODE (SUBREG_REG (result)) == REG
+ && REGNO (SUBREG_REG (result)) >= FIRST_PSEUDO_REGISTER
+ && (GET_MODE_SIZE (GET_MODE (result))
+ != GET_MODE_SIZE (GET_MODE (SUBREG_REG (result)))))
+ reg_changes_size[REGNO (SUBREG_REG (result))] = 1;
+
if (result)
return result;