(defun emit-make-value-cell (node block value res)
(event make-value-cell-event node)
(let ((leaf (tn-leaf res)))
- (vop make-value-cell node block value (and leaf (leaf-dynamic-extent leaf))
+ (vop make-value-cell node block value
+ (and leaf (leaf-dynamic-extent leaf)
+ ;; FIXME: See bug 419
+ (policy node (> stack-allocate-value-cells 1)))
res)))
\f
;;;; leaf reference
(vop value-cell-ref node block tn res)
(emit-move node block tn res))))
(constant
- (if (legal-immediate-constant-p leaf)
- (emit-move node block (constant-tn leaf) res)
- (let* ((name (leaf-source-name leaf))
- (name-tn (emit-constant name)))
- (if (policy node (zerop safety))
- (vop fast-symbol-value node block name-tn res)
- (vop symbol-value node block name-tn res)))))
+ (emit-move node block (constant-tn leaf) res))
(functional
(ir2-convert-closure node block leaf res))
(global-var
(emit-move node block val tn)))))
(global-var
(ecase (global-var-kind leaf)
- ((:special :global)
+ ((:special)
(aver (symbolp (leaf-source-name leaf)))
(vop set node block (emit-constant (leaf-source-name leaf)) val)))))
(when locs
#!+unwind-to-frame-and-call-vop
(when (and (lambda-allow-instrumenting fun)
+ (not (lambda-inline-expanded fun))
(lambda-return fun)
(policy fun (>= insert-debug-catch 2)))
(vop sb!vm::bind-sentinel node block))
(returns (tail-set-info (lambda-tail-set fun))))
#!+unwind-to-frame-and-call-vop
(when (and (lambda-allow-instrumenting fun)
+ (not (lambda-inline-expanded fun))
(policy fun (>= insert-debug-catch 2)))
(vop sb!vm::unbind-sentinel node block))
(cond