36991行

論文書きをひとまず置いておいて久しぶりにプログラミング。

  • rjil.hのアーキテクチャ依存部分であるarch_dep_rjil.hを導入した。
  • 論理レジスタ番号の1番と2番をそれぞれスタックポインタRJIL_REG_STACK_POINTERとフレームポインタRJIL_REG_FRAME_POINTERに特別に割り当てた。通常の論理レジスタはRJIL_REG_ARCH_INDEP_START以降から割り当てられる。それに伴ってレジスタ割り当てにlinear_scan_alloc_arch_dep_reg()を導入した。
  • fconvi, fconvf, fconvdのうちlong型以外の部分をネイティブ命令でサポートした。int型と浮動小数点型の間で型変換する場合、SPARCではメモリを介してレジスタの値を移動させなければならない。この場合はスタックを介するため、arch_mapからreg_allocの間で特別にフレームポインタを表す論理レジスタが必要となる。そこでRJIL_REG_FRAME_POINTERを用いる。

JGFのraytracerでバグが出ているようだ。まだ直していない。