summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gmail.com>2011-09-23 14:10:52 -0400
committerMatt Turner <mattst88@gmail.com>2011-09-26 11:30:05 -0400
commit57fd8c37aa3148b1d70bad65e1a49721e9a47d7e (patch)
tree9afbbaef8e25a1be9f606e72fdf911c83bd65ecd
parent38a7aae1d9c8e1e41de22f9c3846dfc975af6838 (diff)
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>
-rw-r--r--pixman/pixman-mmx.c29
1 files changed, 5 insertions, 24 deletions
diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c
index f835a143..c044593d 100644
--- a/pixman/pixman-mmx.c
+++ b/pixman/pixman-mmx.c
@@ -1142,12 +1142,9 @@ mmx_composite_over_n_8888 (pixman_implementation_t *imp,
CHECKPOINT ();
- while (w)
+ if (w)
{
*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;
}
- 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++;
}
}
@@ -1758,7 +1751,7 @@ mmx_composite_over_n_8_8888 (pixman_implementation_t *imp,
CHECKPOINT ();
- while (w)
+ if (w)
{
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);
*dst = store8888 (vdest);
}
-
- w--;
- mask++;
- dst++;
}
}
@@ -2026,7 +2015,7 @@ mmx_composite_src_n_8_8888 (pixman_implementation_t *imp,
CHECKPOINT ();
- while (w)
+ if (w)
{
uint64_t m = *mask;
@@ -2041,10 +2030,6 @@ mmx_composite_src_n_8_8888 (pixman_implementation_t *imp,
{
*dst = 0;
}
-
- w--;
- mask++;
- dst++;
}
}
@@ -2366,16 +2351,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++;
}
}