- (let ((size (+ length closure-info-offset)))
- (pseudo-atomic (:extra (pad-data-block size))
- (inst andn result alloc-tn lowtag-mask)
- (inst or result fun-pointer-lowtag)
+ (let* ((size (+ length closure-info-offset))
+ (alloc-size (pad-data-block size)))
+ (pseudo-atomic (:extra (if stack-allocate-p 0 alloc-size))
+ (cond (stack-allocate-p
+ (align-csp temp)
+ (inst andn result csp-tn lowtag-mask)
+ (inst or result fun-pointer-lowtag)
+ (inst add csp-tn alloc-size))
+ (t
+ (inst andn result alloc-tn lowtag-mask)
+ (inst or result fun-pointer-lowtag)))