X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fgeneric%2Fvm-type.lisp;h=279ec9d6b36a462fdfee8a331039a16820e32c90;hb=24bc431a3403af05c5df601d09c0d0c27cb500b2;hp=338d0d223fdd0f8710cdc50616654ed8556d1f5f;hpb=be9eb6c67b5f43a095c3de17bea945c309d662e4;p=sbcl.git diff --git a/src/compiler/generic/vm-type.lisp b/src/compiler/generic/vm-type.lisp index 338d0d2..279ec9d 100644 --- a/src/compiler/generic/vm-type.lisp +++ b/src/compiler/generic/vm-type.lisp @@ -20,13 +20,13 @@ ;;;; FIXME: I'm not sure where to put this. -- WHN 19990817 -(deftype sb!vm:word () `(unsigned-byte ,sb!vm:word-bits)) +(deftype sb!vm:word () `(unsigned-byte ,sb!vm:n-word-bits)) ;;;; implementation-dependent DEFTYPEs -;;; Make DOUBLE-FLOAT a synonym for LONG-FLOAT, SINGLE-FLOAT for SHORT-FLOAT. -;;; This is expanded before the translator gets a chance, so we will get -;;; precedence. +;;; Make DOUBLE-FLOAT a synonym for LONG-FLOAT, SINGLE-FLOAT for +;;; SHORT-FLOAT. This is expanded before the translator gets a chance, +;;; so we will get precedence. #!-long-float (setf (info :type :kind 'long-float) :defined) #!-long-float @@ -72,7 +72,7 @@ ;;; internal time format. (Note: not a FIXNUM, ouch..) (sb!xc:deftype internal-time () 'unsigned-byte) -(sb!xc:deftype bignum-element-type () `(unsigned-byte ,sb!vm:word-bits)) +(sb!xc:deftype bignum-element-type () `(unsigned-byte ,sb!vm:n-word-bits)) (sb!xc:deftype bignum-type () 'bignum) (sb!xc:deftype bignum-index () 'index) @@ -130,7 +130,12 @@ (defun specialize-array-type (type) (let ((eltype (array-type-element-type type))) (setf (array-type-specialized-element-type type) - (if (eq eltype *wild-type*) + (if (or (eq eltype *wild-type*) + ;; This is slightly dubious, but not as dubious as + ;; assuming that the upgraded-element-type should be + ;; equal to T, given the way that the AREF + ;; DERIVE-TYPE optimizer works. -- CSR, 2002-08-19 + (unknown-type-p eltype)) *wild-type* (dolist (stype-name *specialized-array-element-types* *universal-type*) @@ -177,7 +182,7 @@ 'sb!c:check-unsigned-byte-32) (t nil))) (fun-type - 'sb!c:check-function) + 'sb!c:check-fun) (t nil)))