u64toa_text_amd64.go raw
1 // +build amd64
2 // Code generated by asm2asm, DO NOT EDIT.
3
4 package avx2
5
6 var _text_u64toa = []byte{
7 // .p2align 4, 0x00
8 // LCPI0_0
9 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, // .quad 3518437209
10 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000008 .quad 3518437209
11 //0x00000010 LCPI0_3
12 0x0a, 0x00, //0x00000010 .word 10
13 0x0a, 0x00, //0x00000012 .word 10
14 0x0a, 0x00, //0x00000014 .word 10
15 0x0a, 0x00, //0x00000016 .word 10
16 0x0a, 0x00, //0x00000018 .word 10
17 0x0a, 0x00, //0x0000001a .word 10
18 0x0a, 0x00, //0x0000001c .word 10
19 0x0a, 0x00, //0x0000001e .word 10
20 //0x00000020 LCPI0_4
21 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000020 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000'
22 //0x00000030 .p2align 3, 0x00
23 //0x00000030 LCPI0_1
24 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00000030 .quad -9223315738079846203
25 //0x00000038 LCPI0_2
26 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00000038 .quad -9223336852348469120
27 //0x00000040 .p2align 4, 0x90
28 //0x00000040 _u64toa
29 0x55, //0x00000040 pushq %rbp
30 0x48, 0x89, 0xe5, //0x00000041 movq %rsp, %rbp
31 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000044 cmpq $9999, %rsi
32 0x0f, 0x87, 0xa5, 0x00, 0x00, 0x00, //0x0000004b ja LBB0_8
33 0x0f, 0xb7, 0xc6, //0x00000051 movzwl %si, %eax
34 0xc1, 0xe8, 0x02, //0x00000054 shrl $2, %eax
35 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000057 imull $5243, %eax, %eax
36 0xc1, 0xe8, 0x11, //0x0000005d shrl $17, %eax
37 0x48, 0x8d, 0x14, 0x00, //0x00000060 leaq (%rax,%rax), %rdx
38 0x6b, 0xc0, 0x64, //0x00000064 imull $100, %eax, %eax
39 0x89, 0xf1, //0x00000067 movl %esi, %ecx
40 0x29, 0xc1, //0x00000069 subl %eax, %ecx
41 0x0f, 0xb7, 0xc1, //0x0000006b movzwl %cx, %eax
42 0x48, 0x01, 0xc0, //0x0000006e addq %rax, %rax
43 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000071 cmpl $1000, %esi
44 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000077 jb LBB0_3
45 0x48, 0x8d, 0x0d, 0x7c, 0x04, 0x00, 0x00, //0x0000007d leaq $1148(%rip), %rcx /* _Digits+0(%rip) */
46 0x8a, 0x0c, 0x0a, //0x00000084 movb (%rdx,%rcx), %cl
47 0x88, 0x0f, //0x00000087 movb %cl, (%rdi)
48 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000089 movl $1, %ecx
49 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x0000008e jmp LBB0_4
50 //0x00000093 LBB0_3
51 0x31, 0xc9, //0x00000093 xorl %ecx, %ecx
52 0x83, 0xfe, 0x64, //0x00000095 cmpl $100, %esi
53 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x00000098 jb LBB0_5
54 //0x0000009e LBB0_4
55 0x0f, 0xb7, 0xd2, //0x0000009e movzwl %dx, %edx
56 0x48, 0x83, 0xca, 0x01, //0x000000a1 orq $1, %rdx
57 0x48, 0x8d, 0x35, 0x54, 0x04, 0x00, 0x00, //0x000000a5 leaq $1108(%rip), %rsi /* _Digits+0(%rip) */
58 0x8a, 0x14, 0x32, //0x000000ac movb (%rdx,%rsi), %dl
59 0x89, 0xce, //0x000000af movl %ecx, %esi
60 0x83, 0xc1, 0x01, //0x000000b1 addl $1, %ecx
61 0x88, 0x14, 0x37, //0x000000b4 movb %dl, (%rdi,%rsi)
62 //0x000000b7 LBB0_6
63 0x48, 0x8d, 0x15, 0x42, 0x04, 0x00, 0x00, //0x000000b7 leaq $1090(%rip), %rdx /* _Digits+0(%rip) */
64 0x8a, 0x14, 0x10, //0x000000be movb (%rax,%rdx), %dl
65 0x89, 0xce, //0x000000c1 movl %ecx, %esi
66 0x83, 0xc1, 0x01, //0x000000c3 addl $1, %ecx
67 0x88, 0x14, 0x37, //0x000000c6 movb %dl, (%rdi,%rsi)
68 //0x000000c9 LBB0_7
69 0x0f, 0xb7, 0xc0, //0x000000c9 movzwl %ax, %eax
70 0x48, 0x83, 0xc8, 0x01, //0x000000cc orq $1, %rax
71 0x48, 0x8d, 0x15, 0x29, 0x04, 0x00, 0x00, //0x000000d0 leaq $1065(%rip), %rdx /* _Digits+0(%rip) */
72 0x8a, 0x04, 0x10, //0x000000d7 movb (%rax,%rdx), %al
73 0x89, 0xca, //0x000000da movl %ecx, %edx
74 0x83, 0xc1, 0x01, //0x000000dc addl $1, %ecx
75 0x88, 0x04, 0x17, //0x000000df movb %al, (%rdi,%rdx)
76 0x89, 0xc8, //0x000000e2 movl %ecx, %eax
77 0x5d, //0x000000e4 popq %rbp
78 0xc3, //0x000000e5 retq
79 //0x000000e6 LBB0_5
80 0x31, 0xc9, //0x000000e6 xorl %ecx, %ecx
81 0x83, 0xfe, 0x0a, //0x000000e8 cmpl $10, %esi
82 0x0f, 0x83, 0xc6, 0xff, 0xff, 0xff, //0x000000eb jae LBB0_6
83 0xe9, 0xd3, 0xff, 0xff, 0xff, //0x000000f1 jmp LBB0_7
84 //0x000000f6 LBB0_8
85 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x000000f6 cmpq $99999999, %rsi
86 0x0f, 0x87, 0x20, 0x01, 0x00, 0x00, //0x000000fd ja LBB0_16
87 0x89, 0xf0, //0x00000103 movl %esi, %eax
88 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000105 movl $3518437209, %edx
89 0x48, 0x0f, 0xaf, 0xd0, //0x0000010a imulq %rax, %rdx
90 0x48, 0xc1, 0xea, 0x2d, //0x0000010e shrq $45, %rdx
91 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x00000112 imull $10000, %edx, %r8d
92 0x89, 0xf1, //0x00000119 movl %esi, %ecx
93 0x44, 0x29, 0xc1, //0x0000011b subl %r8d, %ecx
94 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x0000011e imulq $1125899907, %rax, %r10
95 0x49, 0xc1, 0xea, 0x31, //0x00000125 shrq $49, %r10
96 0x41, 0x83, 0xe2, 0xfe, //0x00000129 andl $-2, %r10d
97 0x0f, 0xb7, 0xc2, //0x0000012d movzwl %dx, %eax
98 0xc1, 0xe8, 0x02, //0x00000130 shrl $2, %eax
99 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000133 imull $5243, %eax, %eax
100 0xc1, 0xe8, 0x11, //0x00000139 shrl $17, %eax
101 0x6b, 0xc0, 0x64, //0x0000013c imull $100, %eax, %eax
102 0x29, 0xc2, //0x0000013f subl %eax, %edx
103 0x44, 0x0f, 0xb7, 0xca, //0x00000141 movzwl %dx, %r9d
104 0x4d, 0x01, 0xc9, //0x00000145 addq %r9, %r9
105 0x0f, 0xb7, 0xc1, //0x00000148 movzwl %cx, %eax
106 0xc1, 0xe8, 0x02, //0x0000014b shrl $2, %eax
107 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000014e imull $5243, %eax, %eax
108 0xc1, 0xe8, 0x11, //0x00000154 shrl $17, %eax
109 0x4c, 0x8d, 0x04, 0x00, //0x00000157 leaq (%rax,%rax), %r8
110 0x6b, 0xc0, 0x64, //0x0000015b imull $100, %eax, %eax
111 0x29, 0xc1, //0x0000015e subl %eax, %ecx
112 0x44, 0x0f, 0xb7, 0xd9, //0x00000160 movzwl %cx, %r11d
113 0x4d, 0x01, 0xdb, //0x00000164 addq %r11, %r11
114 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000167 cmpl $10000000, %esi
115 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x0000016d jb LBB0_11
116 0x48, 0x8d, 0x05, 0x86, 0x03, 0x00, 0x00, //0x00000173 leaq $902(%rip), %rax /* _Digits+0(%rip) */
117 0x41, 0x8a, 0x04, 0x02, //0x0000017a movb (%r10,%rax), %al
118 0x88, 0x07, //0x0000017e movb %al, (%rdi)
119 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000180 movl $1, %ecx
120 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000185 jmp LBB0_12
121 //0x0000018a LBB0_11
122 0x31, 0xc9, //0x0000018a xorl %ecx, %ecx
123 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x0000018c cmpl $1000000, %esi
124 0x0f, 0x82, 0x78, 0x00, 0x00, 0x00, //0x00000192 jb LBB0_13
125 //0x00000198 LBB0_12
126 0x44, 0x89, 0xd0, //0x00000198 movl %r10d, %eax
127 0x48, 0x83, 0xc8, 0x01, //0x0000019b orq $1, %rax
128 0x48, 0x8d, 0x35, 0x5a, 0x03, 0x00, 0x00, //0x0000019f leaq $858(%rip), %rsi /* _Digits+0(%rip) */
129 0x8a, 0x04, 0x30, //0x000001a6 movb (%rax,%rsi), %al
130 0x89, 0xce, //0x000001a9 movl %ecx, %esi
131 0x83, 0xc1, 0x01, //0x000001ab addl $1, %ecx
132 0x88, 0x04, 0x37, //0x000001ae movb %al, (%rdi,%rsi)
133 //0x000001b1 LBB0_14
134 0x48, 0x8d, 0x05, 0x48, 0x03, 0x00, 0x00, //0x000001b1 leaq $840(%rip), %rax /* _Digits+0(%rip) */
135 0x41, 0x8a, 0x04, 0x01, //0x000001b8 movb (%r9,%rax), %al
136 0x89, 0xce, //0x000001bc movl %ecx, %esi
137 0x83, 0xc1, 0x01, //0x000001be addl $1, %ecx
138 0x88, 0x04, 0x37, //0x000001c1 movb %al, (%rdi,%rsi)
139 //0x000001c4 LBB0_15
140 0x41, 0x0f, 0xb7, 0xc1, //0x000001c4 movzwl %r9w, %eax
141 0x48, 0x83, 0xc8, 0x01, //0x000001c8 orq $1, %rax
142 0x48, 0x8d, 0x35, 0x2d, 0x03, 0x00, 0x00, //0x000001cc leaq $813(%rip), %rsi /* _Digits+0(%rip) */
143 0x8a, 0x04, 0x30, //0x000001d3 movb (%rax,%rsi), %al
144 0x89, 0xca, //0x000001d6 movl %ecx, %edx
145 0x88, 0x04, 0x17, //0x000001d8 movb %al, (%rdi,%rdx)
146 0x41, 0x8a, 0x04, 0x30, //0x000001db movb (%r8,%rsi), %al
147 0x88, 0x44, 0x17, 0x01, //0x000001df movb %al, $1(%rdi,%rdx)
148 0x41, 0x0f, 0xb7, 0xc0, //0x000001e3 movzwl %r8w, %eax
149 0x48, 0x83, 0xc8, 0x01, //0x000001e7 orq $1, %rax
150 0x8a, 0x04, 0x30, //0x000001eb movb (%rax,%rsi), %al
151 0x88, 0x44, 0x17, 0x02, //0x000001ee movb %al, $2(%rdi,%rdx)
152 0x41, 0x8a, 0x04, 0x33, //0x000001f2 movb (%r11,%rsi), %al
153 0x88, 0x44, 0x17, 0x03, //0x000001f6 movb %al, $3(%rdi,%rdx)
154 0x41, 0x0f, 0xb7, 0xc3, //0x000001fa movzwl %r11w, %eax
155 0x48, 0x83, 0xc8, 0x01, //0x000001fe orq $1, %rax
156 0x8a, 0x04, 0x30, //0x00000202 movb (%rax,%rsi), %al
157 0x83, 0xc1, 0x05, //0x00000205 addl $5, %ecx
158 0x88, 0x44, 0x17, 0x04, //0x00000208 movb %al, $4(%rdi,%rdx)
159 0x89, 0xc8, //0x0000020c movl %ecx, %eax
160 0x5d, //0x0000020e popq %rbp
161 0xc3, //0x0000020f retq
162 //0x00000210 LBB0_13
163 0x31, 0xc9, //0x00000210 xorl %ecx, %ecx
164 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00000212 cmpl $100000, %esi
165 0x0f, 0x83, 0x93, 0xff, 0xff, 0xff, //0x00000218 jae LBB0_14
166 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000021e jmp LBB0_15
167 //0x00000223 LBB0_16
168 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000223 movabsq $9999999999999999, %rax
169 0x48, 0x39, 0xc6, //0x0000022d cmpq %rax, %rsi
170 0x0f, 0x87, 0x04, 0x01, 0x00, 0x00, //0x00000230 ja LBB0_18
171 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000236 movabsq $-6067343680855748867, %rcx
172 0x48, 0x89, 0xf0, //0x00000240 movq %rsi, %rax
173 0x48, 0xf7, 0xe1, //0x00000243 mulq %rcx
174 0x48, 0xc1, 0xea, 0x1a, //0x00000246 shrq $26, %rdx
175 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x0000024a imull $100000000, %edx, %eax
176 0x29, 0xc6, //0x00000250 subl %eax, %esi
177 0xc5, 0xf9, 0x6e, 0xc2, //0x00000252 vmovd %edx, %xmm0
178 0xc5, 0xfa, 0x6f, 0x0d, 0xa2, 0xfd, 0xff, 0xff, //0x00000256 vmovdqu $-606(%rip), %xmm1 /* LCPI0_0+0(%rip) */
179 0xc5, 0xf9, 0xf4, 0xd1, //0x0000025e vpmuludq %xmm1, %xmm0, %xmm2
180 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x00000262 vpsrlq $45, %xmm2, %xmm2
181 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000267 movl $10000, %eax
182 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x0000026c vmovq %rax, %xmm3
183 0xc5, 0xe9, 0xf4, 0xe3, //0x00000271 vpmuludq %xmm3, %xmm2, %xmm4
184 0xc5, 0xf9, 0xfa, 0xc4, //0x00000275 vpsubd %xmm4, %xmm0, %xmm0
185 0xc5, 0xe9, 0x61, 0xc0, //0x00000279 vpunpcklwd %xmm0, %xmm2, %xmm0
186 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x0000027d vpsllq $2, %xmm0, %xmm0
187 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x00000282 vpshuflw $80, %xmm0, %xmm0
188 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00000287 vpshufd $80, %xmm0, %xmm0
189 0xc4, 0xe2, 0x79, 0x59, 0x15, 0x9b, 0xfd, 0xff, 0xff, //0x0000028c vpbroadcastq $-613(%rip), %xmm2 /* LCPI0_1+0(%rip) */
190 0xc4, 0xe2, 0x79, 0x59, 0x25, 0x9a, 0xfd, 0xff, 0xff, //0x00000295 vpbroadcastq $-614(%rip), %xmm4 /* LCPI0_2+0(%rip) */
191 0xc5, 0xf9, 0xe4, 0xc2, //0x0000029e vpmulhuw %xmm2, %xmm0, %xmm0
192 0xc5, 0xf9, 0xe4, 0xc4, //0x000002a2 vpmulhuw %xmm4, %xmm0, %xmm0
193 0xc5, 0xfa, 0x6f, 0x2d, 0x62, 0xfd, 0xff, 0xff, //0x000002a6 vmovdqu $-670(%rip), %xmm5 /* LCPI0_3+0(%rip) */
194 0xc5, 0xf9, 0xd5, 0xf5, //0x000002ae vpmullw %xmm5, %xmm0, %xmm6
195 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000002b2 vpsllq $16, %xmm6, %xmm6
196 0xc5, 0xf9, 0xf9, 0xc6, //0x000002b7 vpsubw %xmm6, %xmm0, %xmm0
197 0xc5, 0xf9, 0x6e, 0xf6, //0x000002bb vmovd %esi, %xmm6
198 0xc5, 0xc9, 0xf4, 0xc9, //0x000002bf vpmuludq %xmm1, %xmm6, %xmm1
199 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000002c3 vpsrlq $45, %xmm1, %xmm1
200 0xc5, 0xf1, 0xf4, 0xdb, //0x000002c8 vpmuludq %xmm3, %xmm1, %xmm3
201 0xc5, 0xc9, 0xfa, 0xdb, //0x000002cc vpsubd %xmm3, %xmm6, %xmm3
202 0xc5, 0xf1, 0x61, 0xcb, //0x000002d0 vpunpcklwd %xmm3, %xmm1, %xmm1
203 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x000002d4 vpsllq $2, %xmm1, %xmm1
204 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x000002d9 vpshuflw $80, %xmm1, %xmm1
205 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x000002de vpshufd $80, %xmm1, %xmm1
206 0xc5, 0xf1, 0xe4, 0xca, //0x000002e3 vpmulhuw %xmm2, %xmm1, %xmm1
207 0xc5, 0xf1, 0xe4, 0xcc, //0x000002e7 vpmulhuw %xmm4, %xmm1, %xmm1
208 0xc5, 0xf1, 0xd5, 0xd5, //0x000002eb vpmullw %xmm5, %xmm1, %xmm2
209 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000002ef vpsllq $16, %xmm2, %xmm2
210 0xc5, 0xf1, 0xf9, 0xca, //0x000002f4 vpsubw %xmm2, %xmm1, %xmm1
211 0xc5, 0xf9, 0x67, 0xc1, //0x000002f8 vpackuswb %xmm1, %xmm0, %xmm0
212 0xc5, 0xf9, 0xfc, 0x0d, 0x1c, 0xfd, 0xff, 0xff, //0x000002fc vpaddb $-740(%rip), %xmm0, %xmm1 /* LCPI0_4+0(%rip) */
213 0xc5, 0xe9, 0xef, 0xd2, //0x00000304 vpxor %xmm2, %xmm2, %xmm2
214 0xc5, 0xf9, 0x74, 0xc2, //0x00000308 vpcmpeqb %xmm2, %xmm0, %xmm0
215 0xc5, 0xf9, 0xd7, 0xc0, //0x0000030c vpmovmskb %xmm0, %eax
216 0xf7, 0xd0, //0x00000310 notl %eax
217 0x0d, 0x00, 0x80, 0x00, 0x00, //0x00000312 orl $32768, %eax
218 0x0f, 0xbc, 0xc0, //0x00000317 bsfl %eax, %eax
219 0xb9, 0x10, 0x00, 0x00, 0x00, //0x0000031a movl $16, %ecx
220 0x29, 0xc1, //0x0000031f subl %eax, %ecx
221 0x48, 0xc1, 0xe0, 0x04, //0x00000321 shlq $4, %rax
222 0x48, 0x8d, 0x15, 0xa4, 0x02, 0x00, 0x00, //0x00000325 leaq $676(%rip), %rdx /* _VecShiftShuffles+0(%rip) */
223 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x10, //0x0000032c vpshufb (%rax,%rdx), %xmm1, %xmm0
224 0xc5, 0xfa, 0x7f, 0x07, //0x00000332 vmovdqu %xmm0, (%rdi)
225 0x89, 0xc8, //0x00000336 movl %ecx, %eax
226 0x5d, //0x00000338 popq %rbp
227 0xc3, //0x00000339 retq
228 //0x0000033a LBB0_18
229 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x0000033a movabsq $4153837486827862103, %rcx
230 0x48, 0x89, 0xf0, //0x00000344 movq %rsi, %rax
231 0x48, 0xf7, 0xe1, //0x00000347 mulq %rcx
232 0x48, 0xc1, 0xea, 0x33, //0x0000034a shrq $51, %rdx
233 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000034e movabsq $10000000000000000, %rax
234 0x48, 0x0f, 0xaf, 0xc2, //0x00000358 imulq %rdx, %rax
235 0x48, 0x29, 0xc6, //0x0000035c subq %rax, %rsi
236 0x83, 0xfa, 0x09, //0x0000035f cmpl $9, %edx
237 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x00000362 ja LBB0_20
238 0x80, 0xc2, 0x30, //0x00000368 addb $48, %dl
239 0x88, 0x17, //0x0000036b movb %dl, (%rdi)
240 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000036d movl $1, %ecx
241 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x00000372 jmp LBB0_25
242 //0x00000377 LBB0_20
243 0x83, 0xfa, 0x63, //0x00000377 cmpl $99, %edx
244 0x0f, 0x87, 0x1a, 0x00, 0x00, 0x00, //0x0000037a ja LBB0_22
245 0x89, 0xd0, //0x00000380 movl %edx, %eax
246 0x48, 0x8d, 0x0d, 0x77, 0x01, 0x00, 0x00, //0x00000382 leaq $375(%rip), %rcx /* _Digits+0(%rip) */
247 0x0f, 0xb7, 0x04, 0x41, //0x00000389 movzwl (%rcx,%rax,2), %eax
248 0x66, 0x89, 0x07, //0x0000038d movw %ax, (%rdi)
249 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00000390 movl $2, %ecx
250 0xe9, 0x82, 0x00, 0x00, 0x00, //0x00000395 jmp LBB0_25
251 //0x0000039a LBB0_22
252 0x89, 0xd0, //0x0000039a movl %edx, %eax
253 0xc1, 0xe8, 0x02, //0x0000039c shrl $2, %eax
254 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000039f imull $5243, %eax, %eax
255 0xc1, 0xe8, 0x11, //0x000003a5 shrl $17, %eax
256 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x000003a8 cmpl $999, %edx
257 0x0f, 0x87, 0x37, 0x00, 0x00, 0x00, //0x000003ae ja LBB0_24
258 0x83, 0xc0, 0x30, //0x000003b4 addl $48, %eax
259 0x88, 0x07, //0x000003b7 movb %al, (%rdi)
260 0x0f, 0xb7, 0xc2, //0x000003b9 movzwl %dx, %eax
261 0x89, 0xc1, //0x000003bc movl %eax, %ecx
262 0xc1, 0xe9, 0x02, //0x000003be shrl $2, %ecx
263 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x000003c1 imull $5243, %ecx, %ecx
264 0xc1, 0xe9, 0x11, //0x000003c7 shrl $17, %ecx
265 0x6b, 0xc9, 0x64, //0x000003ca imull $100, %ecx, %ecx
266 0x29, 0xc8, //0x000003cd subl %ecx, %eax
267 0x0f, 0xb7, 0xc0, //0x000003cf movzwl %ax, %eax
268 0x48, 0x8d, 0x0d, 0x27, 0x01, 0x00, 0x00, //0x000003d2 leaq $295(%rip), %rcx /* _Digits+0(%rip) */
269 0x0f, 0xb7, 0x04, 0x41, //0x000003d9 movzwl (%rcx,%rax,2), %eax
270 0x66, 0x89, 0x47, 0x01, //0x000003dd movw %ax, $1(%rdi)
271 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000003e1 movl $3, %ecx
272 0xe9, 0x31, 0x00, 0x00, 0x00, //0x000003e6 jmp LBB0_25
273 //0x000003eb LBB0_24
274 0x6b, 0xc8, 0x64, //0x000003eb imull $100, %eax, %ecx
275 0x29, 0xca, //0x000003ee subl %ecx, %edx
276 0x0f, 0xb7, 0xc0, //0x000003f0 movzwl %ax, %eax
277 0x48, 0x8d, 0x0d, 0x06, 0x01, 0x00, 0x00, //0x000003f3 leaq $262(%rip), %rcx /* _Digits+0(%rip) */
278 0x0f, 0xb7, 0x04, 0x41, //0x000003fa movzwl (%rcx,%rax,2), %eax
279 0x66, 0x89, 0x07, //0x000003fe movw %ax, (%rdi)
280 0x0f, 0xb7, 0xc2, //0x00000401 movzwl %dx, %eax
281 0x8a, 0x14, 0x41, //0x00000404 movb (%rcx,%rax,2), %dl
282 0x48, 0x01, 0xc0, //0x00000407 addq %rax, %rax
283 0x88, 0x57, 0x02, //0x0000040a movb %dl, $2(%rdi)
284 0x0f, 0xb7, 0xc0, //0x0000040d movzwl %ax, %eax
285 0x8a, 0x44, 0x08, 0x01, //0x00000410 movb $1(%rax,%rcx), %al
286 0x88, 0x47, 0x03, //0x00000414 movb %al, $3(%rdi)
287 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00000417 movl $4, %ecx
288 //0x0000041c LBB0_25
289 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000041c movabsq $-6067343680855748867, %rdx
290 0x48, 0x89, 0xf0, //0x00000426 movq %rsi, %rax
291 0x48, 0xf7, 0xe2, //0x00000429 mulq %rdx
292 0x48, 0xc1, 0xea, 0x1a, //0x0000042c shrq $26, %rdx
293 0xc5, 0xf9, 0x6e, 0xc2, //0x00000430 vmovd %edx, %xmm0
294 0xc5, 0xfa, 0x6f, 0x0d, 0xc4, 0xfb, 0xff, 0xff, //0x00000434 vmovdqu $-1084(%rip), %xmm1 /* LCPI0_0+0(%rip) */
295 0xc5, 0xf9, 0xf4, 0xd1, //0x0000043c vpmuludq %xmm1, %xmm0, %xmm2
296 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x00000440 vpsrlq $45, %xmm2, %xmm2
297 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000445 movl $10000, %eax
298 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x0000044a vmovq %rax, %xmm3
299 0xc5, 0xe9, 0xf4, 0xe3, //0x0000044f vpmuludq %xmm3, %xmm2, %xmm4
300 0xc5, 0xf9, 0xfa, 0xc4, //0x00000453 vpsubd %xmm4, %xmm0, %xmm0
301 0xc5, 0xe9, 0x61, 0xc0, //0x00000457 vpunpcklwd %xmm0, %xmm2, %xmm0
302 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x0000045b vpsllq $2, %xmm0, %xmm0
303 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x00000460 vpshuflw $80, %xmm0, %xmm0
304 0xc4, 0xe2, 0x79, 0x59, 0x15, 0xc2, 0xfb, 0xff, 0xff, //0x00000465 vpbroadcastq $-1086(%rip), %xmm2 /* LCPI0_1+0(%rip) */
305 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x0000046e vpshufd $80, %xmm0, %xmm0
306 0xc5, 0xf9, 0xe4, 0xc2, //0x00000473 vpmulhuw %xmm2, %xmm0, %xmm0
307 0xc4, 0xe2, 0x79, 0x59, 0x25, 0xb8, 0xfb, 0xff, 0xff, //0x00000477 vpbroadcastq $-1096(%rip), %xmm4 /* LCPI0_2+0(%rip) */
308 0xc5, 0xf9, 0xe4, 0xc4, //0x00000480 vpmulhuw %xmm4, %xmm0, %xmm0
309 0xc5, 0xfa, 0x6f, 0x2d, 0x84, 0xfb, 0xff, 0xff, //0x00000484 vmovdqu $-1148(%rip), %xmm5 /* LCPI0_3+0(%rip) */
310 0xc5, 0xf9, 0xd5, 0xf5, //0x0000048c vpmullw %xmm5, %xmm0, %xmm6
311 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x00000490 vpsllq $16, %xmm6, %xmm6
312 0xc5, 0xf9, 0xf9, 0xc6, //0x00000495 vpsubw %xmm6, %xmm0, %xmm0
313 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00000499 imull $100000000, %edx, %eax
314 0x29, 0xc6, //0x0000049f subl %eax, %esi
315 0xc5, 0xf9, 0x6e, 0xf6, //0x000004a1 vmovd %esi, %xmm6
316 0xc5, 0xc9, 0xf4, 0xc9, //0x000004a5 vpmuludq %xmm1, %xmm6, %xmm1
317 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000004a9 vpsrlq $45, %xmm1, %xmm1
318 0xc5, 0xf1, 0xf4, 0xdb, //0x000004ae vpmuludq %xmm3, %xmm1, %xmm3
319 0xc5, 0xc9, 0xfa, 0xdb, //0x000004b2 vpsubd %xmm3, %xmm6, %xmm3
320 0xc5, 0xf1, 0x61, 0xcb, //0x000004b6 vpunpcklwd %xmm3, %xmm1, %xmm1
321 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x000004ba vpsllq $2, %xmm1, %xmm1
322 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x000004bf vpshuflw $80, %xmm1, %xmm1
323 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x000004c4 vpshufd $80, %xmm1, %xmm1
324 0xc5, 0xf1, 0xe4, 0xca, //0x000004c9 vpmulhuw %xmm2, %xmm1, %xmm1
325 0xc5, 0xf1, 0xe4, 0xcc, //0x000004cd vpmulhuw %xmm4, %xmm1, %xmm1
326 0xc5, 0xf1, 0xd5, 0xd5, //0x000004d1 vpmullw %xmm5, %xmm1, %xmm2
327 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000004d5 vpsllq $16, %xmm2, %xmm2
328 0xc5, 0xf1, 0xf9, 0xca, //0x000004da vpsubw %xmm2, %xmm1, %xmm1
329 0xc5, 0xf9, 0x67, 0xc1, //0x000004de vpackuswb %xmm1, %xmm0, %xmm0
330 0xc5, 0xf9, 0xfc, 0x05, 0x36, 0xfb, 0xff, 0xff, //0x000004e2 vpaddb $-1226(%rip), %xmm0, %xmm0 /* LCPI0_4+0(%rip) */
331 0x89, 0xc8, //0x000004ea movl %ecx, %eax
332 0xc5, 0xfa, 0x7f, 0x04, 0x07, //0x000004ec vmovdqu %xmm0, (%rdi,%rax)
333 0x83, 0xc9, 0x10, //0x000004f1 orl $16, %ecx
334 0x89, 0xc8, //0x000004f4 movl %ecx, %eax
335 0x5d, //0x000004f6 popq %rbp
336 0xc3, //0x000004f7 retq
337 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000004f8 .p2align 4, 0x00
338 //0x00000500 _Digits
339 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x00000500 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607'
340 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x00000510 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415'
341 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x00000520 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223'
342 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x00000530 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031'
343 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x00000540 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839'
344 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x00000550 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647'
345 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x00000560 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455'
346 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x00000570 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263'
347 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x00000580 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071'
348 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x00000590 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879'
349 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x000005a0 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687'
350 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x000005b0 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495'
351 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x000005c0 QUAD $0x3939383937393639 // .ascii 8, '96979899'
352 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000005c8 .p2align 4, 0x00
353 //0x000005d0 _VecShiftShuffles
354 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x000005d0 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'
355 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x000005e0 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff'
356 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x000005f0 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff'
357 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x00000600 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff'
358 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x00000610 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff'
359 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000620 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff'
360 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000630 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff'
361 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000640 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff'
362 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000650 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff'
363 }
364
365