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:
parent
1a8bb3dd20
commit
37ceff9dc3
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue