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