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 <matts...@gmail.com>
---
 pixman/pixman-mmx.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c
index f835a14..6c57909 100644
--- a/pixman/pixman-mmx.c
+++ b/pixman/pixman-mmx.c
@@ -1142,7 +1142,7 @@ mmx_composite_over_n_8888 (pixman_implementation_t *imp,
 
        CHECKPOINT ();
 
-       while (w)
+       if (w)
        {
            *dst = store8888 (over (vsrc, vsrca, load8888 (*dst)));
 
@@ -1383,7 +1383,7 @@ mmx_composite_over_8888_n_8888 (pixman_implementation_t 
*imp,
            src += 2;
        }
 
-       while (w)
+       if (w)
        {
            __m64 s = load8888 (*src);
            __m64 d = load8888 (*dst);
@@ -1758,7 +1758,7 @@ mmx_composite_over_n_8_8888 (pixman_implementation_t *imp,
 
        CHECKPOINT ();
 
-       while (w)
+       if (w)
        {
            uint64_t m = *mask;
 
@@ -2026,7 +2026,7 @@ mmx_composite_src_n_8_8888 (pixman_implementation_t *imp,
 
        CHECKPOINT ();
 
-       while (w)
+       if (w)
        {
            uint64_t m = *mask;
 
@@ -2366,7 +2366,7 @@ mmx_composite_over_pixbuf_8888 (pixman_implementation_t 
*imp,
            src += 2;
        }
 
-       while (w)
+       if (w)
        {
            __m64 s = load8888 (*src);
            __m64 d = load8888 (*dst);
-- 
1.7.3.4

_______________________________________________
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman

Reply via email to