changeset 3659:dd55fb216497 libavcodec

Proper fix for the corner case that would have been corrected before, praise&blame to me and exg in equal shares
author lu_zero
date Thu, 31 Aug 2006 15:44:37 +0000
parents 2a113750d778
children 7e1ee254a3ee
files ppc/float_altivec.c ppc/h264_altivec.c
diffstat 2 files changed, 7 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/ppc/float_altivec.c	Thu Aug 31 15:27:26 2006 +0000
+++ b/ppc/float_altivec.c	Thu Aug 31 15:44:37 2006 +0000
@@ -138,10 +138,10 @@
             s2 = vec_ld(0, src2+i);
             edges = vec_perm(t1 ,t0, mask);
             d = vec_madd(s0,s1,s2);
-            t0 = vec_perm(d, edges, align);
-            t1 = vec_perm(edges, d, align);
+            t1 = vec_perm(d, edges, align);
+            t0 = vec_perm(edges, d, align);
+            vec_st(t1, 15, dst+i);
             vec_st(t0, 0, dst+i);
-            vec_st(t1, 15, dst+i);
             t0 = t1;
         }
     else
--- a/ppc/h264_altivec.c	Thu Aug 31 15:27:26 2006 +0000
+++ b/ppc/h264_altivec.c	Thu Aug 31 15:44:37 2006 +0000
@@ -207,11 +207,11 @@
 
         align = vec_lvsr(0, dst);
 
+        tmp2 = vec_perm(d, edges, align);
         tmp1 = vec_perm(edges, d, align);
-        tmp2 = vec_perm(d, edges, align);
 
+        vec_st(tmp2, 15, dst);
         vec_st(tmp1, 0 , dst);
-        vec_st(tmp2, 15, dst);
 
         dst += dst_stride;
     }
@@ -249,11 +249,11 @@
 
         align = vec_lvsr(0, dst);
 
+        tmp2 = vec_perm(d, edges, align);
         tmp1 = vec_perm(edges, d, align);
-        tmp2 = vec_perm(d, edges, align);
 
+        vec_st(tmp2, 15, dst);
         vec_st(tmp1, 0 , dst);
-        vec_st(tmp2, 15, dst);
 
         dst += dst_stride;
     }