clarify the purpose of this project
[nyanglibc.git] / string / strspn.s
blob6d3c97e87af6a78462d3acc8b7bc251b094d877d
1 .text
2 .globl strspn
3 .type strspn,@function
4 .align 1<<4
5 strspn:
6 movq %rdi, %rdx
7 movq %rdi, %r8
8 subq $256, %rsp
9 movl $32, %ecx
10 movq %rsp, %rdi
11 xorl %eax, %eax
12 cld
13 rep
14 stosq
15 movq %rsi, %rax
16 .p2align 4
17 .L2: movb (%rax), %cl
18 testb %cl, %cl
19 jz .L1
20 movb %cl, (%rsp,%rcx)
21 movb 1(%rax), %cl
22 testb $0xff, %cl
23 jz .L1
24 movb %cl, (%rsp,%rcx)
25 movb 2(%rax), %cl
26 testb $0xff, %cl
27 jz .L1
28 movb %cl, (%rsp,%rcx)
29 movb 3(%rax), %cl
30 addq $4, %rax
31 movb %cl, (%rsp,%rcx)
32 testb $0xff, %cl
33 jnz .L2
34 .L1: leaq -4(%rdx), %rax
35 .p2align 4
36 .L3: addq $4, %rax
37 movb (%rax), %cl
38 testb %cl, (%rsp,%rcx)
39 jz .L4
40 movb 1(%rax), %cl
41 testb %cl, (%rsp,%rcx)
42 jz .L5
43 movb 2(%rax), %cl
44 testb %cl, (%rsp,%rcx)
45 jz .L6
46 movb 3(%rax), %cl
47 testb %cl, (%rsp,%rcx)
48 jnz .L3
49 incq %rax
50 .L6: incq %rax
51 .L5: incq %rax
52 .L4: addq $256, %rsp
53 subq %rdx, %rax
54 ret
55 .size strspn,.-strspn