#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/spectrum/machin.scm,v 4.20 1990/01/25 16:27:42 jinx Exp $
-$MC68020-Header: machin.scm,v 4.20 90/01/18 22:43:44 GMT cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/spectrum/machin.scm,v 4.21 1990/04/02 15:29:23 jinx Exp $
+$MC68020-Header: machin.scm,v 4.21 90/04/01 22:28:28 GMT jinx Exp $
Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
(define-integrable scheme-object-width 32)
(define-integrable scheme-type-width 6) ;or 8
+;; NOTE: expt is not being constant-folded now.
+;; For the time being, some of the parameters below are
+;; pre-computed and marked with ***
+;; There are similar parameters in lapgen.scm
+;; Change them if any of the parameters above do.
+
(define-integrable scheme-datum-width
(- scheme-object-width scheme-type-width))
(define-integrable type-scale-factor
- (expt 2 (- 8 scheme-type-width)))
+ ;; (expt 2 (- 8 scheme-type-width)) ***
+ 4)
(define-integrable flonum-size 2)
(define-integrable float-alignment 64)
;;; be integrable numbers of address units. Furthermore, the number
;;; of address units per object must be an integral multiple of the
;;; number of address units per character. This will cause problems
-;;; on a machine that is word addressed, in which case we will have to
-;;; rethink the character addressing strategy.
+;;; on a machine that is word addressed: we will have to rethink the
+;;; character addressing strategy.
(define-integrable address-units-per-object
(quotient scheme-object-width addressing-granularity))
(define-integrable address-units-per-packed-char 1)
-(define-integrable signed-fixnum/upper-limit (expt 2 (-1+ scheme-datum-width)))
-(define-integrable signed-fixnum/lower-limit (- signed-fixnum/upper-limit))
-(define-integrable unsigned-fixnum/upper-limit (* 2 signed-fixnum/upper-limit))
+(define-integrable signed-fixnum/upper-limit
+ ;; (expt 2 (-1+ scheme-datum-width)) ***
+ 33554432)
+
+(define-integrable signed-fixnum/lower-limit
+ (- signed-fixnum/upper-limit))
+
+(define-integrable unsigned-fixnum/upper-limit
+ (* 2 signed-fixnum/upper-limit))
(define-integrable (stack->memory-offset offset) offset)
(define-integrable ic-block-first-parameter-offset 2)
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/spectrum/rulfix.scm,v 4.33 1990/03/24 13:22:42 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/spectrum/rulfix.scm,v 4.34 1990/04/02 15:30:02 jinx Exp $
$MC68020-Header: rules1.scm,v 4.32 90/01/18 22:43:54 GMT cph Exp $
Copyright (c) 1989, 1990 Massachusetts Institute of Technology
(load-immediate (* constant fixnum-1) target))
(define-integrable fixnum-1
- (expt 2 scheme-type-width))
+ ;; (expt 2 scheme-type-width) ***
+ 64)
\f
;;;; Arithmetic Operations