X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fx86%2Fh264_idct_10bit.asm;h=9fd05abb2b7349c737e52d37bacebdcfe0e23bd2;hb=591cf8aa0ee9e09aac29861f4229616df7604172;hp=4f7491dbf5df4ef33267a3841b7e8d23477f6e59;hpb=7c282d0c758dc5e9593312da1c191cdf76de0303;p=ffmpeg diff --git a/libavcodec/x86/h264_idct_10bit.asm b/libavcodec/x86/h264_idct_10bit.asm index 4f7491dbf5d..9fd05abb2b7 100644 --- a/libavcodec/x86/h264_idct_10bit.asm +++ b/libavcodec/x86/h264_idct_10bit.asm @@ -350,6 +350,59 @@ INIT_XMM avx IDCT_ADD8 %endif +;----------------------------------------------------------------------------- +; void ff_h264_idct_add8_422_10(pixel **dst, const int *block_offset, +; int16_t *block, int stride, +; const uint8_t nnzc[6*8]) +;----------------------------------------------------------------------------- +%assign last_block 44 + +%macro IDCT_ADD8_422 0 + +cglobal h264_idct_add8_422_10, 5, 8, 7 + movsxdifnidn r3, r3d +%if ARCH_X86_64 + mov r7, r0 +%endif + + add r2, 1024 + mov r0, [r0] + ADD16_OP_INTRA 16, 4+ 6*8 + ADD16_OP_INTRA 18, 4+ 7*8 + ADD16_OP_INTRA 24, 4+ 8*8 ; i+4 + ADD16_OP_INTRA 26, 4+ 9*8 ; i+4 + add r2, 1024-128*4 + +%if ARCH_X86_64 + mov r0, [r7+gprsize] +%else + mov r0, r0m + mov r0, [r0+gprsize] +%endif + + ADD16_OP_INTRA 32, 4+11*8 + ADD16_OP_INTRA 34, 4+12*8 + ADD16_OP_INTRA 40, 4+13*8 ; i+4 + ADD16_OP_INTRA 42, 4+14*8 ; i+4 +REP_RET + AC 16 + AC 18 + AC 24 ; i+4 + AC 26 ; i+4 + AC 32 + AC 34 + AC 40 ; i+4 + AC 42 ; i+4 + +%endmacro + +INIT_XMM sse2 +IDCT_ADD8_422 +%if HAVE_AVX_EXTERNAL +INIT_XMM avx +IDCT_ADD8_422 +%endif + ;----------------------------------------------------------------------------- ; void ff_h264_idct8_add_10(pixel *dst, int16_t *block, int stride) ;-----------------------------------------------------------------------------