]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/x86/h264_idct.asm
arm/aarch64: vp9lpf: Calculate !hev directly
[ffmpeg] / libavcodec / x86 / h264_idct.asm
index 27222cbc3ca54d533e1f688165cdd1eafbcd87dc..c36fea59b08bc3c6279b8db116763244c8f08a12 100644 (file)
@@ -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: