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/1816>
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)
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
; now m0 = spatial_score, m1 = spatial_pred
; m6 = diff
- mova m6, [rsp+16]
+ mova m6, [rsp+32]
%endmacro
%macro FILTER_TAIL 0
; m5 = d
mova m5, [rsp]
; m7 = e
- LOAD m7, [bzeroq]
+ mova m7, [rsp+16]
; m2 = b - c
psubw m2, m4
; m3 = f - e