(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
This commit is contained in:
parent
befa01b9b7
commit
f49e41275c
11
gcc/reload.c
11
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
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue