Commit 62926f0b by Richard Kenner Committed by Richard Kenner

emit-rtl.c (adjust_address, [...]): Change criteria for whether can put offset…

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
parent acdcefcc
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.
......
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment