From: Daniel B. <da...@us...> - 2002-08-06 11:46:36
|
Update of /cvsroot/sbcl/sbcl/src/compiler/x86 In directory usw-pr-cvs1:/tmp/cvs-serv3787/src/compiler/x86 Modified Files: cell.lisp Log Message: 0.7.6.12: merge gc-cleanup-branch Index: cell.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/x86/cell.lisp,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- cell.lisp 7 Mar 2002 02:02:24 -0000 1.9 +++ cell.lisp 6 Aug 2002 11:46:32 -0000 1.10 @@ -116,13 +116,8 @@ (:generator 2 ;; The symbol-hash slot of NIL holds NIL because it is also the ;; cdr slot, so we have to strip off the two low bits to make sure - ;; it is a fixnum. - ;; - ;; FIXME: Is this still true? It seems to me from my reading of - ;; the DEFINE-PRIMITIVE-OBJECT in objdef.lisp that the symbol-hash - ;; is the second slot, and offset 0 = tags and stuff (and CAR slot in - ;; a CONS), offset 1 = value slot (and CDR slot in a CONS), and - ;; offset 2 = hash slot. + ;; it is a fixnum. The lowtag selection magic that is required to + ;; ensure this is explained in the comment in objdef.lisp (loadw res symbol symbol-hash-slot other-pointer-lowtag) (inst and res (lognot #b11)))) |