Changeset 6343 for branches/x8664-call


Ignore:
Timestamp:
Apr 23, 2007, 9:55:32 AM (13 years ago)
Author:
gb
Message:

Use init-nclosure to make closures.
LABELS needs to account for extra instruction words when closures
reference each other.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/x8664-call/ccl/compiler/X86/x862.lisp

    r6337 r6343  
    26042604             (dest ($ x8664::arg_z))
    26052605             (vsize (+ (length inherited-vars)
    2606                        4                ; %closure-code%, afunc
     2606                       5                ; %closure-code%, afunc
    26072607                       1)))             ; lfun-bits
    26082608        (declare (list inherited-vars))
    2609         (let* ((cell 3))
     2609        (let* ((cell 4))
    26102610          (declare (fixnum cell))
    26112611          (if downward-p
     
    26222622              (x862-lri seg x8664::imm1 (- (ash (logandc2 (+ vsize 2) 1) (arch::target-word-shift arch)) (target-arch-case  (:x8664 x8664::fulltag-misc))))
    26232623              (! %allocate-uvector dest)))
    2624           (! init-closure x8664::arg_z)
     2624          (! init-nclosure x8664::arg_z)
    26252625          (x862-store-immediate seg (x862-afunc-lfun-ref afunc) x8664::ra0)
    26262626          (with-node-temps (x8664::arg_z) (t0 t1 t2 t3)
     
    75647564        (push v real-vars)
    75657565        (push func real-funcs)
    7566         (let* ((i 4)                    ; skip 3 words of code, inner function
     7566        (let* ((i 5)                    ; skip 4 words of code, inner function
    75677567               (our-var nil)
    75687568               (item nil))
Note: See TracChangeset for help on using the changeset viewer.