You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
avcodec/x86/huffyuvdsp: Remove obsolete MMX functions
The only systems which benefit from these are truely ancient 32bit x86s as all other systems use at least the SSE2 versions (this includes all x64 cpus (which is why this code is restricted to x86-32)). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@@ -32,24 +32,15 @@ SECTION .text
|
|||||||
|
|
||||||
%macro ADD_INT16 0
|
%macro ADD_INT16 0
|
||||||
cglobal add_int16, 4,4,5, dst, src, mask, w, tmp
|
cglobal add_int16, 4,4,5, dst, src, mask, w, tmp
|
||||||
%if mmsize > 8
|
|
||||||
test srcq, mmsize-1
|
test srcq, mmsize-1
|
||||||
jnz .unaligned
|
jnz .unaligned
|
||||||
test dstq, mmsize-1
|
test dstq, mmsize-1
|
||||||
jnz .unaligned
|
jnz .unaligned
|
||||||
%endif
|
|
||||||
INT16_LOOP a, add
|
INT16_LOOP a, add
|
||||||
%if mmsize > 8
|
|
||||||
.unaligned:
|
.unaligned:
|
||||||
INT16_LOOP u, add
|
INT16_LOOP u, add
|
||||||
%endif
|
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
%if ARCH_X86_32
|
|
||||||
INIT_MMX mmx
|
|
||||||
ADD_INT16
|
|
||||||
%endif
|
|
||||||
|
|
||||||
INIT_XMM sse2
|
INIT_XMM sse2
|
||||||
ADD_INT16
|
ADD_INT16
|
||||||
|
|
||||||
@@ -60,7 +51,7 @@ ADD_INT16
|
|||||||
|
|
||||||
; void add_hfyu_left_pred_bgr32(uint8_t *dst, const uint8_t *src,
|
; void add_hfyu_left_pred_bgr32(uint8_t *dst, const uint8_t *src,
|
||||||
; intptr_t w, uint8_t *left)
|
; intptr_t w, uint8_t *left)
|
||||||
%macro LEFT_BGR32 0
|
INIT_XMM sse2
|
||||||
cglobal add_hfyu_left_pred_bgr32, 4,4,3, dst, src, w, left
|
cglobal add_hfyu_left_pred_bgr32, 4,4,3, dst, src, w, left
|
||||||
shl wq, 2
|
shl wq, 2
|
||||||
movd m0, [leftq]
|
movd m0, [leftq]
|
||||||
@@ -71,17 +62,12 @@ cglobal add_hfyu_left_pred_bgr32, 4,4,3, dst, src, w, left
|
|||||||
.loop:
|
.loop:
|
||||||
movu m1, [srcq+wq]
|
movu m1, [srcq+wq]
|
||||||
mova m2, m1
|
mova m2, m1
|
||||||
%if mmsize == 8
|
|
||||||
punpckhdq m0, m0
|
|
||||||
%endif
|
|
||||||
LSHIFT m1, 4
|
LSHIFT m1, 4
|
||||||
paddb m1, m2
|
paddb m1, m2
|
||||||
%if mmsize == 16
|
|
||||||
pshufd m0, m0, q3333
|
pshufd m0, m0, q3333
|
||||||
mova m2, m1
|
mova m2, m1
|
||||||
LSHIFT m1, 8
|
LSHIFT m1, 8
|
||||||
paddb m1, m2
|
paddb m1, m2
|
||||||
%endif
|
|
||||||
paddb m0, m1
|
paddb m0, m1
|
||||||
movu [dstq+wq], m0
|
movu [dstq+wq], m0
|
||||||
add wq, mmsize
|
add wq, mmsize
|
||||||
@@ -89,14 +75,7 @@ cglobal add_hfyu_left_pred_bgr32, 4,4,3, dst, src, w, left
|
|||||||
movd m0, [dstq-4]
|
movd m0, [dstq-4]
|
||||||
movd [leftq], m0
|
movd [leftq], m0
|
||||||
REP_RET
|
REP_RET
|
||||||
%endmacro
|
|
||||||
|
|
||||||
%if ARCH_X86_32
|
|
||||||
INIT_MMX mmx
|
|
||||||
LEFT_BGR32
|
|
||||||
%endif
|
|
||||||
INIT_XMM sse2
|
|
||||||
LEFT_BGR32
|
|
||||||
|
|
||||||
; void add_hfyu_median_prediction_mmxext(uint8_t *dst, const uint8_t *top, const uint8_t *diff, int mask, int w, int *left, int *left_top)
|
; void add_hfyu_median_prediction_mmxext(uint8_t *dst, const uint8_t *top, const uint8_t *diff, int mask, int w, int *left, int *left_top)
|
||||||
INIT_MMX mmxext
|
INIT_MMX mmxext
|
||||||
|
@@ -26,12 +26,9 @@
|
|||||||
#include "libavutil/x86/cpu.h"
|
#include "libavutil/x86/cpu.h"
|
||||||
#include "libavcodec/huffyuvdsp.h"
|
#include "libavcodec/huffyuvdsp.h"
|
||||||
|
|
||||||
void ff_add_int16_mmx(uint16_t *dst, const uint16_t *src, unsigned mask, int w);
|
|
||||||
void ff_add_int16_sse2(uint16_t *dst, const uint16_t *src, unsigned mask, int w);
|
void ff_add_int16_sse2(uint16_t *dst, const uint16_t *src, unsigned mask, int w);
|
||||||
void ff_add_int16_avx2(uint16_t *dst, const uint16_t *src, unsigned mask, int w);
|
void ff_add_int16_avx2(uint16_t *dst, const uint16_t *src, unsigned mask, int w);
|
||||||
|
|
||||||
void ff_add_hfyu_left_pred_bgr32_mmx(uint8_t *dst, const uint8_t *src,
|
|
||||||
intptr_t w, uint8_t *left);
|
|
||||||
void ff_add_hfyu_left_pred_bgr32_sse2(uint8_t *dst, const uint8_t *src,
|
void ff_add_hfyu_left_pred_bgr32_sse2(uint8_t *dst, const uint8_t *src,
|
||||||
intptr_t w, uint8_t *left);
|
intptr_t w, uint8_t *left);
|
||||||
void ff_add_hfyu_median_pred_int16_mmxext(uint16_t *dst, const uint16_t *top, const uint16_t *diff, unsigned mask, int w, int *left, int *left_top);
|
void ff_add_hfyu_median_pred_int16_mmxext(uint16_t *dst, const uint16_t *top, const uint16_t *diff, unsigned mask, int w, int *left, int *left_top);
|
||||||
@@ -41,11 +38,6 @@ av_cold void ff_huffyuvdsp_init_x86(HuffYUVDSPContext *c, enum AVPixelFormat pix
|
|||||||
int cpu_flags = av_get_cpu_flags();
|
int cpu_flags = av_get_cpu_flags();
|
||||||
const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(pix_fmt);
|
const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(pix_fmt);
|
||||||
|
|
||||||
if (ARCH_X86_32 && EXTERNAL_MMX(cpu_flags)) {
|
|
||||||
c->add_hfyu_left_pred_bgr32 = ff_add_hfyu_left_pred_bgr32_mmx;
|
|
||||||
c->add_int16 = ff_add_int16_mmx;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (EXTERNAL_MMXEXT(cpu_flags) && pix_desc && pix_desc->comp[0].depth<16) {
|
if (EXTERNAL_MMXEXT(cpu_flags) && pix_desc && pix_desc->comp[0].depth<16) {
|
||||||
c->add_hfyu_median_pred_int16 = ff_add_hfyu_median_pred_int16_mmxext;
|
c->add_hfyu_median_pred_int16 = ff_add_hfyu_median_pred_int16_mmxext;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user