diff --git a/gcc/reload.c b/gcc/reload.c index 1aec4fb633b..a97357f3bcd 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -2673,7 +2673,8 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p) substed_operand[i] = recog_operand[i] = reg_equiv_mem[regno]; #endif - if (reg_equiv_address[regno] != 0) + if (reg_equiv_address[regno] != 0 + && (set == 0 || &SET_DEST (set) != recog_operand_loc[i])) { /* If reg_equiv_address is not a constant address, copy it, since it may be shared. */