add_bytes passes tests
authorLuca Barbato <lu_zero@gentoo.org>
Mon, 9 Oct 2006 13:37:43 +0000 (13:37 +0000)
committerLuca Barbato <lu_zero@gentoo.org>
Mon, 9 Oct 2006 13:37:43 +0000 (13:37 +0000)
Originally committed as revision 6600 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/ppc/dsputil_altivec.c

index 8a5b697..1df242d 100644 (file)
@@ -637,12 +637,12 @@ void add_bytes_altivec(uint8_t *dst, uint8_t *src, int w) {
     register vector unsigned char vdst, vsrc;
 
     /* dst and src are 16 bytes-aligned (guaranteed) */
     register vector unsigned char vdst, vsrc;
 
     /* dst and src are 16 bytes-aligned (guaranteed) */
-    for(i = 0 ; (i + 15) < w ; i++)
+    for(i = 0 ; (i + 15) < w ; i+=16)
     {
     {
-      vdst = vec_ld(i << 4, (unsigned char*)dst);
-      vsrc = vec_ld(i << 4, (unsigned char*)src);
+      vdst = vec_ld(i, (unsigned char*)dst);
+      vsrc = vec_ld(i, (unsigned char*)src);
       vdst = vec_add(vsrc, vdst);
       vdst = vec_add(vsrc, vdst);
-      vec_st(vdst, i << 4, (unsigned char*)dst);
+      vec_st(vdst, i, (unsigned char*)dst);
     }
     /* if w is not a multiple of 16 */
     for (; (i < w) ; i++)
     }
     /* if w is not a multiple of 16 */
     for (; (i < w) ; i++)
@@ -1839,10 +1839,7 @@ void dsputil_init_altivec(DSPContext* c, AVCodecContext *avctx)
     c->pix_sum = pix_sum_altivec;
     c->diff_pixels = diff_pixels_altivec;
     c->get_pixels = get_pixels_altivec;
     c->pix_sum = pix_sum_altivec;
     c->diff_pixels = diff_pixels_altivec;
     c->get_pixels = get_pixels_altivec;
-// next one disabled as it's untested.
-#if 0
     c->add_bytes= add_bytes_altivec;
     c->add_bytes= add_bytes_altivec;
-#endif /* 0 */
     c->put_pixels_tab[0][0] = put_pixels16_altivec;
     /* the two functions do the same thing, so use the same code */
     c->put_no_rnd_pixels_tab[0][0] = put_pixels16_altivec;
     c->put_pixels_tab[0][0] = put_pixels16_altivec;
     /* the two functions do the same thing, so use the same code */
     c->put_no_rnd_pixels_tab[0][0] = put_pixels16_altivec;