github.com/bytedance/sonic@v1.11.7-0.20240517092252-d2edb31b167b/internal/native/neon/i64toa_arm64.s (about) 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 8 TEXT ·__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 14 lCPI0_0: 15 WORD $0x147b20c5 16 WORD $0x80003334 17 // // .word 8389 18 // .word 5243 19 // .word 13108 20 // .word 32768 21 22 lCPI0_1: 23 WORD $0x08000080 24 WORD $0x80002000 25 // // .word 128 26 // .word 2048 27 // .word 8192 28 // .word 32768 29 30 lCPI0_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 52 lCPI0_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) 94 Lloh0: 95 WORD $0x100054ea // adr x10, _Digits $2716(%rip) 96 Lloh1: 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) 102 LBB0_4: 103 WORD $0x7101903f // cmp w1, #100 104 WORD $0x540002e3 // b.lo LBB0_9 $92(%rip) 105 WORD $0x5280000a // mov w10, #0 106 LBB0_6: 107 Lloh2: 108 WORD $0x100053cb // adr x11, _Digits $2680(%rip) 109 Lloh3: 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] 115 LBB0_7: 116 Lloh4: 117 WORD $0x1000530a // adr x10, _Digits $2656(%rip) 118 Lloh5: 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] 123 LBB0_8: 124 Lloh6: 125 WORD $0x10005269 // adr x9, _Digits $2636(%rip) 126 Lloh7: 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 136 LBB0_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) 142 LBB0_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) 161 Lloh8: 162 WORD $0x10004e49 // adr x9, _Digits $2504(%rip) 163 Lloh9: 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) 169 LBB0_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) 196 Lloh10: 197 WORD $0x10004a4b // adr x11, _Digits $2376(%rip) 198 Lloh11: 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) 204 LBB0_16: 205 WORD $0x7101913f // cmp w9, #100 206 WORD $0x540008a3 // b.lo LBB0_26 $276(%rip) 207 WORD $0x52800009 // mov w9, #0 208 LBB0_18: 209 Lloh12: 210 WORD $0x1000492c // adr x12, _Digits $2340(%rip) 211 Lloh13: 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] 217 LBB0_19: 218 Lloh14: 219 WORD $0x10004869 // adr x9, _Digits $2316(%rip) 220 Lloh15: 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] 225 LBB0_20: 226 Lloh16: 227 WORD $0x100047c9 // adr x9, _Digits $2296(%rip) 228 Lloh17: 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 239 LBB0_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 245 LBB0_23: 246 Lloh18: 247 WORD $0x100045cb // adr x11, _Digits $2232(%rip) 248 Lloh19: 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] 254 LBB0_24: 255 Lloh20: 256 WORD $0x1000450a // adr x10, _Digits $2208(%rip) 257 Lloh21: 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] 262 LBB0_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 273 Lloh22: 274 WORD $0x1000432c // adr x12, _Digits $2148(%rip) 275 Lloh23: 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 294 LBB0_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) 300 LBB0_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) 307 LBB0_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) 334 Lloh24: 335 WORD $0x10003c2d // adr x13, _Digits $1924(%rip) 336 Lloh25: 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) 342 LBB0_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 373 Lloh26: 374 WORD $0x10ffdee9 // adr x9, lCPI0_0 $-1060(%rip) 375 Lloh27: 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 381 Lloh28: 382 WORD $0x10ffde69 // adr x9, lCPI0_1 $-1076(%rip) 383 Lloh29: 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 420 Lloh30: 421 WORD $0x10ffda08 // adr x8, lCPI0_2 $-1216(%rip) 422 Lloh31: 423 WORD $0x3dc00102 // ldr q2, [x8, lCPI0_2@PAGEOFF] $0(%rip) 424 WORD $0x4e221c21 // and.16b v1, v1, v2 425 Lloh32: 426 WORD $0x10ffda28 // adr x8, lCPI0_3 $-1212(%rip) 427 Lloh33: 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 436 Lloh34: 437 WORD $0x10003709 // adr x9, _VecShiftShuffles $1760(%rip) 438 Lloh35: 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 451 LBB0_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 457 LBB0_35: 458 Lloh36: 459 WORD $0x10002e8d // adr x13, _Digits $1488(%rip) 460 Lloh37: 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] 466 LBB0_36: 467 Lloh38: 468 WORD $0x10002dcc // adr x12, _Digits $1464(%rip) 469 Lloh39: 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] 474 LBB0_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 485 Lloh40: 486 WORD $0x10002bed // adr x13, _Digits $1404(%rip) 487 Lloh41: 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 507 LBB0_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) 514 LBB0_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 545 Lloh42: 546 WORD $0x10ffcc2a // adr x10, lCPI0_0 $-1660(%rip) 547 Lloh43: 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 553 Lloh44: 554 WORD $0x10ffcbaa // adr x10, lCPI0_1 $-1676(%rip) 555 Lloh45: 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 592 Lloh46: 593 WORD $0x10ffc749 // adr x9, lCPI0_2 $-1816(%rip) 594 Lloh47: 595 WORD $0x3dc00122 // ldr q2, [x9, lCPI0_2@PAGEOFF] $0(%rip) 596 WORD $0x4e221c21 // and.16b v1, v1, v2 597 Lloh48: 598 WORD $0x10ffc769 // adr x9, lCPI0_3 $-1812(%rip) 599 Lloh49: 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 608 Lloh50: 609 WORD $0x1000244a // adr x10, _VecShiftShuffles $1160(%rip) 610 Lloh51: 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 624 LBB0_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) 637 LBB0_43: 638 WORD $0x71018d7f // cmp w11, #99 639 WORD $0x540000e8 // b.hi LBB0_45 $28(%rip) 640 Lloh52: 641 WORD $0x10001a89 // adr x9, _Digits $848(%rip) 642 Lloh53: 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) 648 LBB0_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 658 Lloh54: 659 WORD $0x100018ac // adr x12, _Digits $788(%rip) 660 Lloh55: 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 669 LBB0_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 695 Lloh56: 696 WORD $0x10ffbbac // adr x12, lCPI0_0 $-2188(%rip) 697 Lloh57: 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 703 Lloh58: 704 WORD $0x10ffbb2c // adr x12, lCPI0_1 $-2204(%rip) 705 Lloh59: 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 748 LBB0_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) 761 LBB0_49: 762 WORD $0x71018dbf // cmp w13, #99 763 WORD $0x540000e8 // b.hi LBB0_51 $28(%rip) 764 Lloh60: 765 WORD $0x10000c8b // adr x11, _Digits $400(%rip) 766 Lloh61: 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) 772 LBB0_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 783 Lloh62: 784 WORD $0x10000a8e // adr x14, _Digits $336(%rip) 785 Lloh63: 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 794 LBB0_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 820 Lloh64: 821 WORD $0x10ffad8d // adr x13, lCPI0_0 $-2640(%rip) 822 Lloh65: 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 828 Lloh66: 829 WORD $0x10ffad0d // adr x13, lCPI0_1 $-2656(%rip) 830 Lloh67: 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 964 TEXT ·__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