Optimize special variable binding on sb-thread.
[sbcl.git] / src / compiler / generic / objdef.lisp
index c242a4d..ad0b2c9 100644 (file)
 
 (define-primitive-object (binding)
   value
-  symbol)
+  symbol) ;; on sb-thread, this is actually a tls-index
 
 (define-primitive-object (unwind-block)
   (current-uwp :c-type #!-alpha "struct unwind_block *" #!+alpha "u32")
   (package :ref-trans symbol-package
            :set-trans %set-symbol-package
            :init :null)
-  #!+sb-thread (tls-index :ref-known (flushable) :ref-trans symbol-tls-index))
+  ;; 0 tls-index means no tls-index is allocated
+  #!+sb-thread
+  (tls-index :ref-known (flushable) :ref-trans symbol-tls-index))
 
 (define-primitive-object (complex-single-float
                           :lowtag other-pointer-lowtag