emit-rtl.c (adjust_address, [...]): Change criteria for whether can put offset inside LO_SUM to check mode alignment...

* emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for
	whether can put offset inside LO_SUM to check mode alignment, not size.

From-SVN: r43896
This commit is contained in:
Richard Kenner 2001-07-10 11:25:32 +00:00 committed by Richard Kenner
parent acdcefccef
commit 62926f0b9c
2 changed files with 10 additions and 3 deletions

View file

@ -1,3 +1,8 @@
Tue Jul 10 07:27:53 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for
whether can put offset inside LO_SUM to check mode alignment, not size.
2001-07-10 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
* doc/tm.texi (Misc): Fix thinko.

View file

@ -1631,10 +1631,11 @@ adjust_address (memref, mode, offset)
will do memref tracking. */
rtx addr = XEXP (memref, 0);
/* If MEMREF is a LO_SUM and the offset is within the size of the
/* If MEMREF is a LO_SUM and the offset is within the alignment of the
object, we can merge it into the LO_SUM. */
if (GET_MODE (memref) != BLKmode && GET_CODE (addr) == LO_SUM
&& offset >= 0 && offset < GET_MODE_SIZE (GET_MODE (memref)))
&& offset >= 0
&& offset < GET_MODE_ALIGNMENT (GET_MODE (memref)) / BITS_PER_UNIT)
addr = gen_rtx_LO_SUM (mode, XEXP (addr, 0),
plus_constant (XEXP (addr, 1), offset));
else
@ -1658,7 +1659,8 @@ adjust_address_nv (memref, mode, offset)
/* If MEMREF is a LO_SUM and the offset is within the size of the
object, we can merge it into the LO_SUM. */
if (GET_MODE (memref) != BLKmode && GET_CODE (addr) == LO_SUM
&& offset >= 0 && offset < GET_MODE_SIZE (GET_MODE (memref)))
&& offset >= 0
&& offset < GET_MODE_ALIGNMENT (GET_MODE (memref)) / BITS_PER_UNIT)
addr = gen_rtx_LO_SUM (mode, XEXP (addr, 0),
plus_constant (XEXP (addr, 1), offset));
else