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
This commit is contained in:
Richard Henderson 1998-08-15 18:55:58 -06:00 committed by Jeff Law
parent 2753f812d4
commit 8ec82f87f3
1 changed files with 6 additions and 1 deletions

View File

@ -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);