Update of /cvsroot/sbcl/sbcl/src/compiler/x86
In directory sc8-pr-cvs1:/tmp/cvs-serv31035/src/compiler/x86
Modified Files:
c-call.lisp
Log Message:
0.8.2.11:
Oops. Fix the other half of the FreeBSD issue
... adjust CALL-OUT vop sufficiently that the system doesn't tie
itself in knots when doing calls into C (from dtc via
cmucl circa 1999 :-)
Index: c-call.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/x86/c-call.lisp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- c-call.lisp 30 Jul 2003 15:56:30 -0000 1.16
+++ c-call.lisp 31 Jul 2003 14:42:07 -0000 1.17
@@ -199,41 +199,33 @@
(:args (function :scs (sap-reg))
(args :more t))
(:results (results :more t))
- ;; eax is already wired
- (:temporary (:sc unsigned-reg :offset ecx-offset) ecx)
- (:temporary (:sc unsigned-reg :offset edx-offset) edx)
+ (:temporary (:sc unsigned-reg :offset eax-offset
+ :from :eval :to :result) eax)
+ (:temporary (:sc unsigned-reg :offset ecx-offset
+ :from :eval :to :result) ecx)
+ (:temporary (:sc unsigned-reg :offset edx-offset
+ :from :eval :to :result) edx)
(:node-var node)
(:vop-var vop)
(:save-p t)
(:ignore args ecx edx)
(:generator 0
(cond ((policy node (> space speed))
- (move eax-tn function)
+ (move eax function)
(inst call (make-fixup (extern-alien-name "call_into_c") :foreign)))
(t
;; Setup the NPX for C; all the FP registers need to be
;; empty; pop them all.
- (inst fstp fr0-tn)
- (inst fstp fr0-tn)
- (inst fstp fr0-tn)
- (inst fstp fr0-tn)
- (inst fstp fr0-tn)
- (inst fstp fr0-tn)
- (inst fstp fr0-tn)
- (inst fstp fr0-tn)
+ (dotimes (i 8)
+ (inst fstp fr0-tn))
(inst call function)
;; To give the debugger a clue. XX not really internal-error?
(note-this-location vop :internal-error)
- ;; Restore the NPX for lisp.
- (inst fldz) ; insure no regs are empty
- (inst fldz)
- (inst fldz)
- (inst fldz)
- (inst fldz)
- (inst fldz)
- (inst fldz)
+ ;; Restore the NPX for lisp; ensure no regs are empty
+ (dotimes (i 7)
+ (inst fldz))
(if (and results
(location= (tn-ref-tn results) fr0-tn))
-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
|