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