aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-12-17 06:36:47 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1995-12-17 06:36:47 -0500
commit4bcdd4d0b29c8053d86b78d802eba6750a5840d8 (patch)
treef9414f9f944e3d3c7bcb81b761e75f26449a78d1 /gcc
parentdb3ec607e7d38be216c44d6d29004a17c1998083 (diff)
downloadgcc-4bcdd4d0b29c8053d86b78d802eba6750a5840d8.zip
gcc-4bcdd4d0b29c8053d86b78d802eba6750a5840d8.tar.gz
gcc-4bcdd4d0b29c8053d86b78d802eba6750a5840d8.tar.bz2
(push_secondary_reload): Don't strip paradoxical SUBREG if
reload_class is CLASS_CANNOT_CHANGE_SIZE. From-SVN: r10782
Diffstat (limited to 'gcc')
-rw-r--r--gcc/reload.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/reload.c b/gcc/reload.c
index d797e74..53569e7 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -360,6 +360,9 @@ push_secondary_reload (in_p, x, opnum, optional, reload_class, reload_mode,
/* If X is a paradoxical SUBREG, use the inner value to determine both the
mode and object being reloaded. */
if (GET_CODE (x) == SUBREG
+#ifdef CLASS_CANNOT_CHANGE_SIZE
+ && reload_class != CLASS_CANNOT_CHANGE_SIZE
+#endif
&& (GET_MODE_SIZE (GET_MODE (x))
> GET_MODE_SIZE (GET_MODE (SUBREG_REG (x)))))
{