clarify the purpose of this project
[nyanglibc.git] / malloc / scratch_buffer_dupfree.s
blob26f8732a6120e2f0273b6c71733de07e0b4fba52
1 .text
2 .p2align 4,,15
3 .globl __libc_scratch_buffer_dupfree
4 .hidden __libc_scratch_buffer_dupfree
5 .type __libc_scratch_buffer_dupfree, @function
6 __libc_scratch_buffer_dupfree:
7 pushq %rbx
8 addq $16, %rdi
9 subq $16, %rsp
10 movq -16(%rdi), %rbx
11 cmpq %rdi, %rbx
12 je .L10
13 movq %rbx, %rdi
14 call realloc@PLT
15 testq %rax, %rax
16 cmove %rbx, %rax
17 .L1:
18 addq $16, %rsp
19 popq %rbx
20 ret
21 .p2align 4,,10
22 .p2align 3
23 .L10:
24 movq %rsi, %rdi
25 movq %rsi, 8(%rsp)
26 call malloc@PLT
27 testq %rax, %rax
28 movq %rax, %rdi
29 je .L1
30 movq 8(%rsp), %rsi
31 addq $16, %rsp
32 movq %rsi, %rdx
33 movq %rbx, %rsi
34 popq %rbx
35 jmp memcpy@PLT
36 .size __libc_scratch_buffer_dupfree, .-__libc_scratch_buffer_dupfree