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>
|
2001-08-27 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
|
||||||
|
|
||||||
* rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
|
* 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,
|
x = find_reloads_subreg_address (x, 1, opnum, type, ind_levels,
|
||||||
insn);
|
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--)
|
for (copied = 0, i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue