diff options
Diffstat (limited to 'contrib/syslinux/latest/com32/lib/setjmp.S')
-rw-r--r-- | contrib/syslinux/latest/com32/lib/setjmp.S | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/contrib/syslinux/latest/com32/lib/setjmp.S b/contrib/syslinux/latest/com32/lib/setjmp.S deleted file mode 100644 index 658df48..0000000 --- a/contrib/syslinux/latest/com32/lib/setjmp.S +++ /dev/null @@ -1,63 +0,0 @@ -/* - * arch/i386/setjmp.S - * - * setjmp/longjmp for the i386 architecture - * - * - * - * The jmp_buf is assumed to contain the following, in order: - * %ebx - * %esp - * %ebp - * %esi - * %edi - * <return address> - */ - - .text - .align 4 - - .globl _setjmp - .type _setjmp, @function -_setjmp: # gcc 4.0.1 wants this as an alias? - - .globl setjmp - .type setjmp, @function -setjmp: -#ifdef REGPARM - movl %eax,%edx -#else - movl 4(%esp),%edx -#endif - popl %ecx # Return address, and adjust the stack - xorl %eax,%eax # Return value - movl %ebx,(%edx) - movl %esp,4(%edx) # Post-return %esp! - pushl %ecx # Make the call/return stack happy - movl %ebp,8(%edx) - movl %esi,12(%edx) - movl %edi,16(%edx) - movl %ecx,20(%edx) # Return address - ret - - .size setjmp,.-setjmp - - .text - .align 4 - .globl longjmp - .type longjmp, @function -longjmp: -#ifdef REGPARM - xchgl %eax,%edx -#else - movl 4(%esp),%edx # jmp_ptr address - movl 8(%esp),%eax # Return value -#endif - movl (%edx),%ebx - movl 4(%edx),%esp - movl 8(%edx),%ebp - movl 12(%edx),%esi - movl 16(%edx),%edi - jmp *20(%edx) - - .size longjmp,.-longjmp |