Reading Gauche/vm/insn/RT


Top / Reading Gauche / vm / insn / RT

RT

RT

説明

Conditional return (条件つき Return)の1つ。 Return on True の略と思われる。
VAL0 の値が #f 以外の場合に、RET命令と同様に継続フレームを取り出して、現在の環境にセットする。
VAL0 の値が #f の場合には何もしない。

背景

a が #t に束縛されているとする。末尾文脈にある (or a b) では a の評価結果が #t の場合、(or a b) が返す値としても a の評価結果(#t)が使われる。
Gauche VM では直前の評価結果は VAL0 に保持されていることから、末尾文脈では a を評価した結果が #t の場合 branch の else を評価する事なく RET を発行する事が可能であることから、この命令が使われる。
else の評価には Jump が必要であるから命令の実行を節約する効果がある。
詳細は compile.scm pass3/if-final 手続きを参照。

使用例

(disasm (lambda () (or a b)))

;; 0 GREF #<identifier user#a>; a

;; 2 RT

;; 3 GREF #<identifier user#b>; b

;; 5 RET

関連項目

関連インストラクション

参照元

コメント

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

お名前:

MENU

now: 2

リンク


最新の20件
2019-02-26 2018-10-07 2018-09-20 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: 1816, today: 1, yesterday: 0

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

Last-modified: 2008-12-26 (金) 22:35:39 (3741d);  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.026 sec.