avfilter/x86/vf_blend.asm: hardmix: do same with two pxor instructions less

Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
Paul B Mahol 2015-10-07 23:12:09 +02:00
parent e999210cec
commit 624a1a0e69

View File

@ -27,6 +27,7 @@ SECTION_RODATA
pw_128: times 8 dw 128 pw_128: times 8 dw 128
pw_255: times 8 dw 255 pw_255: times 8 dw 255
pb_127: times 16 db 127
pb_128: times 16 db 128 pb_128: times 16 db 128
pb_255: times 16 db 255 pb_255: times 16 db 255
@ -275,13 +276,14 @@ cglobal blend_darken, 9, 11, 2, 0, top, top_linesize, bottom, bottom_linesize, d
jg .nextrow jg .nextrow
REP_RET REP_RET
cglobal blend_hardmix, 9, 11, 4, 0, top, top_linesize, bottom, bottom_linesize, dst, dst_linesize, width, start, end cglobal blend_hardmix, 9, 11, 5, 0, top, top_linesize, bottom, bottom_linesize, dst, dst_linesize, width, start, end
add topq, widthq add topq, widthq
add bottomq, widthq add bottomq, widthq
add dstq, widthq add dstq, widthq
sub endq, startq sub endq, startq
mova m2, [pb_255] mova m2, [pb_255]
mova m3, [pb_128] mova m3, [pb_128]
mova m4, [pb_127]
neg widthq neg widthq
.nextrow: .nextrow:
mov r10q, widthq mov r10q, widthq
@ -290,9 +292,8 @@ cglobal blend_hardmix, 9, 11, 4, 0, top, top_linesize, bottom, bottom_linesize,
.loop: .loop:
movu m0, [topq + x] movu m0, [topq + x]
movu m1, [bottomq + x] movu m1, [bottomq + x]
pxor m1, m2 pxor m1, m4
pxor m0, m3 pxor m0, m3
pxor m1, m3
pcmpgtb m1, m0 pcmpgtb m1, m0
pxor m1, m2 pxor m1, m2
mova [dstq + x], m1 mova [dstq + x], m1