diff options
Diffstat (limited to 'libavcodec/x86/mpegvideoencdsp.asm')
-rw-r--r-- | libavcodec/x86/mpegvideoencdsp.asm | 49 |
1 files changed, 2 insertions, 47 deletions
diff --git a/libavcodec/x86/mpegvideoencdsp.asm b/libavcodec/x86/mpegvideoencdsp.asm index aec73f82dc..e3d88f01c4 100644 --- a/libavcodec/x86/mpegvideoencdsp.asm +++ b/libavcodec/x86/mpegvideoencdsp.asm @@ -23,21 +23,15 @@ %include "libavutil/x86/x86util.asm" -SECTION_RODATA - -cextern pw_1 - SECTION .text -; int ff_pix_sum16_mmx(uint8_t *pix, int line_size) +; int ff_pix_sum16(uint8_t *pix, int line_size) ; %1 = number of loops ; %2 = number of GPRs used %macro PIX_SUM16 3 cglobal pix_sum16, 2, %2, 6 movsxdifnidn r1, r1d mov r2, %1 -%if mmsize == 16 lea r3, [r1*3] -%endif %if notcpuflag(xop) pxor m5, m5 %endif @@ -50,56 +44,27 @@ cglobal pix_sum16, 2, %2, 6 vphaddubq m3, [r0+r3] %else mova m0, [r0] -%if mmsize == 8 - mova m1, [r0+8] -%if cpuflag(mmxext) - mova m2, [r0+r1] - mova m3, [r0+r1+8] -%endif -%else ; sse2 mova m1, [r0+r1] mova m2, [r0+r1*2] mova m3, [r0+r3] -%endif -%if cpuflag(mmxext) psadbw m0, m5 psadbw m1, m5 psadbw m2, m5 psadbw m3, m5 -%else ; mmx - punpckhbw m2, m0, m5 - punpcklbw m0, m5 - punpckhbw m3, m1, m5 - punpcklbw m1, m5 -%endif ; cpuflag(mmxext) %endif ; cpuflag(xop) paddw m1, m0 paddw m3, m2 paddw m3, m1 paddw m4, m3 -%if cpuflag(mmxext) lea r0, [r0+r1*%3] -%else - add r0, r1 -%endif dec r2 jne .loop -%if mmsize == 16 pshufd m0, m4, q0032 paddd m4, m0 -%elif notcpuflag(mmxext) - HADDW m4, m5 -%endif movd eax, m4 RET %endmacro -%if ARCH_X86_32 -INIT_MMX mmx -PIX_SUM16 16, 3, 0 -INIT_MMX mmxext -PIX_SUM16 8, 4, 2 -%endif INIT_XMM sse2 PIX_SUM16 4, 4, 4 %if HAVE_XOP_EXTERNAL @@ -107,7 +72,7 @@ INIT_XMM xop PIX_SUM16 4, 4, 4 %endif -; int ff_pix_norm1_mmx(uint8_t *pix, int line_size) +; int ff_pix_norm1(uint8_t *pix, int line_size) ; %1 = number of xmm registers used ; %2 = number of loops %macro PIX_NORM1 2 @@ -118,11 +83,7 @@ cglobal pix_norm1, 2, 3, %1 pxor m5, m5 .loop: mova m2, [r0+0] -%if mmsize == 8 - mova m3, [r0+8] -%else mova m3, [r0+r1] -%endif punpckhbw m1, m2, m0 punpcklbw m2, m0 punpckhbw m4, m3, m0 @@ -135,11 +96,7 @@ cglobal pix_norm1, 2, 3, %1 paddd m4, m3 paddd m5, m2 paddd m5, m4 -%if mmsize == 8 - add r0, r1 -%else lea r0, [r0+r1*2] -%endif dec r2 jne .loop HADDD m5, m1 @@ -147,8 +104,6 @@ cglobal pix_norm1, 2, 3, %1 RET %endmacro -INIT_MMX mmx -PIX_NORM1 0, 16 INIT_XMM sse2 PIX_NORM1 6, 8 |