#1# arch/i386/setjmp.S2#3# setjmp/longjmp for the i386 architecture4#56#7# The jmp_buf is assumed to contain the following, in order:8# %ebx9# %esp10# %ebp11# %esi12# %edi13# <return address>14#1516.text17.align 418.globl setjmp19.type setjmp, @function20setjmp:21#ifdef _REGPARM22movl %eax,%edx23#else24movl 4(%esp),%edx25#endif26popl %ecx # Return address, and adjust the stack27xorl %eax,%eax # Return value28movl %ebx,(%edx)29movl %esp,4(%edx) # Post-return %esp!30pushl %ecx # Make the call/return stack happy31movl %ebp,8(%edx)32movl %esi,12(%edx)33movl %edi,16(%edx)34movl %ecx,20(%edx) # Return address35ret3637.size setjmp,.-setjmp3839.text40.align 441.globl longjmp42.type longjmp, @function43longjmp:44#ifdef _REGPARM45xchgl %eax,%edx46#else47movl 4(%esp),%edx # jmp_ptr address48movl 8(%esp),%eax # Return value49#endif50movl (%edx),%ebx51movl 4(%edx),%esp52movl 8(%edx),%ebp53movl 12(%edx),%esi54movl 16(%edx),%edi55jmp *20(%edx)5657.size longjmp,.-longjmp585960