X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fassembly%2Fassemfile.lisp;h=dd2cabfa084576df84cdfecdd9c4448f6e679384;hb=88fbde7b3c6e6e66bdde408348337e97068f2568;hp=7de12e5bdc0a391aa6425eab1984f747d3c3aff3;hpb=aa2dc9529460ea0d9c99998dc87283fc1a43e808;p=sbcl.git diff --git a/src/assembly/assemfile.lisp b/src/assembly/assemfile.lisp index 7de12e5..dd2cabf 100644 --- a/src/assembly/assemfile.lisp +++ b/src/assembly/assemfile.lisp @@ -13,7 +13,7 @@ (in-package "SB!C") ;;; 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) @@ -31,7 +31,7 @@ (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)) @@ -94,14 +94,13 @@ (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 @@ -135,30 +134,30 @@ `(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)) - ,@(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)) - (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) @@ -166,23 +165,23 @@ (mapcar #'cdr (remove :ignore call-temps :test-not #'eq :key #'car)))) - ,@(remove-if #'(lambda (x) - (member x '(:return-style :cost))) + ,@(remove-if (lambda (x) + (member x '(:return-style :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 - ,@(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) @@ -191,7 +190,7 @@ (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)))))