Diff
checker
Text
Text
Images
Documents
Excel
Folders
Legal
Enterprise
Desktop
Pricing
Sign in
Download Diffchecker Desktop
Compare text
Find the difference between two text files
Tools
History
Real-time editor
Hide unchanged lines
Disable line wrap
Layout
Split
Unified
Diff precision
Smart
Word
Char
Syntax highlighting
Choose syntax
Ignore
Transform text
Go to first change
Edit input
Diffchecker Desktop
The most secure way to run Diffchecker. Get the Diffchecker Desktop app: your diffs never leave your computer!
Get Desktop
Redundant_OR
Created
3 years ago
Diff never expires
Clear
Export
Share
Explain
21 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
164 lines
Copy
14 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
161 lines
Copy
## .NET 8.0.0 (42.42.42.42424), X64 RyuJIT AVX
## .NET 8.0.0 (42.42.42.42424), X64 RyuJIT AVX
```assembly
```assembly
; System.Text.Perf_Ascii.Equals_Chars()
; System.Text.Perf_Ascii.Equals_Chars()
sub rsp,28
sub rsp,28
mov r8,[rcx+20]
mov r8,[rcx+20]
test r8,r8
test r8,r8
je short M00_L04
je short M00_L04
lea rdx,[r8+10]
lea rdx,[r8+10]
mov eax,[r8+8]
mov eax,[r8+8]
M00_L00:
M00_L00:
mov r8,[rcx+28]
mov r8,[rcx+28]
test r8,r8
test r8,r8
je short M00_L02
je short M00_L02
lea rcx,[r8+10]
lea rcx,[r8+10]
mov r10d,[r8+8]
mov r10d,[r8+8]
M00_L01:
M00_L01:
mov [rsp+20],rcx
mov [rsp+20],rcx
cmp eax,r10d
cmp eax,r10d
jne short M00_L05
jne short M00_L05
mov r8d,r10d
mov r8d,r10d
mov rcx,rdx
mov rcx,rdx
mov rdx,[rsp+20]
mov rdx,[rsp+20]
Copy
Copied
Copy
Copied
call qword ptr [7FFB99B
C
E1A8]; System.Text.Ascii.Equals[[System.UInt16, System.Private.CoreLib],[System.UInt16, System.Private.CoreLib],[System.Text.Ascii+PlainLoader`1[[System.UInt16, System.Private.CoreLib]], System.Private.CoreLib]](UInt16 ByRef, UInt16 ByRef, UIntPtr)
call qword ptr [7FFB99B
F
E1A8]; System.Text.Ascii.Equals[[System.UInt16, System.Private.CoreLib],[System.UInt16, System.Private.CoreLib],[System.Text.Ascii+PlainLoader`1[[System.UInt16, System.Private.CoreLib]], System.Private.CoreLib]](UInt16 ByRef, UInt16 ByRef, UIntPtr)
jmp short M00_L03
jmp short M00_L03
M00_L02:
M00_L02:
xor ecx,ecx
xor ecx,ecx
xor r10d,r10d
xor r10d,r10d
jmp short M00_L01
jmp short M00_L01
M00_L03:
M00_L03:
add rsp,28
add rsp,28
ret
ret
M00_L04:
M00_L04:
xor edx,edx
xor edx,edx
xor eax,eax
xor eax,eax
jmp short M00_L00
jmp short M00_L00
M00_L05:
M00_L05:
xor eax,eax
xor eax,eax
jmp short M00_L03
jmp short M00_L03
; Total bytes of code 89
; Total bytes of code 89
```
```
```assembly
```assembly
; System.Text.Ascii.Equals[[System.UInt16, System.Private.CoreLib],[System.UInt16, System.Private.CoreLib],[System.Text.Ascii+PlainLoader`1[[System.UInt16, System.Private.CoreLib]], System.Private.CoreLib]](UInt16 ByRef, UInt16 ByRef, UIntPtr)
; System.Text.Ascii.Equals[[System.UInt16, System.Private.CoreLib],[System.UInt16, System.Private.CoreLib],[System.Text.Ascii+PlainLoader`1[[System.UInt16, System.Private.CoreLib]], System.Private.CoreLib]](UInt16 ByRef, UInt16 ByRef, UIntPtr)
sub rsp,98
sub rsp,98
vzeroupper
vzeroupper
cmp r8,8
cmp r8,8
jae short M01_L03
jae short M01_L03
xor eax,eax
xor eax,eax
test r8,r8
test r8,r8
jbe short M01_L01
jbe short M01_L01
M01_L00:
M01_L00:
movzx r10d,word ptr [rcx+rax*2]
movzx r10d,word ptr [rcx+rax*2]
movzx r9d,word ptr [rdx+rax*2]
movzx r9d,word ptr [rdx+rax*2]
cmp r10d,r9d
cmp r10d,r9d
jne near ptr M01_L10
jne near ptr M01_L10
Copy
Copied
Copy
Copied
or r10d,r9d
cmp r10d,7F
cmp r10d,7F
ja near ptr M01_L10
ja near ptr M01_L10
inc rax
inc rax
cmp rax,r8
cmp rax,r8
jb short M01_L00
jb short M01_L00
M01_L01:
M01_L01:
mov eax,1
mov eax,1
vzeroupper
vzeroupper
add rsp,98
add rsp,98
ret
ret
M01_L02:
M01_L02:
movzx eax,cl
movzx eax,cl
vzeroupper
vzeroupper
add rsp,98
add rsp,98
ret
ret
M01_L03:
M01_L03:
cmp r8,10
cmp r8,10
jb near ptr M01_L08
jb near ptr M01_L08
mov rax,rcx
mov rax,rcx
lea r10,[rdx+r8*2-20]
lea r10,[rdx+r8*2-20]
M01_L04:
M01_L04:
vmovups ymm0,[rax]
vmovups ymm0,[rax]
vmovups [rsp+60],ymm0
vmovups [rsp+60],ymm0
vmovups ymm0,[rdx]
vmovups ymm0,[rdx]
vmovups [rsp+40],ymm0
vmovups [rsp+40],ymm0
vmovups xmm0,[rsp+60]
vmovups xmm0,[rsp+60]
vpcmpeqw xmm0,xmm0,[rsp+40]
vpcmpeqw xmm0,xmm0,[rsp+40]
vpmovmskb r9d,xmm0
vpmovmskb r9d,xmm0
cmp r9d,0FFFF
cmp r9d,0FFFF
jne near ptr M01_L10
jne near ptr M01_L10
vmovups xmm0,[rsp+70]
vmovups xmm0,[rsp+70]
vpcmpeqw xmm0,xmm0,[rsp+50]
vpcmpeqw xmm0,xmm0,[rsp+50]
vpmovmskb r9d,xmm0
vpmovmskb r9d,xmm0
cmp r9d,0FFFF
cmp r9d,0FFFF
setne r9b
setne r9b
movzx r9d,r9b
movzx r9d,r9b
test r9d,r9d
test r9d,r9d
jne near ptr M01_L10
jne near ptr M01_L10
vmovups ymm0,[rsp+60]
vmovups ymm0,[rsp+60]
Copy
Copied
Copy
Copied
vptest ymm0,ymmword ptr [7FFB996
39B8
0]
vptest ymm0,ymmword ptr [7FFB996
69B4
0]
jne near ptr M01_L10
jne near ptr M01_L10
add rdx,20
add rdx,20
add rax,20
add rax,20
cmp rdx,r10
cmp rdx,r10
jbe short M01_L04
jbe short M01_L04
test r8b,0F
test r8b,0F
je near ptr M01_L01
je near ptr M01_L01
vmovups ymm0,[rcx+r8*2-20]
vmovups ymm0,[rcx+r8*2-20]
vmovups [rsp+20],ymm0
vmovups [rsp+20],ymm0
vmovups ymm0,[r10]
vmovups ymm0,[r10]
vmovups [rsp],ymm0
vmovups [rsp],ymm0
vmovups xmm0,[rsp+20]
vmovups xmm0,[rsp+20]
vpcmpeqw xmm0,xmm0,[rsp]
vpcmpeqw xmm0,xmm0,[rsp]
vpmovmskb ecx,xmm0
vpmovmskb ecx,xmm0
cmp ecx,0FFFF
cmp ecx,0FFFF
jne short M01_L05
jne short M01_L05
vmovups xmm0,[rsp+30]
vmovups xmm0,[rsp+30]
vpcmpeqw xmm0,xmm0,[rsp+10]
vpcmpeqw xmm0,xmm0,[rsp+10]
vpmovmskb r8d,xmm0
vpmovmskb r8d,xmm0
cmp r8d,0FFFF
cmp r8d,0FFFF
setne al
setne al
movzx eax,al
movzx eax,al
test eax,eax
test eax,eax
jne short M01_L05
jne short M01_L05
vmovups ymm0,[rsp+20]
vmovups ymm0,[rsp+20]
Copy
Copied
Copy
Copied
vptest ymm0,ymmword ptr [7FFB996
39B8
0]
vptest ymm0,ymmword ptr [7FFB996
69B4
0]
je short M01_L06
je short M01_L06
M01_L05:
M01_L05:
xor ecx,ecx
xor ecx,ecx
jmp short M01_L07
jmp short M01_L07
M01_L06:
M01_L06:
mov ecx,1
mov ecx,1
M01_L07:
M01_L07:
jmp near ptr M01_L02
jmp near ptr M01_L02
M01_L08:
M01_L08:
lea rax,[rcx+r8*2-10]
lea rax,[rcx+r8*2-10]
lea r10,[rdx+r8*2-10]
lea r10,[rdx+r8*2-10]
M01_L09:
M01_L09:
vmovups xmm0,[rcx]
vmovups xmm0,[rcx]
Copy
Copied
Copy
Copied
vmovups xmm1,[rdx]
vpcmpeqw xmm
1
,xmm0,
[rdx]
vpcmpeqw xmm
2
,xmm0,
xmm1
vpmovmskb r9d,xmm
1
vpmovmskb r9d,xmm
2
cmp r9d,0FFFF
cmp r9d,0FFFF
jne short M01_L10
jne short M01_L10
Copy
Copied
Copy
Copied
vpor xmm0,xmm0,xmm1
vptest xmm0,xmmword ptr [7FFB996
69B4
0]
vptest xmm0,xmmword ptr [7FFB996
39B8
0]
jne short M01_L10
jne short M01_L10
add rdx,10
add rdx,10
add rcx,10
add rcx,10
cmp rdx,r10
cmp rdx,r10
jbe short M01_L09
jbe short M01_L09
test r8b,7
test r8b,7
je near ptr M01_L01
je near ptr M01_L01
vmovups xmm0,[rax]
vmovups xmm0,[rax]
Copy
Copied
Copy
Copied
vmovups xmm1,[r10]
vpcmpeqw xmm
1
,xmm0,
[r10]
vpcmpeqw xmm
2
,xmm0,
xmm1
vpmovmskb eax,xmm
1
vpmovmskb eax,xmm
2
cmp eax,0FFFF
cmp eax,0FFFF
jne short M01_L10
jne short M01_L10
Copy
Copied
Copy
Copied
vpor xmm0,xmm0,xmm1
vptest xmm0,xmmword ptr [7FFB996
69B4
0]
vptest xmm0,xmmword ptr [7FFB996
39B8
0]
je near ptr M01_L01
je near ptr M01_L01
M01_L10:
M01_L10:
xor eax,eax
xor eax,eax
vzeroupper
vzeroupper
add rsp,98
add rsp,98
ret
ret
Copy
Copied
Copy
Copied
; Total bytes of code
483
; Total bytes of code
464
```
```
Copy
Copied
Copy
Copied
Saved diffs
Original text
Open file
## .NET 8.0.0 (42.42.42.42424), X64 RyuJIT AVX ```assembly ; System.Text.Perf_Ascii.Equals_Chars() sub rsp,28 mov r8,[rcx+20] test r8,r8 je short M00_L04 lea rdx,[r8+10] mov eax,[r8+8] M00_L00: mov r8,[rcx+28] test r8,r8 je short M00_L02 lea rcx,[r8+10] mov r10d,[r8+8] M00_L01: mov [rsp+20],rcx cmp eax,r10d jne short M00_L05 mov r8d,r10d mov rcx,rdx mov rdx,[rsp+20] call qword ptr [7FFB99BCE1A8]; System.Text.Ascii.Equals[[System.UInt16, System.Private.CoreLib],[System.UInt16, System.Private.CoreLib],[System.Text.Ascii+PlainLoader`1[[System.UInt16, System.Private.CoreLib]], System.Private.CoreLib]](UInt16 ByRef, UInt16 ByRef, UIntPtr) jmp short M00_L03 M00_L02: xor ecx,ecx xor r10d,r10d jmp short M00_L01 M00_L03: add rsp,28 ret M00_L04: xor edx,edx xor eax,eax jmp short M00_L00 M00_L05: xor eax,eax jmp short M00_L03 ; Total bytes of code 89 ``` ```assembly ; System.Text.Ascii.Equals[[System.UInt16, System.Private.CoreLib],[System.UInt16, System.Private.CoreLib],[System.Text.Ascii+PlainLoader`1[[System.UInt16, System.Private.CoreLib]], System.Private.CoreLib]](UInt16 ByRef, UInt16 ByRef, UIntPtr) sub rsp,98 vzeroupper cmp r8,8 jae short M01_L03 xor eax,eax test r8,r8 jbe short M01_L01 M01_L00: movzx r10d,word ptr [rcx+rax*2] movzx r9d,word ptr [rdx+rax*2] cmp r10d,r9d jne near ptr M01_L10 or r10d,r9d cmp r10d,7F ja near ptr M01_L10 inc rax cmp rax,r8 jb short M01_L00 M01_L01: mov eax,1 vzeroupper add rsp,98 ret M01_L02: movzx eax,cl vzeroupper add rsp,98 ret M01_L03: cmp r8,10 jb near ptr M01_L08 mov rax,rcx lea r10,[rdx+r8*2-20] M01_L04: vmovups ymm0,[rax] vmovups [rsp+60],ymm0 vmovups ymm0,[rdx] vmovups [rsp+40],ymm0 vmovups xmm0,[rsp+60] vpcmpeqw xmm0,xmm0,[rsp+40] vpmovmskb r9d,xmm0 cmp r9d,0FFFF jne near ptr M01_L10 vmovups xmm0,[rsp+70] vpcmpeqw xmm0,xmm0,[rsp+50] vpmovmskb r9d,xmm0 cmp r9d,0FFFF setne r9b movzx r9d,r9b test r9d,r9d jne near ptr M01_L10 vmovups ymm0,[rsp+60] vptest ymm0,ymmword ptr [7FFB99639B80] jne near ptr M01_L10 add rdx,20 add rax,20 cmp rdx,r10 jbe short M01_L04 test r8b,0F je near ptr M01_L01 vmovups ymm0,[rcx+r8*2-20] vmovups [rsp+20],ymm0 vmovups ymm0,[r10] vmovups [rsp],ymm0 vmovups xmm0,[rsp+20] vpcmpeqw xmm0,xmm0,[rsp] vpmovmskb ecx,xmm0 cmp ecx,0FFFF jne short M01_L05 vmovups xmm0,[rsp+30] vpcmpeqw xmm0,xmm0,[rsp+10] vpmovmskb r8d,xmm0 cmp r8d,0FFFF setne al movzx eax,al test eax,eax jne short M01_L05 vmovups ymm0,[rsp+20] vptest ymm0,ymmword ptr [7FFB99639B80] je short M01_L06 M01_L05: xor ecx,ecx jmp short M01_L07 M01_L06: mov ecx,1 M01_L07: jmp near ptr M01_L02 M01_L08: lea rax,[rcx+r8*2-10] lea r10,[rdx+r8*2-10] M01_L09: vmovups xmm0,[rcx] vmovups xmm1,[rdx] vpcmpeqw xmm2,xmm0,xmm1 vpmovmskb r9d,xmm2 cmp r9d,0FFFF jne short M01_L10 vpor xmm0,xmm0,xmm1 vptest xmm0,xmmword ptr [7FFB99639B80] jne short M01_L10 add rdx,10 add rcx,10 cmp rdx,r10 jbe short M01_L09 test r8b,7 je near ptr M01_L01 vmovups xmm0,[rax] vmovups xmm1,[r10] vpcmpeqw xmm2,xmm0,xmm1 vpmovmskb eax,xmm2 cmp eax,0FFFF jne short M01_L10 vpor xmm0,xmm0,xmm1 vptest xmm0,xmmword ptr [7FFB99639B80] je near ptr M01_L01 M01_L10: xor eax,eax vzeroupper add rsp,98 ret ; Total bytes of code 483 ```
Changed text
Open file
## .NET 8.0.0 (42.42.42.42424), X64 RyuJIT AVX ```assembly ; System.Text.Perf_Ascii.Equals_Chars() sub rsp,28 mov r8,[rcx+20] test r8,r8 je short M00_L04 lea rdx,[r8+10] mov eax,[r8+8] M00_L00: mov r8,[rcx+28] test r8,r8 je short M00_L02 lea rcx,[r8+10] mov r10d,[r8+8] M00_L01: mov [rsp+20],rcx cmp eax,r10d jne short M00_L05 mov r8d,r10d mov rcx,rdx mov rdx,[rsp+20] call qword ptr [7FFB99BFE1A8]; System.Text.Ascii.Equals[[System.UInt16, System.Private.CoreLib],[System.UInt16, System.Private.CoreLib],[System.Text.Ascii+PlainLoader`1[[System.UInt16, System.Private.CoreLib]], System.Private.CoreLib]](UInt16 ByRef, UInt16 ByRef, UIntPtr) jmp short M00_L03 M00_L02: xor ecx,ecx xor r10d,r10d jmp short M00_L01 M00_L03: add rsp,28 ret M00_L04: xor edx,edx xor eax,eax jmp short M00_L00 M00_L05: xor eax,eax jmp short M00_L03 ; Total bytes of code 89 ``` ```assembly ; System.Text.Ascii.Equals[[System.UInt16, System.Private.CoreLib],[System.UInt16, System.Private.CoreLib],[System.Text.Ascii+PlainLoader`1[[System.UInt16, System.Private.CoreLib]], System.Private.CoreLib]](UInt16 ByRef, UInt16 ByRef, UIntPtr) sub rsp,98 vzeroupper cmp r8,8 jae short M01_L03 xor eax,eax test r8,r8 jbe short M01_L01 M01_L00: movzx r10d,word ptr [rcx+rax*2] movzx r9d,word ptr [rdx+rax*2] cmp r10d,r9d jne near ptr M01_L10 cmp r10d,7F ja near ptr M01_L10 inc rax cmp rax,r8 jb short M01_L00 M01_L01: mov eax,1 vzeroupper add rsp,98 ret M01_L02: movzx eax,cl vzeroupper add rsp,98 ret M01_L03: cmp r8,10 jb near ptr M01_L08 mov rax,rcx lea r10,[rdx+r8*2-20] M01_L04: vmovups ymm0,[rax] vmovups [rsp+60],ymm0 vmovups ymm0,[rdx] vmovups [rsp+40],ymm0 vmovups xmm0,[rsp+60] vpcmpeqw xmm0,xmm0,[rsp+40] vpmovmskb r9d,xmm0 cmp r9d,0FFFF jne near ptr M01_L10 vmovups xmm0,[rsp+70] vpcmpeqw xmm0,xmm0,[rsp+50] vpmovmskb r9d,xmm0 cmp r9d,0FFFF setne r9b movzx r9d,r9b test r9d,r9d jne near ptr M01_L10 vmovups ymm0,[rsp+60] vptest ymm0,ymmword ptr [7FFB99669B40] jne near ptr M01_L10 add rdx,20 add rax,20 cmp rdx,r10 jbe short M01_L04 test r8b,0F je near ptr M01_L01 vmovups ymm0,[rcx+r8*2-20] vmovups [rsp+20],ymm0 vmovups ymm0,[r10] vmovups [rsp],ymm0 vmovups xmm0,[rsp+20] vpcmpeqw xmm0,xmm0,[rsp] vpmovmskb ecx,xmm0 cmp ecx,0FFFF jne short M01_L05 vmovups xmm0,[rsp+30] vpcmpeqw xmm0,xmm0,[rsp+10] vpmovmskb r8d,xmm0 cmp r8d,0FFFF setne al movzx eax,al test eax,eax jne short M01_L05 vmovups ymm0,[rsp+20] vptest ymm0,ymmword ptr [7FFB99669B40] je short M01_L06 M01_L05: xor ecx,ecx jmp short M01_L07 M01_L06: mov ecx,1 M01_L07: jmp near ptr M01_L02 M01_L08: lea rax,[rcx+r8*2-10] lea r10,[rdx+r8*2-10] M01_L09: vmovups xmm0,[rcx] vpcmpeqw xmm1,xmm0,[rdx] vpmovmskb r9d,xmm1 cmp r9d,0FFFF jne short M01_L10 vptest xmm0,xmmword ptr [7FFB99669B40] jne short M01_L10 add rdx,10 add rcx,10 cmp rdx,r10 jbe short M01_L09 test r8b,7 je near ptr M01_L01 vmovups xmm0,[rax] vpcmpeqw xmm1,xmm0,[r10] vpmovmskb eax,xmm1 cmp eax,0FFFF jne short M01_L10 vptest xmm0,xmmword ptr [7FFB99669B40] je near ptr M01_L01 M01_L10: xor eax,eax vzeroupper add rsp,98 ret ; Total bytes of code 464 ```
Find difference