clarify the purpose of this project
[nyanglibc.git] / stdlib / setcontext.s
blob0c7fdcaa816f3c269173af2daa27d11feb1a1021
1 .globl __setcontext
2 .type __setcontext,@function
3 .align 1<<4
4 __setcontext:
5 pushq %rdi
6 leaq 296(%rdi), %rsi
7 xorl %edx, %edx
8 movl $2, %edi
9 movl $8,%r10d
10 movl $14, %eax
11 syscall
12 popq %rdx
13 cmpq $-4095, %rax
14 jae 0f
15 movq 224(%rdx), %rcx
16 fldenv (%rcx)
17 ldmxcsr 448(%rdx)
18 movq 160(%rdx), %rsp
19 movq 128(%rdx), %rbx
20 movq 120(%rdx), %rbp
21 movq 72(%rdx), %r12
22 movq 80(%rdx), %r13
23 movq 88(%rdx), %r14
24 movq 96(%rdx), %r15
25 movq 168(%rdx), %rcx
26 pushq %rcx
27 movq 112(%rdx), %rsi
28 movq 104(%rdx), %rdi
29 movq 152(%rdx), %rcx
30 movq 40(%rdx), %r8
31 movq 48(%rdx), %r9
32 movq 136(%rdx), %rdx
33 xorl %eax, %eax
34 ret
36 movq __libc_errno@GOTTPOFF(%rip), %rcx
37 neg %eax
38 movl %eax, %fs:(%rcx)
39 or $-1, %rax
40 ret
41 .size __setcontext,.-__setcontext
42 .weak setcontext
43 setcontext = __setcontext