From: Christophe R. <cr...@us...> - 2003-08-05 14:11:42
|
Update of /cvsroot/sbcl/sbcl/src/compiler/generic In directory sc8-pr-cvs1:/tmp/cvs-serv17007/src/compiler/generic Modified Files: early-objdef.lisp genesis.lisp vm-array.lisp vm-fndb.lisp vm-typetran.lisp Log Message: 0.8.2.15: Add all remaining required (*ptui*) specialized arrays: ... (UNSIGNED-BYTE {7,15,29,31}); While we're at it, make the cross-compiling dumper more likely to complain if we give it weird array types; we assume (unsigned-byte {8,16,32}) are generally supported by implementations. Also make (ARRAY NIL) dumpable in the target compiler. Tested building from cmucl, openmcl, old and new sbcl on x86 and ppc. Will need confirmation from other architectures. Index: early-objdef.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/generic/early-objdef.lisp,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- early-objdef.lisp 16 Jul 2003 08:26:02 -0000 1.15 +++ early-objdef.lisp 5 Aug 2003 14:11:39 -0000 1.16 @@ -78,8 +78,12 @@ simple-vector simple-array-unsigned-byte-2 simple-array-unsigned-byte-4 + simple-array-unsigned-byte-7 simple-array-unsigned-byte-8 + simple-array-unsigned-byte-15 simple-array-unsigned-byte-16 + simple-array-unsigned-byte-29 + simple-array-unsigned-byte-31 simple-array-unsigned-byte-32 simple-array-signed-byte-8 simple-array-signed-byte-16 Index: genesis.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/generic/genesis.lisp,v retrieving revision 1.79 retrieving revision 1.80 diff -u -d -r1.79 -r1.80 --- genesis.lisp 16 Jul 2003 08:26:02 -0000 1.79 +++ genesis.lisp 5 Aug 2003 14:11:39 -0000 1.80 @@ -2125,11 +2125,18 @@ (let* ((len (read-arg 4)) (sizebits (read-arg 1)) (type (case sizebits + (0 sb!vm:simple-array-nil-widetag) (1 sb!vm:simple-bit-vector-widetag) (2 sb!vm:simple-array-unsigned-byte-2-widetag) (4 sb!vm:simple-array-unsigned-byte-4-widetag) + (7 (prog1 sb!vm:simple-array-unsigned-byte-7-widetag + (setf sizebits 8))) (8 sb!vm:simple-array-unsigned-byte-8-widetag) + (15 (prog1 sb!vm:simple-array-unsigned-byte-15-widetag + (setf sizebits 16))) (16 sb!vm:simple-array-unsigned-byte-16-widetag) + (31 (prog1 sb!vm:simple-array-unsigned-byte-31-widetag + (setf sizebits 32))) (32 sb!vm:simple-array-unsigned-byte-32-widetag) (t (error "losing element size: ~W" sizebits)))) (result (allocate-vector-object *dynamic* sizebits len type)) Index: vm-array.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/generic/vm-array.lisp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- vm-array.lisp 16 Jul 2003 08:26:02 -0000 1.2 +++ vm-array.lisp 5 Aug 2003 14:11:39 -0000 1.3 @@ -94,10 +94,18 @@ :importance 15) ((unsigned-byte 4) 0 4 simple-array-unsigned-byte-4 :importance 14) + ((unsigned-byte 7) 0 8 simple-array-unsigned-byte-7 + :importance 13) ((unsigned-byte 8) 0 8 simple-array-unsigned-byte-8 :importance 13) + ((unsigned-byte 15) 0 16 simple-array-unsigned-byte-15 + :importance 12) ((unsigned-byte 16) 0 16 simple-array-unsigned-byte-16 :importance 12) + ((unsigned-byte 29) 0 32 simple-array-unsigned-byte-29 + :importance 8) + ((unsigned-byte 31) 0 32 simple-array-unsigned-byte-31 + :importance 11) ((unsigned-byte 32) 0 32 simple-array-unsigned-byte-32 :importance 11) ((signed-byte 8) 0 8 simple-array-signed-byte-8 Index: vm-fndb.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/generic/vm-fndb.lisp,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- vm-fndb.lisp 16 Jul 2003 08:26:02 -0000 1.17 +++ vm-fndb.lisp 5 Aug 2003 14:11:39 -0000 1.18 @@ -25,8 +25,11 @@ array-header-p simple-array-p simple-array-nil-p vector-nil-p simple-array-unsigned-byte-2-p - simple-array-unsigned-byte-4-p simple-array-unsigned-byte-8-p - simple-array-unsigned-byte-16-p simple-array-unsigned-byte-32-p + simple-array-unsigned-byte-4-p simple-array-unsigned-byte-7-p + simple-array-unsigned-byte-8-p simple-array-unsigned-byte-15-p + simple-array-unsigned-byte-16-p simple-array-unsigned-byte-29-p + simple-array-unsigned-byte-31-p + simple-array-unsigned-byte-32-p simple-array-signed-byte-8-p simple-array-signed-byte-16-p simple-array-signed-byte-30-p simple-array-signed-byte-32-p simple-array-single-float-p simple-array-double-float-p Index: vm-typetran.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/generic/vm-typetran.lisp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- vm-typetran.lisp 16 Jul 2003 08:26:02 -0000 1.4 +++ vm-typetran.lisp 5 Aug 2003 14:11:39 -0000 1.5 @@ -39,10 +39,18 @@ (simple-array (unsigned-byte 2) (*))) (define-type-predicate simple-array-unsigned-byte-4-p (simple-array (unsigned-byte 4) (*))) +(define-type-predicate simple-array-unsigned-byte-7-p + (simple-array (unsigned-byte 7) (*))) (define-type-predicate simple-array-unsigned-byte-8-p (simple-array (unsigned-byte 8) (*))) +(define-type-predicate simple-array-unsigned-byte-15-p + (simple-array (unsigned-byte 15) (*))) (define-type-predicate simple-array-unsigned-byte-16-p (simple-array (unsigned-byte 16) (*))) +(define-type-predicate simple-array-unsigned-byte-29-p + (simple-array (unsigned-byte 29) (*))) +(define-type-predicate simple-array-unsigned-byte-31-p + (simple-array (unsigned-byte 31) (*))) (define-type-predicate simple-array-unsigned-byte-32-p (simple-array (unsigned-byte 32) (*))) (define-type-predicate simple-array-signed-byte-8-p |