Loongson:
in_n_8_8 =  L1:  80.23  L2:  81.66  M: 55.71 ( 58.47%)  HT: 39.27  VT: 38.36  
R: 30.34  RT: 12.23 ( 121Kops/s)
in_n_8_8 =  L1:  85.38  L2:  86.92  M: 58.00 ( 61.03%)  HT: 47.52  VT: 40.55  
R: 35.18  RT: 14.77 ( 138Kops/s)

ARM/iwMMXt:
in_n_8_8 =  L1:  71.04  L2:  69.97  M: 50.06 ( 44.64%)  HT: 33.55  VT: 33.55  
R: 28.57  RT: 13.05 ( 103Kops/s)
in_n_8_8 =  L1:  75.71  L2:  70.41  M: 49.80 ( 44.99%)  HT: 34.87  VT: 34.84  
R: 27.77  RT: 13.87 ( 110Kops/s)

Signed-off-by: Matt Turner <[email protected]>
---
 pixman/pixman-mmx.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c
index 21ba076..8ad0135 100644
--- a/pixman/pixman-mmx.c
+++ b/pixman/pixman-mmx.c
@@ -2630,7 +2630,10 @@ mmx_composite_in_n_8_8 (pixman_implementation_t *imp,
            d = *dst;
 
            m = MUL_UN8 (sa, a, tmp);
-           d = MUL_UN8 (m, d, tmp);
+           if (m == 0)
+               d = 0;
+           else
+               d = MUL_UN8 (m, d, tmp);
 
            *dst++ = d;
            w--;
@@ -2661,7 +2664,10 @@ mmx_composite_in_n_8_8 (pixman_implementation_t *imp,
            d = *dst;
 
            m = MUL_UN8 (sa, a, tmp);
-           d = MUL_UN8 (m, d, tmp);
+           if (m == 0)
+               d = 0;
+           else
+               d = MUL_UN8 (m, d, tmp);
 
            *dst++ = d;
        }
-- 
1.7.3.4

_______________________________________________
Pixman mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pixman

Reply via email to