Fix MSVC compilation
authorIngmar Runge <ingmar@irsoft.de>
Sat, 19 May 2012 13:45:18 +0000 (15:45 +0200)
committerSøren Sandmann Pedersen <ssp@redhat.com>
Sat, 26 May 2012 00:10:31 +0000 (20:10 -0400)
Only up to three SSE intrinsics supported in function declaration.

pixman/pixman-mmx.c

index 01a2bc9..eb02d1a 100644 (file)
@@ -598,14 +598,14 @@ pack_4xpacked565 (__m64 a, __m64 b)
 #endif
 }
 
+#ifndef _MSC_VER
+
 static force_inline __m64
 pack_4x565 (__m64 v0, __m64 v1, __m64 v2, __m64 v3)
 {
     return pack_4xpacked565 (pack8888 (v0, v1), pack8888 (v2, v3));
 }
 
-#ifndef _MSC_VER
-
 static force_inline __m64
 pix_add_mul (__m64 x, __m64 a, __m64 y, __m64 b)
 {
@@ -617,6 +617,11 @@ pix_add_mul (__m64 x, __m64 a, __m64 y, __m64 b)
 
 #else
 
+/* MSVC only handles a "pass by register" of up to three SSE intrinsics */
+
+#define pack_4x565(v0, v1, v2, v3) \
+    pack_4xpacked565 (pack8888 (v0, v1), pack8888 (v2, v3))
+
 #define pix_add_mul(x, a, y, b)         \
     ( x = pix_multiply (x, a),  \
       y = pix_multiply (y, b),  \