Changeset 11480


Ignore:
Timestamp:
12/26/08 10:14:11 (13 years ago)
Author:
ehuelsmann
Message:

Revert r11472: somehow macro-expansion was influenced by it (badly).

Note: This commit should come back, but in modified form.

File:
1 edited

Legend:

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

    r11473 r11480  
    192192(defconstant +lisp-go-class+ "org/armedbear/lisp/Go")
    193193(defconstant +lisp-ctf-class+ "org/armedbear/lisp/ClosureTemplateFunction")
    194 (defconstant +lisp-ctf+ "Lorg/armedbear/lisp/ClosureTemplateFunction;")
    195194(defconstant +lisp-compiled-closure-class+ "org/armedbear/lisp/CompiledClosure")
    196195(defconstant +lisp-compiled-function-class+ "org/armedbear/lisp/CompiledFunction")
     
    28462845      (emit 'aastore))))
    28472846
    2848 
    2849 (defun emit-dup-ctf-and-set-context (compiland)
    2850   (emit 'checkcast +lisp-ctf-class+)
    2851   (emit-invokevirtual +lisp-ctf-class+ "dup" nil +lisp-ctf+)
    2852   (emit 'aload (compiland-closure-register compiland))
    2853   (emit-invokevirtual +lisp-ctf-class+ "setContext"
    2854                       (list +lisp-object-array+)
    2855                       +lisp-ctf+))
    2856 
    28572847(defknown compile-local-function-call (t t t) t)
    28582848(defun compile-local-function-call (form target representation)
     
    28852875             (emit 'getstatic *this-class* g +lisp-object+) ; Stack: template-function
    28862876             (when *closure-variables*
    2887                (emit-dup-ctf-and-set-context compiland)))))
     2877               (emit 'checkcast +lisp-ctf-class+)
     2878               (emit 'aload (compiland-closure-register compiland))
     2879               (emit-invokestatic +lisp-class+ "makeCompiledClosure"
     2880                                  (list +lisp-object+ +lisp-object-array+)
     2881                                  +lisp-object+)))))
    28882882    (let ((must-clear-values nil))
    28892883      (declare (type boolean must-clear-values))
     
    47904784               (let ((parent (compiland-parent compiland)))
    47914785                 (when (compiland-closure-register parent)
    4792                    (emit-dup-ctf-and-set-context parent)))
     4786                   (dformat t "(compiland-closure-register parent) = ~S~%"
     4787                            (compiland-closure-register parent))
     4788                   (emit 'checkcast +lisp-ctf-class+)
     4789                   (emit 'aload (compiland-closure-register parent))
     4790                   (emit-invokestatic +lisp-class+ "makeCompiledClosure"
     4791                                      (list +lisp-object+ +lisp-object-array+)
     4792                                      +lisp-object+)))
    47934793
    47944794               (dformat t "p2-flet-process-compiland var-set ~S~%" (variable-name (local-function-variable local-function)))
     
    48104810                       (let ((parent (compiland-parent compiland)))
    48114811                         (when (compiland-closure-register parent)
    4812                            (emit-dup-ctf-and-set-context parent)))
     4812                           (dformat t "(compiland-closure-register parent) = ~S~%"
     4813                                    (compiland-closure-register parent))
     4814                           (emit 'checkcast +lisp-ctf-class+)
     4815                           (emit 'aload (compiland-closure-register parent))
     4816                           (emit-invokestatic +lisp-class+ "makeCompiledClosure"
     4817                                              (list +lisp-object+ +lisp-object-array+)
     4818                                              +lisp-object+)))
    48134819
    48144820                       (emit 'var-set (local-function-variable local-function)))))
     
    48344840               (let ((parent (compiland-parent compiland)))
    48354841                 (when (compiland-closure-register parent)
    4836                    (emit-dup-ctf-and-set-context parent)))
     4842                   (dformat t "(compiland-closure-register parent) = ~S~%"
     4843                            (compiland-closure-register parent))
     4844                   (emit 'checkcast +lisp-ctf-class+)
     4845                   (emit 'aload (compiland-closure-register parent))
     4846                   (emit-invokestatic +lisp-class+ "makeCompiledClosure"
     4847                                      (list +lisp-object+ +lisp-object-array+)
     4848                                      +lisp-object+)))
    48374849
    48384850
     
    48514863                     (let ((parent (compiland-parent compiland)))
    48524864                       (when (compiland-closure-register parent)
    4853                          (emit-dup-ctf-and-set-context parent)))
     4865                         (dformat t "(compiland-closure-register parent) = ~S~%"
     4866                                  (compiland-closure-register parent))
     4867                         (emit 'checkcast +lisp-ctf-class+)
     4868                         (emit 'aload (compiland-closure-register parent))
     4869                         (emit-invokestatic +lisp-class+ "makeCompiledClosure"
     4870                                            (list +lisp-object+ +lisp-object-array+)
     4871                                            +lisp-object+)))
    48544872
    48554873                     (emit 'var-set (local-function-variable local-function))))
     
    49294947    (cond ((null *closure-variables*)) ; Nothing to do.
    49304948          ((compiland-closure-register *current-compiland*)
    4931            (emit-dup-ctf-and-set-context *current-compiland*)
    4932            ; Stack: cloned template function
    4933            )
     4949           (emit 'aload (compiland-closure-register *current-compiland*))
     4950           (emit-invokestatic +lisp-class+ "makeCompiledClosure"
     4951                              (list +lisp-object+ +lisp-object-array+)
     4952                              +lisp-object+)
     4953           (emit 'checkcast +lisp-compiled-closure-class+)) ; Stack: compiled-closure
    49344954          (t
    49354955           (aver nil))) ;; Shouldn't happen.
     
    49584978
    49594979                           (when (compiland-closure-register *current-compiland*)
    4960                              (emit-dup-ctf-and-set-context *current-compiland*)))))
     4980                             (emit 'checkcast +lisp-ctf-class+)
     4981                             (emit 'aload (compiland-closure-register *current-compiland*))
     4982                             (emit-invokestatic +lisp-class+ "makeCompiledClosure"
     4983                                                (list +lisp-object+ +lisp-object-array+)
     4984                                                +lisp-object+)))))
    49614985                  (emit-move-from-stack target))
    49624986                 ((inline-ok name)
Note: See TracChangeset for help on using the changeset viewer.