Commit 52c1d580 by Bernd Schmidt Committed by Bernd Schmidt

reload1.c (eliminate_regs_in_insn): Don't restore an operand if doing so would…

reload1.c (eliminate_regs_in_insn): Don't restore an operand if doing so would replace the entire pattern.

	* reload1.c (eliminate_regs_in_insn): Don't restore an operand
	if doing so would replace the entire pattern.

From-SVN: r158188
parent 4143fd36
......@@ -9,6 +9,9 @@
(web_main): Call it.
(union_defs): Don't try to recognize match_dups.
* reload1.c (eliminate_regs_in_insn): Don't restore an operand
if doing so would replace the entire pattern.
2010-04-09 Uros Bizjak <ubizjak@gmail.com>
PR target/43707
......
......@@ -3557,7 +3557,10 @@ eliminate_regs_in_insn (rtx insn, int replace)
{
/* Restore the old body. */
for (i = 0; i < recog_data.n_operands; i++)
*recog_data.operand_loc[i] = orig_operand[i];
/* Restoring a top-level match_parallel would clobber the new_body
we installed in the insn. */
if (recog_data.operand_loc[i] != &PATTERN (insn))
*recog_data.operand_loc[i] = orig_operand[i];
for (i = 0; i < recog_data.n_dups; i++)
*recog_data.dup_loc[i] = orig_operand[(int) recog_data.dup_num[i]];
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment