057a09cd65ccfaa605676e10ab3d5c2a782316c0
[sbcl.git] / src / compiler / x86 / backend-parms.lisp
1 ;;;; that part of the parms.lisp file from original CMU CL which is defined in
2 ;;;; terms of the BACKEND structure
3 ;;;;
4 ;;;; FIXME: When we break up the BACKEND structure, this might be mergeable
5 ;;;; back into the parms.lisp file.
6
7 ;;;; This software is part of the SBCL system. See the README file for
8 ;;;; more information.
9 ;;;;
10 ;;;; This software is derived from the CMU CL system, which was
11 ;;;; written at Carnegie Mellon University and released into the
12 ;;;; public domain. The software is in the public domain and is
13 ;;;; provided with absolutely no warranty. See the COPYING and CREDITS
14 ;;;; files for more information.
15
16 (in-package "SB!VM")
17 \f
18 ;;;; compiler constants
19
20 (setf *backend-fasl-file-type* "x86f")
21 (setf *backend-fasl-file-implementation* :x86)
22
23 (setf *backend-fasl-file-version* 11)
24 ;;; 2 = sbcl-0.6.4 uses COMPILE-OR-LOAD-DEFGENERIC.
25 ;;; 3 = sbcl-0.6.6 uses private symbol, not :EMPTY, for empty HASH-TABLE slot.
26 ;;; 4 = sbcl-0.6.7 uses HAIRY-DATA-VECTOR-REF and HAIRY-DATA-VECTOR-SET
27 ;;;     when array headers or data element type uncertainty exist, and
28 ;;;     uses DATA-VECTOR-REF and DATA-VECTOR-SET only for VOPs. (Thus,
29 ;;;     full calls to DATA-VECTOR-REF and DATA-VECTOR-SET from older
30 ;;;     fasl files would fail, because there are no DEFUNs for these
31 ;;;     operations any more.)
32 ;;; 5 = sbcl-0.6.8 has rearranged static symbols.
33 ;;; 6 = sbcl-0.6.9, got rid of non-ANSI %DEFCONSTANT/%%DEFCONSTANT stuff
34 ;;;     and deleted a slot from DEBUG-SOURCE structure.
35 ;;; 7 = around sbcl-0.6.9.8, merged SB-CONDITIONS package into SB-KERNEL
36 ;;; 8 = sbcl-0.6.10.4 revived Gray stream support, changing stream layouts.
37 ;;; 9 = deleted obsolete CONS-UNIQUE-TAG bytecode in sbcl-0.6.11.8
38 ;;; (somewhere in here also changes to AND and OR CTYPE layouts) 
39 ;;; 10 = new layout for CONDITION in sbcl-0.6.11.38
40 ;;; 11 = (a) new helper functions for MAKE-LOAD-FORM (HASH-TABLE) in
41 ;;;      sbcl-0.6.12.11
42 ;;;      (b) new address space constants for OpenBSD in 0.6.12.17,
43 ;;;          doesn't need separate version from (a) because the OpenBSD
44 ;;;          port was broken from sometime before 0.6.12.11 until
45 ;;;          the address space was changed
46
47 (setf *backend-register-save-penalty* 3)
48
49 (setf *backend-byte-order* :little-endian)
50
51 ;;; KLUDGE: It would seem natural to set this by asking our C runtime
52 ;;; code for it, but mostly we need it for GENESIS, which doesn't in
53 ;;; general have our C runtime code running to ask, so instead we set
54 ;;; it by hand. -- WHN 2001-04-15
55 (setf *backend-page-size* 4096)
56 ;;; comment from CMU CL:
57 ;;;
58 ;;;   in case we ever wanted to do this for Windows NT..
59 ;;;
60 ;;;   Windows NT uses a memory system granularity of 64K, which means
61 ;;;   everything that gets mapped must be a multiple of that. The real
62 ;;;   page size is 512, but that doesn't do us a whole lot of good.
63 ;;;   Effectively, the page size is 64K.
64 ;;;
65 ;;;   would be: (setf *backend-page-size* 65536)