mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-23 04:24:35 +02:00
avcodec/x86/pixblockdsp: Remove obsolete MMX functions
x64 always has MMX, MMXEXT, SSE and SSE2 and this means that some functions for MMX, MMXEXT and 3dnow are always overridden by other functions (unless one e.g. explicitly disables SSE2) for x64. So given that the only systems that benefit from these functions are truely ancient 32bit x86s they are removed. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
parent
ee551a21dd
commit
92b5800277
@ -25,30 +25,6 @@
|
||||
|
||||
SECTION .text
|
||||
|
||||
INIT_MMX mmx
|
||||
; void ff_get_pixels_mmx(int16_t *block, const uint8_t *pixels, ptrdiff_t stride)
|
||||
cglobal get_pixels, 3,4
|
||||
add r0, 128
|
||||
mov r3, -128
|
||||
pxor m7, m7
|
||||
.loop:
|
||||
mova m0, [r1]
|
||||
mova m2, [r1+r2]
|
||||
mova m1, m0
|
||||
mova m3, m2
|
||||
punpcklbw m0, m7
|
||||
punpckhbw m1, m7
|
||||
punpcklbw m2, m7
|
||||
punpckhbw m3, m7
|
||||
mova [r0+r3+ 0], m0
|
||||
mova [r0+r3+ 8], m1
|
||||
mova [r0+r3+16], m2
|
||||
mova [r0+r3+24], m3
|
||||
lea r1, [r1+r2*2]
|
||||
add r3, 32
|
||||
js .loop
|
||||
REP_RET
|
||||
|
||||
INIT_XMM sse2
|
||||
cglobal get_pixels, 3, 4, 5
|
||||
lea r3, [r2*3]
|
||||
@ -80,9 +56,9 @@ cglobal get_pixels, 3, 4, 5
|
||||
mova [r0+0x70], m3
|
||||
RET
|
||||
|
||||
; void ff_diff_pixels_mmx(int16_t *block, const uint8_t *s1, const uint8_t *s2,
|
||||
; ptrdiff_t stride);
|
||||
%macro DIFF_PIXELS 0
|
||||
; void ff_diff_pixels(int16_t *block, const uint8_t *s1, const uint8_t *s2,
|
||||
; ptrdiff_t stride);
|
||||
INIT_XMM sse2
|
||||
cglobal diff_pixels, 4,5,5
|
||||
pxor m4, m4
|
||||
add r0, 128
|
||||
@ -90,39 +66,18 @@ cglobal diff_pixels, 4,5,5
|
||||
.loop:
|
||||
movq m0, [r1]
|
||||
movq m2, [r2]
|
||||
%if mmsize == 8
|
||||
movq m1, m0
|
||||
movq m3, m2
|
||||
punpcklbw m0, m4
|
||||
punpckhbw m1, m4
|
||||
punpcklbw m2, m4
|
||||
punpckhbw m3, m4
|
||||
%else
|
||||
movq m1, [r1+r3]
|
||||
movq m3, [r2+r3]
|
||||
punpcklbw m0, m4
|
||||
punpcklbw m1, m4
|
||||
punpcklbw m2, m4
|
||||
punpcklbw m3, m4
|
||||
%endif
|
||||
psubw m0, m2
|
||||
psubw m1, m3
|
||||
mova [r0+r4+0], m0
|
||||
mova [r0+r4+mmsize], m1
|
||||
%if mmsize == 8
|
||||
add r1, r3
|
||||
add r2, r3
|
||||
%else
|
||||
lea r1, [r1+r3*2]
|
||||
lea r2, [r2+r3*2]
|
||||
%endif
|
||||
add r4, 2 * mmsize
|
||||
jne .loop
|
||||
RET
|
||||
%endmacro
|
||||
|
||||
INIT_MMX mmx
|
||||
DIFF_PIXELS
|
||||
|
||||
INIT_XMM sse2
|
||||
DIFF_PIXELS
|
||||
|
@ -23,10 +23,7 @@
|
||||
#include "libavutil/x86/cpu.h"
|
||||
#include "libavcodec/pixblockdsp.h"
|
||||
|
||||
void ff_get_pixels_mmx(int16_t *block, const uint8_t *pixels, ptrdiff_t stride);
|
||||
void ff_get_pixels_sse2(int16_t *block, const uint8_t *pixels, ptrdiff_t stride);
|
||||
void ff_diff_pixels_mmx(int16_t *block, const uint8_t *s1, const uint8_t *s2,
|
||||
ptrdiff_t stride);
|
||||
void ff_diff_pixels_sse2(int16_t *block, const uint8_t *s1, const uint8_t *s2,
|
||||
ptrdiff_t stride);
|
||||
|
||||
@ -36,15 +33,6 @@ av_cold void ff_pixblockdsp_init_x86(PixblockDSPContext *c,
|
||||
{
|
||||
int cpu_flags = av_get_cpu_flags();
|
||||
|
||||
if (EXTERNAL_MMX(cpu_flags)) {
|
||||
if (!high_bit_depth) {
|
||||
c->get_pixels_unaligned =
|
||||
c->get_pixels = ff_get_pixels_mmx;
|
||||
}
|
||||
c->diff_pixels_unaligned =
|
||||
c->diff_pixels = ff_diff_pixels_mmx;
|
||||
}
|
||||
|
||||
if (EXTERNAL_SSE2(cpu_flags)) {
|
||||
if (!high_bit_depth) {
|
||||
c->get_pixels_unaligned =
|
||||
|
Loading…
x
Reference in New Issue
Block a user