1570af302Sopenharmony_ci.global memset 2570af302Sopenharmony_ci.type memset,@function 3570af302Sopenharmony_cimemset: 4570af302Sopenharmony_ci movzbq %sil,%rax 5570af302Sopenharmony_ci mov $0x101010101010101,%r8 6570af302Sopenharmony_ci imul %r8,%rax 7570af302Sopenharmony_ci 8570af302Sopenharmony_ci cmp $126,%rdx 9570af302Sopenharmony_ci ja 2f 10570af302Sopenharmony_ci 11570af302Sopenharmony_ci test %edx,%edx 12570af302Sopenharmony_ci jz 1f 13570af302Sopenharmony_ci 14570af302Sopenharmony_ci mov %sil,(%rdi) 15570af302Sopenharmony_ci mov %sil,-1(%rdi,%rdx) 16570af302Sopenharmony_ci cmp $2,%edx 17570af302Sopenharmony_ci jbe 1f 18570af302Sopenharmony_ci 19570af302Sopenharmony_ci mov %ax,1(%rdi) 20570af302Sopenharmony_ci mov %ax,(-1-2)(%rdi,%rdx) 21570af302Sopenharmony_ci cmp $6,%edx 22570af302Sopenharmony_ci jbe 1f 23570af302Sopenharmony_ci 24570af302Sopenharmony_ci mov %eax,(1+2)(%rdi) 25570af302Sopenharmony_ci mov %eax,(-1-2-4)(%rdi,%rdx) 26570af302Sopenharmony_ci cmp $14,%edx 27570af302Sopenharmony_ci jbe 1f 28570af302Sopenharmony_ci 29570af302Sopenharmony_ci mov %rax,(1+2+4)(%rdi) 30570af302Sopenharmony_ci mov %rax,(-1-2-4-8)(%rdi,%rdx) 31570af302Sopenharmony_ci cmp $30,%edx 32570af302Sopenharmony_ci jbe 1f 33570af302Sopenharmony_ci 34570af302Sopenharmony_ci mov %rax,(1+2+4+8)(%rdi) 35570af302Sopenharmony_ci mov %rax,(1+2+4+8+8)(%rdi) 36570af302Sopenharmony_ci mov %rax,(-1-2-4-8-16)(%rdi,%rdx) 37570af302Sopenharmony_ci mov %rax,(-1-2-4-8-8)(%rdi,%rdx) 38570af302Sopenharmony_ci cmp $62,%edx 39570af302Sopenharmony_ci jbe 1f 40570af302Sopenharmony_ci 41570af302Sopenharmony_ci mov %rax,(1+2+4+8+16)(%rdi) 42570af302Sopenharmony_ci mov %rax,(1+2+4+8+16+8)(%rdi) 43570af302Sopenharmony_ci mov %rax,(1+2+4+8+16+16)(%rdi) 44570af302Sopenharmony_ci mov %rax,(1+2+4+8+16+24)(%rdi) 45570af302Sopenharmony_ci mov %rax,(-1-2-4-8-16-32)(%rdi,%rdx) 46570af302Sopenharmony_ci mov %rax,(-1-2-4-8-16-24)(%rdi,%rdx) 47570af302Sopenharmony_ci mov %rax,(-1-2-4-8-16-16)(%rdi,%rdx) 48570af302Sopenharmony_ci mov %rax,(-1-2-4-8-16-8)(%rdi,%rdx) 49570af302Sopenharmony_ci 50570af302Sopenharmony_ci1: mov %rdi,%rax 51570af302Sopenharmony_ci ret 52570af302Sopenharmony_ci 53570af302Sopenharmony_ci2: test $15,%edi 54570af302Sopenharmony_ci mov %rdi,%r8 55570af302Sopenharmony_ci mov %rax,-8(%rdi,%rdx) 56570af302Sopenharmony_ci mov %rdx,%rcx 57570af302Sopenharmony_ci jnz 2f 58570af302Sopenharmony_ci 59570af302Sopenharmony_ci1: shr $3,%rcx 60570af302Sopenharmony_ci rep 61570af302Sopenharmony_ci stosq 62570af302Sopenharmony_ci mov %r8,%rax 63570af302Sopenharmony_ci ret 64570af302Sopenharmony_ci 65570af302Sopenharmony_ci2: xor %edx,%edx 66570af302Sopenharmony_ci sub %edi,%edx 67570af302Sopenharmony_ci and $15,%edx 68570af302Sopenharmony_ci mov %rax,(%rdi) 69570af302Sopenharmony_ci mov %rax,8(%rdi) 70570af302Sopenharmony_ci sub %rdx,%rcx 71570af302Sopenharmony_ci add %rdx,%rdi 72570af302Sopenharmony_ci jmp 1b 73