444e2aa274dddb507a1f540c1daa73e52e5d3e89
[projects/cmucl/cmucl.git] / src / lisp / ppc-validate.h
1 /*
2
3  $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/ppc-validate.h,v 1.9 2006/11/30 02:34:24 rtoy Rel $
4
5  This code was written as part of the CMU Common Lisp project at
6  Carnegie Mellon University, and has been placed in the public domain.
7
8 */
9
10 #ifndef _PPC_VALIDATE_H_
11 #define _PPC_VALIDATE_H_
12
13 #ifdef LINKAGE_TABLE
14 /*
15  * This space start better match the value of
16  * target-foreign-linkage-space-start defined in sparc/parms.lisp!
17  *
18  * See the notes there!
19  */
20
21 #ifdef LinkageSpaceStart
22 #define FOREIGN_LINKAGE_SPACE_START (LinkageSpaceStart)
23 #else
24 #define FOREIGN_LINKAGE_SPACE_START (0x17000000)
25 #endif
26 /*
27  * This allows for about 510K symbols (assuming each entry is 16 bytes
28  * long).  Hope that's enough!  Make sure this doesn't overlap the
29  * READ_ONLY_SPACE_START!
30  */
31 #define FOREIGN_LINKAGE_SPACE_SIZE  (0x00800000)        /* 8 MB */
32 #endif
33
34 /* 
35  * The read-only space must be in low memory because the BA
36  * instruction only has 26-bits to specify the address.  When this is
37  * fixed, the read-only space can be moved.  (The BA instruction is
38  * used to jump to assembly routines.)
39  */
40 #define READ_ONLY_SPACE_START   (0x04000000)
41 #define READ_ONLY_SPACE_SIZE    (0x07ff8000)    /* 128 MB, almost */
42
43 #define STATIC_SPACE_START      (0x10000000)
44 #define STATIC_SPACE_SIZE       (0x07ff8000)    /* 128 MB, almost */
45
46 #define CONTROL_STACK_START     (0x30000000)
47 #define CONTROL_STACK_SIZE      (0x07ff8000)    /* 128 MB, almost */
48 #define CONTROL_STACK_END       (CONTROL_STACK_START + control_stack_size)
49
50 #define BINDING_STACK_START     (0x38000000)
51 #define BINDING_STACK_SIZE      (0x07ff8000)    /* 128 MB, almost */
52
53 #if 0
54 #define DYNAMIC_0_SPACE_START   (0x40000000)
55 #define DYNAMIC_1_SPACE_START   (0x48000000)
56 #define DYNAMIC_SPACE_SIZE      (0x07fff000)
57
58 #define CONTROL_STACK_START     (0x57000000)
59 #define CONTROL_STACK_SIZE      (0x00ff0000)
60
61 #define BINDING_STACK_START     (0x56000000)
62 #define BINDING_STACK_SIZE      (0x00ff0000)
63 #endif
64
65 #define DEFAULT_DYNAMIC_SPACE_SIZE (0x10000000) /* 256 MB */
66 #define DYNAMIC_0_SPACE_START   (0x40000000)
67 /* This isn't used with GENCGC */
68 #define DYNAMIC_1_SPACE_START   (0x60000000)
69
70 /* The maximum dynamic space we can allocate */
71 #ifndef GENCGC
72 #define DYNAMIC_SPACE_SIZE      (0x1fff0000)    /* 512 MB, almost */
73 #else
74 /*
75  * For GENCGC, we can use both dynamic spaces (because they are
76  * contiguous) so we get double the heap size.
77  */
78 #define DYNAMIC_SPACE_SIZE      (0x3fff0000)    /* 1GB, almost */
79 #endif
80
81 #if 0
82 #define HOLES {0x04ff8000, 0x06ff8000, 0x0aff8000, 0x1fff8000}
83 #define HOLE_SIZE 0x2000
84 #endif
85
86 #endif /* _PPC_VALIDATE_H_ */