X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86%2Fstatic-fn.lisp;h=da2966daf318014fc0214f1ffb1b1224f4056908;hb=986ce2596822cc0871b609346aaf592348aca596;hp=ac76ea7299b6f413d342e1d9a4da26321b5f124c;hpb=cea4896b2482b7b2b429c1631d774b4cfbc0efba;p=sbcl.git diff --git a/src/compiler/x86/static-fn.lisp b/src/compiler/x86/static-fn.lisp index ac76ea7..da2966d 100644 --- a/src/compiler/x86/static-fn.lisp +++ b/src/compiler/x86/static-fn.lisp @@ -37,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) @@ -52,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)) @@ -125,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))))