[cairo-commit] cairo/pixman ChangeLog, 1.103, 1.104 configure.in, 1.21, 1.22

Billy Biggs commit at pdx.freedesktop.org
Tue Aug 16 16:50:27 PDT 2005


Committed by: vektor

Update of /cvs/cairo/cairo/pixman
In directory gabe:/tmp/cvs-serv15228

Modified Files:
	ChangeLog configure.in 
Log Message:
	* src/fbmmx.c: (shift), (negate), (pix_multiply), (pix_add),
	(expand_alpha), (expand_alpha_rev), (invert_colors), (over),
	(over_rev_non_pre), (in), (in_over), (load8888), (pack8888),
	(store8888), (expand565), (expand8888), (pack565), (pix_add_mul),
	(mmxCombineMaskU), (mmxCombineOverU), (mmxCombineOverReverseU),
	(mmxCombineInU), (mmxCombineInReverseU), (mmxCombineOutU),
	(mmxCombineOutReverseU), (mmxCombineAtopU),
	(mmxCombineAtopReverseU), (mmxCombineXorU), (mmxCombineAddU),
	(mmxCombineSaturateU), (mmxCombineSrcC), (mmxCombineOverC),
	(mmxCombineOverReverseC), (mmxCombineInC), (mmxCombineInReverseC),
	(mmxCombineOutC), (mmxCombineOutReverseC), (mmxCombineAtopC),
	(mmxCombineAtopReverseC), (mmxCombineXorC), (mmxCombineAddC),
	(fbComposeSetupMMX), (fbCompositeSolid_nx8888mmx),
	(fbCompositeSolid_nx0565mmx),
	(fbCompositeSolidMask_nx8888x8888Cmmx),
	(fbCompositeSrc_8888x8x8888mmx), (fbCompositeSrc_x888x8x8888mmx),
	(fbCompositeSolidMask_nx8x8888mmx),
	(fbCompositeSolidMaskSrc_nx8x8888mmx),
	(fbCompositeSolidMask_nx8x0565mmx),
	(fbCompositeSrc_8888RevNPx0565mmx),
	(fbCompositeSrc_8888RevNPx8888mmx),
	(fbCompositeSolidMask_nx8888x0565Cmmx),
	(fbCompositeSrcAdd_8000x8000mmx), (fbCompositeSrcAdd_8888x8888mmx),
	(fbSolidFillmmx), (fbCopyAreammx), (fbCompositeCopyAreammx),
	(detectCPUFeatures), (fbHaveMMX):
	* src/fbmmx.h: Port MMX code from xserver to pixman.

	* src/fbpict.c: (fbOver), (fbOver24), (fbIn), (fbIn24),
	(fbCompositeSolidMask_nx8x8888),
	(fbCompositeSolidMask_nx8888x8888C),
	(fbCompositeSolidMask_nx8x0888), (fbCompositeSolidMask_nx8x0565),
	(fbCompositeSolidMask_nx8888x0565),
	(fbCompositeSolidMask_nx8888x0565C), (fbCompositeSrc_8888x8888),
	(fbCompositeSrc_8888x0888), (fbCompositeSrc_8888x0565),
	(fbCompositeSrcAdd_8000x8000), (fbCompositeSrcAdd_8888x8888),
	(fbCompositeSrcAdd_1000x1000), (fbCompositeSolidMask_nx1xn),
	(fbCompositeTrans_0565xnx0565), (fbCompositeTrans_0888xnx0888),
	(fbCompositeSrcSrc_nxn), (pixman_composite): Add an fbpict.c ported
	from the latest in xserver/fb, including hooks to the MMX code
	where appropriate.  This replaces the old ic.c file.

	* src/ic.c: Replaced by fbpict.c.

	* src/icint.h: Move some X server macros from fbpict.c up into
	icint.h to keep the diff small.

	* src/Makefile.am: Add fbmmx and fbpict.c, remove ic.c.

	* configure.in: Add a check for the MMX intrinsics.  gcc >= 3.4
	is required.



Index: ChangeLog
===================================================================
RCS file: /cvs/cairo/cairo/pixman/ChangeLog,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -d -r1.103 -r1.104
--- ChangeLog	12 Aug 2005 04:07:26 -0000	1.103
+++ ChangeLog	16 Aug 2005 23:50:25 -0000	1.104
@@ -1,3 +1,56 @@
+2005-08-16  Billy Biggs  <vektor at dumbterm.net>
+
+	* src/fbmmx.c: (shift), (negate), (pix_multiply), (pix_add),
+	(expand_alpha), (expand_alpha_rev), (invert_colors), (over),
+	(over_rev_non_pre), (in), (in_over), (load8888), (pack8888),
+	(store8888), (expand565), (expand8888), (pack565), (pix_add_mul),
+	(mmxCombineMaskU), (mmxCombineOverU), (mmxCombineOverReverseU),
+	(mmxCombineInU), (mmxCombineInReverseU), (mmxCombineOutU),
+	(mmxCombineOutReverseU), (mmxCombineAtopU),
+	(mmxCombineAtopReverseU), (mmxCombineXorU), (mmxCombineAddU),
+	(mmxCombineSaturateU), (mmxCombineSrcC), (mmxCombineOverC),
+	(mmxCombineOverReverseC), (mmxCombineInC), (mmxCombineInReverseC),
+	(mmxCombineOutC), (mmxCombineOutReverseC), (mmxCombineAtopC),
+	(mmxCombineAtopReverseC), (mmxCombineXorC), (mmxCombineAddC),
+	(fbComposeSetupMMX), (fbCompositeSolid_nx8888mmx),
+	(fbCompositeSolid_nx0565mmx),
+	(fbCompositeSolidMask_nx8888x8888Cmmx),
+	(fbCompositeSrc_8888x8x8888mmx), (fbCompositeSrc_x888x8x8888mmx),
+	(fbCompositeSolidMask_nx8x8888mmx),
+	(fbCompositeSolidMaskSrc_nx8x8888mmx),
+	(fbCompositeSolidMask_nx8x0565mmx),
+	(fbCompositeSrc_8888RevNPx0565mmx),
+	(fbCompositeSrc_8888RevNPx8888mmx),
+	(fbCompositeSolidMask_nx8888x0565Cmmx),
+	(fbCompositeSrcAdd_8000x8000mmx), (fbCompositeSrcAdd_8888x8888mmx),
+	(fbSolidFillmmx), (fbCopyAreammx), (fbCompositeCopyAreammx),
+	(detectCPUFeatures), (fbHaveMMX):
+	* src/fbmmx.h: Port MMX code from xserver to pixman.
+
+	* src/fbpict.c: (fbOver), (fbOver24), (fbIn), (fbIn24),
+	(fbCompositeSolidMask_nx8x8888),
+	(fbCompositeSolidMask_nx8888x8888C),
+	(fbCompositeSolidMask_nx8x0888), (fbCompositeSolidMask_nx8x0565),
+	(fbCompositeSolidMask_nx8888x0565),
+	(fbCompositeSolidMask_nx8888x0565C), (fbCompositeSrc_8888x8888),
+	(fbCompositeSrc_8888x0888), (fbCompositeSrc_8888x0565),
+	(fbCompositeSrcAdd_8000x8000), (fbCompositeSrcAdd_8888x8888),
+	(fbCompositeSrcAdd_1000x1000), (fbCompositeSolidMask_nx1xn),
+	(fbCompositeTrans_0565xnx0565), (fbCompositeTrans_0888xnx0888),
+	(fbCompositeSrcSrc_nxn), (pixman_composite): Add an fbpict.c ported
+	from the latest in xserver/fb, including hooks to the MMX code
+	where appropriate.  This replaces the old ic.c file.
+
+	* src/ic.c: Replaced by fbpict.c.
+
+	* src/icint.h: Move some X server macros from fbpict.c up into
+	icint.h to keep the diff small.
+
+	* src/Makefile.am: Add fbmmx and fbpict.c, remove ic.c.
+
+	* configure.in: Add a check for the MMX intrinsics.  gcc >= 3.4
+	is required.
+
 2005-08-12  Billy Biggs  <vektor at dumbterm.net>
 
 	* src/icrect.c: (pixman_fill_rect_1bpp): Fix to be correct for

Index: configure.in
===================================================================
RCS file: /cvs/cairo/cairo/pixman/configure.in,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- configure.in	28 Jul 2005 21:58:25 -0000	1.21
+++ configure.in	16 Aug 2005 23:50:25 -0000	1.22
@@ -51,6 +51,38 @@
 AC_SUBST(WARN_CFLAGS)
 
 dnl ===========================================================================
+dnl Check for MMX
+
+MMX_CFLAGS="-mmmx -msse -Winline --param inline-unit-growth=10000 --param large-function-growth=10000"
+
+have_mmx_intrinsics=no
+AC_MSG_CHECKING(For MMX/SSE intrinsics in the compiler)
+xserver_save_CFLAGS=$CFLAGS
+CFLAGS="$CFLAGS $MMX_CFLAGS"
+AC_COMPILE_IFELSE([
+#if defined(__GNUC__) && (__GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4))
+#error "Need GCC >= 3.4 for MMX intrinsics"
+#endif
+#include <mmintrin.h>
+#include <xmmintrin.h>
+int main () {
+    __m64 v = _mm_cvtsi32_si64 (1);
+    v = _mm_shuffle_pi16 (v, _MM_SHUFFLE(3, 3, 3, 3));
+    return _mm_cvtsi64_si32 (v);
+}], have_mmx_intrinsics=yes)
+CFLAGS=$xserver_save_CFLAGS
+AC_MSG_RESULT($have_mmx_intrinsics)
+
+if test $have_mmx_intrinsics = yes ; then
+   AC_DEFINE(USE_MMX, 1, [use MMX compiler intrinsics])
+else
+   MMX_CFLAGS=
+fi
+AC_SUBST(MMX_CFLAGS)
+
+AM_CONDITIONAL(USE_MMX, test $have_mmx_intrinsics = yes)
+
+dnl ===========================================================================
 
 AC_OUTPUT([
 libpixman.pc



More information about the cairo-commit mailing list