You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
x86: huffyuv: fix {add,diff}_int16
They used an extra, undeclared register. Fixes a crash in fate-vsynth3-ffvhuff444p16 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
committed by
Michael Niedermayer
parent
2cf4d91cf2
commit
508e7a5c16
@@ -37,19 +37,21 @@ SECTION_TEXT
|
|||||||
add wd, wd
|
add wd, wd
|
||||||
test wq, 2*mmsize - 1
|
test wq, 2*mmsize - 1
|
||||||
jz %%.tomainloop
|
jz %%.tomainloop
|
||||||
|
push tmpq
|
||||||
%%.wordloop:
|
%%.wordloop:
|
||||||
sub wq, 2
|
sub wq, 2
|
||||||
%ifidn %2, add
|
%ifidn %2, add
|
||||||
mov ax, [srcq+wq]
|
mov tmpw, [srcq+wq]
|
||||||
add ax, [dstq+wq]
|
add tmpw, [dstq+wq]
|
||||||
%else
|
%else
|
||||||
mov ax, [src1q+wq]
|
mov tmpw, [src1q+wq]
|
||||||
sub ax, [src2q+wq]
|
sub tmpw, [src2q+wq]
|
||||||
%endif
|
%endif
|
||||||
and ax, maskw
|
and tmpw, maskw
|
||||||
mov [dstq+wq], ax
|
mov [dstq+wq], tmpw
|
||||||
test wq, 2*mmsize - 1
|
test wq, 2*mmsize - 1
|
||||||
jnz %%.wordloop
|
jnz %%.wordloop
|
||||||
|
pop tmpq
|
||||||
%%.tomainloop:
|
%%.tomainloop:
|
||||||
%ifidn %2, add
|
%ifidn %2, add
|
||||||
add srcq, wq
|
add srcq, wq
|
||||||
@@ -85,11 +87,11 @@ SECTION_TEXT
|
|||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
INIT_MMX mmx
|
INIT_MMX mmx
|
||||||
cglobal add_int16, 4,4,5, dst, src, mask, w
|
cglobal add_int16, 4,4,5, dst, src, mask, w, tmp
|
||||||
INT16_LOOP a, add
|
INT16_LOOP a, add
|
||||||
|
|
||||||
INIT_XMM sse2
|
INIT_XMM sse2
|
||||||
cglobal add_int16, 4,4,5, dst, src, mask, w
|
cglobal add_int16, 4,4,5, dst, src, mask, w, tmp
|
||||||
test srcq, mmsize-1
|
test srcq, mmsize-1
|
||||||
jnz .unaligned
|
jnz .unaligned
|
||||||
test dstq, mmsize-1
|
test dstq, mmsize-1
|
||||||
@@ -99,11 +101,11 @@ cglobal add_int16, 4,4,5, dst, src, mask, w
|
|||||||
INT16_LOOP u, add
|
INT16_LOOP u, add
|
||||||
|
|
||||||
INIT_MMX mmx
|
INIT_MMX mmx
|
||||||
cglobal diff_int16, 5,5,5, dst, src1, src2, mask, w
|
cglobal diff_int16, 5,5,5, dst, src1, src2, mask, w, tmp
|
||||||
INT16_LOOP a, sub
|
INT16_LOOP a, sub
|
||||||
|
|
||||||
INIT_XMM sse2
|
INIT_XMM sse2
|
||||||
cglobal diff_int16, 5,5,5, dst, src1, src2, mask, w
|
cglobal diff_int16, 5,5,5, dst, src1, src2, mask, w, tmp
|
||||||
test src1q, mmsize-1
|
test src1q, mmsize-1
|
||||||
jnz .unaligned
|
jnz .unaligned
|
||||||
test src2q, mmsize-1
|
test src2q, mmsize-1
|
||||||
|
Reference in New Issue
Block a user