Ignore:
Timestamp:
05/16/09 19:31:53 (15 years ago)
Author:
ehuelsmann
Message:

Mixed p2-compiland cleanup.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp

    r11885 r11886  
    81058105
    81068106    ;; 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*
    81098108      (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))
    81118113          (let ((register (allocate-register)))
    81128114            (aload (compiland-argument-register compiland))
     
    81338135      (dolist (variable (compiland-arg-vars compiland))
    81348136        (when (variable-special-p variable)
     8137          (emit-push-current-thread)
     8138          (emit-push-variable-name variable)
    81358139          (cond ((variable-register variable)
    8136                  (emit-push-current-thread)
    8137                  (emit-push-variable-name variable)
    81388140                 (aload (variable-register variable))
    8139                  (emit-invokevirtual +lisp-thread-class+ "bindSpecial"
    8140                                      (list +lisp-symbol+ +lisp-object+) nil)
    81418141                 (setf (variable-register variable) nil))
    81428142                ((variable-index variable)
    8143                  (emit-push-current-thread)
    8144                  (emit-push-variable-name variable)
    81458143                 (aload (compiland-argument-register compiland))
    81468144                 (emit-push-constant-int (variable-index variable))
    81478145                 (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))))
    81518149
    81528150    (compile-progn-body body 'stack)
    81538151
    81548152    (when (compiland-environment-register compiland)
    8155       (restore-environment-and-make-handler 
     8153      (restore-environment-and-make-handler
    81568154       (compiland-environment-register compiland) label-START))
    81578155
Note: See TracChangeset for help on using the changeset viewer.