+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.
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
/* 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