0.8.21.2:
[sbcl.git] / src / assembly / assemfile.lisp
index 7de12e5..ac8ab34 100644 (file)
@@ -13,7 +13,7 @@
 (in-package "SB!C")
 \f
 ;;; If non-NIL, emit assembly code. If NIL, emit VOP templates.
 (in-package "SB!C")
 \f
 ;;; If non-NIL, emit assembly code. If NIL, emit VOP templates.
-(defvar *do-assembly* nil)
+(defvar *emit-assembly-code-not-vops-p* nil)
 
 ;;; a list of (NAME . LABEL) for every entry point
 (defvar *entry-points* nil)
 
 ;;; a list of (NAME . LABEL) for every entry point
 (defvar *entry-points* nil)
@@ -31,7 +31,7 @@
                      (output-file (make-pathname :defaults name
                                                  :type "assem")))
   ;; FIXME: Consider nuking the filename defaulting logic here.
                      (output-file (make-pathname :defaults name
                                                  :type "assem")))
   ;; FIXME: Consider nuking the filename defaulting logic here.
-  (let* ((*do-assembly* t)
+  (let* ((*emit-assembly-code-not-vops-p* t)
         (name (pathname name))
         ;; the fasl file currently being output to
         (lap-fasl-output (open-fasl-output (pathname output-file) name))
         (name (pathname name))
         ;; the fasl file currently being output to
         (lap-fasl-output (open-fasl-output (pathname output-file) name))
@@ -40,7 +40,7 @@
         (*code-segment* nil)
         (*elsewhere* nil)
         (*assembly-optimize* nil)
         (*code-segment* nil)
         (*elsewhere* nil)
         (*assembly-optimize* nil)
-        (*fixups* nil))
+        (*fixup-notes* nil))
     (unwind-protect
        (let ((*features* (cons :sb-assembling *features*)))
          (init-assembler)
     (unwind-protect
        (let ((*features* (cons :sb-assembling *features*)))
          (init-assembler)
@@ -53,7 +53,7 @@
          (let ((length (sb!assem:finalize-segment *code-segment*)))
            (dump-assembler-routines *code-segment*
                                     length
          (let ((length (sb!assem:finalize-segment *code-segment*)))
            (dump-assembler-routines *code-segment*
                                     length
-                                    *fixups*
+                                    *fixup-notes*
                                     *entry-points*
                                     lap-fasl-output))
          (setq won t))
                                     *entry-points*
                                     lap-fasl-output))
          (setq won t))
       (if (and (consp code) (consp (car code)) (eq (caar code) 'declare))
          (decls (pop code))
          (return)))
       (if (and (consp code) (consp (car code)) (eq (caar code) 'declare))
          (decls (pop code))
          (return)))
-    `(let (,@(mapcar
-             #'(lambda (reg)
-                 `(,(reg-spec-name reg)
-                   (make-random-tn
-                    :kind :normal
-                    :sc (sc-or-lose ',(reg-spec-sc reg))
-                    :offset ,(reg-spec-offset reg))))
-             regs))
+    `(let ,(mapcar (lambda (reg)
+                    `(,(reg-spec-name reg)
+                      (make-random-tn
+                       :kind :normal
+                       :sc (sc-or-lose ',(reg-spec-sc reg))
+                       :offset ,(reg-spec-offset reg))))
+                  regs)
        ,@(decls)
        (sb!assem:assemble (*code-segment* ',name)
         ,name
        ,@(decls)
        (sb!assem:assemble (*code-segment* ',name)
         ,name
        `(:target ,(reg-spec-temp reg)))))
 
 (defun emit-vop (name options vars)
        `(:target ,(reg-spec-temp reg)))))
 
 (defun emit-vop (name options vars)
-  (let* ((args (remove :arg vars :key #'reg-spec-kind :test-not #'eq))
-        (temps (remove :temp vars :key #'reg-spec-kind :test-not #'eq))
-        (results (remove :res vars :key #'reg-spec-kind :test-not #'eq))
+  (let* ((args (remove :arg vars :key #'reg-spec-kind :test #'neq))
+        (temps (remove :temp vars :key #'reg-spec-kind :test #'neq))
+        (results (remove :res vars :key #'reg-spec-kind :test #'neq))
         (return-style (or (cadr (assoc :return-style options)) :raw))
         (cost (or (cadr (assoc :cost options)) 247))
         (vop (make-symbol "VOP")))
         (return-style (or (cadr (assoc :return-style options)) :raw))
         (cost (or (cadr (assoc :cost options)) 247))
         (vop (make-symbol "VOP")))
       `(define-vop ,(if (atom name) (list name) name)
         (:args ,@(mapcar #'arg-or-res-spec args))
         ,@(let ((index -1))
       `(define-vop ,(if (atom name) (list name) name)
         (:args ,@(mapcar #'arg-or-res-spec args))
         ,@(let ((index -1))
-            (mapcar #'(lambda (arg)
-                        `(:temporary (:sc ,(reg-spec-sc arg)
-                                          :offset ,(reg-spec-offset arg)
-                                          :from (:argument ,(incf index))
-                                          :to (:eval 2))
-                                     ,(reg-spec-temp arg)))
+            (mapcar (lambda (arg)
+                      `(:temporary (:sc ,(reg-spec-sc arg)
+                                    :offset ,(reg-spec-offset arg)
+                                    :from (:argument ,(incf index))
+                                    :to (:eval 2))
+                                   ,(reg-spec-temp arg)))
                     args))
                     args))
-        ,@(mapcar #'(lambda (temp)
-                      `(:temporary (:sc ,(reg-spec-sc temp)
-                                        :offset ,(reg-spec-offset temp)
-                                        :from (:eval 1)
-                                        :to (:eval 3))
-                                   ,(reg-spec-name temp)))
+        ,@(mapcar (lambda (temp)
+                    `(:temporary (:sc ,(reg-spec-sc temp)
+                                  :offset ,(reg-spec-offset temp)
+                                  :from (:eval 1)
+                                  :to (:eval 3))
+                                 ,(reg-spec-name temp)))
                   temps)
         ,@call-temps
         (:vop-var ,vop)
         ,@(let ((index -1))
                   temps)
         ,@call-temps
         (:vop-var ,vop)
         ,@(let ((index -1))
-            (mapcar #'(lambda (res)
-                        `(:temporary (:sc ,(reg-spec-sc res)
-                                          :offset ,(reg-spec-offset res)
-                                          :from (:eval 2)
-                                          :to (:result ,(incf index))
-                                          :target ,(reg-spec-name res))
-                                     ,(reg-spec-temp res)))
+            (mapcar (lambda (res)
+                      `(:temporary (:sc ,(reg-spec-sc res)
+                                    :offset ,(reg-spec-offset res)
+                                    :from (:eval 2)
+                                    :to (:result ,(incf index))
+                                    :target ,(reg-spec-name res))
+                                   ,(reg-spec-temp res)))
                     results))
         (:results ,@(mapcar #'arg-or-res-spec results))
         (:ignore ,@(mapcar #'reg-spec-name temps)
                  ,@(apply #'append
                           (mapcar #'cdr
                                   (remove :ignore call-temps
                     results))
         (:results ,@(mapcar #'arg-or-res-spec results))
         (:ignore ,@(mapcar #'reg-spec-name temps)
                  ,@(apply #'append
                           (mapcar #'cdr
                                   (remove :ignore call-temps
-                                          :test-not #'eq :key #'car))))
-        ,@(remove-if #'(lambda (x)
-                         (member x '(:return-style :cost)))
+                                          :test #'neq :key #'car))))
+        ,@(remove-if (lambda (x)
+                       (member x '(:return-style :cost)))
                      options
                      :key #'car)
         (:generator ,cost
                      options
                      :key #'car)
         (:generator ,cost
-          ,@(mapcar #'(lambda (arg)
-                        #!+(or hppa alpha) `(move ,(reg-spec-name arg)
-                                                  ,(reg-spec-temp arg))
-                        #!-(or hppa alpha) `(move ,(reg-spec-temp arg)
-                                                  ,(reg-spec-name arg)))
+          ,@(mapcar (lambda (arg)
+                      #!+(or hppa alpha) `(move ,(reg-spec-name arg)
+                                                ,(reg-spec-temp arg))
+                      #!-(or hppa alpha) `(move ,(reg-spec-temp arg)
+                                                ,(reg-spec-name arg)))
                     args)
           ,@call-sequence
                     args)
           ,@call-sequence
-          ,@(mapcar #'(lambda (res)
-                        #!+(or hppa alpha) `(move ,(reg-spec-temp res)
-                                                  ,(reg-spec-name res))
-                        #!-(or hppa alpha) `(move ,(reg-spec-name res)
-                                                  ,(reg-spec-temp res)))
+          ,@(mapcar (lambda (res)
+                      #!+(or hppa alpha) `(move ,(reg-spec-temp res)
+                                                ,(reg-spec-name res))
+                      #!-(or hppa alpha) `(move ,(reg-spec-name res)
+                                                ,(reg-spec-temp res)))
                     results))))))
 
 (def!macro define-assembly-routine (name&options vars &body code)
                     results))))))
 
 (def!macro define-assembly-routine (name&options vars &body code)
          (values name&options nil)
        (values (car name&options)
                (cdr name&options)))
          (values name&options nil)
        (values (car name&options)
                (cdr name&options)))
-    (let ((regs (mapcar #'(lambda (var) (apply #'parse-reg-spec var)) vars)))
-      (if *do-assembly*
+    (let ((regs (mapcar (lambda (var) (apply #'parse-reg-spec var)) vars)))
+      (if *emit-assembly-code-not-vops-p*
          (emit-assemble name options regs code)
          (emit-vop name options regs)))))
          (emit-assemble name options regs code)
          (emit-vop name options regs)))))