Hirdetés

2024. április 26., péntek

Gyorskeresés

Hozzászólások

(#21) P.H.


P.H.
senior tag

SSE2-kód AMD-re egy kicsit kevesebb utasítással, kis utasítássorrend-módosítással (körvonalazódik, hogy VectorPath célszerűen feltételes ugrás után vagy ugrás céljaként rendezendő)

K8 Opteron: 517M clock (-10%), átlagosan 1.3 IPC

@copyarraySSE:
movd xmm0,[eax+04h]
@zoomvertSSE:
mov [esp],edi
xor ebx,ebx
mov esi,[esp+_STRROWS]
and edi,-64
sub edx,[esp+_STRLEFT]
movd ebp,mm7
pshufd xmm0,xmm0,00000000b
movd ecx,mm6
lea edi,[edi+40h]
mov esi,[esi]
cmovge edx,ebx
movaps xmm1,[edi]
@sourceLEFT:
mov bl,[esi]
add esi,02h
add edx,ebx
jle @sourceLEFT
mov bl,[esi-01h]
jmp @initpixelSSE
@newpixelSSE:
movzx edx,word ptr [esi]
add esi,02h
movzx ebx,dh
@initpixelSSE:
movaps xmm3,xmm0
shl ebx,04h
add dl,01h
add ebx,[esp+_STRCOLORS]
mulps xmm3,[ebx]
@prevHpixelSSE:
sub dl,01h
jz @newpixelSSE
pshufd xmm2,[ecx+00h],10010101b
movaps xmm4,xmm3
mov ebx,[ecx+00h]
@pixelSSE:
mulps xmm4,xmm2
sub ebx,01h
@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:
pshufd xmm2,xmm2,11111111b
cmp ebx,[ecx+08h]
jnz @pixelSSE
not ebx
@stepHelementSSE:
add ebp,ebx
lea ecx,[ecx+10h]
jnz @prevHpixelSSE
mov edi,[esp]
xor edx,edx
@moreVrowsSSE:
add [eax+00h],ebx
jg @cvtROW
jl @stepVelementSSE
add ebp,[eax+08h]
movd xmm0,ebp
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,-64
sub edi,ebp
@cvtRGB:
add esi,40h
cvtps2dq xmm1,[esi+00h]
cvtps2dq xmm2,[esi+10h]
cvtps2dq xmm3,[esi+20h]
cvtps2dq xmm4,[esi+30h]
movaps [esi+00h],xmm5
packssdw xmm1,xmm2
movaps [esi+10h],xmm5
packssdw xmm3,xmm4
movaps [esi+20h],xmm5
packuswb xmm1,xmm3
movaps [esi+30h],xmm5
movups [edi+ebp],xmm1
add ebp,10h
js @cvtRGB
cmp dword ptr [eax+00h],01h
jz @moreVrowsSSE
divss xmm0,xmm0
jg @zoomvertSSE

[ 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.