1 ;;;; type-based constants
3 ;;;; This software is part of the SBCL system. See the README file for
6 ;;;; This software is derived from the CMU CL system, which was
7 ;;;; written at Carnegie Mellon University and released into the
8 ;;;; public domain. The software is in the public domain and is
9 ;;;; provided with absolutely no warranty. See the COPYING and CREDITS
10 ;;;; files for more information.
14 ;;; FIXME: It's clever using :SUFFIX -TYPE for these things, but it's
15 ;;; a pain for people just learning to find their way around the code
16 ;;; who want to figure out where things like EVEN-FIXNUM type are
17 ;;; defined. Remove the :SUFFIXes and just expand out the full names.
19 ;;; the main types. These types are represented by the low three bits of the
20 ;;; pointer or immeditate object.
21 (defenum (:suffix -type)
31 ;;; the heap types. Each of these types is in the header of objects in
33 (defenum (:suffix -type
34 :start (+ (ash 1 lowtag-bits) other-immediate-0-type)
35 :step (ash 1 (1- lowtag-bits)))
40 #!+long-float long-float
44 #!+long-float complex-long-float
50 simple-array-unsigned-byte-2
51 simple-array-unsigned-byte-4
52 simple-array-unsigned-byte-8
53 simple-array-unsigned-byte-16
54 simple-array-unsigned-byte-32
55 simple-array-signed-byte-8
56 simple-array-signed-byte-16
57 simple-array-signed-byte-30
58 simple-array-signed-byte-32
59 simple-array-single-float
60 simple-array-double-float
61 #!+long-float simple-array-long-float
62 simple-array-complex-single-float
63 simple-array-complex-double-float
64 #!+long-float simple-array-complex-long-float
73 funcallable-instance-header
76 closure-function-header
77 #!-gengc return-pc-header
78 #!+gengc forwarding-pointer
89 ;;; the different vector subtypes
90 (defenum (:prefix vector- :suffix -subtype)