Untitled
unknown
plain_text
3 years ago
2.4 kB
8
Indexable
strlen_avx2: # @strlen_avx2
pushq %rbp
movq %rsp, %rbp
andq $-32, %rsp
subq $320, %rsp # imm = 0x140
movq %rdi, 112(%rsp)
vxorps %xmm0, %xmm0, %xmm0
vmovaps %ymm0, 128(%rsp)
vmovdqa 128(%rsp), %ymm0
vmovdqa %ymm0, 64(%rsp)
movq 112(%rsp), %rax
movq %rax, 48(%rsp)
.LBB0_1: # =>This Inner Loop Header: Depth=1
movq 48(%rsp), %rax
andq $31, %rax
cmpq $0, %rax
je .LBB0_6
movq 48(%rsp), %rax
movsbl (%rax), %eax
cmpl $0, %eax
jne .LBB0_4
movq 48(%rsp), %rax
movq 112(%rsp), %rcx
subq %rcx, %rax
movq %rax, 120(%rsp)
jmp .LBB0_11
.LBB0_4: # in Loop: Header=BB0_1 Depth=1
jmp .LBB0_5
.LBB0_5: # in Loop: Header=BB0_1 Depth=1
movq 48(%rsp), %rax
addq $1, %rax
movq %rax, 48(%rsp)
jmp .LBB0_1
.LBB0_6:
movq 48(%rsp), %rax
movq %rax, 56(%rsp)
.LBB0_7: # =>This Inner Loop Header: Depth=1
movq 56(%rsp), %rax
movq %rax, 184(%rsp)
movq 184(%rsp), %rax
vmovaps (%rax), %ymm0
vmovaps %ymm0, (%rsp)
vmovaps (%rsp), %ymm1
vmovaps 64(%rsp), %ymm0
vmovaps %ymm1, 256(%rsp)
vmovaps %ymm0, 224(%rsp)
vmovaps 256(%rsp), %ymm0
vmovaps 224(%rsp), %ymm1
vpcmpeqb %ymm1, %ymm0, %ymm0
vmovdqa %ymm0, 192(%rsp)
vmovdqa 192(%rsp), %ymm0
vpmovmskb %ymm0, %eax
movl %eax, 44(%rsp)
cmpl $0, 44(%rsp)
je .LBB0_9
jmp .LBB0_10
.LBB0_9: # in Loop: Header=BB0_7 Depth=1
movq 56(%rsp), %rax
addq $32, %rax
movq %rax, 56(%rsp)
jmp .LBB0_7
.LBB0_10:
movq 56(%rsp), %rax
movq 112(%rsp), %rcx
subq %rcx, %rax
movl 44(%rsp), %ecx
bsfl %ecx, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 120(%rsp)
.LBB0_11:
movq 120(%rsp), %rax
movq %rbp, %rsp
popq %rbp
vzeroupper
retq
Editor is loading...