[movitz-cvs] CVS update: movitz/storage-types.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Wed Jun 16 07:42:50 UTC 2004
Update of /project/movitz/cvsroot/movitz
In directory common-lisp.net:/tmp/cvs-serv6037
Modified Files:
storage-types.lisp
Log Message:
Changed the layout of vectors somewhat (this is a minor change, not
the "proper" new layout that should come soon). This requires a
re-compile of any images. And fixed some (somewhat related) bugs in
the map-heap-words function.
Date: Wed Jun 16 00:42:50 2004
Author: ffjeld
Index: movitz/storage-types.lisp
diff -u movitz/storage-types.lisp:1.20 movitz/storage-types.lisp:1.21
--- movitz/storage-types.lisp:1.20 Fri Jun 11 16:26:09 2004
+++ movitz/storage-types.lisp Wed Jun 16 00:42:50 2004
@@ -9,7 +9,7 @@
;;;; Created at: Sun Oct 22 00:22:43 2000
;;;; Distribution: See the accompanying file COPYING.
;;;;
-;;;; $Id: storage-types.lisp,v 1.20 2004/06/11 23:26:09 ffjeld Exp $
+;;;; $Id: storage-types.lisp,v 1.21 2004/06/16 07:42:50 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -345,7 +345,7 @@
(num-elements
:binary-type lu16
:initarg :num-elements
- :reader movitz-vector-num-elements)
+ :reader movitz-vector-num-elements)
(flags
:accessor movitz-vector-flags
:initarg :flags
@@ -362,7 +362,7 @@
(fill-pointer
:binary-type lu16
:initarg :fill-pointer
- :accessor movitz-vector-fill-pointer)
+ :accessor movitz-vector-fill-pointer)
(data
:binary-lisp-type :label) ; data follows physically here
(symbolic-data
@@ -375,31 +375,51 @@
(byte 8 8)
(enum-value 'other-type-byte :vector)))
-;;;(define-binary-class movitz-new-vector (movitz-heap-object-other)
-;;; ((length
-;;; :binary-type u32
-;;; :initarg :length
-;;; :accessor movitz-simple-vector-length)
-;;; (type
-;;; :binary-type other-type-byte
-;;; :reader movitz-vector-type)
-;;; #+ignore
-;;; (element-type
-;;; :binary-type (define-enum movitz-vector-element-type (u8)
-;;; :any-t 0
-;;; :character 1
-;;; :u8 2
-;;; :u16 3
-;;; :u32 4
-;;; :bit 5)
-;;; :initarg :element-type
-;;; :reader movitz-vector-element-type)
-;;; (data
-;;; :binary-lisp-type :label)
-;;; (symbolic-data
-;;; :initarg :symbolic-data
-;;; :accessor movitz-vector-symbolic-data))
-;;; (:slot-align type #.+other-type-offset+))
+#+ignore
+(define-binary-class movitz-new-vector (movitz-heap-object-other)
+ ((type
+ :binary-type other-type-byte
+ :reader movitz-vector-type
+ :initform :new-vector)
+ (element-type
+ :binary-type (define-enum movitz-vector-element-type (u8)
+ :any-t 0
+ :character 1
+ :u8 2
+ :u16 3
+ :u32 4
+ :bit 5)
+ :initarg :element-type
+ :reader movitz-vector-element-type)
+ (dummy
+ :binary-type :lu16)
+ (fill-pointer
+ :binary-type lu16
+ :initarg :fill-pointer
+ :accessor movitz-vector-fill-pointer)
+ (flags
+ :accessor movitz-vector-flags
+ :initarg :flags
+ :initform nil
+ :binary-type (define-bitfield movitz-vector-flags (u8)
+ (((:bits) :fill-pointer-p 2
+ :code-vector-p 3
+ :std-instance-slots-p 4))))
+ (alignment-power
+ :binary-lisp-type u8 ; align to 2^(high-nibble+3) + low-nibble
+ :initform 0
+ :initarg :alignment-power
+ :reader movitz-vector-alignment-power)
+ (num-elements
+ :binary-type lu16
+ :initarg :num-elements
+ :reader movitz-vector-num-elements)
+ (data
+ :binary-lisp-type :label) ; data follows physically here
+ (symbolic-data
+ :initarg :symbolic-data
+ :accessor movitz-vector-symbolic-data))
+ (:slot-align type #.+other-type-offset+))
(defun movitz-type-word-size (type)
(truncate (sizeof (intern (symbol-name type) :movitz)) 4))
More information about the Movitz-cvs
mailing list