Aktív témák

  • P.H.

    senior tag

    Valamiért a K8 is jobban szereti, ha az utasítások konstans paramétere nem azonnali érték, hanem regiszter, az előforduló függőségek ellenére is; talán az utasításhossz-csökkenés miatt? (a Netburst-ön még jobban kijön a plusz, ennek a trace-cache felépítése lehet az oka)

    K8-on még 1% van benne, egy-egy felesleges, de csak ritkán lefutó utasítás eltávolításával és egy ugráscél áthelyezésével: 513M clock

    gépi kód:

    @copyarraySSE:
    movd xmm0,[eax+04h] 660F6E4004
    @zoomvertSSE:
    mov [esp],edi 893C24
    xor ebx,ebx 31DB
    mov esi,[esp+_STRROWS] 8B74242C
    and edi,-64 83E7C0
    sub edx,[esp+_STRLEFT] 2B542430
    movd ebp,mm7 0F7EFD
    pshufd xmm0,xmm0,00000000b 660F70C000
    movd ecx,mm6 0F7EF1
    lea edi,[edi+40h] 8D7F40
    mov esi,[esi] 8B36
    cmovge edx,ebx 0F4DD3
    movaps xmm1,[edi] 0F280F
    @sourceLEFT:
    mov bl,[esi] 8A1E
    add esi,02h 83C602
    add edx,ebx 01DA
    jle @sourceLEFT 7EF7
    mov bl,[esi-01h] 8A5EFF
    jmp @initpixelSSE EB09
    @newpixelSSE:
    movzx edx,word ptr [esi] 0FB716
    add esi,02h 83C602
    movzx ebx,dh 0FB6DE
    @initpixelSSE:
    movaps xmm3,xmm0 0F28D8
    shl ebx,04h C1E304
    add ebx,[esp+_STRCOLORS] 035C2428
    mulps xmm3,[ebx] 0F591B
    @prevHpixelSSE:
    sub dl,01h 80EA01
    jc @newpixelSSE 72E5
    pshufd xmm2,[ecx+00h],10010101b 660F701195
    movaps xmm4,xmm3 0F28E3
    mov ebx,[ecx+00h] 8B19
    @pixelSSE:
    mulps xmm4,xmm2 0E59E2
    sub ebx,01h 83EB01
    @1pixelSSE:
    addps xmm1,xmm4 0F58CC
    jz @nextHpixelSSE 7413
    movaps [edi],xmm1 0F290F
    js @stepHelementSSE 781A
    add edi,10h 83C710
    movaps xmm4,xmm3 0F28E3
    sub ebx,01h 83EB01
    movaps xmm1,[edi] 0F280F
    jnz @1pixelSSE 75E8
    @nextHpixelSSE:
    pshufd xmm2,xmm2,11111111b 660F70D2FF
    cmp ebx,[ecx+08h] 3B5908
    jnz @pixelSSE 75D8
    not ebx F7D3
    @stepHelementSSE:
    add ebp,ebx 01DD
    lea ecx,[ecx+10h] 8D4910
    jnz @prevHpixelSSE 75C0
    mov edi,[esp] 8B3C24
    xor edx,edx 31D2
    add [eax+00h],ebx 0118
    jg @cvtROW 7F26
    jl @stepVelementSSE 7C0F
    @moreVrowsSSE:
    mov [eax+00h],edx 8910
    add ebp,[eax+08h] 036808
    movd xmm0,ebp 660F6EC5
    jnz @zoomvertSSE 0F855CFFFFFF
    @stepVelementSSE:
    add dword ptr [esp+_STRROWS],04h 8344244C04
    add [esp+_VSIZE],ebx 015C2414
    lea eax,[eax+10h] 8D4010
    jnz @copyarraySSE 0F8545FFFFFF
    sub eax,10h 83E810
    @cvtROW:
    mov esi,edi 89FE
    mov ebp,[esp+_INCREASE] 8B6C2418
    and esi,-64 83E6C0
    sub edi,ebp 29EF
    @cvtRGB:
    add esi,40h 83C640
    cvtps2dq xmm1,[esi+00h] 660F5B0E
    cvtps2dq xmm2,[esi+10h] 660F5B5610
    cvtps2dq xmm3,[esi+20h] 660F5B5E20
    cvtps2dq xmm4,[esi+30h] 660F5B6630
    movaps [esi+00h],xmm5 0F290E
    packssdw xmm1,xmm2 660F6BC6
    movaps [esi+10h],xmm5 0F296E10
    packssdw xmm3,xmm4 660F0BCD
    movaps [esi+20h],xmm5 0F296E20
    packuswb xmm1,xmm3 660F67CB
    movaps [esi+30h],xmm5 0F296E30
    movups [edi+ebp],xmm1 0F110C2F
    add ebp,10h 83C510
    js @cvtRGB 78C6
    add ebx,[eax+00h] 0318
    jz @moreVrowsSSE 7493
    divss xmm0,xmm0 F30F5EC0
    jg @zoomvertSSE 0F8FF4FEFFFF

    [ 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