From 0db1152b3cfd90292f22018af7a28228a498fc89 Mon Sep 17 00:00:00 2001 From: dtc <dtc> Date: Thu, 26 Nov 1998 11:46:46 +0000 Subject: [PATCH] Setup the space-free pointers after the x86 FP constants have been allocated, otherwise the constants may be overwritten when lisp starts. --- compiler/generic/new-genesis.lisp | 49 ++++++++++++++++--------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/compiler/generic/new-genesis.lisp b/compiler/generic/new-genesis.lisp index b7a5af451..a15fd7bd8 100644 --- a/compiler/generic/new-genesis.lisp +++ b/compiler/generic/new-genesis.lisp @@ -4,7 +4,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/new-genesis.lisp,v 1.36 1998/07/24 17:22:31 dtc Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/new-genesis.lisp,v 1.37 1998/11/26 11:46:46 dtc Exp $") ;;; ;;; ********************************************************************** ;;; @@ -754,6 +754,29 @@ (frob *lisp-initialization-functions* *current-init-functions-cons*) + (when (c:backend-featurep :x86) + (macrolet ((frob (name pkg value) + `(cold-setq (cold-intern (intern ,name ,pkg)) ,value))) + (frob "*FP-CONSTANT-0D0*" "X86" (number-to-core 0d0)) + (frob "*FP-CONSTANT-1D0*" "X86" (number-to-core 1d0)) + (frob "*FP-CONSTANT-0S0*" "X86" (number-to-core 0s0)) + (frob "*FP-CONSTANT-1S0*" "X86" (number-to-core 1s0)) + #+long-float + (when (c:backend-featurep :long-float) + (frob "*FP-CONSTANT-0L0*" "X86" (number-to-core 0l0)) + (frob "*FP-CONSTANT-1L0*" "X86" (number-to-core 1l0)) + (frob "*FP-CONSTANT-PI*" "X86" (number-to-core pi)) + (frob "*FP-CONSTANT-L2T*" "X86" (number-to-core (log 10l0 2l0))) + (frob "*FP-CONSTANT-L2E*" "X86" + (number-to-core + (log 2.718281828459045235360287471352662L0 2l0))) + (frob "*FP-CONSTANT-LG2*" "X86" (number-to-core (log 2l0 10l0))) + (frob "*FP-CONSTANT-LN2*" "X86" + (number-to-core + (log 2l0 2.718281828459045235360287471352662L0)))) + (when (c:backend-featurep :gencgc) + (frob "*SCAVENGE-READ-ONLY-SPACE*" "X86" (cold-intern nil))))) + ;; Nothing should be allocated after this. ;; (frob *read-only-space-free-pointer* @@ -761,29 +784,7 @@ (frob *static-space-free-pointer* (allocate-descriptor *static* 0 vm:even-fixnum-type)) (frob *initial-dynamic-space-free-pointer* - (allocate-descriptor *dynamic* 0 vm:even-fixnum-type))) - - (when (c:backend-featurep :x86) - (macrolet ((frob (name pkg value) - `(cold-setq (cold-intern (intern ,name ,pkg)) ,value))) - (frob "*FP-CONSTANT-0D0*" "X86" (number-to-core 0d0)) - (frob "*FP-CONSTANT-1D0*" "X86" (number-to-core 1d0)) - (frob "*FP-CONSTANT-0S0*" "X86" (number-to-core 0s0)) - (frob "*FP-CONSTANT-1S0*" "X86" (number-to-core 1s0)) - #+long-float - (when (c:backend-featurep :long-float) - (frob "*FP-CONSTANT-0L0*" "X86" (number-to-core 0l0)) - (frob "*FP-CONSTANT-1L0*" "X86" (number-to-core 1l0)) - (frob "*FP-CONSTANT-PI*" "X86" (number-to-core pi)) - (frob "*FP-CONSTANT-L2T*" "X86" (number-to-core (log 10l0 2l0))) - (frob "*FP-CONSTANT-L2E*" "X86" - (number-to-core (log 2.718281828459045235360287471352662L0 2l0))) - (frob "*FP-CONSTANT-LG2*" "X86" (number-to-core (log 2l0 10l0))) - (frob "*FP-CONSTANT-LN2*" "X86" - (number-to-core - (log 2l0 2.718281828459045235360287471352662L0)))) - (when (c:backend-featurep :gencgc) - (frob "*SCAVENGE-READ-ONLY-SPACE*" "X86" (cold-intern nil)))))) + (allocate-descriptor *dynamic* 0 vm:even-fixnum-type)))) ;;; Make-Make-Package-Args -- Internal ;;; -- GitLab