[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