mirror of
https://salsa.debian.org/xorg-team/lib/pixman
synced 2025-08-31 01:15:49 +00:00
mmx: convert while (w) to if (w) when possible
gcc isn't able to see that w is no greater than 1, so it generates unnecessary loop instructions with while (w). Signed-off-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
38a7aae1d9
commit
57fd8c37aa
@ -1142,12 +1142,9 @@ mmx_composite_over_n_8888 (pixman_implementation_t *imp,
|
|||||||
|
|
||||||
CHECKPOINT ();
|
CHECKPOINT ();
|
||||||
|
|
||||||
while (w)
|
if (w)
|
||||||
{
|
{
|
||||||
*dst = store8888 (over (vsrc, vsrca, load8888 (*dst)));
|
*dst = store8888 (over (vsrc, vsrca, load8888 (*dst)));
|
||||||
|
|
||||||
w--;
|
|
||||||
dst++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1383,16 +1380,12 @@ mmx_composite_over_8888_n_8888 (pixman_implementation_t *imp,
|
|||||||
src += 2;
|
src += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (w)
|
if (w)
|
||||||
{
|
{
|
||||||
__m64 s = load8888 (*src);
|
__m64 s = load8888 (*src);
|
||||||
__m64 d = load8888 (*dst);
|
__m64 d = load8888 (*dst);
|
||||||
|
|
||||||
*dst = store8888 (in_over (s, expand_alpha (s), vmask, d));
|
*dst = store8888 (in_over (s, expand_alpha (s), vmask, d));
|
||||||
|
|
||||||
w--;
|
|
||||||
dst++;
|
|
||||||
src++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1758,7 +1751,7 @@ mmx_composite_over_n_8_8888 (pixman_implementation_t *imp,
|
|||||||
|
|
||||||
CHECKPOINT ();
|
CHECKPOINT ();
|
||||||
|
|
||||||
while (w)
|
if (w)
|
||||||
{
|
{
|
||||||
uint64_t m = *mask;
|
uint64_t m = *mask;
|
||||||
|
|
||||||
@ -1770,10 +1763,6 @@ mmx_composite_over_n_8_8888 (pixman_implementation_t *imp,
|
|||||||
vsrc, vsrca, expand_alpha_rev (to_m64 (m)), vdest);
|
vsrc, vsrca, expand_alpha_rev (to_m64 (m)), vdest);
|
||||||
*dst = store8888 (vdest);
|
*dst = store8888 (vdest);
|
||||||
}
|
}
|
||||||
|
|
||||||
w--;
|
|
||||||
mask++;
|
|
||||||
dst++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2026,7 +2015,7 @@ mmx_composite_src_n_8_8888 (pixman_implementation_t *imp,
|
|||||||
|
|
||||||
CHECKPOINT ();
|
CHECKPOINT ();
|
||||||
|
|
||||||
while (w)
|
if (w)
|
||||||
{
|
{
|
||||||
uint64_t m = *mask;
|
uint64_t m = *mask;
|
||||||
|
|
||||||
@ -2041,10 +2030,6 @@ mmx_composite_src_n_8_8888 (pixman_implementation_t *imp,
|
|||||||
{
|
{
|
||||||
*dst = 0;
|
*dst = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
w--;
|
|
||||||
mask++;
|
|
||||||
dst++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2366,16 +2351,12 @@ mmx_composite_over_pixbuf_8888 (pixman_implementation_t *imp,
|
|||||||
src += 2;
|
src += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (w)
|
if (w)
|
||||||
{
|
{
|
||||||
__m64 s = load8888 (*src);
|
__m64 s = load8888 (*src);
|
||||||
__m64 d = load8888 (*dst);
|
__m64 d = load8888 (*dst);
|
||||||
|
|
||||||
*dst = store8888 (over_rev_non_pre (s, d));
|
*dst = store8888 (over_rev_non_pre (s, d));
|
||||||
|
|
||||||
w--;
|
|
||||||
dst++;
|
|
||||||
src++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user