Changeset 5399


Ignore:
Timestamp:
Oct 22, 2006, 7:02:25 AM (18 years ago)
Author:
Gary Byers
Message:

MULTIPLE-VALUE-PROG1: treat the first form like a PROGN if there are no other
forms.

File:
1 edited

Legend:

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

    r5364 r5399  
    66956695  (if (or (not (ppc2-mv-p xfer)) (ppc2-single-valued-form-p (%car forms)))
    66966696    (ppc2-use-operator (%nx1-operator prog1) seg vreg xfer forms)
    6697     (progn
    6698       (let* ((*ppc2-vstack* *ppc2-vstack*)
    6699              (*ppc2-top-vstack-lcell* *ppc2-top-vstack-lcell*))
    6700         (ppc2-multiple-value-body seg (%car forms))
    6701         (ppc2-open-undo $undostkblk)
    6702         (! save-values))
    6703       (dolist (form (cdr forms))
    6704         (ppc2-form seg nil nil form))
    6705       (ppc2-set-nargs seg 0)
    6706       (! recover-values)
    6707       (ppc2-close-undo)
    6708       (let* ((*ppc2-returning-values* t))
    6709         (^)))))
     6697    (if (null (cdr forms))
     6698      (ppc2-form seg vreg xfer(car forms))
     6699      (progn
     6700        (let* ((*ppc2-vstack* *ppc2-vstack*)
     6701               (*ppc2-top-vstack-lcell* *ppc2-top-vstack-lcell*))
     6702          (ppc2-multiple-value-body seg (%car forms))
     6703          (ppc2-open-undo $undostkblk)
     6704          (! save-values))
     6705        (dolist (form (cdr forms))
     6706          (ppc2-form seg nil nil form))
     6707        (ppc2-set-nargs seg 0)
     6708        (! recover-values)
     6709        (ppc2-close-undo)
     6710        (let* ((*ppc2-returning-values* t))
     6711          (^))))))
    67106712
    67116713(defppc2 ppc2-not not (seg vreg xfer cc form)
Note: See TracChangeset for help on using the changeset viewer.