diff options
Diffstat (limited to 'gcc/regmove.c')
-rw-r--r-- | gcc/regmove.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/gcc/regmove.c b/gcc/regmove.c index 5d3f18eba84..faff2e4589a 100644 --- a/gcc/regmove.c +++ b/gcc/regmove.c @@ -2260,14 +2260,11 @@ try_apply_stack_adjustment (insn, memlist, new_adjust, delta) validate_change (insn, &XEXP (SET_SRC (set), 1), GEN_INT (new_adjust), 1); for (ml = memlist; ml ; ml = ml->next) - { - HOST_WIDE_INT c = ml->sp_offset - delta; - rtx new = gen_rtx_MEM (GET_MODE (*ml->mem), - plus_constant (stack_pointer_rtx, c)); - - MEM_COPY_ATTRIBUTES (new, *ml->mem); - validate_change (ml->insn, ml->mem, new, 1); - } + validate_change + (ml->insn, ml->mem, + replace_equiv_address_nv (*ml->mem, + plus_constant (stack_pointer_rtx, + ml->sp_offset - delta)), 1); if (apply_change_group ()) { |