1// +build !noasm !appengine
2// Code generated by asm2asm, DO NOT EDIT.
3
4#include "go_asm.h"
5#include "funcdata.h"
6#include "textflag.h"
7
8TEXT ·__i64toa_entry__(SB), NOSPLIT, $16
9 NO_LOCAL_POINTERS
10 WORD $0x100000a0 // adr x0, .+20
11 MOVD R0, ret(FP)
12 RET
13 // .p2align 3, 0x00
14lCPI0_0:
15 WORD $0x147b20c5
16 WORD $0x80003334
17 // // .word 8389
18// .word 5243
19// .word 13108
20// .word 32768
21
22lCPI0_1:
23 WORD $0x08000080
24 WORD $0x80002000
25 // // .word 128
26// .word 2048
27// .word 8192
28// .word 32768
29
30lCPI0_2:
31 WORD $0x08040201
32 WORD $0x80402010
33 WORD $0x08040201
34 WORD $0x80402010
35 // // .byte 1
36// .byte 2
37// .byte 4
38// .byte 8
39// .byte 16
40// .byte 32
41// .byte 64
42// .byte 128
43// .byte 1
44// .byte 2
45// .byte 4
46// .byte 8
47// .byte 16
48// .byte 32
49// .byte 64
50// .byte 128
51
52lCPI0_3:
53 WORD $0x09010800
54 WORD $0x0b030a02
55 WORD $0x0d050c04
56 WORD $0x0f070e06
57 // // .byte 0
58// .byte 8
59// .byte 1
60// .byte 9
61// .byte 2
62// .byte 10
63// .byte 3
64// .byte 11
65// .byte 4
66// .byte 12
67// .byte 5
68// .byte 13
69// .byte 6
70// .byte 14
71// .byte 7
72// .byte 15
73
74_i64toa:
75 WORD $0xd10083ff // sub sp, sp, #32
76 WORD $0xa900fbfd // stp fp, lr, [sp, #8]
77 WORD $0xa93ffbfd // stp fp, lr, [sp, #-8]
78 WORD $0xd10023fd // sub fp, sp, #8
79 WORD $0xb7f80641 // tbnz x1, #63, LBB0_10 $200(%rip)
80 WORD $0xd344fc28 // lsr x8, x1, #4
81 WORD $0xf109c11f // cmp x8, #624
82 WORD $0x540008e8 // b.hi LBB0_13 $284(%rip)
83 WORD $0x53023c28 // ubfx w8, w1, #2, #14
84 WORD $0x52828f69 // mov w9, #5243
85 WORD $0x1b097d08 // mul w8, w8, w9
86 WORD $0x53117d08 // lsr w8, w8, #17
87 WORD $0xd37f7d09 // ubfiz x9, x8, #1, #32
88 WORD $0x52800c8a // mov w10, #100
89 WORD $0x1b0a8508 // msub w8, w8, w10, w1
90 WORD $0x92403d08 // and x8, x8, #0xffff
91 WORD $0xd37ff908 // lsl x8, x8, #1
92 WORD $0x710fa03f // cmp w1, #1000
93 WORD $0x540000e3 // b.lo LBB0_4 $28(%rip)
94Lloh0:
95 WORD $0x100054ea // adr x10, _Digits $2716(%rip)
96Lloh1:
97 WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip)
98 WORD $0x3869694a // ldrb w10, [x10, x9]
99 WORD $0x3900000a // strb w10, [x0]
100 WORD $0x5280002a // mov w10, #1
101 WORD $0x14000004 // b LBB0_6 $16(%rip)
102LBB0_4:
103 WORD $0x7101903f // cmp w1, #100
104 WORD $0x540002e3 // b.lo LBB0_9 $92(%rip)
105 WORD $0x5280000a // mov w10, #0
106LBB0_6:
107Lloh2:
108 WORD $0x100053cb // adr x11, _Digits $2680(%rip)
109Lloh3:
110 WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip)
111 WORD $0x8b294169 // add x9, x11, w9, uxtw
112 WORD $0x3940052b // ldrb w11, [x9, #1]
113 WORD $0x11000549 // add w9, w10, #1
114 WORD $0x382a480b // strb w11, [x0, w10, uxtw]
115LBB0_7:
116Lloh4:
117 WORD $0x1000530a // adr x10, _Digits $2656(%rip)
118Lloh5:
119 WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip)
120 WORD $0x3868694b // ldrb w11, [x10, x8]
121 WORD $0x1100052a // add w10, w9, #1
122 WORD $0x3829480b // strb w11, [x0, w9, uxtw]
123LBB0_8:
124Lloh6:
125 WORD $0x10005269 // adr x9, _Digits $2636(%rip)
126Lloh7:
127 WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
128 WORD $0x8b282128 // add x8, x9, w8, uxth
129 WORD $0x39400509 // ldrb w9, [x8, #1]
130 WORD $0x11000548 // add w8, w10, #1
131 WORD $0x382a4809 // strb w9, [x0, w10, uxtw]
132 WORD $0xaa0803e0 // mov x0, x8
133 WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
134 WORD $0x910083ff // add sp, sp, #32
135 WORD $0xd65f03c0 // ret
136LBB0_9:
137 WORD $0x52800009 // mov w9, #0
138 WORD $0x5280000a // mov w10, #0
139 WORD $0x7100283f // cmp w1, #10
140 WORD $0x54fffdc2 // b.hs LBB0_7 $-72(%rip)
141 WORD $0x17fffff2 // b LBB0_8 $-56(%rip)
142LBB0_10:
143 WORD $0x528005a9 // mov w9, #45
144 WORD $0xaa0003e8 // mov x8, x0
145 WORD $0x38001509 // strb w9, [x8], #1
146 WORD $0xcb0103e9 // neg x9, x1
147 WORD $0xd344fd2a // lsr x10, x9, #4
148 WORD $0xf109c15f // cmp x10, #624
149 WORD $0x54001068 // b.hi LBB0_28 $524(%rip)
150 WORD $0x53023d2a // ubfx w10, w9, #2, #14
151 WORD $0x52828f6b // mov w11, #5243
152 WORD $0x1b0b7d4a // mul w10, w10, w11
153 WORD $0x53117d4a // lsr w10, w10, #17
154 WORD $0xd37f7d4b // ubfiz x11, x10, #1, #32
155 WORD $0x52800c8c // mov w12, #100
156 WORD $0x1b0ca54a // msub w10, w10, w12, w9
157 WORD $0x92403d4a // and x10, x10, #0xffff
158 WORD $0xd37ff94a // lsl x10, x10, #1
159 WORD $0x710fa13f // cmp w9, #1000
160 WORD $0x540004e3 // b.lo LBB0_16 $156(%rip)
161Lloh8:
162 WORD $0x10004e49 // adr x9, _Digits $2504(%rip)
163Lloh9:
164 WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
165 WORD $0x386b6929 // ldrb w9, [x9, x11]
166 WORD $0x39000109 // strb w9, [x8]
167 WORD $0x52800029 // mov w9, #1
168 WORD $0x14000024 // b LBB0_18 $144(%rip)
169LBB0_13:
170 WORD $0x529c2008 // mov w8, #57600
171 WORD $0x72a0bea8 // movk w8, #1525, lsl #16
172 WORD $0xeb08003f // cmp x1, x8
173 WORD $0x540011c2 // b.hs LBB0_31 $568(%rip)
174 WORD $0x5282eb28 // mov w8, #5977
175 WORD $0x72ba36e8 // movk w8, #53687, lsl #16
176 WORD $0x92407c29 // and x9, x1, #0xffffffff
177 WORD $0x9ba87d28 // umull x8, w9, w8
178 WORD $0xd36dfd08 // lsr x8, x8, #45
179 WORD $0x529bd06a // mov w10, #56963
180 WORD $0x72a8636a // movk w10, #17179, lsl #16
181 WORD $0x9baa7d29 // umull x9, w9, w10
182 WORD $0xd371fd29 // lsr x9, x9, #49
183 WORD $0x927f312a // and x10, x9, #0x3ffe
184 WORD $0x53023d09 // ubfx w9, w8, #2, #14
185 WORD $0x52828f6b // mov w11, #5243
186 WORD $0x1b0b7d29 // mul w9, w9, w11
187 WORD $0x53117d29 // lsr w9, w9, #17
188 WORD $0x52800c8b // mov w11, #100
189 WORD $0x1b0ba129 // msub w9, w9, w11, w8
190 WORD $0x92403d29 // and x9, x9, #0xffff
191 WORD $0xd37ff929 // lsl x9, x9, #1
192 WORD $0x5292cfeb // mov w11, #38527
193 WORD $0x72a0130b // movk w11, #152, lsl #16
194 WORD $0x6b0b003f // cmp w1, w11
195 WORD $0x54000409 // b.ls LBB0_21 $128(%rip)
196Lloh10:
197 WORD $0x10004a4b // adr x11, _Digits $2376(%rip)
198Lloh11:
199 WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip)
200 WORD $0x386a696b // ldrb w11, [x11, x10]
201 WORD $0x3900000b // strb w11, [x0]
202 WORD $0x5280002c // mov w12, #1
203 WORD $0x1400001f // b LBB0_23 $124(%rip)
204LBB0_16:
205 WORD $0x7101913f // cmp w9, #100
206 WORD $0x540008a3 // b.lo LBB0_26 $276(%rip)
207 WORD $0x52800009 // mov w9, #0
208LBB0_18:
209Lloh12:
210 WORD $0x1000492c // adr x12, _Digits $2340(%rip)
211Lloh13:
212 WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip)
213 WORD $0x8b2b418b // add x11, x12, w11, uxtw
214 WORD $0x3940056c // ldrb w12, [x11, #1]
215 WORD $0x1100052b // add w11, w9, #1
216 WORD $0x3829490c // strb w12, [x8, w9, uxtw]
217LBB0_19:
218Lloh14:
219 WORD $0x10004869 // adr x9, _Digits $2316(%rip)
220Lloh15:
221 WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
222 WORD $0x386a6929 // ldrb w9, [x9, x10]
223 WORD $0x1100056c // add w12, w11, #1
224 WORD $0x382b4909 // strb w9, [x8, w11, uxtw]
225LBB0_20:
226Lloh16:
227 WORD $0x100047c9 // adr x9, _Digits $2296(%rip)
228Lloh17:
229 WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
230 WORD $0x8b2a2129 // add x9, x9, w10, uxth
231 WORD $0x3940052a // ldrb w10, [x9, #1]
232 WORD $0x11000589 // add w9, w12, #1
233 WORD $0x382c490a // strb w10, [x8, w12, uxtw]
234 WORD $0x11000528 // add w8, w9, #1
235 WORD $0xaa0803e0 // mov x0, x8
236 WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
237 WORD $0x910083ff // add sp, sp, #32
238 WORD $0xd65f03c0 // ret
239LBB0_21:
240 WORD $0x528847eb // mov w11, #16959
241 WORD $0x72a001eb // movk w11, #15, lsl #16
242 WORD $0x6b0b003f // cmp w1, w11
243 WORD $0x540005e9 // b.ls LBB0_27 $188(%rip)
244 WORD $0x5280000c // mov w12, #0
245LBB0_23:
246Lloh18:
247 WORD $0x100045cb // adr x11, _Digits $2232(%rip)
248Lloh19:
249 WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip)
250 WORD $0x8b2a416a // add x10, x11, w10, uxtw
251 WORD $0x3940054a // ldrb w10, [x10, #1]
252 WORD $0x1100058b // add w11, w12, #1
253 WORD $0x382c480a // strb w10, [x0, w12, uxtw]
254LBB0_24:
255Lloh20:
256 WORD $0x1000450a // adr x10, _Digits $2208(%rip)
257Lloh21:
258 WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip)
259 WORD $0x3869694c // ldrb w12, [x10, x9]
260 WORD $0x1100056a // add w10, w11, #1
261 WORD $0x382b480c // strb w12, [x0, w11, uxtw]
262LBB0_25:
263 WORD $0x5284e20b // mov w11, #10000
264 WORD $0x1b0b8508 // msub w8, w8, w11, w1
265 WORD $0x53023d0b // ubfx w11, w8, #2, #14
266 WORD $0x52828f6c // mov w12, #5243
267 WORD $0x1b0c7d6b // mul w11, w11, w12
268 WORD $0x53117d6b // lsr w11, w11, #17
269 WORD $0x52800c8c // mov w12, #100
270 WORD $0x1b0ca168 // msub w8, w11, w12, w8
271 WORD $0x92403d08 // and x8, x8, #0xffff
272 WORD $0xd37ff908 // lsl x8, x8, #1
273Lloh22:
274 WORD $0x1000432c // adr x12, _Digits $2148(%rip)
275Lloh23:
276 WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip)
277 WORD $0x8b292189 // add x9, x12, w9, uxth
278 WORD $0x39400529 // ldrb w9, [x9, #1]
279 WORD $0x8b2a400d // add x13, x0, w10, uxtw
280 WORD $0x390001a9 // strb w9, [x13]
281 WORD $0x786b5989 // ldrh w9, [x12, w11, uxtw #1]
282 WORD $0x780011a9 // sturh w9, [x13, #1]
283 WORD $0x38686989 // ldrb w9, [x12, x8]
284 WORD $0x39000da9 // strb w9, [x13, #3]
285 WORD $0x927f3908 // and x8, x8, #0xfffe
286 WORD $0x8b080188 // add x8, x12, x8
287 WORD $0x39400509 // ldrb w9, [x8, #1]
288 WORD $0x11001548 // add w8, w10, #5
289 WORD $0x390011a9 // strb w9, [x13, #4]
290 WORD $0xaa0803e0 // mov x0, x8
291 WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
292 WORD $0x910083ff // add sp, sp, #32
293 WORD $0xd65f03c0 // ret
294LBB0_26:
295 WORD $0x5280000b // mov w11, #0
296 WORD $0x5280000c // mov w12, #0
297 WORD $0x7100293f // cmp w9, #10
298 WORD $0x54fff802 // b.hs LBB0_19 $-256(%rip)
299 WORD $0x17ffffc4 // b LBB0_20 $-240(%rip)
300LBB0_27:
301 WORD $0x5280000b // mov w11, #0
302 WORD $0x5280000a // mov w10, #0
303 WORD $0x53057c2c // lsr w12, w1, #5
304 WORD $0x7130d59f // cmp w12, #3125
305 WORD $0x54fffaa2 // b.hs LBB0_24 $-172(%rip)
306 WORD $0x17ffffd9 // b LBB0_25 $-156(%rip)
307LBB0_28:
308 WORD $0x529c200a // mov w10, #57600
309 WORD $0x72a0beaa // movk w10, #1525, lsl #16
310 WORD $0xeb0a013f // cmp x9, x10
311 WORD $0x54001662 // b.hs LBB0_39 $716(%rip)
312 WORD $0x5282eb2a // mov w10, #5977
313 WORD $0x72ba36ea // movk w10, #53687, lsl #16
314 WORD $0x9baa7d2a // umull x10, w9, w10
315 WORD $0xd36dfd4a // lsr x10, x10, #45
316 WORD $0x529bd06b // mov w11, #56963
317 WORD $0x72a8636b // movk w11, #17179, lsl #16
318 WORD $0x92407d2c // and x12, x9, #0xffffffff
319 WORD $0x9bab7d8b // umull x11, w12, w11
320 WORD $0xd371fd6b // lsr x11, x11, #49
321 WORD $0x927f316c // and x12, x11, #0x3ffe
322 WORD $0x53023d4b // ubfx w11, w10, #2, #14
323 WORD $0x52828f6d // mov w13, #5243
324 WORD $0x1b0d7d6b // mul w11, w11, w13
325 WORD $0x53117d6b // lsr w11, w11, #17
326 WORD $0x52800c8d // mov w13, #100
327 WORD $0x1b0da96b // msub w11, w11, w13, w10
328 WORD $0x92403d6b // and x11, x11, #0xffff
329 WORD $0xd37ff96b // lsl x11, x11, #1
330 WORD $0x5292cfed // mov w13, #38527
331 WORD $0x72a0130d // movk w13, #152, lsl #16
332 WORD $0x6b0d013f // cmp w9, w13
333 WORD $0x54000d29 // b.ls LBB0_33 $420(%rip)
334Lloh24:
335 WORD $0x10003c2d // adr x13, _Digits $1924(%rip)
336Lloh25:
337 WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip)
338 WORD $0x386c69ad // ldrb w13, [x13, x12]
339 WORD $0x3900010d // strb w13, [x8]
340 WORD $0x5280002e // mov w14, #1
341 WORD $0x14000068 // b LBB0_35 $416(%rip)
342LBB0_31:
343 WORD $0xd2adf82a // mov x10, #1874919424
344 WORD $0xf2d0de4a // movk x10, #34546, lsl #32
345 WORD $0xf2e0046a // movk x10, #35, lsl #48
346 WORD $0xeb0a003f // cmp x1, x10
347 WORD $0x54001ea2 // b.hs LBB0_41 $980(%rip)
348 WORD $0xd299dfa9 // mov x9, #52989
349 WORD $0xf2b08c29 // movk x9, #33889, lsl #16
350 WORD $0xf2cee229 // movk x9, #30481, lsl #32
351 WORD $0xf2f57989 // movk x9, #43980, lsl #48
352 WORD $0x9bc97c29 // umulh x9, x1, x9
353 WORD $0xd35afd29 // lsr x9, x9, #26
354 WORD $0x1b088528 // msub w8, w9, w8, w1
355 WORD $0x6f00e400 // movi.2d v0, #0000000000000000
356 WORD $0x6f00e401 // movi.2d v1, #0000000000000000
357 WORD $0x4e041d21 // mov.s v1[0], w9
358 WORD $0x0ea12822 // xtn.2s v2, v1
359 WORD $0x5282eb29 // mov w9, #5977
360 WORD $0x72ba36e9 // movk w9, #53687, lsl #16
361 WORD $0x0e040d23 // dup.2s v3, w9
362 WORD $0x2ea3c042 // umull.2d v2, v2, v3
363 WORD $0x6f530442 // ushr.2d v2, v2, #45
364 WORD $0x0ea12844 // xtn.2s v4, v2
365 WORD $0x5284e209 // mov w9, #10000
366 WORD $0x0e040d25 // dup.2s v5, w9
367 WORD $0x2ea5c084 // umull.2d v4, v4, v5
368 WORD $0x6ea48421 // sub.4s v1, v1, v4
369 WORD $0x4e413841 // zip1.8h v1, v2, v1
370 WORD $0x4f425421 // shl.2d v1, v1, #2
371 WORD $0x4e413821 // zip1.8h v1, v1, v1
372 WORD $0x4e813821 // zip1.4s v1, v1, v1
373Lloh26:
374 WORD $0x10ffdee9 // adr x9, lCPI0_0 $-1060(%rip)
375Lloh27:
376 WORD $0xfd400122 // ldr d2, [x9, lCPI0_0@PAGEOFF] $0(%rip)
377 WORD $0x2e62c024 // umull.4s v4, v1, v2
378 WORD $0x6e014021 // ext.16b v1, v1, v1, #8
379 WORD $0x2e62c021 // umull.4s v1, v1, v2
380 WORD $0x4e415881 // uzp2.8h v1, v4, v1
381Lloh28:
382 WORD $0x10ffde69 // adr x9, lCPI0_1 $-1076(%rip)
383Lloh29:
384 WORD $0xfd400124 // ldr d4, [x9, lCPI0_1@PAGEOFF] $0(%rip)
385 WORD $0x2e64c026 // umull.4s v6, v1, v4
386 WORD $0x6e014021 // ext.16b v1, v1, v1, #8
387 WORD $0x2e64c021 // umull.4s v1, v1, v4
388 WORD $0x4e4158c1 // uzp2.8h v1, v6, v1
389 WORD $0x4f008546 // movi.8h v6, #10
390 WORD $0x4e669c27 // mul.8h v7, v1, v6
391 WORD $0x4f5054e7 // shl.2d v7, v7, #16
392 WORD $0x6e678421 // sub.8h v1, v1, v7
393 WORD $0x4e041d00 // mov.s v0[0], w8
394 WORD $0x0ea12807 // xtn.2s v7, v0
395 WORD $0x2ea3c0e3 // umull.2d v3, v7, v3
396 WORD $0x6f530463 // ushr.2d v3, v3, #45
397 WORD $0x0ea12867 // xtn.2s v7, v3
398 WORD $0x2ea5c0e5 // umull.2d v5, v7, v5
399 WORD $0x6ea58400 // sub.4s v0, v0, v5
400 WORD $0x4e403860 // zip1.8h v0, v3, v0
401 WORD $0x4f425400 // shl.2d v0, v0, #2
402 WORD $0x4e403800 // zip1.8h v0, v0, v0
403 WORD $0x4e803800 // zip1.4s v0, v0, v0
404 WORD $0x2e62c003 // umull.4s v3, v0, v2
405 WORD $0x6e004000 // ext.16b v0, v0, v0, #8
406 WORD $0x2e62c000 // umull.4s v0, v0, v2
407 WORD $0x4e405860 // uzp2.8h v0, v3, v0
408 WORD $0x2e64c002 // umull.4s v2, v0, v4
409 WORD $0x6e004000 // ext.16b v0, v0, v0, #8
410 WORD $0x2e64c000 // umull.4s v0, v0, v4
411 WORD $0x4e405840 // uzp2.8h v0, v2, v0
412 WORD $0x4e669c02 // mul.8h v2, v0, v6
413 WORD $0x4f505442 // shl.2d v2, v2, #16
414 WORD $0x6e628400 // sub.8h v0, v0, v2
415 WORD $0x2e212821 // sqxtun.8b v1, v1
416 WORD $0x6e212801 // sqxtun2.16b v1, v0
417 WORD $0x4f01e600 // movi.16b v0, #48
418 WORD $0x4e208420 // add.16b v0, v1, v0
419 WORD $0x4e209821 // cmeq.16b v1, v1, #0
420Lloh30:
421 WORD $0x10ffda08 // adr x8, lCPI0_2 $-1216(%rip)
422Lloh31:
423 WORD $0x3dc00102 // ldr q2, [x8, lCPI0_2@PAGEOFF] $0(%rip)
424 WORD $0x4e221c21 // and.16b v1, v1, v2
425Lloh32:
426 WORD $0x10ffda28 // adr x8, lCPI0_3 $-1212(%rip)
427Lloh33:
428 WORD $0x3dc00102 // ldr q2, [x8, lCPI0_3@PAGEOFF] $0(%rip)
429 WORD $0x4e020021 // tbl.16b v1, { v1 }, v2
430 WORD $0x4e71b821 // addv.8h h1, v1
431 WORD $0x1e260028 // fmov w8, s1
432 WORD $0x2a2803e8 // mvn w8, w8
433 WORD $0x32114108 // orr w8, w8, #0xffff8000
434 WORD $0x5ac00108 // rbit w8, w8
435 WORD $0x5ac01108 // clz w8, w8
436Lloh34:
437 WORD $0x10003709 // adr x9, _VecShiftShuffles $1760(%rip)
438Lloh35:
439 WORD $0x91000129 // add x9, x9, _VecShiftShuffles@PAGEOFF $0(%rip)
440 WORD $0x3ce85921 // ldr q1, [x9, w8, uxtw #4]
441 WORD $0x4f04e5e2 // movi.16b v2, #143
442 WORD $0x4e221c21 // and.16b v1, v1, v2
443 WORD $0x4e010000 // tbl.16b v0, { v0 }, v1
444 WORD $0x3d800000 // str q0, [x0]
445 WORD $0x52800209 // mov w9, #16
446 WORD $0x4b080128 // sub w8, w9, w8
447 WORD $0xaa0803e0 // mov x0, x8
448 WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
449 WORD $0x910083ff // add sp, sp, #32
450 WORD $0xd65f03c0 // ret
451LBB0_33:
452 WORD $0x528847ed // mov w13, #16959
453 WORD $0x72a001ed // movk w13, #15, lsl #16
454 WORD $0x6b0d013f // cmp w9, w13
455 WORD $0x54000569 // b.ls LBB0_38 $172(%rip)
456 WORD $0x5280000e // mov w14, #0
457LBB0_35:
458Lloh36:
459 WORD $0x10002e8d // adr x13, _Digits $1488(%rip)
460Lloh37:
461 WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip)
462 WORD $0x8b2c41ac // add x12, x13, w12, uxtw
463 WORD $0x3940058c // ldrb w12, [x12, #1]
464 WORD $0x110005cd // add w13, w14, #1
465 WORD $0x382e490c // strb w12, [x8, w14, uxtw]
466LBB0_36:
467Lloh38:
468 WORD $0x10002dcc // adr x12, _Digits $1464(%rip)
469Lloh39:
470 WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip)
471 WORD $0x386b698e // ldrb w14, [x12, x11]
472 WORD $0x110005ac // add w12, w13, #1
473 WORD $0x382d490e // strb w14, [x8, w13, uxtw]
474LBB0_37:
475 WORD $0x5284e20d // mov w13, #10000
476 WORD $0x1b0da549 // msub w9, w10, w13, w9
477 WORD $0x53023d2a // ubfx w10, w9, #2, #14
478 WORD $0x52828f6d // mov w13, #5243
479 WORD $0x1b0d7d4a // mul w10, w10, w13
480 WORD $0x53117d4a // lsr w10, w10, #17
481 WORD $0x52800c8d // mov w13, #100
482 WORD $0x1b0da549 // msub w9, w10, w13, w9
483 WORD $0x92403d29 // and x9, x9, #0xffff
484 WORD $0xd37ff929 // lsl x9, x9, #1
485Lloh40:
486 WORD $0x10002bed // adr x13, _Digits $1404(%rip)
487Lloh41:
488 WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip)
489 WORD $0x8b2b21ab // add x11, x13, w11, uxth
490 WORD $0x3940056b // ldrb w11, [x11, #1]
491 WORD $0x8b2c4108 // add x8, x8, w12, uxtw
492 WORD $0x3900010b // strb w11, [x8]
493 WORD $0x786a59aa // ldrh w10, [x13, w10, uxtw #1]
494 WORD $0x7800110a // sturh w10, [x8, #1]
495 WORD $0x386969aa // ldrb w10, [x13, x9]
496 WORD $0x39000d0a // strb w10, [x8, #3]
497 WORD $0x927f3929 // and x9, x9, #0xfffe
498 WORD $0x8b0901a9 // add x9, x13, x9
499 WORD $0x3940052a // ldrb w10, [x9, #1]
500 WORD $0x11001589 // add w9, w12, #5
501 WORD $0x3900110a // strb w10, [x8, #4]
502 WORD $0x11000528 // add w8, w9, #1
503 WORD $0xaa0803e0 // mov x0, x8
504 WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
505 WORD $0x910083ff // add sp, sp, #32
506 WORD $0xd65f03c0 // ret
507LBB0_38:
508 WORD $0x5280000d // mov w13, #0
509 WORD $0x5280000c // mov w12, #0
510 WORD $0x53057d2e // lsr w14, w9, #5
511 WORD $0x7130d5df // cmp w14, #3125
512 WORD $0x54fffb22 // b.hs LBB0_36 $-156(%rip)
513 WORD $0x17ffffdd // b LBB0_37 $-140(%rip)
514LBB0_39:
515 WORD $0xd2adf82c // mov x12, #1874919424
516 WORD $0xf2d0de4c // movk x12, #34546, lsl #32
517 WORD $0xf2e0046c // movk x12, #35, lsl #48
518 WORD $0xeb0c013f // cmp x9, x12
519 WORD $0x540019e2 // b.hs LBB0_47 $828(%rip)
520 WORD $0xd299dfab // mov x11, #52989
521 WORD $0xf2b08c2b // movk x11, #33889, lsl #16
522 WORD $0xf2cee22b // movk x11, #30481, lsl #32
523 WORD $0xf2f5798b // movk x11, #43980, lsl #48
524 WORD $0x9bcb7d2b // umulh x11, x9, x11
525 WORD $0xd35afd6b // lsr x11, x11, #26
526 WORD $0x1b0aa569 // msub w9, w11, w10, w9
527 WORD $0x6f00e400 // movi.2d v0, #0000000000000000
528 WORD $0x6f00e401 // movi.2d v1, #0000000000000000
529 WORD $0x4e041d61 // mov.s v1[0], w11
530 WORD $0x0ea12822 // xtn.2s v2, v1
531 WORD $0x5282eb2a // mov w10, #5977
532 WORD $0x72ba36ea // movk w10, #53687, lsl #16
533 WORD $0x0e040d43 // dup.2s v3, w10
534 WORD $0x2ea3c042 // umull.2d v2, v2, v3
535 WORD $0x6f530442 // ushr.2d v2, v2, #45
536 WORD $0x0ea12844 // xtn.2s v4, v2
537 WORD $0x5284e20a // mov w10, #10000
538 WORD $0x0e040d45 // dup.2s v5, w10
539 WORD $0x2ea5c084 // umull.2d v4, v4, v5
540 WORD $0x6ea48421 // sub.4s v1, v1, v4
541 WORD $0x4e413841 // zip1.8h v1, v2, v1
542 WORD $0x4f425421 // shl.2d v1, v1, #2
543 WORD $0x4e413821 // zip1.8h v1, v1, v1
544 WORD $0x4e813821 // zip1.4s v1, v1, v1
545Lloh42:
546 WORD $0x10ffcc2a // adr x10, lCPI0_0 $-1660(%rip)
547Lloh43:
548 WORD $0xfd400142 // ldr d2, [x10, lCPI0_0@PAGEOFF] $0(%rip)
549 WORD $0x2e62c024 // umull.4s v4, v1, v2
550 WORD $0x6e014021 // ext.16b v1, v1, v1, #8
551 WORD $0x2e62c021 // umull.4s v1, v1, v2
552 WORD $0x4e415881 // uzp2.8h v1, v4, v1
553Lloh44:
554 WORD $0x10ffcbaa // adr x10, lCPI0_1 $-1676(%rip)
555Lloh45:
556 WORD $0xfd400144 // ldr d4, [x10, lCPI0_1@PAGEOFF] $0(%rip)
557 WORD $0x2e64c026 // umull.4s v6, v1, v4
558 WORD $0x6e014021 // ext.16b v1, v1, v1, #8
559 WORD $0x2e64c021 // umull.4s v1, v1, v4
560 WORD $0x4e4158c1 // uzp2.8h v1, v6, v1
561 WORD $0x4f008546 // movi.8h v6, #10
562 WORD $0x4e669c27 // mul.8h v7, v1, v6
563 WORD $0x4f5054e7 // shl.2d v7, v7, #16
564 WORD $0x6e678421 // sub.8h v1, v1, v7
565 WORD $0x4e041d20 // mov.s v0[0], w9
566 WORD $0x0ea12807 // xtn.2s v7, v0
567 WORD $0x2ea3c0e3 // umull.2d v3, v7, v3
568 WORD $0x6f530463 // ushr.2d v3, v3, #45
569 WORD $0x0ea12867 // xtn.2s v7, v3
570 WORD $0x2ea5c0e5 // umull.2d v5, v7, v5
571 WORD $0x6ea58400 // sub.4s v0, v0, v5
572 WORD $0x4e403860 // zip1.8h v0, v3, v0
573 WORD $0x4f425400 // shl.2d v0, v0, #2
574 WORD $0x4e403800 // zip1.8h v0, v0, v0
575 WORD $0x4e803800 // zip1.4s v0, v0, v0
576 WORD $0x2e62c003 // umull.4s v3, v0, v2
577 WORD $0x6e004000 // ext.16b v0, v0, v0, #8
578 WORD $0x2e62c000 // umull.4s v0, v0, v2
579 WORD $0x4e405860 // uzp2.8h v0, v3, v0
580 WORD $0x2e64c002 // umull.4s v2, v0, v4
581 WORD $0x6e004000 // ext.16b v0, v0, v0, #8
582 WORD $0x2e64c000 // umull.4s v0, v0, v4
583 WORD $0x4e405840 // uzp2.8h v0, v2, v0
584 WORD $0x4e669c02 // mul.8h v2, v0, v6
585 WORD $0x4f505442 // shl.2d v2, v2, #16
586 WORD $0x6e628400 // sub.8h v0, v0, v2
587 WORD $0x2e212821 // sqxtun.8b v1, v1
588 WORD $0x6e212801 // sqxtun2.16b v1, v0
589 WORD $0x4f01e600 // movi.16b v0, #48
590 WORD $0x4e208420 // add.16b v0, v1, v0
591 WORD $0x4e209821 // cmeq.16b v1, v1, #0
592Lloh46:
593 WORD $0x10ffc749 // adr x9, lCPI0_2 $-1816(%rip)
594Lloh47:
595 WORD $0x3dc00122 // ldr q2, [x9, lCPI0_2@PAGEOFF] $0(%rip)
596 WORD $0x4e221c21 // and.16b v1, v1, v2
597Lloh48:
598 WORD $0x10ffc769 // adr x9, lCPI0_3 $-1812(%rip)
599Lloh49:
600 WORD $0x3dc00122 // ldr q2, [x9, lCPI0_3@PAGEOFF] $0(%rip)
601 WORD $0x4e020021 // tbl.16b v1, { v1 }, v2
602 WORD $0x4e71b821 // addv.8h h1, v1
603 WORD $0x1e260029 // fmov w9, s1
604 WORD $0x2a2903e9 // mvn w9, w9
605 WORD $0x32114129 // orr w9, w9, #0xffff8000
606 WORD $0x5ac00129 // rbit w9, w9
607 WORD $0x5ac01129 // clz w9, w9
608Lloh50:
609 WORD $0x1000244a // adr x10, _VecShiftShuffles $1160(%rip)
610Lloh51:
611 WORD $0x9100014a // add x10, x10, _VecShiftShuffles@PAGEOFF $0(%rip)
612 WORD $0x3ce95941 // ldr q1, [x10, w9, uxtw #4]
613 WORD $0x4f04e5e2 // movi.16b v2, #143
614 WORD $0x4e221c21 // and.16b v1, v1, v2
615 WORD $0x4e010000 // tbl.16b v0, { v0 }, v1
616 WORD $0x3d800100 // str q0, [x8]
617 WORD $0x52800208 // mov w8, #16
618 WORD $0x4b090109 // sub w9, w8, w9
619 WORD $0x11000528 // add w8, w9, #1
620 WORD $0xaa0803e0 // mov x0, x8
621 WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
622 WORD $0x910083ff // add sp, sp, #32
623 WORD $0xd65f03c0 // ret
624LBB0_41:
625 WORD $0xd28f0ae9 // mov x9, #30807
626 WORD $0xf2b62269 // movk x9, #45331, lsl #16
627 WORD $0xf2cca5e9 // movk x9, #25903, lsl #32
628 WORD $0xf2e734a9 // movk x9, #14757, lsl #48
629 WORD $0x9bc97c29 // umulh x9, x1, x9
630 WORD $0xd373fd2b // lsr x11, x9, #51
631 WORD $0x7100257f // cmp w11, #9
632 WORD $0x540000a8 // b.hi LBB0_43 $20(%rip)
633 WORD $0x1100c169 // add w9, w11, #48
634 WORD $0x39000009 // strb w9, [x0]
635 WORD $0x52800029 // mov w9, #1
636 WORD $0x1400001b // b LBB0_46 $108(%rip)
637LBB0_43:
638 WORD $0x71018d7f // cmp w11, #99
639 WORD $0x540000e8 // b.hi LBB0_45 $28(%rip)
640Lloh52:
641 WORD $0x10001a89 // adr x9, _Digits $848(%rip)
642Lloh53:
643 WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
644 WORD $0x786b5929 // ldrh w9, [x9, w11, uxtw #1]
645 WORD $0x79000009 // strh w9, [x0]
646 WORD $0x52800049 // mov w9, #2
647 WORD $0x14000013 // b LBB0_46 $76(%rip)
648LBB0_45:
649 WORD $0x5280a3e9 // mov w9, #1311
650 WORD $0x1b097d69 // mul w9, w11, w9
651 WORD $0x53117d29 // lsr w9, w9, #17
652 WORD $0x321c052c // orr w12, w9, #0x30
653 WORD $0x3900000c // strb w12, [x0]
654 WORD $0x52800c8c // mov w12, #100
655 WORD $0x1b0cad29 // msub w9, w9, w12, w11
656 WORD $0x92403d29 // and x9, x9, #0xffff
657 WORD $0xd37ff929 // lsl x9, x9, #1
658Lloh54:
659 WORD $0x100018ac // adr x12, _Digits $788(%rip)
660Lloh55:
661 WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip)
662 WORD $0x3869698d // ldrb w13, [x12, x9]
663 WORD $0x3900040d // strb w13, [x0, #1]
664 WORD $0x927f3929 // and x9, x9, #0xfffe
665 WORD $0x8b090189 // add x9, x12, x9
666 WORD $0x39400529 // ldrb w9, [x9, #1]
667 WORD $0x39000809 // strb w9, [x0, #2]
668 WORD $0x52800069 // mov w9, #3
669LBB0_46:
670 WORD $0x9b0a856a // msub x10, x11, x10, x1
671 WORD $0xd299dfab // mov x11, #52989
672 WORD $0xf2b08c2b // movk x11, #33889, lsl #16
673 WORD $0xf2cee22b // movk x11, #30481, lsl #32
674 WORD $0xf2f5798b // movk x11, #43980, lsl #48
675 WORD $0x9bcb7d4b // umulh x11, x10, x11
676 WORD $0xd35afd6b // lsr x11, x11, #26
677 WORD $0x6f00e400 // movi.2d v0, #0000000000000000
678 WORD $0x6f00e401 // movi.2d v1, #0000000000000000
679 WORD $0x4e041d61 // mov.s v1[0], w11
680 WORD $0x5282eb2c // mov w12, #5977
681 WORD $0x72ba36ec // movk w12, #53687, lsl #16
682 WORD $0x0e040d82 // dup.2s v2, w12
683 WORD $0x0ea12823 // xtn.2s v3, v1
684 WORD $0x2ea2c063 // umull.2d v3, v3, v2
685 WORD $0x6f530463 // ushr.2d v3, v3, #45
686 WORD $0x5284e20c // mov w12, #10000
687 WORD $0x0e040d84 // dup.2s v4, w12
688 WORD $0x0ea12865 // xtn.2s v5, v3
689 WORD $0x2ea4c0a5 // umull.2d v5, v5, v4
690 WORD $0x6ea58421 // sub.4s v1, v1, v5
691 WORD $0x4e413861 // zip1.8h v1, v3, v1
692 WORD $0x4f425421 // shl.2d v1, v1, #2
693 WORD $0x4e413821 // zip1.8h v1, v1, v1
694 WORD $0x4e813821 // zip1.4s v1, v1, v1
695Lloh56:
696 WORD $0x10ffbbac // adr x12, lCPI0_0 $-2188(%rip)
697Lloh57:
698 WORD $0xfd400183 // ldr d3, [x12, lCPI0_0@PAGEOFF] $0(%rip)
699 WORD $0x2e63c025 // umull.4s v5, v1, v3
700 WORD $0x6e014021 // ext.16b v1, v1, v1, #8
701 WORD $0x2e63c021 // umull.4s v1, v1, v3
702 WORD $0x4e4158a1 // uzp2.8h v1, v5, v1
703Lloh58:
704 WORD $0x10ffbb2c // adr x12, lCPI0_1 $-2204(%rip)
705Lloh59:
706 WORD $0xfd400185 // ldr d5, [x12, lCPI0_1@PAGEOFF] $0(%rip)
707 WORD $0x2e65c026 // umull.4s v6, v1, v5
708 WORD $0x6e014021 // ext.16b v1, v1, v1, #8
709 WORD $0x2e65c021 // umull.4s v1, v1, v5
710 WORD $0x4e4158c1 // uzp2.8h v1, v6, v1
711 WORD $0x4f008546 // movi.8h v6, #10
712 WORD $0x4e669c27 // mul.8h v7, v1, v6
713 WORD $0x4f5054e7 // shl.2d v7, v7, #16
714 WORD $0x6e678421 // sub.8h v1, v1, v7
715 WORD $0x1b08a968 // msub w8, w11, w8, w10
716 WORD $0x4e041d00 // mov.s v0[0], w8
717 WORD $0x0ea12807 // xtn.2s v7, v0
718 WORD $0x2ea2c0e2 // umull.2d v2, v7, v2
719 WORD $0x6f530442 // ushr.2d v2, v2, #45
720 WORD $0x0ea12847 // xtn.2s v7, v2
721 WORD $0x2ea4c0e4 // umull.2d v4, v7, v4
722 WORD $0x6ea48400 // sub.4s v0, v0, v4
723 WORD $0x4e403840 // zip1.8h v0, v2, v0
724 WORD $0x4f425400 // shl.2d v0, v0, #2
725 WORD $0x4e403800 // zip1.8h v0, v0, v0
726 WORD $0x4e803800 // zip1.4s v0, v0, v0
727 WORD $0x2e63c002 // umull.4s v2, v0, v3
728 WORD $0x6e004000 // ext.16b v0, v0, v0, #8
729 WORD $0x2e63c000 // umull.4s v0, v0, v3
730 WORD $0x4e405840 // uzp2.8h v0, v2, v0
731 WORD $0x2e65c002 // umull.4s v2, v0, v5
732 WORD $0x6e004000 // ext.16b v0, v0, v0, #8
733 WORD $0x2e65c000 // umull.4s v0, v0, v5
734 WORD $0x4e405840 // uzp2.8h v0, v2, v0
735 WORD $0x4e669c02 // mul.8h v2, v0, v6
736 WORD $0x4f505442 // shl.2d v2, v2, #16
737 WORD $0x6e628400 // sub.8h v0, v0, v2
738 WORD $0x2e212821 // sqxtun.8b v1, v1
739 WORD $0x6e212801 // sqxtun2.16b v1, v0
740 WORD $0x4f01e600 // movi.16b v0, #48
741 WORD $0x4e208420 // add.16b v0, v1, v0
742 WORD $0x3ca94800 // str q0, [x0, w9, uxtw]
743 WORD $0x321c0128 // orr w8, w9, #0x10
744 WORD $0xaa0803e0 // mov x0, x8
745 WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
746 WORD $0x910083ff // add sp, sp, #32
747 WORD $0xd65f03c0 // ret
748LBB0_47:
749 WORD $0xd28f0aeb // mov x11, #30807
750 WORD $0xf2b6226b // movk x11, #45331, lsl #16
751 WORD $0xf2cca5eb // movk x11, #25903, lsl #32
752 WORD $0xf2e734ab // movk x11, #14757, lsl #48
753 WORD $0x9bcb7d2b // umulh x11, x9, x11
754 WORD $0xd373fd6d // lsr x13, x11, #51
755 WORD $0x710025bf // cmp w13, #9
756 WORD $0x540000a8 // b.hi LBB0_49 $20(%rip)
757 WORD $0x1100c1ab // add w11, w13, #48
758 WORD $0x3900010b // strb w11, [x8]
759 WORD $0x5280002b // mov w11, #1
760 WORD $0x1400001c // b LBB0_52 $112(%rip)
761LBB0_49:
762 WORD $0x71018dbf // cmp w13, #99
763 WORD $0x540000e8 // b.hi LBB0_51 $28(%rip)
764Lloh60:
765 WORD $0x10000c8b // adr x11, _Digits $400(%rip)
766Lloh61:
767 WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip)
768 WORD $0x786d596b // ldrh w11, [x11, w13, uxtw #1]
769 WORD $0x7800100b // sturh w11, [x0, #1]
770 WORD $0x5280004b // mov w11, #2
771 WORD $0x14000014 // b LBB0_52 $80(%rip)
772LBB0_51:
773 WORD $0x53023dab // ubfx w11, w13, #2, #14
774 WORD $0x52828f6e // mov w14, #5243
775 WORD $0x1b0e7d6b // mul w11, w11, w14
776 WORD $0x53117d6b // lsr w11, w11, #17
777 WORD $0x321c056e // orr w14, w11, #0x30
778 WORD $0x3900040e // strb w14, [x0, #1]
779 WORD $0x52800c8e // mov w14, #100
780 WORD $0x1b0eb56b // msub w11, w11, w14, w13
781 WORD $0x92403d6b // and x11, x11, #0xffff
782 WORD $0xd37ff96b // lsl x11, x11, #1
783Lloh62:
784 WORD $0x10000a8e // adr x14, _Digits $336(%rip)
785Lloh63:
786 WORD $0x910001ce // add x14, x14, _Digits@PAGEOFF $0(%rip)
787 WORD $0x386b69cf // ldrb w15, [x14, x11]
788 WORD $0x3900080f // strb w15, [x0, #2]
789 WORD $0x927f396b // and x11, x11, #0xfffe
790 WORD $0x8b0b01cb // add x11, x14, x11
791 WORD $0x3940056b // ldrb w11, [x11, #1]
792 WORD $0x39000c0b // strb w11, [x0, #3]
793 WORD $0x5280006b // mov w11, #3
794LBB0_52:
795 WORD $0x9b0ca5a9 // msub x9, x13, x12, x9
796 WORD $0xd299dfac // mov x12, #52989
797 WORD $0xf2b08c2c // movk x12, #33889, lsl #16
798 WORD $0xf2cee22c // movk x12, #30481, lsl #32
799 WORD $0xf2f5798c // movk x12, #43980, lsl #48
800 WORD $0x9bcc7d2c // umulh x12, x9, x12
801 WORD $0xd35afd8c // lsr x12, x12, #26
802 WORD $0x6f00e400 // movi.2d v0, #0000000000000000
803 WORD $0x6f00e401 // movi.2d v1, #0000000000000000
804 WORD $0x4e041d81 // mov.s v1[0], w12
805 WORD $0x5282eb2d // mov w13, #5977
806 WORD $0x72ba36ed // movk w13, #53687, lsl #16
807 WORD $0x0e040da2 // dup.2s v2, w13
808 WORD $0x0ea12823 // xtn.2s v3, v1
809 WORD $0x2ea2c063 // umull.2d v3, v3, v2
810 WORD $0x6f530463 // ushr.2d v3, v3, #45
811 WORD $0x5284e20d // mov w13, #10000
812 WORD $0x0e040da4 // dup.2s v4, w13
813 WORD $0x0ea12865 // xtn.2s v5, v3
814 WORD $0x2ea4c0a5 // umull.2d v5, v5, v4
815 WORD $0x6ea58421 // sub.4s v1, v1, v5
816 WORD $0x4e413861 // zip1.8h v1, v3, v1
817 WORD $0x4f425421 // shl.2d v1, v1, #2
818 WORD $0x4e413821 // zip1.8h v1, v1, v1
819 WORD $0x4e813821 // zip1.4s v1, v1, v1
820Lloh64:
821 WORD $0x10ffad8d // adr x13, lCPI0_0 $-2640(%rip)
822Lloh65:
823 WORD $0xfd4001a3 // ldr d3, [x13, lCPI0_0@PAGEOFF] $0(%rip)
824 WORD $0x2e63c025 // umull.4s v5, v1, v3
825 WORD $0x6e014021 // ext.16b v1, v1, v1, #8
826 WORD $0x2e63c021 // umull.4s v1, v1, v3
827 WORD $0x4e4158a1 // uzp2.8h v1, v5, v1
828Lloh66:
829 WORD $0x10ffad0d // adr x13, lCPI0_1 $-2656(%rip)
830Lloh67:
831 WORD $0xfd4001a5 // ldr d5, [x13, lCPI0_1@PAGEOFF] $0(%rip)
832 WORD $0x2e65c026 // umull.4s v6, v1, v5
833 WORD $0x6e014021 // ext.16b v1, v1, v1, #8
834 WORD $0x2e65c021 // umull.4s v1, v1, v5
835 WORD $0x4e4158c1 // uzp2.8h v1, v6, v1
836 WORD $0x4f008546 // movi.8h v6, #10
837 WORD $0x4e669c27 // mul.8h v7, v1, v6
838 WORD $0x4f5054e7 // shl.2d v7, v7, #16
839 WORD $0x6e678421 // sub.8h v1, v1, v7
840 WORD $0x1b0aa589 // msub w9, w12, w10, w9
841 WORD $0x4e041d20 // mov.s v0[0], w9
842 WORD $0x0ea12807 // xtn.2s v7, v0
843 WORD $0x2ea2c0e2 // umull.2d v2, v7, v2
844 WORD $0x6f530442 // ushr.2d v2, v2, #45
845 WORD $0x0ea12847 // xtn.2s v7, v2
846 WORD $0x2ea4c0e4 // umull.2d v4, v7, v4
847 WORD $0x6ea48400 // sub.4s v0, v0, v4
848 WORD $0x4e403840 // zip1.8h v0, v2, v0
849 WORD $0x4f425400 // shl.2d v0, v0, #2
850 WORD $0x4e403800 // zip1.8h v0, v0, v0
851 WORD $0x4e803800 // zip1.4s v0, v0, v0
852 WORD $0x2e63c002 // umull.4s v2, v0, v3
853 WORD $0x6e004000 // ext.16b v0, v0, v0, #8
854 WORD $0x2e63c000 // umull.4s v0, v0, v3
855 WORD $0x4e405840 // uzp2.8h v0, v2, v0
856 WORD $0x2e65c002 // umull.4s v2, v0, v5
857 WORD $0x6e004000 // ext.16b v0, v0, v0, #8
858 WORD $0x2e65c000 // umull.4s v0, v0, v5
859 WORD $0x4e405840 // uzp2.8h v0, v2, v0
860 WORD $0x4e669c02 // mul.8h v2, v0, v6
861 WORD $0x4f505442 // shl.2d v2, v2, #16
862 WORD $0x6e628400 // sub.8h v0, v0, v2
863 WORD $0x2e212821 // sqxtun.8b v1, v1
864 WORD $0x6e212801 // sqxtun2.16b v1, v0
865 WORD $0x4f01e600 // movi.16b v0, #48
866 WORD $0x4e208420 // add.16b v0, v1, v0
867 WORD $0x3cab4900 // str q0, [x8, w11, uxtw]
868 WORD $0x321c0169 // orr w9, w11, #0x10
869 WORD $0x11000528 // add w8, w9, #1
870 WORD $0xaa0803e0 // mov x0, x8
871 WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
872 WORD $0x910083ff // add sp, sp, #32
873 WORD $0xd65f03c0 // ret
874_Digits:
875 WORD $0x31303030 // .ascii 4, '0001020304050607'
876 WORD $0x33303230 // .ascii 4, '0203040506070809'
877 WORD $0x35303430 // .ascii 4, '0405060708091011'
878 WORD $0x37303630 // .ascii 4, '0607080910111213'
879 WORD $0x39303830 // .ascii 4, '0809101112131415'
880 WORD $0x31313031 // .ascii 4, '1011121314151617'
881 WORD $0x33313231 // .ascii 4, '1213141516171819'
882 WORD $0x35313431 // .ascii 4, '1415161718192021'
883 WORD $0x37313631 // .ascii 4, '1617181920212223'
884 WORD $0x39313831 // .ascii 4, '1819202122232425'
885 WORD $0x31323032 // .ascii 4, '2021222324252627'
886 WORD $0x33323232 // .ascii 4, '2223242526272829'
887 WORD $0x35323432 // .ascii 4, '2425262728293031'
888 WORD $0x37323632 // .ascii 4, '2627282930313233'
889 WORD $0x39323832 // .ascii 4, '2829303132333435'
890 WORD $0x31333033 // .ascii 4, '3031323334353637'
891 WORD $0x33333233 // .ascii 4, '3233343536373839'
892 WORD $0x35333433 // .ascii 4, '3435363738394041'
893 WORD $0x37333633 // .ascii 4, '3637383940414243'
894 WORD $0x39333833 // .ascii 4, '3839404142434445'
895 WORD $0x31343034 // .ascii 4, '4041424344454647'
896 WORD $0x33343234 // .ascii 4, '4243444546474849'
897 WORD $0x35343434 // .ascii 4, '4445464748495051'
898 WORD $0x37343634 // .ascii 4, '4647484950515253'
899 WORD $0x39343834 // .ascii 4, '4849505152535455'
900 WORD $0x31353035 // .ascii 4, '5051525354555657'
901 WORD $0x33353235 // .ascii 4, '5253545556575859'
902 WORD $0x35353435 // .ascii 4, '5455565758596061'
903 WORD $0x37353635 // .ascii 4, '5657585960616263'
904 WORD $0x39353835 // .ascii 4, '5859606162636465'
905 WORD $0x31363036 // .ascii 4, '6061626364656667'
906 WORD $0x33363236 // .ascii 4, '6263646566676869'
907 WORD $0x35363436 // .ascii 4, '6465666768697071'
908 WORD $0x37363636 // .ascii 4, '6667686970717273'
909 WORD $0x39363836 // .ascii 4, '6869707172737475'
910 WORD $0x31373037 // .ascii 4, '7071727374757677'
911 WORD $0x33373237 // .ascii 4, '7273747576777879'
912 WORD $0x35373437 // .ascii 4, '7475767778798081'
913 WORD $0x37373637 // .ascii 4, '7677787980818283'
914 WORD $0x39373837 // .ascii 4, '7879808182838485'
915 WORD $0x31383038 // .ascii 4, '8081828384858687'
916 WORD $0x33383238 // .ascii 4, '8283848586878889'
917 WORD $0x35383438 // .ascii 4, '8485868788899091'
918 WORD $0x37383638 // .ascii 4, '8687888990919293'
919 WORD $0x39383838 // .ascii 4, '8889909192939495'
920 WORD $0x31393039 // .ascii 4, '9091929394959697'
921 WORD $0x33393239 // .ascii 4, '9293949596979899'
922 WORD $0x35393439 // .ascii 4, '949596979899'
923 WORD $0x37393639 // .ascii 4, '96979899'
924 WORD $0x39393839 // .ascii 4, '9899'
925 // .p2align 4, 0x00
926_VecShiftShuffles:
927 WORD $0x03020100 // .ascii 4, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'
928 WORD $0x07060504 // .ascii 4, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x01\x02\x03\x04'
929 WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\x01\x02\x03\x04\x05\x06\x07\x08'
930 WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c'
931 WORD $0x04030201 // .ascii 4, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff'
932 WORD $0x08070605 // .ascii 4, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\x02\x03\x04\x05'
933 WORD $0x0c0b0a09 // .ascii 4, '\t\n\x0b\x0c\r\x0e\x0f\xff\x02\x03\x04\x05\x06\x07\x08\t'
934 WORD $0xff0f0e0d // .ascii 4, '\r\x0e\x0f\xff\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r'
935 WORD $0x05040302 // .ascii 4, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff'
936 WORD $0x09080706 // .ascii 4, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\x03\x04\x05\x06'
937 WORD $0x0d0c0b0a // .ascii 4, '\n\x0b\x0c\r\x0e\x0f\xff\xff\x03\x04\x05\x06\x07\x08\t\n'
938 WORD $0xffff0f0e // .ascii 4, '\x0e\x0f\xff\xff\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e'
939 WORD $0x06050403 // .ascii 4, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff'
940 WORD $0x0a090807 // .ascii 4, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\x04\x05\x06\x07'
941 WORD $0x0e0d0c0b // .ascii 4, '\x0b\x0c\r\x0e\x0f\xff\xff\xff\x04\x05\x06\x07\x08\t\n\x0b'
942 WORD $0xffffff0f // .ascii 4, '\x0f\xff\xff\xff\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'
943 WORD $0x07060504 // .ascii 4, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff'
944 WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\x05\x06\x07\x08'
945 WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\xff\xff\xff\xff\x05\x06\x07\x08\t\n\x0b\x0c'
946 WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff'
947 WORD $0x08070605 // .ascii 4, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff'
948 WORD $0x0c0b0a09 // .ascii 4, '\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\x06\x07\x08\t'
949 WORD $0xff0f0e0d // .ascii 4, '\r\x0e\x0f\xff\xff\xff\xff\xff\x06\x07\x08\t\n\x0b\x0c\r'
950 WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff'
951 WORD $0x09080706 // .ascii 4, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff'
952 WORD $0x0d0c0b0a // .ascii 4, '\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\x07\x08\t\n'
953 WORD $0xffff0f0e // .ascii 4, '\x0e\x0f\xff\xff\xff\xff\xff\xff\x07\x08\t\n\x0b\x0c\r\x0e'
954 WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff'
955 WORD $0x0a090807 // .ascii 4, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff'
956 WORD $0x0e0d0c0b // .ascii 4, '\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\x08\t\n\x0b'
957 WORD $0xffffff0f // .ascii 4, '\x0f\xff\xff\xff\xff\xff\xff\xff\x08\t\n\x0b\x0c\r\x0e\x0f'
958 WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff'
959 WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff'
960 WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff'
961 WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\xff\xff\xff\xff'
962 WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff'
963
964TEXT ·__i64toa(SB), NOSPLIT, $0-24
965 NO_LOCAL_POINTERS
966
967_entry:
968 MOVD 16(g), R16
969 SUB $96, RSP, R17
970 CMP R16, R17
971 BLS _stack_grow
972
973_i64toa:
974 MOVD out+0(FP), R0
975 MOVD val+8(FP), R1
976 MOVD ·_subr__i64toa(SB), R11
977 WORD $0x1000005e // adr x30, .+8
978 JMP (R11)
979 MOVD R0, ret+16(FP)
980 RET
981
982_stack_grow:
983 MOVD R30, R3
984 CALL runtime·morestack_noctxt<>(SB)
985 JMP _entry
View as plain text