Untitled diff

Created Diff never expires
99 removals
139 lines
146 additions
183 lines
; System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyCore[[System.Int32, System.Private.CoreLib],[System.Buffers.IndexOfAnyAsciiSearcher+Negate, System.Private.CoreLib],[System.Buffers.IndexOfAnyAsciiSearcher+Default, System.Private.CoreLib],[System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[[System.Int16, System.Private.CoreLib]], System.Private.CoreLib]](Int16 ByRef, Int32, AsciiState ByRef)
; System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyCore[[System.Int32, System.Private.CoreLib],[System.Buffers.IndexOfAnyAsciiSearcher+Negate, System.Private.CoreLib],[System.Buffers.IndexOfAnyAsciiSearcher+Default, System.Private.CoreLib],[System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[[System.Int16, System.Private.CoreLib]], System.Private.CoreLib]](Int16 ByRef, Int32, AsciiState ByRef)
push rbp
push rbp
vzeroupper
vzeroupper
mov rbp,rsp
mov rbp,rsp
mov rax,rdi
mov rcx,rdi
cmp esi,8
cmp esi,8
jl near ptr M01_L02
jl near ptr M01_L03
cmp esi,10
cmp esi,10
jle near ptr M01_L09
jle near ptr M01_L13
vmovups ymm0,[rdx]
cmp esi,20
cmp esi,20
jle near ptr M01_L07
jle near ptr M01_L11
lea edx,[rsi-20]
vmovups zmm0,[rdx]
movsxd rcx,edx
cmp esi,40
lea rcx,[rax+rcx*2]
jg near ptr M01_L07
vmovups ymm1,[7F54EBD53780]
M01_L00:
M01_L00:
vmovups ymm2,[rax]
add esi,0FFFFFFE0
vpackuswb ymm2,ymm2,[rax+20]
movsxd rax,esi
vpshufb ymm3,ymm0,ymm2
lea rax,[rdi+rax*2]
vpsrld ymm2,ymm2,4
cmp rcx,rax
vpand ymm2,ymm2,ymm1
cmova rcx,rax
vmovups ymm4,[7F54EBD537A0]
vmovups zmm1,[rcx]
vpshufb ymm2,ymm4,ymm2
vpackuswb zmm1,zmm1,[rax]
vpand ymm2,ymm3,ymm2
vpshufb zmm0,zmm0,zmm1
vxorps ymm3,ymm3,ymm3
vpsrld zmm1,zmm1,4
vpcmpeqb ymm2,ymm2,ymm3
vpandd zmm1,zmm1,[7F2C2E354180]
vptest ymm2,ymm2
vmovups zmm2,[7F2C2E3541C0]
je short M01_L06
vpshufb zmm1,zmm2,zmm1
sub rax,rdi
vpandd zmm0,zmm0,zmm1
shr rax,1
vptestnmb k1,zmm0,zmm0
vpermq ymm1,ymm2,0D8
vpmovm2b zmm0,k1
vpmovmskb esi,ymm1
vptestmb k1,zmm0,zmm0
xor edi,edi
kortestq k1,k1
tzcnt edi,esi
je near ptr M01_L15
add eax,edi
vmovups zmm1,[7F2C2E354200]
vpermq zmm0,zmm1,zmm0
vpmovb2m k1,zmm0
kmovq rdx,k1
tzcnt rdx,rdx
cmp edx,20
jge near ptr M01_L10
M01_L01:
M01_L01:
sub rcx,rdi
shr rcx,1
lea eax,[rcx+rdx]
M01_L02:
vzeroupper
vzeroupper
pop rbp
pop rbp
ret
ret
M01_L02:
movsxd rcx,esi
lea rsi,[rax+rcx*2]
jmp short M01_L04
M01_L03:
M01_L03:
movzx ecx,word ptr [rax]
movsxd rax,esi
lea rsi,[rcx+rax*2]
jmp short M01_L05
M01_L04:
movzx eax,word ptr [rcx]
cmp [rdx],dl
cmp [rdx],dl
lea r8,[rdx+20]
lea r8,[rdx+40]
cmp ecx,80
cmp eax,80
jge short M01_L05
jge short M01_L06
mov r9d,ecx
mov r9d,eax
sar r9d,5
sar r9d,5
mov r8d,[r8+r9*4]
mov r8d,[r8+r9*4]
bt r8d,ecx
bt r8d,eax
setb cl
setb al
movzx ecx,cl
movzx eax,al
test ecx,ecx
test eax,eax
je short M01_L05
je short M01_L06
add rax,2
add rcx,2
M01_L04:
cmp rax,rsi
jne short M01_L03
jmp near ptr M01_L11
M01_L05:
M01_L05:
cmp rcx,rsi
jne short M01_L04
jmp near ptr M01_L15
M01_L06:
mov rax,rcx
sub rax,rdi
sub rax,rdi
shr rax,1
shr rax,1
jmp short M01_L01
jmp short M01_L02
M01_L06:
add rax,40
cmp rax,rcx
jb near ptr M01_L00
M01_L07:
M01_L07:
add esi,0FFFFFFF0
lea eax,[rsi-40]
movsxd rdx,esi
movsxd rdx,eax
lea rcx,[rdi+rdx*2]
lea rax,[rcx+rdx*2]
cmp rax,rcx
M01_L08:
cmova rax,rcx
vmovups zmm1,[rcx]
vmovups ymm1,[rax]
vpackuswb zmm1,zmm1,[rcx+40]
vpackuswb ymm1,ymm1,[rcx]
vpshufb zmm2,zmm0,zmm1
vpsrld zmm1,zmm1,4
vpandd zmm1,zmm1,[7F2C2E354180]
vmovups zmm3,[7F2C2E3541C0]
vpshufb zmm1,zmm3,zmm1
vpandd zmm1,zmm2,zmm1
vptestnmb k1,zmm1,zmm1
vpmovm2b zmm1,k1
vptestmb k1,zmm1,zmm1
kortestq k1,k1
jne short M01_L09
add rcx,80
cmp rcx,rax
jb short M01_L08
jmp near ptr M01_L00
M01_L09:
mov rax,rcx
sub rax,rdi
shr rax,1
vmovups zmm0,[7F2C2E354200]
vpermq zmm0,zmm0,zmm1
vpmovb2m k1,zmm0
kmovq rsi,k1
xor edi,edi
tzcnt rdi,rsi
add eax,edi
jmp near ptr M01_L02
M01_L10:
mov rcx,rax
add edx,0FFFFFFE0
jmp near ptr M01_L01
M01_L11:
vmovups ymm0,[rdx]
lea edx,[rsi-10]
movsxd rsi,edx
lea rax,[rdi+rsi*2]
cmp rdi,rax
mov rcx,rdi
cmova rcx,rax
vmovups ymm1,[rcx]
vpackuswb ymm1,ymm1,[rax]
vpshufb ymm0,ymm0,ymm1
vpshufb ymm0,ymm0,ymm1
vpsrld ymm1,ymm1,4
vpsrld ymm1,ymm1,4
vmovups ymm2,[7F54EBD53780]
vpand ymm1,ymm1,[7F2C2E354180]
vpand ymm1,ymm1,ymm2
vmovups ymm2,[7F2C2E3541C0]
vmovups ymm2,[7F54EBD537A0]
vpshufb ymm1,ymm2,ymm1
vpshufb ymm1,ymm2,ymm1
vpand ymm0,ymm0,ymm1
vpand ymm0,ymm0,ymm1
vxorps ymm1,ymm1,ymm1
vxorps ymm1,ymm1,ymm1
vpcmpeqb ymm0,ymm0,ymm1
vpcmpeqb ymm0,ymm0,ymm1
vptest ymm0,ymm0
vptest ymm0,ymm0
je near ptr M01_L11
je near ptr M01_L15
vpermq ymm0,ymm0,0D8
vpermq ymm0,ymm0,0D8
vpmovmskb edx,ymm0
vpmovmskb edx,ymm0
tzcnt edx,edx
tzcnt edx,edx
cmp edx,10
cmp edx,10
jl short M01_L08
jl short M01_L12
mov rax,rcx
mov rcx,rax
add edx,0FFFFFFF0
add edx,0FFFFFFF0
M01_L08:
M01_L12:
sub rax,rdi
sub rcx,rdi
shr rax,1
shr rcx,1
add eax,edx
lea eax,[rcx+rdx]
jmp near ptr M01_L01
jmp near ptr M01_L02
M01_L09:
M01_L13:
vmovups xmm0,[rdx]
vmovups xmm0,[rdx]
lea eax,[rsi-8]
lea eax,[rsi-8]
cdqe
cdqe
lea rax,[rdi+rax*2]
lea rax,[rdi+rax*2]
cmp rdi,rax
cmp rdi,rax
mov rcx,rdi
mov rcx,rdi
cmova rcx,rax
cmova rcx,rax
vmovups xmm1,[rcx]
vmovups xmm1,[rcx]
vpackuswb xmm1,xmm1,[rax]
vpackuswb xmm1,xmm1,[rax]
vpshufb xmm0,xmm0,xmm1
vpshufb xmm0,xmm0,xmm1
vpsrld xmm1,xmm1,4
vpsrld xmm1,xmm1,4
vpand xmm1,xmm1,[7F54EBD53780]
vpand xmm1,xmm1,[7F2C2E354180]
vmovups xmm2,[7F54EBD537C0]
vmovups xmm2,[7F2C2E354240]
vpshufb xmm1,xmm2,xmm1
vpshufb xmm1,xmm2,xmm1
vpand xmm0,xmm0,xmm1
vpand xmm0,xmm0,xmm1
vxorps xmm1,xmm1,xmm1
vxorps xmm1,xmm1,xmm1
vpcmpeqb xmm0,xmm0,xmm1
vpcmpeqb xmm0,xmm0,xmm1
vptest xmm0,xmm0
vptest xmm0,xmm0
je short M01_L11
je short M01_L15
vpmovmskb edx,xmm0
vpmovmskb edx,xmm0
tzcnt edx,edx
tzcnt edx,edx
cmp edx,8
cmp edx,8
jl short M01_L10
jl short M01_L14
mov rcx,rax
mov rcx,rax
add edx,0FFFFFFF8
add edx,0FFFFFFF8
M01_L10:
M01_L14:
sub rcx,rdi
sub rcx,rdi
shr rcx,1
shr rcx,1
lea eax,[rcx+rdx]
lea eax,[rcx+rdx]
jmp near ptr M01_L01
jmp near ptr M01_L02
M01_L11:
M01_L15:
mov eax,0FFFFFFFF
mov eax,0FFFFFFFF
vzeroupper
vzeroupper
pop rbp
pop rbp
ret
ret
; Total bytes of code 474
; Total bytes of code 705