X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fx86%2Fh264_idct.asm;h=c36fea59b08bc3c6279b8db116763244c8f08a12;hb=f0ecbb13cf1cf706a1350dad657219dc7b3c131e;hp=27222cbc3ca54d533e1f688165cdd1eafbcd87dc;hpb=4fe013fc701acb9a4f0f567604e9f0a0460e9b77;p=ffmpeg diff --git a/libavcodec/x86/h264_idct.asm b/libavcodec/x86/h264_idct.asm index 27222cbc3ca..c36fea59b08 100644 --- a/libavcodec/x86/h264_idct.asm +++ b/libavcodec/x86/h264_idct.asm @@ -697,6 +697,38 @@ cglobal h264_idct_add8_8, 5, 8 + npicregs, 0, dst1, block_offset, block, stride, call h264_idct_add8_mmx_plane RET +cglobal h264_idct_add8_422_8, 5, 8 + npicregs, 0, dst1, block_offset, block, stride, nnzc, cntr, coeff, dst2, picreg +; dst1, block_offset, block, stride, nnzc, cntr, coeff, dst2, picreg + movsxdifnidn r3, r3d +%ifdef PIC + lea picregq, [scan8_mem] +%endif +%if ARCH_X86_64 + mov dst2q, r0 +%endif + + mov r5, 16 ; i + add r2, 512 ; i * 16 * sizeof(dctcoef) ; #define dctcoef int16_t + + call h264_idct_add8_mmx_plane + add r5, 4 + call h264_idct_add8_mmx_plane + +%if ARCH_X86_64 + add dst2q, gprsize ; dest[1] +%else + add r0mp, gprsize +%endif + + add r5, 4 ; set to 32 + add r2, 256 ; set to i * 16 * sizeof(dctcoef) + + call h264_idct_add8_mmx_plane + add r5, 4 + call h264_idct_add8_mmx_plane + + RET + h264_idct_add8_mmxext_plane: movsxdifnidn r3, r3d .nextblock: