-;;; Written by William Lott.
-;;;
-(in-package "SB!VM")
+;;;; VOPs and macro magic for calling static functions
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; This software is derived from the CMU CL system, which was
+;;;; written at Carnegie Mellon University and released into the
+;;;; public domain. The software is in the public domain and is
+;;;; provided with absolutely no warranty. See the COPYING and CREDITS
+;;;; files for more information.
+(in-package "SB!VM")
(define-vop (static-fun-template)
(:save-p t)
(:temporary (:scs (descriptor-reg)) move-temp)
(:temporary (:sc descriptor-reg :offset lra-offset) lra)
(:temporary (:sc interior-reg :offset lip-offset) entry-point)
- (:temporary (:scs (descriptor-reg)) func)
(:temporary (:sc any-reg :offset nargs-offset) nargs)
(:temporary (:sc any-reg :offset ocfp-offset) old-fp)
(:temporary (:sc control-stack :offset nfp-save-offset) nfp-save))
,@(moves (result-names) (temp-names))))))))
-) ; eval-when (:compile-toplevel :load-toplevel :execute)
-
+) ; EVAL-WHEN
(macrolet ((frob (num-args num-res)
(static-fun-template-vop (eval num-args) (eval num-res))))
(frob 4 1)
#|(frob 5 1)|#)
-
(defmacro define-static-fun (name args &key (results '(x)) translate
policy cost arg-types result-types)
`(define-vop (,name