(ほとんどの)RISCアーチとは異なり、x86命令は可変長です。命令の開始/終了は整列させる必要はありません。コンパイラが1つの命令をページマージンに横たわっているに過ぎない場合は、ハードウェアとコンパイラは、実行不可能なページにまたがるx86命令をどのように処理しますか?
命令の最初のバイトが実行可能とマークされたページの最後のバイトにあるとします。命令の残りのバイトは、実行不可能とマークされた第2ページにある。
このような場合、実行がこの命令に達すると、CPUはどうなりますか?
コンパイラはこのようなケースを扱う必要がありますか?
説明を省略した。 – EJP
次のページ*が*実行可能な場合、動作します。フェッチは、整列されたチャンクで行われ、デコーダのキューに供給されます。別のページのバイトを組み合わせると、フェッチ後、TLBチェック後にしばらく時間がかかるので、ページ分割データのロードとは異なります。 –