Commit 9ea88834 by Steven Bosscher Committed by Steven Bosscher

recog.c (constrain_operands): Only look for earlyclobber operand conflicts if an…

recog.c (constrain_operands): Only look for earlyclobber operand conflicts if an '&' constraint was seen.

	* recog.c (constrain_operands): Only look for earlyclobber operand
	conflicts if an '&' constraint was seen.

From-SVN: r94493
parent 75a3bd9d
2005-01-31 Steven Bosscher <stevenb@suse.de>
* recog.c (constrain_operands): Only look for earlyclobber operand
conflicts if an '&' constraint was seen.
2005-01-31 Marc Espie <espie@openbsd.org>
* config.gcc: Don't include embedded systems fragment, switches default
......
......@@ -2233,6 +2233,7 @@ constrain_operands (int strict)
do
{
int seen_earlyclobber_at = -1;
int opno;
int lose = 0;
funny_match_index = 0;
......@@ -2295,6 +2296,8 @@ constrain_operands (int strict)
case '&':
earlyclobber[opno] = 1;
if (seen_earlyclobber_at < 0)
seen_earlyclobber_at = opno;
break;
case '0': case '1': case '2': case '3': case '4':
......@@ -2543,8 +2546,10 @@ constrain_operands (int strict)
/* See if any earlyclobber operand conflicts with some other
operand. */
if (strict > 0)
for (eopno = 0; eopno < recog_data.n_operands; eopno++)
if (strict > 0 && seen_earlyclobber_at >= 0)
for (eopno = seen_earlyclobber_at;
eopno < recog_data.n_operands;
eopno++)
/* Ignore earlyclobber operands now in memory,
because we would often report failure when we have
two memory operands, one of which was formerly a REG. */
......
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