Split GENCGC_PAGE_BYTES in 3 constants
[sbcl.git] / src / compiler / ppc / backend-parms.lisp
1 (in-package "SB!VM")
2
3 (def!constant +backend-fasl-file-implementation+ :ppc)
4 (setf *backend-register-save-penalty* 3)
5 (setf *backend-byte-order* :big-endian)
6
7 (eval-when (:compile-toplevel :load-toplevel :execute)
8   ;; On Linux, the ABI specifies the page size to be 4k-64k, use the
9   ;; maximum of that range. FIXME: it'd be great if somebody would
10   ;; find out whether using exact multiples of the page size actually
11   ;; matters in the few places where that's done, or whether we could
12   ;; just use 4k everywhere.
13   (setf *backend-page-bytes* #!+linux 65536 #!-linux 4096))
14
15 ;;; The size in bytes of GENCGC cards, i.e. the granularity at which
16 ;;; writes to old generations are logged.  With mprotect-based write
17 ;;; barriers, this must be a multiple of the OS page size.
18 (def!constant gencgc-card-bytes *backend-page-bytes*)
19 ;;; The minimum size of new allocation regions.  While it doesn't
20 ;;; currently make a lot of sense to have a card size lower than
21 ;;; the alloc granularity, it will, once we are smarter about finding
22 ;;; the start of objects.
23 (def!constant gencgc-alloc-granularity *backend-page-bytes*)
24 ;;; The minimum size at which we release address ranges to the OS.
25 ;;; This must be a multiple of the OS page size.
26 (def!constant gencgc-release-granularity *backend-page-bytes*)