diff --git a/compiler/pack.lisp b/compiler/pack.lisp index 709cf99e51313a36631c5a0cc240237ce61a13f7..80187911d5564251e3860f4bcb984ae0ee35804a 100644 --- a/compiler/pack.lisp +++ b/compiler/pack.lisp @@ -451,6 +451,13 @@ (undefined-value)) +;;; Emit-Saves -- Internal +;;; +;;; Scan over the VOPs in Block, emiting saving code for TNs noted in the +;;; codegen info that are packed into saved SCs. +;;; + + ;;; Emit-Saves -- Internal ;;; ;;; Scan over the VOPs in Block, emiting saving code for TNs noted in the @@ -462,7 +469,8 @@ ((null vop)) (when (eq (vop-info-save-p (vop-info vop)) t) (do-live-tns (tn (vop-save-set vop) block) - (when (sc-save-p (tn-sc tn)) + (when (and (sc-save-p (tn-sc tn)) + (not (eq (tn-kind tn) :component))) (let ((writes (tn-writes tn)) (save (tn-save-tn tn))) (if (or (and save (eq (tn-kind save) :save-once))