Reading Gauche/vm/insn/GREF_TAIL_CALL


Top / Reading Gauche / vm / insn / GREF_TAIL_CALL

GREF_TAIL_CALL

GREF_TAIL_CALL(nargc)

説明

関数の末尾呼び出しのために使われ、環境フレームを完成させる前に不要なフレームの参照を止める命令。

このインストラクションはGREFTAIL_CALLを組み合わせたものだと思われる。
このインストラクションの内容については、GREFTAIL_CALLCALLを参照。コードとしては以下のようになっている。

CASE(SCM_VM_GREF_TAIL_CALL) {

... /* ここがGREFと同じ処理 */

goto tail_call_entry;

}

CASE(SCM_VM_TAIL_CALL) {

tail_call_entry:

...

}

/* FALLTHROUGH */

CASE(SCM_VM_CALL) {

...

使用例

(disasm (lambda (x y) (values-ref x y)))

;; 0 LREF1 ; x

;; 1 TAIL-RECEIVE(0,1) ; (receive v x (list-ref v y))

;; 2 LREF0-PUSH ; v

;; 3 LREF10-PUSH ; y

;; 4 GREF-TAIL-CALL(2) #<identifier gauche#list-ref>; (list-ref v y)

;; 6 RET

関連項目

関連インストラクション

参照元

コメント

コメントはありません。 コメント/Reading Gauche/vm/insn/GREF_TAIL_CALL?

お名前:

MENU

now: 7

リンク


最新の20件
2018-10-07 2018-09-20 2018-09-03 2018-05-09 2017-09-29 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-05-29 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 1692, today: 1, yesterday: 0

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2009-04-12 (日) 17:21:36 (3534d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.038 sec.