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