X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fbyte-interp.lisp;h=0aa921294e3936a27ae8e9ffa1bf7f7cd79dc726;hb=f392742d2781f42b3bb15b637e5008e10fbbe092;hp=c6173c5ea3440ac1047260643a7c11f3b788d831;hpb=a530bbe337109d898d5b4a001fc8f1afa3b5dc39;p=sbcl.git diff --git a/src/code/byte-interp.lisp b/src/code/byte-interp.lisp index c6173c5..0aa9212 100644 --- a/src/code/byte-interp.lisp +++ b/src/code/byte-interp.lisp @@ -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. ;;;; @@ -280,7 +277,7 @@ ;;; 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)) @@ -312,10 +309,7 @@ (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) @@ -326,11 +320,8 @@ 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))