From 6f00d98f87c019849c611d27e9593c5eecfef4c2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=B8ren=20Sandmann=20Pedersen?= Date: Tue, 9 Sep 2008 10:49:56 -0400 Subject: [PATCH] Fix for bug 17477. over_2x128 was changing the alphaLo and alphaHi arguments, causing stripes. --- pixman/pixman-sse2.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pixman/pixman-sse2.c b/pixman/pixman-sse2.c index 8a3e4b5..cc08189 100644 --- a/pixman/pixman-sse2.c +++ b/pixman/pixman-sse2.c @@ -244,9 +244,11 @@ invertColors_2x128 (__m128i dataLo, __m128i dataHi, __m128i* invLo, __m128i* inv static inline void over_2x128 (__m128i* srcLo, __m128i* srcHi, __m128i* alphaLo, __m128i* alphaHi, __m128i* dstLo, __m128i* dstHi) { - negate_2x128 (*alphaLo, *alphaHi, alphaLo, alphaHi); + __m128i t1, t2; - pixMultiply_2x128 (dstLo, dstHi, alphaLo, alphaHi, dstLo, dstHi); + negate_2x128 (*alphaLo, *alphaHi, &t1, &t2); + + pixMultiply_2x128 (dstLo, dstHi, &t1, &t2, dstLo, dstHi); *dstLo = _mm_adds_epu8 (*srcLo, *dstLo); *dstHi = _mm_adds_epu8 (*srcHi, *dstHi); -- 2.7.4