pixman: Branch 'master' - 2 commits
Benjamin Otte
company at kemper.freedesktop.org
Fri Dec 4 06:05:50 PST 2009
configure.ac | 2 +-
pixman/pixman-mmx.c | 12 ++----------
pixman/pixman-sse2.c | 4 +---
3 files changed, 4 insertions(+), 14 deletions(-)
New commits:
commit 3fba7dc6fa52bbf01cfc5c4aab1ab06d49a117b2
Author: Benjamin Otte <otte at gnome.org>
Date: Sat Nov 28 11:38:43 2009 +0100
Make test program not throw warnings about undefined variables
diff --git a/configure.ac b/configure.ac
index a61bc1a..a2eaecb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -253,7 +253,7 @@ AC_COMPILE_IFELSE([
#include <xmmintrin.h>
#include <emmintrin.h>
int main () {
- __m128i a, b, c;
+ __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
c = _mm_xor_si128 (a, b);
return 0;
}], have_sse2_intrinsics=yes)
commit 10ab592d57bbeefb3e3297c4a905e5cec233a006
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Nov 27 22:02:54 2009 +0100
Fix bug that prevented pixman_fill MMX and SSE paths for 16 and 8bpp
diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c
index 819e3a0..007fda7 100644
--- a/pixman/pixman-mmx.c
+++ b/pixman/pixman-mmx.c
@@ -1883,22 +1883,13 @@ pixman_fill_mmx (uint32_t *bits,
if (bpp != 16 && bpp != 32 && bpp != 8)
return FALSE;
- if (bpp == 16 && (xor >> 16 != (xor & 0xffff)))
- return FALSE;
-
- if (bpp == 8 &&
- ((xor >> 16 != (xor & 0xffff)) ||
- (xor >> 24 != (xor & 0x00ff) >> 16)))
- {
- return FALSE;
- }
-
if (bpp == 8)
{
stride = stride * (int) sizeof (uint32_t) / 1;
byte_line = (uint8_t *)(((uint8_t *)bits) + stride * y + x);
byte_width = width;
stride *= 1;
+ xor = (xor & 0xff) * 0x01010101;
}
else if (bpp == 16)
{
@@ -1906,6 +1897,7 @@ pixman_fill_mmx (uint32_t *bits,
byte_line = (uint8_t *)(((uint16_t *)bits) + stride * y + x);
byte_width = 2 * width;
stride *= 2;
+ xor = (xor & 0xffff) * 0x00010001;
}
else
{
diff --git a/pixman/pixman-sse2.c b/pixman/pixman-sse2.c
index 78b0ad1..1f8aa6e 100644
--- a/pixman/pixman-sse2.c
+++ b/pixman/pixman-sse2.c
@@ -3981,9 +3981,6 @@ pixman_fill_sse2 (uint32_t *bits,
__m128i xmm_def;
- if (bpp == 16 && (data >> 16 != (data & 0xffff)))
- return FALSE;
-
if (bpp != 16 && bpp != 32)
return FALSE;
@@ -3993,6 +3990,7 @@ pixman_fill_sse2 (uint32_t *bits,
byte_line = (uint8_t *)(((uint16_t *)bits) + stride * y + x);
byte_width = 2 * width;
stride *= 2;
+ data = (data & 0xffff) * 0x00010001;
}
else
{
More information about the xorg-commit
mailing list