X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86%2Fbackend-parms.lisp;h=16ea497f4a3608521b01c1d9101dfaca0e9176d0;hb=0bce9320787ec158000514620f3b7122642861b1;hp=ba1fda3f1f980a70aa7bf67b384ac8f3b703fd99;hpb=77360ee4a1f94c41b807be7ad0e8687199fceef1;p=sbcl.git diff --git a/src/compiler/x86/backend-parms.lisp b/src/compiler/x86/backend-parms.lisp index ba1fda3..16ea497 100644 --- a/src/compiler/x86/backend-parms.lisp +++ b/src/compiler/x86/backend-parms.lisp @@ -17,26 +17,23 @@ ;;;; compiler constants -(setf *backend-fasl-file-type* "x86f") -(setf *backend-fasl-file-implementation* :x86) -(setf *backend-fasl-file-version* 6) -;;; 2 = sbcl-0.6.4 uses COMPILE-OR-LOAD-DEFGENERIC. -;;; 3 = sbcl-0.6.6 uses private symbol, not :EMPTY, for empty HASH-TABLE slot. -;;; 4 = sbcl-0.6.7 uses HAIRY-DATA-VECTOR-REF and HAIRY-DATA-VECTOR-SET -;;; when array headers or data element type uncertainty exist, and -;;; uses DATA-VECTOR-REF and DATA-VECTOR-SET only for VOPs. (Thus, -;;; full calls to DATA-VECTOR-REF and DATA-VECTOR-SET from older -;;; fasl files would fail, because there are no DEFUNs for these -;;; operations any more.) -;;; 5 = sbcl-0.6.8 has rearranged static symbols. -;;; 6 = sbcl-0.6.9, got rid of non-ANSI %DEFCONSTANT/%%DEFCONSTANT stuff -;;; and deleted a slot from DEBUG-SOURCE structure. +(def!constant +backend-fasl-file-implementation+ :x86) (setf *backend-register-save-penalty* 3) (setf *backend-byte-order* :little-endian) -(setf *backend-page-size* 4096) +;;; KLUDGE: It would seem natural to set this by asking our C runtime +;;; code for it, but mostly we need it for GENESIS, which doesn't in +;;; general have our C runtime code running to ask, so instead we set +;;; it by hand. -- WHN 2001-04-15 +;;; +;;; Actually any information that we can retrieve C-side would be +;;; useless in SBCL, since it's possible for otherwise binary +;;; compatible systems to return different values for getpagesize(). +;;; -- JES, 2007-01-06 +(eval-when (:compile-toplevel :load-toplevel :execute) + (setf *backend-page-bytes* 4096)) ;;; comment from CMU CL: ;;; ;;; in case we ever wanted to do this for Windows NT.. @@ -46,4 +43,17 @@ ;;; page size is 512, but that doesn't do us a whole lot of good. ;;; Effectively, the page size is 64K. ;;; -;;; would be: (setf *backend-page-size* 65536) +;;; would be: (setf *backend-page-bytes* 65536) + +;;; 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*)