aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1996-09-24 17:44:04 -0700
committerJim Wilson <wilson@gcc.gnu.org>1996-09-24 17:44:04 -0700
commitf49e41275c653b4fe1e4e92b5f6d3df93e21a691 (patch)
treeeb690d1e36e9dd83f4f2257b3ed076561bbc04dc
parentbefa01b9b7778245b327dbe05fef7215473fd28d (diff)
downloadgcc-f49e41275c653b4fe1e4e92b5f6d3df93e21a691.zip
gcc-f49e41275c653b4fe1e4e92b5f6d3df93e21a691.tar.gz
gcc-f49e41275c653b4fe1e4e92b5f6d3df93e21a691.tar.bz2
(push_secondary_reload): Do strip paradoxical SUBREG even if reload_class is CLASS_CANNOT_CHANGE_SIZE.
(push_secondary_reload): Do strip paradoxical SUBREG even if reload_class is CLASS_CANNOT_CHANGE_SIZE. Change reload_mode to mode in SECONDARY_MEMORY_NEEDED and get_secondary_mem calls. From-SVN: r12841
-rw-r--r--gcc/reload.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/gcc/reload.c b/gcc/reload.c
index 7211640..5f72b14 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -361,9 +361,6 @@ 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)))))
{
@@ -593,12 +590,12 @@ push_secondary_reload (in_p, x, opnum, optional, reload_class, reload_mode,
set it up now. */
if (in_p && icode == CODE_FOR_nothing
- && SECONDARY_MEMORY_NEEDED (class, reload_class, reload_mode))
- get_secondary_mem (x, reload_mode, opnum, type);
+ && SECONDARY_MEMORY_NEEDED (class, reload_class, mode))
+ get_secondary_mem (x, mode, opnum, type);
if (! in_p && icode == CODE_FOR_nothing
- && SECONDARY_MEMORY_NEEDED (reload_class, class, reload_mode))
- get_secondary_mem (x, reload_mode, opnum, type);
+ && SECONDARY_MEMORY_NEEDED (reload_class, class, mode))
+ get_secondary_mem (x, mode, opnum, type);
#endif
}