OSDN Git Service

* reload.c (find_reloads_subreg_address): Actually create the USE
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 Mar 1999 15:07:56 +0000 (15:07 +0000)
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 Mar 1999 15:07:56 +0000 (15:07 +0000)
for the register, not the new memory location.

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

gcc/ChangeLog
gcc/reload.c

index 968ea5e..c4231bd 100644 (file)
@@ -1,3 +1,8 @@
+Thu Feb 25 21:52:54 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * reload.c (find_reloads_subreg_address): Actually create the USE
+       for the register, not the new memory location.
+
 Fri Mar  5 21:41:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
 
        * reload1.c (emit_reload_insns): If pseudo that can't be replaced
index 66b8de5..e424d74 100644 (file)
@@ -5658,14 +5658,15 @@ find_reloads_subreg_address (x, force_replace, opnum, type,
                }
              XEXP (tem, 0) = plus_constant (XEXP (tem, 0), offset);
              PUT_MODE (tem, GET_MODE (x));
-             x = tem;
-             find_reloads_address (GET_MODE (x), &x, XEXP (x, 0), &XEXP (x, 0),
-                                   opnum, ADDR_TYPE (type), ind_levels, insn);
+             find_reloads_address (GET_MODE (tem), &tem, XEXP (tem, 0),
+                                   &XEXP (tem, 0), opnum, ADDR_TYPE (type),
+                                   ind_levels, insn);
              /* If this is not a toplevel operand, find_reloads doesn't see
                 this substitution.  We have to emit a USE of the pseudo so
                 that delete_output_reload can see it.  */
              if (replace_reloads && recog_operand[opnum] != x)
                emit_insn_before (gen_rtx_USE (VOIDmode, SUBREG_REG (x)), insn);
+             x = tem;
            }
        }
     }