;;;; 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)
-(def!constant n-byte-bits 8
- #!+sb-doc
- "Number of bits per byte where a byte is the smallest addressable object.")
+;;; 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 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.")
-
-(def!constant n-fixnum-tag-bits (1- n-lowtag-bits)
- #!+sb-doc
- "Number of tag bits used for a fixnum")
-
-(def!constant fixnum-tag-mask (1- (ash 1 n-fixnum-tag-bits))
- #!+sb-doc
- "Mask to get the fixnum tag")
-
-(def!constant n-positive-fixnum-bits (- n-word-bits n-fixnum-tag-bits 1)
- #!+sb-doc
- "Maximum number of bits in a positive fixnum")
+;;; 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)
); 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))
-
\f
;;;; Description of the target address space.
'(length
two-arg-+ two-arg-- two-arg-* two-arg-/ two-arg-< two-arg-> two-arg-=
two-arg-<= two-arg->= two-arg-/= eql %negate
- two-arg-and two-arg-ior two-arg-xor
+ two-arg-and two-arg-ior two-arg-xor two-arg-eqv
two-arg-gcd two-arg-lcm
))
\f