(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 ()