x86/vf_blend: Move multiplying to a macro
Reviewed-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
5486d7fa91
commit
c8b1612af0
@ -102,6 +102,15 @@ BLEND_INIT difference128, 4
|
|||||||
jl .loop
|
jl .loop
|
||||||
BLEND_END
|
BLEND_END
|
||||||
|
|
||||||
|
%macro MULTIPLY 3 ; a, b, pw_1
|
||||||
|
pmullw %1, %2 ; xxxxxxxx a * b
|
||||||
|
paddw %1, %3
|
||||||
|
mova %2, %1
|
||||||
|
psrlw %2, 8
|
||||||
|
paddw %1, %2
|
||||||
|
psrlw %1, 8 ; 00xx00xx a * b / 255
|
||||||
|
%endmacro
|
||||||
|
|
||||||
BLEND_INIT multiply, 4
|
BLEND_INIT multiply, 4
|
||||||
pxor m2, m2
|
pxor m2, m2
|
||||||
mova m3, [pw_1]
|
mova m3, [pw_1]
|
||||||
@ -116,12 +125,7 @@ BLEND_INIT multiply, 4
|
|||||||
punpcklbw m0, m2 ; 00xx00xx
|
punpcklbw m0, m2 ; 00xx00xx
|
||||||
punpcklbw m1, m2
|
punpcklbw m1, m2
|
||||||
|
|
||||||
pmullw m0, m1 ; xxxxxxxx a * b
|
MULTIPLY m0, m1, m3
|
||||||
paddw m0, m3
|
|
||||||
mova m1, m0
|
|
||||||
psrlw m1, 8
|
|
||||||
paddw m0, m1
|
|
||||||
psrlw m0, 8 ; 00xx00xx a * b / 255
|
|
||||||
|
|
||||||
packuswb m0, m0 ; 0000xxxx
|
packuswb m0, m0 ; 0000xxxx
|
||||||
movh [dstq + xq], m0
|
movh [dstq + xq], m0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user