動的言語 VM 実装に関する JIT 設計を研究しています。私は 8086/8088 の頃からあまり組み立てを行っていません。ほんの少しだけです。
私が理解しているように、x86 (IA-32) アーキテクチャには、今日でも以前と同じ基本的な制限付きレジスタ セットがありますが、内部レジスタの数は大幅に増加していますが、これらの内部レジスタは一般的には利用できず、レジスタの名前変更で使用されます。他の方法では並列化できないコードの並列パイプライン化を実現します。私はこの最適化をかなりよく理解していますが、これらの最適化は全体的なスループットと並列アルゴリズムに役立ちますが、制限されたレジスターセットがまだ残っているため、x86 でレジスターが 2 倍または 4 倍になると、レジスターの流出オーバーヘッドが増加します。通常の命令ストリームでは、プッシュ/ポップ オペコードが大幅に少ない可能性があります。または、私が気付いていないこれを最適化する他のプロセッサの最適化がありますか? 基本的に私なら
研究、またはさらに良いことに、個人的な経験への言及はありますか?
編集:x86_64には16個のレジスタがあり、これはx86-32の2倍です。修正と情報に感謝します。