From 8ec82f87f37e49d9b5c95f680428613d3a709b39 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sat, 15 Aug 1998 18:55:58 -0600 Subject: [PATCH] reload.c (find_equiv_reg): Reject equivalences separated by a volatile instruction. 8 * reload.c (find_equiv_reg): Reject equivalences separated by a volatile instruction. From-SVN: r21763 --- gcc/reload.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/reload.c b/gcc/reload.c index 1461cad5f83..b1483d19440 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -6198,12 +6198,17 @@ find_equiv_reg (goal, insn, class, other, reload_reg_p, goalreg, mode) if (GET_RTX_CLASS (GET_CODE (p)) == 'i') { + pat = PATTERN (p); + + /* Watch out for unspec_volatile, and volatile asms. */ + if (volatile_insn_p (pat)) + return 0; + /* If this insn P stores in either GOAL or VALUE, return 0. If GOAL is a memory ref and this insn writes memory, return 0. If GOAL is a memory ref and its address is not constant, and this insn P changes a register used in GOAL, return 0. */ - pat = PATTERN (p); if (GET_CODE (pat) == SET || GET_CODE (pat) == CLOBBER) { register rtx dest = SET_DEST (pat); -- 2.30.2