pixman: Branch 'master' - 2 commits

Matt Turner mattst88 at kemper.freedesktop.org
Sun Apr 15 12:06:52 PDT 2012


 configure.ac        |    2 +-
 pixman/pixman-mmx.c |    5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

New commits:
commit b87cd1f6059789cb154677d8432045a5ca8e16c1
Author: Matt Turner <mattst88 at gmail.com>
Date:   Sun Apr 15 14:03:08 2012 -0400

    mmx: fix _mm_shuffle_pi16 function when compiling without optimization
    
    The last argument must be an immediate value, and when compiling without
    optimization the compiler might not recognize this. So use a macro if
    not optimizing.

diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c
index 3b4625c..9fd1a76 100644
--- a/pixman/pixman-mmx.c
+++ b/pixman/pixman-mmx.c
@@ -73,6 +73,7 @@ _mm_mulhi_pu16 (__m64 __A, __m64 __B)
     return __A;
 }
 
+#  ifdef __OPTIMIZE__
 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 _mm_shuffle_pi16 (__m64 __A, int8_t const __N)
 {
@@ -85,6 +86,10 @@ _mm_shuffle_pi16 (__m64 __A, int8_t const __N)
 
     return ret;
 }
+#  else
+#   define _mm_shuffle_pi16(A, N) \
+    ((__m64) __builtin_ia32_pshufw ((__v4hi)(__m64)(A), (int)(N)))
+#  endif
 # endif
 #endif
 
commit e927d2397141f80aecd2702ce5f38349c41aebe5
Author: Matt Turner <mattst88 at gmail.com>
Date:   Sun Apr 15 14:00:17 2012 -0400

    configure.ac: require >= gcc-4.5 for ARM iwMMXt
    
    We're using a patched gcc-4.5, and having to modify configure.ac and
    autoreconf between changes is annoying. And besides, 4.5, 4.6, and 4.7's
    iwMMXt intrinsic support is equally broken, and we test a known broken
    intrinsic in the configure test program, so the version check is rather
    meaningless.

diff --git a/configure.ac b/configure.ac
index 1cf9eb4..56ef10e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -565,7 +565,7 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 #ifndef __arm__
 #error "IWMMXT is only available on ARM"
 #endif
-#if defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6))
+#if defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5))
 #error "Need GCC >= 4.6 for IWMMXT intrinsics"
 #endif
 #include <mmintrin.h>


More information about the xorg-commit mailing list