diff options
author | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-09-25 00:44:04 +0000 |
---|---|---|
committer | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-09-25 00:44:04 +0000 |
commit | c03001748750bec11636c34e93d77be19da49054 (patch) | |
tree | eb690d1e36e9dd83f4f2257b3ed076561bbc04dc | |
parent | 1dd0083ee13dabb26a7ef49b773f28bcf1456407 (diff) | |
download | gcc-c03001748750bec11636c34e93d77be19da49054.tar.gz |
(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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12841 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/reload.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index 72116404d70..5f72b14591c 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 } |