[Pixman] [PATCH] Fix MSVC compilation (only up to three SSE intrinsics supported in function declaration)

2012-05-19 Thread Ingmar Runge
From: Ingmar Runge ing...@irsoft.de

---
 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 01a2bc9..eb02d1a 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 (pack (v0, v1), pack (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 (pack (v0, v1), pack (v2, v3))
+
 #define pix_add_mul(x, a, y, b) \
 ( x = pix_multiply (x, a),  \
   y = pix_multiply (y, b),  \
-- 
1.7.3.4
___
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman


Re: [Pixman] [PATCH] Fix MSVC compilation (only up to three SSE intrinsics supported in function declaration)

2012-05-19 Thread Matt Turner
On Sat, May 19, 2012 at 9:45 AM, Ingmar Runge ing...@irsoft.de wrote:
 From: Ingmar Runge ing...@irsoft.de

 ---
  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 01a2bc9..eb02d1a 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 (pack (v0, v1), pack (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 (pack (v0, v1), pack (v2, v3))
 +
  #define pix_add_mul(x, a, y, b)         \
     ( x = pix_multiply (x, a),  \
       y = pix_multiply (y, b),  \
 --
 1.7.3.4

Hah. Weird. Shouldn't the optimizer inline the function so that it's
not actually passing the arguments to a function before checking such
things? Anyway, thanks for putting the comment in -- I never knew the
purpose of the MSVC pix_add_mul macro.

I'm not sure if we want

#ifndef _MSC_VER
pack_4x565
pix_add_mul
#else
pack_4x565
pix_add_mul
#endif

or if we want

#ifndef _MSC_VER
pack_4x565
#else
pack_4x565
#endif

#ifndef _MSC_VER
pix_add_mul
#else
pix_add_mul
#endif

Soren?
___
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman


Re: [Pixman] [PATCH] Fix MSVC compilation (only up to three SSE intrinsics supported in function declaration)

2012-05-19 Thread Søren Sandmann
Matt Turner matts...@gmail.com writes:

 I'm not sure if we want

 #ifndef _MSC_VER
 pack_4x565
 pix_add_mul
 #else
 pack_4x565
 pix_add_mul
 #endif

 or if we want

 #ifndef _MSC_VER
 pack_4x565
 #else
 pack_4x565
 #endif

 #ifndef _MSC_VER
 pix_add_mul
 #else
 pix_add_mul
 #endif

 Soren?

The first one is probably better, but I don't really care that
much. Before pushing, though, I'd prefer the header of the commit
message being made shorter and the rest of it put in the body.


Søren
___
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman