RISC-VへMinCamlを移植したい
#MinCaml
#RISC-V
RISC-Vの開発環境を構築
M1Mac上でRV32G のクロスコンパイル環境を構築(Dockerなし編)
ターゲットアーキテクチャ
32ビットのRISC-Vで、整数と単精度浮動小数点数をターゲットとしたい(RV32IF)
ただし RV32IF の開発環境を用意するのが大変なので、ひとまずは RV32G を用意して様子を見る。
Spikeシミュレータ
Spikeシミュレータの使い方
bbl loader の表示を抑制したい
RISC-Vへの移植手順
AArch64への移植手順を参考に移植していく。
RV32用の各種ファイルを用意
4649を出力するだけのRISC-Vコードを出力
条件分岐するRISC-Vコードを出力 (sum.ml)
条件分岐するRISC-Vコードを出力 (gcd.ml)
フィボナッチ数を計算するRISC-Vコードを出力
_min_caml_start → min_caml_start 対応
浮動小数点数を扱うRISC-Vコードを出力
浮動小数点数の比較を行うRISC-Vコードを出力
MinCamlの配列を生成するRISC-Vコードを出力
マンデルブロ集合を出力するRISC-Vコードを出力
test/* をRISC-Vで動かす
test/ack.ml をRISC-Vで動かす
test/float.ml をRISC-Vで動かす
test/adder.ml をRISC-Vで動かす
test/even-odd.ml をRISC-Vで動かす
spikeで標準入力を扱いたい
レイトレをRISC-Vで動かす
AArch64 MinCamlでmin-rtを動かしてみる
(参考)AArch64 の時の移植手順
整数をプリントするだけのAArch64コードを出力
条件分岐を行うAArch64コードを出力
min_caml_startで渡したスタック領域とヒープ領域を利用するようにした
フィボナッチ数を計算するAArch64コードを出力
不動小数点数を扱うAArch64コードを出力
マンデルブロを出力するAArch64コードを出力
AArch64へ移植中のMinCamlの配列まわりを実装
MinCaml の test ディレクトリの中のプログラムを動かしてみる
クロージャを使ったプログラムのAArch64コードを出力
MinCamlのバグ修正 ( test/funcomp )
MinCamlのバグ修正 ( test/non-tail-if )
MinCamlのバグ修正 ( test/inprod-rec )