With the SPE ABI, if we wrap GPRs we need to handle the upper half of the
extended 64-bit registers as well, which we cannot easily do.  So, this
patch disables separate shrink-wrapping for the SPE ABI.

Tested on powerpc64-linux {-m32,-m64}; also tested on the testcase (I
finally managed to build a config that fails).  Committing to trunk.


Segher


2016-11-02  Segher Boessenkool  <seg...@kernel.crashing.org>

        PR target/78168
        * config/r6000/rs6000.c (rs6000_get_separate_components): Return
        NULL if TARGET_SPE_ABI.

---
 gcc/config/rs6000/rs6000.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index f9e4739..e5a6166 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -27633,6 +27633,9 @@ rs6000_get_separate_components (void)
   if (WORLD_SAVE_P (info))
     return NULL;
 
+  if (TARGET_SPE_ABI)
+    return NULL;
+
   sbitmap components = sbitmap_alloc (32);
   bitmap_clear (components);
 
-- 
1.9.3

Reply via email to