K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>> {"push_int_4byte", "i", 1}, // 直接持に変更 >> {"push_double_8byte", "d", 1}, // 直接持に変更 > >要点は、文字列以外はコンスタントプールを使わずに、直接定数を >バイトコードの中に埋め込むようにした、ということですよね。 > >Diksamは、JVMを真似したのと、将来的にバイトコードをファイルに >吐き出すことを考えてコンスタントプールを持ちましたが、 >たとえばYARVでは、効率を考えて定数をバイトコード(ていうかこれも >効率を考えてバイトコードではなくワードコード)中に埋め込んでいるそうです。 > >http://www.atdot.net/yarv/yarvarch.ja.html > >> {"push_sysval_int", "s", 1}, // システムグローバル変数アクセス用 >> {"push_sysval_double", "s", 1}, // >> {"push_sysval_str", "s", 1}, // >> {"pop_sysval_int", "s", -1}, // >> {"pop_sysval_double", "s", -1}, // >> {"pop_sysval_str", "s", -1}, // > >あと、もしシステムグローバル変数がDVM_Valueを保持しているのなら、 >実はpush_sysval_intやpush_sysval_doubleのようにインストラクションを >型ごとに分ける必要はありません。 >Diksamの場合、スタックはDVM_Valueの配列のくせにこのインストラクションを >分けているのは、将来的にint型ローカル変数は4バイトしか消費しないようにする、 >といった改善を入れるときのためです。 >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!