yarv-dev:522
From: SASADA Koichi <ko1 atdot.net>
Date: Wed, 29 Jun 2005 14:17:45 +0900
Subject: [yarv-dev:522] Re: Optimal code generation on Stack Caching
ささだです。 shudo computer.org wrote: > 各 VM 命令インスタンスをそれぞれ別の関数に閉じ込めておいて、 > それをコンパイルして得たアセンブリコードを切り張りすることで > C 関数の prologue, epilogue を切り捨てる、とか :) > 力ワザすぎる。 プロローグ、エピローグコードがスケジューリング対象にならないとは限らな いと思うのですが、どうなんでしょうか。 > shuJIT では VM 命令インスタンスは基本的に > インラインアセンブリとして記述したのですが、 > デバッグ目的でたまに C のコード (*) を書き込むと、 > C コードにレジスタの内容を壊されてしまい、よく困ってました。 > レジスタの使い方が gcc のバージョンによって変わったりして、 > これがまたしんどく。 > > (*) デバッグ目的のコードは往々にして条件分岐 (e.g. if (debug)) を > 含んでいて、これをアセンブリコードで書くためには > 衝突しないようにラベルを付ける必要があり、これが面倒で、 > C で書いてました。 なるほどなるほど・ -- // SASADA Koichi at atdot dot net // -- ML: yarv-dev quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
512 2005-06-28 16:03 [ko1 atdot.net ] Optimal code generation on Stack Caching 513 2005-06-28 17:08 ┗[maeda-yarv atusi.org] 516 2005-06-28 20:16 ┗[ko1 atdot.net ] 518 2005-06-29 10:45 ┗[shudo computer.org ] 519 2005-06-29 10:51 ┣[shudo computer.org ] -> 522 2005-06-29 14:17 ┃┗[ko1 atdot.net ] 521 2005-06-29 14:16 ┗[ko1 atdot.net ] 523 2005-06-29 14:45 ┗[ko1 atdot.net ]