1.0.4.58: fix lisp object start address calculations in x86-64
authorCyrus Harmon <ch-sbcl@bobobeach.com>
Tue, 10 Apr 2007 21:43:44 +0000 (21:43 +0000)
committerCyrus Harmon <ch-sbcl@bobobeach.com>
Tue, 10 Apr 2007 21:43:44 +0000 (21:43 +0000)
  * use logandc2 obj sb!vm:lowtag-mask instead of logand obj
    #xfffffffffffffff8 (which should have been #xfffffffffffffff0)
    to compute obj-start-addr.

src/code/x86-64-vm.lisp
version.lisp-expr

index 2d4e434..a5a025b 100644 (file)
     (sb!sys:without-gcing
      (let* ((sap (truly-the system-area-pointer
                             (sb!kernel:code-instructions code)))
-            (obj-start-addr (logand (sb!kernel:get-lisp-obj-address code)
-                                    #xfffffffffffffff8))
+            (obj-start-addr (logandc2 (sb!kernel:get-lisp-obj-address code)
+                                      sb!vm:lowtag-mask))
             (code-start-addr (sb!sys:sap-int (sb!kernel:code-instructions
                                               code)))
             (ncode-words (sb!kernel:code-header-ref code 1))
     (let* ((sap (truly-the system-area-pointer
                            (sb!kernel:code-instructions code)))
            (obj-start-addr
-            ;; FIXME: looks like (LOGANDC2 foo typebits)
-            (logand (sb!kernel:get-lisp-obj-address code) #xfffffffffffffff8))
+            (logandc2 (sb!kernel:get-lisp-obj-address code) sb!vm:lowtag-mask))
            (code-start-addr (sb!sys:sap-int (sb!kernel:code-instructions
                                              code)))
            (ncode-words (sb!kernel:code-header-ref code 1))
index 50e8753..5eac1b3 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.4.57"
+"1.0.4.58"