clarify the purpose of this project
[nyanglibc.git] / setjmp / longjmp.shared.s
blobc9d494599154b344136f2ef3a4e06e7855a43e5c
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 __libc_siglongjmp
9 .type __libc_siglongjmp, @function
10 __libc_siglongjmp:
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
27 .L6:
28 leaq 72(%rbp), %rsi
29 xorl %edx, %edx
30 movl $2, %edi
31 call __GI___sigprocmask
32 jmp .L2
33 .size __libc_siglongjmp, .-__libc_siglongjmp
34 .weak siglongjmp
35 .set siglongjmp,__libc_siglongjmp
36 .weak longjmp
37 .set longjmp,__libc_siglongjmp
38 .weak _longjmp
39 .set _longjmp,__libc_siglongjmp
40 .p2align 4,,15
41 .globl __libc_longjmp
42 .type __libc_longjmp, @function
43 __libc_longjmp:
44 pushq %rbp
45 pushq %rbx
46 movq %rdi, %rbp
47 movl %esi, %ebx
48 subq $8, %rsp
49 call _longjmp_unwind@PLT
50 movl 64(%rbp), %eax
51 testl %eax, %eax
52 jne .L11
53 .L8:
54 testl %ebx, %ebx
55 movl $1, %eax
56 movq %rbp, %rdi
57 cmove %eax, %ebx
58 movl %ebx, %esi
59 call __longjmp_cancel
60 .p2align 4,,10
61 .p2align 3
62 .L11:
63 leaq 72(%rbp), %rsi
64 xorl %edx, %edx
65 movl $2, %edi
66 call __GI___sigprocmask
67 jmp .L8
68 .size __libc_longjmp, .-__libc_longjmp
69 .hidden __longjmp_cancel
70 .hidden __longjmp