From 78c7697a892f26f3fd8f84be220140a84b6c9a31 Mon Sep 17 00:00:00 2001
From: dtc <dtc>
Date: Sat, 17 Feb 2001 20:02:05 +0000
Subject: [PATCH] o Use BCTRL to call-out as the target address may have
 significant   upper bits that can not be encoded using BLA.

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

diff --git a/compiler/ppc/c-call.lisp b/compiler/ppc/c-call.lisp
index 79026d593..76dbae41e 100644
--- a/compiler/ppc/c-call.lisp
+++ b/compiler/ppc/c-call.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/c-call.lisp,v 1.1 2001/02/11 14:22:04 dtc Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/c-call.lisp,v 1.2 2001/02/17 20:02:05 dtc Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -138,13 +138,16 @@
   (:temporary (:sc any-reg :offset cfunc-offset
 		   :from (:argument 0) :to (:result 0)) cfunc)
   (:temporary (:sc control-stack :offset nfp-save-offset) nfp-save)
+  (:temporary (:scs (non-descriptor-reg)) temp)
   (:vop-var vop)
   (:generator 0
     (let ((cur-nfp (current-nfp-tn vop)))
       (when cur-nfp
 	(store-stack-tn nfp-save cur-nfp))
+      (inst lr temp (make-fixup "call_into_c" :foreign))
+      (inst mtctr temp)
       (move cfunc function)
-      (inst bla (make-fixup "call_into_c" :foreign))
+      (inst bctrl)
       (when cur-nfp
 	(load-stack-tn cur-nfp nfp-save)))))
 
-- 
GitLab