From 6784e7940071ff72b790cb24141ad56e3c5b3084 Mon Sep 17 00:00:00 2001 From: dtc <dtc> Date: Thu, 17 Sep 1998 10:54:24 +0000 Subject: [PATCH] Back-out the address map changes for Linux. Only FreeBSD now uses a new address space. --- compiler/x86/parms.lisp | 14 ++++++++----- lisp/x86-validate.h | 45 ++++++++++++++++++++++++++--------------- 2 files changed, 38 insertions(+), 21 deletions(-) diff --git a/compiler/x86/parms.lisp b/compiler/x86/parms.lisp index f87d55e8b..cb7a19138 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.12 1998/08/30 04:56:50 dtc Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/parms.lisp,v 1.13 1998/09/17 10:54:24 dtc Exp $") ;;; ;;; ********************************************************************** ;;; @@ -173,14 +173,18 @@ ;;; Where to put the different spaces. ;;; -(defparameter target-read-only-space-start #x10000000) -(defparameter target-static-space-start #x28000000) -(defparameter target-dynamic-space-start #x48000000) +#-linux (defparameter target-read-only-space-start #x10000000) +#-linux (defparameter target-static-space-start #x28000000) +#-linux (defparameter target-dynamic-space-start #x48000000) +#+linux (defparameter target-read-only-space-start #x01000000) +#+linux (defparameter target-static-space-start #x05000000) +#+linux (defparameter target-dynamic-space-start #x09000000) ;;; Given that NIL is the first things allocated in static space, we ;;; know its value at compile time: ;;; -(defparameter nil-value #x2800000B) +#-linux (defparameter nil-value #x2800000B) +#+linux (defparameter nil-value #x0500000B) ;;;; Other random constants. diff --git a/lisp/x86-validate.h b/lisp/x86-validate.h index 7266a0188..7acc502d6 100644 --- a/lisp/x86-validate.h +++ b/lisp/x86-validate.h @@ -3,7 +3,7 @@ * 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.8 1998/09/01 13:00:44 dtc Exp $ + * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/x86-validate.h,v 1.9 1998/09/17 10:54:23 dtc Exp $ * */ @@ -20,7 +20,9 @@ * 0x40000000->0x48000000 128M Control stack growing down. * 0x48000000->0xC8000000 2GB Dynamic Space. * 0xE0000000-> 256M C stack - Alien stack. - * Linux: + * + * Linux: Note that this map has some problems and requires some further + * development so is not implemented below. * 0x00000000->0x08000000 128M Unused. * 0x08000000->0x10000000 128M C program and memory allocation. * 0x10000000->0x20000000 256M Read-Only Space. @@ -32,39 +34,50 @@ * */ +#ifdef __FreeBSD__ #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 */ -#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 */ + +#define DYNAMIC_0_SPACE_START (0x48000000) +#ifdef GENCGC +#define DYNAMIC_SPACE_SIZE (0x40000000) /* May be up to 2GB */ +#else +#define DYNAMIC_SPACE_SIZE (0x04000000) /* 64MB */ #endif +#endif + #ifdef __linux__ -#define BINDING_STACK_START (0x20000000) +#define READ_ONLY_SPACE_START (0x01000000) +#define READ_ONLY_SPACE_SIZE (0x02800000) /* 40MB */ + +#define STATIC_SPACE_START (0x05000000) +#define STATIC_SPACE_SIZE (0x02fff000) /* 48MB - 1 page */ + +#define BINDING_STACK_START (0x60000000) #define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */ -#define CONTROL_STACK_START (0x38001000) -#define CONTROL_STACK_SIZE (0x07fff000) /* 128MB - 1 page */ -#endif -#define CONTROL_STACK_END (CONTROL_STACK_START + CONTROL_STACK_SIZE) +#define CONTROL_STACK_START (0x50000000) +#define CONTROL_STACK_SIZE (0x07fff000) /* 128MB - 1 page */ -/* Note that GENCGC only uses dynamic_space 0. */ -#define DYNAMIC_0_SPACE_START (0x48000000) +#define DYNAMIC_0_SPACE_START (0x09000000) #ifdef GENCGC -#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 +#define DYNAMIC_SPACE_SIZE (0x20000000) /* 512MB */ #else #define DYNAMIC_SPACE_SIZE (0x04000000) /* 64MB */ #endif +#endif +#define CONTROL_STACK_END (CONTROL_STACK_START + CONTROL_STACK_SIZE) + +/* Note that GENCGC only uses dynamic_space 0. */ #define DYNAMIC_1_SPACE_START (DYNAMIC_0_SPACE_START + DYNAMIC_SPACE_SIZE) -- GitLab