sb-bsd-sockets: GET-ADDRESS-INFO foreign memory leak
[sbcl.git] / src / compiler / x86-64 / system.lisp
index 11867f9..7cb54a4 100644 (file)
     (inst cmp al-tn fun-pointer-lowtag)
     (inst jmp :e FUNCTION-PTR)
 
-    ;; Pick off structures and list pointers.
-    (inst test al-tn 1)
-    (inst jmp :ne DONE)
-
     ;; Pick off fixnums.
-    (inst and al-tn fixnum-tag-mask)
+    (inst test al-tn fixnum-tag-mask)
     (inst jmp :e DONE)
 
+    ;; Pick off structures and list pointers.
+    (inst test al-tn 2)
+    (inst jmp :ne DONE)
+
     ;; must be an other immediate
     (inst mov rax object)
     (inst jmp DONE)
@@ -381,18 +381,22 @@ number of CPU cycles elapsed as secondary value. EXPERIMENTAL."
 (define-vop (%read-barrier)
   (:policy :fast-safe)
   (:translate %read-barrier)
-  (:generator 3
-    (inst lfence)))
+  (:generator 3))
 
 #!+memory-barrier-vops
 (define-vop (%write-barrier)
   (:policy :fast-safe)
   (:translate %write-barrier)
-  (:generator 3
-    (inst sfence)))
+  (:generator 3))
 
 #!+memory-barrier-vops
 (define-vop (%data-dependency-barrier)
   (:policy :fast-safe)
   (:translate %data-dependency-barrier)
   (:generator 3))
+
+(define-vop (pause)
+  (:translate spin-loop-hint)
+  (:policy :fast-safe)
+  (:generator 0
+    (inst pause)))