aboutsummaryrefslogtreecommitdiff
path: root/pixman
diff options
context:
space:
mode:
Diffstat (limited to 'pixman')
-rw-r--r--pixman/configure.ac2
-rw-r--r--pixman/pixman/pixman-mmx.c5
2 files changed, 6 insertions, 1 deletions
diff --git a/pixman/configure.ac b/pixman/configure.ac
index 1cf9eb4e5..56ef10ebf 100644
--- a/pixman/configure.ac
+++ b/pixman/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>
diff --git a/pixman/pixman/pixman-mmx.c b/pixman/pixman/pixman-mmx.c
index 3b4625ccf..9fd1a76f9 100644
--- a/pixman/pixman/pixman-mmx.c
+++ b/pixman/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