alias.c (memrefs_conflict_p): A second ANDed address disables the aligned address optimization.

* alias.c (memrefs_conflict_p): A second ANDed address
        disables the aligned address optimization.

From-SVN: r24121
This commit is contained in:
Richard Henderson 1998-12-05 17:23:01 -08:00 committed by Richard Henderson
parent 07f04c9162
commit 02e3377d92
2 changed files with 7 additions and 2 deletions

View File

@ -1,3 +1,8 @@
Sun Dec 6 01:19:46 1998 Richard Henderson <rth@cygnus.com>
* alias.c (memrefs_conflict_p): A second ANDed address
disables the aligned address optimization.
Sat Dec 5 18:48:25 1998 Richard Henderson <rth@cygnus.com>
* alpha.c (alpha_emit_set_const_1): Fix parenthesis error

View File

@ -1055,7 +1055,7 @@ memrefs_conflict_p (xsize, x, ysize, y, c)
at least as large as the alignment, assume no other overlap. */
if (GET_CODE (x) == AND && GET_CODE (XEXP (x, 1)) == CONST_INT)
{
if (ysize < -INTVAL (XEXP (x, 1)))
if (GET_CODE (y) == AND || ysize < -INTVAL (XEXP (x, 1)))
xsize = -1;
return memrefs_conflict_p (xsize, XEXP (x, 0), ysize, y, c);
}
@ -1065,7 +1065,7 @@ memrefs_conflict_p (xsize, x, ysize, y, c)
may yet be able to determine that we can not overlap. But we
also need to that we are far enough from the end not to overlap
a following reference, so we do nothing with that for now. */
if (xsize < -INTVAL (XEXP (y, 1)))
if (GET_CODE (x) == AND || xsize < -INTVAL (XEXP (y, 1)))
ysize = -1;
return memrefs_conflict_p (xsize, x, ysize, XEXP (y, 0), c);
}