clarify the purpose of this project
[nyanglibc.git] / stdlib / rpmatch.s
blobbbc4c6357019692bd44c27dde2c0b030754afabc
1 .text
2 .p2align 4,,15
3 .type try, @function
4 try:
5 pushq %r15
6 pushq %r14
7 movq %rdi, %r15
8 pushq %r13
9 pushq %r12
10 movl %esi, %edi
11 pushq %rbp
12 pushq %rbx
13 movq %r8, %r12
14 movl %edx, %ebx
15 movl %ecx, %r14d
16 movq %r9, %r13
17 subq $8, %rsp
18 call nl_langinfo
19 movq %rax, %rbp
20 movq (%r12), %rax
21 cmpq %rbp, %rax
22 je .L2
23 testq %rax, %rax
24 je .L3
25 movq %r13, %rdi
26 call __regfree
27 movq $0, (%r12)
28 .L3:
29 movl $1, %edx
30 movq %rbp, %rsi
31 movq %r13, %rdi
32 call __regcomp
33 testl %eax, %eax
34 jne .L5
35 movq %rbp, (%r12)
36 .L2:
37 xorl %r8d, %r8d
38 xorl %ecx, %ecx
39 xorl %edx, %edx
40 movq %r15, %rsi
41 movq %r13, %rdi
42 call __regexec
43 testl %eax, %eax
44 movl %r14d, %eax
45 cmove %ebx, %eax
46 .L1:
47 addq $8, %rsp
48 popq %rbx
49 popq %rbp
50 popq %r12
51 popq %r13
52 popq %r14
53 popq %r15
54 ret
55 .p2align 4,,10
56 .p2align 3
57 .L5:
58 movl $-1, %eax
59 jmp .L1
60 .size try, .-try
61 .p2align 4,,15
62 .globl rpmatch
63 .type rpmatch, @function
64 rpmatch:
65 pushq %rbx
66 leaq yesre.4174(%rip), %r9
67 leaq yesexpr.4172(%rip), %r8
68 xorl %ecx, %ecx
69 movl $1, %edx
70 movl $327680, %esi
71 movq %rdi, %rbx
72 call try
73 testl %eax, %eax
74 je .L15
75 popq %rbx
76 ret
77 .p2align 4,,10
78 .p2align 3
79 .L15:
80 movq %rbx, %rdi
81 leaq nore.4175(%rip), %r9
82 leaq noexpr.4173(%rip), %r8
83 popq %rbx
84 movl $-1, %ecx
85 xorl %edx, %edx
86 movl $327681, %esi
87 jmp try
88 .size rpmatch, .-rpmatch
89 .local nore.4175
90 .comm nore.4175,64,32
91 .local noexpr.4173
92 .comm noexpr.4173,8,8
93 .local yesre.4174
94 .comm yesre.4174,64,32
95 .local yesexpr.4172
96 .comm yesexpr.4172,8,8
97 .hidden __regexec
98 .hidden __regcomp
99 .hidden __regfree
100 .hidden nl_langinfo