diff options
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/x86/mpegvideoencdsp.asm | 49 | ||||
-rw-r--r-- | libavcodec/x86/mpegvideoencdsp_init.c | 14 |
2 files changed, 2 insertions, 61 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 diff --git a/libavcodec/x86/mpegvideoencdsp_init.c b/libavcodec/x86/mpegvideoencdsp_init.c index 532836cec9..b9c80b5382 100644 --- a/libavcodec/x86/mpegvideoencdsp_init.c +++ b/libavcodec/x86/mpegvideoencdsp_init.c @@ -23,11 +23,8 @@ #include "libavcodec/avcodec.h" #include "libavcodec/mpegvideoencdsp.h" -int ff_pix_sum16_mmx(uint8_t *pix, int line_size); -int ff_pix_sum16_mmxext(uint8_t *pix, int line_size); int ff_pix_sum16_sse2(uint8_t *pix, int line_size); int ff_pix_sum16_xop(uint8_t *pix, int line_size); -int ff_pix_norm1_mmx(uint8_t *pix, int line_size); int ff_pix_norm1_sse2(uint8_t *pix, int line_size); #if HAVE_INLINE_ASM @@ -219,17 +216,6 @@ av_cold void ff_mpegvideoencdsp_init_x86(MpegvideoEncDSPContext *c, { int cpu_flags = av_get_cpu_flags(); -#if ARCH_X86_32 - if (EXTERNAL_MMX(cpu_flags)) { - c->pix_sum = ff_pix_sum16_mmx; - c->pix_norm1 = ff_pix_norm1_mmx; - } - - if (EXTERNAL_MMXEXT(cpu_flags)) { - c->pix_sum = ff_pix_sum16_mmxext; - } -#endif - if (EXTERNAL_SSE2(cpu_flags)) { c->pix_sum = ff_pix_sum16_sse2; c->pix_norm1 = ff_pix_norm1_sse2; |