#!+sb-doc
"Number of bits per word where a word holds one lisp descriptor.")
+;;; the natural width of a machine word (as seen in e.g. register width,
+;;; address space)
+(def!constant n-machine-word-bits 64)
+
(def!constant n-byte-bits 8
#!+sb-doc
"Number of bits per byte where a byte is the smallest addressable object.")
#!+linux
(progn
(def!constant read-only-space-start #x20000000)
- (def!constant read-only-space-end #x24000000)
+ (def!constant read-only-space-end #x24000000))
- (def!constant static-space-start #x28000000)
- (def!constant static-space-end #x2c000000)
+#!+osf1
+(progn
+ (defconstant read-only-space-start #x10000000)
+ (defconstant read-only-space-end #x25000000))
- ;; this is used in PURIFY as part of a sloppy check to see if a pointer
- ;; is in dynamic space. Chocolate brownie for the first person to fix it
- ;; -dan 20010502
- (def!constant dynamic-space-start #x30000000)
- (def!constant dynamic-space-end #x3fff0000)
- (def!constant dynamic-0-space-start #x30000000)
- (def!constant dynamic-0-space-end #x3fff0000)
-
- (def!constant dynamic-1-space-start #x40000000)
- (def!constant dynamic-1-space-end #x4fff0000)
+(def!constant static-space-start #x28000000)
+(def!constant static-space-end #x2c000000)
- (def!constant control-stack-start #x50000000)
- (def!constant control-stack-end #x51000000)
+;; this is used in PURIFY as part of a sloppy check to see if a pointer
+;; is in dynamic space. Chocolate brownie for the first person to fix it
+;; -dan 20010502
+(def!constant dynamic-space-start #x30000000)
+(def!constant dynamic-space-end #x3fff0000)
- (def!constant binding-stack-start #x70000000)
- (def!constant binding-stack-end #x71000000))
-
-#!+osf1 ;as if
-(progn
- (defparameter read-only-space-start #x10000000)
- (defparameter static-space-start #x28000000)
- (defparameter dynamic-space-start #x30000000))
+(def!constant dynamic-0-space-start #x30000000)
+(def!constant dynamic-0-space-end #x3fff0000)
+(def!constant dynamic-1-space-start #x40000000)
+(def!constant dynamic-1-space-end #x4fff0000)
;;; FIXME nothing refers to either of these in alpha or x86 cmucl
;;; backend, so they could probably be removed.
;; The C startup code must fill these in.
*posix-argv*
- ;;lisp::lisp-environment-list
- ;;lisp::lisp-command-line-list
- sb!impl::*!initial-fdefn-objects*
- ;; Functions that the C code needs to call
- maybe-gc
+ ;; functions that the C code needs to call
+ sub-gc
sb!kernel::internal-error
+ sb!kernel::control-stack-exhausted-error
sb!di::handle-breakpoint
sb!di::handle-fun-end-breakpoint
- ;; free Pointers
+ ;; free pointers
*read-only-space-free-pointer*
*static-space-free-pointer*
*initial-dynamic-space-free-pointer*
*current-catch-block*
*current-unwind-protect-block*
+ *binding-stack-start*
+ *control-stack-start*
+ *control-stack-end*
+
;; interrupt handling
*free-interrupt-context-index*
sb!unix::*interrupts-enabled*
sb!kernel:two-arg-and
sb!kernel:two-arg-ior
sb!kernel:two-arg-xor
+ sb!kernel:two-arg-eqv
sb!kernel:two-arg-gcd
sb!kernel:two-arg-lcm))