#!+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))