diff options
-rw-r--r-- | share/txr/stdlib/compiler.tl | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl index f14ec329..fe9bfce8 100644 --- a/share/txr/stdlib/compiler.tl +++ b/share/txr/stdlib/compiler.tl @@ -200,6 +200,7 @@ (tree-case me.(comp-tree-case oreg env form)) (sys:lisp1-value me.(comp-lisp1-value oreg env form)) (dwim me.(comp-dwim oreg env form)) + (prof me.(comp-prof oreg env form)) (defvarl me.(compile oreg env (expand-defvarl form))) (defun me.(compile oreg env (expand-defun form))) (defmacro me.(compile oreg env (expand-defmacro form))) @@ -951,6 +952,15 @@ me.(compile oreg env ^(call ,*(mapcar (op list 'sys:lisp1-value) l1-exprs)))))) +(defmeth compiler comp-prof (me oreg env form) + (mac-param-bind form (op . forms) form + (let ((bfrag me.(comp-progn oreg env forms))) + (new (frag bfrag.oreg + ^((prof ,bfrag.oreg) + ,*bfrag.code + (end ,bfrag.oreg)) + bfrag.fvars bfrag.ffuns))))) + (defun maybe-mov (to-reg from-reg) (if (nequal to-reg from-reg) ^((mov ,to-reg ,from-reg)))) |