X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86%2Fstatic-fn.lisp;h=da2966daf318014fc0214f1ffb1b1224f4056908;hb=f17811c866c0412da17d3ee94f11cf38783301f7;hp=58742242c99123f07509cbb5cc8cada9e104760a;hpb=adf0d51d2bde8b723276bacf94641df9aa5ae561;p=sbcl.git diff --git a/src/compiler/x86/static-fn.lisp b/src/compiler/x86/static-fn.lisp index 5874224..da2966d 100644 --- a/src/compiler/x86/static-fn.lisp +++ b/src/compiler/x86/static-fn.lisp @@ -11,9 +11,6 @@ (in-package "SB!VM") -(file-comment - "$Header$") - (define-vop (static-function-template) (:save-p t) (:policy :safe) @@ -40,11 +37,10 @@ (moves))) (defun static-function-template-vop (num-args num-results) - (assert (and (<= num-args register-arg-count) + (unless (and (<= num-args register-arg-count) (<= num-results register-arg-count)) - (num-args num-results) - "Either too many args (~D) or too many results (~D). Max = ~D" - num-args num-results register-arg-count) + (error "either too many args (~D) or too many results (~D); max = ~D" + num-args num-results register-arg-count)) (let ((num-temps (max num-args num-results))) (collect ((temp-names) (temps) (arg-names) (args) (result-names) (results)) (dotimes (i num-results) @@ -55,7 +51,7 @@ (let ((temp-name (intern (format nil "TEMP-~D" i)))) (temp-names temp-name) (temps `(:temporary (:sc descriptor-reg - :offset ,(nth i register-arg-offsets) + :offset ,(nth i *register-arg-offsets*) :from ,(if (< i num-args) `(:argument ,i) '(:eval 1)) @@ -128,7 +124,7 @@ ,num-results))) ,@(moves (result-names) (temp-names))))))) -) ; eval-when (compile load eval) +) ; EVAL-WHEN (macrolet ((frob (num-args num-res) (static-function-template-vop (eval num-args) (eval num-res))))