Changeset 11886
- Timestamp:
- 05/16/09 19:31:53 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
r11885 r11886 8105 8105 8106 8106 ;; If applicable, move args from arg array to registers. 8107 (when (and *using-arg-array* 8108 (not (or *closure-variables* *child-p*))) 8107 (when *using-arg-array* 8109 8108 (dolist (variable (compiland-arg-vars compiland)) 8110 (unless (variable-special-p variable) 8109 (unless (or (variable-special-p variable) 8110 (null (variable-index variable)) ;; not in the array anymore 8111 (< (+ (variable-reads variable) 8112 (variable-writes variable)) 2)) 8111 8113 (let ((register (allocate-register))) 8112 8114 (aload (compiland-argument-register compiland)) … … 8133 8135 (dolist (variable (compiland-arg-vars compiland)) 8134 8136 (when (variable-special-p variable) 8137 (emit-push-current-thread) 8138 (emit-push-variable-name variable) 8135 8139 (cond ((variable-register variable) 8136 (emit-push-current-thread)8137 (emit-push-variable-name variable)8138 8140 (aload (variable-register variable)) 8139 (emit-invokevirtual +lisp-thread-class+ "bindSpecial"8140 (list +lisp-symbol+ +lisp-object+) nil)8141 8141 (setf (variable-register variable) nil)) 8142 8142 ((variable-index variable) 8143 (emit-push-current-thread)8144 (emit-push-variable-name variable)8145 8143 (aload (compiland-argument-register compiland)) 8146 8144 (emit-push-constant-int (variable-index variable)) 8147 8145 (emit 'aaload) 8148 ( emit-invokevirtual +lisp-thread-class+ "bindSpecial"8149 (list +lisp-symbol+ +lisp-object+) nil)8150 (setf (variable-index variable) nil))))))8146 (setf (variable-index variable) nil))) 8147 (emit-invokevirtual +lisp-thread-class+ "bindSpecial" 8148 (list +lisp-symbol+ +lisp-object+) nil)))) 8151 8149 8152 8150 (compile-progn-body body 'stack) 8153 8151 8154 8152 (when (compiland-environment-register compiland) 8155 (restore-environment-and-make-handler 8153 (restore-environment-and-make-handler 8156 8154 (compiland-environment-register compiland) label-START)) 8157 8155
Note: See TracChangeset
for help on using the changeset viewer.