diff options
author | Joseph Myers <joseph@codesourcery.com> | 2007-09-27 15:01:16 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2007-09-27 15:01:16 +0100 |
commit | 3c1eb9eb6c8cf087a78774d6f3a1d7e1eaf1d036 (patch) | |
tree | 571ad095806b2779e2075bb55ba24efbe1eac488 /gcc/config | |
parent | dcb859a33f5a926fd27e006e71bdb4e893e40924 (diff) | |
download | gcc-3c1eb9eb6c8cf087a78774d6f3a1d7e1eaf1d036.zip gcc-3c1eb9eb6c8cf087a78774d6f3a1d7e1eaf1d036.tar.gz gcc-3c1eb9eb6c8cf087a78774d6f3a1d7e1eaf1d036.tar.bz2 |
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
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index aa4da10..8a840ef 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; |