Hirdetés

Aktív témák

  • 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 ˙˙˙

Aktív témák