From 58ab45b85d1732da7c84a274acdca3bfcf1c36b1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andr=C3=A9=20Tupinamb=C3=A1?= Date: Mon, 21 Jul 2008 21:53:20 -0400 Subject: [PATCH] Use CopyAreasse2, plus a compatibility fix --- pixman/pixman-pict.c | 6 ------ pixman/pixman-sse.c | 4 ++-- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/pixman/pixman-pict.c b/pixman/pixman-pict.c index 513e27a..806e380 100644 --- a/pixman/pixman-pict.c +++ b/pixman/pixman-pict.c @@ -1445,11 +1445,8 @@ static const FastPathInfo sse_fast_paths[] = { PIXMAN_OP_OVER, PIXMAN_x8b8g8r8, PIXMAN_a8b8g8r8, PIXMAN_r5g6b5, fbCompositeSrc_8888RevNPx0565sse2, NEED_PIXBUF }, { PIXMAN_OP_OVER, PIXMAN_x8r8g8b8, PIXMAN_a8r8g8b8, PIXMAN_b5g6r5, fbCompositeSrc_8888RevNPx0565sse2, NEED_PIXBUF }, { PIXMAN_OP_OVER, PIXMAN_x8r8g8b8, PIXMAN_a8b8g8r8, PIXMAN_b5g6r5, fbCompositeSrc_8888RevNPx0565sse2, NEED_PIXBUF }, -#if 0 - /* FIXME: This code is commented out since it's apparently not actually faster than the generic code */ { PIXMAN_OP_OVER, PIXMAN_x8r8g8b8, PIXMAN_null, PIXMAN_x8r8g8b8, fbCompositeCopyAreasse2, 0 }, { PIXMAN_OP_OVER, PIXMAN_x8b8g8r8, PIXMAN_null, PIXMAN_x8b8g8r8, fbCompositeCopyAreasse2, 0 }, -#endif { PIXMAN_OP_ADD, PIXMAN_a8, PIXMAN_null, PIXMAN_a8, fbCompositeSrcAdd_8000x8000sse2, 0 }, { PIXMAN_OP_ADD, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_a8r8g8b8, fbCompositeSrcAdd_8888x8888sse2, 0 }, @@ -1461,15 +1458,12 @@ static const FastPathInfo sse_fast_paths[] = { PIXMAN_OP_SRC, PIXMAN_solid, PIXMAN_a8, PIXMAN_a8b8g8r8, fbCompositeSolidMaskSrc_nx8x8888sse2, 0 }, { PIXMAN_OP_SRC, PIXMAN_solid, PIXMAN_a8, PIXMAN_x8b8g8r8, fbCompositeSolidMaskSrc_nx8x8888sse2, 0 }, -#if 0 - /* FIXME: This code is commented out since it's apparently not actually faster than the generic code */ { PIXMAN_OP_SRC, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_a8r8g8b8, fbCompositeCopyAreasse2, 0 }, { PIXMAN_OP_SRC, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_a8b8g8r8, fbCompositeCopyAreasse2, 0 }, { PIXMAN_OP_SRC, PIXMAN_x8r8g8b8, PIXMAN_null, PIXMAN_x8r8g8b8, fbCompositeCopyAreasse2, 0 }, { PIXMAN_OP_SRC, PIXMAN_x8b8g8r8, PIXMAN_null, PIXMAN_x8b8g8r8, fbCompositeCopyAreasse2, 0 }, { PIXMAN_OP_SRC, PIXMAN_r5g6b5, PIXMAN_null, PIXMAN_r5g6b5, fbCompositeCopyAreasse2, 0 }, { PIXMAN_OP_SRC, PIXMAN_b5g6r5, PIXMAN_null, PIXMAN_b5g6r5, fbCompositeCopyAreasse2, 0 }, -#endif { PIXMAN_OP_IN, PIXMAN_a8, PIXMAN_null, PIXMAN_a8, fbCompositeIn_8x8sse2, 0 }, { PIXMAN_OP_IN, PIXMAN_solid, PIXMAN_a8, PIXMAN_a8, fbCompositeIn_nx8x8sse2, 0 }, diff --git a/pixman/pixman-sse.c b/pixman/pixman-sse.c index b1e41b9..7c4d952 100644 --- a/pixman/pixman-sse.c +++ b/pixman/pixman-sse.c @@ -4425,12 +4425,12 @@ pixmanBltsse2 (uint32_t *src_bits, while (w >= 64) { + __m128i xmm0, xmm1, xmm2, xmm3; + /* 128 bytes ahead */ cachePrefetch (((__m128i*)s) + 8); cachePrefetch (((__m128i*)d) + 8); - __m128i xmm0, xmm1, xmm2, xmm3; - xmm0 = load128Unaligned ((__m128i*)(s)); xmm1 = load128Unaligned ((__m128i*)(s+16)); xmm2 = load128Unaligned ((__m128i*)(s+32)); -- 2.7.4