Názor ke článku C++: Mapování hodnot z runtime na integrální konstanty od Ondřej Novák - Nic takového neexistuje. Samozřejmě, pokud adresa není známa...

  • 5. 6. 2023 13:38

    Ondřej Novák

    Nic takového neexistuje. Samozřejmě, pokud adresa není známa v určitém bodě, musí dekóder instrukcí čekat. Proto ta instrukce LEA pro výpočet začátku tabulky je s předstihem, aby jakmile je znám výsledek EAX, tak se mohlo pokračovat.

    Nicméně se domnívám, že zahazování rozpracované větvě při špatném odhadu je mnohem náročnější pro CPU, než prostě počkat, dokud není výsledek znám. On, jakmile je výsledek znám, může se pokračovat v dekódování instrukcí a přitom to ještě neznamená, že by instrukce byla dokončena, tam je ještě nějaký cleanup a commit fáze, Prostě obecně je skok na vypočtenou adresu rychlejší, než špatně odhadnutý podmíněny skok.