github.com/bytedance/sonic@v1.11.7-0.20240517092252-d2edb31b167b/internal/native/avx2/u64toa_text_amd64.go (about) 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, 0xa2, 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, 0x8c, 0x04, 0x00, 0x00, //0x0000007d leaq $1164(%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, 0x45, 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, 0x64, 0x04, 0x00, 0x00, //0x000000a5 leaq $1124(%rip), %rsi /* _Digits+0(%rip) */ 58 0x8a, 0x14, 0x32, //0x000000ac movb (%rdx,%rsi), %dl 59 0x89, 0xce, //0x000000af movl %ecx, %esi 60 0xff, 0xc1, //0x000000b1 incl %ecx 61 0x88, 0x14, 0x37, //0x000000b3 movb %dl, (%rdi,%rsi) 62 //0x000000b6 LBB0_6 63 0x48, 0x8d, 0x15, 0x53, 0x04, 0x00, 0x00, //0x000000b6 leaq $1107(%rip), %rdx /* _Digits+0(%rip) */ 64 0x8a, 0x14, 0x10, //0x000000bd movb (%rax,%rdx), %dl 65 0x89, 0xce, //0x000000c0 movl %ecx, %esi 66 0xff, 0xc1, //0x000000c2 incl %ecx 67 0x88, 0x14, 0x37, //0x000000c4 movb %dl, (%rdi,%rsi) 68 //0x000000c7 LBB0_7 69 0x0f, 0xb7, 0xc0, //0x000000c7 movzwl %ax, %eax 70 0x48, 0x83, 0xc8, 0x01, //0x000000ca orq $1, %rax 71 0x48, 0x8d, 0x15, 0x3b, 0x04, 0x00, 0x00, //0x000000ce leaq $1083(%rip), %rdx /* _Digits+0(%rip) */ 72 0x8a, 0x04, 0x10, //0x000000d5 movb (%rax,%rdx), %al 73 0x89, 0xca, //0x000000d8 movl %ecx, %edx 74 0xff, 0xc1, //0x000000da incl %ecx 75 0x88, 0x04, 0x17, //0x000000dc movb %al, (%rdi,%rdx) 76 0x89, 0xc8, //0x000000df movl %ecx, %eax 77 0x5d, //0x000000e1 popq %rbp 78 0xc3, //0x000000e2 retq 79 //0x000000e3 LBB0_5 80 0x31, 0xc9, //0x000000e3 xorl %ecx, %ecx 81 0x83, 0xfe, 0x0a, //0x000000e5 cmpl $10, %esi 82 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x000000e8 jae LBB0_6 83 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x000000ee jmp LBB0_7 84 //0x000000f3 LBB0_8 85 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x000000f3 cmpq $99999999, %rsi 86 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x000000fa ja LBB0_16 87 0x89, 0xf0, //0x00000100 movl %esi, %eax 88 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000102 movl $3518437209, %edx 89 0x48, 0x0f, 0xaf, 0xd0, //0x00000107 imulq %rax, %rdx 90 0x48, 0xc1, 0xea, 0x2d, //0x0000010b shrq $45, %rdx 91 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x0000010f imull $10000, %edx, %r8d 92 0x89, 0xf1, //0x00000116 movl %esi, %ecx 93 0x44, 0x29, 0xc1, //0x00000118 subl %r8d, %ecx 94 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x0000011b imulq $1125899907, %rax, %r10 95 0x49, 0xc1, 0xea, 0x31, //0x00000122 shrq $49, %r10 96 0x41, 0x83, 0xe2, 0xfe, //0x00000126 andl $-2, %r10d 97 0x0f, 0xb7, 0xc2, //0x0000012a movzwl %dx, %eax 98 0xc1, 0xe8, 0x02, //0x0000012d shrl $2, %eax 99 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000130 imull $5243, %eax, %eax 100 0xc1, 0xe8, 0x11, //0x00000136 shrl $17, %eax 101 0x6b, 0xc0, 0x64, //0x00000139 imull $100, %eax, %eax 102 0x29, 0xc2, //0x0000013c subl %eax, %edx 103 0x44, 0x0f, 0xb7, 0xca, //0x0000013e movzwl %dx, %r9d 104 0x4d, 0x01, 0xc9, //0x00000142 addq %r9, %r9 105 0x0f, 0xb7, 0xc1, //0x00000145 movzwl %cx, %eax 106 0xc1, 0xe8, 0x02, //0x00000148 shrl $2, %eax 107 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000014b imull $5243, %eax, %eax 108 0xc1, 0xe8, 0x11, //0x00000151 shrl $17, %eax 109 0x4c, 0x8d, 0x04, 0x00, //0x00000154 leaq (%rax,%rax), %r8 110 0x6b, 0xc0, 0x64, //0x00000158 imull $100, %eax, %eax 111 0x29, 0xc1, //0x0000015b subl %eax, %ecx 112 0x44, 0x0f, 0xb7, 0xd9, //0x0000015d movzwl %cx, %r11d 113 0x4d, 0x01, 0xdb, //0x00000161 addq %r11, %r11 114 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000164 cmpl $10000000, %esi 115 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x0000016a jb LBB0_11 116 0x48, 0x8d, 0x05, 0x99, 0x03, 0x00, 0x00, //0x00000170 leaq $921(%rip), %rax /* _Digits+0(%rip) */ 117 0x41, 0x8a, 0x04, 0x02, //0x00000177 movb (%r10,%rax), %al 118 0x88, 0x07, //0x0000017b movb %al, (%rdi) 119 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000017d movl $1, %ecx 120 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000182 jmp LBB0_12 121 //0x00000187 LBB0_11 122 0x31, 0xc9, //0x00000187 xorl %ecx, %ecx 123 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000189 cmpl $1000000, %esi 124 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x0000018f jb LBB0_13 125 //0x00000195 LBB0_12 126 0x44, 0x89, 0xd0, //0x00000195 movl %r10d, %eax 127 0x48, 0x83, 0xc8, 0x01, //0x00000198 orq $1, %rax 128 0x48, 0x8d, 0x35, 0x6d, 0x03, 0x00, 0x00, //0x0000019c leaq $877(%rip), %rsi /* _Digits+0(%rip) */ 129 0x8a, 0x04, 0x30, //0x000001a3 movb (%rax,%rsi), %al 130 0x89, 0xce, //0x000001a6 movl %ecx, %esi 131 0xff, 0xc1, //0x000001a8 incl %ecx 132 0x88, 0x04, 0x37, //0x000001aa movb %al, (%rdi,%rsi) 133 //0x000001ad LBB0_14 134 0x48, 0x8d, 0x05, 0x5c, 0x03, 0x00, 0x00, //0x000001ad leaq $860(%rip), %rax /* _Digits+0(%rip) */ 135 0x41, 0x8a, 0x04, 0x01, //0x000001b4 movb (%r9,%rax), %al 136 0x89, 0xce, //0x000001b8 movl %ecx, %esi 137 0xff, 0xc1, //0x000001ba incl %ecx 138 0x88, 0x04, 0x37, //0x000001bc movb %al, (%rdi,%rsi) 139 //0x000001bf LBB0_15 140 0x41, 0x0f, 0xb7, 0xc1, //0x000001bf movzwl %r9w, %eax 141 0x48, 0x83, 0xc8, 0x01, //0x000001c3 orq $1, %rax 142 0x48, 0x8d, 0x35, 0x42, 0x03, 0x00, 0x00, //0x000001c7 leaq $834(%rip), %rsi /* _Digits+0(%rip) */ 143 0x8a, 0x04, 0x30, //0x000001ce movb (%rax,%rsi), %al 144 0x89, 0xca, //0x000001d1 movl %ecx, %edx 145 0x88, 0x04, 0x3a, //0x000001d3 movb %al, (%rdx,%rdi) 146 0x41, 0x8a, 0x04, 0x30, //0x000001d6 movb (%r8,%rsi), %al 147 0x88, 0x44, 0x3a, 0x01, //0x000001da movb %al, $1(%rdx,%rdi) 148 0x41, 0x0f, 0xb7, 0xc0, //0x000001de movzwl %r8w, %eax 149 0x48, 0x83, 0xc8, 0x01, //0x000001e2 orq $1, %rax 150 0x8a, 0x04, 0x30, //0x000001e6 movb (%rax,%rsi), %al 151 0x88, 0x44, 0x3a, 0x02, //0x000001e9 movb %al, $2(%rdx,%rdi) 152 0x41, 0x8a, 0x04, 0x33, //0x000001ed movb (%r11,%rsi), %al 153 0x88, 0x44, 0x3a, 0x03, //0x000001f1 movb %al, $3(%rdx,%rdi) 154 0x41, 0x0f, 0xb7, 0xc3, //0x000001f5 movzwl %r11w, %eax 155 0x48, 0x83, 0xc8, 0x01, //0x000001f9 orq $1, %rax 156 0x8a, 0x04, 0x30, //0x000001fd movb (%rax,%rsi), %al 157 0x83, 0xc1, 0x05, //0x00000200 addl $5, %ecx 158 0x88, 0x44, 0x3a, 0x04, //0x00000203 movb %al, $4(%rdx,%rdi) 159 0x89, 0xc8, //0x00000207 movl %ecx, %eax 160 0x5d, //0x00000209 popq %rbp 161 0xc3, //0x0000020a retq 162 //0x0000020b LBB0_13 163 0x31, 0xc9, //0x0000020b xorl %ecx, %ecx 164 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x0000020d cmpl $100000, %esi 165 0x0f, 0x83, 0x94, 0xff, 0xff, 0xff, //0x00000213 jae LBB0_14 166 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00000219 jmp LBB0_15 167 //0x0000021e LBB0_16 168 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000021e movabsq $9999999999999999, %rax 169 0x48, 0x39, 0xc6, //0x00000228 cmpq %rax, %rsi 170 0x0f, 0x87, 0x07, 0x01, 0x00, 0x00, //0x0000022b ja LBB0_18 171 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000231 movabsq $-6067343680855748867, %rcx 172 0x48, 0x89, 0xf0, //0x0000023b movq %rsi, %rax 173 0x48, 0xf7, 0xe1, //0x0000023e mulq %rcx 174 0x48, 0xc1, 0xea, 0x1a, //0x00000241 shrq $26, %rdx 175 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00000245 imull $100000000, %edx, %eax 176 0x29, 0xc6, //0x0000024b subl %eax, %esi 177 0xc5, 0xf9, 0x6e, 0xc2, //0x0000024d vmovd %edx, %xmm0 178 0xc5, 0xfa, 0x6f, 0x0d, 0xa7, 0xfd, 0xff, 0xff, //0x00000251 vmovdqu $-601(%rip), %xmm1 /* LCPI0_0+0(%rip) */ 179 0xc5, 0xf9, 0xf4, 0xd1, //0x00000259 vpmuludq %xmm1, %xmm0, %xmm2 180 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x0000025d vpsrlq $45, %xmm2, %xmm2 181 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000262 movl $10000, %eax 182 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x00000267 vmovq %rax, %xmm3 183 0xc5, 0xe9, 0xf4, 0xe3, //0x0000026c vpmuludq %xmm3, %xmm2, %xmm4 184 0xc5, 0xf9, 0xfa, 0xc4, //0x00000270 vpsubd %xmm4, %xmm0, %xmm0 185 0xc5, 0xe9, 0x61, 0xc0, //0x00000274 vpunpcklwd %xmm0, %xmm2, %xmm0 186 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x00000278 vpsllq $2, %xmm0, %xmm0 187 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x0000027d vpshuflw $80, %xmm0, %xmm0 188 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00000282 vpshufd $80, %xmm0, %xmm0 189 0xc4, 0xe2, 0x79, 0x59, 0x15, 0xa0, 0xfd, 0xff, 0xff, //0x00000287 vpbroadcastq $-608(%rip), %xmm2 /* LCPI0_1+0(%rip) */ 190 0xc4, 0xe2, 0x79, 0x59, 0x25, 0x9f, 0xfd, 0xff, 0xff, //0x00000290 vpbroadcastq $-609(%rip), %xmm4 /* LCPI0_2+0(%rip) */ 191 0xc5, 0xf9, 0xe4, 0xc2, //0x00000299 vpmulhuw %xmm2, %xmm0, %xmm0 192 0xc5, 0xf9, 0xe4, 0xc4, //0x0000029d vpmulhuw %xmm4, %xmm0, %xmm0 193 0xc5, 0xfa, 0x6f, 0x2d, 0x67, 0xfd, 0xff, 0xff, //0x000002a1 vmovdqu $-665(%rip), %xmm5 /* LCPI0_3+0(%rip) */ 194 0xc5, 0xf9, 0xd5, 0xf5, //0x000002a9 vpmullw %xmm5, %xmm0, %xmm6 195 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000002ad vpsllq $16, %xmm6, %xmm6 196 0xc5, 0xf9, 0xf9, 0xc6, //0x000002b2 vpsubw %xmm6, %xmm0, %xmm0 197 0xc5, 0xf9, 0x6e, 0xf6, //0x000002b6 vmovd %esi, %xmm6 198 0xc5, 0xc9, 0xf4, 0xc9, //0x000002ba vpmuludq %xmm1, %xmm6, %xmm1 199 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000002be vpsrlq $45, %xmm1, %xmm1 200 0xc5, 0xf1, 0xf4, 0xdb, //0x000002c3 vpmuludq %xmm3, %xmm1, %xmm3 201 0xc5, 0xc9, 0xfa, 0xdb, //0x000002c7 vpsubd %xmm3, %xmm6, %xmm3 202 0xc5, 0xf1, 0x61, 0xcb, //0x000002cb vpunpcklwd %xmm3, %xmm1, %xmm1 203 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x000002cf vpsllq $2, %xmm1, %xmm1 204 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x000002d4 vpshuflw $80, %xmm1, %xmm1 205 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x000002d9 vpshufd $80, %xmm1, %xmm1 206 0xc5, 0xf1, 0xe4, 0xca, //0x000002de vpmulhuw %xmm2, %xmm1, %xmm1 207 0xc5, 0xf1, 0xe4, 0xcc, //0x000002e2 vpmulhuw %xmm4, %xmm1, %xmm1 208 0xc5, 0xf1, 0xd5, 0xd5, //0x000002e6 vpmullw %xmm5, %xmm1, %xmm2 209 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000002ea vpsllq $16, %xmm2, %xmm2 210 0xc5, 0xf1, 0xf9, 0xca, //0x000002ef vpsubw %xmm2, %xmm1, %xmm1 211 0xc5, 0xf9, 0x67, 0xc1, //0x000002f3 vpackuswb %xmm1, %xmm0, %xmm0 212 0xc5, 0xf9, 0xfc, 0x0d, 0x21, 0xfd, 0xff, 0xff, //0x000002f7 vpaddb $-735(%rip), %xmm0, %xmm1 /* LCPI0_4+0(%rip) */ 213 0xc5, 0xe9, 0xef, 0xd2, //0x000002ff vpxor %xmm2, %xmm2, %xmm2 214 0xc5, 0xf9, 0x74, 0xc2, //0x00000303 vpcmpeqb %xmm2, %xmm0, %xmm0 215 0xc5, 0xf9, 0xd7, 0xc0, //0x00000307 vpmovmskb %xmm0, %eax 216 0x0d, 0x00, 0x80, 0x00, 0x00, //0x0000030b orl $32768, %eax 217 0x35, 0xff, 0x7f, 0xff, 0xff, //0x00000310 xorl $-32769, %eax 218 0x0f, 0xbc, 0xc0, //0x00000315 bsfl %eax, %eax 219 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00000318 movl $16, %ecx 220 0x29, 0xc1, //0x0000031d subl %eax, %ecx 221 0x48, 0xc1, 0xe0, 0x04, //0x0000031f shlq $4, %rax 222 0x48, 0x8d, 0x15, 0xb6, 0x02, 0x00, 0x00, //0x00000323 leaq $694(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ 223 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x10, //0x0000032a vpshufb (%rax,%rdx), %xmm1, %xmm0 224 0xc5, 0xfa, 0x7f, 0x07, //0x00000330 vmovdqu %xmm0, (%rdi) 225 0x89, 0xc8, //0x00000334 movl %ecx, %eax 226 0x5d, //0x00000336 popq %rbp 227 0xc3, //0x00000337 retq 228 //0x00000338 LBB0_18 229 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x00000338 movabsq $4153837486827862103, %rcx 230 0x48, 0x89, 0xf0, //0x00000342 movq %rsi, %rax 231 0x48, 0xf7, 0xe1, //0x00000345 mulq %rcx 232 0x48, 0xc1, 0xea, 0x33, //0x00000348 shrq $51, %rdx 233 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000034c movabsq $10000000000000000, %rax 234 0x48, 0x0f, 0xaf, 0xc2, //0x00000356 imulq %rdx, %rax 235 0x48, 0x29, 0xc6, //0x0000035a subq %rax, %rsi 236 0x83, 0xfa, 0x09, //0x0000035d cmpl $9, %edx 237 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x00000360 ja LBB0_20 238 0x80, 0xc2, 0x30, //0x00000366 addb $48, %dl 239 0x88, 0x17, //0x00000369 movb %dl, (%rdi) 240 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000036b movl $1, %ecx 241 0xe9, 0xba, 0x00, 0x00, 0x00, //0x00000370 jmp LBB0_25 242 //0x00000375 LBB0_20 243 0x83, 0xfa, 0x63, //0x00000375 cmpl $99, %edx 244 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x00000378 ja LBB0_22 245 0x89, 0xd0, //0x0000037e movl %edx, %eax 246 0x48, 0x8d, 0x0d, 0x89, 0x01, 0x00, 0x00, //0x00000380 leaq $393(%rip), %rcx /* _Digits+0(%rip) */ 247 0x8a, 0x14, 0x41, //0x00000387 movb (%rcx,%rax,2), %dl 248 0x8a, 0x44, 0x41, 0x01, //0x0000038a movb $1(%rcx,%rax,2), %al 249 0x88, 0x17, //0x0000038e movb %dl, (%rdi) 250 0x88, 0x47, 0x01, //0x00000390 movb %al, $1(%rdi) 251 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00000393 movl $2, %ecx 252 0xe9, 0x92, 0x00, 0x00, 0x00, //0x00000398 jmp LBB0_25 253 //0x0000039d LBB0_22 254 0x89, 0xd0, //0x0000039d movl %edx, %eax 255 0xc1, 0xe8, 0x02, //0x0000039f shrl $2, %eax 256 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000003a2 imull $5243, %eax, %eax 257 0xc1, 0xe8, 0x11, //0x000003a8 shrl $17, %eax 258 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x000003ab cmpl $999, %edx 259 0x0f, 0x87, 0x3c, 0x00, 0x00, 0x00, //0x000003b1 ja LBB0_24 260 0x83, 0xc0, 0x30, //0x000003b7 addl $48, %eax 261 0x88, 0x07, //0x000003ba movb %al, (%rdi) 262 0x0f, 0xb7, 0xc2, //0x000003bc movzwl %dx, %eax 263 0x89, 0xc1, //0x000003bf movl %eax, %ecx 264 0xc1, 0xe9, 0x02, //0x000003c1 shrl $2, %ecx 265 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x000003c4 imull $5243, %ecx, %ecx 266 0xc1, 0xe9, 0x11, //0x000003ca shrl $17, %ecx 267 0x6b, 0xc9, 0x64, //0x000003cd imull $100, %ecx, %ecx 268 0x29, 0xc8, //0x000003d0 subl %ecx, %eax 269 0x0f, 0xb7, 0xc0, //0x000003d2 movzwl %ax, %eax 270 0x48, 0x8d, 0x0d, 0x34, 0x01, 0x00, 0x00, //0x000003d5 leaq $308(%rip), %rcx /* _Digits+0(%rip) */ 271 0x8a, 0x14, 0x41, //0x000003dc movb (%rcx,%rax,2), %dl 272 0x8a, 0x44, 0x41, 0x01, //0x000003df movb $1(%rcx,%rax,2), %al 273 0x88, 0x57, 0x01, //0x000003e3 movb %dl, $1(%rdi) 274 0x88, 0x47, 0x02, //0x000003e6 movb %al, $2(%rdi) 275 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000003e9 movl $3, %ecx 276 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x000003ee jmp LBB0_25 277 //0x000003f3 LBB0_24 278 0x6b, 0xc8, 0x64, //0x000003f3 imull $100, %eax, %ecx 279 0x29, 0xca, //0x000003f6 subl %ecx, %edx 280 0x0f, 0xb7, 0xc0, //0x000003f8 movzwl %ax, %eax 281 0x4c, 0x8d, 0x05, 0x0e, 0x01, 0x00, 0x00, //0x000003fb leaq $270(%rip), %r8 /* _Digits+0(%rip) */ 282 0x41, 0x8a, 0x0c, 0x40, //0x00000402 movb (%r8,%rax,2), %cl 283 0x41, 0x8a, 0x44, 0x40, 0x01, //0x00000406 movb $1(%r8,%rax,2), %al 284 0x88, 0x0f, //0x0000040b movb %cl, (%rdi) 285 0x88, 0x47, 0x01, //0x0000040d movb %al, $1(%rdi) 286 0x0f, 0xb7, 0xc2, //0x00000410 movzwl %dx, %eax 287 0x41, 0x8a, 0x0c, 0x40, //0x00000413 movb (%r8,%rax,2), %cl 288 0x48, 0x01, 0xc0, //0x00000417 addq %rax, %rax 289 0x88, 0x4f, 0x02, //0x0000041a movb %cl, $2(%rdi) 290 0x83, 0xc8, 0x01, //0x0000041d orl $1, %eax 291 0x0f, 0xb7, 0xc0, //0x00000420 movzwl %ax, %eax 292 0x42, 0x8a, 0x04, 0x00, //0x00000423 movb (%rax,%r8), %al 293 0x88, 0x47, 0x03, //0x00000427 movb %al, $3(%rdi) 294 0xb9, 0x04, 0x00, 0x00, 0x00, //0x0000042a movl $4, %ecx 295 //0x0000042f LBB0_25 296 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000042f movabsq $-6067343680855748867, %rdx 297 0x48, 0x89, 0xf0, //0x00000439 movq %rsi, %rax 298 0x48, 0xf7, 0xe2, //0x0000043c mulq %rdx 299 0x48, 0xc1, 0xea, 0x1a, //0x0000043f shrq $26, %rdx 300 0xc5, 0xf9, 0x6e, 0xc2, //0x00000443 vmovd %edx, %xmm0 301 0xc5, 0xfa, 0x6f, 0x0d, 0xb1, 0xfb, 0xff, 0xff, //0x00000447 vmovdqu $-1103(%rip), %xmm1 /* LCPI0_0+0(%rip) */ 302 0xc5, 0xf9, 0xf4, 0xd1, //0x0000044f vpmuludq %xmm1, %xmm0, %xmm2 303 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x00000453 vpsrlq $45, %xmm2, %xmm2 304 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000458 movl $10000, %eax 305 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x0000045d vmovq %rax, %xmm3 306 0xc5, 0xe9, 0xf4, 0xe3, //0x00000462 vpmuludq %xmm3, %xmm2, %xmm4 307 0xc5, 0xf9, 0xfa, 0xc4, //0x00000466 vpsubd %xmm4, %xmm0, %xmm0 308 0xc5, 0xe9, 0x61, 0xc0, //0x0000046a vpunpcklwd %xmm0, %xmm2, %xmm0 309 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x0000046e vpsllq $2, %xmm0, %xmm0 310 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x00000473 vpshuflw $80, %xmm0, %xmm0 311 0xc4, 0xe2, 0x79, 0x59, 0x15, 0xaf, 0xfb, 0xff, 0xff, //0x00000478 vpbroadcastq $-1105(%rip), %xmm2 /* LCPI0_1+0(%rip) */ 312 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00000481 vpshufd $80, %xmm0, %xmm0 313 0xc5, 0xf9, 0xe4, 0xc2, //0x00000486 vpmulhuw %xmm2, %xmm0, %xmm0 314 0xc4, 0xe2, 0x79, 0x59, 0x25, 0xa5, 0xfb, 0xff, 0xff, //0x0000048a vpbroadcastq $-1115(%rip), %xmm4 /* LCPI0_2+0(%rip) */ 315 0xc5, 0xf9, 0xe4, 0xc4, //0x00000493 vpmulhuw %xmm4, %xmm0, %xmm0 316 0xc5, 0xfa, 0x6f, 0x2d, 0x71, 0xfb, 0xff, 0xff, //0x00000497 vmovdqu $-1167(%rip), %xmm5 /* LCPI0_3+0(%rip) */ 317 0xc5, 0xf9, 0xd5, 0xf5, //0x0000049f vpmullw %xmm5, %xmm0, %xmm6 318 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000004a3 vpsllq $16, %xmm6, %xmm6 319 0xc5, 0xf9, 0xf9, 0xc6, //0x000004a8 vpsubw %xmm6, %xmm0, %xmm0 320 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x000004ac imull $100000000, %edx, %eax 321 0x29, 0xc6, //0x000004b2 subl %eax, %esi 322 0xc5, 0xf9, 0x6e, 0xf6, //0x000004b4 vmovd %esi, %xmm6 323 0xc5, 0xc9, 0xf4, 0xc9, //0x000004b8 vpmuludq %xmm1, %xmm6, %xmm1 324 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000004bc vpsrlq $45, %xmm1, %xmm1 325 0xc5, 0xf1, 0xf4, 0xdb, //0x000004c1 vpmuludq %xmm3, %xmm1, %xmm3 326 0xc5, 0xc9, 0xfa, 0xdb, //0x000004c5 vpsubd %xmm3, %xmm6, %xmm3 327 0xc5, 0xf1, 0x61, 0xcb, //0x000004c9 vpunpcklwd %xmm3, %xmm1, %xmm1 328 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x000004cd vpsllq $2, %xmm1, %xmm1 329 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x000004d2 vpshuflw $80, %xmm1, %xmm1 330 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x000004d7 vpshufd $80, %xmm1, %xmm1 331 0xc5, 0xf1, 0xe4, 0xca, //0x000004dc vpmulhuw %xmm2, %xmm1, %xmm1 332 0xc5, 0xf1, 0xe4, 0xcc, //0x000004e0 vpmulhuw %xmm4, %xmm1, %xmm1 333 0xc5, 0xf1, 0xd5, 0xd5, //0x000004e4 vpmullw %xmm5, %xmm1, %xmm2 334 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000004e8 vpsllq $16, %xmm2, %xmm2 335 0xc5, 0xf1, 0xf9, 0xca, //0x000004ed vpsubw %xmm2, %xmm1, %xmm1 336 0xc5, 0xf9, 0x67, 0xc1, //0x000004f1 vpackuswb %xmm1, %xmm0, %xmm0 337 0xc5, 0xf9, 0xfc, 0x05, 0x23, 0xfb, 0xff, 0xff, //0x000004f5 vpaddb $-1245(%rip), %xmm0, %xmm0 /* LCPI0_4+0(%rip) */ 338 0x89, 0xc8, //0x000004fd movl %ecx, %eax 339 0xc5, 0xfa, 0x7f, 0x04, 0x07, //0x000004ff vmovdqu %xmm0, (%rdi,%rax) 340 0x83, 0xc9, 0x10, //0x00000504 orl $16, %ecx 341 0x89, 0xc8, //0x00000507 movl %ecx, %eax 342 0x5d, //0x00000509 popq %rbp 343 0xc3, //0x0000050a retq 344 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000050b .p2align 4, 0x00 345 //0x00000510 _Digits 346 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x00000510 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' 347 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x00000520 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' 348 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x00000530 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' 349 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x00000540 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' 350 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x00000550 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' 351 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x00000560 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' 352 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x00000570 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' 353 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x00000580 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' 354 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x00000590 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' 355 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x000005a0 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' 356 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x000005b0 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' 357 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x000005c0 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' 358 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x000005d0 QUAD $0x3939383937393639 // .ascii 8, '96979899' 359 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000005d8 .p2align 4, 0x00 360 //0x000005e0 _VecShiftShuffles 361 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x000005e0 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' 362 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x000005f0 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' 363 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x00000600 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' 364 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x00000610 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' 365 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x00000620 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' 366 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000630 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' 367 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000640 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' 368 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000650 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' 369 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000660 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' 370 } 371