diff options
author | Ingmar Runge <ingmar@irsoft.de> | 2012-05-19 15:45:18 +0200 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@redhat.com> | 2012-05-25 20:10:31 -0400 |
commit | f71e3dba979fcfc1cf87d01137e1e32451a173b1 (patch) | |
tree | 1b160c9c817c175eaf6f72d3003841ce0df3dfa0 | |
parent | 1e59e18d73a6e45729a99fe6ccc74d61631ff5f0 (diff) |
Fix MSVC compilation
Only up to three SSE intrinsics supported in function declaration.
-rw-r--r-- | pixman/pixman-mmx.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c index 01a2bc93..eb02d1a6 100644 --- a/pixman/pixman-mmx.c +++ b/pixman/pixman-mmx.c @@ -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), \ |