Intel Architecture's Developer's Manual (Vol3A、セクション 8-26) には、次のように記載されています。
Pentium プロセッサおよび最近のプロセッサ ファミリは、分岐予測技術を使用して、分岐命令が実行される前に分岐命令の宛先をプリフェッチすることによってパフォーマンスを向上させます。その結果、分岐命令が実行されるとき、命令の実行は決定論的にシリアライズされません。
これは何を意味するのでしょうか?
それは本当に、本当に悪いですね。CPUID のようなシリアル化命令が分岐予測を破る (またはその逆) ように聞こえますが、それはありそうにありません。このコンテキストで「非決定論的」が何を意味するのかを理解するのに、ASM 関係者は助けてくれますか?
*わかりやすくするために編集