From: Cyrus Harmon Date: Tue, 10 Apr 2007 21:43:44 +0000 (+0000) Subject: 1.0.4.58: fix lisp object start address calculations in x86-64 X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=8c7a54e01f3a3047a8d258cb7539b0c4a7a30a46;p=sbcl.git 1.0.4.58: fix lisp object start address calculations in x86-64 * use logandc2 obj sb!vm:lowtag-mask instead of logand obj #xfffffffffffffff8 (which should have been #xfffffffffffffff0) to compute obj-start-addr. --- diff --git a/src/code/x86-64-vm.lisp b/src/code/x86-64-vm.lisp index 2d4e434..a5a025b 100644 --- a/src/code/x86-64-vm.lisp +++ b/src/code/x86-64-vm.lisp @@ -107,8 +107,8 @@ (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)) @@ -175,8 +175,7 @@ (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)) diff --git a/version.lisp-expr b/version.lisp-expr index 50e8753..5eac1b3 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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"