X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86%2Fcell.lisp;h=c3cfb86ab9de748449ebfa175f9f372e2a4ad410;hb=77ab3779bb218e5c3080304fddefb3956b209547;hp=f34e9ac297fc1acd7bd97b63044a883aa7b260b9;hpb=b05ccdd91520249de6b465e226d3708089e541dc;p=sbcl.git diff --git a/src/compiler/x86/cell.lisp b/src/compiler/x86/cell.lisp index f34e9ac..c3cfb86 100644 --- a/src/compiler/x86/cell.lisp +++ b/src/compiler/x86/cell.lisp @@ -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))))