Conversion of a fixnum to an address must be a logical right shift,
authorChris Hanson <org/chris-hanson/cph>
Fri, 4 Nov 1988 10:23:30 +0000 (10:23 +0000)
committerChris Hanson <org/chris-hanson/cph>
Fri, 4 Nov 1988 10:23:30 +0000 (10:23 +0000)
not an arithmetic right shift.  This is because an address is an
unsigned quantity; thus a fixnum representing an address must also be
treated as unsigned.

v7/src/compiler/machines/bobcat/lapgen.scm

index 533bb2dd86c3b0a78d8cbb4a6bf971f2c5a2a6b1..cc738ff5771a0b2fbaeff4f4fc75fa0bf2f13170 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/lapgen.scm,v 4.15 1988/11/03 07:16:11 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/lapgen.scm,v 4.16 1988/11/04 10:23:30 cph Exp $
 
 Copyright (c) 1988 Massachusetts Institute of Technology
 
@@ -346,7 +346,7 @@ MIT in each case. |#
 
 (define-integrable (fixnum->address reg-ref)
   (LAP
-   (AS R L (& 8) ,reg-ref)))
+   (LS R L (& 8) ,reg-ref)))
 
 (define (test-fixnum effective-address)
   (if (effective-address/data&alterable? effective-address)