コンパイラ
提供: IS2005 Wiki (CPU実験)
目次
物(12/20, 5/19)
TODO
- オワタ!
最終発表
中間発表
- MinCaml改造版
- アセンブリの変更
- 整数の乗除算
- Array.create -> create_array
- とりあえず動く
- 1から作成版
- globals.mlごとコンパイル
- 最適化は秘密 (考えてないともいう)
- まだぽ
3/22
漏れは/usr/local/cad/jikken/2005/6/に書き込めないので saisyuu.odpをうpしといて下さい > 平野氏
うは
菅原さんに取り急ぎ送付しておきました。
3/12
- kosak氏の助言により2000万減
- kosak氏のもう一つの助言を実装して2000万減
- グローバル変数をレジスタに載せて2000万減
- 共通部分式除去で7000万減w
3/11
- 心なしかフェッチミスを減らす最適化。
- コンパイルオプション変えただけで4000万命令減った罠。
3/10
nf
media:コンパイラ-assembler20060310.zip
3/3
α版
- 開始地点のラベルをmin_caml_startからmainに変更
- スタックフレームは負の方向にのびる
media:コンパイラ-compiler20060303_2.zip
12/20
バグ取り
末尾でないときのfloat比較 <= で fbne を吐いていたのを fbg に修正
12/18
バグ取り
- レジスタ割り当てのバグ修正
- 関数呼び出しのバグ修正
12/17
バグ取り
float即値のバグ修正
12/16
バグ取り
- addiの吐き方を修正
- float即値の形式を自班のものにした
12/8
バグ取り
末尾呼び出しでjalを吐いていたのをjumpに修正
11/12
バグ取り & 変更
float定数テーブルを吐かなくした
11/11
hoge
float定数テーブルいらないじゃんorz
foo by ひらの
なにゆえ?
bar by namasute
float定数のビットパターンをそのままaddiでレジスタにいれればいいので。
11/10
ヒトリゴト
ラベルのアドレスをロードするときに 何気なくhi(ラベル)とかlo(ラベル)とか吐いていたが immが符号付きなのを失念していた。 ラベルのアドレスの下から16bit目が1のときこまる。 どうしたものか。
つぶやき 12/3 by ひらの
アセンブリがhi(ラベル)で四捨五入した上位ハーフワード、 lo(ラベル)で下位ハーフワードを吐けばいい話ということで、いいのかな。
つまり、
hi(0x00008000) = 0x0001 lo(0x00008000) = 0x8000
ということです。
11/7
バグ取り & 構文追加
整数の乗算、除算(やっつけ)。
11/6
とりあえずやっつけでmin-camlを改造してみますた。