From 516b8b04a2b845c11ff5e3651b5faed1739d9455 Mon Sep 17 00:00:00 2001
From: ram <ram>
Date: Mon, 6 May 1991 15:05:00 +0000
Subject: [PATCH] Saved out the buffer this time...

---
 compiler/rt/call.lisp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/compiler/rt/call.lisp b/compiler/rt/call.lisp
index 6c1cc54f3..329e61df3 100644
--- a/compiler/rt/call.lisp
+++ b/compiler/rt/call.lisp
@@ -569,9 +569,11 @@ default-value-5
 ;;;
 (define-vop (known-return)
   (:args (old-fp :scs (word-pointer-reg control-stack))
-	 (return-pc :scs (descriptor-reg control-stack))
+	 (return-pc-arg :scs (descriptor-reg control-stack)
+			:target return-pc)
 	 (vals :more t))
   (:temporary (:scs (interior-reg) :type interior) lip)
+  (:temporary (:sc descriptor-reg :from (:argument 1)) return-pc)
   (:move-args :known-return)
   (:info val-locs)
   (:ignore val-locs vals)
@@ -582,10 +584,11 @@ default-value-5
       (when cur-nfp
 	(inst cal nsp-tn cur-nfp
 	      (component-non-descriptor-stack-usage))))
+    (maybe-load-stack-tn return-pc return-pc-arg)
     ;; Skip over a word, the LRA header, and subtract out low-tag bits.
     (inst cal lip return-pc (- vm:word-bytes vm:other-pointer-type))
     (inst bx lip)
-    (move cfp-tn old-fp)))
+    (maybe-load-stack-tn cfp-tn old-fp)))
 
 
 
-- 
GitLab