diff options
-rw-r--r-- | pixman/pixman-mmx.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c index fe0a027..7aa3347 100644 --- a/pixman/pixman-mmx.c +++ b/pixman/pixman-mmx.c @@ -3670,11 +3670,10 @@ FAST_NEAREST_MAINLOOP_COMMON (mmx_8888_n_8888_normal_OVER, #define BILINEAR_DECLARE_VARIABLES \ const __m64 mm_wt = _mm_set_pi16 (wt, wt, wt, wt); \ const __m64 mm_wb = _mm_set_pi16 (wb, wb, wb, wb); \ - const __m64 mm_addc7 = _mm_set_pi16 (0, 1, 0, 1); \ - const __m64 mm_xorc7 = _mm_set_pi16 (0, BMSK, 0, BMSK); \ - const __m64 mm_ux = _mm_set_pi16 (unit_x, unit_x, unit_x, unit_x); \ + const __m64 mm_addc = _mm_set_pi16 (0, 1, 0, 1); \ + const __m64 mm_ux = _mm_set_pi16 (unit_x, -unit_x, unit_x, -unit_x); \ const __m64 mm_zero = _mm_setzero_si64 (); \ - __m64 mm_x = _mm_set_pi16 (vx, vx, vx, vx) + __m64 mm_x = _mm_set_pi16 (vx, -(vx + 1), vx, -(vx + 1)) #define BILINEAR_INTERPOLATE_ONE_PIXEL(pix) \ do { \ @@ -3689,9 +3688,8 @@ do { \ __m64 hi = _mm_add_pi16 (t_hi, b_hi); \ __m64 lo = _mm_add_pi16 (t_lo, b_lo); \ /* calculate horizontal weights */ \ - __m64 mm_wh = _mm_add_pi16 (mm_addc7, _mm_xor_si64 (mm_xorc7, \ - _mm_srli_pi16 (mm_x, \ - 16 - BILINEAR_INTERPOLATION_BITS))); \ + __m64 mm_wh = _mm_add_pi16 (mm_addc, _mm_srli_pi16 (mm_x, \ + 16 - BILINEAR_INTERPOLATION_BITS)); \ /* horizontal interpolation */ \ __m64 p = _mm_unpacklo_pi16 (lo, hi); \ __m64 q = _mm_unpackhi_pi16 (lo, hi); \ |