libimg: Avoid SSE pinsrw instruction in blend_mmx.asm

pinsrw can act on MMX registers, but it is still an SSE instruction.

git-svn-id: svn://kolibrios.org@9273 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Ivan Baravy 2021-11-15 21:20:52 +00:00
parent 571040afd5
commit c3b7833e72

View File

@ -49,11 +49,12 @@ proc xcf._.blend_rgb
pmullw mm3, mm1 pmullw mm3, mm1
psllw mm2, 8 psllw mm2, 8
paddw mm3, mm2 paddw mm3, mm2
pinsrw mm3, ebx, 3
psrlw mm3, 8 psrlw mm3, 8
packuswb mm3, mm0 packuswb mm3, mm0
movd eax, mm3 movd eax, mm3
rol eax, 8
mov al, bh
ror eax, 8
ret ret
endp endp
@ -90,10 +91,10 @@ proc xcf._.blend_gray
pmullw mm3, mm1 pmullw mm3, mm1
psllw mm2, 8 psllw mm2, 8
paddw mm3, mm2 paddw mm3, mm2
pinsrw mm3, ebx, 1
psrlw mm3, 8 psrlw mm3, 8
packuswb mm3, mm0 packuswb mm3, mm0
movd eax, mm3 movd eax, mm3
mov ah, bh
ret ret
endp endp
@ -199,10 +200,12 @@ proc xcf._.composite_rgb_00 _copy_width, _copy_height, _bottom_total_bpl, _img_t
pmullw mm3, mm1 pmullw mm3, mm1
psllw mm2, 8 psllw mm2, 8
paddw mm3, mm2 paddw mm3, mm2
pinsrw mm3, ebx, 3
psrlw mm3, 8 psrlw mm3, 8
packuswb mm3, mm0 packuswb mm3, mm0
movd eax, mm3 movd eax, mm3
rol eax, 8
mov al, bh
ror eax, 8
stosd stosd
dec ecx dec ecx
@ -257,10 +260,10 @@ proc xcf._.composite_gray_00 _copy_width, _copy_height, _bottom_total_bpl, _img_
pmullw mm3, mm1 pmullw mm3, mm1
psllw mm2, 8 psllw mm2, 8
paddw mm3, mm2 paddw mm3, mm2
pinsrw mm3, ebx, 1
psrlw mm3, 8 psrlw mm3, 8
packuswb mm3, mm0 packuswb mm3, mm0
movd eax, mm3 movd eax, mm3
mov ah, bh
stosw stosw
dec ecx dec ecx