;;;; error code
(defun emit-error-break (vop kind code values)
(assemble ()
- #!-darwin
+ #!-ud2-breakpoints
(inst int 3) ; i386 breakpoint instruction
;; CLH 20060314
;; On Darwin, we need to use #x0b0f instead of int3 in order
;; doesn't seem to be reliably firing SIGTRAP
;; handlers. Hopefully this will be fixed by Apple at a
;; later date.
- #!+darwin
+ #!+ud2-breakpoints
(inst word #x0b0f)
;; The return PC points here; note the location for the debugger.
(when vop
(progn ,@forms)
(pseudo-atomic ,@forms)))
+;;; Unsafely clear pa flags so that the image can properly lose in a
+;;; pa section.
+#!+sb-thread
+(defmacro %clear-pseudo-atomic ()
+ '(inst mov (make-ea :dword :disp (* 4 thread-pseudo-atomic-bits-slot)) 0 :fs))
+
#!+sb-thread
(defmacro pseudo-atomic (&rest forms)
(with-unique-names (label)
;; BODY is stuffed in a function to preserve the lexical
;; environment.
`(flet ((,wpo () (progn ,@body)))
+ (declare (muffle-conditions compiler-note))
;; PINS are dx-allocated in case the compiler for some
;; unfathomable reason decides to allocate value-cells
;; for them -- since we have DX value-cells on x86oid