rs6000.c (rs6000_legitimize_address): Do not reduce offset by units of 0x10000 for SPE vector modes or modes used...

* config/rs6000/rs6000.c (rs6000_legitimize_address): Do not
	reduce offset by units of 0x10000 for SPE vector modes or modes
	used with E500 double instructions.

From-SVN: r128837
This commit is contained in:
Joseph Myers 2007-09-27 15:01:16 +01:00 committed by Joseph Myers
parent dcb859a33f
commit 3c1eb9eb6c
2 changed files with 10 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2007-09-27 Joseph Myers <joseph@codesourcery.com>
* config/rs6000/rs6000.c (rs6000_legitimize_address): Do not
reduce offset by units of 0x10000 for SPE vector modes or modes
used with E500 double instructions.
2007-09-04 Paolo Bonzini <bonzini@gnu.org>
* simplify-rtx.c (comparison_result): New.

View File

@ -3381,7 +3381,10 @@ rs6000_legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED,
if (GET_CODE (x) == PLUS
&& GET_CODE (XEXP (x, 0)) == REG
&& GET_CODE (XEXP (x, 1)) == CONST_INT
&& (unsigned HOST_WIDE_INT) (INTVAL (XEXP (x, 1)) + 0x8000) >= 0x10000)
&& (unsigned HOST_WIDE_INT) (INTVAL (XEXP (x, 1)) + 0x8000) >= 0x10000
&& !(SPE_VECTOR_MODE (mode)
|| (TARGET_E500_DOUBLE && (mode == DFmode || mode == TFmode
|| mode == DImode))))
{
HOST_WIDE_INT high_int, low_int;
rtx sum;