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

avcodec/x86/qpel{dsp,dsp_init}: Use ptrdiff_t for stride

This is more correct given that qpel_mc_func already uses ptrdiff_t;
it also allows to avoid movsxdifnidn.

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 02:32:43 +02:00
parent cacf854fe7
commit 52a77128fd
4 changed files with 31 additions and 50 deletions

View File

@@ -31,17 +31,17 @@
#if HAVE_X86ASM
void ff_put_pixels4_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
int dstStride, int src1Stride, int h);
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
void ff_avg_pixels4_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
int dstStride, int src1Stride, int h);
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
void ff_put_pixels8_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
int dstStride, int 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,
int dstStride, int src1Stride, int h);
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
void ff_put_pixels16_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
int dstStride, int 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,
int dstStride, int src1Stride, int h);
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
#define ff_put_pixels8_l2_sse2 ff_put_pixels8_l2_mmxext
#define ff_avg_pixels8_l2_sse2 ff_avg_pixels8_l2_mmxext
#define ff_put_pixels16_l2_sse2 ff_put_pixels16_l2_mmxext

View File

@@ -45,12 +45,10 @@ SECTION .text
%endmacro
; void ff_put/avg_pixels4_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
; int dstStride, int src1Stride, int h)
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
%macro PIXELS4_L2 1
%define OP op_%1h
cglobal %1_pixels4_l2, 6,6
movsxdifnidn r3, r3d
movsxdifnidn r4, r4d
mova m0, [r1]
mova m1, [r1+r4]
lea r1, [r1+2*r4]
@@ -73,12 +71,10 @@ PIXELS4_L2 put
PIXELS4_L2 avg
; void ff_put/avg_pixels8_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
; int dstStride, int src1Stride, int h)
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
%macro PIXELS8_L2 1
%define OP op_%1
cglobal %1_pixels8_l2, 6,6
movsxdifnidn r3, r3d
movsxdifnidn r4, r4d
%ifidn %1, put
test r5d, 1
je .loop
@@ -119,12 +115,10 @@ PIXELS8_L2 put
PIXELS8_L2 avg
; void ff_put/avg_pixels16_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
; int dstStride, int src1Stride, int h)
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
%macro PIXELS16_L2 1
%define OP op_%1
cglobal %1_pixels16_l2, 6,6
movsxdifnidn r3, r3d
movsxdifnidn r4, r4d
%ifidn %1, put
test r5d, 1
je .loop

View File

@@ -23,7 +23,6 @@
%include "libavutil/x86/x86util.asm"
SECTION_RODATA
cextern pb_1
cextern pw_3
cextern pw_15
@@ -33,11 +32,10 @@ cextern pw_20
SECTION .text
; void ff_put_no_rnd_pixels8_l2(uint8_t *dst, uint8_t *src1, uint8_t *src2, int dstStride, int src1Stride, int h)
; void ff_put_no_rnd_pixels8_l2(uint8_t *dst, uint8_t *src1, uint8_t *src2,
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
%macro PUT_NO_RND_PIXELS8_L2 0
cglobal put_no_rnd_pixels8_l2, 6,6
movsxdifnidn r4, r4d
movsxdifnidn r3, r3d
pcmpeqb m6, m6
test r5d, 1
je .loop
@@ -99,11 +97,10 @@ INIT_MMX mmxext
PUT_NO_RND_PIXELS8_L2
; void ff_put_no_rnd_pixels16_l2(uint8_t *dst, uint8_t *src1, uint8_t *src2, int dstStride, int src1Stride, int h)
; void ff_put_no_rnd_pixels16_l2(uint8_t *dst, uint8_t *src1, uint8_t *src2,
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
%macro PUT_NO_RND_PIXELS16_l2 0
cglobal put_no_rnd_pixels16_l2, 6,6
movsxdifnidn r3, r3d
movsxdifnidn r4, r4d
pcmpeqb m6, m6
test r5d, 1
je .loop
@@ -169,8 +166,6 @@ PUT_NO_RND_PIXELS16_l2
%macro MPEG4_QPEL16_H_LOWPASS 1
cglobal %1_mpeg4_qpel16_h_lowpass, 5, 5, 0, 16
movsxdifnidn r2, r2d
movsxdifnidn r3, r3d
pxor m7, m7
.loop:
mova m0, [r1]
@@ -302,8 +297,6 @@ MPEG4_QPEL16_H_LOWPASS put_no_rnd
%macro MPEG4_QPEL8_H_LOWPASS 1
cglobal %1_mpeg4_qpel8_h_lowpass, 5, 5, 0, 8
movsxdifnidn r2, r2d
movsxdifnidn r3, r3d
pxor m7, m7
.loop:
mova m0, [r1]
@@ -398,9 +391,6 @@ MPEG4_QPEL8_H_LOWPASS put_no_rnd
%macro MPEG4_QPEL16_V_LOWPASS 1
cglobal %1_mpeg4_qpel16_v_lowpass, 4, 6, 0, 544
movsxdifnidn r2, r2d
movsxdifnidn r3, r3d
mov r4d, 17
mov r5, rsp
pxor m7, m7
@@ -494,9 +484,6 @@ MPEG4_QPEL16_V_LOWPASS put_no_rnd
%macro MPEG4_QPEL8_V_LOWPASS 1
cglobal %1_mpeg4_qpel8_v_lowpass, 4, 6, 0, 288
movsxdifnidn r2, r2d
movsxdifnidn r3, r3d
mov r4d, 9
mov r5, rsp
pxor m7, m7

View File

@@ -33,52 +33,52 @@
void ff_put_pixels8_l2_mmxext(uint8_t *dst,
const uint8_t *src1, const uint8_t *src2,
int dstStride, int src1Stride, int h);
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
void ff_put_no_rnd_pixels8_l2_mmxext(uint8_t *dst,
const uint8_t *src1, const uint8_t *src2,
int dstStride, int 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,
int dstStride, int src1Stride, int h);
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
void ff_put_pixels16_l2_mmxext(uint8_t *dst,
const uint8_t *src1, const uint8_t *src2,
int dstStride, int 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,
int dstStride, int src1Stride, int h);
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
void ff_put_no_rnd_pixels16_l2_mmxext(uint8_t *dst,
const uint8_t *src1, const uint8_t *src2,
int dstStride, int src1Stride, int h);
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
void ff_put_mpeg4_qpel16_h_lowpass_mmxext(uint8_t *dst, const uint8_t *src,
int dstStride, int srcStride, int h);
ptrdiff_t dstStride, ptrdiff_t srcStride, int h);
void ff_avg_mpeg4_qpel16_h_lowpass_mmxext(uint8_t *dst, const uint8_t *src,
int dstStride, int srcStride, int h);
ptrdiff_t dstStride, ptrdiff_t srcStride, int h);
void ff_put_no_rnd_mpeg4_qpel16_h_lowpass_mmxext(uint8_t *dst,
const uint8_t *src,
int dstStride, int srcStride,
ptrdiff_t dstStride, ptrdiff_t srcStride,
int h);
void ff_put_mpeg4_qpel8_h_lowpass_mmxext(uint8_t *dst, const uint8_t *src,
int dstStride, int srcStride, int h);
ptrdiff_t dstStride, ptrdiff_t srcStride, int h);
void ff_avg_mpeg4_qpel8_h_lowpass_mmxext(uint8_t *dst, const uint8_t *src,
int dstStride, int srcStride, int h);
ptrdiff_t dstStride, ptrdiff_t srcStride, int h);
void ff_put_no_rnd_mpeg4_qpel8_h_lowpass_mmxext(uint8_t *dst,
const uint8_t *src,
int dstStride, int srcStride,
ptrdiff_t dstStride, ptrdiff_t srcStride,
int h);
void ff_put_mpeg4_qpel16_v_lowpass_mmxext(uint8_t *dst, const uint8_t *src,
int dstStride, int srcStride);
ptrdiff_t dstStride, ptrdiff_t srcStride);
void ff_avg_mpeg4_qpel16_v_lowpass_mmxext(uint8_t *dst, const uint8_t *src,
int dstStride, int srcStride);
ptrdiff_t dstStride, ptrdiff_t srcStride);
void ff_put_no_rnd_mpeg4_qpel16_v_lowpass_mmxext(uint8_t *dst,
const uint8_t *src,
int dstStride, int srcStride);
ptrdiff_t dstStride, ptrdiff_t srcStride);
void ff_put_mpeg4_qpel8_v_lowpass_mmxext(uint8_t *dst, const uint8_t *src,
int dstStride, int srcStride);
ptrdiff_t dstStride, ptrdiff_t srcStride);
void ff_avg_mpeg4_qpel8_v_lowpass_mmxext(uint8_t *dst, const uint8_t *src,
int dstStride, int srcStride);
ptrdiff_t dstStride, ptrdiff_t srcStride);
void ff_put_no_rnd_mpeg4_qpel8_v_lowpass_mmxext(uint8_t *dst,
const uint8_t *src,
int dstStride, int srcStride);
ptrdiff_t dstStride, ptrdiff_t srcStride);
#if HAVE_X86ASM