- (pass-tn (first pass))
- (pass-sc (tn-sc pass-tn))
- (res (find-move-vop val-tn nil pass-sc
- (tn-primitive-type pass-tn)
- #'sc-move-arg-vops)))
- (unless res
- (bad-move-arg-error val-tn pass-tn))
-
- (change-tn-ref-tn val pass-tn)
- (let* ((this-fp
- (cond ((not (sc-number-stack-p pass-sc)) fp-tn)
- (nfp-tn)
- (t
- (aver (eq how :known-return))
- (setq nfp-tn (make-number-stack-pointer-tn))
- (setf (tn-sc nfp-tn)
- (svref *backend-sc-numbers*
- (first (primitive-type-scs
- (tn-primitive-type nfp-tn)))))
- (emit-context-template
- node block
- (template-or-lose 'compute-old-nfp)
- nfp-tn vop)
- (aver (not (sc-number-stack-p (tn-sc nfp-tn))))
- nfp-tn)))
- (new (emit-move-arg-template node block res val-tn this-fp
- pass-tn vop))
- (after
- (cond ((eq how :local-call)
- (aver (eq (vop-info-name (vop-info prev))
- 'allocate-frame))
- prev)
- (prev (vop-next prev))
- (t
- (ir2-block-start-vop block)))))
- (coerce-some-operands (vop-args new) pass-tn
- (vop-info-arg-load-scs res)
- after)))))
+ (pass-tn (first pass))
+ (pass-sc (tn-sc pass-tn))
+ (res (find-move-vop val-tn nil pass-sc
+ (tn-primitive-type pass-tn)
+ #'sc-move-arg-vops)))
+ (unless res
+ (bad-move-arg-error val-tn pass-tn))
+
+ (change-tn-ref-tn val pass-tn)
+ (let* ((this-fp
+ (cond ((not (sc-number-stack-p pass-sc)) fp-tn)
+ (nfp-tn)
+ (t
+ (aver (eq how :known-return))
+ (setq nfp-tn (make-number-stack-pointer-tn))
+ (setf (tn-sc nfp-tn)
+ (svref *backend-sc-numbers*
+ (first (primitive-type-scs
+ (tn-primitive-type nfp-tn)))))
+ (emit-context-template
+ node block
+ (template-or-lose 'compute-old-nfp)
+ nfp-tn vop)
+ (aver (not (sc-number-stack-p (tn-sc nfp-tn))))
+ nfp-tn)))
+ (new (emit-move-arg-template node block res val-tn this-fp
+ pass-tn vop))
+ (after
+ (cond ((eq how :local-call)
+ (aver (eq (vop-info-name (vop-info prev))
+ 'allocate-frame))
+ prev)
+ (prev (vop-next prev))
+ (t
+ (ir2-block-start-vop block)))))
+ (coerce-some-operands (vop-args new) pass-tn
+ (vop-info-arg-load-scs res)
+ after)))))