Changeset 12175


Ignore:
Timestamp:
10/04/09 20:30:57 (12 years ago)
Author:
ehuelsmann
Message:

Make non-local GO processing a tad more efficient,
resulting in smaller byte code.

File:
1 edited

Legend:

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

    r12170 r12175  
    45264526        (dolist (tag (remove-if-not #'tag-used-non-locally
    45274527                                    (tagbody-tags block)))
    4528           (let ((NEXT (gensym)))
    4529             (aload tag-register)
    4530             (emit 'getstatic *this-class*
    4531                   (if *file-compilation*
    4532                       (declare-object-as-string (tag-label tag))
    4533                       (declare-object (tag-label tag)))
    4534                   +lisp-object+)
    4535             (emit 'if_acmpne NEXT) ;; Jump if not EQ.
    4536             (emit 'goto (tag-label tag))
    4537             (label NEXT)))
     4528          (aload tag-register)
     4529          (emit 'getstatic *this-class*
     4530                (if *file-compilation*
     4531                    (declare-object-as-string (tag-label tag))
     4532                    (declare-object (tag-label tag)))
     4533                +lisp-object+)
     4534          ;; Jump if EQ.
     4535          (emit 'if_acmpeq (tag-label tag)))
     4536        (label RETHROW)
    45384537        ;; Not found. Re-throw Go.
    4539         (label RETHROW)
    45404538        (aload go-register)
    45414539        (emit 'aconst_null) ;; load null value
Note: See TracChangeset for help on using the changeset viewer.