[Mesa-dev] [PATCH] gallium: Disable Altivec on PPC SPE variants

Stuart Young cefiar at gmail.com
Sun Jul 1 06:36:11 UTC 2018


PowerPC variants with the Signal Processing Engine do not support
Altivec instructions, as the SPE instruction set uses the same
instruction codes as the Altivec set available in most PowerPC
cores. Note that this is not related to the "Synergistic Processing
Element" units on IBM Cell microprocessors.

This patch prevents any Altivec specialising on these cores by
looking for __NO_FPRS__ (should only be defined on these variants).
---
 src/gallium/include/pipe/p_config.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/gallium/include/pipe/p_config.h b/src/gallium/include/pipe/p_config.h
index 3fa43ed797..0a6251e060 100644
--- a/src/gallium/include/pipe/p_config.h
+++ b/src/gallium/include/pipe/p_config.h
@@ -103,12 +103,16 @@
 #endif
 #endif
 
+#if defined (__NO_FPRS__)
+/* Skip PPC tests as possible PowerPC SPE (Signal Processing Engine) variant */
+#else
 #if defined(__ppc__) || defined(__ppc64__) || defined(__PPC__)
 #define PIPE_ARCH_PPC
 #if defined(__ppc64__) || defined(__PPC64__)
 #define PIPE_ARCH_PPC_64
 #endif
 #endif
+#endif
 
 #if defined(__s390x__)
 #define PIPE_ARCH_S390
-- 
2.11.0



More information about the mesa-dev mailing list