X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fmeta-vmdef.lisp;h=e29e5ba8f514f9d1b15bf1afd568ca9ca0aa86f2;hb=622b19d2c2e3c387ce70536678a5db17a01ab4cc;hp=3f6d93c7aefd67010681ce34f4b56a18e0c98c15;hpb=4363cb61eb8e2dc833070da398864a039210e1c8;p=sbcl.git diff --git a/src/compiler/meta-vmdef.lisp b/src/compiler/meta-vmdef.lisp index 3f6d93c..e29e5ba 100644 --- a/src/compiler/meta-vmdef.lisp +++ b/src/compiler/meta-vmdef.lisp @@ -638,7 +638,7 @@ (let ((target (find-operand (operand-parse-target op) parse '(:temporary :result)))) ;; KLUDGE: These formulas must be consistent with those in - ;; %EMIT-GENERIC-VOP, and this is currently maintained by + ;; EMIT-VOP, and this is currently maintained by ;; hand. -- WHN 2002-01-30, paraphrasing APD (targets (+ (* index max-vop-tn-refs) (ecase (operand-parse-kind target) @@ -709,8 +709,7 @@ :element-type '(specializable ,te-type))))))))) (defun make-emit-function-and-friends (parse) - `(:emit-function #'emit-generic-vop - :temps ,(compute-temporaries-description parse) + `(:temps ,(compute-temporaries-description parse) ,@(compute-ref-ordering parse))) ;;;; generator functions @@ -1415,7 +1414,7 @@ (rest type)))) (:constant ``(:constant ,#'(lambda (x) - (typep x ',(second type))) + (sb!xc:typep x ',(second type))) ,',(second type))))))) (defun specify-operand-types (types ops more-ops) @@ -1537,7 +1536,7 @@ ;;; :LOAD-IF EXPRESSION ;;; Controls whether automatic operand loading is done. ;;; EXPRESSION is evaluated with the fixed operand TNs bound. -;;; If EXPRESSION is true,then loading is done and the variable +;;; If EXPRESSION is true, then loading is done and the variable ;;; is bound to the load TN in the generator body. Otherwise, ;;; loading is not done, and the variable is bound to the actual ;;; operand. @@ -1742,15 +1741,8 @@ ;;; Call the emit function for TEMPLATE, linking the result in at the ;;; end of BLOCK. (defmacro emit-template (node block template args results &optional info) - (with-unique-names (first last) - (once-only ((n-node node) - (n-block block) - (n-template template)) - `(multiple-value-bind (,first ,last) - (funcall (template-emit-function ,n-template) - ,n-node ,n-block ,n-template ,args ,results - ,@(when info `(,info))) - (insert-vop-sequence ,first ,last ,n-block nil))))) + `(emit-and-insert-vop ,node ,block ,template ,args ,results nil + ,@(when info `(,info)))) ;;; VOP Name Node Block Arg* Info* Result* ;;;