Fix a regression in binding specials.
[sbcl.git] / src / compiler / x86-64 / cell.lisp
index fdbeb1b..f20d3fb 100644 (file)
                       :assembly-routine))
     (inst call tmp)
     TLS-INDEX-VALID
-    (inst mov tmp (make-ea :qword :base thread-base-tn :scale 1 :index tls-index))
-    (storew tls-index bsp (- binding-symbol-slot binding-size))
+    (inst mov tmp (make-ea :qword :base thread-base-tn :index tls-index))
     (storew tmp bsp (- binding-value-slot binding-size))
-    (inst mov (make-ea :qword :base thread-base-tn :scale 1 :index tls-index)
-          val)))
+    (storew tls-index bsp (- binding-symbol-slot binding-size))
+    (inst mov (make-ea :qword :base thread-base-tn :index tls-index) val)))
 
 #!-sb-thread
 (define-vop (bind)
     (loadw tls-index bsp binding-symbol-slot)
     ;; Load VALUE from stack, then restore it to the TLS area.
     (loadw temp bsp binding-value-slot)
-    (inst mov (make-ea :qword :base thread-base-tn :scale 1 :index tls-index)
+    (inst mov (make-ea :qword :base thread-base-tn :index tls-index)
           temp)
     ;; Zero out the stack.
     (zeroize temp)
     #!-sb-thread
     (storew value symbol symbol-value-slot other-pointer-lowtag)
     #!+sb-thread
-    (inst mov (make-ea :qword :base thread-base-tn :scale 1 :index symbol)
+    (inst mov (make-ea :qword :base thread-base-tn :index symbol)
           value)
     (storew zero bsp binding-symbol-slot)