From: Nathan Froyd Date: Fri, 6 Aug 2004 18:43:45 +0000 (+0000) Subject: 0.8.13.33: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=dc6275b2e4a18db86f3de147b531a94fb8a1144f;p=sbcl.git 0.8.13.33: Clean up a few more 32-bit assumptions and add exports for useful constants --- diff --git a/package-data-list.lisp-expr b/package-data-list.lisp-expr index ca10143..48ef986 100644 --- a/package-data-list.lisp-expr +++ b/package-data-list.lisp-expr @@ -2016,6 +2016,7 @@ structure representations" "EXPORTED-STATIC-SYMBOLS" "EXTERN-ALIEN-NAME" "FDEFN-FUN-SLOT" "FDEFN-NAME-SLOT" "FDEFN-RAW-ADDR-SLOT" "FDEFN-SIZE" "FDEFN-WIDETAG" "FIXNUMIZE" + "FIXNUM-TAG-MASK" "FIXUP-CODE-OBJECT" "FLOAT-DENORMAL-TRAP-BIT" "FLOAT-DIVIDE-BY-ZERO-TRAP-BIT" "FLOAT-IMPRECISE-TRAP-BIT" "FLOAT-INVALID-TRAP-BIT" @@ -2064,6 +2065,8 @@ structure representations" "LRA-SAVE-OFFSET" "MEMORY-USAGE" "MOST-POSITIVE-COST" "N-LOWTAG-BITS" + "N-FIXNUM-TAG-BITS" + "N-POSITIVE-FIXNUM-BITS" "NEGATIVE-IMMEDIATE-SC-NUMBER" "NFP-SAVE-OFFSET" "NON-DESCRIPTOR-REG-SC-NUMBER" diff --git a/src/compiler/generic/primtype.lisp b/src/compiler/generic/primtype.lisp index 7aec24b..761e0f6 100644 --- a/src/compiler/generic/primtype.lisp +++ b/src/compiler/generic/primtype.lisp @@ -23,7 +23,7 @@ ;;; primitive integer types that fit in registers (/show0 "primtype.lisp 24") (!def-primitive-type positive-fixnum (any-reg signed-reg unsigned-reg) - :type (unsigned-byte 29)) + :type (unsigned-byte #.sb!vm:n-positive-fixnum-bits)) (/show0 "primtype.lisp 27") #!-alpha (!def-primitive-type unsigned-byte-31 (signed-reg unsigned-reg descriptor-reg) @@ -40,7 +40,7 @@ (!def-primitive-type unsigned-byte-64 (unsigned-reg descriptor-reg) :type (unsigned-byte 64)) (!def-primitive-type fixnum (any-reg signed-reg) - :type (signed-byte 30)) + :type (signed-byte #.(1+ sb!vm:n-positive-fixnum-bits))) #!-alpha (!def-primitive-type signed-byte-32 (signed-reg descriptor-reg) :type (signed-byte 32)) @@ -197,7 +197,7 @@ (integer (cond ((and hi lo) (dolist (spec - `((positive-fixnum 0 ,(1- (ash 1 29))) + `((positive-fixnum 0 ,sb!xc:most-positive-fixnum) #!-alpha (unsigned-byte-31 0 ,(1- (ash 1 31))) #!-alpha @@ -206,16 +206,16 @@ (unsigned-byte-63 0 ,(1- (ash 1 63))) #!+alpha (unsigned-byte-64 0 ,(1- (ash 1 64))) - (fixnum ,(ash -1 29) - ,(1- (ash 1 29))) + (fixnum ,sb!xc:most-negative-fixnum + ,sb!xc:most-positive-fixnum) #!-alpha (signed-byte-32 ,(ash -1 31) ,(1- (ash 1 31))) #!+alpha (signed-byte-64 ,(ash -1 63) ,(1- (ash 1 63)))) - (if (or (< hi (ash -1 29)) - (> lo (1- (ash 1 29)))) + (if (or (< hi sb!xc:most-negative-fixnum) + (> lo sb!xc:most-positive-fixnum)) (part-of bignum) (any))) (let ((type (car spec)) diff --git a/src/compiler/generic/vm-array.lisp b/src/compiler/generic/vm-array.lisp index fac3d72..5d2c780 100644 --- a/src/compiler/generic/vm-array.lisp +++ b/src/compiler/generic/vm-array.lisp @@ -126,7 +126,7 @@ ((complex long-float) #C(0.0l0 0.0l0) #!+x86 192 #!+sparc 256 simple-array-complex-long-float :importance 1) - (t 0 32 simple-vector :importance 18)))) + (t 0 #.sb!vm:n-word-bits simple-vector :importance 18)))) (defvar sb!kernel::*specialized-array-element-types* (map 'list diff --git a/version.lisp-expr b/version.lisp-expr index ea223e7..f6417b5 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.8.13.32" +"0.8.13.33"