From: Juho S. <js...@us...> - 2005-03-29 03:16:04
|
Update of /cvsroot/sbcl/sbcl/src/code In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2067/src/code Modified Files: bit-bash.lisp debug-int.lisp Log Message: 0.8.21.6: Fix some x86-64 issues: * DOUBLE-FLOAT-{HIGH,LOW}-BITS on doubles stored on the stack had a off-by-one error on x86-64. (Discovered using Paul Dietz' random type propagation tester). * Fix a thinko in the pointer detection code of MAKE-VALID-LISP-OBJ. This was causing creation of invalid lispobjs under some rare circumstances, followed by failing GC assertions. (Discovered using Paul Dietz' random type propagation tester). * The disassembly done by the compiler if *COMPILER-TRACE-OUTPUT* is set was erroring out on x86-64 RIP addressing. Add a workaround. * Add missing case to !DEFINE-BYTE-BASHERS for a bitsize of 64. Index: bit-bash.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/code/bit-bash.lisp,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- bit-bash.lisp 28 Mar 2005 18:55:24 -0000 1.18 +++ bit-bash.lisp 29 Mar 2005 03:15:52 -0000 1.19 @@ -144,7 +144,8 @@ (4 0) (8 0) (16 0) - (32 0)))) + (32 0) + (64 0)))) (offset `(integer 0 ,max-bytes)) (max-word-offset (ceiling max-bytes bytes-per-word)) (word-offset `(integer 0 ,max-word-offset)) Index: debug-int.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/code/debug-int.lisp,v retrieving revision 1.90 retrieving revision 1.91 diff -u -d -r1.90 -r1.91 --- debug-int.lisp 28 Mar 2005 18:55:31 -0000 1.90 +++ debug-int.lisp 29 Mar 2005 03:15:53 -0000 1.91 @@ -1999,7 +1999,7 @@ ;; unbound marker (= val sb!vm:unbound-marker-widetag) ;; pointer - (and (logand val 1) + (and (logbitp 0 val) ;; Check that the pointer is valid. XXX Could do a better ;; job. FIXME: e.g. by calling out to an is_valid_pointer ;; routine in the C runtime support code |