X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86-64%2Fcell.lisp;h=929e74f002e36930ee03a35c5d2e325b19aef656;hb=085501b44cc1cbdd9e260139d30b383372ddd1b8;hp=ed3a1c9164eaba8ef1bcdf050f3800742c39fdf9;hpb=26bbfd93d01cefc0bbf97727379bdbdace8bf609;p=sbcl.git diff --git a/src/compiler/x86-64/cell.lisp b/src/compiler/x86-64/cell.lisp index ed3a1c9..929e74f 100644 --- a/src/compiler/x86-64/cell.lisp +++ b/src/compiler/x86-64/cell.lisp @@ -83,16 +83,6 @@ (define-vop (set cell-set) (:variant symbol-value-slot other-pointer-lowtag)) -;;; Do a cell ref with an error check for being unbound. -;;; XXX stil used? I can't see where -dan -(define-vop (checked-cell-ref) - (:args (object :scs (descriptor-reg) :target obj-temp)) - (:results (value :scs (descriptor-reg any-reg))) - (:policy :fast-safe) - (:vop-var vop) - (:save-p :compute-only) - (:temporary (:sc descriptor-reg :from (:argument 0)) obj-temp)) - ;;; With Symbol-Value, we check that the value isn't the trap object. So ;;; Symbol-Value of NIL is NIL. #!+sb-thread @@ -299,7 +289,7 @@ (pseudo-atomic (emit-label get-tls-index-lock) (inst mov temp 1) - (inst xor rax rax) + (zeroize rax) (inst lock) (inst cmpxchg (make-ea-for-symbol-value *tls-index-lock*) temp) (inst jmp :ne get-tls-index-lock)