前回の続き。MIPS64R6用のデコードテーブルが完成したので、次に実行用の関数を追加していった。
まだ、以下のような実行関数のスケルトンを作成したに過ぎない。これらのをまた実装していくことになるのかー。 大変だ。
void InstEnv::MIPS64_INST_ABS_S (Word_t inst_hex) { } void InstEnv::MIPS64_INST_ABS_D (Word_t inst_hex) { } void InstEnv::MIPS64_INST_ABS_PS (Word_t inst_hex) { }
今回は浮動小数点の実装もしてみようと思う。浮動小数点の実装は、softfloatを使ってみようかと思う。これは、IEEE764に対応した、浮動小数点演算のソフトウェア実装ライブラリだ。
このライブラリは、以前FPU演算器を実装したときに利用したことがある。IntelのFPUを使ってもいいのだが、もし自分の演算器の実装に間違いがあって、原因が分からないときい、ソフトウェアライブラリを持っていると、ライブラリの実装をチェックして、自分の実装とどのように異なるのかを判断することができる。 まあ、このようにライブラリの中身を見るのは実装として良くないのだけれども、ソフトウェアライブラリはもう枯れてきているし、間違いは無いだろうという判断から、ゴールデンにしても良いと思う。
とりあえずは、まずは基本命令の実装(というか32ビット版からのコピー)から、次回はやっていこう。