Aktív témák

  • P.H.

    senior tag

    Harmadik felvonás, az előző már érdemes volt egy gyors első generációs Netburst port issue elemzésre és TSC-mérésekre.

    Előző (Prescott CeleronD): 735M clock
    Az alábbi (Prescott CeleronD): 670M clock (-10%)
    Az alábbi (K8 Opteron): 565M clock

    movd xmm0,[eax+04h] // 6+6/2 p1+1+2 MMX_MSC+MMX_SH+LOAD
    @zoomvertSSE: //
    mov [esp+_DESTROW],edi // 2/d p3 STORE
    xor ebx,ebx // d/d p0/1 ALU 0/1
    mov esi,[esp+_STRROWS] // 2+d/d p0/1+2 ALU 0/1+LOAD
    and edi,-64 // d/d p0/1 ALU 0/1
    sub edx,[esp+_STRLEFT] // 2+d/d p0/1+2 ALU 0/1+LOAD
    movd ebp,mm4 // 10/1 p0+1 FP_MOV+FP_MISC
    pshufd xmm0,xmm0,00000000b // 4/2 p1 MMX_SH
    movd ecx,mm6 // 10/1 p0+1 FP_MOV+FP_MISC
    lea edi,[edi+40h] // d/d p0/1 ALU 0/1
    mov esi,[esi] // 2+d/d p0/1+2 ALU 0/1+LOAD
    cmovge edx,ebx //
    movaps xmm1,[edi] // 6+6/1 p0+2 FP_MOV+LOAD
    @sourceLEFT: //
    mov bl,[esi] // 2+d/d p0/1+2 ALU 0/1+LOAD
    add esi,02h // d/d p0/1 ALU 0/1
    add edx,ebx // d/d p0/1 ALU 0/1
    jle @sourceLEFT // -/d p0 ALU 0
    mov bl,[esi-01h] // 2+d/d p0/1+2 ALU 0/1+LOAD
    jmp @initpixelSSE // -/d p0 ALU 0
    @newpixelSSE: //
    movzx edx,word ptr [esi] // 2+d/d p0/1+2 ALU 0/1+LOAD
    add esi,02h // d/d p0/1 ALU 0/1
    movzx ebx,dh // d/d p0/1+2 ALU 0/1
    @initpixelSSE: //
    movaps xmm3,xmm0 // 6/1 p0 FP_MOV
    shl ebx,04h // 4/1 p1 CMPXALU
    add dl,01h // d/d p0/1 ALU 0/1
    add ebx,[esp+_STRCOLORS] // 2+d/d p0/1+2 ALU 0/1+LOAD
    mulps xmm3,[ebx] // 6+6/2 p1+2 FP_MUL+LOAD
    @prevHpixelSSE: //
    sub dl,01h // d/d p0/1 ALU 0/1
    jz @newpixelSSE // -/d p0 ALU 0
    pshufd xmm2,[ecx+00h],10010101b // 6+4/2 p1+2 MMX_SH+LOAD
    movaps xmm4,xmm3 // 6/1 p0 FP_MOV
    mov ebx,[ecx+00h] // 2+d/d p0/1+2 ALU 0/1+LOAD
    @pixelSSE: //
    mulps xmm4,xmm2 // 6/2 p1+2 FP_MUL
    test ebx,ebx // d/d p0/1 ALU 0/1
    @1pixelSSE: //
    addps xmm1,xmm4 // 4/2 p1 FP_ADD
    jz @nextHpixelSSE // -/d p0 ALU 0
    movaps [edi],xmm1 // 6+6/1 p0+3 FP_STR+STORE
    js @stepHelementSSE // -/d p0 ALU 0
    add edi,10h // d/d p0/1 ALU 0/1
    movaps xmm4,xmm3 // 6/1 p0 FP_MOV
    sub ebx,01h // d/d p0/1 ALU 0/1
    movaps xmm1,[edi] // 6+6/1 p0+2 FP_MOV+LOAD
    jnz @1pixelSSE // -/d p0 ALU 0
    @nextHpixelSSE: //
    cmp ebx,[ecx+08h] // 2+d/d p0/1+2 ALU 0/1+LOAD
    pshufd xmm2,xmm2,11111111b // 4/2 p1 MMX_SH
    lea ebx,[ebx-01h] // d/d p0/1 ALU 0/1
    jnz @pixelSSE // -/d p 1 ALU 0
    @stepHelementSSE: //
    add ebp,ebx // d/d p0/1 ALU 0/1
    lea ecx,[ecx+10h] // d/d p0/1 ALU 0/1
    jnz @prevHpixelSSE // -/d p0 ALU 0
    mov edi,[esp+_DESTROW] // 2+d/d p0/1+2 ALU 0/1+LOAD
    xor edx,edx // d/d p0/1 ALU 0/1
    @moreVrowsSSE: //
    add [eax+00h],ebx // 2+2+d/d p0+2+3 ALU 0/1+LOAD+STORE
    jns @cvtROW // -/d p0 ALU 0
    cmp ebx,[eax+00h] // 2+d/d p0/1+2 ALU 0/1+LOAD
    jnz @stepVelementSSE // -/d p0 ALU 0
    add ebp,[eax+08h] // 2+d/d p0/1+2 ALU 0/1+LOAD
    movd xmm0,ebp // 6/2 p1 MMX_MSC+MMX_SH
    jnz @zoomvertSSE // -/d p0 ALU 0
    @stepVelementSSE: //
    add dword ptr [esp+_STRROWS],04h // 2+2+d/d p0+1+3 ALU 0/1+LOAD+STORE
    add [esp+_VSIZE],ebx // 2+2+d/d p0+1+3 ALU 0/1+LOAD+STORE
    lea eax,[eax+10h] // d/d p0/1 ALU 0/1
    jnz @copyarraySSE // -/d p0 ALU 0
    sub eax,10h // d/d p0/1 ALU 0/1
    mov [eax+00h],ebx // 2/d p3 STORE
    @cvtROW: //
    mov esi,edi // d/d p0/1 ALU 0/1
    mov ebp,[esp+_INCREASE] // 2+d/d p0/1+2 ALU 0/1+LOAD
    and esi,-64 // d/d p0/1 ALU 0/1
    sub edi,ebp // d/d p0/1 ALU 0/1
    @cvtRGB: //
    add esi,40h // d/d p0/1 ALU 0/1
    cvtps2dq xmm1,[esi+00h] // 6+5/1 p1 FP_ADD+LOAD
    cvtps2dq xmm2,[esi+10h] // 6+5/1 p1 FP_ADD+LOAD
    cvtps2dq xmm3,[esi+20h] // 6+5/1 p1 FP_ADD+LOAD
    cvtps2dq xmm4,[esi+30h] // 6+5/1 p1 FP_ADD+LOAD
    movaps [esi+00h],xmm5 // 6+6/1 p0+3 FP_STR+STORE
    movaps [esi+10h],xmm5 // 6+6/1 p0+3 FP_STR+STORE
    movaps [esi+20h],xmm5 // 6+6/1 p0+3 FP_STR+STORE
    movaps [esi+30h],xmm5 // 6+6/1 p0+3 FP_STR+STORE
    packssdw xmm1,xmm2 // 2/1 p1 MMX_SHF
    packssdw xmm3,xmm4 // 2/1 p1 MMX_SHF
    packuswb xmm1,xmm3 // 2/1 p1 MMX_SHF
    movups [edi+ebp],xmm1 // 6/1 p0 FP_MOV
    add ebp,10h // d/d p0/1 ALU 0/1
    js @cvtRGB // -/d p0 ALU 0
    cmp [eax+00h],edx // 2+d/d p0/1+2 ALU 0/1+LOAD
    jz @moreVrowsSSE // -/d p0 ALU 0
    divss xmm0,xmm0 // 23/23 p1 FP_DIV
    jns @zoomvertSSE // -/d p0 ALU 0

    [ 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