[FFmpeg-devel] [PATCH] ac3dsp: remove 3dnow version of float_to_fixed24
Daniel Verkamp
daniel at drv.nu
Tue Nov 17 08:00:00 CET 2015
This implementation is only used in a very narrow set of circumstances:
it is not bitexact, and there is an SSE implementation, so the 3DNow
version would only get used on K6-II/K6-III/early (pre-XP) Athlon CPUs.
It is completely dead code in x86-64 builds.
Signed-off-by: Daniel Verkamp <daniel at drv.nu>
---
libavcodec/x86/ac3dsp.asm | 29 -----------------------------
libavcodec/x86/ac3dsp_init.c | 6 ------
2 files changed, 35 deletions(-)
diff --git a/libavcodec/x86/ac3dsp.asm b/libavcodec/x86/ac3dsp.asm
index 675ade3..dbb5dab 100644
--- a/libavcodec/x86/ac3dsp.asm
+++ b/libavcodec/x86/ac3dsp.asm
@@ -212,35 +212,6 @@ AC3_SHIFT r, 32, psrad
; void ff_float_to_fixed24(int32_t *dst, const float *src, unsigned int len)
;-----------------------------------------------------------------------------
-; The 3DNow! version is not bit-identical because pf2id uses truncation rather
-; than round-to-nearest.
-INIT_MMX 3dnow
-cglobal float_to_fixed24, 3, 3, 0, dst, src, len
- movq m0, [pf_1_24]
-.loop:
- movq m1, [srcq ]
- movq m2, [srcq+8 ]
- movq m3, [srcq+16]
- movq m4, [srcq+24]
- pfmul m1, m0
- pfmul m2, m0
- pfmul m3, m0
- pfmul m4, m0
- pf2id m1, m1
- pf2id m2, m2
- pf2id m3, m3
- pf2id m4, m4
- movq [dstq ], m1
- movq [dstq+8 ], m2
- movq [dstq+16], m3
- movq [dstq+24], m4
- add srcq, 32
- add dstq, 32
- sub lend, 8
- ja .loop
- femms
- RET
-
INIT_XMM sse
cglobal float_to_fixed24, 3, 3, 3, dst, src, len
movaps m0, [pf_1_24]
diff --git a/libavcodec/x86/ac3dsp_init.c b/libavcodec/x86/ac3dsp_init.c
index eea2736..f229f34 100644
--- a/libavcodec/x86/ac3dsp_init.c
+++ b/libavcodec/x86/ac3dsp_init.c
@@ -41,7 +41,6 @@ void ff_ac3_lshift_int16_sse2(int16_t *src, unsigned int len, unsigned int shift
void ff_ac3_rshift_int32_mmx (int32_t *src, unsigned int len, unsigned int shift);
void ff_ac3_rshift_int32_sse2(int32_t *src, unsigned int len, unsigned int shift);
-void ff_float_to_fixed24_3dnow(int32_t *dst, const float *src, unsigned int len);
void ff_float_to_fixed24_sse (int32_t *dst, const float *src, unsigned int len);
void ff_float_to_fixed24_sse2 (int32_t *dst, const float *src, unsigned int len);
@@ -206,11 +205,6 @@ av_cold void ff_ac3dsp_init_x86(AC3DSPContext *c, int bit_exact)
c->ac3_lshift_int16 = ff_ac3_lshift_int16_mmx;
c->ac3_rshift_int32 = ff_ac3_rshift_int32_mmx;
}
- if (EXTERNAL_AMD3DNOW(cpu_flags)) {
- if (!bit_exact) {
- c->float_to_fixed24 = ff_float_to_fixed24_3dnow;
- }
- }
if (EXTERNAL_MMXEXT(cpu_flags)) {
c->ac3_exponent_min = ff_ac3_exponent_min_mmxext;
c->ac3_max_msb_abs_int16 = ff_ac3_max_msb_abs_int16_mmxext;
--
2.4.10
More information about the ffmpeg-devel
mailing list