OLD | NEW |
(Empty) | |
| 1 .global memset |
| 2 .type memset,@function |
| 3 memset: |
| 4 movzbq %sil,%rax |
| 5 mov $0x101010101010101,%r8 |
| 6 imul %r8,%rax |
| 7 |
| 8 cmp $126,%rdx |
| 9 ja 2f |
| 10 |
| 11 test %edx,%edx |
| 12 jz 1f |
| 13 |
| 14 mov %sil,(%rdi) |
| 15 mov %sil,-1(%rdi,%rdx) |
| 16 cmp $2,%edx |
| 17 jbe 1f |
| 18 |
| 19 mov %ax,1(%rdi) |
| 20 mov %ax,(-1-2)(%rdi,%rdx) |
| 21 cmp $6,%edx |
| 22 jbe 1f |
| 23 |
| 24 mov %eax,(1+2)(%rdi) |
| 25 mov %eax,(-1-2-4)(%rdi,%rdx) |
| 26 cmp $14,%edx |
| 27 jbe 1f |
| 28 |
| 29 mov %rax,(1+2+4)(%rdi) |
| 30 mov %rax,(-1-2-4-8)(%rdi,%rdx) |
| 31 cmp $30,%edx |
| 32 jbe 1f |
| 33 |
| 34 mov %rax,(1+2+4+8)(%rdi) |
| 35 mov %rax,(1+2+4+8+8)(%rdi) |
| 36 mov %rax,(-1-2-4-8-16)(%rdi,%rdx) |
| 37 mov %rax,(-1-2-4-8-8)(%rdi,%rdx) |
| 38 cmp $62,%edx |
| 39 jbe 1f |
| 40 |
| 41 mov %rax,(1+2+4+8+16)(%rdi) |
| 42 mov %rax,(1+2+4+8+16+8)(%rdi) |
| 43 mov %rax,(1+2+4+8+16+16)(%rdi) |
| 44 mov %rax,(1+2+4+8+16+24)(%rdi) |
| 45 mov %rax,(-1-2-4-8-16-32)(%rdi,%rdx) |
| 46 mov %rax,(-1-2-4-8-16-24)(%rdi,%rdx) |
| 47 mov %rax,(-1-2-4-8-16-16)(%rdi,%rdx) |
| 48 mov %rax,(-1-2-4-8-16-8)(%rdi,%rdx) |
| 49 |
| 50 1: mov %rdi,%rax |
| 51 ret |
| 52 |
| 53 2: test $15,%edi |
| 54 mov %rdi,%r8 |
| 55 mov %rax,-8(%rdi,%rdx) |
| 56 mov %rdx,%rcx |
| 57 jnz 2f |
| 58 |
| 59 1: shr $3,%rcx |
| 60 rep |
| 61 stosq |
| 62 mov %r8,%rax |
| 63 ret |
| 64 |
| 65 2: xor %edx,%edx |
| 66 sub %edi,%edx |
| 67 and $15,%edx |
| 68 mov %rax,(%rdi) |
| 69 mov %rax,8(%rdi) |
| 70 sub %rdx,%rcx |
| 71 add %rdx,%rdi |
| 72 jmp 1b |
OLD | NEW |