clarify the purpose of this project
[nyanglibc.git] / stdio-common / tmpfile.s
blob96b34866e8ce6d9112a2be42580c1fd7bf96d5fe
1 .text
2 .section .rodata.str1.1,"aMS",@progbits,1
3 .LC0:
4 .string "tmpf"
5 .LC1:
6 .string "w+b"
7 .text
8 .p2align 4,,15
9 .globl __new_tmpfile
10 .type __new_tmpfile, @function
11 __new_tmpfile:
12 .LFB64:
13 pushq %rbp
14 pushq %rbx
15 xorl %edi, %edi
16 subq $4104, %rsp
17 call __gen_tempfd
18 testl %eax, %eax
19 movl %eax, %ebx
20 js .L8
21 .L2:
22 leaq .LC1(%rip), %rsi
23 movl %ebx, %edi
24 call _IO_fdopen
25 testq %rax, %rax
26 movq %rax, %rbp
27 je .L9
28 .L1:
29 addq $4104, %rsp
30 movq %rbp, %rax
31 popq %rbx
32 popq %rbp
33 ret
34 .p2align 4,,10
35 .p2align 3
36 .L8:
37 movq %rsp, %rbp
38 leaq .LC0(%rip), %rcx
39 xorl %r8d, %r8d
40 xorl %edx, %edx
41 movl $4096, %esi
42 movq %rbp, %rdi
43 call __path_search
44 testl %eax, %eax
45 jne .L3
46 xorl %ecx, %ecx
47 xorl %edx, %edx
48 xorl %esi, %esi
49 movq %rbp, %rdi
50 call __gen_tempname
51 testl %eax, %eax
52 movl %eax, %ebx
53 js .L3
54 movq %rbp, %rdi
55 call __unlink
56 jmp .L2
57 .p2align 4,,10
58 .p2align 3
59 .L9:
60 movl %ebx, %edi
61 call __close
62 addq $4104, %rsp
63 movq %rbp, %rax
64 popq %rbx
65 popq %rbp
66 ret
67 .p2align 4,,10
68 .p2align 3
69 .L3:
70 xorl %ebp, %ebp
71 jmp .L1
72 .LFE64:
73 .size __new_tmpfile, .-__new_tmpfile
74 .weak tmpfile
75 .set tmpfile,__new_tmpfile
76 .weak tmpfile64
77 .set tmpfile64,__new_tmpfile
78 .hidden __close
79 .hidden __unlink
80 .hidden __gen_tempname
81 .hidden __path_search
82 .hidden _IO_fdopen
83 .hidden __gen_tempfd