From d960a58d3c5d3626263bbf15736b87af6876fe58 Mon Sep 17 00:00:00 2001
From: ram <ram>
Date: Tue, 13 Nov 1990 11:41:30 +0000
Subject: [PATCH] Fixed the CALL-FORIEGN-FUNCTION IR2-Convert optimizer to
 understand the new format for move-arg VOPs.  Although in general there can
 be multiple move arg vops, I decided to assert that there is a unique one in
 this case of a move within an SC, so that I wouldn't have to mess around
 writing code to select the right one.

---
 compiler/aliencomp.lisp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/compiler/aliencomp.lisp b/compiler/aliencomp.lisp
index 232e4939e..10ff67a7f 100644
--- a/compiler/aliencomp.lisp
+++ b/compiler/aliencomp.lisp
@@ -518,11 +518,14 @@
 		   (sc (tn-sc tn))
 		   (scn (sc-number sc))
 		   (temp-tn (make-representation-tn (tn-primitive-type tn)
-						    scn)))
+						    scn))
+		   (move-arg-vops (svref (sc-move-arg-vops sc) scn)))
 	      (assert arg)
+	      (assert (= (length move-arg-vops) 1) ()
+		      "No unique move-arg-vop for moves in SC ~S."
+		      (sc-name sc))
 	      (emit-move call block (continuation-tn call block arg) temp-tn)
-	      (emit-move-arg-template call block
-				      (svref (sc-move-arg-vops sc) scn)
+	      (emit-move-arg-template call block (first move-arg-vops)
 				      temp-tn nsp tn)))
 	  (assert (null args))))
 
-- 
GitLab