clarify the purpose of this project
[nyanglibc.git] / debug / longjmp_chk.s
blobb6bd28f157985985891a59f95f55036c2c5b1c0b
1 .text
2 .p2align 4,,15
3 .globl __longjmp_chk
4 .type __longjmp_chk, @function
5 __longjmp_chk:
6 pushq %rbp
7 pushq %rbx
8 movq %rdi, %rbp
9 movl %esi, %ebx
10 subq $8, %rsp
11 call _longjmp_unwind@PLT
12 movl 64(%rbp), %eax
13 testl %eax, %eax
14 jne .L6
15 .L2:
16 testl %ebx, %ebx
17 movl $1, %eax
18 movq %rbp, %rdi
19 cmove %eax, %ebx
20 movl %ebx, %esi
21 call ____longjmp_chk
22 .L6:
23 leaq 72(%rbp), %rsi
24 xorl %edx, %edx
25 movl $2, %edi
26 call __sigprocmask
27 jmp .L2
28 .size __longjmp_chk, .-__longjmp_chk
29 .hidden __sigprocmask
30 .hidden ____longjmp_chk