Untitled diff

创建于 差异永不过期
26 删除
282 行
35 添加
282 行
; System.Text.Perf_Ascii.EqualsIgnoreCase_ExactlyTheSame_Bytes_Chars()
; System.Text.Perf_Ascii.EqualsIgnoreCase_ExactlyTheSame_Bytes_Chars()
mov r8,[rcx+8]
mov r8,[rcx+8]
test r8,r8
test r8,r8
je short M00_L02
je short M00_L02
lea rdx,[r8+10]
lea rdx,[r8+10]
mov r8d,[r8+8]
mov r8d,[r8+8]
M00_L00:
M00_L00:
mov rcx,[rcx+20]
mov rcx,[rcx+20]
test rcx,rcx
test rcx,rcx
je short M00_L03
je short M00_L03
lea rax,[rcx+10]
lea rax,[rcx+10]
mov ecx,[rcx+8]
mov ecx,[rcx+8]
M00_L01:
M00_L01:
cmp r8d,ecx
cmp r8d,ecx
jne short M00_L04
jne short M00_L04
mov r8d,ecx
mov r8d,ecx
mov rcx,rdx
mov rcx,rdx
mov rdx,rax
mov rdx,rax
jmp qword ptr [7FFEFD3DE118]; System.Text.Ascii.EqualsIgnoreCase[[System.Byte, System.Private.CoreLib],[System.UInt16, System.Private.CoreLib],[System.Text.Ascii+WideningLoader, System.Private.CoreLib]](Byte ByRef, UInt16 ByRef, UIntPtr)
jmp qword ptr [7FFEFD40DB48]; System.Text.Ascii.EqualsIgnoreCase[[System.Byte, System.Private.CoreLib],[System.UInt16, System.Private.CoreLib],[System.Text.Ascii+WideningLoader, System.Private.CoreLib]](Byte ByRef, UInt16 ByRef, UIntPtr)
M00_L02:
M00_L02:
xor edx,edx
xor edx,edx
xor r8d,r8d
xor r8d,r8d
jmp short M00_L00
jmp short M00_L00
M00_L03:
M00_L03:
xor eax,eax
xor eax,eax
xor ecx,ecx
xor ecx,ecx
jmp short M00_L01
jmp short M00_L01
M00_L04:
M00_L04:
xor eax,eax
xor eax,eax
ret
ret
; Total bytes of code 69
; Total bytes of code 69
```
```
```assembly
```assembly
; System.Text.Ascii.EqualsIgnoreCase[[System.Byte, System.Private.CoreLib],[System.UInt16, System.Private.CoreLib],[System.Text.Ascii+WideningLoader, System.Private.CoreLib]](Byte ByRef, UInt16 ByRef, UIntPtr)
; System.Text.Ascii.EqualsIgnoreCase[[System.Byte, System.Private.CoreLib],[System.UInt16, System.Private.CoreLib],[System.Text.Ascii+WideningLoader, System.Private.CoreLib]](Byte ByRef, UInt16 ByRef, UIntPtr)
cmp r8,8
cmp r8,8
jae short M01_L04
jae short M01_L04
xor eax,eax
xor eax,eax
test r8,r8
test r8,r8
je short M01_L02
je short M01_L02
M01_L00:
M01_L00:
movzx r10d,byte ptr [rcx+rax]
movzx r10d,byte ptr [rcx+rax]
movzx r9d,word ptr [rdx+rax*2]
movzx r9d,word ptr [rdx+rax*2]
mov r11d,r10d
mov r11d,r10d
or r11d,r9d
or r11d,r9d
cmp r11d,7F
cmp r11d,7F
ja near ptr M01_L13
ja near ptr M01_L13
cmp r10d,r9d
cmp r10d,r9d
jne short M01_L03
jne short M01_L03
M01_L01:
M01_L01:
inc rax
inc rax
cmp rax,r8
cmp rax,r8
jb short M01_L00
jb short M01_L00
M01_L02:
M01_L02:
mov eax,1
mov eax,1
vzeroupper
vzeroupper
ret
ret
M01_L03:
M01_L03:
or r10d,20
or r10d,20
lea r11d,[r10-61]
lea r11d,[r10-61]
cmp r11d,19
cmp r11d,19
ja near ptr M01_L13
ja near ptr M01_L13
or r9d,20
or r9d,20
cmp r10d,r9d
cmp r10d,r9d
jne near ptr M01_L13
jne near ptr M01_L13
jmp short M01_L01
jmp short M01_L01
M01_L04:
M01_L04:
cmp r8,20
cmp r8,20
jb near ptr M01_L07
jb near ptr M01_L07
lea rax,[rcx+r8-20]
lea rax,[rcx+r8-20]
lea r10,[rdx+r8*2-40]
lea r10,[rdx+r8*2-40]
vmovups zmm0,[7FFEFC592040]
vbroadcastss zmm0,dword ptr [7FFEFC5A7200]
vmovups zmm1,[7FFEFC592080]
vbroadcastss zmm1,dword ptr [7FFEFC5A7204]
vmovups zmm2,[7FFEFC5920C0]
vbroadcastss zmm2,dword ptr [7FFEFC5A7208]
M01_L05:
M01_L05:
vmovdqu ymm3,ymmword ptr [rcx]
vmovdqu ymm3,ymmword ptr [rcx]
vpmovzxbw zmm3,ymm3
vpmovzxbw zmm3,ymm3
vmovups zmm4,[rdx]
vmovups zmm4,[rdx]
vpord zmm5,zmm3,zmm4
vpord zmm5,zmm3,zmm4
vptestmd k1,zmm5,dword bcst [7FFEFC592100]
vptestmd k1,zmm5,dword bcst [7FFEFC5A720C]
kortestw k1,k1
kortestw k1,k1
jne near ptr M01_L13
jne near ptr M01_L13
vpcmpeqw k1,zmm3,zmm4
vpcmpeqw k1,zmm3,zmm4
vpmovm2w zmm5,k1
vpmovm2w zmm5,k1
vpternlogd zmm5,zmm5,zmm5,55
vpternlogd zmm5,zmm5,zmm5,55
vptestmw k1,zmm5,zmm5
vptestmw k1,zmm5,zmm5
kortestd k1,k1
kortestd k1,k1
je short M01_L06
je short M01_L06
vpord zmm3,zmm3,zmm0
vpord zmm3,zmm3,zmm0
vpord zmm4,zmm4,zmm0
vpord zmm4,zmm4,zmm0
vpsubw zmm16,zmm3,zmm1
vpsubw zmm16,zmm3,zmm1
vpandd zmm5,zmm16,zmm5
vpandd zmm5,zmm16,zmm5
vpcmpnleuw k1,zmm5,zmm2
vpcmpnleuw k1,zmm5,zmm2
kortestd k1,k1
kortestd k1,k1
setne r9b
setne r9b
movzx r9d,r9b
movzx r9d,r9b
vpcmpnequw k1,zmm3,zmm4
vpcmpnequw k1,zmm3,zmm4
kortestd k1,k1
kortestd k1,k1
setne r11b
setne r11b
movzx r11d,r11b
movzx r11d,r11b
or r9d,r11d
or r9d,r11d
jne near ptr M01_L13
jne near ptr M01_L13
M01_L06:
M01_L06: