Ikuo Nakata
nakat****@kamak*****
2008年 9月 18日 (木) 07:28:36 JST
越智さん > > COINSを用いて,現在自分の研究室で開発しているプ > ロセッサ用の > コンパイラを作ろうとTMDの拡張を行っています. > > そこで質問なのですが,x86のマシン上で別のアーキ > テクチャ用の > 実行コードを出力させたいと思っております.しか > し,COINSのウェブドキュメ > ントを > 一通り読みましたがやり方がわかりませんでした. > どうすればできるのでしょうか? > > それと,もうひとつ質問があります./classes/coins/ > backend/gen/の下に新た > なプロセッサ用のTMDを作った後,それを反映させる > のはどうすればよいので > しょうか? TMDの書き方については, http://www.coins-project.org/ の「COINSの解説」の 「9.1 バックエンドの構成」 を見てください. それだけでは分かりにくいかも知れませんので, 書くときには既にあるTMD,たとえばsparc.tmdやx86.tmdを 見て それのまねをすることから始めるといいと思います. TMDを作った後,それを反映させる方法は「9.1 バック エンドの構成」 には書いてないですね. その方法は 情報処理学会誌連載「21世紀のコンパイラ道しる べ ‥ COINSをベースにして」 の中の 森公一郎, 阿部正佳, 中田育男, 鈴木貢: 「TMDによるコード生成-SPARC0を例題として」 情報処理, Vol.47, No.7, pp.776-785 (Jul. 2006). や 中田育男, 渡邊坦, 佐々政孝, 滝本宗宏:, コンパイラの基盤技術と実践 − コンパイラ・ インフラストラクチャCOINSを用いて, 朝倉書店 (2008年6月). の 「11.3 C0バックエンド用のSPARC0マシン記述」 などに書いてあります. そこには次のように書かれています. 11. 3. 1 COINS へのマシン記述の組み込み sparc0.tmd を COINS に組み込むためには,まず,sparc0.tmd を COINS の src/coins/backend/gen/に入れ,そのディレクトリにある Makefile に sparc0.tmd に関する行を書き込む必要がある(Makefile を見てそ こにあるものをまねすればよい. 書き込んだ形のものもhttp://www.coins-project.org/COINS-book/ に置いてある). 次に,COINS のルートディレクトリで $ ./build.sh を実行すると CodeGenerator_sparc0.java が生成され,それ が javac でコンパイル される.それで組み込み完了である . 11. 3. 2 COINS での使い方 COINS に組み込んだ sparc0.tmd を使うには -coins:target=sparc0 というオプション指定をすればよい.これによって sparc0 マシンのコードが生成さ れる. 中田 育男 nakat****@kamak***** -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...Download