[Openmcl-cvs-notifications] r10738 - /trunk/source/lisp-kernel/x86-spentry32.s

gb at clozure.com gb at clozure.com
Mon Sep 15 03:50:48 EDT 2008


Author: gb
Date: Mon Sep 15 03:50:48 2008
New Revision: 10738

Log:
On return from an ff-call, stick %edx in tcr.unboxed1, just in case
it happens to be the high 32 bits of a 64-bit result.

Modified:
    trunk/source/lisp-kernel/x86-spentry32.s

Modified: trunk/source/lisp-kernel/x86-spentry32.s
=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/lisp-kernel/x86-spentry32.s (original)
+++ trunk/source/lisp-kernel/x86-spentry32.s Mon Sep 15 03:50:48 2008
@@ -4108,6 +4108,10 @@
 LocalLabelPrefix[]ffcall_call_end:
 	__(movl %ebp,%esp)
 	__(movl %esp,rcontext(tcr.foreign_sp))
+        /* The high word of a 64-bit result would be in %edx right now.
+           There doesn't seem to be any other good place to put this,
+           though %edx is often undefined at this point. */
+        __(mov %edx,rcontext(tcr.unboxed1))
 	__(clr %arg_z)
 	__(clr %arg_y)
 	__(clr %temp1)



More information about the Openmcl-cvs-notifications mailing list