[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:515

From: Shiro Kawai <shiro lava.net>
Date: Tue, 28 Jun 2005 00:55:20 -1000 (HST)
Subject: [yarv-dev:515] Re: Bytecode Fetch Optimization for a Java Interpreter

From: SASADA Koichi <ko1 atdot.net>
Subject: [yarv-dev:514] Bytecode Fetch Optimization for a Java Interpreter
Date: Tue, 28 Jun 2005 19:36:37 +0900

>  write-through top-of-stack caching (WT) というのは、
[...]
>  Gauche がこんな感じ? ちょっと違うかな。

Gaucheでは値レジスタVAL0への書き込みはスタックに反映されず、
スタックに残したければPUSHが必要です。もっともほとんどの場合
複合命令でスタックへのPUSHも行われますが。

条件分岐に使う式の値や、関数呼び出しにおけるオペレータの評価値は
スタックにPUSHする必要がなく、直接VAL0の値を使います。

動作だけ見るとVAL0が実質的にスタックトップの役割を果していますね。
開発時のイメージは昔のプロセッサのアキュムレータなんですが。

ちなみにVAL0の'0'は、戻り値の最初の値が格納されるからです。
多値の戻り値の場合、VAL1〜VAL20のレジスタも使われます。

--shiro




--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       514 2005-06-28 19:36 [ko1 atdot.net       ] Bytecode Fetch Optimization for a Java Interpreter
->     515 2005-06-28 19:55 ┣[shiro lava.net      ]                                       
       517 2005-06-29 11:26 ┗[maeda-yarv atusi.org]                                       
       520 2005-06-29 14:12  ┗[ko1 atdot.net       ]