Support building without PSEUDO-ATOMIC on POSIX safepoints
[sbcl.git] / src / compiler / x86 / macros.lisp
index f0ed91e..4050640 100644 (file)
 
 #!+sb-safepoint
 (defun emit-safepoint ()
-  (inst test al-tn (make-ea :byte
-                            :disp (make-fixup "gc_safepoint_page" :foreign))))
+  (inst test eax-tn (make-ea :dword :disp sb!vm::gc-safepoint-page-addr)))
 
 #!+sb-thread
 (defmacro pseudo-atomic (&rest forms)
-  #!+win32
+  #!+sb-safepoint-strictly
   `(progn ,@forms (emit-safepoint))
-  #!-win32
+  #!-sb-safepoint-strictly
   (with-unique-names (label)
     `(let ((,label (gen-label)))
        (inst mov (make-ea :dword :disp (* 4 thread-pseudo-atomic-bits-slot))