Changeset 11870


Ignore:
Timestamp:
05/15/09 17:19:34 (9 years ago)
Author:
ehuelsmann
Message:

Remove the TEMP-REGISTER slot from the
VARIABLE-INFO structure: it's used only locally.

Location:
trunk/abcl/src/org/armedbear/lisp
Files:
2 edited

Legend:

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

    r11868 r11870  
    42284228      (aver (null (variable-register variable)))
    42294229      (setf (variable-register variable) t)))
    4230   (let ((must-clear-values nil))
     4230  (let (must-clear-values
     4231        temporary-storage)
    42314232    (declare (type boolean must-clear-values))
    42324233    ;; Evaluate each initform. If the variable being bound is special, allocate
     
    42594260                 (allocate-variable-register variable))
    42604261               (cond ((variable-special-p variable)
    4261                       (emit-move-from-stack
    4262                        (setf (variable-temp-register variable)
    4263                              (allocate-register))))
     4262                      (let ((temp-register (allocate-register)))
     4263                        ;; FIXME: this permanently allocates a register
     4264                        ;; which has only a single local use
     4265                        (push (cons temp-register variable)
     4266                              temporary-storage)
     4267                        (emit-move-from-stack temp-register)))
    42644268                     ((variable-representation variable)
    42654269                      (emit-move-to-variable variable))
     
    42704274    ;; Now that all the initforms have been evaluated, move the results from
    42714275    ;; the temporary registers (if any) to their proper destinations.
    4272     (dolist (variable (block-vars block))
    4273       (when (variable-temp-register variable)
    4274         (aver (variable-special-p variable))
    4275         (aload (variable-temp-register variable))
    4276         (compile-binding variable))))
     4276    (dolist (temp temporary-storage)
     4277      (aload (car temp))
     4278      (compile-binding (cdr temp))))
    42774279  ;; Now make the variables visible.
    42784280  (dolist (variable (block-vars block))
  • trunk/abcl/src/org/armedbear/lisp/jvm.lisp

    r11869 r11870  
    246246  name
    247247  initform
    248   temp-register
    249248  (declared-type :none)
    250249  (derived-type :none)
Note: See TracChangeset for help on using the changeset viewer.