Hirdetés

2024. április 25., csütörtök

Gyorskeresés

Hozzászólások

(#12) P.H.


P.H.
senior tag

Under investigation: K8 utasítássorrend

ad 1:

@rewrite:
xor eax,eax
sub ecx,01h
js @finished
mov dl,[ebx+ecx]
add eax,[edi+ecx*04h]
mov ebp,[esi+edx*04h]
cmovz eax,ebp
test dl,dl
cmovz ebp,eax
mov [ebx+ecx*04h],ebp
jmp @rewrite

ad 2:
@rewrite:
xor eax,eax
sub ecx,01h
mov dl,[ebx+ecx]
js @finished
add eax,[edi+ecx*04h]
mov ebp,[esi+edx*04h]
cmovz eax,ebp
test dl,dl
cmovz ebp,eax
mov [ebx+ecx*04h],ebp
jmp @rewrite

ECX = 2 853 960 bemeneti értékkel az első ciklus lefutása 25M clock (~9 clock/pixel), a 2. ciklusé 30M clock (~10-11 clock/pixel). Az első cmovz általi átírás sosem fut le, a másodiké 90%-ban.

Ennek ellentmod, hogy a

test eax,eax
cmp eax,[eax-04h]

kód abban az esetben, ha EAX = 0, védelmi hibával leáll, tehát a cmovcc függ mindhárom bemeneti értékétől.

A referencia x86 kód 32M órajel:

@rewrite:
xor eax,eax
sub ecx,01h
mov dl,[ebx+ecx]
js @finished
add eax,[edi+ecx*04h]
mov ebp,[esi+edx*04h]
jz @store
test dl,dl
xchg ebp,eax
jz @store
mov ebp,eax
@store:
mov [ebx+ecx*04h],ebp
jmp @rewrite
@finished:

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