diff --git a/compiler/codegen.lisp b/compiler/codegen.lisp index 281257a43baa3bbd01a1f0a6d2f67e033cff9283..f91233bfe1b1f8e8a93942d052cfd81755d9b39a 100644 --- a/compiler/codegen.lisp +++ b/compiler/codegen.lisp @@ -35,8 +35,7 @@ (let ((block (ir2-block-block (vop-block vop)))) (when (ir2-environment-number-stack-p (environment-info - (lambda-environment - (block-lambda block)))) + (block-environment block))) (ir2-component-nfp (component-info (block-component block))))))) @@ -64,11 +63,11 @@ (defun generate-code (component) (let ((prev-env nil)) (do-ir2-blocks (block component) - (let* ((1block (ir2-block-block block)) - (lambda (block-lambda 1block))) - (when (and (eq (block-info 1block) block) lambda) + (let ((1block (ir2-block-block block))) + (when (and (eq (block-info 1block) block) + (block-start 1block)) (emit-label (block-label 1block)) - (let ((env (lambda-environment lambda))) + (let ((env (block-environment 1block))) (unless (eq env prev-env) (let ((lab (gen-label))) (setf (ir2-environment-elsewhere-start (environment-info env))