Update of /project/movitz/cvsroot/movitz/losp/muerte In directory common-lisp.net:/tmp/cvs-serv24960
Modified Files: more-macros.lisp Log Message: Moved some macros to new files and changed the order files are loaded/compiled. The idea is to not compile function-calls before compiler-macros are defined, etc.
Date: Tue Jul 20 16:51:15 2004 Author: ffjeld
Index: movitz/losp/muerte/more-macros.lisp diff -u movitz/losp/muerte/more-macros.lisp:1.15 movitz/losp/muerte/more-macros.lisp:1.16 --- movitz/losp/muerte/more-macros.lisp:1.15 Tue Jul 20 01:54:34 2004 +++ movitz/losp/muerte/more-macros.lisp Tue Jul 20 16:51:15 2004 @@ -10,7 +10,7 @@ ;;;; Author: Frode Vatvedt Fjeld frodef@acm.org ;;;; Created at: Fri Jun 7 15:05:57 2002 ;;;; -;;;; $Id: more-macros.lisp,v 1.15 2004/07/20 08:54:34 ffjeld Exp $ +;;;; $Id: more-macros.lisp,v 1.16 2004/07/20 23:51:15 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -339,6 +339,27 @@ (movitz::lu32 `(with-inline-assembly (:returns :untagged-fixnum-ecx) (:locally (:movl (:edi (:edi-offset ,slot-name)) :ecx)))))))) + +(define-compiler-macro malloc-pointer-words (words) + `(with-inline-assembly (:returns :eax :type pointer) + (:compile-form (:result-mode :eax) ,words) + (:call-local-pf malloc-pointer-words))) + +(define-compiler-macro malloc-non-pointer-words (words) + `(with-inline-assembly (:returns :eax :type pointer) + (:compile-form (:result-mode :eax) ,words) + (:call-local-pf malloc-non-pointer-words))) + +(define-compiler-macro read-time-stamp-counter () + `(with-inline-assembly-case () + (do-case (:register :same) + (:std) + (:rdtsc) + (:movl :edi :edx) + (:leal ((:eax ,movitz:+movitz-fixnum-factor+)) (:result-register)) + (:cld)) + (do-case (t :multiple-values) + (:compile-form (:result-mode :multiple-values) (no-macro-call read-time-stamp-counter)))))
;;; Some macros that aren't implemented, and we want to give compiler errors.