1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-10-06 05:47:18 +02:00

avcodec/x86/qpel{,dsp_init}: Remove constant function parameters

ff_avg_pixels{4,8,16}_l2_mmxext() are always called with height
equal to their blocksize. And ff_{put,avg}_pixels4_l2_mmxext()
are furthermore always called with both strides being equal.
So remove these redundant function parameters.

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt
2025-09-27 04:33:04 +02:00
parent 52a77128fd
commit 1e11fdff52
3 changed files with 83 additions and 63 deletions

View File

@@ -31,21 +31,27 @@
#if HAVE_X86ASM #if HAVE_X86ASM
void ff_put_pixels4_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, void ff_put_pixels4_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h); ptrdiff_t stride);
void ff_avg_pixels4_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, void ff_avg_pixels4_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h); ptrdiff_t stride);
void ff_put_pixels8_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, void ff_put_pixels8_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h); ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
void ff_avg_pixels8_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, void ff_avg_pixels8_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h); ptrdiff_t dstStride, ptrdiff_t src1Stride);
void ff_put_pixels16_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, void ff_put_pixels16_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h); ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
void ff_avg_pixels16_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, void ff_avg_pixels16_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h); ptrdiff_t dstStride, ptrdiff_t src1Stride);
#define ff_put_pixels4_l2_mmxext(dst, src1, src2, dststride, src1stride, h) \
ff_put_pixels4_l2_mmxext((dst), (src1), (src2), (dststride))
#define ff_avg_pixels4_l2_mmxext(dst, src1, src2, dststride, src1stride, h) \
ff_avg_pixels4_l2_mmxext((dst), (src1), (src2), (dststride))
#define ff_put_pixels8_l2_sse2 ff_put_pixels8_l2_mmxext #define ff_put_pixels8_l2_sse2 ff_put_pixels8_l2_mmxext
#define ff_avg_pixels8_l2_sse2 ff_avg_pixels8_l2_mmxext #define ff_avg_pixels8_l2_sse2(dst, src1, src2, dststride, src1stride, h) \
ff_avg_pixels8_l2_mmxext((dst), (src1), (src2), (dststride), (src1stride))
#define ff_put_pixels16_l2_sse2 ff_put_pixels16_l2_mmxext #define ff_put_pixels16_l2_sse2 ff_put_pixels16_l2_mmxext
#define ff_avg_pixels16_l2_sse2 ff_avg_pixels16_l2_mmxext #define ff_avg_pixels16_l2_sse2(dst, src1, src2, dststride, src1stride, h) \
ff_avg_pixels16_l2_mmxext((dst), (src1), (src2), (dststride), (src1stride))
#define ff_put_pixels4_mmxext(...) #define ff_put_pixels4_mmxext(...)
#define DEF_QPEL(OPNAME)\ #define DEF_QPEL(OPNAME)\

View File

@@ -45,20 +45,20 @@ SECTION .text
%endmacro %endmacro
; void ff_put/avg_pixels4_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2, ; void ff_put/avg_pixels4_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h) ; ptrdiff_t stride)
%macro PIXELS4_L2 1 %macro PIXELS4_L2 1
%define OP op_%1h %define OP op_%1h
cglobal %1_pixels4_l2, 6,6 cglobal %1_pixels4_l2, 4,4
mova m0, [r1] mova m0, [r1]
mova m1, [r1+r4] mova m1, [r1+r3]
lea r1, [r1+2*r4] lea r1, [r1+2*r3]
pavgb m0, [r2] pavgb m0, [r2]
pavgb m1, [r2+4] pavgb m1, [r2+4]
OP m0, [r0], m3 OP m0, [r0], m3
OP m1, [r0+r3], m3 OP m1, [r0+r3], m3
lea r0, [r0+2*r3] lea r0, [r0+2*r3]
mova m0, [r1] mova m0, [r1]
mova m1, [r1+r4] mova m1, [r1+r3]
pavgb m0, [r2+8] pavgb m0, [r2+8]
pavgb m1, [r2+12] pavgb m1, [r2+12]
OP m0, [r0], m3 OP m0, [r0], m3
@@ -70,12 +70,12 @@ INIT_MMX mmxext
PIXELS4_L2 put PIXELS4_L2 put
PIXELS4_L2 avg PIXELS4_L2 avg
; void ff_put/avg_pixels8_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
%macro PIXELS8_L2 1 %macro PIXELS8_L2 1
%define OP op_%1 %define OP op_%1
cglobal %1_pixels8_l2, 6,6
%ifidn %1, put %ifidn %1, put
; void ff_put_pixels8_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
cglobal put_pixels8_l2, 6,6
test r5d, 1 test r5d, 1
je .loop je .loop
mova m0, [r1] mova m0, [r1]
@@ -86,6 +86,11 @@ cglobal %1_pixels8_l2, 6,6
OP m0, [r0] OP m0, [r0]
add r0, r3 add r0, r3
dec r5d dec r5d
%else
; void ff_avg_pixels8_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
; ptrdiff_t dstStride, ptrdiff_t src1Stride)
cglobal avg_pixels8_l2, 5,6
mov r5d, 8
%endif %endif
.loop: .loop:
mova m0, [r1] mova m0, [r1]
@@ -114,12 +119,12 @@ INIT_MMX mmxext
PIXELS8_L2 put PIXELS8_L2 put
PIXELS8_L2 avg PIXELS8_L2 avg
; void ff_put/avg_pixels16_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
%macro PIXELS16_L2 1 %macro PIXELS16_L2 1
%define OP op_%1 %define OP op_%1
cglobal %1_pixels16_l2, 6,6
%ifidn %1, put %ifidn %1, put
; void ff_put_pixels16_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
cglobal put_pixels16_l2, 6,6
test r5d, 1 test r5d, 1
je .loop je .loop
mova m0, [r1] mova m0, [r1]
@@ -132,6 +137,11 @@ cglobal %1_pixels16_l2, 6,6
OP m1, [r0+8] OP m1, [r0+8]
add r0, r3 add r0, r3
dec r5d dec r5d
%else
; void ff_avg_pixels16_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
; ptrdiff_t dstStride, ptrdiff_t src1Stride)
cglobal avg_pixels16_l2, 5,6
mov r5d, 16
%endif %endif
.loop: .loop:
mova m0, [r1] mova m0, [r1]

View File

@@ -39,13 +39,13 @@ void ff_put_no_rnd_pixels8_l2_mmxext(uint8_t *dst,
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h); ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
void ff_avg_pixels8_l2_mmxext(uint8_t *dst, void ff_avg_pixels8_l2_mmxext(uint8_t *dst,
const uint8_t *src1, const uint8_t *src2, const uint8_t *src1, const uint8_t *src2,
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h); ptrdiff_t dstStride, ptrdiff_t src1Stride);
void ff_put_pixels16_l2_mmxext(uint8_t *dst, void ff_put_pixels16_l2_mmxext(uint8_t *dst,
const uint8_t *src1, const uint8_t *src2, const uint8_t *src1, const uint8_t *src2,
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h); ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
void ff_avg_pixels16_l2_mmxext(uint8_t *dst, void ff_avg_pixels16_l2_mmxext(uint8_t *dst,
const uint8_t *src1, const uint8_t *src2, const uint8_t *src1, const uint8_t *src2,
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h); ptrdiff_t dstStride, ptrdiff_t src1Stride);
void ff_put_no_rnd_pixels16_l2_mmxext(uint8_t *dst, void ff_put_no_rnd_pixels16_l2_mmxext(uint8_t *dst,
const uint8_t *src1, const uint8_t *src2, const uint8_t *src1, const uint8_t *src2,
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h); ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
@@ -82,7 +82,7 @@ void ff_put_no_rnd_mpeg4_qpel8_v_lowpass_mmxext(uint8_t *dst,
#if HAVE_X86ASM #if HAVE_X86ASM
#define QPEL_OP(OPNAME, RND, MMX) \ #define QPEL_OP(OPNAME, RND, MMX, ARG) \
static void OPNAME ## qpel8_mc10_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel8_mc10_ ## MMX(uint8_t *dst, \
const uint8_t *src, \ const uint8_t *src, \
ptrdiff_t stride) \ ptrdiff_t stride) \
@@ -91,8 +91,8 @@ static void OPNAME ## qpel8_mc10_ ## MMX(uint8_t *dst, \
uint8_t *const half = (uint8_t *) temp; \ uint8_t *const half = (uint8_t *) temp; \
ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(half, src, 8, \ ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(half, src, 8, \
stride, 8); \ stride, 8); \
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, src, half, \ ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, src, half, \
stride, stride, 8); \ stride, stride, 8)); \
} \ } \
\ \
static void OPNAME ## qpel8_mc20_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel8_mc20_ ## MMX(uint8_t *dst, \
@@ -111,8 +111,8 @@ static void OPNAME ## qpel8_mc30_ ## MMX(uint8_t *dst, \
uint8_t *const half = (uint8_t *) temp; \ uint8_t *const half = (uint8_t *) temp; \
ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(half, src, 8, \ ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(half, src, 8, \
stride, 8); \ stride, 8); \
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, src + 1, half, stride, \ ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, src + 1, half, \
stride, 8); \ stride, stride, 8)); \
} \ } \
\ \
static void OPNAME ## qpel8_mc01_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel8_mc01_ ## MMX(uint8_t *dst, \
@@ -123,8 +123,8 @@ static void OPNAME ## qpel8_mc01_ ## MMX(uint8_t *dst, \
uint8_t *const half = (uint8_t *) temp; \ uint8_t *const half = (uint8_t *) temp; \
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(half, src, \ ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(half, src, \
8, stride); \ 8, stride); \
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, src, half, \ ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, src, half, \
stride, stride, 8); \ stride, stride, 8)); \
} \ } \
\ \
static void OPNAME ## qpel8_mc02_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel8_mc02_ ## MMX(uint8_t *dst, \
@@ -143,8 +143,8 @@ static void OPNAME ## qpel8_mc03_ ## MMX(uint8_t *dst, \
uint8_t *const half = (uint8_t *) temp; \ uint8_t *const half = (uint8_t *) temp; \
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(half, src, \ ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(half, src, \
8, stride); \ 8, stride); \
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, src + stride, half, stride,\ ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, src + stride, half, \
stride, 8); \ stride, stride, 8)); \
} \ } \
\ \
static void OPNAME ## qpel8_mc11_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel8_mc11_ ## MMX(uint8_t *dst, \
@@ -159,8 +159,8 @@ static void OPNAME ## qpel8_mc11_ ## MMX(uint8_t *dst, \
ff_put ## RND ## pixels8_l2_ ## MMX(halfH, src, halfH, 8, \ ff_put ## RND ## pixels8_l2_ ## MMX(halfH, src, halfH, 8, \
stride, 9); \ stride, 9); \
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\ ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, halfH, halfHV, \ ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, halfH, halfHV, \
stride, 8, 8); \ stride, 8, 8)); \
} \ } \
\ \
static void OPNAME ## qpel8_mc31_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel8_mc31_ ## MMX(uint8_t *dst, \
@@ -175,8 +175,8 @@ static void OPNAME ## qpel8_mc31_ ## MMX(uint8_t *dst, \
ff_put ## RND ## pixels8_l2_ ## MMX(halfH, src + 1, halfH, 8, \ ff_put ## RND ## pixels8_l2_ ## MMX(halfH, src + 1, halfH, 8, \
stride, 9); \ stride, 9); \
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\ ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, halfH, halfHV, \ ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, halfH, halfHV, \
stride, 8, 8); \ stride, 8, 8)); \
} \ } \
\ \
static void OPNAME ## qpel8_mc13_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel8_mc13_ ## MMX(uint8_t *dst, \
@@ -191,8 +191,8 @@ static void OPNAME ## qpel8_mc13_ ## MMX(uint8_t *dst, \
ff_put ## RND ## pixels8_l2_ ## MMX(halfH, src, halfH, 8, \ ff_put ## RND ## pixels8_l2_ ## MMX(halfH, src, halfH, 8, \
stride, 9); \ stride, 9); \
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\ ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, halfH + 8, halfHV, \ ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, halfH + 8, halfHV, \
stride, 8, 8); \ stride, 8, 8)); \
} \ } \
\ \
static void OPNAME ## qpel8_mc33_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel8_mc33_ ## MMX(uint8_t *dst, \
@@ -207,8 +207,8 @@ static void OPNAME ## qpel8_mc33_ ## MMX(uint8_t *dst, \
ff_put ## RND ## pixels8_l2_ ## MMX(halfH, src + 1, halfH, 8, \ ff_put ## RND ## pixels8_l2_ ## MMX(halfH, src + 1, halfH, 8, \
stride, 9); \ stride, 9); \
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\ ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, halfH + 8, halfHV, \ ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, halfH + 8, halfHV, \
stride, 8, 8); \ stride, 8, 8)); \
} \ } \
\ \
static void OPNAME ## qpel8_mc21_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel8_mc21_ ## MMX(uint8_t *dst, \
@@ -221,8 +221,8 @@ static void OPNAME ## qpel8_mc21_ ## MMX(uint8_t *dst, \
ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8, \ ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8, \
stride, 9); \ stride, 9); \
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\ ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, halfH, halfHV, \ ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, halfH, halfHV, \
stride, 8, 8); \ stride, 8, 8)); \
} \ } \
\ \
static void OPNAME ## qpel8_mc23_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel8_mc23_ ## MMX(uint8_t *dst, \
@@ -235,8 +235,8 @@ static void OPNAME ## qpel8_mc23_ ## MMX(uint8_t *dst, \
ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8, \ ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8, \
stride, 9); \ stride, 9); \
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\ ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, halfH + 8, halfHV, \ ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, halfH + 8, halfHV, \
stride, 8, 8); \ stride, 8, 8)); \
} \ } \
\ \
static void OPNAME ## qpel8_mc12_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel8_mc12_ ## MMX(uint8_t *dst, \
@@ -287,8 +287,8 @@ static void OPNAME ## qpel16_mc10_ ## MMX(uint8_t *dst, \
uint8_t *const half = (uint8_t *) temp; \ uint8_t *const half = (uint8_t *) temp; \
ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(half, src, 16, \ ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(half, src, 16, \
stride, 16); \ stride, 16); \
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, src, half, stride, \ ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, src, half, \
stride, 16); \ stride, stride, 16)); \
} \ } \
\ \
static void OPNAME ## qpel16_mc20_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel16_mc20_ ## MMX(uint8_t *dst, \
@@ -307,8 +307,8 @@ static void OPNAME ## qpel16_mc30_ ## MMX(uint8_t *dst, \
uint8_t *const half = (uint8_t*) temp; \ uint8_t *const half = (uint8_t*) temp; \
ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(half, src, 16, \ ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(half, src, 16, \
stride, 16); \ stride, 16); \
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, src + 1, half, \ ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, src + 1, half, \
stride, stride, 16); \ stride, stride, 16)); \
} \ } \
\ \
static void OPNAME ## qpel16_mc01_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel16_mc01_ ## MMX(uint8_t *dst, \
@@ -319,8 +319,8 @@ static void OPNAME ## qpel16_mc01_ ## MMX(uint8_t *dst, \
uint8_t *const half = (uint8_t *) temp; \ uint8_t *const half = (uint8_t *) temp; \
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(half, src, 16, \ ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(half, src, 16, \
stride); \ stride); \
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, src, half, stride, \ ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, src, half, \
stride, 16); \ stride, stride, 16)); \
} \ } \
\ \
static void OPNAME ## qpel16_mc02_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel16_mc02_ ## MMX(uint8_t *dst, \
@@ -339,8 +339,8 @@ static void OPNAME ## qpel16_mc03_ ## MMX(uint8_t *dst, \
uint8_t *const half = (uint8_t *) temp; \ uint8_t *const half = (uint8_t *) temp; \
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(half, src, 16, \ ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(half, src, 16, \
stride); \ stride); \
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, src+stride, half, \ ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, src+stride, half, \
stride, stride, 16); \ stride, stride, 16)); \
} \ } \
\ \
static void OPNAME ## qpel16_mc11_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel16_mc11_ ## MMX(uint8_t *dst, \
@@ -356,8 +356,8 @@ static void OPNAME ## qpel16_mc11_ ## MMX(uint8_t *dst, \
stride, 17); \ stride, 17); \
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \ ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
16, 16); \ 16, 16); \
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, halfH, halfHV, \ ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, halfH, halfHV, \
stride, 16, 16); \ stride, 16, 16)); \
} \ } \
\ \
static void OPNAME ## qpel16_mc31_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel16_mc31_ ## MMX(uint8_t *dst, \
@@ -373,8 +373,8 @@ static void OPNAME ## qpel16_mc31_ ## MMX(uint8_t *dst, \
stride, 17); \ stride, 17); \
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \ ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
16, 16); \ 16, 16); \
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, halfH, halfHV, \ ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, halfH, halfHV, \
stride, 16, 16); \ stride, 16, 16)); \
} \ } \
\ \
static void OPNAME ## qpel16_mc13_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel16_mc13_ ## MMX(uint8_t *dst, \
@@ -390,8 +390,8 @@ static void OPNAME ## qpel16_mc13_ ## MMX(uint8_t *dst, \
stride, 17); \ stride, 17); \
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \ ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
16, 16); \ 16, 16); \
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, halfH + 16, halfHV, \ ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, halfH + 16, halfHV, \
stride, 16, 16); \ stride, 16, 16)); \
} \ } \
\ \
static void OPNAME ## qpel16_mc33_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel16_mc33_ ## MMX(uint8_t *dst, \
@@ -407,8 +407,8 @@ static void OPNAME ## qpel16_mc33_ ## MMX(uint8_t *dst, \
stride, 17); \ stride, 17); \
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \ ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
16, 16); \ 16, 16); \
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, halfH + 16, halfHV, \ ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, halfH + 16, halfHV, \
stride, 16, 16); \ stride, 16, 16)); \
} \ } \
\ \
static void OPNAME ## qpel16_mc21_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel16_mc21_ ## MMX(uint8_t *dst, \
@@ -422,8 +422,8 @@ static void OPNAME ## qpel16_mc21_ ## MMX(uint8_t *dst, \
stride, 17); \ stride, 17); \
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \ ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
16, 16); \ 16, 16); \
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, halfH, halfHV, \ ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, halfH, halfHV, \
stride, 16, 16); \ stride, 16, 16)); \
} \ } \
\ \
static void OPNAME ## qpel16_mc23_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel16_mc23_ ## MMX(uint8_t *dst, \
@@ -437,8 +437,8 @@ static void OPNAME ## qpel16_mc23_ ## MMX(uint8_t *dst, \
stride, 17); \ stride, 17); \
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \ ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
16, 16); \ 16, 16); \
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, halfH + 16, halfHV, \ ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, halfH + 16, halfHV, \
stride, 16, 16); \ stride, 16, 16)); \
} \ } \
\ \
static void OPNAME ## qpel16_mc12_ ## MMX(uint8_t *dst, \ static void OPNAME ## qpel16_mc12_ ## MMX(uint8_t *dst, \
@@ -481,9 +481,13 @@ static void OPNAME ## qpel16_mc22_ ## MMX(uint8_t *dst, \
stride, 16); \ stride, 16); \
} }
QPEL_OP(put_, _, mmxext) #define PASSTHROUGH(...) __VA_ARGS__
QPEL_OP(avg_, _, mmxext) #define STRIP_HEIGHT(dst, src1, src2, dststride, srcstride, height) \
QPEL_OP(put_no_rnd_, _no_rnd_, mmxext) (dst), (src1), (src2), (dststride), (srcstride)
QPEL_OP(put_, _, mmxext, PASSTHROUGH)
QPEL_OP(avg_, _, mmxext, STRIP_HEIGHT)
QPEL_OP(put_no_rnd_, _no_rnd_, mmxext, PASSTHROUGH)
#define MC00(OPNAME, SIZE, EXT) \ #define MC00(OPNAME, SIZE, EXT) \
static void OPNAME ## _qpel ## SIZE ## _mc00_ ## EXT(uint8_t *dst, \ static void OPNAME ## _qpel ## SIZE ## _mc00_ ## EXT(uint8_t *dst, \