clarify the purpose of this project
[nyanglibc.git] / string / strverscmp.s
blob5a30dc2c0893c902e1ed835b9dc98be503852431
1 .text
2 .p2align 4,,15
3 .globl __strverscmp
4 .hidden __strverscmp
5 .type __strverscmp, @function
6 __strverscmp:
7 xorl %eax, %eax
8 cmpq %rsi, %rdi
9 je .L1
10 movzbl (%rdi), %eax
11 movzbl (%rsi), %r9d
12 leaq 1(%rdi), %r8
13 leaq 1(%rsi), %rdi
14 leal -48(%rax), %edx
15 movl %eax, %ecx
16 cmpl $9, %edx
17 setbe %dl
18 xorl %esi, %esi
19 cmpb $48, %al
20 sete %sil
21 movzbl %dl, %edx
22 addl %esi, %edx
23 movzbl %r9b, %esi
24 subl %esi, %eax
25 jne .L3
26 testb %cl, %cl
27 je .L1
28 leaq next_state.8057(%rip), %r11
29 jmp .L4
30 .p2align 4,,10
31 .p2align 3
32 .L5:
33 testb %cl, %cl
34 je .L1
35 .L4:
36 addq $1, %r8
37 movzbl -1(%r8), %eax
38 movslq %edx, %rdx
39 movzbl (%r11,%rdx), %esi
40 addq $1, %rdi
41 movzbl -1(%rdi), %r9d
42 leal -48(%rax), %edx
43 movl %eax, %ecx
44 cmpl $9, %edx
45 setbe %dl
46 xorl %r10d, %r10d
47 cmpb $48, %al
48 sete %r10b
49 movzbl %dl, %edx
50 addl %r10d, %edx
51 addl %esi, %edx
52 movzbl %r9b, %esi
53 subl %esi, %eax
54 je .L5
55 .L3:
56 subl $48, %esi
57 xorl %ecx, %ecx
58 leal (%rdx,%rdx,2), %edx
59 cmpl $9, %esi
60 setbe %cl
61 xorl %esi, %esi
62 cmpb $48, %r9b
63 sete %sil
64 addl %esi, %ecx
65 addl %ecx, %edx
66 leaq result_type.8058(%rip), %rcx
67 movslq %edx, %rdx
68 movzbl (%rcx,%rdx), %edx
69 cmpb $2, %dl
70 je .L1
71 cmpb $3, %dl
72 je .L7
73 movsbl %dl, %eax
74 ret
75 .p2align 4,,10
76 .p2align 3
77 .L10:
78 movl $1, %eax
79 .L1:
80 rep ret
81 .p2align 4,,10
82 .p2align 3
83 .L8:
84 addq $1, %rdi
85 cmpl $9, %edx
86 ja .L10
87 .L7:
88 addq $1, %r8
89 movzbl -1(%r8), %ecx
90 movzbl (%rdi), %edx
91 subl $48, %ecx
92 subl $48, %edx
93 cmpl $9, %ecx
94 jbe .L8
95 cmpl $9, %edx
96 movl $-1, %edx
97 cmovbe %edx, %eax
98 ret
99 .size __strverscmp, .-__strverscmp
100 .weak strverscmp
101 .set strverscmp,__strverscmp
102 .section .rodata
103 .align 32
104 .type result_type.8058, @object
105 .size result_type.8058, 36
106 result_type.8058:
107 .byte 2
108 .byte 2
109 .byte 2
110 .byte 2
111 .byte 3
112 .byte 2
113 .byte 2
114 .byte 2
115 .byte 2
116 .byte 2
117 .byte -1
118 .byte -1
119 .byte 1
120 .byte 3
121 .byte 3
122 .byte 1
123 .byte 3
124 .byte 3
125 .byte 2
126 .byte 2
127 .byte 2
128 .byte 2
129 .byte 2
130 .byte 2
131 .byte 2
132 .byte 2
133 .byte 2
134 .byte 2
135 .byte 1
136 .byte 1
137 .byte -1
138 .byte 2
139 .byte 2
140 .byte -1
141 .byte 2
142 .byte 2
143 .align 8
144 .type next_state.8057, @object
145 .size next_state.8057, 12
146 next_state.8057:
147 .byte 0
148 .byte 3
149 .byte 9
150 .byte 0
151 .byte 3
152 .byte 3
153 .byte 0
154 .byte 6
155 .byte 6
156 .byte 0
157 .byte 6
158 .byte 9