[Openmcl-cvs-notifications] r10796 - /trunk/source/lisp-kernel/x86-subprims32.s

gb at clozure.com gb at clozure.com
Wed Sep 17 18:15:58 EDT 2008


Author: gb
Date: Wed Sep 17 18:15:57 2008
New Revision: 10796

Log:
In start_lisp, don't assume 16-byte stack alignment (depending on
what the constant says.)

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

Modified: trunk/source/lisp-kernel/x86-subprims32.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-subprims32.s (original)
+++ trunk/source/lisp-kernel/x86-subprims32.s Wed Sep 17 18:15:57 2008
@@ -67,7 +67,11 @@
 	__(push %ebx)
 	__(mov 8(%ebp), %ebx)	/* get tcr */
 	__(movw tcr.ldt_selector(%ebx), %rcontext_reg)
+        .if c_stack_16_byte_aligned
 	__(sub $12, %esp) 	/* stack now 16-byte aligned */
+        .else
+        __(andl $~15,%esp)
+        .endif
 	__(clr %arg_z)
 	__(clr %arg_y)	=

 	__(clr %temp0)
@@ -86,7 +90,7 @@
 	__(call toplevel_loop)
 	__(movl $TCR_STATE_FOREIGN, rcontext(tcr.valence))
 	__(emms)
-	__(add $12, %esp)	/* discard alignment space */
+        __(leal -3*node_size(%ebp),%esp)
 	__(pop %ebx)
 	__(pop %esi)
 	__(pop %edi)



More information about the Openmcl-cvs-notifications mailing list