From: Geoffrey Keating Date: Mon, 27 Aug 2001 18:25:23 +0000 (+0000) Subject: reload.c (find_reloads_toplev): Back out this change: X-Git-Tag: prereleases/libstdc++-3.0.95~2412 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=67a44b16b1678e2f3bda0db7127e99dace8399fb;p=thirdparty%2Fgcc.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 * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a mem if the address is a mode_dependent_address_p. From-SVN: r45203 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6e42ed165123..01cba25433d8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2001-08-27 Geoffrey Keating + + * reload.c (find_reloads_toplev): Back out this change: + + Wed Jul 26 19:44:05 2000 Hans-Peter Nilsson + + * 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 * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET, diff --git a/gcc/reload.c b/gcc/reload.c index 0cf5a0eebf97..4eaed380c244 100644 --- a/gcc/reload.c +++ b/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--) {