自作RISC-Vシミュレータを公開します。 https://github.com/msyksphinz/swimmer_riscv まだサポートできてない命令が山ほどあるけど、とりあえずCoremarkくらいは動くようになった。
基本的にRubyで命令テーブルを作っていき、それを元に命令の雛形を作る。命令を追加するときは、そのテーブルを追加して、命令の動作を記述する。 デコードテーブルは半自動で生成する。
とりあえず過去のMIPSシミュレータ(自作)が死ぬほど汚なかったのでここ一週間でかなり書き直した結果がこれ。それでもかなり汚ないけど。 綺麗なISSは綺麗なISAに宿る、ということでRISC-V版のみ公開したけど、MIPSにも移植する予定。
使い方とかはまた後日。