diff --git a/code/foreign.lisp b/code/foreign.lisp index 9466112be2d4aad73e5000df6f7585146a2ce857..af6302229ed709c84d883aa108e3f8452f6fe907 100644 --- a/code/foreign.lisp +++ b/code/foreign.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/foreign.lisp,v 1.28 1998/05/01 01:21:37 dtc Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/foreign.lisp,v 1.29 1998/08/30 04:56:49 dtc Exp $") ;;; ;;; ********************************************************************** ;;; @@ -25,10 +25,10 @@ #+hppa (defconstant foreign-segment-start #x10C00000) #+hppa (defconstant foreign-segment-size #x00400000) -#+(and (not linux) x86) - (defconstant foreign-segment-start #x7000000) ; just an unused space -#+(and (not linux) x86) - (defconstant foreign-segment-size #x00400000) +#+(and freebsd x86) +(defconstant foreign-segment-start #x0E000000) +#+(and freebsd x86) +(defconstant foreign-segment-size #x02000000) (defvar *previous-linked-object-file* nil) #-(or linux irix) diff --git a/compiler/x86/parms.lisp b/compiler/x86/parms.lisp index 4a6bb0e0e29de9c3a4ea74a87b6764451097a72f..f87d55e8b83c8f5e144e0f5e2c5eb4d06d722462 100644 --- a/compiler/x86/parms.lisp +++ b/compiler/x86/parms.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/parms.lisp,v 1.11 1998/06/07 17:56:16 dtc Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/parms.lisp,v 1.12 1998/08/30 04:56:50 dtc Exp $") ;;; ;;; ********************************************************************** ;;; @@ -173,14 +173,14 @@ ;;; Where to put the different spaces. ;;; -(defparameter target-read-only-space-start #x01000000) -(defparameter target-static-space-start #x05000000) -(defparameter target-dynamic-space-start #x09000000) +(defparameter target-read-only-space-start #x10000000) +(defparameter target-static-space-start #x28000000) +(defparameter target-dynamic-space-start #x48000000) ;;; Given that NIL is the first things allocated in static space, we ;;; know its value at compile time: ;;; -(defparameter nil-value #x0500000B) +(defparameter nil-value #x2800000B) ;;;; Other random constants. diff --git a/lisp/x86-validate.h b/lisp/x86-validate.h index a10bd04aa7e855bbcb735d4efc7633b15ec5b3b0..d58fa74af421b7cc7e58d0a426515bb9a0f08519 100644 --- a/lisp/x86-validate.h +++ b/lisp/x86-validate.h @@ -1,42 +1,70 @@ /* + * + * This code was written as part of the CMU Common Lisp project at + * Carnegie Mellon University, and has been placed in the public domain. + * + * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/x86-validate.h,v 1.7 1998/08/30 04:56:49 dtc Exp $ + * + */ - This code was written as part of the CMU Common Lisp project at - Carnegie Mellon University, and has been placed in the public domain. +/* + * Address map: + * + * FreeBSD: + * 0x00000000->0x0E000000 224M C program and memory allocation. + * 0x0E000000->0x10000000 32M Foreign segment. + * 0x10000000->0x20000000 256M Read-Only Space. + * 0x20000000->0x28000000 128M Reserved for shared libraries. + * 0x28000000->0x38000000 256M Static Space. + * 0x38000000->0x40000000 128M Binding stack growing up. + * 0x40000000->0x48000000 128M Control stack growing down. + * 0x48000000->0xC8000000 2GB Dynamic Space. + * 0xE0000000-> 256M C stack - Alien stack. + * Linux: + * 0x00000000->0x08000000 128M Unused. + * 0x08000000->0x10000000 128M C program and memory allocation. + * 0x10000000->0x20000000 256M Read-Only Space. + * 0x20000000->0x28000000 128M Binding stack growing up. + * 0x28000000->0x38000000 256M Static Space. + * 0x38000000->0x40000000 128M Control stack growing down. + * 0x40000000->0x48000000 128M Reserved for shared libraries. + * 0x48000000->0xB8000000 1.75G Dynamic Space. + * + */ - $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/x86-validate.h,v 1.6 1998/05/27 03:20:22 dtc Exp $ -*/ +#define READ_ONLY_SPACE_START (0x10000000) +#define READ_ONLY_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */ +#define STATIC_SPACE_START (0x28000000) +#define STATIC_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */ -#define READ_ONLY_SPACE_START (0x01000000) -#ifdef GENCGC -#define READ_ONLY_SPACE_SIZE (0x02800000) /* 40MB */ -#else -#define READ_ONLY_SPACE_SIZE (0x01800000) /* 24MB */ +#ifdef __FreeBSD__ +#define BINDING_STACK_START (0x38000000) +#define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */ +#define CONTROL_STACK_START (0x40000000) +#define CONTROL_STACK_SIZE (0x08000000) /* 128MB */ #endif -#define STATIC_SPACE_START (0x05000000) -#ifdef GENCGC -#define STATIC_SPACE_SIZE (0x00fff000) /* 16MB - 1 page */ -#else -#define STATIC_SPACE_SIZE (0x02fff000) /* 48MB - 1 page */ +#ifdef __linux__ +#define BINDING_STACK_START (0x20000000) +#define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */ +#define CONTROL_STACK_START (0x30001000) +#define CONTROL_STACK_SIZE (0x07fff000) /* 128MB - 1 page */ #endif +#define CONTROL_STACK_END (CONTROL_STACK_START + CONTROL_STACK_SIZE) + /* Note that GENCGC only uses dynamic_space 0. */ -#define DYNAMIC_0_SPACE_START (0x09000000) +#define DYNAMIC_0_SPACE_START (0x48000000) #ifdef GENCGC -#define DYNAMIC_1_SPACE_START (0x29000000) -#define DYNAMIC_SPACE_SIZE (0x20000000) /* 512MB */ +#ifdef __FreeBSD__ +#define DYNAMIC_SPACE_SIZE (0x40000000) /* May be up to 2GB */ +#endif +#ifdef __linux__ +#define DYNAMIC_SPACE_SIZE (0x40000000) /* May be up to 1.75GB */ +#endif #else -#define DYNAMIC_1_SPACE_START (0x0d000000) #define DYNAMIC_SPACE_SIZE (0x04000000) /* 64MB */ #endif -/* Note that i386 has the control stack growing from high to low - * addresses, as opposed to the control stack used on the other RISC - * systems for which the stack grows the other way. */ -#define CONTROL_STACK_START (0x50000000) -#define CONTROL_STACK_SIZE (0x00100000) -#define CONTROL_STACK_END (CONTROL_STACK_START + CONTROL_STACK_SIZE) - -#define BINDING_STACK_START (0x60000000) -#define BINDING_STACK_SIZE (0x00100000) +#define DYNAMIC_1_SPACE_START (DYNAMIC_0_SPACE_START + DYNAMIC_SPACE_SIZE)