rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the same way emit_group_load does.

* rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
	same way emit_group_load does.

From-SVN: r33715
This commit is contained in:
Richard Henderson 2000-05-05 09:48:24 -07:00 committed by Richard Henderson
parent 1a8bb3dd20
commit 37ceff9dc3
2 changed files with 20 additions and 10 deletions

View File

@ -1,3 +1,8 @@
2000-05-05 Richard Henderson <rth@cygnus.com>
* rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
same way emit_group_load does.
2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
* toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.

View File

@ -992,17 +992,22 @@ reg_overlap_mentioned_p (x, in)
return reg_mentioned_p (x, in);
case PARALLEL:
if (GET_MODE (x) == BLKmode)
{
register int i;
{
int i, n;
/* If any register in here refers to it we return true. */
for (i = XVECLEN (x, 0) - 1; i >= 0; i--)
if (reg_overlap_mentioned_p (SET_DEST (XVECEXP (x, 0, i)), in))
return 1;
return 0;
}
break;
/* Check for a NULL entry, used to indicate that the parameter goes
both on the stack and in registers. */
if (XEXP (XVECEXP (x, 0, 0), 0))
i = 0;
else
i = 1;
/* If any register in here refers to it we return true. */
for (n = XVECLEN (x, 0); i < n; ++i)
if (reg_overlap_mentioned_p (XEXP (XVECEXP (x, 0, i), 0), in))
return 1;
return 0;
}
default:
break;