[armedbear-cvs] r12116 - trunk/abcl/src/org/armedbear/lisp
Erik Huelsmann
ehuelsmann at common-lisp.net
Mon Aug 24 19:21:16 UTC 2009
Author: ehuelsmann
Date: Mon Aug 24 15:21:13 2009
New Revision: 12116
Log:
Convert LABELS BLOCK-NODEs to LABELS-NODEs.
Modified:
trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp
trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
Modified: trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp (original)
+++ trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp Mon Aug 24 15:21:13 2009
@@ -670,15 +670,15 @@
(let ((*visible-variables* *visible-variables*)
(*current-compiland* (local-function-compiland local-function)))
(p1-compiland (local-function-compiland local-function))))
- (let* ((block (make-block-node '(LABELS)))
+ (let* ((block (make-labels-node))
(*blocks* (cons block *blocks*))
(body (cddr form))
(*visible-variables* *visible-variables*))
- (setf (block-free-specials block)
+ (setf (labels-free-specials block)
(process-declarations-for-vars body nil block))
- (dolist (special (block-free-specials block))
+ (dolist (special (labels-free-specials block))
(push special *visible-variables*))
- (setf (block-form block)
+ (setf (labels-form block)
(list* (car form) local-functions (p1-body (cddr form))))
block))))
Modified: trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp (original)
+++ trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp Mon Aug 24 15:21:13 2009
@@ -4970,7 +4970,7 @@
(defknown p2-labels-node (t t t) t)
(defun p2-labels-node (block target representation)
- (let* ((form (block-form block))
+ (let* ((form (labels-form block))
(*local-functions* *local-functions*)
(*visible-variables* *visible-variables*)
(local-functions (cadr form))
@@ -4985,9 +4985,10 @@
(setf (variable-register variable) (allocate-register)))))
(dolist (local-function local-functions)
(p2-labels-process-compiland local-function))
- (dolist (special (block-free-specials block))
+ (dolist (special (labels-free-specials block))
(push special *visible-variables*))
- (compile-progn-body body target representation)))
+ (let ((*blocks* (cons block *blocks*)))
+ (compile-progn-body body target representation))))
(defun p2-lambda (compiland target)
(let* ((lambda-list (cadr (compiland-lambda-expression compiland))))
@@ -7914,11 +7915,11 @@
(cond
((eq name 'LET)
(p2-let/let*-node form target representation))
- ((eq name 'LABELS)
- (p2-labels-node form target representation))
- ((eq name 'SETF) ;; SETF functions create
+;; ((eq name 'LABELS)
+;; (p2-labels-node form target representation))
+;; ((eq name 'SETF) ;; SETF functions create
;; consp block names, if we're unlucky
- (p2-block-node form target representation))
+;; (p2-block-node form target representation))
(t
(print name)
(aver (not "Can't happen.")))
@@ -7936,6 +7937,8 @@
(fix-boxing representation nil))
((flet-node-p form)
(p2-flet-node form target representation))
+ ((labels-node-p form)
+ (p2-labels-node form target representation))
((locally-node-p form)
(p2-locally-node form target representation))
((catch-node-p form)
More information about the armedbear-cvs
mailing list