github.com/bytedance/sonic@v1.11.7-0.20240517092252-d2edb31b167b/internal/native/sse/u64toa_text_amd64.go (about) 1 // +build amd64 2 // Code generated by asm2asm, DO NOT EDIT. 3 4 package sse 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_1 12 0xc5, 0x20, //0x00000010 .word 8389 13 0x7b, 0x14, //0x00000012 .word 5243 14 0x34, 0x33, //0x00000014 .word 13108 15 0x00, 0x80, //0x00000016 .word 32768 16 0xc5, 0x20, //0x00000018 .word 8389 17 0x7b, 0x14, //0x0000001a .word 5243 18 0x34, 0x33, //0x0000001c .word 13108 19 0x00, 0x80, //0x0000001e .word 32768 20 //0x00000020 LCPI0_2 21 0x80, 0x00, //0x00000020 .word 128 22 0x00, 0x08, //0x00000022 .word 2048 23 0x00, 0x20, //0x00000024 .word 8192 24 0x00, 0x80, //0x00000026 .word 32768 25 0x80, 0x00, //0x00000028 .word 128 26 0x00, 0x08, //0x0000002a .word 2048 27 0x00, 0x20, //0x0000002c .word 8192 28 0x00, 0x80, //0x0000002e .word 32768 29 //0x00000030 LCPI0_3 30 0x0a, 0x00, //0x00000030 .word 10 31 0x0a, 0x00, //0x00000032 .word 10 32 0x0a, 0x00, //0x00000034 .word 10 33 0x0a, 0x00, //0x00000036 .word 10 34 0x0a, 0x00, //0x00000038 .word 10 35 0x0a, 0x00, //0x0000003a .word 10 36 0x0a, 0x00, //0x0000003c .word 10 37 0x0a, 0x00, //0x0000003e .word 10 38 //0x00000040 LCPI0_4 39 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000040 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' 40 //0x00000050 .p2align 4, 0x90 41 //0x00000050 _u64toa 42 0x55, //0x00000050 pushq %rbp 43 0x48, 0x89, 0xe5, //0x00000051 movq %rsp, %rbp 44 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000054 cmpq $9999, %rsi 45 0x0f, 0x87, 0xa2, 0x00, 0x00, 0x00, //0x0000005b ja LBB0_8 46 0x0f, 0xb7, 0xc6, //0x00000061 movzwl %si, %eax 47 0xc1, 0xe8, 0x02, //0x00000064 shrl $2, %eax 48 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000067 imull $5243, %eax, %eax 49 0xc1, 0xe8, 0x11, //0x0000006d shrl $17, %eax 50 0x48, 0x8d, 0x14, 0x00, //0x00000070 leaq (%rax,%rax), %rdx 51 0x6b, 0xc0, 0x64, //0x00000074 imull $100, %eax, %eax 52 0x89, 0xf1, //0x00000077 movl %esi, %ecx 53 0x29, 0xc1, //0x00000079 subl %eax, %ecx 54 0x0f, 0xb7, 0xc1, //0x0000007b movzwl %cx, %eax 55 0x48, 0x01, 0xc0, //0x0000007e addq %rax, %rax 56 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000081 cmpl $1000, %esi 57 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000087 jb LBB0_3 58 0x48, 0x8d, 0x0d, 0xac, 0x04, 0x00, 0x00, //0x0000008d leaq $1196(%rip), %rcx /* _Digits+0(%rip) */ 59 0x8a, 0x0c, 0x0a, //0x00000094 movb (%rdx,%rcx), %cl 60 0x88, 0x0f, //0x00000097 movb %cl, (%rdi) 61 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000099 movl $1, %ecx 62 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x0000009e jmp LBB0_4 63 //0x000000a3 LBB0_3 64 0x31, 0xc9, //0x000000a3 xorl %ecx, %ecx 65 0x83, 0xfe, 0x64, //0x000000a5 cmpl $100, %esi 66 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x000000a8 jb LBB0_5 67 //0x000000ae LBB0_4 68 0x0f, 0xb7, 0xd2, //0x000000ae movzwl %dx, %edx 69 0x48, 0x83, 0xca, 0x01, //0x000000b1 orq $1, %rdx 70 0x48, 0x8d, 0x35, 0x84, 0x04, 0x00, 0x00, //0x000000b5 leaq $1156(%rip), %rsi /* _Digits+0(%rip) */ 71 0x8a, 0x14, 0x32, //0x000000bc movb (%rdx,%rsi), %dl 72 0x89, 0xce, //0x000000bf movl %ecx, %esi 73 0xff, 0xc1, //0x000000c1 incl %ecx 74 0x88, 0x14, 0x37, //0x000000c3 movb %dl, (%rdi,%rsi) 75 //0x000000c6 LBB0_6 76 0x48, 0x8d, 0x15, 0x73, 0x04, 0x00, 0x00, //0x000000c6 leaq $1139(%rip), %rdx /* _Digits+0(%rip) */ 77 0x8a, 0x14, 0x10, //0x000000cd movb (%rax,%rdx), %dl 78 0x89, 0xce, //0x000000d0 movl %ecx, %esi 79 0xff, 0xc1, //0x000000d2 incl %ecx 80 0x88, 0x14, 0x37, //0x000000d4 movb %dl, (%rdi,%rsi) 81 //0x000000d7 LBB0_7 82 0x0f, 0xb7, 0xc0, //0x000000d7 movzwl %ax, %eax 83 0x48, 0x83, 0xc8, 0x01, //0x000000da orq $1, %rax 84 0x48, 0x8d, 0x15, 0x5b, 0x04, 0x00, 0x00, //0x000000de leaq $1115(%rip), %rdx /* _Digits+0(%rip) */ 85 0x8a, 0x04, 0x10, //0x000000e5 movb (%rax,%rdx), %al 86 0x89, 0xca, //0x000000e8 movl %ecx, %edx 87 0xff, 0xc1, //0x000000ea incl %ecx 88 0x88, 0x04, 0x17, //0x000000ec movb %al, (%rdi,%rdx) 89 0x89, 0xc8, //0x000000ef movl %ecx, %eax 90 0x5d, //0x000000f1 popq %rbp 91 0xc3, //0x000000f2 retq 92 //0x000000f3 LBB0_5 93 0x31, 0xc9, //0x000000f3 xorl %ecx, %ecx 94 0x83, 0xfe, 0x0a, //0x000000f5 cmpl $10, %esi 95 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x000000f8 jae LBB0_6 96 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x000000fe jmp LBB0_7 97 //0x00000103 LBB0_8 98 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000103 cmpq $99999999, %rsi 99 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x0000010a ja LBB0_16 100 0x89, 0xf0, //0x00000110 movl %esi, %eax 101 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000112 movl $3518437209, %edx 102 0x48, 0x0f, 0xaf, 0xd0, //0x00000117 imulq %rax, %rdx 103 0x48, 0xc1, 0xea, 0x2d, //0x0000011b shrq $45, %rdx 104 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x0000011f imull $10000, %edx, %r8d 105 0x89, 0xf1, //0x00000126 movl %esi, %ecx 106 0x44, 0x29, 0xc1, //0x00000128 subl %r8d, %ecx 107 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x0000012b imulq $1125899907, %rax, %r10 108 0x49, 0xc1, 0xea, 0x31, //0x00000132 shrq $49, %r10 109 0x41, 0x83, 0xe2, 0xfe, //0x00000136 andl $-2, %r10d 110 0x0f, 0xb7, 0xc2, //0x0000013a movzwl %dx, %eax 111 0xc1, 0xe8, 0x02, //0x0000013d shrl $2, %eax 112 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000140 imull $5243, %eax, %eax 113 0xc1, 0xe8, 0x11, //0x00000146 shrl $17, %eax 114 0x6b, 0xc0, 0x64, //0x00000149 imull $100, %eax, %eax 115 0x29, 0xc2, //0x0000014c subl %eax, %edx 116 0x44, 0x0f, 0xb7, 0xca, //0x0000014e movzwl %dx, %r9d 117 0x4d, 0x01, 0xc9, //0x00000152 addq %r9, %r9 118 0x0f, 0xb7, 0xc1, //0x00000155 movzwl %cx, %eax 119 0xc1, 0xe8, 0x02, //0x00000158 shrl $2, %eax 120 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000015b imull $5243, %eax, %eax 121 0xc1, 0xe8, 0x11, //0x00000161 shrl $17, %eax 122 0x4c, 0x8d, 0x04, 0x00, //0x00000164 leaq (%rax,%rax), %r8 123 0x6b, 0xc0, 0x64, //0x00000168 imull $100, %eax, %eax 124 0x29, 0xc1, //0x0000016b subl %eax, %ecx 125 0x44, 0x0f, 0xb7, 0xd9, //0x0000016d movzwl %cx, %r11d 126 0x4d, 0x01, 0xdb, //0x00000171 addq %r11, %r11 127 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000174 cmpl $10000000, %esi 128 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x0000017a jb LBB0_11 129 0x48, 0x8d, 0x05, 0xb9, 0x03, 0x00, 0x00, //0x00000180 leaq $953(%rip), %rax /* _Digits+0(%rip) */ 130 0x41, 0x8a, 0x04, 0x02, //0x00000187 movb (%r10,%rax), %al 131 0x88, 0x07, //0x0000018b movb %al, (%rdi) 132 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000018d movl $1, %ecx 133 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000192 jmp LBB0_12 134 //0x00000197 LBB0_11 135 0x31, 0xc9, //0x00000197 xorl %ecx, %ecx 136 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000199 cmpl $1000000, %esi 137 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x0000019f jb LBB0_13 138 //0x000001a5 LBB0_12 139 0x44, 0x89, 0xd0, //0x000001a5 movl %r10d, %eax 140 0x48, 0x83, 0xc8, 0x01, //0x000001a8 orq $1, %rax 141 0x48, 0x8d, 0x35, 0x8d, 0x03, 0x00, 0x00, //0x000001ac leaq $909(%rip), %rsi /* _Digits+0(%rip) */ 142 0x8a, 0x04, 0x30, //0x000001b3 movb (%rax,%rsi), %al 143 0x89, 0xce, //0x000001b6 movl %ecx, %esi 144 0xff, 0xc1, //0x000001b8 incl %ecx 145 0x88, 0x04, 0x37, //0x000001ba movb %al, (%rdi,%rsi) 146 //0x000001bd LBB0_14 147 0x48, 0x8d, 0x05, 0x7c, 0x03, 0x00, 0x00, //0x000001bd leaq $892(%rip), %rax /* _Digits+0(%rip) */ 148 0x41, 0x8a, 0x04, 0x01, //0x000001c4 movb (%r9,%rax), %al 149 0x89, 0xce, //0x000001c8 movl %ecx, %esi 150 0xff, 0xc1, //0x000001ca incl %ecx 151 0x88, 0x04, 0x37, //0x000001cc movb %al, (%rdi,%rsi) 152 //0x000001cf LBB0_15 153 0x41, 0x0f, 0xb7, 0xc1, //0x000001cf movzwl %r9w, %eax 154 0x48, 0x83, 0xc8, 0x01, //0x000001d3 orq $1, %rax 155 0x48, 0x8d, 0x35, 0x62, 0x03, 0x00, 0x00, //0x000001d7 leaq $866(%rip), %rsi /* _Digits+0(%rip) */ 156 0x8a, 0x04, 0x30, //0x000001de movb (%rax,%rsi), %al 157 0x89, 0xca, //0x000001e1 movl %ecx, %edx 158 0x88, 0x04, 0x3a, //0x000001e3 movb %al, (%rdx,%rdi) 159 0x41, 0x8a, 0x04, 0x30, //0x000001e6 movb (%r8,%rsi), %al 160 0x88, 0x44, 0x3a, 0x01, //0x000001ea movb %al, $1(%rdx,%rdi) 161 0x41, 0x0f, 0xb7, 0xc0, //0x000001ee movzwl %r8w, %eax 162 0x48, 0x83, 0xc8, 0x01, //0x000001f2 orq $1, %rax 163 0x8a, 0x04, 0x30, //0x000001f6 movb (%rax,%rsi), %al 164 0x88, 0x44, 0x3a, 0x02, //0x000001f9 movb %al, $2(%rdx,%rdi) 165 0x41, 0x8a, 0x04, 0x33, //0x000001fd movb (%r11,%rsi), %al 166 0x88, 0x44, 0x3a, 0x03, //0x00000201 movb %al, $3(%rdx,%rdi) 167 0x41, 0x0f, 0xb7, 0xc3, //0x00000205 movzwl %r11w, %eax 168 0x48, 0x83, 0xc8, 0x01, //0x00000209 orq $1, %rax 169 0x8a, 0x04, 0x30, //0x0000020d movb (%rax,%rsi), %al 170 0x83, 0xc1, 0x05, //0x00000210 addl $5, %ecx 171 0x88, 0x44, 0x3a, 0x04, //0x00000213 movb %al, $4(%rdx,%rdi) 172 0x89, 0xc8, //0x00000217 movl %ecx, %eax 173 0x5d, //0x00000219 popq %rbp 174 0xc3, //0x0000021a retq 175 //0x0000021b LBB0_13 176 0x31, 0xc9, //0x0000021b xorl %ecx, %ecx 177 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x0000021d cmpl $100000, %esi 178 0x0f, 0x83, 0x94, 0xff, 0xff, 0xff, //0x00000223 jae LBB0_14 179 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00000229 jmp LBB0_15 180 //0x0000022e LBB0_16 181 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000022e movabsq $9999999999999999, %rax 182 0x48, 0x39, 0xc6, //0x00000238 cmpq %rax, %rsi 183 0x0f, 0x87, 0x15, 0x01, 0x00, 0x00, //0x0000023b ja LBB0_18 184 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000241 movabsq $-6067343680855748867, %rcx 185 0x48, 0x89, 0xf0, //0x0000024b movq %rsi, %rax 186 0x48, 0xf7, 0xe1, //0x0000024e mulq %rcx 187 0x48, 0xc1, 0xea, 0x1a, //0x00000251 shrq $26, %rdx 188 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00000255 imull $100000000, %edx, %eax 189 0x29, 0xc6, //0x0000025b subl %eax, %esi 190 0x66, 0x0f, 0x6e, 0xc2, //0x0000025d movd %edx, %xmm0 191 0xf3, 0x0f, 0x6f, 0x0d, 0x97, 0xfd, 0xff, 0xff, //0x00000261 movdqu $-617(%rip), %xmm1 /* LCPI0_0+0(%rip) */ 192 0x66, 0x0f, 0x6f, 0xd0, //0x00000269 movdqa %xmm0, %xmm2 193 0x66, 0x0f, 0xf4, 0xd1, //0x0000026d pmuludq %xmm1, %xmm2 194 0x66, 0x0f, 0x73, 0xd2, 0x2d, //0x00000271 psrlq $45, %xmm2 195 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000276 movl $10000, %eax 196 0x66, 0x48, 0x0f, 0x6e, 0xd8, //0x0000027b movq %rax, %xmm3 197 0x66, 0x0f, 0x6f, 0xe2, //0x00000280 movdqa %xmm2, %xmm4 198 0x66, 0x0f, 0xf4, 0xe3, //0x00000284 pmuludq %xmm3, %xmm4 199 0x66, 0x0f, 0xfa, 0xc4, //0x00000288 psubd %xmm4, %xmm0 200 0x66, 0x0f, 0x61, 0xd0, //0x0000028c punpcklwd %xmm0, %xmm2 201 0x66, 0x0f, 0x73, 0xf2, 0x02, //0x00000290 psllq $2, %xmm2 202 0xf2, 0x0f, 0x70, 0xc2, 0x50, //0x00000295 pshuflw $80, %xmm2, %xmm0 203 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x0000029a pshufd $80, %xmm0, %xmm0 204 0xf3, 0x0f, 0x6f, 0x15, 0x69, 0xfd, 0xff, 0xff, //0x0000029f movdqu $-663(%rip), %xmm2 /* LCPI0_1+0(%rip) */ 205 0x66, 0x0f, 0xe4, 0xc2, //0x000002a7 pmulhuw %xmm2, %xmm0 206 0xf3, 0x0f, 0x6f, 0x25, 0x6d, 0xfd, 0xff, 0xff, //0x000002ab movdqu $-659(%rip), %xmm4 /* LCPI0_2+0(%rip) */ 207 0x66, 0x0f, 0xe4, 0xc4, //0x000002b3 pmulhuw %xmm4, %xmm0 208 0xf3, 0x0f, 0x6f, 0x2d, 0x71, 0xfd, 0xff, 0xff, //0x000002b7 movdqu $-655(%rip), %xmm5 /* LCPI0_3+0(%rip) */ 209 0x66, 0x0f, 0x6f, 0xf0, //0x000002bf movdqa %xmm0, %xmm6 210 0x66, 0x0f, 0xd5, 0xf5, //0x000002c3 pmullw %xmm5, %xmm6 211 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x000002c7 psllq $16, %xmm6 212 0x66, 0x0f, 0xf9, 0xc6, //0x000002cc psubw %xmm6, %xmm0 213 0x66, 0x0f, 0x6e, 0xf6, //0x000002d0 movd %esi, %xmm6 214 0x66, 0x0f, 0xf4, 0xce, //0x000002d4 pmuludq %xmm6, %xmm1 215 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x000002d8 psrlq $45, %xmm1 216 0x66, 0x0f, 0xf4, 0xd9, //0x000002dd pmuludq %xmm1, %xmm3 217 0x66, 0x0f, 0xfa, 0xf3, //0x000002e1 psubd %xmm3, %xmm6 218 0x66, 0x0f, 0x61, 0xce, //0x000002e5 punpcklwd %xmm6, %xmm1 219 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x000002e9 psllq $2, %xmm1 220 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x000002ee pshuflw $80, %xmm1, %xmm1 221 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x000002f3 pshufd $80, %xmm1, %xmm1 222 0x66, 0x0f, 0xe4, 0xca, //0x000002f8 pmulhuw %xmm2, %xmm1 223 0x66, 0x0f, 0xe4, 0xcc, //0x000002fc pmulhuw %xmm4, %xmm1 224 0x66, 0x0f, 0xd5, 0xe9, //0x00000300 pmullw %xmm1, %xmm5 225 0x66, 0x0f, 0x73, 0xf5, 0x10, //0x00000304 psllq $16, %xmm5 226 0x66, 0x0f, 0xf9, 0xcd, //0x00000309 psubw %xmm5, %xmm1 227 0x66, 0x0f, 0x67, 0xc1, //0x0000030d packuswb %xmm1, %xmm0 228 0xf3, 0x0f, 0x6f, 0x0d, 0x27, 0xfd, 0xff, 0xff, //0x00000311 movdqu $-729(%rip), %xmm1 /* LCPI0_4+0(%rip) */ 229 0x66, 0x0f, 0xfc, 0xc8, //0x00000319 paddb %xmm0, %xmm1 230 0x66, 0x0f, 0xef, 0xd2, //0x0000031d pxor %xmm2, %xmm2 231 0x66, 0x0f, 0x74, 0xd0, //0x00000321 pcmpeqb %xmm0, %xmm2 232 0x66, 0x0f, 0xd7, 0xc2, //0x00000325 pmovmskb %xmm2, %eax 233 0x0d, 0x00, 0x80, 0x00, 0x00, //0x00000329 orl $32768, %eax 234 0x35, 0xff, 0x7f, 0xff, 0xff, //0x0000032e xorl $-32769, %eax 235 0x0f, 0xbc, 0xc0, //0x00000333 bsfl %eax, %eax 236 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00000336 movl $16, %ecx 237 0x29, 0xc1, //0x0000033b subl %eax, %ecx 238 0x48, 0xc1, 0xe0, 0x04, //0x0000033d shlq $4, %rax 239 0x48, 0x8d, 0x15, 0xc8, 0x02, 0x00, 0x00, //0x00000341 leaq $712(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ 240 0x66, 0x0f, 0x38, 0x00, 0x0c, 0x10, //0x00000348 pshufb (%rax,%rdx), %xmm1 241 0xf3, 0x0f, 0x7f, 0x0f, //0x0000034e movdqu %xmm1, (%rdi) 242 0x89, 0xc8, //0x00000352 movl %ecx, %eax 243 0x5d, //0x00000354 popq %rbp 244 0xc3, //0x00000355 retq 245 //0x00000356 LBB0_18 246 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x00000356 movabsq $4153837486827862103, %rcx 247 0x48, 0x89, 0xf0, //0x00000360 movq %rsi, %rax 248 0x48, 0xf7, 0xe1, //0x00000363 mulq %rcx 249 0x48, 0xc1, 0xea, 0x33, //0x00000366 shrq $51, %rdx 250 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000036a movabsq $10000000000000000, %rax 251 0x48, 0x0f, 0xaf, 0xc2, //0x00000374 imulq %rdx, %rax 252 0x48, 0x29, 0xc6, //0x00000378 subq %rax, %rsi 253 0x83, 0xfa, 0x09, //0x0000037b cmpl $9, %edx 254 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x0000037e ja LBB0_20 255 0x80, 0xc2, 0x30, //0x00000384 addb $48, %dl 256 0x88, 0x17, //0x00000387 movb %dl, (%rdi) 257 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000389 movl $1, %ecx 258 0xe9, 0xba, 0x00, 0x00, 0x00, //0x0000038e jmp LBB0_25 259 //0x00000393 LBB0_20 260 0x83, 0xfa, 0x63, //0x00000393 cmpl $99, %edx 261 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x00000396 ja LBB0_22 262 0x89, 0xd0, //0x0000039c movl %edx, %eax 263 0x48, 0x8d, 0x0d, 0x9b, 0x01, 0x00, 0x00, //0x0000039e leaq $411(%rip), %rcx /* _Digits+0(%rip) */ 264 0x8a, 0x14, 0x41, //0x000003a5 movb (%rcx,%rax,2), %dl 265 0x8a, 0x44, 0x41, 0x01, //0x000003a8 movb $1(%rcx,%rax,2), %al 266 0x88, 0x17, //0x000003ac movb %dl, (%rdi) 267 0x88, 0x47, 0x01, //0x000003ae movb %al, $1(%rdi) 268 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000003b1 movl $2, %ecx 269 0xe9, 0x92, 0x00, 0x00, 0x00, //0x000003b6 jmp LBB0_25 270 //0x000003bb LBB0_22 271 0x89, 0xd0, //0x000003bb movl %edx, %eax 272 0xc1, 0xe8, 0x02, //0x000003bd shrl $2, %eax 273 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000003c0 imull $5243, %eax, %eax 274 0xc1, 0xe8, 0x11, //0x000003c6 shrl $17, %eax 275 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x000003c9 cmpl $999, %edx 276 0x0f, 0x87, 0x3c, 0x00, 0x00, 0x00, //0x000003cf ja LBB0_24 277 0x83, 0xc0, 0x30, //0x000003d5 addl $48, %eax 278 0x88, 0x07, //0x000003d8 movb %al, (%rdi) 279 0x0f, 0xb7, 0xc2, //0x000003da movzwl %dx, %eax 280 0x89, 0xc1, //0x000003dd movl %eax, %ecx 281 0xc1, 0xe9, 0x02, //0x000003df shrl $2, %ecx 282 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x000003e2 imull $5243, %ecx, %ecx 283 0xc1, 0xe9, 0x11, //0x000003e8 shrl $17, %ecx 284 0x6b, 0xc9, 0x64, //0x000003eb imull $100, %ecx, %ecx 285 0x29, 0xc8, //0x000003ee subl %ecx, %eax 286 0x0f, 0xb7, 0xc0, //0x000003f0 movzwl %ax, %eax 287 0x48, 0x8d, 0x0d, 0x46, 0x01, 0x00, 0x00, //0x000003f3 leaq $326(%rip), %rcx /* _Digits+0(%rip) */ 288 0x8a, 0x14, 0x41, //0x000003fa movb (%rcx,%rax,2), %dl 289 0x8a, 0x44, 0x41, 0x01, //0x000003fd movb $1(%rcx,%rax,2), %al 290 0x88, 0x57, 0x01, //0x00000401 movb %dl, $1(%rdi) 291 0x88, 0x47, 0x02, //0x00000404 movb %al, $2(%rdi) 292 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00000407 movl $3, %ecx 293 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x0000040c jmp LBB0_25 294 //0x00000411 LBB0_24 295 0x6b, 0xc8, 0x64, //0x00000411 imull $100, %eax, %ecx 296 0x29, 0xca, //0x00000414 subl %ecx, %edx 297 0x0f, 0xb7, 0xc0, //0x00000416 movzwl %ax, %eax 298 0x4c, 0x8d, 0x05, 0x20, 0x01, 0x00, 0x00, //0x00000419 leaq $288(%rip), %r8 /* _Digits+0(%rip) */ 299 0x41, 0x8a, 0x0c, 0x40, //0x00000420 movb (%r8,%rax,2), %cl 300 0x41, 0x8a, 0x44, 0x40, 0x01, //0x00000424 movb $1(%r8,%rax,2), %al 301 0x88, 0x0f, //0x00000429 movb %cl, (%rdi) 302 0x88, 0x47, 0x01, //0x0000042b movb %al, $1(%rdi) 303 0x0f, 0xb7, 0xc2, //0x0000042e movzwl %dx, %eax 304 0x41, 0x8a, 0x0c, 0x40, //0x00000431 movb (%r8,%rax,2), %cl 305 0x48, 0x01, 0xc0, //0x00000435 addq %rax, %rax 306 0x88, 0x4f, 0x02, //0x00000438 movb %cl, $2(%rdi) 307 0x83, 0xc8, 0x01, //0x0000043b orl $1, %eax 308 0x0f, 0xb7, 0xc0, //0x0000043e movzwl %ax, %eax 309 0x42, 0x8a, 0x04, 0x00, //0x00000441 movb (%rax,%r8), %al 310 0x88, 0x47, 0x03, //0x00000445 movb %al, $3(%rdi) 311 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00000448 movl $4, %ecx 312 //0x0000044d LBB0_25 313 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000044d movabsq $-6067343680855748867, %rdx 314 0x48, 0x89, 0xf0, //0x00000457 movq %rsi, %rax 315 0x48, 0xf7, 0xe2, //0x0000045a mulq %rdx 316 0x48, 0xc1, 0xea, 0x1a, //0x0000045d shrq $26, %rdx 317 0x66, 0x0f, 0x6e, 0xc2, //0x00000461 movd %edx, %xmm0 318 0xf3, 0x0f, 0x6f, 0x0d, 0x93, 0xfb, 0xff, 0xff, //0x00000465 movdqu $-1133(%rip), %xmm1 /* LCPI0_0+0(%rip) */ 319 0x66, 0x0f, 0x6f, 0xd8, //0x0000046d movdqa %xmm0, %xmm3 320 0x66, 0x0f, 0xf4, 0xd9, //0x00000471 pmuludq %xmm1, %xmm3 321 0x66, 0x0f, 0x73, 0xd3, 0x2d, //0x00000475 psrlq $45, %xmm3 322 0xb8, 0x10, 0x27, 0x00, 0x00, //0x0000047a movl $10000, %eax 323 0x66, 0x48, 0x0f, 0x6e, 0xd0, //0x0000047f movq %rax, %xmm2 324 0x66, 0x0f, 0x6f, 0xe3, //0x00000484 movdqa %xmm3, %xmm4 325 0x66, 0x0f, 0xf4, 0xe2, //0x00000488 pmuludq %xmm2, %xmm4 326 0x66, 0x0f, 0xfa, 0xc4, //0x0000048c psubd %xmm4, %xmm0 327 0x66, 0x0f, 0x61, 0xd8, //0x00000490 punpcklwd %xmm0, %xmm3 328 0x66, 0x0f, 0x73, 0xf3, 0x02, //0x00000494 psllq $2, %xmm3 329 0xf2, 0x0f, 0x70, 0xc3, 0x50, //0x00000499 pshuflw $80, %xmm3, %xmm0 330 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x0000049e pshufd $80, %xmm0, %xmm0 331 0xf3, 0x0f, 0x6f, 0x25, 0x65, 0xfb, 0xff, 0xff, //0x000004a3 movdqu $-1179(%rip), %xmm4 /* LCPI0_1+0(%rip) */ 332 0x66, 0x0f, 0xe4, 0xc4, //0x000004ab pmulhuw %xmm4, %xmm0 333 0xf3, 0x0f, 0x6f, 0x2d, 0x69, 0xfb, 0xff, 0xff, //0x000004af movdqu $-1175(%rip), %xmm5 /* LCPI0_2+0(%rip) */ 334 0x66, 0x0f, 0xe4, 0xc5, //0x000004b7 pmulhuw %xmm5, %xmm0 335 0xf3, 0x0f, 0x6f, 0x1d, 0x6d, 0xfb, 0xff, 0xff, //0x000004bb movdqu $-1171(%rip), %xmm3 /* LCPI0_3+0(%rip) */ 336 0x66, 0x0f, 0x6f, 0xf0, //0x000004c3 movdqa %xmm0, %xmm6 337 0x66, 0x0f, 0xd5, 0xf3, //0x000004c7 pmullw %xmm3, %xmm6 338 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x000004cb psllq $16, %xmm6 339 0x66, 0x0f, 0xf9, 0xc6, //0x000004d0 psubw %xmm6, %xmm0 340 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x000004d4 imull $100000000, %edx, %eax 341 0x29, 0xc6, //0x000004da subl %eax, %esi 342 0x66, 0x0f, 0x6e, 0xf6, //0x000004dc movd %esi, %xmm6 343 0x66, 0x0f, 0xf4, 0xce, //0x000004e0 pmuludq %xmm6, %xmm1 344 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x000004e4 psrlq $45, %xmm1 345 0x66, 0x0f, 0xf4, 0xd1, //0x000004e9 pmuludq %xmm1, %xmm2 346 0x66, 0x0f, 0xfa, 0xf2, //0x000004ed psubd %xmm2, %xmm6 347 0x66, 0x0f, 0x61, 0xce, //0x000004f1 punpcklwd %xmm6, %xmm1 348 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x000004f5 psllq $2, %xmm1 349 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x000004fa pshuflw $80, %xmm1, %xmm1 350 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x000004ff pshufd $80, %xmm1, %xmm1 351 0x66, 0x0f, 0xe4, 0xcc, //0x00000504 pmulhuw %xmm4, %xmm1 352 0x66, 0x0f, 0xe4, 0xcd, //0x00000508 pmulhuw %xmm5, %xmm1 353 0x66, 0x0f, 0xd5, 0xd9, //0x0000050c pmullw %xmm1, %xmm3 354 0x66, 0x0f, 0x73, 0xf3, 0x10, //0x00000510 psllq $16, %xmm3 355 0x66, 0x0f, 0xf9, 0xcb, //0x00000515 psubw %xmm3, %xmm1 356 0x66, 0x0f, 0x67, 0xc1, //0x00000519 packuswb %xmm1, %xmm0 357 0x66, 0x0f, 0xfc, 0x05, 0x1b, 0xfb, 0xff, 0xff, //0x0000051d paddb $-1253(%rip), %xmm0 /* LCPI0_4+0(%rip) */ 358 0x89, 0xc8, //0x00000525 movl %ecx, %eax 359 0xf3, 0x0f, 0x7f, 0x04, 0x07, //0x00000527 movdqu %xmm0, (%rdi,%rax) 360 0x83, 0xc9, 0x10, //0x0000052c orl $16, %ecx 361 0x89, 0xc8, //0x0000052f movl %ecx, %eax 362 0x5d, //0x00000531 popq %rbp 363 0xc3, //0x00000532 retq 364 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000533 .p2align 4, 0x00 365 //0x00000540 _Digits 366 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x00000540 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' 367 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x00000550 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' 368 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x00000560 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' 369 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x00000570 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' 370 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x00000580 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' 371 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x00000590 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' 372 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x000005a0 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' 373 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x000005b0 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' 374 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x000005c0 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' 375 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x000005d0 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' 376 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x000005e0 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' 377 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x000005f0 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' 378 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x00000600 QUAD $0x3939383937393639 // .ascii 8, '96979899' 379 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000608 .p2align 4, 0x00 380 //0x00000610 _VecShiftShuffles 381 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x00000610 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' 382 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x00000620 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' 383 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x00000630 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' 384 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x00000640 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' 385 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x00000650 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' 386 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000660 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' 387 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000670 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' 388 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000680 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' 389 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000690 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' 390 } 391