31
33
(let ((function (gensym))
34
(let* ((,function ,(first args))
35
(,nargs (+ ,@(loop for i in (rest args)
36
collect `(stack-push-values ,i)))))
37
(declare (fixnum ,nargs))
38
(apply-from-stack ,nargs ,function))))))))
36
(let* ((,function ,(first args)))
37
,@(loop for i in (rest args)
38
collect `(stack-push-values ,frame ,i))
39
(si::apply-from-stack-frame ,frame ,function))))))))
40
41
(defun c1multiple-value-prog1 (args)
41
42
(check-args-number 'MULTIPLE-VALUE-PROG1 args 1)
42
(c1expr (let ((l (gensym)))
44
(let ((,l (stack-push-values ,(first args))))
43
(c1expr (let ((frame (gensym)))
45
(stack-push-values ,frame ,(first args))
47
(stack-pop ,frame)))))
50
50
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;