From dd04bd449535e9016b5652a708a3cac2ca24c87d Mon Sep 17 00:00:00 2001 From: Alastair Bridgewater Date: Sat, 20 Feb 2010 18:43:13 -0500 Subject: [PATCH] Fixnum and unsigned-fixnum array cleanups. * Rename {arraytype}-{elementtype1} to {arraytype}-{elementtype2} for {arraytype} in (SIMPLE-ARRAY VECTOR), {elementtype1} in (UNSIGNED-BYTE-29 UNSIGNED-BYTE-60 SIGNED-BYTE-30 SIGNED-BYTE-61) and {elementtype2} in (UNSIGNED-FIXNUM SIGNED-FIXNUM) across the board (predicates, tag names, etc.). * Cleanup of related conditional compilation. * Export n-fixnum-bits (the remaining fixnum representation constant) from sb!vm instead of having it as an internal symbol of sb!pcl. * Original patch by Paul Khuong. --- package-data-list.lisp-expr | 32 ++++++------------- src/code/class.lisp | 40 ++++++++++------------- src/code/room.lisp | 7 ++--- src/compiler/alpha/array.lisp | 5 +-- src/compiler/generic/early-objdef.lisp | 8 ++--- src/compiler/generic/early-vm.lisp | 4 ++- src/compiler/generic/vm-array.lisp | 10 +++--- src/compiler/generic/vm-fndb.lisp | 14 ++++----- src/compiler/generic/vm-typetran.lisp | 28 ++++++++--------- src/compiler/hppa/array.lisp | 4 +-- src/compiler/mips/array.lisp | 4 +-- src/compiler/ppc/array.lisp | 4 +-- src/compiler/sparc/array.lisp | 4 +-- src/compiler/x86-64/array.lisp | 4 +-- src/compiler/x86/array.lisp | 4 +-- src/pcl/low.lisp | 8 ++--- src/runtime/gc-common.c | 48 ++++++++++++++-------------- src/runtime/gencgc.c | 54 +++++++++++--------------------- src/runtime/print.c | 18 ++++------- src/runtime/purify.c | 24 ++++---------- 20 files changed, 132 insertions(+), 192 deletions(-) diff --git a/package-data-list.lisp-expr b/package-data-list.lisp-expr index d50f1e5..c5fb4ab 100644 --- a/package-data-list.lisp-expr +++ b/package-data-list.lisp-expr @@ -1602,22 +1602,18 @@ is a good idea, but see SB-SYS re. blurring of boundaries." ;; 32-bit and 64-bit ports. Other bits connected to the ;; same issue are noted throughout the code below with ;; the tag "32/64-bit issues". --njf, 2004-08-09 - "OBJECT-NOT-SIMPLE-ARRAY-UNSIGNED-BYTE-29-ERROR" + "OBJECT-NOT-SIMPLE-ARRAY-UNSIGNED-FIXNUM-ERROR" "OBJECT-NOT-SIMPLE-ARRAY-UNSIGNED-BYTE-31-ERROR" "OBJECT-NOT-SIMPLE-ARRAY-UNSIGNED-BYTE-32-ERROR" "OBJECT-NOT-SIMPLE-ARRAY-UNSIGNED-BYTE-4-ERROR" ;; FIXME: 32/64-bit issues - "OBJECT-NOT-SIMPLE-ARRAY-UNSIGNED-BYTE-60-ERROR" "OBJECT-NOT-SIMPLE-ARRAY-UNSIGNED-BYTE-63-ERROR" "OBJECT-NOT-SIMPLE-ARRAY-UNSIGNED-BYTE-64-ERROR" "OBJECT-NOT-SIMPLE-ARRAY-UNSIGNED-BYTE-7-ERROR" "OBJECT-NOT-SIMPLE-ARRAY-UNSIGNED-BYTE-8-ERROR" "OBJECT-NOT-SIMPLE-ARRAY-SIGNED-BYTE-16-ERROR" - ;; FIXME: 32/64-bit issues - "OBJECT-NOT-SIMPLE-ARRAY-SIGNED-BYTE-30-ERROR" + "OBJECT-NOT-SIMPLE-ARRAY-FIXNUM-ERROR" "OBJECT-NOT-SIMPLE-ARRAY-SIGNED-BYTE-32-ERROR" - ;; FIXME: 32/64-bit issues - "OBJECT-NOT-SIMPLE-ARRAY-SIGNED-BYTE-61-ERROR" "OBJECT-NOT-SIMPLE-ARRAY-SIGNED-BYTE-64-ERROR" "OBJECT-NOT-SIMPLE-ARRAY-SIGNED-BYTE-8-ERROR" "OBJECT-NOT-SIMPLE-BIT-VECTOR-ERROR" @@ -1669,22 +1665,17 @@ is a good idea, but see SB-SYS re. blurring of boundaries." "SIMPLE-ARRAY-UNSIGNED-BYTE-15-P" "SIMPLE-ARRAY-UNSIGNED-BYTE-16-P" "SIMPLE-ARRAY-UNSIGNED-BYTE-2-P" - ;; FIXME: 32/64-bit issues - "SIMPLE-ARRAY-UNSIGNED-BYTE-29-P" + "SIMPLE-ARRAY-UNSIGNED-FIXNUM-P" "SIMPLE-ARRAY-UNSIGNED-BYTE-31-P" "SIMPLE-ARRAY-UNSIGNED-BYTE-32-P" "SIMPLE-ARRAY-UNSIGNED-BYTE-4-P" - ;; FIXME: 32/64-bit issues - "SIMPLE-ARRAY-UNSIGNED-BYTE-60-P" "SIMPLE-ARRAY-UNSIGNED-BYTE-63-P" "SIMPLE-ARRAY-UNSIGNED-BYTE-64-P" "SIMPLE-ARRAY-UNSIGNED-BYTE-7-P" "SIMPLE-ARRAY-UNSIGNED-BYTE-8-P" "SIMPLE-ARRAY-SIGNED-BYTE-16-P" - "SIMPLE-ARRAY-SIGNED-BYTE-30-P" + "SIMPLE-ARRAY-FIXNUM-P" "SIMPLE-ARRAY-SIGNED-BYTE-32-P" - ;; FIXME: 32/64-bit issues - "SIMPLE-ARRAY-SIGNED-BYTE-61-P" "SIMPLE-ARRAY-SIGNED-BYTE-64-P" "SIMPLE-ARRAY-SIGNED-BYTE-8-P" "SIMPLE-BASE-STRING-P" #!+sb-unicode "SIMPLE-CHARACTER-STRING-P" @@ -1737,8 +1728,8 @@ is a good idea, but see SB-SYS re. blurring of boundaries." "VECTOR-UNSIGNED-BYTE-2-P" "VECTOR-UNSIGNED-BYTE-4-P" "VECTOR-UNSIGNED-BYTE-7-P" "VECTOR-UNSIGNED-BYTE-8-P" "VECTOR-UNSIGNED-BYTE-15-P" "VECTOR-UNSIGNED-BYTE-16-P" - "VECTOR-UNSIGNED-BYTE-29-P" "VECTOR-UNSIGNED-BYTE-31-P" - "VECTOR-UNSIGNED-BYTE-32-P" "VECTOR-UNSIGNED-BYTE-60-P" + "VECTOR-UNSIGNED-FIXNUM-P" "VECTOR-UNSIGNED-BYTE-31-P" + "VECTOR-UNSIGNED-BYTE-32-P" "VECTOR-UNSIGNED-BYTE-63-P" "VECTOR-UNSIGNED-BYTE-64-P" "VECTOR-SIGNED-BYTE-8-P" "VECTOR-SIGNED-BYTE-16-P" "VECTOR-FIXNUM-P" "VECTOR-SIGNED-BYTE-32-P" @@ -2666,6 +2657,7 @@ structure representations" "MEMORY-USAGE" "MOST-POSITIVE-COST" "N-LOWTAG-BITS" "N-FIXNUM-TAG-BITS" + "N-FIXNUM-BITS" "N-POSITIVE-FIXNUM-BITS" "NEGATIVE-IMMEDIATE-SC-NUMBER" "NFP-SAVE-OFFSET" @@ -2716,23 +2708,17 @@ structure representations" "SIMPLE-ARRAY-UNSIGNED-BYTE-15-WIDETAG" "SIMPLE-ARRAY-UNSIGNED-BYTE-16-WIDETAG" "SIMPLE-ARRAY-UNSIGNED-BYTE-2-WIDETAG" - ;; FIXME: 32/64-bit issues - "SIMPLE-ARRAY-UNSIGNED-BYTE-29-WIDETAG" + "SIMPLE-ARRAY-UNSIGNED-FIXNUM-WIDETAG" "SIMPLE-ARRAY-UNSIGNED-BYTE-31-WIDETAG" "SIMPLE-ARRAY-UNSIGNED-BYTE-32-WIDETAG" - ;; FIXME: 32/64-bit issues - "SIMPLE-ARRAY-UNSIGNED-BYTE-60-WIDETAG" "SIMPLE-ARRAY-UNSIGNED-BYTE-63-WIDETAG" "SIMPLE-ARRAY-UNSIGNED-BYTE-64-WIDETAG" "SIMPLE-ARRAY-UNSIGNED-BYTE-4-WIDETAG" "SIMPLE-ARRAY-UNSIGNED-BYTE-7-WIDETAG" "SIMPLE-ARRAY-UNSIGNED-BYTE-8-WIDETAG" "SIMPLE-ARRAY-SIGNED-BYTE-16-WIDETAG" - ;; FIXME: 32/64-bit issues - "SIMPLE-ARRAY-SIGNED-BYTE-30-WIDETAG" + "SIMPLE-ARRAY-FIXNUM-WIDETAG" "SIMPLE-ARRAY-SIGNED-BYTE-32-WIDETAG" - ;; FIXME: 32/64-bit issues - "SIMPLE-ARRAY-SIGNED-BYTE-61-WIDETAG" "SIMPLE-ARRAY-SIGNED-BYTE-64-WIDETAG" "SIMPLE-ARRAY-SIGNED-BYTE-8-WIDETAG" "SIMPLE-BIT-VECTOR-WIDETAG" diff --git a/src/code/class.lisp b/src/code/class.lisp index b9283ee..8905c34 100644 --- a/src/code/class.lisp +++ b/src/code/class.lisp @@ -1188,13 +1188,15 @@ :direct-superclasses (vector simple-array) :inherits (vector simple-array array sequence) :prototype-form (make-array 0 :element-type '(unsigned-byte 16))) - #!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) - (simple-array-unsigned-byte-29 - :translation (simple-array (unsigned-byte 29) (*)) - :codes (#.sb!vm:simple-array-unsigned-byte-29-widetag) + + (simple-array-unsigned-fixnum + :translation (simple-array (unsigned-byte #.sb!vm:n-positive-fixnum-bits) (*)) + :codes (#.sb!vm:simple-array-unsigned-fixnum-widetag) :direct-superclasses (vector simple-array) :inherits (vector simple-array array sequence) - :prototype-form (make-array 0 :element-type '(unsigned-byte 29))) + :prototype-form (make-array 0 + :element-type '(unsigned-byte #.sb!vm:n-positive-fixnum-bits))) + (simple-array-unsigned-byte-31 :translation (simple-array (unsigned-byte 31) (*)) :codes (#.sb!vm:simple-array-unsigned-byte-31-widetag) @@ -1208,13 +1210,6 @@ :inherits (vector simple-array array sequence) :prototype-form (make-array 0 :element-type '(unsigned-byte 32))) #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) - (simple-array-unsigned-byte-60 - :translation (simple-array (unsigned-byte 60) (*)) - :codes (#.sb!vm:simple-array-unsigned-byte-60-widetag) - :direct-superclasses (vector simple-array) - :inherits (vector simple-array array sequence) - :prototype-form (make-array 0 :element-type '(unsigned-byte 60))) - #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) (simple-array-unsigned-byte-63 :translation (simple-array (unsigned-byte 63) (*)) :codes (#.sb!vm:simple-array-unsigned-byte-63-widetag) @@ -1240,13 +1235,17 @@ :direct-superclasses (vector simple-array) :inherits (vector simple-array array sequence) :prototype-form (make-array 0 :element-type '(signed-byte 16))) - #!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) - (simple-array-signed-byte-30 - :translation (simple-array (signed-byte 30) (*)) - :codes (#.sb!vm:simple-array-signed-byte-30-widetag) + + (simple-array-fixnum + :translation (simple-array (signed-byte #.sb!vm:n-fixnum-bits) + (*)) + :codes (#.sb!vm:simple-array-fixnum-widetag) :direct-superclasses (vector simple-array) :inherits (vector simple-array array sequence) - :prototype-form (make-array 0 :element-type '(signed-byte 30))) + :prototype-form (make-array 0 + :element-type + '(signed-byte #.sb!vm:n-fixnum-bits))) + (simple-array-signed-byte-32 :translation (simple-array (signed-byte 32) (*)) :codes (#.sb!vm:simple-array-signed-byte-32-widetag) @@ -1254,13 +1253,6 @@ :inherits (vector simple-array array sequence) :prototype-form (make-array 0 :element-type '(signed-byte 32))) #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) - (simple-array-signed-byte-61 - :translation (simple-array (signed-byte 61) (*)) - :codes (#.sb!vm:simple-array-signed-byte-61-widetag) - :direct-superclasses (vector simple-array) - :inherits (vector simple-array array sequence) - :prototype-form (make-array 0 :element-type '(signed-byte 61))) - #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) (simple-array-signed-byte-64 :translation (simple-array (signed-byte 64) (*)) :codes (#.sb!vm:simple-array-signed-byte-64-widetag) diff --git a/src/code/room.lisp b/src/code/room.lisp index a9ee633..28444c6 100644 --- a/src/code/room.lisp +++ b/src/code/room.lisp @@ -103,15 +103,13 @@ (simple-array-unsigned-byte-16-widetag . 1) (simple-array-unsigned-byte-31-widetag . 2) (simple-array-unsigned-byte-32-widetag . 2) - (simple-array-unsigned-byte-60-widetag . 3) + (simple-array-unsigned-fixnum-widetag . 3) (simple-array-unsigned-byte-63-widetag . 3) (simple-array-unsigned-byte-64-widetag . 3) (simple-array-signed-byte-8-widetag . 0) (simple-array-signed-byte-16-widetag . 1) - (simple-array-unsigned-byte-29-widetag . 2) - (simple-array-signed-byte-30-widetag . 2) + (simple-array-fixnum-widetag . 2) (simple-array-signed-byte-32-widetag . 2) - (simple-array-signed-byte-61-widetag . 3) (simple-array-signed-byte-64-widetag . 3) (simple-array-single-float-widetag . 2) (simple-array-double-float-widetag . 3) @@ -573,7 +571,6 @@ #.simple-array-unsigned-byte-32-widetag #.simple-array-signed-byte-8-widetag #.simple-array-signed-byte-16-widetag - ;; #.simple-array-signed-byte-30-widetag #.simple-array-signed-byte-32-widetag #.simple-array-single-float-widetag #.simple-array-double-float-widetag diff --git a/src/compiler/alpha/array.lisp b/src/compiler/alpha/array.lisp index 07a8622..000f5d4 100644 --- a/src/compiler/alpha/array.lisp +++ b/src/compiler/alpha/array.lisp @@ -325,8 +325,9 @@ (def-partial-data-vector-frobs simple-array-signed-byte-16 tagged-num :short t signed-reg) - (def-full-data-vector-frobs simple-array-unsigned-byte-29 positive-fixnum any-reg) - (def-full-data-vector-frobs simple-array-signed-byte-30 tagged-num any-reg) + (def-full-data-vector-frobs simple-array-unsigned-fixnum positive-fixnum + any-reg) + (def-full-data-vector-frobs simple-array-fixnum tagged-num any-reg) (def-full-data-vector-frobs simple-array-signed-byte-32 signed-num signed-reg) diff --git a/src/compiler/generic/early-objdef.lisp b/src/compiler/generic/early-objdef.lisp index 2b78f6b..6967fe4 100644 --- a/src/compiler/generic/early-objdef.lisp +++ b/src/compiler/generic/early-objdef.lisp @@ -186,11 +186,11 @@ simple-bit-vector-widetag ; 10101010 simple-vector-widetag ; 10101110 #!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) - simple-array-unsigned-byte-29-widetag ; 10110010 + simple-array-unsigned-fixnum-widetag ; 10110010 simple-array-unsigned-byte-31-widetag ; 10110110 simple-array-unsigned-byte-32-widetag ; 10111010 #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) - simple-array-unsigned-byte-60-widetag + simple-array-unsigned-fixnum-widetag #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) simple-array-unsigned-byte-63-widetag #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) @@ -198,10 +198,10 @@ simple-array-signed-byte-8-widetag ; 10111110 simple-array-signed-byte-16-widetag ; 11000010 #!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) - simple-array-signed-byte-30-widetag ; 11000110 + simple-array-fixnum-widetag ; 11000110 simple-array-signed-byte-32-widetag ; 11001010 #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) - simple-array-signed-byte-61-widetag + simple-array-fixnum-widetag #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) simple-array-signed-byte-64-widetag simple-array-single-float-widetag ; 11001110 diff --git a/src/compiler/generic/early-vm.lisp b/src/compiler/generic/early-vm.lisp index d9e89db..8810860 100644 --- a/src/compiler/generic/early-vm.lisp +++ b/src/compiler/generic/early-vm.lisp @@ -22,8 +22,10 @@ (def!constant n-fixnum-tag-bits (1- n-lowtag-bits)) ;;; the fixnum tag mask (def!constant fixnum-tag-mask (1- (ash 1 n-fixnum-tag-bits))) +;;; the bit width of fixnums +(def!constant n-fixnum-bits (- n-word-bits n-fixnum-tag-bits)) ;;; the bit width of positive fixnums -(def!constant n-positive-fixnum-bits (- n-word-bits n-fixnum-tag-bits 1)) +(def!constant n-positive-fixnum-bits (1- n-fixnum-bits)) ;;; the number of bits to shift between word addresses and byte addresses (def!constant word-shift (1- (integer-length (/ n-word-bits n-byte-bits)))) diff --git a/src/compiler/generic/vm-array.lisp b/src/compiler/generic/vm-array.lisp index 7f976a3..63bc1ae 100644 --- a/src/compiler/generic/vm-array.lisp +++ b/src/compiler/generic/vm-array.lisp @@ -116,7 +116,8 @@ ((unsigned-byte 16) 0 16 simple-array-unsigned-byte-16 :importance 12) #!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) - ((unsigned-byte 29) 0 32 simple-array-unsigned-byte-29 + ((unsigned-byte #.sb!vm:n-positive-fixnum-bits) + 0 32 simple-array-unsigned-fixnum :importance 8 :fixnum-p t) ((unsigned-byte 31) 0 32 simple-array-unsigned-byte-31 @@ -124,7 +125,8 @@ ((unsigned-byte 32) 0 32 simple-array-unsigned-byte-32 :importance 11) #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) - ((unsigned-byte 60) 0 64 simple-array-unsigned-byte-60 + ((unsigned-byte #.sb!vm:n-positive-fixnum-bits) + 0 64 simple-array-unsigned-fixnum :importance 8 :fixnum-p t) #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) @@ -141,14 +143,14 @@ ;; compiler/generic/primtype.lisp, for why this is FIXNUM and ;; not (SIGNED-BYTE 30) #!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) - (fixnum 0 32 simple-array-signed-byte-30 + (fixnum 0 32 simple-array-fixnum :importance 8 :fixnum-p t) ((signed-byte 32) 0 32 simple-array-signed-byte-32 :importance 7) ;; KLUDGE: see above KLUDGE for the 32-bit case #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) - (fixnum 0 64 simple-array-signed-byte-61 + (fixnum 0 64 simple-array-fixnum :importance 8 :fixnum-p t) #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) diff --git a/src/compiler/generic/vm-fndb.lisp b/src/compiler/generic/vm-fndb.lisp index ab7489e..395695e 100644 --- a/src/compiler/generic/vm-fndb.lisp +++ b/src/compiler/generic/vm-fndb.lisp @@ -31,23 +31,21 @@ 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 - #!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) - simple-array-unsigned-byte-29-p + + simple-array-unsigned-fixnum-p + simple-array-unsigned-byte-31-p simple-array-unsigned-byte-32-p #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) - simple-array-unsigned-byte-60-p - #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) simple-array-unsigned-byte-63-p #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) simple-array-unsigned-byte-64-p simple-array-signed-byte-8-p simple-array-signed-byte-16-p - #!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) - simple-array-signed-byte-30-p + + simple-array-fixnum-p + simple-array-signed-byte-32-p #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) - simple-array-signed-byte-61-p - #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) simple-array-signed-byte-64-p simple-array-single-float-p simple-array-double-float-p #!+long-float simple-array-long-float-p diff --git a/src/compiler/generic/vm-typetran.lisp b/src/compiler/generic/vm-typetran.lisp index ae7d8e6..fbf1736 100644 --- a/src/compiler/generic/vm-typetran.lisp +++ b/src/compiler/generic/vm-typetran.lisp @@ -47,16 +47,16 @@ (simple-array (unsigned-byte 15) (*))) (define-type-predicate simple-array-unsigned-byte-16-p (simple-array (unsigned-byte 16) (*))) -#!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) -(define-type-predicate simple-array-unsigned-byte-29-p - (simple-array (unsigned-byte 29) (*))) + +(define-type-predicate simple-array-unsigned-fixnum-p + (simple-array + (unsigned-byte #.sb!vm:n-positive-fixnum-bits) (*))) + (define-type-predicate simple-array-unsigned-byte-31-p - (simple-array (unsigned-byte 31) (*))) + (simple-array (unsigned-byte 31) (*))) (define-type-predicate simple-array-unsigned-byte-32-p (simple-array (unsigned-byte 32) (*))) -#!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) -(define-type-predicate simple-array-unsigned-byte-60-p - (simple-array (unsigned-byte 60) (*))) + #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) (define-type-predicate simple-array-unsigned-byte-63-p (simple-array (unsigned-byte 63) (*))) @@ -67,14 +67,14 @@ (simple-array (signed-byte 8) (*))) (define-type-predicate simple-array-signed-byte-16-p (simple-array (signed-byte 16) (*))) -#!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) -(define-type-predicate simple-array-signed-byte-30-p - (simple-array (signed-byte 30) (*))) + +(define-type-predicate simple-array-fixnum-p + (simple-array (signed-byte #.sb!vm:n-fixnum-bits) + (*))) + (define-type-predicate simple-array-signed-byte-32-p - (simple-array (signed-byte 32) (*))) -#!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) -(define-type-predicate simple-array-signed-byte-61-p - (simple-array (signed-byte 61) (*))) + (simple-array (signed-byte 32) (*))) + #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) (define-type-predicate simple-array-signed-byte-64-p (simple-array (signed-byte 64) (*))) diff --git a/src/compiler/hppa/array.lisp b/src/compiler/hppa/array.lisp index 67c76e0..7fe73ba 100644 --- a/src/compiler/hppa/array.lisp +++ b/src/compiler/hppa/array.lisp @@ -130,9 +130,9 @@ (def-partial-data-vector-frobs simple-array-signed-byte-16 tagged-num :short t signed-reg) - (def-full-data-vector-frobs simple-array-unsigned-byte-29 positive-fixnum + (def-full-data-vector-frobs simple-array-unsigned-fixnum positive-fixnum any-reg) - (def-full-data-vector-frobs simple-array-signed-byte-30 tagged-num + (def-full-data-vector-frobs simple-array-fixnum tagged-num any-reg) (def-full-data-vector-frobs simple-array-signed-byte-32 signed-num diff --git a/src/compiler/mips/array.lisp b/src/compiler/mips/array.lisp index 2f06dd4..fd8a76e 100644 --- a/src/compiler/mips/array.lisp +++ b/src/compiler/mips/array.lisp @@ -131,9 +131,9 @@ (def-partial-data-vector-frobs simple-array-signed-byte-16 tagged-num :short t signed-reg) - (def-full-data-vector-frobs simple-array-unsigned-byte-29 positive-fixnum + (def-full-data-vector-frobs simple-array-unsigned-fixnum positive-fixnum any-reg) - (def-full-data-vector-frobs simple-array-signed-byte-30 tagged-num + (def-full-data-vector-frobs simple-array-fixnum tagged-num any-reg) (def-full-data-vector-frobs simple-array-signed-byte-32 signed-num diff --git a/src/compiler/ppc/array.lisp b/src/compiler/ppc/array.lisp index 0f66433..65f7aec 100644 --- a/src/compiler/ppc/array.lisp +++ b/src/compiler/ppc/array.lisp @@ -133,9 +133,9 @@ (def-data-vector-frobs simple-array-unsigned-byte-32 word-index unsigned-num unsigned-reg) - (def-data-vector-frobs simple-array-unsigned-byte-29 word-index + (def-data-vector-frobs simple-array-unsigned-fixnum word-index positive-fixnum any-reg) - (def-data-vector-frobs simple-array-signed-byte-30 word-index + (def-data-vector-frobs simple-array-fixnum word-index tagged-num any-reg) (def-data-vector-frobs simple-array-signed-byte-32 word-index signed-num signed-reg)) diff --git a/src/compiler/sparc/array.lisp b/src/compiler/sparc/array.lisp index 6cd7ae5..31eff2f 100644 --- a/src/compiler/sparc/array.lisp +++ b/src/compiler/sparc/array.lisp @@ -126,9 +126,9 @@ (def-data-vector-frobs simple-array-unsigned-byte-32 word-index unsigned-num unsigned-reg) - (def-data-vector-frobs simple-array-unsigned-byte-29 word-index + (def-data-vector-frobs simple-array-unsigned-fixnum word-index positive-fixnum any-reg) - (def-data-vector-frobs simple-array-signed-byte-30 word-index + (def-data-vector-frobs simple-array-fixnum word-index tagged-num any-reg) (def-data-vector-frobs simple-array-signed-byte-32 word-index signed-num signed-reg)) diff --git a/src/compiler/x86-64/array.lisp b/src/compiler/x86-64/array.lisp index f365216..6103f2c 100644 --- a/src/compiler/x86-64/array.lisp +++ b/src/compiler/x86-64/array.lisp @@ -149,8 +149,8 @@ (def-full-data-vector-frobs simple-vector * descriptor-reg any-reg) (def-full-data-vector-frobs simple-array-unsigned-byte-64 unsigned-num unsigned-reg) - (def-full-data-vector-frobs simple-array-signed-byte-61 tagged-num any-reg) - (def-full-data-vector-frobs simple-array-unsigned-byte-60 + (def-full-data-vector-frobs simple-array-fixnum tagged-num any-reg) + (def-full-data-vector-frobs simple-array-unsigned-fixnum positive-fixnum any-reg) (def-full-data-vector-frobs simple-array-signed-byte-64 signed-num signed-reg) diff --git a/src/compiler/x86/array.lisp b/src/compiler/x86/array.lisp index b4fc18f..1b6c8f2 100644 --- a/src/compiler/x86/array.lisp +++ b/src/compiler/x86/array.lisp @@ -141,8 +141,8 @@ (def-full-data-vector-frobs simple-vector * descriptor-reg any-reg) (def-full-data-vector-frobs simple-array-unsigned-byte-32 unsigned-num unsigned-reg) - (def-full-data-vector-frobs simple-array-signed-byte-30 tagged-num any-reg) - (def-full-data-vector-frobs simple-array-unsigned-byte-29 positive-fixnum any-reg) + (def-full-data-vector-frobs simple-array-fixnum tagged-num any-reg) + (def-full-data-vector-frobs simple-array-unsigned-fixnum positive-fixnum any-reg) (def-full-data-vector-frobs simple-array-signed-byte-32 signed-num signed-reg) (def-full-data-vector-frobs simple-array-unsigned-byte-31 unsigned-num diff --git a/src/pcl/low.lisp b/src/pcl/low.lisp index 53c744d..3a30c9b 100644 --- a/src/pcl/low.lisp +++ b/src/pcl/low.lisp @@ -51,22 +51,20 @@ (defun random-fixnum () (random (1+ most-positive-fixnum))) -(defconstant n-fixnum-bits #.(integer-length most-positive-fixnum)) - ;;; Lambda which executes its body (or not) randomly. Used to drop ;;; random cache entries. (defmacro randomly-punting-lambda (lambda-list &body body) (with-unique-names (drops drop-pos) `(let ((,drops (random-fixnum)) - (,drop-pos n-fixnum-bits)) + (,drop-pos sb-vm:n-fixnum-bits)) (declare (fixnum ,drops) - (type (integer 0 #.n-fixnum-bits) ,drop-pos)) + (type (integer 0 #.sb-vm:n-fixnum-bits) ,drop-pos)) (lambda ,lambda-list (when (logbitp (the unsigned-byte (decf ,drop-pos)) ,drops) (locally ,@body)) (when (zerop ,drop-pos) (setf ,drops (random-fixnum) - ,drop-pos n-fixnum-bits)))))) + ,drop-pos sb-vm:n-fixnum-bits)))))) ;;;; early definition of WRAPPER ;;;; diff --git a/src/runtime/gc-common.c b/src/runtime/gc-common.c index 67b0fb3..34248fe 100644 --- a/src/runtime/gc-common.c +++ b/src/runtime/gc-common.c @@ -1984,16 +1984,16 @@ gc_init_tables(void) scav_vector_unsigned_byte_16; scavtab[SIMPLE_ARRAY_UNSIGNED_BYTE_16_WIDETAG] = scav_vector_unsigned_byte_16; -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG - scavtab[SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG] = +#if (N_WORD_BITS == 32) + scavtab[SIMPLE_ARRAY_UNSIGNED_FIXNUM_WIDETAG] = scav_vector_unsigned_byte_32; #endif scavtab[SIMPLE_ARRAY_UNSIGNED_BYTE_31_WIDETAG] = scav_vector_unsigned_byte_32; scavtab[SIMPLE_ARRAY_UNSIGNED_BYTE_32_WIDETAG] = scav_vector_unsigned_byte_32; -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG - scavtab[SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG] = +#if (N_WORD_BITS == 64) + scavtab[SIMPLE_ARRAY_UNSIGNED_FIXNUM_WIDETAG] = scav_vector_unsigned_byte_64; #endif #ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG @@ -2011,16 +2011,16 @@ gc_init_tables(void) scavtab[SIMPLE_ARRAY_SIGNED_BYTE_16_WIDETAG] = scav_vector_unsigned_byte_16; #endif -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG - scavtab[SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG] = +#if (N_WORD_BITS == 32) + scavtab[SIMPLE_ARRAY_FIXNUM_WIDETAG] = scav_vector_unsigned_byte_32; #endif #ifdef SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG scavtab[SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG] = scav_vector_unsigned_byte_32; #endif -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG - scavtab[SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG] = +#if (N_WORD_BITS == 64) + scavtab[SIMPLE_ARRAY_FIXNUM_WIDETAG] = scav_vector_unsigned_byte_64; #endif #ifdef SIMPLE_ARRAY_SIGNED_BYTE_64_WIDETAG @@ -2122,16 +2122,16 @@ gc_init_tables(void) trans_vector_unsigned_byte_16; transother[SIMPLE_ARRAY_UNSIGNED_BYTE_16_WIDETAG] = trans_vector_unsigned_byte_16; -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG - transother[SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG] = +#if (N_WORD_BITS == 32) + transother[SIMPLE_ARRAY_UNSIGNED_FIXNUM_WIDETAG] = trans_vector_unsigned_byte_32; #endif transother[SIMPLE_ARRAY_UNSIGNED_BYTE_31_WIDETAG] = trans_vector_unsigned_byte_32; transother[SIMPLE_ARRAY_UNSIGNED_BYTE_32_WIDETAG] = trans_vector_unsigned_byte_32; -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG - transother[SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG] = +#if (N_WORD_BITS == 64) + transother[SIMPLE_ARRAY_UNSIGNED_FIXNUM_WIDETAG] = trans_vector_unsigned_byte_64; #endif #ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG @@ -2150,16 +2150,16 @@ gc_init_tables(void) transother[SIMPLE_ARRAY_SIGNED_BYTE_16_WIDETAG] = trans_vector_unsigned_byte_16; #endif -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG - transother[SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG] = +#if (N_WORD_BITS == 32) + transother[SIMPLE_ARRAY_FIXNUM_WIDETAG] = trans_vector_unsigned_byte_32; #endif #ifdef SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG transother[SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG] = trans_vector_unsigned_byte_32; #endif -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG - transother[SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG] = +#if (N_WORD_BITS == 64) + transother[SIMPLE_ARRAY_FIXNUM_WIDETAG] = trans_vector_unsigned_byte_64; #endif #ifdef SIMPLE_ARRAY_SIGNED_BYTE_64_WIDETAG @@ -2263,16 +2263,16 @@ gc_init_tables(void) size_vector_unsigned_byte_16; sizetab[SIMPLE_ARRAY_UNSIGNED_BYTE_16_WIDETAG] = size_vector_unsigned_byte_16; -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG - sizetab[SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG] = +#if (N_WORD_BITS == 32) + sizetab[SIMPLE_ARRAY_UNSIGNED_FIXNUM_WIDETAG] = size_vector_unsigned_byte_32; #endif sizetab[SIMPLE_ARRAY_UNSIGNED_BYTE_31_WIDETAG] = size_vector_unsigned_byte_32; sizetab[SIMPLE_ARRAY_UNSIGNED_BYTE_32_WIDETAG] = size_vector_unsigned_byte_32; -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG - sizetab[SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG] = +#if (N_WORD_BITS == 64) + sizetab[SIMPLE_ARRAY_UNSIGNED_FIXNUM_WIDETAG] = size_vector_unsigned_byte_64; #endif #ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG @@ -2290,16 +2290,16 @@ gc_init_tables(void) sizetab[SIMPLE_ARRAY_SIGNED_BYTE_16_WIDETAG] = size_vector_unsigned_byte_16; #endif -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG - sizetab[SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG] = +#if (N_WORD_BITS == 32) + sizetab[SIMPLE_ARRAY_FIXNUM_WIDETAG] = size_vector_unsigned_byte_32; #endif #ifdef SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG sizetab[SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG] = size_vector_unsigned_byte_32; #endif -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG - sizetab[SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG] = +#if (N_WORD_BITS == 64) + sizetab[SIMPLE_ARRAY_FIXNUM_WIDETAG] = size_vector_unsigned_byte_64; #endif #ifdef SIMPLE_ARRAY_SIGNED_BYTE_64_WIDETAG diff --git a/src/runtime/gencgc.c b/src/runtime/gencgc.c index 6bfa494..1dbef40 100644 --- a/src/runtime/gencgc.c +++ b/src/runtime/gencgc.c @@ -2498,14 +2498,11 @@ looks_like_valid_lisp_pointer_p(lispobj *pointer, lispobj *start_addr) case SIMPLE_ARRAY_UNSIGNED_BYTE_8_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_15_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_16_WIDETAG: -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG - case SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG: -#endif + + case SIMPLE_ARRAY_UNSIGNED_FIXNUM_WIDETAG: + case SIMPLE_ARRAY_UNSIGNED_BYTE_31_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_32_WIDETAG: -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG - case SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG: -#endif #ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG case SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG: #endif @@ -2518,15 +2515,12 @@ looks_like_valid_lisp_pointer_p(lispobj *pointer, lispobj *start_addr) #ifdef SIMPLE_ARRAY_SIGNED_BYTE_16_WIDETAG case SIMPLE_ARRAY_SIGNED_BYTE_16_WIDETAG: #endif -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG - case SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG: -#endif + + case SIMPLE_ARRAY_FIXNUM_WIDETAG: + #ifdef SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG case SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG: #endif -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG - case SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG: -#endif #ifdef SIMPLE_ARRAY_SIGNED_BYTE_64_WIDETAG case SIMPLE_ARRAY_SIGNED_BYTE_64_WIDETAG: #endif @@ -2656,14 +2650,11 @@ maybe_adjust_large_object(lispobj *where) case SIMPLE_ARRAY_UNSIGNED_BYTE_8_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_15_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_16_WIDETAG: -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG - case SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG: -#endif + + case SIMPLE_ARRAY_UNSIGNED_FIXNUM_WIDETAG: + case SIMPLE_ARRAY_UNSIGNED_BYTE_31_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_32_WIDETAG: -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG - case SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG: -#endif #ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG case SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG: #endif @@ -2676,15 +2667,12 @@ maybe_adjust_large_object(lispobj *where) #ifdef SIMPLE_ARRAY_SIGNED_BYTE_16_WIDETAG case SIMPLE_ARRAY_SIGNED_BYTE_16_WIDETAG: #endif -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG - case SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG: -#endif + + case SIMPLE_ARRAY_FIXNUM_WIDETAG: + #ifdef SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG case SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG: #endif -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG - case SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG: -#endif #ifdef SIMPLE_ARRAY_SIGNED_BYTE_64_WIDETAG case SIMPLE_ARRAY_SIGNED_BYTE_64_WIDETAG: #endif @@ -3677,14 +3665,11 @@ verify_space(lispobj *start, size_t words) case SIMPLE_ARRAY_UNSIGNED_BYTE_8_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_15_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_16_WIDETAG: -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG - case SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG: -#endif + + case SIMPLE_ARRAY_UNSIGNED_FIXNUM_WIDETAG: + case SIMPLE_ARRAY_UNSIGNED_BYTE_31_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_32_WIDETAG: -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG - case SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG: -#endif #ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG case SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG: #endif @@ -3697,15 +3682,12 @@ verify_space(lispobj *start, size_t words) #ifdef SIMPLE_ARRAY_SIGNED_BYTE_16_WIDETAG case SIMPLE_ARRAY_SIGNED_BYTE_16_WIDETAG: #endif -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG - case SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG: -#endif + + case SIMPLE_ARRAY_FIXNUM_WIDETAG: + #ifdef SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG case SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG: #endif -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG - case SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG: -#endif #ifdef SIMPLE_ARRAY_SIGNED_BYTE_64_WIDETAG case SIMPLE_ARRAY_SIGNED_BYTE_64_WIDETAG: #endif diff --git a/src/runtime/print.c b/src/runtime/print.c index f6b5ff0..a76c9ad 100644 --- a/src/runtime/print.c +++ b/src/runtime/print.c @@ -496,14 +496,11 @@ static void print_otherptr(lispobj obj) case SIMPLE_ARRAY_UNSIGNED_BYTE_8_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_15_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_16_WIDETAG: -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG - case SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG: -#endif + + case SIMPLE_ARRAY_UNSIGNED_FIXNUM_WIDETAG: + case SIMPLE_ARRAY_UNSIGNED_BYTE_31_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_32_WIDETAG: -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG - case SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG: -#endif #ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG case SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG: #endif @@ -516,15 +513,12 @@ static void print_otherptr(lispobj obj) #ifdef SIMPLE_ARRAY_SIGNED_BYTE_16_WIDETAG case SIMPLE_ARRAY_SIGNED_BYTE_16_WIDETAG: #endif -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG - case SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG: -#endif + + case SIMPLE_ARRAY_FIXNUM_WIDETAG: + #ifdef SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG case SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG: #endif -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG - case SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG: -#endif #ifdef SIMPLE_ARRAY_SIGNED_BYTE_64_WIDETAG case SIMPLE_ARRAY_SIGNED_BYTE_64_WIDETAG: #endif diff --git a/src/runtime/purify.c b/src/runtime/purify.c index 90c4669..c740158 100644 --- a/src/runtime/purify.c +++ b/src/runtime/purify.c @@ -560,10 +560,8 @@ ptrans_otherptr(lispobj thing, lispobj header, boolean constant) return ptrans_vector(thing, 16, 0, 0, constant); case SIMPLE_ARRAY_UNSIGNED_BYTE_32_WIDETAG: -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG - case SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG: - case SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG: -#endif + case SIMPLE_ARRAY_FIXNUM_WIDETAG: + case SIMPLE_ARRAY_UNSIGNED_FIXNUM_WIDETAG: #ifdef SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG case SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_31_WIDETAG: @@ -571,18 +569,12 @@ ptrans_otherptr(lispobj thing, lispobj header, boolean constant) return ptrans_vector(thing, 32, 0, 0, constant); #if N_WORD_BITS == 64 -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG - case SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG: -#endif #ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG case SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG: #endif #ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_64_WIDETAG case SIMPLE_ARRAY_UNSIGNED_BYTE_64_WIDETAG: #endif -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG - case SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG: -#endif #ifdef SIMPLE_ARRAY_SIGNED_BYTE_64_WIDETAG case SIMPLE_ARRAY_SIGNED_BYTE_64_WIDETAG: #endif @@ -774,10 +766,10 @@ pscav(lispobj *addr, long nwords, boolean constant) break; case SIMPLE_ARRAY_UNSIGNED_BYTE_32_WIDETAG: -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG - case SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG: - case SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG: -#endif + + case SIMPLE_ARRAY_FIXNUM_WIDETAG: + case SIMPLE_ARRAY_UNSIGNED_FIXNUM_WIDETAG: + #ifdef SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG case SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_31_WIDETAG: @@ -788,10 +780,6 @@ pscav(lispobj *addr, long nwords, boolean constant) #if N_WORD_BITS == 64 case SIMPLE_ARRAY_UNSIGNED_BYTE_64_WIDETAG: -#ifdef SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG - case SIMPLE_ARRAY_SIGNED_BYTE_61_WIDETAG: - case SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG: -#endif #ifdef SIMPLE_ARRAY_SIGNED_BYTE_64_WIDETAG case SIMPLE_ARRAY_SIGNED_BYTE_64_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG: -- 1.7.10.4