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 whitespace changes
Hide unchanged lines
Disable line wrap
Layout
Split
Unified
Diff precision
Smart
Word
Char
Text styles
Change appearance
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
Untitled Diff
Created
5 years ago
Diff never expires
Clear
Export
Share
Explain
14 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
110 lines
Copy
13 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
109 lines
Copy
; Assembly listing for method JsonSerializerOptionsUpdateHandler:ClearCache(ref)
; Assembly listing for method JsonSerializerOptionsUpdateHandler:ClearCache(ref)
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; fully interruptible
; fully interruptible
; No PGO data
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
;* V00 arg0 [V00 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def
;* V00 arg0 [V00 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def
; V01 loc0 [V01,T01] ( 7, 10 ) ref -> [rbp-28H] class-hnd EH-live single-def
; V01 loc0 [V01,T01] ( 7, 10 ) ref -> [rbp-28H] class-hnd EH-live single-def
; V02 loc1 [V02 ] ( 2, 8 ) struct (16) [rbp-20H] do-not-enreg[XSB] must-init addr-exposed ld-addr-op
; V02 loc1 [V02 ] ( 2, 8 ) struct (16) [rbp-20H] do-not-enreg[XSB] must-init addr-exposed ld-addr-op
; V03 OutArgs [V03 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
; V03 OutArgs [V03 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
; V04 tmp1 [V04,T00] ( 3, 24 ) ref -> rdi class-hnd "Inlining Arg"
; V04 tmp1 [V04,T00] ( 3, 24 ) ref -> rdi class-hnd "Inlining Arg"
; V05 tmp2 [V05 ] ( 2, 8 ) ref -> [rbp-20H] do-not-enreg[X] addr-exposed V02.key(offs=0x00) P-DEP "field V02.key (fldOffset=0x0)"
; V05 tmp2 [V05 ] ( 2, 8 ) ref -> [rbp-20H] do-not-enreg[X] addr-exposed V02.key(offs=0x00) P-DEP "field V02.key (fldOffset=0x0)"
; V06 tmp3 [V06 ] ( 1, 4 ) ref -> [rbp-18H] do-not-enreg[X] addr-exposed V02.value(offs=0x08) P-DEP "field V02.value (fldOffset=0x8)"
; V06 tmp3 [V06 ] ( 1, 4 ) ref -> [rbp-18H] do-not-enreg[X] addr-exposed V02.value(offs=0x08) P-DEP "field V02.value (fldOffset=0x8)"
Copy
Copied
Copy
Copied
; V07
tmp4 [V07,T02] ( 2, 4 ) ref -> rcx single-def "argument with side effect"
; V07
PSPSym [V0
7
] ( 1, 1 ) long -> [rbp-30H] do-not-enreg[X] addr-exposed "PSPSym"
; V08
PSPSym [V0
8
] ( 1, 1 ) long -> [rbp-30H] do-not-enreg[X] addr-exposed "PSPSym"
; V0
8
tmp
5
[V0
8
,T0
2
] ( 2, 2 ) ref -> rsi "optAddCopies"
; V0
9
tmp
6
[V0
9
,T0
3
] ( 2, 2 ) ref -> rsi "optAddCopies"
;
;
; Lcl frame size = 64
; Lcl frame size = 64
G_M53696_IG01:
G_M53696_IG01:
push rbp
push rbp
push rdi
push rdi
push rsi
push rsi
sub rsp, 64
sub rsp, 64
lea rbp, [rsp+50H]
lea rbp, [rsp+50H]
xor eax, eax
xor eax, eax
mov qword ptr [rbp-20H], rax
mov qword ptr [rbp-20H], rax
mov qword ptr [rbp-18H], rax
mov qword ptr [rbp-18H], rax
mov qword ptr [rbp-30H], rsp
mov qword ptr [rbp-30H], rsp
;; bbWeight=1 PerfScore 7.00
;; bbWeight=1 PerfScore 7.00
G_M53696_IG02:
G_M53696_IG02:
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov edx, 61
mov edx, 61
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
Copy
Copied
Copy
Copied
mov
r11, 0xD1FFAB1E
cmp
dword ptr [rcx], ecx
call [
IEnumerable
`1:
GetEnumerator():IEnumerator`1:this]
call [
ConditionalWeakTable`2:System.Collections.Generic.
IEnumerable
<System.Collections.Generic.KeyValuePair<TKey,TValue>>.
GetEnumerator():IEnumerator`1:this]
mov rsi, rax
mov rsi, rax
mov gword ptr [rbp-28H], rsi
mov gword ptr [rbp-28H], rsi
Copy
Copied
Copy
Copied
;; bbWeight=1 PerfScore
8.25
;; bbWeight=1 PerfScore
10.00
G_M53696_IG03:
G_M53696_IG03:
mov rcx, rsi
mov rcx, rsi
mov r11, 0xD1FFAB1E
mov r11, 0xD1FFAB1E
call [IEnumerator:MoveNext():bool:this]
call [IEnumerator:MoveNext():bool:this]
test eax, eax
test eax, eax
je SHORT G_M53696_IG05
je SHORT G_M53696_IG05
;; bbWeight=1 PerfScore 4.75
;; bbWeight=1 PerfScore 4.75
G_M53696_IG04:
G_M53696_IG04:
lea rdx, bword ptr [rbp-20H]
lea rdx, bword ptr [rbp-20H]
mov rcx, rsi
mov rcx, rsi
mov r11, 0xD1FFAB1E
mov r11, 0xD1FFAB1E
call [IEnumerator`1:get_Current():KeyValuePair`2:this]
call [IEnumerator`1:get_Current():KeyValuePair`2:this]
mov rdi, gword ptr [rbp-20H]
mov rdi, gword ptr [rbp-20H]
mov rcx, gword ptr [rdi+24]
mov rcx, gword ptr [rdi+24]
cmp dword ptr [rcx], ecx
cmp dword ptr [rcx], ecx
call [ConcurrentDictionary`2:Clear():this]
call [ConcurrentDictionary`2:Clear():this]
xor rcx, rcx
xor rcx, rcx
mov gword ptr [rdi+32], rcx
mov gword ptr [rdi+32], rcx
mov rcx, rsi
mov rcx, rsi
mov r11, 0xD1FFAB1E
mov r11, 0xD1FFAB1E
call [IEnumerator:MoveNext():bool:this]
call [IEnumerator:MoveNext():bool:this]
test eax, eax
test eax, eax
jne SHORT G_M53696_IG04
jne SHORT G_M53696_IG04
;; bbWeight=4 PerfScore 72.00
;; bbWeight=4 PerfScore 72.00
G_M53696_IG05:
G_M53696_IG05:
mov rcx, rsi
mov rcx, rsi
mov r11, 0xD1FFAB1E
mov r11, 0xD1FFAB1E
call [IDisposable:Dispose():this]
call [IDisposable:Dispose():this]
nop
nop
;; bbWeight=1 PerfScore 3.75
;; bbWeight=1 PerfScore 3.75
G_M53696_IG06:
G_M53696_IG06:
add rsp, 64
add rsp, 64
pop rsi
pop rsi
pop rdi
pop rdi
pop rbp
pop rbp
ret
ret
;; bbWeight=1 PerfScore 2.75
;; bbWeight=1 PerfScore 2.75
G_M53696_IG07:
G_M53696_IG07:
push rbp
push rbp
push rdi
push rdi
push rsi
push rsi
sub rsp, 48
sub rsp, 48
mov rbp, qword ptr [rcx+32]
mov rbp, qword ptr [rcx+32]
mov qword ptr [rsp+20H], rbp
mov qword ptr [rsp+20H], rbp
lea rbp, [rbp+50H]
lea rbp, [rbp+50H]
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
G_M53696_IG08:
G_M53696_IG08:
cmp gword ptr [rbp-28H], 0
cmp gword ptr [rbp-28H], 0
je SHORT G_M53696_IG09
je SHORT G_M53696_IG09
mov rcx, gword ptr [rbp-28H]
mov rcx, gword ptr [rbp-28H]
mov r11, 0xD1FFAB1E
mov r11, 0xD1FFAB1E
call [IDisposable:Dispose():this]
call [IDisposable:Dispose():this]
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
G_M53696_IG09:
G_M53696_IG09:
nop
nop
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
G_M53696_IG10:
G_M53696_IG10:
add rsp, 48
add rsp, 48
pop rsi
pop rsi
pop rdi
pop rdi
pop rbp
pop rbp
ret
ret
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
Copy
Copied
Copy
Copied
; Total bytes of code
257
, prolog size 26, PerfScore 12
4.20
, instruction count 65, allocated bytes for code
257
(MethodHash=ded42e3f) for method JsonSerializerOptionsUpdateHandler:ClearCache(ref)
; Total bytes of code
249
, prolog size 26, PerfScore 12
5.15
, instruction count 65, allocated bytes for code
249
(MethodHash=ded42e3f) for method JsonSerializerOptionsUpdateHandler:ClearCache(ref)
; ============================================================
; ============================================================
Saved diffs
Original text
Open file
; Assembly listing for method JsonSerializerOptionsUpdateHandler:ClearCache(ref) ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ;* V00 arg0 [V00 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ; V01 loc0 [V01,T01] ( 7, 10 ) ref -> [rbp-28H] class-hnd EH-live single-def ; V02 loc1 [V02 ] ( 2, 8 ) struct (16) [rbp-20H] do-not-enreg[XSB] must-init addr-exposed ld-addr-op ; V03 OutArgs [V03 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace" ; V04 tmp1 [V04,T00] ( 3, 24 ) ref -> rdi class-hnd "Inlining Arg" ; V05 tmp2 [V05 ] ( 2, 8 ) ref -> [rbp-20H] do-not-enreg[X] addr-exposed V02.key(offs=0x00) P-DEP "field V02.key (fldOffset=0x0)" ; V06 tmp3 [V06 ] ( 1, 4 ) ref -> [rbp-18H] do-not-enreg[X] addr-exposed V02.value(offs=0x08) P-DEP "field V02.value (fldOffset=0x8)" ; V07 tmp4 [V07,T02] ( 2, 4 ) ref -> rcx single-def "argument with side effect" ; V08 PSPSym [V08 ] ( 1, 1 ) long -> [rbp-30H] do-not-enreg[X] addr-exposed "PSPSym" ; V09 tmp6 [V09,T03] ( 2, 2 ) ref -> rsi "optAddCopies" ; ; Lcl frame size = 64 G_M53696_IG01: push rbp push rdi push rsi sub rsp, 64 lea rbp, [rsp+50H] xor eax, eax mov qword ptr [rbp-20H], rax mov qword ptr [rbp-18H], rax mov qword ptr [rbp-30H], rsp ;; bbWeight=1 PerfScore 7.00 G_M53696_IG02: mov rcx, 0xD1FFAB1E mov edx, 61 call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE mov rcx, 0xD1FFAB1E mov rcx, gword ptr [rcx] mov r11, 0xD1FFAB1E call [IEnumerable`1:GetEnumerator():IEnumerator`1:this] mov rsi, rax mov gword ptr [rbp-28H], rsi ;; bbWeight=1 PerfScore 8.25 G_M53696_IG03: mov rcx, rsi mov r11, 0xD1FFAB1E call [IEnumerator:MoveNext():bool:this] test eax, eax je SHORT G_M53696_IG05 ;; bbWeight=1 PerfScore 4.75 G_M53696_IG04: lea rdx, bword ptr [rbp-20H] mov rcx, rsi mov r11, 0xD1FFAB1E call [IEnumerator`1:get_Current():KeyValuePair`2:this] mov rdi, gword ptr [rbp-20H] mov rcx, gword ptr [rdi+24] cmp dword ptr [rcx], ecx call [ConcurrentDictionary`2:Clear():this] xor rcx, rcx mov gword ptr [rdi+32], rcx mov rcx, rsi mov r11, 0xD1FFAB1E call [IEnumerator:MoveNext():bool:this] test eax, eax jne SHORT G_M53696_IG04 ;; bbWeight=4 PerfScore 72.00 G_M53696_IG05: mov rcx, rsi mov r11, 0xD1FFAB1E call [IDisposable:Dispose():this] nop ;; bbWeight=1 PerfScore 3.75 G_M53696_IG06: add rsp, 64 pop rsi pop rdi pop rbp ret ;; bbWeight=1 PerfScore 2.75 G_M53696_IG07: push rbp push rdi push rsi sub rsp, 48 mov rbp, qword ptr [rcx+32] mov qword ptr [rsp+20H], rbp lea rbp, [rbp+50H] ;; bbWeight=0 PerfScore 0.00 G_M53696_IG08: cmp gword ptr [rbp-28H], 0 je SHORT G_M53696_IG09 mov rcx, gword ptr [rbp-28H] mov r11, 0xD1FFAB1E call [IDisposable:Dispose():this] ;; bbWeight=0 PerfScore 0.00 G_M53696_IG09: nop ;; bbWeight=0 PerfScore 0.00 G_M53696_IG10: add rsp, 48 pop rsi pop rdi pop rbp ret ;; bbWeight=0 PerfScore 0.00 ; Total bytes of code 257, prolog size 26, PerfScore 124.20, instruction count 65, allocated bytes for code 257 (MethodHash=ded42e3f) for method JsonSerializerOptionsUpdateHandler:ClearCache(ref) ; ============================================================
Changed text
Open file
; Assembly listing for method JsonSerializerOptionsUpdateHandler:ClearCache(ref) ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ;* V00 arg0 [V00 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ; V01 loc0 [V01,T01] ( 7, 10 ) ref -> [rbp-28H] class-hnd EH-live single-def ; V02 loc1 [V02 ] ( 2, 8 ) struct (16) [rbp-20H] do-not-enreg[XSB] must-init addr-exposed ld-addr-op ; V03 OutArgs [V03 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace" ; V04 tmp1 [V04,T00] ( 3, 24 ) ref -> rdi class-hnd "Inlining Arg" ; V05 tmp2 [V05 ] ( 2, 8 ) ref -> [rbp-20H] do-not-enreg[X] addr-exposed V02.key(offs=0x00) P-DEP "field V02.key (fldOffset=0x0)" ; V06 tmp3 [V06 ] ( 1, 4 ) ref -> [rbp-18H] do-not-enreg[X] addr-exposed V02.value(offs=0x08) P-DEP "field V02.value (fldOffset=0x8)" ; V07 PSPSym [V07 ] ( 1, 1 ) long -> [rbp-30H] do-not-enreg[X] addr-exposed "PSPSym" ; V08 tmp5 [V08,T02] ( 2, 2 ) ref -> rsi "optAddCopies" ; ; Lcl frame size = 64 G_M53696_IG01: push rbp push rdi push rsi sub rsp, 64 lea rbp, [rsp+50H] xor eax, eax mov qword ptr [rbp-20H], rax mov qword ptr [rbp-18H], rax mov qword ptr [rbp-30H], rsp ;; bbWeight=1 PerfScore 7.00 G_M53696_IG02: mov rcx, 0xD1FFAB1E mov edx, 61 call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE mov rcx, 0xD1FFAB1E mov rcx, gword ptr [rcx] cmp dword ptr [rcx], ecx call [ConditionalWeakTable`2:System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>.GetEnumerator():IEnumerator`1:this] mov rsi, rax mov gword ptr [rbp-28H], rsi ;; bbWeight=1 PerfScore 10.00 G_M53696_IG03: mov rcx, rsi mov r11, 0xD1FFAB1E call [IEnumerator:MoveNext():bool:this] test eax, eax je SHORT G_M53696_IG05 ;; bbWeight=1 PerfScore 4.75 G_M53696_IG04: lea rdx, bword ptr [rbp-20H] mov rcx, rsi mov r11, 0xD1FFAB1E call [IEnumerator`1:get_Current():KeyValuePair`2:this] mov rdi, gword ptr [rbp-20H] mov rcx, gword ptr [rdi+24] cmp dword ptr [rcx], ecx call [ConcurrentDictionary`2:Clear():this] xor rcx, rcx mov gword ptr [rdi+32], rcx mov rcx, rsi mov r11, 0xD1FFAB1E call [IEnumerator:MoveNext():bool:this] test eax, eax jne SHORT G_M53696_IG04 ;; bbWeight=4 PerfScore 72.00 G_M53696_IG05: mov rcx, rsi mov r11, 0xD1FFAB1E call [IDisposable:Dispose():this] nop ;; bbWeight=1 PerfScore 3.75 G_M53696_IG06: add rsp, 64 pop rsi pop rdi pop rbp ret ;; bbWeight=1 PerfScore 2.75 G_M53696_IG07: push rbp push rdi push rsi sub rsp, 48 mov rbp, qword ptr [rcx+32] mov qword ptr [rsp+20H], rbp lea rbp, [rbp+50H] ;; bbWeight=0 PerfScore 0.00 G_M53696_IG08: cmp gword ptr [rbp-28H], 0 je SHORT G_M53696_IG09 mov rcx, gword ptr [rbp-28H] mov r11, 0xD1FFAB1E call [IDisposable:Dispose():this] ;; bbWeight=0 PerfScore 0.00 G_M53696_IG09: nop ;; bbWeight=0 PerfScore 0.00 G_M53696_IG10: add rsp, 48 pop rsi pop rdi pop rbp ret ;; bbWeight=0 PerfScore 0.00 ; Total bytes of code 249, prolog size 26, PerfScore 125.15, instruction count 65, allocated bytes for code 249 (MethodHash=ded42e3f) for method JsonSerializerOptionsUpdateHandler:ClearCache(ref) ; ============================================================
Find difference