reload.c (find_reloads): Add a REG_LABEL note if we substitute a LABEL_REF for something else.
Mon Mar 15 10:20:20 1999 Mark Mitchell <mark@markmitchell.com> * reload.c (find_reloads): Add a REG_LABEL note if we substitute a LABEL_REF for something else. From-SVN: r25777
This commit is contained in:
parent
a4d3481dce
commit
e54db24f73
2 changed files with 20 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
Mon Mar 15 10:20:20 1999 Mark Mitchell <mark@markmitchell.com>
|
||||
|
||||
* reload.c (find_reloads): Add a REG_LABEL note if we substitute a
|
||||
LABEL_REF for something else.
|
||||
|
||||
Mon Mar 15 08:24:17 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* fold-const.c (exact_real_inverse): Move variable `float_error'
|
||||
|
|
16
gcc/reload.c
16
gcc/reload.c
|
@ -3854,7 +3854,21 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
|
|||
reload_{in,out}_reg when we do these replacements. */
|
||||
|
||||
if (replace)
|
||||
*recog_operand_loc[i] = substed_operand[i];
|
||||
{
|
||||
rtx substitution = substed_operand[i];
|
||||
|
||||
*recog_operand_loc[i] = substitution;
|
||||
|
||||
/* If we're replacing an operand with a LABEL_REF, we need
|
||||
to make sure that there's a REG_LABEL note attached to
|
||||
this instruction. */
|
||||
if (GET_CODE (insn) != JUMP_INSN
|
||||
&& GET_CODE (substitution) == LABEL_REF
|
||||
&& !find_reg_note (insn, REG_LABEL, XEXP (substitution, 0)))
|
||||
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_LABEL,
|
||||
XEXP (substitution, 0),
|
||||
REG_NOTES (insn));
|
||||
}
|
||||
else
|
||||
retval |= (substed_operand[i] != *recog_operand_loc[i]);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue