From 3c1eb9eb6c8cf087a78774d6f3a1d7e1eaf1d036 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 27 Sep 2007 15:01:16 +0100 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/rs6000.c | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6c177147c26..f7a438291bb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-09-27 Joseph Myers + + * 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 * simplify-rtx.c (comparison_result): New. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index aa4da105fa1..8a840ef568a 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -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; -- 2.30.2