X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fppc%2Fbackend-parms.lisp;h=e20c1c228e4f41afa6da78b78291cdb5079c0d94;hb=0e8649cf907d26f111864e4e29c7f9787828efbd;hp=9f061d640d613c8afea70861a78fa8686ee551a1;hpb=8731c1a7c1a585d190151fa881050fb5e14c0616;p=sbcl.git diff --git a/src/compiler/ppc/backend-parms.lisp b/src/compiler/ppc/backend-parms.lisp index 9f061d6..e20c1c2 100644 --- a/src/compiler/ppc/backend-parms.lisp +++ b/src/compiler/ppc/backend-parms.lisp @@ -3,5 +3,24 @@ (def!constant +backend-fasl-file-implementation+ :ppc) (setf *backend-register-save-penalty* 3) (setf *backend-byte-order* :big-endian) -(setf *backend-page-size* 4096) +(eval-when (:compile-toplevel :load-toplevel :execute) + ;; On Linux, the ABI specifies the page size to be 4k-64k, use the + ;; maximum of that range. FIXME: it'd be great if somebody would + ;; find out whether using exact multiples of the page size actually + ;; matters in the few places where that's done, or whether we could + ;; just use 4k everywhere. + (setf *backend-page-bytes* #!+linux 65536 #!-linux 4096)) + +;;; The size in bytes of GENCGC cards, i.e. the granularity at which +;;; writes to old generations are logged. With mprotect-based write +;;; barriers, this must be a multiple of the OS page size. +(def!constant gencgc-card-bytes *backend-page-bytes*) +;;; The minimum size of new allocation regions. While it doesn't +;;; currently make a lot of sense to have a card size lower than +;;; the alloc granularity, it will, once we are smarter about finding +;;; the start of objects. +(def!constant gencgc-alloc-granularity 0) +;;; The minimum size at which we release address ranges to the OS. +;;; This must be a multiple of the OS page size. +(def!constant gencgc-release-granularity *backend-page-bytes*)