Proper fix for the corner case that would have been corrected before, praise&blame to me and exg in equal shares

Originally committed as revision 6143 to svn://svn.ffmpeg.org/ffmpeg/trunk
pull/126/head
Luca Barbato 19 years ago
parent 7e82145755
commit 27303c8abc
  1. 6
      libavcodec/ppc/float_altivec.c
  2. 8
      libavcodec/ppc/h264_altivec.c

@ -138,10 +138,10 @@ static void vector_fmul_add_add_altivec(float *dst, const float *src0,
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);
vec_st(t0, 0, dst+i);
t1 = vec_perm(d, edges, align);
t0 = vec_perm(edges, d, align);
vec_st(t1, 15, dst+i);
vec_st(t0, 0, dst+i);
t0 = t1;
}
else

@ -207,11 +207,11 @@ static inline void put_pixels16_l2_altivec( uint8_t * dst, const uint8_t * src1,
align = vec_lvsr(0, dst);
tmp1 = vec_perm(edges, d, align);
tmp2 = vec_perm(d, edges, align);
tmp1 = vec_perm(edges, d, align);
vec_st(tmp1, 0 , dst);
vec_st(tmp2, 15, dst);
vec_st(tmp1, 0 , dst);
dst += dst_stride;
}
@ -249,11 +249,11 @@ static inline void avg_pixels16_l2_altivec( uint8_t * dst, const uint8_t * src1,
align = vec_lvsr(0, dst);
tmp1 = vec_perm(edges, d, align);
tmp2 = vec_perm(d, edges, align);
tmp1 = vec_perm(edges, d, align);
vec_st(tmp1, 0 , dst);
vec_st(tmp2, 15, dst);
vec_st(tmp1, 0 , dst);
dst += dst_stride;
}

Loading…
Cancel
Save