gencomp 確認 (11)
ばたばたし杉でちょっと頭が切り替わらないんですが、頑張ってみます。
ちょっと色々微妙なので今日もメモのみ、になりそげ。
あら?
色々確認。
gosh> (car (class-slot-ref <vm-insn-info> 'all-insns)) (POP-HANDLERS . #<<vm-insn-info> 0x82524b8>) gosh> (cadr (class-slot-ref <vm-insn-info> 'all-insns)) (PUSH-HANDLERS . #<<vm-insn-info> 0x8252848>) gosh> (caddr (class-slot-ref <vm-insn-info> 'all-insns)) (VALUES-N . #<<vm-insn-info> 0x8252bd8>) gosh> (cadddr (class-slot-ref <vm-insn-info> 'all-insns)) (TAIL-RECEIVE-ALL . #<<vm-insn-info> 0x8252f68>) gosh> (d (cdr (car (class-slot-ref <vm-insn-info> 'all-insns)))) #<<vm-insn-info> 0x82524b8> is an instance of class <vm-insn-info> slots: name : POP-HANDLERS code : 170 num-params: 0 operand-type: none combined : () all-insns : ((POP-HANDLERS . #<<vm-insn-info> 0x82524b8>) (PUSH-HANDLERS gosh>
ちなみに vminsn.scm では以下な記述があって
;; PUSH-HANDLERS ;; POP-HANDLERS ;; Used for dynamic-wind and alike. (define-insn PUSH-HANDLERS 0 none) ; push dynamic handlers (define-insn POP-HANDLERS 0 none) ; pop dynamic handlers
こんなカンジに変換されているはず。(vminsn.c)
DEFINSN(SCM_VM_PUSH_HANDLERS, "PUSH-HANDLERS", 0, NONE) DEFINSN(SCM_VM_POP_HANDLERS, "POP-HANDLERS", 0, NONE)
あと、lib/gauche/vm/insn.scm には以下な記述があるんですが
;; #x0ae POP-HANDLERS (make <vm-insn-info> :name 'POP-HANDLERS :code 174 :num-params 0 :operand-type 'none :combined '())
なんか違う。体調悪いし今日も早めに寝る。
と言いつつ
まだごそごそヤッてます。
gosh> (assq 'POP-HANDLERS (class-slot-ref <vm-insn-info> 'all-insns)) (POP-HANDLERS . #<<vm-insn-info> 0x82524b8>) gosh>
ちなみに vminsn.{c, scm} な定義は struct insn_info な配列の insn_table の要素の初期化に使われている模様。
駄目だ
限界。