diff options
Diffstat (limited to 'pixman')
| -rw-r--r-- | pixman/pixman/pixman-mmx.c | 33 | ||||
| -rw-r--r-- | pixman/test/lowlevel-blt-bench.c | 1 | 
2 files changed, 8 insertions, 26 deletions
| diff --git a/pixman/pixman/pixman-mmx.c b/pixman/pixman/pixman-mmx.c index 2988cdb1a..11644e87b 100644 --- a/pixman/pixman/pixman-mmx.c +++ b/pixman/pixman/pixman-mmx.c @@ -1158,12 +1158,9 @@ mmx_composite_over_n_8888 (pixman_implementation_t *imp,  	CHECKPOINT (); -	while (w) +	if (w)  	{  	    *dst = store8888 (over (vsrc, vsrca, load8888 (*dst))); - -	    w--; -	    dst++;  	}      } @@ -1399,16 +1396,12 @@ mmx_composite_over_8888_n_8888 (pixman_implementation_t *imp,  	    src += 2;  	} -	while (w) +	if (w)  	{  	    __m64 s = load8888 (*src);  	    __m64 d = load8888 (*dst);  	    *dst = store8888 (in_over (s, expand_alpha (s), vmask, d)); - -	    w--; -	    dst++; -	    src++;  	}      } @@ -1774,7 +1767,7 @@ mmx_composite_over_n_8_8888 (pixman_implementation_t *imp,  	CHECKPOINT (); -	while (w) +	if (w)  	{  	    uint64_t m = *mask; @@ -1786,10 +1779,6 @@ mmx_composite_over_n_8_8888 (pixman_implementation_t *imp,  		    vsrc, vsrca, expand_alpha_rev (to_m64 (m)), vdest);  		*dst = store8888 (vdest);  	    } - -	    w--; -	    mask++; -	    dst++;  	}      } @@ -2042,7 +2031,7 @@ mmx_composite_src_n_8_8888 (pixman_implementation_t *imp,  	CHECKPOINT (); -	while (w) +	if (w)  	{  	    uint64_t m = *mask; @@ -2057,10 +2046,6 @@ mmx_composite_src_n_8_8888 (pixman_implementation_t *imp,  	    {  		*dst = 0;  	    } - -	    w--; -	    mask++; -	    dst++;  	}      } @@ -2382,16 +2367,12 @@ mmx_composite_over_pixbuf_8888 (pixman_implementation_t *imp,  	    src += 2;  	} -	while (w) +	if (w)  	{  	    __m64 s = load8888 (*src);  	    __m64 d = load8888 (*dst);  	    *dst = store8888 (over_rev_non_pre (s, d)); - -	    w--; -	    dst++; -	    src++;  	}      } @@ -3056,8 +3037,8 @@ static const pixman_fast_path_t mmx_fast_paths[] =       */      PIXMAN_STD_FAST_PATH    (OVER, x8r8g8b8, a8,       x8r8g8b8, mmx_composite_over_x888_8_8888    ),      PIXMAN_STD_FAST_PATH    (OVER, x8r8g8b8, a8,       a8r8g8b8, mmx_composite_over_x888_8_8888    ), -    PIXMAN_STD_FAST_PATH    (OVER, x8b8r8g8, a8,       x8b8g8r8, mmx_composite_over_x888_8_8888    ), -    PIXMAN_STD_FAST_PATH    (OVER, x8b8r8g8, a8,       a8r8g8b8, mmx_composite_over_x888_8_8888    ), +    PIXMAN_STD_FAST_PATH    (OVER, x8b8g8r8, a8,       x8b8g8r8, mmx_composite_over_x888_8_8888    ), +    PIXMAN_STD_FAST_PATH    (OVER, x8b8g8r8, a8,       a8b8g8r8, mmx_composite_over_x888_8_8888    ),  #endif      PIXMAN_STD_FAST_PATH    (OVER, solid,    null,     a8r8g8b8, mmx_composite_over_n_8888         ),      PIXMAN_STD_FAST_PATH    (OVER, solid,    null,     x8r8g8b8, mmx_composite_over_n_8888         ), diff --git a/pixman/test/lowlevel-blt-bench.c b/pixman/test/lowlevel-blt-bench.c index 099e434f0..bdafb3592 100644 --- a/pixman/test/lowlevel-blt-bench.c +++ b/pixman/test/lowlevel-blt-bench.c @@ -632,6 +632,7 @@ tests_tbl[] =      { "over_8888_0565",        PIXMAN_a8r8g8b8,    0, PIXMAN_OP_OVER,    PIXMAN_null,     0, PIXMAN_r5g6b5 },      { "over_8888_x888",        PIXMAN_a8r8g8b8,    0, PIXMAN_OP_OVER,    PIXMAN_null,     0, PIXMAN_x8r8g8b8 },      { "over_x888_8_0565",      PIXMAN_x8r8g8b8,    0, PIXMAN_OP_OVER,    PIXMAN_a8,       0, PIXMAN_r5g6b5 }, +    { "over_x888_8_8888",      PIXMAN_x8r8g8b8,    0, PIXMAN_OP_OVER,    PIXMAN_a8,       0, PIXMAN_a8r8g8b8 },      { "over_n_8_0565",         PIXMAN_a8r8g8b8,    1, PIXMAN_OP_OVER,    PIXMAN_a8,       0, PIXMAN_r5g6b5 },      { "over_n_8_1555",         PIXMAN_a8r8g8b8,    1, PIXMAN_OP_OVER,    PIXMAN_a8,       0, PIXMAN_a1r5g5b5 },      { "over_n_8_4444",         PIXMAN_a8r8g8b8,    1, PIXMAN_OP_OVER,    PIXMAN_a8,       0, PIXMAN_a4r4g4b4 }, | 
