0.8.16.9:
[sbcl.git] / src / compiler / generic / vm-array.lisp
index dcf0092..503f1bb 100644 (file)
@@ -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)
          :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
         ;; 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)
         ((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