Changeset 11862
- Timestamp:
- 05/14/09 20:00:24 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/closure-fixes/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
r11861 r11862 3920 3920 (emit-invokevirtual +lisp-thread-class+ "bindSpecial" 3921 3921 (list +lisp-symbol+ +lisp-object+) nil)) 3922 ((variable-closure-index variable) 3923 (emit 'new "org/armedbear/lisp/ClosureBinding") 3924 (emit 'dup) 3922 ((variable-closure-index variable) ;; stack: 3923 (emit 'new "org/armedbear/lisp/ClosureBinding") ;; value c-b 3924 (emit 'dup_x1) ;; c-b value c-b 3925 (emit 'swap) ;; c-b c-b value 3925 3926 (emit-invokespecial-init "org/armedbear/lisp/ClosureBinding" 3926 (list +lisp-object+)) 3927 (list +lisp-object+)) ;; c-b 3927 3928 (aload (compiland-closure-register *current-compiland*)) 3928 (emit 'swap) ; array value 3929 ;; c-b array 3930 (emit 'swap) ;; array c-b 3929 3931 (emit-push-constant-int (variable-closure-index variable)) 3932 ;; array c-b int 3930 3933 (emit 'swap) ; array index value 3931 3934 (emit 'aastore)) … … 8123 8126 (emit 'dup) ; array 8124 8127 (emit-push-constant-int (variable-closure-index variable)) 8125 (aload (variable-register variable))8126 8128 (emit 'new "org/armedbear/lisp/ClosureBinding") 8127 8129 (emit 'dup) 8130 (aload (variable-register variable)) 8128 8131 (emit-invokespecial-init "org/armedbear/lisp/ClosureBinding" 8129 (list "Lorg/armedbear/lisp/LisObject;"))8132 (list +lisp-object+)) 8130 8133 (emit 'aastore) 8131 8134 (setf (variable-register variable) nil)) … … 8133 8136 (emit 'dup) ; array 8134 8137 (emit-push-constant-int (variable-closure-index variable)) 8138 (emit 'new "org/armedbear/lisp/ClosureBinding") 8139 (emit 'dup) 8135 8140 (aload (compiland-argument-register compiland)) 8136 8141 (emit-push-constant-int (variable-index variable)) 8137 8142 (emit 'aaload) 8138 (emit 'new "org/armedbear/lisp/ClosureBinding")8139 (emit 'dup)8140 8143 (emit-invokespecial-init "org/armedbear/lisp/ClosureBinding" 8141 (list "Lorg/armedbear/lisp/LisObject;"))8144 (list +lisp-object+)) 8142 8145 (emit 'aastore) 8143 8146 (setf (variable-index variable) nil))))
Note: See TracChangeset
for help on using the changeset viewer.