pixman: Branch 'master'

Søren Sandmann Pedersen sandmann at kemper.freedesktop.org
Fri Feb 24 13:33:27 PST 2012


 configure.ac |    3 +++
 1 file changed, 3 insertions(+)

New commits:
commit 5eb4c12a79b3017ec6cc22ab756f53f225731533
Author: Søren Sandmann Pedersen <ssp at redhat.com>
Date:   Thu Feb 23 18:36:04 2012 -0500

    Disable MMX when Clang is being used.
    
    There are several issues with the Clang compiler and pixman-mmx.c:
    
    - When not optimizing, it doesn't seem to recognize that an argument
      to an __always_inline__ function is compile-time constant. This
      results in this error being produced:
    
          fatal error: error in backend: Invalid operand for inline asm
                  constraint 'K'!
    
    - This inline assembly:
    
          asm ("pmulhuw %1, %0\n\t"
              : "+y" (__A)
              : "y" (__B)
          );
    
      results in
    
          fatal error: error in backend: Unsupported asm: input constraint
                  with a matching output constraint of incompatible type!
    
    So disable MMX when the compiler is Clang.

diff --git a/configure.ac b/configure.ac
index f39f437..cca4d16 100644
--- a/configure.ac
+++ b/configure.ac
@@ -294,6 +294,9 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 #if defined(__GNUC__) && (__GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4))
 #error "Need GCC >= 3.4 for MMX intrinsics"
 #endif
+#if defined(__clang__)
+#error "clang chokes on the inline assembly in pixman-mmx.c"
+#endif
 #include <mmintrin.h>
 int main () {
     __m64 v = _mm_cvtsi32_si64 (1);


More information about the xorg-commit mailing list