0.pre7.59:
[sbcl.git] / src / compiler / generic / genesis.lisp
index cfb66af..40478a5 100644 (file)
   ;; the GSPACE that this descriptor is allocated in, or NIL if not set yet.
   (gspace nil :type (or gspace null))
   ;; the offset in words from the start of GSPACE, or NIL if not set yet
-  (word-offset nil :type (or (unsigned-byte #.sb!vm:word-bits) null))
+  (word-offset nil :type (or (unsigned-byte #.sb!vm:n-word-bits) null))
   ;; the high and low halves of the descriptor
   ;;
   ;; KLUDGE: Judging from the comments in genesis.lisp of the CMU CL
 
 (defun descriptor-fixnum (des)
   (let ((bits (descriptor-bits des)))
-    (if (logbitp (1- sb!vm:word-bits) bits)
-      ;; KLUDGE: The (- SB!VM:WORD-BITS 2) term here looks right to
-      ;; me, and it works, but in CMU CL it was (1- SB!VM:WORD-BITS),
+    (if (logbitp (1- sb!vm:n-word-bits) bits)
+      ;; KLUDGE: The (- SB!VM:N-WORD-BITS 2) term here looks right to
+      ;; me, and it works, but in CMU CL it was (1- SB!VM:N-WORD-BITS),
       ;; and although that doesn't make sense for me, or work for me,
       ;; it's hard to see how it could have been wrong, since CMU CL
       ;; genesis worked. It would be nice to understand how this came
       ;; to be.. -- WHN 19990901
-      (logior (ash bits -2) (ash -1 (- sb!vm:word-bits 2)))
+      (logior (ash bits -2) (ash -1 (- sb!vm:n-word-bits 2)))
       (ash bits -2))))
 
 ;;; common idioms
 (defun make-random-descriptor (value)
   (make-descriptor (logand (ash value (- descriptor-low-bits))
                           (1- (ash 1
-                                   (- sb!vm:word-bits descriptor-low-bits))))
+                                   (- sb!vm:n-word-bits
+                                      descriptor-low-bits))))
                   (logand value (1- (ash 1 descriptor-low-bits)))))
 
 (defun make-fixnum-descriptor (num)
   (when (>= (integer-length num)
-           (1+ (- sb!vm:word-bits sb!vm:n-lowtag-bits)))
+           (1+ (- sb!vm:n-word-bits sb!vm:n-lowtag-bits)))
     (error "~D is too big for a fixnum." num))
   (make-random-descriptor (ash num (1- sb!vm:n-lowtag-bits))))
 
 
 (defun maybe-byte-swap (word)
   (declare (type (unsigned-byte 32) word))
-  (aver (= sb!vm:word-bits 32))
+  (aver (= sb!vm:n-word-bits 32))
   (aver (= sb!vm:byte-bits 8))
   (if (not *genesis-byte-order-swap-p*)
       word
 
 (defun maybe-byte-swap-short (short)
   (declare (type (unsigned-byte 16) short))
-  (aver (= sb!vm:word-bits 32))
+  (aver (= sb!vm:n-word-bits 32))
   (aver (= sb!vm:byte-bits 8))
   (if (not *genesis-byte-order-swap-p*)
       short
                             (ldb (byte 8 ,(* i 8)) new-value)))))
               `(progn
                  (defun ,name (byte-vector byte-index)
-  (aver (= sb!vm:word-bits 32))
+  (aver (= sb!vm:n-word-bits 32))
   (aver (= sb!vm:byte-bits 8))
   (ecase sb!c:*backend-byte-order*
     (:little-endian
     (:big-endian
      (error "stub: no big-endian ports of SBCL (yet?)"))))
                  (defun (setf ,name) (new-value byte-vector byte-index)
-  (aver (= sb!vm:word-bits 32))
+  (aver (= sb!vm:n-word-bits 32))
   (aver (= sb!vm:byte-bits 8))
   (ecase sb!c:*backend-byte-order*
     (:little-endian
 (defun bignum-to-core (n)
   #!+sb-doc
   "Copy a bignum to the cold core."
-  (let* ((words (ceiling (1+ (integer-length n)) sb!vm:word-bits))
+  (let* ((words (ceiling (1+ (integer-length n)) sb!vm:n-word-bits))
         (handle (allocate-unboxed-object *dynamic*
-                                         sb!vm:word-bits
+                                         sb!vm:n-word-bits
                                          words
                                          sb!vm:bignum-widetag)))
     (declare (fixnum words))
     (do ((index 1 (1+ index))
-        (remainder n (ash remainder (- sb!vm:word-bits))))
+        (remainder n (ash remainder (- sb!vm:n-word-bits))))
        ((> index words)
         (unless (zerop (integer-length remainder))
           ;; FIXME: Shouldn't this be a fatal error?
           (warn "~D words of ~D were written, but ~D bits were left over."
                 words n remainder)))
-      (let ((word (ldb (byte sb!vm:word-bits 0) remainder)))
+      (let ((word (ldb (byte sb!vm:n-word-bits 0) remainder)))
        (write-wordindexed handle index
                           (make-descriptor (ash word (- descriptor-low-bits))
                                            (ldb (byte descriptor-low-bits 0)
 (defun number-pair-to-core (first second type)
   #!+sb-doc
   "Makes a number pair of TYPE (ratio or complex) and fills it in."
-  (let ((des (allocate-unboxed-object *dynamic* sb!vm:word-bits 2 type)))
+  (let ((des (allocate-unboxed-object *dynamic* sb!vm:n-word-bits 2 type)))
     (write-wordindexed des 1 first)
     (write-wordindexed des 2 second)
     des))
   (etypecase x
     (single-float
      (let ((des (allocate-unboxed-object *dynamic*
-                                        sb!vm:word-bits
+                                        sb!vm:n-word-bits
                                         (1- sb!vm:single-float-size)
                                         sb!vm:single-float-widetag)))
        (write-wordindexed des
        des))
     (double-float
      (let ((des (allocate-unboxed-object *dynamic*
-                                        sb!vm:word-bits
+                                        sb!vm:n-word-bits
                                         (1- sb!vm:double-float-size)
                                         sb!vm:double-float-widetag))
           (high-bits (make-random-descriptor (double-float-high-bits x)))
     #!+(and long-float x86)
     (long-float
      (let ((des (allocate-unboxed-object *dynamic*
-                                        sb!vm:word-bits
+                                        sb!vm:n-word-bits
                                         (1- sb!vm:long-float-size)
                                         sb!vm:long-float-widetag))
           (exp-bits (make-random-descriptor (long-float-exp-bits x)))
 
 (defun complex-single-float-to-core (num)
   (declare (type (complex single-float) num))
-  (let ((des (allocate-unboxed-object *dynamic* sb!vm:word-bits
+  (let ((des (allocate-unboxed-object *dynamic* sb!vm:n-word-bits
                                      (1- sb!vm:complex-single-float-size)
                                      sb!vm:complex-single-float-widetag)))
     (write-wordindexed des sb!vm:complex-single-float-real-slot
 
 (defun complex-double-float-to-core (num)
   (declare (type (complex double-float) num))
-  (let ((des (allocate-unboxed-object *dynamic* sb!vm:word-bits
+  (let ((des (allocate-unboxed-object *dynamic* sb!vm:n-word-bits
                                      (1- sb!vm:complex-double-float-size)
                                      sb!vm:complex-double-float-widetag)))
     (let* ((real (realpart num))
 (declaim (ftype (function (sb!vm:word) descriptor) sap-to-core))
 (defun sapint-to-core (sapint)
   (let ((des (allocate-unboxed-object *dynamic*
-                                     sb!vm:word-bits
+                                     sb!vm:n-word-bits
                                      (1- sb!vm:sap-size)
                                      sb!vm:sap-widetag)))
     (write-wordindexed des
 ;;; descriptor.
 (defun vector-in-core (&rest objects)
   (let* ((size (length objects))
-        (result (allocate-vector-object *dynamic* sb!vm:word-bits size
+        (result (allocate-vector-object *dynamic* sb!vm:n-word-bits size
                                         sb!vm:simple-vector-widetag)))
     (dotimes (index size)
       (write-wordindexed result (+ index sb!vm:vector-data-offset)
   (declare (simple-string name))
   (let ((symbol (allocate-unboxed-object (or *cold-symbol-allocation-gspace*
                                             *dynamic*)
-                                        sb!vm:word-bits
+                                        sb!vm:n-word-bits
                                         (1- sb!vm:symbol-size)
                                         sb!vm:symbol-header-widetag)))
     (write-wordindexed symbol sb!vm:symbol-value-slot *unbound-marker*)
 (defun make-nil-descriptor ()
   (let* ((des (allocate-unboxed-object
               *static*
-              sb!vm:word-bits
+              sb!vm:n-word-bits
               sb!vm:symbol-size
               0))
         (result (make-descriptor (descriptor-high des)
                (fop-small-vector)
   (let* ((size (clone-arg))
         (result (allocate-vector-object *dynamic*
-                                        sb!vm:word-bits
+                                        sb!vm:n-word-bits
                                         size
                                         sb!vm:simple-vector-widetag)))
     (do ((index (1- size) (1- index)))
   (let* ((len (read-arg 4))
         (result (allocate-vector-object
                  *dynamic*
-                 sb!vm:word-bits
+                 sb!vm:n-word-bits
                  len
                  sb!vm:simple-array-single-float-widetag))
         (start (+ (descriptor-byte-offset result)
   (ecase +backend-fasl-file-implementation+
     (:x86 ; (which has 80-bit long-float format)
      (prepare-for-fast-read-byte *fasl-input-stream*
-       (let* ((des (allocate-unboxed-object *dynamic* sb!vm:word-bits
+       (let* ((des (allocate-unboxed-object *dynamic* sb!vm:n-word-bits
                                            (1- sb!vm:long-float-size)
                                            sb!vm:long-float-widetag))
              (low-bits (make-random-descriptor (fast-read-u-integer 4)))
     #+nil
     (#.sb!c:sparc-fasl-file-implementation ; 128 bit long-float format
      (prepare-for-fast-read-byte *fasl-input-stream*
-       (let* ((des (allocate-unboxed-object *dynamic* sb!vm:word-bits
+       (let* ((des (allocate-unboxed-object *dynamic* sb!vm:n-word-bits
                                            (1- sb!vm:long-float-size)
                                            sb!vm:long-float-widetag))
              (low-bits (make-random-descriptor (fast-read-u-integer 4)))
   (ecase +backend-fasl-file-implementation+
     (:x86 ; (which has 80-bit long-float format)
      (prepare-for-fast-read-byte *fasl-input-stream*
-       (let* ((des (allocate-unboxed-object *dynamic* sb!vm:word-bits
+       (let* ((des (allocate-unboxed-object *dynamic* sb!vm:n-word-bits
                                            (1- sb!vm:complex-long-float-size)
                                            sb!vm:complex-long-float-widetag))
              (real-low-bits (make-random-descriptor (fast-read-u-integer 4)))
     #+nil
     (#.sb!c:sparc-fasl-file-implementation ; 128 bit long-float format
      (prepare-for-fast-read-byte *fasl-input-stream*
-       (let* ((des (allocate-unboxed-object *dynamic* sb!vm:word-bits
+       (let* ((des (allocate-unboxed-object *dynamic* sb!vm:n-word-bits
                                            (1- sb!vm:complex-long-float-size)
                                            sb!vm:complex-long-float-widetag))
              (real-low-bits (make-random-descriptor (fast-read-u-integer 4)))
 (defun finalize-load-time-value-noise ()
   (cold-set (cold-intern '*!load-time-values*)
            (allocate-vector-object *dynamic*
-                                   sb!vm:word-bits
+                                   sb!vm:n-word-bits
                                    *load-time-value-counter*
                                    sb!vm:simple-vector-widetag)))
 
              "struct ~A {~%"
              (nsubstitute #\_ #\-
              (string-downcase (string (sb!vm:primitive-object-name obj)))))
-      (when (sb!vm:primitive-object-header obj)
+      (when (sb!vm:primitive-object-widetag obj)
        (format t "    lispobj header;~%"))
       (dolist (slot (sb!vm:primitive-object-slots obj))
        (format t "    ~A ~A~@[[1]~];~%"