re PR inline-asm/6162 (i386 asm reloader ice in reload_cse_simplify_operands)

PR inline-asm/6162
	* reload.c (find_reloads): Only support one pair of commutative
	operands.

From-SVN: r76886
This commit is contained in:
Ian Lance Taylor 2004-01-29 18:40:01 +00:00 committed by Ian Lance Taylor
parent ef98992790
commit 7e3aa04196
2 changed files with 19 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2004-01-28 Ian Lance Taylor <ian@wasabisystems.com>
PR inline-asm/6162
* reload.c (find_reloads): Only support one pair of commutative
operands.
2004-01-29 Roger Sayle <roger@eyesopen.com>
PR java/13824

View File

@ -2605,7 +2605,17 @@ find_reloads (rtx insn, int replace, int ind_levels, int live_known,
if (i == noperands - 1)
abort ();
commutative = i;
/* We currently only support one commutative pair of
operands. Some existing asm code currently uses more
than one pair. Previously, that would usually work,
but sometimes it would crash the compiler. We
continue supporting that case as well as we can by
silently ignoring all but the first pair. In the
future we may handle it correctly. */
if (commutative < 0)
commutative = i;
else if (!this_insn_is_asm)
abort ();
}
else if (ISDIGIT (c))
{
@ -2979,9 +2989,8 @@ find_reloads (rtx insn, int replace, int ind_levels, int live_known,
break;
case '%':
/* The last operand should not be marked commutative. */
if (i != noperands - 1)
commutative = i;
/* We only support one commutative marker, the first
one. We already set commutative above. */
break;
case '?':