0.7.10.32:
[sbcl.git] / src / compiler / x86 / cell.lisp
index 690d585..c3cfb86 100644 (file)
   (: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))))
 \f
   (:generator 10
     (loadw value object fdefn-fun-slot other-pointer-lowtag)
     (inst cmp value nil-value)
-    ;; FIXME: UNDEFINED-SYMBOL-ERROR seems to actually be for symbols with no
-    ;; function value, not, as the name might suggest, symbols with no ordinary
-    ;; value. Perhaps the name could be made more mnemonic?
-    (let ((err-lab (generate-error-code vop undefined-symbol-error object)))
+    (let ((err-lab (generate-error-code vop undefined-fun-error object)))
       (inst jmp :e err-lab))))
 
 (define-vop (set-fdefn-fun)