Reading Gauche/vm/insn/PRE_CALL


Top / Reading Gauche / vm / insn / PRE_CALL

PRE_CALL

PRE_CALL(procedure_id) location

説明

手続きの呼び出しの前に使用する。
オペランドとして RET 命令後に実行すべきコードの位置(PCポインタ)である location を取る。
そのコードの位置と環境を保存した継続フレームを作成し、現在の Cont に設定する。
手続き終了後 RET 命令時にこの継続フレームを利用して処理を継続する。

procedure_idは PRE_CALL と対応している手続き呼び出しを分かりやすくするために使用されている。

使用例

(disasm (lambda () (display 10) 12))

0 PRE-CALL(1) 5

2 CONSTI-PUSH(10)

3 GREF-CALL(1) #<identifier user#display>; (display 10)

5 CONSTI(12)

6 RET

関連項目

コメント

最新の1000件を表示しています。 コメントページを参照

お名前:
  • RE-CALL(1) 5 の(1)の部分について書き加えてみました。 -- ココサブ 2008-03-26 (水) 00:38:33
    • おお。良いですね。知らなかった> procedure_id 。 -- ひげぽん 2008-03-26 (水) 11:06:39
      • run_loopで対応する部分がない事と複数PRE-CALLが使われるようにdisasmしてみた時の状態からの推測なのでもしかしたら違うかもしれません。procedure_idという名称もてきとうに付けたものですし。 -- ココサブ 2008-03-26 (水) 11:17:44
  • 「この命令以降の処理は引き継いだ継続フレーム上で(?)実行される。」は表現がおかしいと思うので、ココサブさんの説明をベースに書いてみました。「手続きの呼び出しの前に使用する。オペランドとして RET 命令後に実行すべきコードの位置(PCポインタ)である location を取る。そのコードの位置と環境を保存した継続フレームを作成し、現在の Cont に設定する。手続き終了後 RET 命令時にこの継続フレームを利用して処理を継続する。」 -- ひげぽん 2008-03-24 (月) 20:29:27
    • レビューありがとうございます。おかしい表現直していただきありがとうございます。手続きがさらっとでてきたり、文章の流れかきれいで素敵です。 -- ココサブ 2008-03-26 (水) 00:37:35
      • いえいえ。あくまでもベースの文章を元にでっちあげただけなのでw -- ひげぽん 2008-03-26 (水) 11:07:12
  • 理解を助ける図。 -- ひげぽん 2008-03-24 (月) 20:25:06
    P3244050.JPG

MENU

now: 3

リンク


最新の20件
2019-07-30 2019-06-20 2019-06-19 2019-03-24 2019-02-26 2018-10-07 2018-09-20 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
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 3019, today: 1, yesterday: 0

添付ファイル: fileP3244050.JPG 640件 [詳細]

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

Last-modified: 2008-07-23 (水) 10:27:49 (4079d);  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.047 sec.