Fix build on MSVC
authorAndrea Canciani <ranma42@gmail.com>
Thu, 26 Sep 2013 07:16:41 +0000 (09:16 +0200)
committerAndrea Canciani <ranma42@gmail.com>
Wed, 9 Oct 2013 12:23:11 +0000 (14:23 +0200)
After a4c79d695d52c94647b1aff78548e5892d616b70 the MMX and SSE2 code
has some declarations after the beginning of a block, which is not
allowed by MSVC.

Fixes multiple errors like:

pixman-mmx.c(3625) : error C2275: '__m64' : illegal use of this type
as an expression

pixman-sse2.c(5708) : error C2275: '__m128i' : illegal use of this
type as an expression

pixman/pixman-mmx.c
pixman/pixman-sse2.c

index a0f59ef..f9a92ce 100644 (file)
@@ -3579,7 +3579,6 @@ do {                                                                              \
     __m64 b_lo = _mm_mullo_pi16 (_mm_unpacklo_pi8 (b, mm_zero), mm_wb);                \
     __m64 hi = _mm_add_pi16 (t_hi, b_hi);                                      \
     __m64 lo = _mm_add_pi16 (t_lo, b_lo);                                      \
-    vx += unit_x;                                                              \
     /* calculate horizontal weights */                                         \
     __m64 mm_wh = _mm_add_pi16 (mm_addc7, _mm_xor_si64 (mm_xorc7,              \
                          _mm_srli_pi16 (mm_x,                                  \
@@ -3587,6 +3586,7 @@ do {                                                                              \
     /* horizontal interpolation */                                             \
     __m64 p = _mm_unpacklo_pi16 (lo, hi);                                      \
     __m64 q = _mm_unpackhi_pi16 (lo, hi);                                      \
+    vx += unit_x;                                                              \
     lo = _mm_madd_pi16 (p, mm_wh);                                             \
     hi = _mm_madd_pi16 (q, mm_wh);                                             \
     mm_x = _mm_add_pi16 (mm_x, mm_ux);                                         \
index 42c7209..2ab2690 100644 (file)
@@ -5626,10 +5626,10 @@ do {                                                                            \
 #define BILINEAR_INTERPOLATE_ONE_PIXEL_HELPER(pix, phase)                      \
 do {                                                                           \
     __m128i xmm_wh, xmm_a, xmm_b;                                              \
-    (void)xmm_ux4; /* suppress warning: unused variable 'xmm_ux4' */           \
     /* fetch 2x2 pixel block into sse2 registers */                            \
     __m128i tltr = _mm_loadl_epi64 ((__m128i *)&src_top[vx >> 16]);            \
     __m128i blbr = _mm_loadl_epi64 ((__m128i *)&src_bottom[vx >> 16]);         \
+    (void)xmm_ux4; /* suppress warning: unused variable 'xmm_ux4' */           \
     vx += unit_x;                                                              \
     /* vertical interpolation */                                               \
     xmm_a = _mm_mullo_epi16 (_mm_unpacklo_epi8 (tltr, xmm_zero), xmm_wt);      \