Gauche:YAGHG:VM:Insn:POP-LOCAL-ENV

Gauche:YAGHG:VM:Insn:POP-LOCAL-ENV

概要

;; POP-LOCAL-ENV
;;  Pop one environment frame created by LOCAL-ENV.  In practice,
;;  this is only used if 'let' is in the non-tail bottom position
;;  (for other cases, the env frame is discarded along other frame
;;  operations).
(define-insn POP-LOCAL-ENV 0 none)

環境フレームを1つポップする。

動作

               BEFORE                                AFTER     
              +=========+                           +=========+
              :         :                           :         :
              +=========+<---+             env ---->+=========+
              |         |    |                      |         |
              | E#0     |    |                      | E#0     |
              |         |    |                      |         |
     env ---->+=========+    |                      +=========+
              |         |    |                      |         |
              | E#1     |    |                      |         |
              |         |    |                      |         |
           up |       --+----+                      |         |
argp, sp ---->+=========+             argp, sp ---->+---------+
              |         |                           |         |
              |         |                           |         |

コード例

(compile-p3
 '(begin
   (let ((i 0))
     (set! i 1))
   #f))

0 CONSTI-PUSH(0)
1 LOCAL-ENV(1)             ; (let ((i 0)) (set! i 1))
2 CONSTI(1)
3 LSET(0,0)                ; i
4 POP-LOCAL-ENV
5 CONSTF-RET

Last modified : 2006/01/29 09:06:09 UTC