From f54c7a0aff71f4efe4d75af3f53c668ba5b11229 Mon Sep 17 00:00:00 2001 From: Miguel Freitas Date: Thu, 14 Nov 2002 23:27:44 +0000 Subject: sync and enable dv decoder CVS patchset: 3261 CVS date: 2002/11/14 23:27:44 --- src/libffmpeg/libavcodec/i386/dsputil_mmx.c | 48 +++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'src/libffmpeg/libavcodec/i386/dsputil_mmx.c') diff --git a/src/libffmpeg/libavcodec/i386/dsputil_mmx.c b/src/libffmpeg/libavcodec/i386/dsputil_mmx.c index 94b88b70e..12a360154 100644 --- a/src/libffmpeg/libavcodec/i386/dsputil_mmx.c +++ b/src/libffmpeg/libavcodec/i386/dsputil_mmx.c @@ -453,6 +453,51 @@ static int pix_sum16_mmx(UINT8 * pix, int line_size){ return sum; } +static void add_bytes_mmx(uint8_t *dst, uint8_t *src, int w){ + int i=0; + asm volatile( + "1: \n\t" + "movq (%1, %0), %%mm0 \n\t" + "movq (%2, %0), %%mm1 \n\t" + "paddb %%mm0, %%mm1 \n\t" + "movq %%mm1, (%2, %0) \n\t" + "movq 8(%1, %0), %%mm0 \n\t" + "movq 8(%2, %0), %%mm1 \n\t" + "paddb %%mm0, %%mm1 \n\t" + "movq %%mm1, 8(%2, %0) \n\t" + "addl $16, %0 \n\t" + "cmpl %3, %0 \n\t" + " jb 1b \n\t" + : "+r" (i) + : "r"(src), "r"(dst), "r"(w-15) + ); + for(; iavg_no_rnd_pixels_tab[1][1] = avg_no_rnd_pixels8_x2_mmx; c->avg_no_rnd_pixels_tab[1][2] = avg_no_rnd_pixels8_y2_mmx; c->avg_no_rnd_pixels_tab[1][3] = avg_no_rnd_pixels8_xy2_mmx; + + c->add_bytes= add_bytes_mmx; + c->diff_bytes= diff_bytes_mmx; if (mm_flags & MM_MMXEXT) { c->pix_abs16x16 = pix_abs16x16_mmx2; -- cgit v1.2.3