;;;; files for more information.
(in-package "SB!VM")
+
+(declaim (special sb!vm:*read-only-space-free-pointer*
+ sb!vm:*static-space-free-pointer*))
\f
;;;; type format database
;; will be a short. On platforms with larger ones, it'll
;; be an int.
(bytes-used (unsigned
- #.(if (typep sb!vm:gencgc-page-size
+ #.(if (typep sb!vm:gencgc-page-bytes
'(unsigned-byte 16))
16
32)))
(if careful
(make-lisp-obj tagged-address nil)
(values (%make-lisp-obj tagged-address) t))))
+ ;; Inlining MAKE-OBJ reduces consing on platforms where dynamic
+ ;; space extends past fixnum range.
+ (declare (inline make-obj))
(without-gcing
(multiple-value-bind (start end) (space-bounds space)
(declare (type system-area-pointer start end))
(maybe-skip-page ()
#!+gencgc
(when (eq space :dynamic)
- (loop with page-mask = #.(1- sb!vm:gencgc-page-size)
+ (loop with page-mask = #.(1- sb!vm:gencgc-page-bytes)
for addr of-type sb!vm:word = (sap-int current)
while (>= addr skip-tests-until-addr)
do
(return-from maybe-skip-page))
;; Move CURRENT to start of next page.
(setf current (int-sap (+ (logandc2 addr page-mask)
- sb!vm:gencgc-page-size)))
+ sb!vm:gencgc-page-bytes)))
(maybe-finish-mapping))))))
(maybe-map (obj obj-tag n-obj-bytes &optional (ok t))
(let ((next (typecase n-obj-bytes
(lambda (obj type size)
(when (eql type code-header-widetag)
(let ((words (truly-the fixnum (%code-code-size obj)))
- (sap (truly-the system-area-pointer
- (%primitive code-instructions obj)))
+ (sap (%primitive code-instructions obj))
(size size))
(declare (fixnum size))
(incf total-bytes size)