OSDN Git Service

* reload.c (find_reloads_toplev): Back out this change:
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Aug 2001 18:25:23 +0000 (18:25 +0000)
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Aug 2001 18:25:23 +0000 (18:25 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45203 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/reload.c

index 6e42ed1..01cba25 100644 (file)
@@ -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,
index 0cf5a0e..4eaed38 100644 (file)
@@ -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--)
     {