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

gb at clozure.com gb at clozure.com
Tue Oct 21 21:05:10 EDT 2008


Author: gb
Date: Tue Oct 21 21:05:10 2008
New Revision: 11194

Log:
Back out of r11172 (don't save lisp register values across ff-call),
since there are things (#'%ff-call, #'%do-ff-call) that expect them
to be preserved.

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 Tue Oct 21 21:05:10 2008
@@ -4088,6 +4088,11 @@
 	/* Save lisp registers. */
 	__(push %ebp)
 	__(mov %esp,%ebp)
+        __(push %temp0) 	 	 =

+        __(push %temp1) 	 	 =

+        __(push %arg_y) 	 	 =

+        __(push %arg_z) 	 	 =

+        __(push %fn)         =

         __ifdef([WIN32_ES_HACK])
          __(movl rcontext(tcr.linear),%ebx)
         __endif
@@ -4140,8 +4145,13 @@
 	__(movl rcontext(tcr.save_vsp),%esp)
 	__(movl rcontext(tcr.save_ebp),%ebp)
 	__(movl $TCR_STATE_LISP,rcontext(tcr.valence))
-	__(ldmxcsr rcontext(tcr.lisp_mxcsr))
+        __(pop %fn) 	 	 =

+        __(pop %arg_z) 	 	 =

+        __(pop %arg_y) 	 	 =

+        __(pop %temp1) =

+       	__(ldmxcsr rcontext(tcr.lisp_mxcsr))
 	__(check_pending_interrupt(%temp0))
+        __(pop %temp0)
 	__(leave)
 	__(ret)
 	/* need to deal with NSExceptions and Objc-2.0 execptions */



More information about the Openmcl-cvs-notifications mailing list