clarify the purpose of this project
[nyanglibc.git] / debug / wcscat_chk.s
blobad1ed136799122b30adba0635a047905f4861066
1 .text
2 .p2align 4,,15
3 .globl __wcscat_chk
4 .type __wcscat_chk, @function
5 __wcscat_chk:
6 subq $1, %rdx
7 movq %rdi, %r8
8 jmp .L3
9 .p2align 4,,10
10 .p2align 3
11 .L2:
12 leaq 4(%r8), %rcx
13 movl -4(%rcx), %eax
14 leaq -1(%rdx), %r9
15 testl %eax, %eax
16 je .L11
17 movq %r9, %rdx
18 movq %rcx, %r8
19 .L3:
20 cmpq $-1, %rdx
21 jne .L2
22 .L5:
23 subq $8, %rsp
24 call __chk_fail
25 .p2align 4,,10
26 .p2align 3
27 .L11:
28 xorl %ecx, %ecx
29 subq $4, %r8
30 addq $1, %rdx
31 movl (%rsi,%rcx,4), %r9d
32 testl %r9d, %r9d
33 movl %r9d, 4(%r8,%rcx,4)
34 je .L12
35 .p2align 4,,10
36 .p2align 3
37 .L6:
38 addq $1, %rcx
39 cmpq %rcx, %rdx
40 je .L5
41 movl (%rsi,%rcx,4), %r9d
42 testl %r9d, %r9d
43 movl %r9d, 4(%r8,%rcx,4)
44 jne .L6
45 .L12:
46 movq %rdi, %rax
47 ret
48 .size __wcscat_chk, .-__wcscat_chk
49 .hidden __chk_fail