# HG changeset patch # User lu_zero # Date 1157039077 0 # Node ID dd55fb216497f626d954a29dc0838c02907e0a0a # Parent 2a113750d7784cc93fa8cfb24f4742e525321bab Proper fix for the corner case that would have been corrected before, praise&blame to me and exg in equal shares diff -r 2a113750d778 -r dd55fb216497 ppc/float_altivec.c --- 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 diff -r 2a113750d778 -r dd55fb216497 ppc/h264_altivec.c --- 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; }