[1702] またまた、おひさしぶりです
投稿者:山
2011/02/09 00:03:24
またまた、お久しぶりです。
最近は、主に3Dグラフィック関係の組込関数ばかり作っています。
言語部分の修正はあまり無いです。しかし、組み込み関数及び、
普通の関数のほとんどがリターンコード0のばかりだったので、void型を
作りました。関数の戻り値だけにしか使い道がありませんが。
その結果、バイトコードでは、call後のpopが必要なくなったのと、call機能
の実装部分が、void関数ではリターンコード処理がない分シンプルになりました。
おお、今気がついた、voidの関数はcall_voidの様な命令追加して、より
シンプルにしよう。ほとんどがvoid関数なので効果が出る。
また、関数コールを数倍速する方法。それは、初期値の定数処理バイト
コードが不要になり、パラメータ処理も単純になります。しかし、修正部分が
多いのでまた今度にします。
方法は簡単で、関数コールのスタック情報を事前に総て持っていて、
それをスタックにコピーして、インデックスアドレスとパラメータデータ
のみ調整することで高速に関数が呼べます。定数コピーとかパラメータ
領域作成等細かな処理を一発コピーで終わらせます。
いまはまだ出来ませんが、行く行く組込みます。
また、シート変数を普通の関数パラメータに指定できるようにするため、
バイトコードが7つも増えてしまいました。orz
はやく、こんなことがしたかったんですと見せられるといいのですが、
まだまだ先が遠いです。