Changeset 7230


Ignore:
Timestamp:
Sep 16, 2007, 11:04:33 PM (12 years ago)
Author:
gb
Message:

PPC2-BIND-LAMBDA: rest arg is in scope before key arg(s), so assign it
an address before processing &key initforms.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/compiler/PPC/ppc2.lisp

    r6950 r7230  
    764764              (ppc2-bind-var seg var vloc lcell))
    765765            (setq vloc (+ vloc *ppc2-target-node-size*)))))))
    766   (when keys
    767     (apply #'ppc2-init-keys seg vloc lcells keys)
    768     (setq vloc (+ vloc (* 2 *ppc2-target-node-size* nkeys))
    769           lcells (nthcdr (+ nkeys nkeys) lcells)))
    770766  (when rest
    771767    (if lexpr
     
    781777              (ppc2-note-top-cell rest)
    782778              (ppc2-bind-var seg rest loc *ppc2-top-vstack-lcell*)))))
    783       (progn
     779      (let* ((rvloc (+ vloc (* 2 *ppc2-target-node-size* nkeys))))
    784780        (if (setq reg (ppc2-assign-register-var rest))
    785           (ppc2-init-regvar seg rest reg (ppc2-vloc-ea vloc))
    786           (ppc2-bind-var seg rest vloc (pop lcells)))
    787         (setq vloc (+ vloc *ppc2-target-node-size*)))))
     781          (ppc2-init-regvar seg rest reg (ppc2-vloc-ea rvloc))
     782          (ppc2-bind-var seg rest rvloc (pop lcells))))))
     783  (when keys
     784    (apply #'ppc2-init-keys seg vloc lcells keys)) 
    788785  (ppc2-seq-bind seg (%car auxen) (%cadr auxen)))
    789786
Note: See TracChangeset for help on using the changeset viewer.