Hirdetés

2024. május 10., péntek

Gyorskeresés

Hozzászólások

(#22) P.H.


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

Copyright © 2000-2024 PROHARDVER Informatikai Kft.