[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