[movitz-cvs] CVS update: movitz/losp/los0-gc.lisp

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Wed Sep 22 17:58:57 UTC 2004


Update of /project/movitz/cvsroot/movitz/losp
In directory common-lisp.net:/tmp/cvs-serv5527

Modified Files:
	los0-gc.lisp 
Log Message:
Fix a number of stack discipline issues.

Date: Wed Sep 22 19:58:57 2004
Author: ffjeld

Index: movitz/losp/los0-gc.lisp
diff -u movitz/losp/los0-gc.lisp:1.38 movitz/losp/los0-gc.lisp:1.39
--- movitz/losp/los0-gc.lisp:1.38	Tue Sep 21 15:05:49 2004
+++ movitz/losp/los0-gc.lisp	Wed Sep 22 19:58:56 2004
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Sat Feb 21 17:48:32 2004
 ;;;;                
-;;;; $Id: los0-gc.lisp,v 1.38 2004/09/21 13:05:49 ffjeld Exp $
+;;;; $Id: los0-gc.lisp,v 1.39 2004/09/22 17:58:56 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -92,9 +92,10 @@
 	    (:movl :ebx (:edx :ecx 6))
 	    (:addl 8 :ecx)
 	    (:movl :ecx (:edx 2))	; Commit allocation
+	    (:leal (:edx :ecx -5) :edx)
 	    ;; Exit thread-atomical
 	    (:locally (:movl 0 (:edi (:edi-offset atomically-continuation))))
-	    (:leal (:edx :ecx -5) :eax)
+	    (:movl :edx :eax)
 	    (:ret))))
     (do-it)))
 
@@ -149,9 +150,9 @@
 		   :eax)
 	    (:ja '(:sub-program (probe-failed)
 		   (:int 113)
-		   (:jmp 'retry)))
-	    (:movl :edi (:edx :ebx 8 ,movitz:+other-type-offset+))
+		   (:int 63)))
 	    (:leal (:edx :ebx 8) :eax)
+	    (:movl :edi (:edx :ebx 8 ,movitz:+other-type-offset+))
 	    (:ret))))
     (do-it)))
 
@@ -164,7 +165,7 @@
 	   retry
 	    (:locally (:cmpl 0 (:edi (:edi-offset atomically-continuation)))) ; Atomically?
 	    (:je '(:sub-program ()
-		   (:int 50)))		; This must be called inside atomically.
+		   (:int 63)))		; This must be called inside atomically.
 	    (:addl ,movitz:+movitz-fixnum-factor+ :ecx)
 	    (:locally (:movl (:edi (:edi-offset nursery-space)) :edx))
 	    (:andl -8 :ecx)
@@ -180,7 +181,7 @@
     (do-it)))
     
 (define-primitive-function los0-box-u32-ecx ()
-  "Make u32 in ECX into a fixnum or bignum."
+  "Make u32 in ECX into a fixnum or bignum in EAX."
   (macrolet
       ((do-it ()
 	 `(with-inline-assembly (:returns :multiple-values)
@@ -204,9 +205,9 @@
 	    (:movl :ecx (:edx :eax 6))
 	    (:addl 8 :eax)
 	    (:movl :eax (:edx 2))	; Commit allocation
+	    (:leal (:edx :eax) :eax)
 	    ;; Exit thread-atomical
 	    (:locally (:movl 0 (:edi (:edi-offset atomically-continuation))))
-	    (:leal (:edx :eax) :eax)
 	    (:ret))))
     (do-it)))
 





More information about the Movitz-cvs mailing list