clarify the purpose of this project
[nyanglibc.git] / stdio-common / tmpnam.s
blob430363b6007f9c6b328e4993e5e4906ac5271522
1 .text
2 #APP
3 .section .gnu.warning.tmpnam
4 .previous
5 #NO_APP
6 .p2align 4,,15
7 .globl tmpnam
8 .type tmpnam, @function
9 tmpnam:
10 pushq %rbp
11 pushq %rbx
12 movq %rdi, %rbp
13 movl $20, %esi
14 subq $40, %rsp
15 testq %rdi, %rdi
16 movq %rsp, %rbx
17 cmovne %rdi, %rbx
18 xorl %r8d, %r8d
19 xorl %ecx, %ecx
20 xorl %edx, %edx
21 movq %rbx, %rdi
22 call __path_search
23 testl %eax, %eax
24 jne .L5
25 xorl %edx, %edx
26 xorl %esi, %esi
27 movl $2, %ecx
28 movq %rbx, %rdi
29 call __gen_tempname
30 testl %eax, %eax
31 jne .L5
32 testq %rbp, %rbp
33 jne .L4
34 movdqu (%rbx), %xmm0
35 leaq tmpnam_buffer(%rip), %rbp
36 movaps %xmm0, tmpnam_buffer(%rip)
37 movl 16(%rbx), %eax
38 movl %eax, 16+tmpnam_buffer(%rip)
39 .L4:
40 addq $40, %rsp
41 movq %rbp, %rax
42 popq %rbx
43 popq %rbp
44 ret
45 .p2align 4,,10
46 .p2align 3
47 .L5:
48 xorl %ebp, %ebp
49 addq $40, %rsp
50 movq %rbp, %rax
51 popq %rbx
52 popq %rbp
53 ret
54 .size tmpnam, .-tmpnam
55 .section .gnu.warning.tmpnam
56 #,"a",@progbits
57 .align 32
58 .type __evoke_link_warning_tmpnam, @object
59 .size __evoke_link_warning_tmpnam, 55
60 __evoke_link_warning_tmpnam:
61 .string "the use of `tmpnam' is dangerous, better use `mkstemp'"
62 .local tmpnam_buffer
63 .comm tmpnam_buffer,20,16
64 .hidden __gen_tempname
65 .hidden __path_search