(setf (ir2-lvar-kind info) :delayed))
(t (let ((tn (make-normal-tn (ir2-lvar-primitive-type info))))
(setf (ir2-lvar-locs info) (list tn))
- #!+stack-grows-downward-not-upward
(when (lvar-dynamic-extent lvar)
(setf (ir2-lvar-stack-pointer info)
(make-stack-pointer-tn)))))))
;;; specified primitive TYPES.
(defun annotate-fixed-values-lvar (lvar types)
(declare (type lvar lvar) (list types))
- (aver (not (lvar-dynamic-extent lvar))) ; XXX
- (let ((res (make-ir2-lvar nil)))
- (setf (ir2-lvar-locs res) (mapcar #'make-normal-tn types))
- (setf (lvar-info lvar) res))
+ (let ((info (make-ir2-lvar nil)))
+ (setf (ir2-lvar-locs info) (mapcar #'make-normal-tn types))
+ (setf (lvar-info lvar) info)
+ (when (lvar-dynamic-extent lvar)
+ (aver (proper-list-of-length-p types 1))
+ (setf (ir2-lvar-stack-pointer info)
+ (make-stack-pointer-tn))))
(ltn-annotate-casts lvar)
(values))
\f
(when (and (cast-type-check cast)
(not (node-lvar cast)))
;; FIXME
- (bug "IR2 type checking of unused values in not implemented.")
+ (bug "IR2 type checking of unused values is not implemented.")
)
(values))