X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fsparc%2Fparms.lisp;h=63576d7001687e6d7dfcff4f15b0214a38cadd06;hb=75b52379bdc2269961af6a1308eca63610f38ac3;hp=4e4461e18c00246dadaf68d4abb74ad2b5145946;hpb=4af254de85367806d14ccafc4dfbe79a235b926d;p=sbcl.git diff --git a/src/compiler/sparc/parms.lisp b/src/compiler/sparc/parms.lisp index 4e4461e..63576d7 100644 --- a/src/compiler/sparc/parms.lisp +++ b/src/compiler/sparc/parms.lisp @@ -12,25 +12,15 @@ ;;;; Machine Architecture parameters: (eval-when (:compile-toplevel :load-toplevel :execute) -(def!constant n-word-bits 32 - #!+sb-doc - "Number of bits per word where a word holds one lisp descriptor.") +;;; number of bits per word where a word holds one lisp descriptor +(def!constant n-word-bits 32) ;;; the natural width of a machine word (as seen in e.g. register width, ;;; address space) (def!constant n-machine-word-bits 32) -(def!constant n-byte-bits 8 - #!+sb-doc - "Number of bits per byte where a byte is the smallest addressable object.") - -(def!constant word-shift (1- (integer-length (/ n-word-bits n-byte-bits))) - #!+sb-doc - "Number of bits to shift between word addresses and byte addresses.") - -(def!constant n-word-bytes (/ n-word-bits n-byte-bits) - #!+sb-doc - "Number of bytes in a word.") +;;; number of bits per byte where a byte is the smallest addressable object +(def!constant n-byte-bits 8) (def!constant float-sign-shift 31) @@ -96,26 +86,20 @@ ); eval-when -;;; NUMBER-STACK-DISPLACEMENT -;;; -;;; The number of bytes reserved above the number stack pointer. These -;;; slots are required by architecture for a place to spill register windows. -;;; -;;; FIXME: Where is this used? -(def!constant number-stack-displacement - (* 16 n-word-bytes)) - ;;;; Description of the target address space. ;;; Where to put the different spaces. Must match the C code! #!+linux (progn - (def!constant read-only-space-start #x10000000) - (def!constant read-only-space-end #x15000000) + (def!constant linkage-table-space-start #x0f800000) + (def!constant linkage-table-space-end #x10000000) + + (def!constant read-only-space-start #x10000000) + (def!constant read-only-space-end #x15000000) - (def!constant static-space-start #x28000000) - (def!constant static-space-end #x2c000000) + (def!constant static-space-start #x28000000) + (def!constant static-space-end #x2c000000) ;; From alpha/parms.lisp: ;; this is used in PURIFY as part of a sloppy check to see if a pointer @@ -124,28 +108,35 @@ (def!constant dynamic-space-start #x30000000) (def!constant dynamic-space-end #x38000000) - (def!constant dynamic-0-space-start #x30000000) - (def!constant dynamic-0-space-end #x38000000) + (def!constant dynamic-0-space-start #x30000000) + (def!constant dynamic-0-space-end #x38000000) - (def!constant dynamic-1-space-start #x40000000) - (def!constant dynamic-1-space-end #x48000000)) + (def!constant dynamic-1-space-start #x40000000) + (def!constant dynamic-1-space-end #x48000000)) #!+sunos ; might as well start by trying the same numbers (progn - (def!constant read-only-space-start #x10000000) - (def!constant read-only-space-end #x15000000) + (def!constant linkage-table-space-start #x0f800000) + (def!constant linkage-table-space-end #x10000000) + + (def!constant read-only-space-start #x10000000) + (def!constant read-only-space-end #x15000000) - (def!constant static-space-start #x28000000) - (def!constant static-space-end #x2c000000) + (def!constant static-space-start #x28000000) + (def!constant static-space-end #x2c000000) - (def!constant dynamic-space-start #x30000000) - (def!constant dynamic-space-end #x38000000) + (def!constant dynamic-space-start #x30000000) + (def!constant dynamic-space-end #x38000000) - (def!constant dynamic-0-space-start #x30000000) - (def!constant dynamic-0-space-end #x38000000) + (def!constant dynamic-0-space-start #x30000000) + (def!constant dynamic-0-space-end #x38000000) - (def!constant dynamic-1-space-start #x40000000) - (def!constant dynamic-1-space-end #x48000000)) + (def!constant dynamic-1-space-start #x40000000) + (def!constant dynamic-1-space-end #x48000000)) + +;; Size of one linkage-table entry in bytes. See comment in +;; src/runtime/sparc-arch.c +(def!constant linkage-table-entry-size 16) ;;;; other random constants.