[Openmcl-cvs-notifications] r10739 - /trunk/source/compiler/X86/X8632/x8632-vinsns.lisp
gb at clozure.com
gb at clozure.com
Mon Sep 15 03:52:56 EDT 2008
Author: gb
Date: Mon Sep 15 03:52:56 2008
New Revision: 10739
Log:
Add a vinsn to get a 64-bit ff-call result (%edx saved in tcr.unoxed1:
%eax) to %mm0.
Modified:
trunk/source/compiler/X86/X8632/x8632-vinsns.lisp
Modified: trunk/source/compiler/X86/X8632/x8632-vinsns.lisp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/compiler/X86/X8632/x8632-vinsns.lisp (original)
+++ trunk/source/compiler/X86/X8632/x8632-vinsns.lisp Mon Sep 15 03:52:56 2=
008
@@ -1746,6 +1746,13 @@
((temp :imm)))
(movl (:@ (:%seg :rcontext) x8632::tcr.foreign-sp) (:%l temp))
(movsd (:@ (:apply + 8 (:apply ash offset 2)) (:%l temp)) (:%xmm arg)))
+
+;;; .SPffcall has stored %edx in tcr.unboxed1. Load %mm0 with a =
+;;; 64-bit value composed from %edx:%eax.
+(define-x8632-vinsn get-64-bit-ffcall-result (()
+ ())
+ (movl (:%l x8632::eax) (:@ (:%seg :rcontext) x8632::tcr.unboxed0))
+ (movd (:@ (:%seg :rcontext) x8632::tcr.unboxed0) (:%mmx x8632::mm0)))
=
(define-x8632-subprim-call-vinsn (ff-call) .SPffcall)
=
More information about the Openmcl-cvs-notifications
mailing list