Eir
ツールチェインを構成するエミュレータ
実行可能ファイルをエミュレートする
雑記
判断が遅い
処理が遅い
認知している範囲で原因は以下の通り
命令のデコード
x86_64の機械語において命令は可変長である
命令のデコードを行うx86asmはstreamではなくVecに対して処理を行う つまりメモリから十分なサイズの値を読み込んでVecとし、デコードしなければいけない
したがって、読み込んだものの使用されなかった値の分だけ時間が無駄になる
MMUの処理
メモリの値を、一つのVecとしてではなくセグメントごとの複数のVecによって保持している
メモリへのアクセスは仮想アドレスを用いて行われ、これを物理アドレスに変換しなければいけない
フラグの更新が大変
レジスタのビット数も考慮しつつフラグを更新する必要がある
簡単のため今は64bitの演算しか扱っていない