Update of /project/movitz/cvsroot/movitz/losp/muerte In directory common-lisp.net:/tmp/cvs-serv11225
Modified Files: primitive-functions.lisp Log Message: Added -non-header variation of the malloc primitive-functions.
Date: Thu Nov 25 17:45:48 2004 Author: ffjeld
Index: movitz/losp/muerte/primitive-functions.lisp diff -u movitz/losp/muerte/primitive-functions.lisp:1.55 movitz/losp/muerte/primitive-functions.lisp:1.56 --- movitz/losp/muerte/primitive-functions.lisp:1.55 Tue Nov 23 17:08:58 2004 +++ movitz/losp/muerte/primitive-functions.lisp Thu Nov 25 17:45:47 2004 @@ -10,7 +10,7 @@ ;;;; Author: Frode Vatvedt Fjeld frodef@acm.org ;;;; Created at: Tue Oct 2 21:02:18 2001 ;;;; -;;;; $Id: primitive-functions.lisp,v 1.55 2004/11/23 16:08:58 ffjeld Exp $ +;;;; $Id: primitive-functions.lisp,v 1.56 2004/11/25 16:45:47 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -314,6 +314,18 @@ (with-inline-assembly (:returns :multiple-values) (:locally (:jmp (:edi (:edi-offset cons-commit))))))
+(define-primitive-function get-cons-pointer-non-header () + "Return in EAX the next object location with space for EAX non-pointer words, with tag 6. +Preserve ECX." + (with-inline-assembly (:returns :multiple-values) + (:locally (:jmp (:edi (:edi-offset get-cons-pointer)))))) + +(define-primitive-function cons-commit-non-header () + "Return in EAX the next object location with space for EAX non-pointer words, with tag 6. +Preserve ECX." + (with-inline-assembly (:returns :multiple-values) + (:locally (:jmp (:edi (:edi-offset cons-commit)))))) + (defun malloc-initialize (buffer-start buffer-size) "BUFFER-START is the location from which to allocate. BUFFER-SIZE is the number of words in the buffer." @@ -377,7 +389,7 @@ ;; Be defensive: Check that EAX is LISTP. (:leal (:eax -1) :ecx) (:testb 3 :cl) - (:jnz '(:sub-program () (:int 50))) + (:jnz '(:sub-program () (:int 63))) (:cmpl :ebp :eax) ; is cons above stack-frame? (:jge 'return-ok) (:cmpl :esp :eax) ; is cons below stack-frame?