+++ /dev/null
-From d24b415f3e2753a588759d028b811e1ce38fea6c Mon Sep 17 00:00:00 2001
-From: Andrea Canciani <ranma42@gmail.com>
-Date: Sun, 11 Oct 2015 09:45:57 +0200
-Subject: mmx: Improve detection of support for "K" constraint
-
-Older versions of clang emitted an error on the "K" constraint, but at
-least since version 3.7 it is supported. Just like gcc, this
-constraint is only allowed for constants, but apparently clang
-requires them to be known before inlining.
-
-Using the macro definition _mm_shuffle_pi16(A, N) ensures that the "K"
-constraint is always applied to a literal constant, independently from
-the compiler optimizations and allows building pixman-mmx on modern
-clang.
-
-Reviewed-by: Matt Turner <mattst88@gmail.com>
-Signed-off-by: Andrea Canciani <ranma42@gmail.com>
-
-diff --git a/configure.ac b/configure.ac
-index 2178126..3a66909 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -347,15 +347,27 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
- #error "Need GCC >= 3.4 for MMX intrinsics"
- #endif
- #include <mmintrin.h>
-+#include <stdint.h>
-+
-+/* Check support for block expressions */
-+#define _mm_shuffle_pi16(A, N) \
-+ ({ \
-+ __m64 ret; \
-+ \
-+ /* Some versions of clang will choke on K */ \
-+ asm ("pshufw %2, %1, %0\n\t" \
-+ : "=y" (ret) \
-+ : "y" (A), "K" ((const int8_t)N) \
-+ ); \
-+ \
-+ ret; \
-+ })
-+
- int main () {
- __m64 v = _mm_cvtsi32_si64 (1);
- __m64 w;
-
-- /* Some versions of clang will choke on K */
-- asm ("pshufw %2, %1, %0\n\t"
-- : "=y" (w)
-- : "y" (v), "K" (5)
-- );
-+ w = _mm_shuffle_pi16(v, 5);
-
- /* Some versions of clang will choke on this */
- asm ("pmulhuw %1, %0\n\t"
-diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c
-index 05c48a4..dec3974 100644
---- a/pixman/pixman-mmx.c
-+++ b/pixman/pixman-mmx.c
-@@ -89,21 +89,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)
--{
-- __m64 ret;
--
-- asm ("pshufw %2, %1, %0\n\t"
-- : "=y" (ret)
-- : "y" (__A), "K" (__N)
-- );
--
-- return ret;
--}
--# else
--# define _mm_shuffle_pi16(A, N) \
-+# define _mm_shuffle_pi16(A, N) \
- ({ \
- __m64 ret; \
- \
-@@ -114,7 +100,6 @@ _mm_shuffle_pi16 (__m64 __A, int8_t const __N)
- \
- ret; \
- })
--# endif
- # endif
- #endif
-
---
-cgit v0.10.2
-
+++ /dev/null
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-XORG_EAUTORECONF=yes
-XORG_MULTILIB=yes
-inherit xorg-2 toolchain-funcs versionator
-
-EGIT_REPO_URI="git://anongit.freedesktop.org/git/pixman"
-DESCRIPTION="Low-level pixel manipulation routines"
-
-KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
-IUSE="altivec iwmmxt loongson2f cpu_flags_x86_mmxext neon cpu_flags_x86_sse2 cpu_flags_x86_ssse3"
-RDEPEND="abi_x86_32? (
- !<=app-emulation/emul-linux-x86-gtklibs-20131008
- !app-emulation/emul-linux-x86-gtklibs[-abi_x86_32(-)]
- )"
-
-PATCHES=(
- "${FILESDIR}/${P}-clang.patch"
-)
-
-src_configure() {
- XORG_CONFIGURE_OPTIONS=(
- $(use_enable cpu_flags_x86_mmxext mmx)
- $(use_enable cpu_flags_x86_sse2 sse2)
- $(use_enable cpu_flags_x86_ssse3 ssse3)
- $(use_enable altivec vmx)
- $(use_enable neon arm-neon)
- $(use_enable iwmmxt arm-iwmmxt)
- $(use_enable loongson2f loongson-mmi)
- --disable-gtk
- --disable-libpng
- )
- xorg-2_src_configure
-}