Hirdetés

2024. április 26., péntek

Gyorskeresés

Hozzászólások

(#11) P.H.


P.H.
senior tag

Alakulgat:

@copyarraySSE:
pshufd xmm0,[eax],01010101b
@zoomvertSSE:
mov [esp+_DESTROW],edi
mov esi,[esp+_STRROWS]
xor ebx,ebx
and edi,-32
sub edx,[esp+_STRLEFT]
movd ebp,mm4
movd ecx,mm6
lea edi,[edi+20h]
mov esi,[esi]
movaps xmm1,[edi]
jge @newpixelSSE
@sourceLEFT:
mov bl,[esi]
add esi,02h
add edx,ebx
js @sourceLEFT
mov bl,[esi-01h]
jnz @initpixelSSE
@newpixelSSE:
movzx edx,word ptr [esi]
add esi,02h
movzx ebx,dh
@initpixelSSE:
shl ebx,04h
add ebx,[esp+_STRCOLORS]
movaps xmm7,[ebx]
jmp @nxpixelSSE
@prevHpixelSSE:
sub dl,01h
jz @newpixelSSE
@nxpixelSSE:
movaps xmm4,xmm7
movlps xmm6,[ecx+04h]
mov ebx,[ecx+00h]
mulps xmm4,xmm0
pshufd xmm2,xmm6,01000000b
shufps xmm6,xmm6,01010101b
movaps xmm3,xmm4
@pixelSSE:
test ebx,ebx
mulps xmm4,xmm2
@1pixelSSE:
addps xmm1,xmm4
jz @nextHpixelSSE
movaps [edi],xmm1
js @stepHelementSSE
add edi,10h
movaps xmm4,xmm3
sub ebx,01h
movaps xmm1,[edi]
jnz @1pixelSSE
@nextHpixelSSE:
cmp ebx,[ecx+08h]
movaps xmm2,xmm6
lea ebx,[ebx-01h]
jnz @pixelSSE
@stepHelementSSE:
add ebp,ebx
lea ecx,[ecx+10h]
jnz @prevHpixelSSE
mov edi,[esp+_DESTROW]
xor edx,edx
@moreVrowsSSE:
add [eax+00h],ebx
jns @cvtROW
cmp [eax+00h],ebx
jnz @stepVelementSSE
cmp ebp,[eax+08h]
pshufd xmm0,[eax],10101010b
jnz @zoomvertSSE
@stepVelementSSE:
add dword ptr [esp+_STRROWS],04h
add [esp+_VSIZE],ebx
lea eax,[eax+10h]
jnz @copyarraySSE
sub eax,10h
mov [eax+00h],ebx
@cvtROW:
mov esi,edi
mov ebp,[esp+_INCREASE]
and esi,-32
sub edi,ebp
@cvtRGB:
add esi,20h
cvtps2dq xmm3,[esi+00h]
movaps [esi+00h],xmm5
cvtps2dq xmm1,[esi+10h]
movaps [esi+10h],xmm5
packssdw xmm3,xmm1
packuswb xmm3,xmm1
movq [edi+ebp],xmm3
add ebp,08h
js @cvtRGB
cmp [eax+00h],edx
jz @moreVrowsSSE
divps xmm0,xmm0
jns @zoomvertSSE

x87:

fldz
@copyarray:
fadd dword ptr [eax+04h]
@zoomvert:
mov edi,[esp+_DESTROW]
mov ecx,[esp+_STRVAR+_ECX]
xor ebx,ebx
mov esi,[esp+_STRROWS]
mov ebp,[ecx-04h]
fld dword ptr [edi+00h]
mov esi,[esi]
fld dword ptr [edi+04h]
add ecx,[esp+_XADD]
xor edx,edx
sub ebx,[esp+_STRLEFT]
fld dword ptr [edi+08h]
jge @newpixelx86
@sourceLEFTx86:
mov dl,[esi]
add esi,02h
add ebx,edx
js @sourceLEFTx86
mov dl,[esi-01h]
jnz @initpixelx86
@newpixelx86:
movzx ebx,word ptr [esi]
add esi,02h
movzx edx,bh
@initpixelx86:
mov [esp+_TMPCOLOR],bl
shl edx,04h
add edx,[esp+_STRCOLORS]
jmp @nxpixelx86
@prevHpixel:
sub byte ptr [esp+_TMPCOLOR],01h
jz @newpixelx86
@nxpixelx86:
fld dword ptr [ecx+04h]
mov ebx,[ecx+00h]
@HANDLEPIXEL:
fmul st,st(4)
test ebx,ebx
fld dword ptr [edx+00h]
fmul st,st(1)
faddp st(4),st
fld dword ptr [edx+04h]
fmul st,st(1)
faddp st(3),st
fmul dword ptr [edx+08h]
fadd
js @stepHelement
fld1
jz @nextHpixel
fxch st(3)
fstp dword ptr [edi+00h]
fstp dword ptr [edi+08h]
fstp dword ptr [edi+04h]
add edi,0Ch
sub ebx,01h
fld dword ptr [edi+04h]
fld dword ptr [edi+08h]
fld dword ptr [edi+00h]
fxch st(3)
jnz @HANDLEPIXEL
@nextHpixel:
cmp [ecx+08h],ebx
lea ebx,[ebx-01h]
fmul dword ptr [ecx+08h]
jnz @HANDLEPIXEL
fstp st(0)
@stepHelement:
add ebp,ebx
lea ecx,[ecx+10h]
jnz @prevHpixel
fstp dword ptr [edi+08h]
fstp dword ptr [edi+04h]
fstp dword ptr [edi+00h]
@moreVrows:
add [eax+00h],ebx
fsub st,st(0)
mov edi,[esp+_DESTROW]
jns @cvtROWx86
@nextVrow:
cmp [eax+00h],ebx
jnz @stepVelement
cmp ebp,[eax+08h]
fadd dword ptr [eax+08h]
jnz @zoomvert
@stepVelement:
add dword ptr [esp+_STRROWS],04h
add eax,10h
add [esp+_VSIZE],ebx
fsub st,st(0)
jnz @copyarray
sub eax,10h
mov [eax+00],ebx
@cvtROWx86:
mov ecx,[esp+_INCREASE]
mov esi,edi
lea edx,[edi+ecx]
mov [esp+_DESTROW],edx
@cvtRGBx86:
fld dword ptr [esi+08h]
mov [esi+00h],ebp
fld dword ptr [esi+00h]
mov [esi+08h],ebp
fld dword ptr [esi+04h]
mov [esi+04h],ebp
fistp word ptr [esp+_TMPCOLOR]
add esi,0Ch
fistp word ptr [edi+00h]
mov dl,[esp+_TMPCOLOR]
sub ecx,04h
fistp word ptr [edi+02h]
mov [edi+01h],dl
lea edi,[edi+04h]
jnz @cvtRGBx86
fld1
cmp [eax+00h],ebp
fadd
jz @moreVrows
js @removeTEMP
jmp @zoomvert

[ Szerkesztve ]

Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

Copyright © 2000-2024 PROHARDVER Informatikai Kft.