.text .p2align 4 .globl _memcpy_gcc _memcpy_gcc: LFB0: testq %rdx, %rdx movq %rdi, %rcx je L1 leaq -1(%rdx), %rax cmpq $14, %rax jbe L8 movq %rdx, %rdi xorl %eax, %eax andq $-16, %rdi .p2align 4,,10 .p2align 3 L4: movdqu (%rsi,%rax), %xmm0 movups %xmm0, (%rcx,%rax) addq $16, %rax cmpq %rdi, %rax jne L4 movq %rdx, %rax andq $-16, %rax testb $15, %dl je L14 L3: movq %rdx, %rdi subq %rax, %rdi leaq -1(%rdi), %r8 cmpq $6, %r8 jbe L6 movq (%rsi,%rax), %r8 movq %r8, (%rcx,%rax) movq %rdi, %r8 andq $-8, %r8 addq %r8, %rax cmpq %r8, %rdi je L1 L6: movzbl (%rsi,%rax), %edi movb %dil, (%rcx,%rax) leaq 1(%rax), %rdi cmpq %rdx, %rdi jnb L1 movzbl 1(%rsi,%rax), %edi movb %dil, 1(%rcx,%rax) leaq 2(%rax), %rdi cmpq %rdi, %rdx jbe L1 movzbl 2(%rsi,%rax), %edi movb %dil, 2(%rcx,%rax) leaq 3(%rax), %rdi cmpq %rdi, %rdx jbe L1 movzbl 3(%rsi,%rax), %edi movb %dil, 3(%rcx,%rax) leaq 4(%rax), %rdi cmpq %rdi, %rdx jbe L1 movzbl 4(%rsi,%rax), %edi movb %dil, 4(%rcx,%rax) leaq 5(%rax), %rdi cmpq %rdi, %rdx jbe L1 movzbl 5(%rsi,%rax), %edi movb %dil, 5(%rcx,%rax) leaq 6(%rax), %rdi cmpq %rdi, %rdx jbe L1 movzbl 6(%rsi,%rax), %edx movb %dl, 6(%rcx,%rax) L1: ret L8: xorl %eax, %eax jmp L3 L14: ret LFE0: .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support EH_frame1: .set L$set$0,LECIE1-LSCIE1 .long L$set$0 LSCIE1: .long 0 .byte 0x1 .ascii "zR\0" .uleb128 0x1 .sleb128 -8 .byte 0x10 .uleb128 0x1 .byte 0x10 .byte 0xc .uleb128 0x7 .uleb128 0x8 .byte 0x90 .uleb128 0x1 .align 3 LECIE1: LSFDE1: .set L$set$1,LEFDE1-LASFDE1 .long L$set$1 LASFDE1: .long LASFDE1-EH_frame1 .quad LFB0-. .set L$set$2,LFE0-LFB0 .quad L$set$2 .uleb128 0 .align 3 LEFDE1: .ident "GCC: (GNU) 11.2.0" .subsections_via_symbols