From afb0e4255a0a67aab004b2ce1bf781362e4055d7 Mon Sep 17 00:00:00 2001 From: Segher Boessenkool Date: Tue, 13 Jun 2017 19:06:37 +0200 Subject: [PATCH] rs6000: Remove SPE_CONST_OFFSET_OK * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete. (rs6000_legitimate_offset_address_p): Return false for anything in V2SImode or V2SFmode. From-SVN: r249163 --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/rs6000.c | 7 ++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9e2bfa4..ba35929 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2017-06-13 Segher Boessenkool + * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete. + (rs6000_legitimate_offset_address_p): Return false for anything in + V2SImode or V2SFmode. + +2017-06-13 Segher Boessenkool + * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes except V2SF and V2SI. Rearrange the vector modes, and add comments. * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index b51ffcc..a1005c0 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -8697,9 +8697,6 @@ legitimate_small_data_p (machine_mode mode, rtx x) && small_data_operand (x, mode)); } -/* SPE offset addressing is limited to 5-bits worth of double words. */ -#define SPE_CONST_OFFSET_OK(x) (((x) & ~0xf8) == 0) - bool rs6000_legitimate_offset_address_p (machine_mode mode, rtx x, bool strict, bool worst_case) @@ -8728,8 +8725,8 @@ rs6000_legitimate_offset_address_p (machine_mode mode, rtx x, { case V2SImode: case V2SFmode: - /* SPE vector modes. */ - return SPE_CONST_OFFSET_OK (offset); + /* Paired single modes: offset addressing isn't valid. */ + return false; case DFmode: case DDmode: -- 2.7.4