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:
parent
2753f812d4
commit
8ec82f87f3
1 changed files with 6 additions and 1 deletions
|
@ -6198,12 +6198,17 @@ find_equiv_reg (goal, insn, class, other, reload_reg_p, goalreg, mode)
|
||||||
|
|
||||||
if (GET_RTX_CLASS (GET_CODE (p)) == 'i')
|
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 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 this insn writes memory, return 0.
|
||||||
If GOAL is a memory ref and its address is not constant,
|
If GOAL is a memory ref and its address is not constant,
|
||||||
and this insn P changes a register used in GOAL, return 0. */
|
and this insn P changes a register used in GOAL, return 0. */
|
||||||
|
|
||||||
pat = PATTERN (p);
|
|
||||||
if (GET_CODE (pat) == SET || GET_CODE (pat) == CLOBBER)
|
if (GET_CODE (pat) == SET || GET_CODE (pat) == CLOBBER)
|
||||||
{
|
{
|
||||||
register rtx dest = SET_DEST (pat);
|
register rtx dest = SET_DEST (pat);
|
||||||
|
|
Loading…
Add table
Reference in a new issue