mirror of git://gcc.gnu.org/git/gcc.git
reload.c (find_reloads_toplev): Back out this change:
* reload.c (find_reloads_toplev): Back out this change: Wed Jul 26 19:44:05 2000 Hans-Peter Nilsson <hp@axis.com> * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a mem if the address is a mode_dependent_address_p. From-SVN: r45203
This commit is contained in:
parent
acd7baf729
commit
67a44b16b1
|
@ -1,3 +1,12 @@
|
|||
2001-08-27 Geoffrey Keating <geoffk@redhat.com>
|
||||
|
||||
* reload.c (find_reloads_toplev): Back out this change:
|
||||
|
||||
Wed Jul 26 19:44:05 2000 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
* reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
|
||||
mem if the address is a mode_dependent_address_p.
|
||||
|
||||
2001-08-27 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
|
||||
|
||||
* rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
|
||||
|
|
24
gcc/reload.c
24
gcc/reload.c
|
@ -4419,30 +4419,6 @@ find_reloads_toplev (x, opnum, type, ind_levels, is_set_dest, insn,
|
|||
x = find_reloads_subreg_address (x, 1, opnum, type, ind_levels,
|
||||
insn);
|
||||
}
|
||||
else if (code == SUBREG && GET_CODE (SUBREG_REG (x)) == MEM
|
||||
&& (GET_MODE_SIZE (GET_MODE (x))
|
||||
> GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))))
|
||||
&& mode_dependent_address_p (XEXP (SUBREG_REG (x), 0)))
|
||||
{
|
||||
/* A paradoxical subreg will simply have the mode of the access
|
||||
changed, so we need to reload such a memory operand to stabilize
|
||||
the meaning of the memory access. */
|
||||
enum machine_mode subreg_mode = GET_MODE (SUBREG_REG (x));
|
||||
|
||||
/* SUBREG_REG (x) is a MEM, so we cant take the offset, instead we
|
||||
calculate the register number as :
|
||||
SUBREG_BYTE (x) / GET_MODE_SIZE (subreg_mode) */
|
||||
if (is_set_dest)
|
||||
push_reload (NULL_RTX, SUBREG_REG (x), (rtx*)0, &SUBREG_REG (x),
|
||||
find_valid_class (subreg_mode,
|
||||
SUBREG_BYTE (x) / GET_MODE_SIZE (subreg_mode)),
|
||||
VOIDmode, subreg_mode, 0, 0, opnum, type);
|
||||
else
|
||||
push_reload (SUBREG_REG (x), NULL_RTX, &SUBREG_REG (x), (rtx*)0,
|
||||
find_valid_class (subreg_mode,
|
||||
SUBREG_BYTE (x) / GET_MODE_SIZE (subreg_mode)),
|
||||
subreg_mode, VOIDmode, 0, 0, opnum, type);
|
||||
}
|
||||
|
||||
for (copied = 0, i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue