Changeset 11816
- Timestamp:
- 05/02/09 22:06:36 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
r11814 r11816 7875 7875 (label BEGIN-PROTECTED-RANGE) 7876 7876 (compile-form protected-form result-register nil) 7877 (emit-push-current-thread) 7878 (emit 'getfield +lisp-thread-class+ "_values" +lisp-object-array+) 7879 (astore values-register) 7877 (unless (single-valued-p protected-form) 7878 (emit-push-current-thread) 7879 (emit 'getfield +lisp-thread-class+ "_values" +lisp-object-array+) 7880 (astore values-register)) 7880 7881 (label END-PROTECTED-RANGE)) 7881 7882 (dolist (subform cleanup-forms) … … 7887 7888 (dolist (subform cleanup-forms) 7888 7889 (compile-form subform nil nil)) 7889 ( emit-clear-values)7890 (maybe-emit-clear-values cleanup-forms) 7890 7891 (aload exception-register) 7891 7892 (emit 'athrow) ; Re-throw exception. 7892 7893 (label EXIT) 7893 7894 ;; Restore multiple values returned by protected form. 7894 (emit-push-current-thread) 7895 (aload values-register) 7896 (emit 'putfield +lisp-thread-class+ "_values" +lisp-object-array+) 7895 (unless (single-valued-p protected-form) 7896 (emit-push-current-thread) 7897 (aload values-register) 7898 (emit 'putfield +lisp-thread-class+ "_values" +lisp-object-array+)) 7897 7899 ;; Result. 7898 7900 (aload result-register)
Note: See TracChangeset
for help on using the changeset viewer.