[movitz-cvs] CVS update: movitz/image.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Wed Jun 2 10:39:48 UTC 2004
Update of /project/movitz/cvsroot/movitz
In directory common-lisp.net:/tmp/cvs-serv6221
Modified Files:
image.lisp
Log Message:
Added another thread-atomically mechanism, allowing a jumper to be the
restart-point.
Date: Wed Jun 2 03:39:48 2004
Author: ffjeld
Index: movitz/image.lisp
diff -u movitz/image.lisp:1.33 movitz/image.lisp:1.34
--- movitz/image.lisp:1.33 Tue Jun 1 08:16:49 2004
+++ movitz/image.lisp Wed Jun 2 03:39:48 2004
@@ -9,7 +9,7 @@
;;;; Created at: Sun Oct 22 00:22:43 2000
;;;; Distribution: See the accompanying file COPYING.
;;;;
-;;;; $Id: image.lisp,v 1.33 2004/06/01 15:16:49 ffjeld Exp $
+;;;; $Id: image.lisp,v 1.34 2004/06/02 10:39:48 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -452,9 +452,10 @@
:initform (make-segment-descriptor))
(atomically-status
:binary-type (define-bitfield atomically-status (lu32)
- (((:enum :byte (2 3))
+ (((:enum :byte (3 2))
:inactive 0
- :restart-primitive-function 1) ; data = slot-offset of pf.
+ :restart-primitive-function 1 ; data = slot-offset of pf.
+ :restart-jumper 2) ; data = ESI-relative jumper number.
((:bits) :reset-status-p 8
:eax 9
:ebx 10
@@ -485,6 +486,16 @@
:movitz)))
4)))
registers)))
+
+(defun atomically-status-jumper-fn (reset-status-p &rest registers)
+ (lambda (jumper)
+ (assert (= 0 (mod jumper 4)))
+ (bt:enum-value 'movitz::atomically-status
+ (list* :restart-jumper
+ (cons :reset-status-p
+ (if reset-status-p 1 0))
+ (cons :data (truncate jumper 4))
+ registers))))
(defmethod movitz-object-offset ((obj movitz-constant-block)) 0)
More information about the Movitz-cvs
mailing list