if doing so would replace the entire pattern.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158188
138bc75d-0d04-0410-961f-
82ee72b054a4
(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
{
/* 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]];
}