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 (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), \ > -- > 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