レジスタ割り当て実装

3番地コードに対してレジスタ割り当てを実装した。
干渉グラフに基づくグラフカラーリングによる実装にした。カラーリングの最適化は殆どやっていない。干渉レジスタの多いところから優先的に割り当てるという程度。

これで実行可能なコードを生成できるところまで来た。あとはひたすら命令を追加していくのみ。
↓今実行可能なのは例えばこんなコード。まだまだ貧弱。

first: (x,y) {
    return x;
};

export
main: () {
    syscall(1, first(1, 2));
};