Commit 67a44b16 by Geoffrey Keating Committed by Geoffrey Keating

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
parent acd7baf7
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,
......
......@@ -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--)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment