0.6.10:
[sbcl.git] / src / code / byte-interp.lisp
index c6173c5..36177ae 100644 (file)
@@ -2,9 +2,6 @@
 
 (in-package "SB!C")
 
-(file-comment
-  "$Header$")
-
 ;;;; This software is part of the SBCL system. See the README file for
 ;;;; more information.
 ;;;;
 ;;; FIXME: This doesn't seem to be needed in the target Lisp, only
 ;;; at build-the-system time.
 ;;;
-;;; KLUDGE: This expands into code a la
+;;; KLUDGE: This expands into code like
 ;;; (IF (ZEROP (LOGAND BYTE 16))
 ;;;     (IF (ZEROP (LOGAND BYTE 8))
 ;;;     (IF (ZEROP (LOGAND BYTE 4))
                            (inline-function-info-type info)))
                     (arg-types (second spec))
                     (result-type (third spec))
-                    (args (mapcar #'(lambda (x)
-                                      (declare (ignore x))
-                                      (gensym))
-                                  arg-types))
+                    (args (make-gensym-list (length arg-types)))
                     (func
                      `(the ,result-type
                            (,(inline-function-info-interpreter-function info)
                                      arg-types args))
                   ,(if (and (consp result-type)
                             (eq (car result-type) 'values))
-                       (let ((results
-                              (mapcar #'(lambda (x)
-                                          (declare (ignore x))
-                                          (gensym))
-                                      (cdr result-type))))
+                       (let ((results (make-gensym-list
+                                       (length (cdr result-type)))))
                          `(multiple-value-bind ,results ,func
                             ,@(mapcar #'(lambda (res)
                                           `(push-eval-stack ,res))
 ;;; Call a function with some arguments popped off of the interpreter
 ;;; stack, and restore the SP to the specifier value.
 (defun byte-apply (function num-args restore-sp)
-  (declare (function function) (type index num-args))
+  (declare (type function function) (type index num-args))
   (let ((start (- (current-stack-pointer) num-args)))
     (declare (type stack-pointer start))
     (macrolet ((frob ()