[movitz-cvs] CVS update: movitz/losp/muerte/primitive-functions.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Thu Nov 25 16:45:55 UTC 2004
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 at 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?
More information about the Movitz-cvs
mailing list