clarify the purpose of this project
[nyanglibc.git] / resource / vlimit.shared.s
blobf2b12166aa0173a687177b7dd005d1b1781db25f
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 vlimit
9 .type vlimit, @function
10 vlimit:
11 pushq %r12
12 pushq %rbp
13 pushq %rbx
14 leal -1(%rdi), %ebx
15 subq $16, %rsp
16 cmpl $5, %ebx
17 ja .L2
18 movq %rsp, %r12
19 movl %esi, %ebp
20 movl %ebx, %edi
21 movq %r12, %rsi
22 call __GI___getrlimit
23 testl %eax, %eax
24 movl $-1, %edx
25 js .L1
26 movslq %ebp, %rsi
27 movl %ebx, %edi
28 movq %rsi, (%rsp)
29 movq %r12, %rsi
30 call __GI___setrlimit
31 movl %eax, %edx
32 .L1:
33 addq $16, %rsp
34 movl %edx, %eax
35 popq %rbx
36 popq %rbp
37 popq %r12
38 ret
39 .p2align 4,,10
40 .p2align 3
41 .L2:
42 movq __libc_errno@gottpoff(%rip), %rax
43 movl $-1, %edx
44 movl $22, %fs:(%rax)
45 jmp .L1
46 .size vlimit, .-vlimit