12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #define _ASM
- #define _SETJMP_H
- #include <bits/setjmp.h>
- .globl setjmp
- .type setjmp,@function
- .align 4
- setjmp:
- movl 4 (%esp), %eax
-
- movl %ebx, (0 *4)(%eax)
- movl %esi, (1 *4)(%eax)
- movl %edi, (2 *4)(%eax)
-
- leal 4 (%esp), %ecx
- movl %ecx, (4 *4)(%eax)
-
- movl 0 (%esp), %ecx
- movl %ecx, (5 *4)(%eax)
-
- movl %ebp, (3 *4)(%eax)
-
- pushl $1
- pushl 8(%esp)
- #ifdef __PIC__
-
- call here2
- here2: popl %ecx
- addl $_GLOBAL_OFFSET_TABLE_+[.-here2], %ecx
- movl __sigjmp_save @GOT (%ecx), %ecx
- call *%ecx
- #else
- call __sigjmp_save
- #endif
- popl %ecx
- popl %edx
- ret
- .size setjmp,.-setjmp
|