新しいCPUのエミュレーション
本来は、CPUが持つ命令をあらかじめ検出してから、その命令を使い、命令が存在しなければ代替命令を使うというのが正しい手順だが、新しいCPU向けに作られたバイナリではその検出と代替命令が用意されていないことがある。
未定義の命令を実行すると、最近の CPU は不正命令実行としてトラップすることができる。その後の処理は実装に任されている。
基本的には2つの対処方法がある。
そのまま異常終了する。
安全性を考えれば、そもそも不正命令が実行された時点で何らかの問題を抱えている可能性がある。バグ、暴走かもしれない。
代替命令を実行して元のコードに戻る。
パフォーマンスは落ちるが、古いCPUでもそのまま実行を続けることができる。
これはポリシーの問題であるため、どのように対処するのかはユーザーに委ねられるべきである。