Changeset 10558


Ignore:
Timestamp:
Aug 25, 2008, 3:57:40 AM (11 years ago)
Author:
gb
Message:

When doing ff-calls and syscalls, don't assume anything about foreign
stack alignment on entry, but force 16-byte alignment before the
call. (We're now pushing two words beyound the aligned area when
building C frames; this change just helps to bootstrap that.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/x86-spentry32.s

    r10500 r10558  
    10311031        __(emms)
    10321032        __(pop %ebp)            /* backlink */
     1033        __(lea 15(%esp),%edx)
     1034        __(andl $-16,%edx)
     1035        __(movl %edx,%esp)
    10331036        __(unbox_fixnum(%arg_z,%eax))   /* syscall number */
    10341037        __(movl $local_label(back_from_sysenter),%edx)
     
    10841087        __(emms)
    10851088        __(pop %ebp)            /* backlink */
     1089        __(lea 15(%esp),%edx)
     1090        __(andl $-16,%edx)
     1091        __(movl %edx,%esp)
    10861092        __(unbox_fixnum(%arg_z,%eax))   /* syscall number */
    10871093        __(pushl $local_label(back_from_syscall))
     
    40554061        __(movl (%esp),%ebp)
    40564062LocalLabelPrefix[]ffcall_setup:
    4057         __(addl $node_size,%esp)
     4063        __(lea 15(%esp),%ecx)
     4064        __(andl $-16,%ecx)
     4065        __(movl %ecx,%esp)
     4066/*      __(addl $node_size,%esp) */
    40584067LocalLabelPrefix[]ffcall_call:
    40594068        __(call *%eax)
Note: See TracChangeset for help on using the changeset viewer.