aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-04-10 07:16:13 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-04-10 07:16:13 -0400
commit9fac9680c02a2df6fdf9981585b533b26598da8f (patch)
tree9a98fc94559aeae682bc5820d0db39210b8e53fd /gcc/reload.c
parent0f5cddbdd1878648bd21b8d17abc1f65563a0cc8 (diff)
downloadgcc-9fac9680c02a2df6fdf9981585b533b26598da8f.zip
gcc-9fac9680c02a2df6fdf9981585b533b26598da8f.tar.gz
gcc-9fac9680c02a2df6fdf9981585b533b26598da8f.tar.bz2
(find_equiv_reg): If goal is a pseudo that got memory, a store into
memory makes it invalid. From-SVN: r9344
Diffstat (limited to 'gcc/reload.c')
-rw-r--r--gcc/reload.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/reload.c b/gcc/reload.c
index 35bc497..aa3efbd 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -5553,6 +5553,9 @@ find_equiv_reg (goal, insn, class, other, reload_reg_p, goalreg, mode)
else if (goal_mem && GET_CODE (dest) == MEM
&& ! push_operand (dest, GET_MODE (dest)))
return 0;
+ else if (GET_CODE (dest) == MEM && regno >= FIRST_PSEUDO_REGISTER
+ && reg_equiv_memory_loc[regno] != 0)
+ return 0;
else if (need_stable_sp && push_operand (dest, GET_MODE (dest)))
return 0;
}