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