reduce offset by units of 0x10000 for SPE vector modes or modes
used with E500 double instructions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128837
138bc75d-0d04-0410-961f-
82ee72b054a4
+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.
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;