projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.29.13: relax CAST-EXTERNALLY-CHECKABLE-P a bit
[sbcl.git]
/
src
/
code
/
room.lisp
diff --git
a/src/code/room.lisp
b/src/code/room.lisp
index
87770c1
..
328ca45
100644
(file)
--- a/
src/code/room.lisp
+++ b/
src/code/room.lisp
@@
-10,6
+10,9
@@
;;;; files for more information.
(in-package "SB!VM")
;;;; 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
\f
;;;; type format database
@@
-214,7
+217,7
@@
;; will be a short. On platforms with larger ones, it'll
;; be an int.
(bytes-used (unsigned
;; 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)))
'(unsigned-byte 16))
16
32)))
@@
-237,6
+240,9
@@
(if careful
(make-lisp-obj tagged-address nil)
(values (%make-lisp-obj tagged-address) t))))
(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))
(without-gcing
(multiple-value-bind (start end) (space-bounds space)
(declare (type system-area-pointer start end))
@@
-259,7
+265,7
@@
(maybe-skip-page ()
#!+gencgc
(when (eq space :dynamic)
(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
for addr of-type sb!vm:word = (sap-int current)
while (>= addr skip-tests-until-addr)
do
@@
-291,7
+297,7
@@
(return-from maybe-skip-page))
;; Move CURRENT to start of next page.
(setf current (int-sap (+ (logandc2 addr page-mask)
(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
(maybe-finish-mapping))))))
(maybe-map (obj obj-tag n-obj-bytes &optional (ok t))
(let ((next (typecase n-obj-bytes
@@
-518,8
+524,7
@@
(lambda (obj type size)
(when (eql type code-header-widetag)
(let ((words (truly-the fixnum (%code-code-size obj)))
(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)
(size size))
(declare (fixnum size))
(incf total-bytes size)