diff options
author | Andreas Rheinhardt <[email protected]> | 2025-09-29 02:50:58 +0200 |
---|---|---|
committer | Andreas Rheinhardt <[email protected]> | 2025-10-04 07:06:33 +0200 |
commit | b84c818c835f15710c21fd52f15c795ba8dc2afe (patch) | |
tree | d0767ef73fa6d6c64d12058aa9613819db1110f6 | |
parent | 810bd3e62a4935683f2299dc4ebce2fb05c0d764 (diff) |
avcodec/x86/h264_qpel: Remove constant parameters from shift5 funcs
They are constant since the size 16 version is no longer emulated
via the size 8 version.
Reviewed-by: James Almer <[email protected]>
Signed-off-by: Andreas Rheinhardt <[email protected]>
-rw-r--r-- | libavcodec/x86/h264_qpel.c | 10 | ||||
-rw-r--r-- | libavcodec/x86/h264_qpel_8bit.asm | 22 |
2 files changed, 15 insertions, 17 deletions
diff --git a/libavcodec/x86/h264_qpel.c b/libavcodec/x86/h264_qpel.c index b782d32bea..e6035b8de5 100644 --- a/libavcodec/x86/h264_qpel.c +++ b/libavcodec/x86/h264_qpel.c @@ -67,9 +67,9 @@ void ff_ ## OPNAME ## _h264_qpel4_hv_lowpass_h_mmxext(int16_t *tmp, uint8_t *dst void ff_ ## OPNAME ## _h264_qpel8or16_hv1_lowpass_op_sse2(const uint8_t *src, int16_t *tmp, int srcStride, int size);\ void ff_ ## OPNAME ## _h264_qpel8or16_hv2_lowpass_op_mmxext(uint8_t *dst, int16_t *tmp, int dstStride, int unused, int h);\ void ff_ ## OPNAME ## _h264_qpel8or16_hv2_lowpass_ssse3(uint8_t *dst, int16_t *tmp, int dstStride, int tmpStride, int size);\ -void ff_ ## OPNAME ## _pixels4_l2_shift5_mmxext(uint8_t *dst, const int16_t *src16, const uint8_t *src8, int dstStride, int src8Stride, int h);\ -void ff_ ## OPNAME ## _pixels8_l2_shift5_mmxext(uint8_t *dst, const int16_t *src16, const uint8_t *src8, int dstStride, int src8Stride, int h);\ -void ff_ ## OPNAME ## _pixels16_l2_shift5_sse2(uint8_t *dst, const int16_t *src16, const uint8_t *src8, int dstStride, int src8Stride, int h);\ +void ff_ ## OPNAME ## _pixels4_l2_shift5_mmxext(uint8_t *dst, const int16_t *src16, const uint8_t *src8, int dstStride);\ +void ff_ ## OPNAME ## _pixels8_l2_shift5_mmxext(uint8_t *dst, const int16_t *src16, const uint8_t *src8, int dstStride);\ +void ff_ ## OPNAME ## _pixels16_l2_shift5_sse2(uint8_t *dst, const int16_t *src16, const uint8_t *src8, int dstStride);\ DEF_QPEL(avg) DEF_QPEL(put) @@ -309,7 +309,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc12_ ## MMX(uint8_t *dst, const uin int16_t * const halfV= (int16_t*)(temp + SIZE*SIZE);\ av_assert2(((uintptr_t)temp & 7) == 0);\ ff_put_h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(halfHV, halfV, src, SIZE, SIZE, stride);\ - ff_ ## OPNAME ## pixels ## SIZE ## _l2_shift5_mmxext(dst, halfV+2, halfHV, stride, SIZE, SIZE);\ + ff_ ## OPNAME ## pixels ## SIZE ## _l2_shift5_mmxext(dst, halfV+2, halfHV, stride);\ }\ \ static void OPNAME ## h264_qpel ## SIZE ## _mc32_ ## MMX(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ @@ -319,7 +319,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc32_ ## MMX(uint8_t *dst, const uin int16_t * const halfV= (int16_t*)(temp + SIZE*SIZE);\ av_assert2(((uintptr_t)temp & 7) == 0);\ ff_put_h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(halfHV, halfV, src, SIZE, SIZE, stride);\ - ff_ ## OPNAME ## pixels ## SIZE ## _l2_shift5_mmxext(dst, halfV+3, halfHV, stride, SIZE, SIZE);\ + ff_ ## OPNAME ## pixels ## SIZE ## _l2_shift5_mmxext(dst, halfV+3, halfHV, stride);\ }\ #define H264_MC(QPEL, SIZE, MMX, ALIGN)\ diff --git a/libavcodec/x86/h264_qpel_8bit.asm b/libavcodec/x86/h264_qpel_8bit.asm index fefa3aff01..7dbdf41d0a 100644 --- a/libavcodec/x86/h264_qpel_8bit.asm +++ b/libavcodec/x86/h264_qpel_8bit.asm @@ -701,9 +701,8 @@ QPEL8OR16_HV2_LOWPASS_OP_XMM avg %macro PIXELS4_L2_SHIFT5 1 -cglobal %1_pixels4_l2_shift5,6,6 ; dst, src16, src8, dstStride, src8Stride, h +cglobal %1_pixels4_l2_shift5,4,4 ; dst, src16, src8, dstStride movsxdifnidn r3, r3d - movsxdifnidn r4, r4d mova m0, [r1] mova m1, [r1+24] psraw m0, 5 @@ -711,10 +710,9 @@ cglobal %1_pixels4_l2_shift5,6,6 ; dst, src16, src8, dstStride, src8Stride, h packuswb m0, m0 packuswb m1, m1 pavgb m0, [r2] - pavgb m1, [r2+r4] + pavgb m1, [r2+4] op_%1h m0, [r0], m4 op_%1h m1, [r0+r3], m5 - lea r2, [r2+r4*2] lea r0, [r0+r3*2] mova m0, [r1+48] mova m1, [r1+72] @@ -722,8 +720,8 @@ cglobal %1_pixels4_l2_shift5,6,6 ; dst, src16, src8, dstStride, src8Stride, h psraw m1, 5 packuswb m0, m0 packuswb m1, m1 - pavgb m0, [r2] - pavgb m1, [r2+r4] + pavgb m0, [r2+2*4] + pavgb m1, [r2+3*4] op_%1h m0, [r0], m4 op_%1h m1, [r0+r3], m5 RET @@ -736,12 +734,12 @@ PIXELS4_L2_SHIFT5 avg %macro PIXELS_L2_SHIFT5 2 %if cpuflag(sse2) -cglobal %1_pixels%2_l2_shift5, 6, 6, 4 ; dst, src16, src8, dstStride, src8Stride, h +cglobal %1_pixels%2_l2_shift5, 5, 5, 4 ; dst, src16, src8, dstStride %else -cglobal %1_pixels%2_l2_shift5, 6, 6 ; dst, src16, src8, dstStride, src8Stride, h +cglobal %1_pixels%2_l2_shift5, 5, 5 ; dst, src16, src8, dstStride %endif movsxdifnidn r3, r3d - movsxdifnidn r4, r4d + mov r4d, %2 .loop: movu m0, [r1] movu m1, [r1+%2] @@ -754,13 +752,13 @@ cglobal %1_pixels%2_l2_shift5, 6, 6 ; dst, src16, src8, dstStride, src8Stride, h packuswb m0, m1 packuswb m2, m3 pavgb m0, [r2] - pavgb m2, [r2+r4] + pavgb m2, [r2+%2] op_%1 m0, [r0], m1 op_%1 m2, [r0+r3], m1 - lea r2, [r2+2*r4] + lea r2, [r2+2*%2] add r1, 48*2 lea r0, [r0+2*r3] - sub r5d, 2 + sub r4d, 2 jne .loop RET %endmacro |