1.0.28.38: undefined warning and compilation unit summary tweaking
[sbcl.git] / src / assembly / x86-64 / alloc.lisp
index 68a8ce3..2c113b0 100644 (file)
@@ -94,8 +94,7 @@
                (emit-label get-tls-index-lock)
                (inst mov target 1)
                (zeroize rax-tn)
-               (inst lock)
-               (inst cmpxchg (make-ea-for-symbol-value *tls-index-lock*) target)
+               (inst cmpxchg (make-ea-for-symbol-value *tls-index-lock*) target :lock)
                (inst jmp :ne get-tls-index-lock)
                ;; The symbol is now in OTHER.
                (inst pop other)
                      (fixnumize 1))
                (storew target other symbol-tls-index-slot other-pointer-lowtag)
                (emit-label release-tls-index-lock)
+               ;; No need for barriers on x86/x86-64 on unlock.
                (store-symbol-value 0 *tls-index-lock*)
                ;; Restore OTHER.
                (inst pop other))