[movitz-cvs] CVS update: movitz/losp/muerte/primitive-functions.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Sat Aug 7 11:12:09 UTC 2004
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv21194
Modified Files:
primitive-functions.lisp
Log Message:
Started work on having the pf's comply with the stack and register
disciplines.
Date: Sat Aug 7 04:12:09 2004
Author: ffjeld
Index: movitz/losp/muerte/primitive-functions.lisp
diff -u movitz/losp/muerte/primitive-functions.lisp:1.38 movitz/losp/muerte/primitive-functions.lisp:1.39
--- movitz/losp/muerte/primitive-functions.lisp:1.38 Fri Aug 6 13:54:17 2004
+++ movitz/losp/muerte/primitive-functions.lisp Sat Aug 7 04:12:09 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.38 2004/08/06 20:54:17 ffjeld Exp $
+;;;; $Id: primitive-functions.lisp,v 1.39 2004/08/07 11:12:09 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -308,7 +308,7 @@
(:int 110)
(:halt)
(:jmp 'not-initialized)))
- (:addl 7 :ebx)
+ (:addl 4 :ebx)
(:andb #xf8 :bl)
(:movl (:eax 4) :ecx) ; cons pointer to ECX
(:leal (:ebx :ecx) :edx) ; new roof to EDX
@@ -353,7 +353,7 @@
(check-type words (integer 2 *))
(compiler-macro-call malloc-non-pointer-words words))
-(define-primitive-function muerte::get-cons-pointer ()
+(define-primitive-function get-cons-pointer ()
"Return in EAX the next object location with space for EAX words, with tag 6.
Preserve ECX."
(macrolet
@@ -361,9 +361,14 @@
;; Here we just call malloc, and don't care if the allocation
;; is never comitted.
`(with-inline-assembly (:returns :multiple-values)
+ ;; We need a stack-frame sice we're using the stack
+ (:pushl :ebp)
+ (:movl :esp :ebp)
+ (:pushl 4)
(:locally (:movl :ecx (:edi (:edi-offset scratch0))))
(:call-local-pf malloc-pointer-words)
(:locally (:movl (:edi (:edi-offset scratch0)) :ecx))
+ (:leave)
(:ret))))
(do-it)))
More information about the Movitz-cvs
mailing list