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