0.7.13.pcl-class.1
[sbcl.git] / src / compiler / backend.lisp
index 04c4e35..cf140b1 100644 (file)
 (defvar *backend-t-primitive-type*)
 (declaim (type primitive-type *backend-t-primitive-type*))
 
-;;; a hashtable translating from VOP names to the corresponding VOP-Parse
+;;; a hashtable translating from VOP names to the corresponding VOP-PARSE
 ;;; structures. This information is only used at meta-compile time.
 (defvar *backend-parsed-vops* (make-hash-table :test 'eq))
 (declaim (type hash-table *backend-parsed-vops*))
                (eval-when (:compile-toplevel :load-toplevel :execute)
                  (defparameter *vm-support-routines* ',routines))
                (defstruct (vm-support-routines (:copier nil))
-                 ,@(mapcar #'(lambda (routine)
-                               `(,routine nil :type (or function null)))
+                 ,@(mapcar (lambda (routine)
+                             `(,routine nil :type (or function null)))
                            routines))
                ,@(mapcar
-                  #'(lambda (name)
-                      `(defun ,name (&rest args)
-                         (apply (or (,(symbolicate "VM-SUPPORT-ROUTINES-"
-                                                   name)
-                                     *backend-support-routines*)
-                                    (error "machine-specific support ~S ~
+                  (lambda (name)
+                    `(defun ,name (&rest args)
+                       (apply (or (,(symbolicate "VM-SUPPORT-ROUTINES-"
+                                                 name)
+                                   *backend-support-routines*)
+                                  (error "machine-specific support ~S ~
                                            routine undefined"
-                                           ',name))
-                                args)))
+                                         ',name))
+                              args)))
                   routines))))
 
   (def-vm-support-routines
     make-call-out-tns
 
     ;; from call.lisp
-    standard-argument-location
+    standard-arg-location
     make-return-pc-passing-location
     make-old-fp-passing-location
     make-old-fp-save-location
     make-return-pc-save-location
-    make-argument-count-location
+    make-arg-count-location
     make-nfp-tn
     make-stack-pointer-tn
     make-number-stack-pointer-tn
     ;; from nlx.lisp
     make-nlx-sp-tn
     make-dynamic-state-tns
-    make-nlx-entry-argument-start-location
+    make-nlx-entry-arg-start-location
 
     ;; from support.lisp
     generate-call-sequence
@@ -263,8 +263,10 @@ yet an ideal interface, but it does allow for compile-time
 conditionalization.
 |#
 
-;;; The default value of NIL means use only unguarded VOPs.
-(defvar *backend-subfeatures* nil)
+;;; The default value of NIL means use only unguarded VOPs. The
+;;; initial value is customizeable via
+;;; customize-backend-subfeatures.lisp
+(defvar *backend-subfeatures* '#.sb-cold:*shebang-backend-subfeatures*)
 
 ;;; possible *BACKEND-SUBFEATURES* values:
 ;;;