yadif.asm: Fix improper usage of LOAD macro

LOAD macro relies in m7 being zero for interleaving purposes. Using LOAD
on the m7 register makes it interleave with its new content instead of
with 0.

The effect of this bug was bobbing on some static lines that appeared
over fast-moving content.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1823>
This commit is contained in:
Vivia Nikolaidou 2022-03-01 00:12:56 +02:00 committed by Tim-Philipp Müller
parent 60160a21c6
commit 8f31e0c42a

View file

@ -160,6 +160,8 @@ SECTION .text
psraw m3, 1
; rsp + 0 = d
mova [rsp+ 0], m3
; rsp + 16 = bzeroq
mova [rsp+16], m1
; m2 = m1 - mp
psubw m2, m4
; m2 = temporal_diff0 (m4 is temporary)
@ -195,8 +197,8 @@ SECTION .text
psrlw m3, 1
; m2 = diff (for real)
pmaxsw m2, m3
; rsp + 16 = diff
mova [rsp+16], m2
; rsp + 32 = diff
mova [rsp+32], m2
; m1 = e + c
paddw m1, m0
@ -251,7 +253,7 @@ SECTION .text
; now m0 = spatial_score, m1 = spatial_pred
; m6 = diff
mova m6, [rsp+16]
mova m6, [rsp+32]
%endmacro
%macro FILTER_TAIL 0
@ -311,7 +313,7 @@ SECTION .text
; m5 = d
mova m5, [rsp]
; m7 = e
LOAD m7, [bzeroq]
mova m7, [rsp+16]
; m2 = b - c
psubw m2, m4
; m3 = f - e