;; never insert stepper conditions
(sb!c:insert-step-conditions 0)
;; always stack-allocate if requested
- (sb!c::stack-allocate-dynamic-extent 3)
- ;; ...even value cells!
- (sb!c::stack-allocate-value-cells 3)))))
+ (sb!c::stack-allocate-dynamic-extent 3)))))
(compile 'proclaim-target-optimization)
(defun in-target-cross-compilation-mode (fun)
(let ((fd (fd-stream-fd stream))
(errno 0)
(count 0))
- (declare (dynamic-extent fd errno count))
+ (declare (optimize sb!c::stack-allocate-value-cells)
+ (dynamic-extent fd errno count))
(tagbody
;; Check for blocking input before touching the stream, as if
;; we happen to wait we are liable to be interrupted, and the
(declare (function function))
(flet ((%call-with-system-mutex ()
(dx-let (got-it)
+ #-sb-xc-host (declare (optimize sb!c::stack-allocate-value-cells))
(unwind-protect
(when (setf got-it (get-mutex mutex))
(funcall function))
(declare (function function))
(without-interrupts
(dx-let (got-it)
+ #-sb-xc-host (declare (optimize sb!c::stack-allocate-value-cells))
(unwind-protect
(when (setf got-it (get-spinlock spinlock))
(funcall function))
(flet ((%call-with-system-spinlock ()
(dx-let ((inner-lock-p (eq *current-thread* (spinlock-value spinlock)))
(got-it nil))
+ #-sb-xc-host (declare (optimize sb!c::stack-allocate-value-cells))
(unwind-protect
(when (or inner-lock-p (setf got-it (get-spinlock spinlock)))
(funcall function))
(defun call-with-spinlock (function spinlock)
(declare (function function))
(dx-let ((got-it nil))
+ #-sb-xc-host (declare (optimize sb!c::stack-allocate-value-cells))
(without-interrupts
(unwind-protect
(when (setf got-it (allow-with-interrupts
(defun call-with-mutex (function mutex value waitp)
(declare (function function))
(dx-let ((got-it nil))
+ #-sb-xc-host (declare (optimize sb!c::stack-allocate-value-cells))
(without-interrupts
(unwind-protect
(when (setq got-it (allow-with-interrupts
(declare (function function))
(dx-let ((inner-lock-p (eq (mutex-%owner mutex) *current-thread*))
(got-it nil))
+ #-sb-xc-host (declare (optimize sb!c::stack-allocate-value-cells))
(without-interrupts
(unwind-protect
(when (or inner-lock-p (setf got-it (allow-with-interrupts
(declare (function function))
(dx-let ((inner-lock-p (eq (spinlock-value spinlock) *current-thread*))
(got-it nil))
+ #-sb-xc-host (declare (optimize sb!c::stack-allocate-value-cells))
(without-interrupts
(unwind-protect
(when (or inner-lock-p (setf got-it (allow-with-interrupts