X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fgeneric%2Fvm-array.lisp;h=503f1bb29f55d363c62f308b96747fdb1ba4f4e6;hb=63817d29028c8551cda23f432a3328acd7fdd62f;hp=dcf009282e39187fcbebf029298c38bf29f9bf01;hpb=fc999187f3f80dfcf170348df676386b8403e261;p=sbcl.git diff --git a/src/compiler/generic/vm-array.lisp b/src/compiler/generic/vm-array.lisp index dcf0092..503f1bb 100644 --- a/src/compiler/generic/vm-array.lisp +++ b/src/compiler/generic/vm-array.lisp @@ -64,7 +64,7 @@ (nil #:mu 0 simple-array-nil :complex-typecode #.sb!vm:complex-vector-nil-widetag :importance 0) - (base-char ,(code-char 0) 8 simple-base-string + (character ,(code-char 0) 8 simple-base-string ;; (SIMPLE-BASE-STRINGs are stored with an extra ;; trailing #\NULL for convenience in calling out ;; to C.) @@ -75,9 +75,6 @@ :importance 6) (double-float 0.0d0 64 simple-array-double-float :importance 5) - #!+long-float - (long-float 0.0l0 #!+x86 96 #!+sparc 128 simple-array-long-float - :importance 4) (bit 0 1 simple-bit-vector :complex-typecode #.sb!vm:complex-bit-vector-widetag :importance 16) @@ -102,12 +99,22 @@ :importance 12) ((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 :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) + #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) + ((unsigned-byte 60) 0 64 simple-array-unsigned-byte-60 + :importance 8) + #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) + ((unsigned-byte 63) 0 64 simple-array-unsigned-byte-63 + :importance 9) + #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) + ((unsigned-byte 64) 0 64 simple-array-unsigned-byte-64 + :importance 9) ((signed-byte 8) 0 8 simple-array-signed-byte-8 :importance 10) ((signed-byte 16) 0 16 simple-array-signed-byte-16 @@ -115,10 +122,18 @@ ;; KLUDGE: See the comment in PRIMITIVE-TYPE-AUX, ;; 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 :importance 8) ((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 + :importance 8) + #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) + ((signed-byte 64) 0 64 simple-array-signed-byte-64 + :importance 7) ((complex single-float) #C(0.0f0 0.0f0) 64 simple-array-complex-single-float :importance 3) @@ -129,7 +144,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