Optymalizacja skoków i wywołań funkcji
Zamiana skoków na warunkowe CMOVxx

Skoki warunkowe często mogą zostać wyeliminowane przy użyciu warunkowych CMOVxx. Instrukcja MOV zostanie wykonana tylko jeżeli spełniony jest warunek xx np. cmovb, cmovae, cmovnz, cmovle.

a = b > c ? d : e ;
    mov eax, [b]
    cmp eax, [c]
    jng L1
    mov eax, [d]
    jmp L2
L1: mov eax, [e]
L2: mov [a], eax
mov eax, [b]
cmp eax, [c] 
 
mov eax, [d]
 
cmovng eax, [e]
mov [a], eax


Tomasz Kapela, Kraków 2011-2020