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
Display
Layout
Split
Unified
Real-time editor
Hide whitespace changes
Hide unchanged lines
Disable line wrap
Diff precision
Smart
Syntax
None
Change appearance
Process
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
4 years ago
Diff never expires
Clear
Export
Share
Explain
89 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
79 lines
Copy
78 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
60 lines
Copy
; Assembly listing for method C:M2():System.String:this
; Assembly listing for method C:M2():System.String:this
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; optimized code
; optimized code
; rsp based frame
; rsp based frame
; partially interruptible
; partially interruptible
; No PGO data
; No PGO data
; 1 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; 1 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def
Copy
Copied
Copy
Copied
; V01 loc0 [V01 ] ( 3, 3 ) struct (48) [rsp+5
0
H] do-not-enreg[XS] must-init addr-exposed ld-addr-op
; V01 loc0 [V01 ] ( 3, 3 ) struct (48) [rsp+5
8
H] do-not-enreg[XS] must-init addr-exposed ld-addr-op
; V02 OutArgs [V02 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
; V02 OutArgs [V02 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
Copy
Copied
Copy
Copied
; V03 tmp1 [V03
] (
4
,
8
) struct (48) [rsp+2
0
H] do-not-enreg[
X
SF] must-init
addr-
exposed
"NewObj constructor temp"
; V03 tmp1 [V03
,T00
] (
3
,
6
) struct (48) [rsp+2
8
H] do-not-enreg[
SF] must-init
ld-
addr-
op
"NewObj constructor temp"
;* V04 tmp2 [V04
] ( 0, 0 ) ref -> zero-ref class-hnd
"Inlining Arg"
;* V04 tmp2 [V04
,T04
] ( 0, 0 ) ref -> zero-ref class-hnd
single-def
"Inlining Arg"
;* V05 tmp3 [V05 ] ( 0, 0 ) struct (16) zero-ref
"NewObj constructor temp"
;* V05 tmp3 [V05 ] ( 0, 0 ) struct (16) zero-ref
ld-addr-op
"NewObj constructor temp"
; V06 tmp4 [V06,T0
0] ( 4, 6 ) ref -> rcx class-hnd single-def "Inlining Arg"
; V06 tmp4 [V06,T0
1
] ( 2, 4 ) ref -> rax class-hnd single-def "
impAppendStmt
"
;* V07 tmp5 [V07 ] ( 0, 0 ) struct ( 8) zero-ref "NewObj constructor temp"
; V0
7
tmp
5
[V0
7
,T0
2
] (
2
,
2
) byref -> r
c
x V05._
reference
(offs=0x00) P-INDEP "field V05._
reference
(fldOffset=0x0)"
; V08 tmp6 [V08,T02
] ( 2, 4 ) ref -> rax class-hnd single-def "
impSpillLclRefs
"
; V
08
tmp
6
[V
08
,T0
3
] (
2
,
2
) int ->
rax
V05._length(offs=0x08) P-INDEP "field V05._length (fldOffset=0x8)"
; V0
9
tmp
7
[V0
9
,T0
3
] (
3
,
1.50
) byref -> r
a
x V05._
pointer
(offs=0x00) P-INDEP "field V05._
pointer
(fldOffset=0x0)"
; V
10
tmp
8
[V
10
,T0
4
] (
3
,
1.50
) int ->
rsi
V05._length(offs=0x08) P-INDEP "field V05._length (fldOffset=0x8)"
; V11 tmp9 [V11,T05] ( 2, 1 ) byref -> rax single-def V07._value(offs=0x00) P-INDEP "field V07._value (fldOffset=0x0)"
; V12 tmp10 [V12,T01] ( 3, 6 ) byref -> rcx stack-byref single-def "BlockOp address local"
;
;
Copy
Copied
Copy
Copied
; Lcl frame size =
128
; Lcl frame size =
136
G_M38085_IG01:
G_M38085_IG01:
Copy
Copied
Copy
Copied
push rsi
sub rsp,
136
sub rsp,
128
vzeroupper
vzeroupper
Copy
Copied
Copy
Copied
xor eax, eax
mov qword ptr [rsp+28H], rax
vxorps xmm4, xmm4
vxorps xmm4, xmm4
Copy
Copied
Copy
Copied
mov rax, -96
vmovdqa xmmword ptr [rsp+30H], xmm4
vmovdqa xmmword ptr [rsp+
rax+8
0H], xmm4
vmovdqa xmmword ptr [rsp+
4
0H], xmm4
vmovdqa xmmword ptr [rsp+
rax+9
0H], xmm4
vmovdqa xmmword ptr [rsp+
5
0H], xmm4
vmovdqa xmmword ptr [rsp+
rax+A
0H], xmm4
vmovdqa xmmword ptr [rsp+
6
0H], xmm4
add rax, 48
vmovdqa xmmword ptr [rsp+70H], xmm4
jne
SHORT -5 instr
mov
qword ptr [rsp+80H], rax
;;
bbWeight=
0
PerfScore
0.00
;;
size=59
bbWeight=
1
PerfScore
13.83
G_M38085_IG02:
G_M38085_IG02:
Copy
Copied
Copy
Copied
mov
rcx, g
word ptr [rsp+
30H]
xor rcx, rcx
test rcx
, rcx
xor eax, eax
je
SHORT G_M38085_IG08
mov
b
word ptr [rsp+
48H]
, rcx
;;
bbWeight=1 PerfScore 2.
25
mov
dword ptr [rsp+50H], eax
;;
size=13
bbWeight=1 PerfScore 2.
50
G_M38085_IG03:
G_M38085_IG03:
Copy
Copied
Copy
Copied
lea
rax, b
word ptr [
rcx+16
]
vmovdqu ymm0, ymmword ptr[rsp+28H]
mov esi, d
word ptr [
rcx+8]
vmovdqu ymmword ptr[rsp+58H], ymm0
;;
bbWeight=
0.50
PerfScore
1.25
vmovdqu xmm0, xmm
word ptr [
rsp+48H
]
vmovdqu xmm
word ptr [
rsp+78H], xmm0
;;
size=24
bbWeight=
1
PerfScore
9.00
G_M38085_IG04:
G_M38085_IG04:
Copy
Copied
Copy
Copied
lea rcx,
bword ptr [rsp+40H]
lea rcx,
[rsp+78H]
mov bword ptr [rcx], rax
call
[
System.Span`1[
ushort
]:ToString():System.String:this
]
mov dword ptr [rcx+8], esi
xor ecx, ecx
mov dword ptr [rsp+38H], ecx
;; bbWeight=1 PerfScore 3.75
G_M38085_IG05:
vmovdqu ymm0, ymmword ptr[rsp+20H]
vmovdqu ymmword ptr[rsp+50H], ymm0
vmovdqu xmm0, xmmword ptr [rsp+40H]
vmovdqu xmmword ptr [rsp+70H], xmm0
;; bbWeight=1 PerfScore 9.00
G_M38085_IG06:
lea rcx, bword ptr [rsp+70H]
call
System.Span`1[
Char][System.Char
]:ToString():System.String:this
vxorps ymm0, ymm0
vxorps ymm0, ymm0
Copy
Copied
Copy
Copied
vmovdqu ymmword ptr[rsp+5
0
H], ymm0
vmovdqu ymmword ptr[rsp+5
8
H], ymm0
vmovdqu xmmword ptr [rsp+7
0
H], xmm0
vmovdqu xmmword ptr [rsp+7
8
H], xmm0
;;
bbWeight=1 PerfScore
3
.83
;;
size=27
bbWeight=1 PerfScore
5
.83
G_M38085_IG0
7
:
G_M38085_IG0
5
:
add rsp,
128
add rsp,
136
pop rsi
ret
ret
Copy
Copied
Copy
Copied
;;
bbWeight=1 PerfScore 1.
75
;;
size=8
bbWeight=1 PerfScore 1.
25
G_M38085_IG08:
xor rax, rax
xor esi, esi
jmp SHORT G_M38085_IG04
;; bbWeight=0 PerfScore 0.00
Copy
Copied
Copy
Copied
; Total bytes of code
157
, prolog size
58
, PerfScore
38.63
, instruction count
35
, allocated bytes for code
168
(MethodHash=fe286b3a) for method C:M2():System.String:this
; Total bytes of code
131
, prolog size
59
, PerfScore
46.82
, instruction count
26
, allocated bytes for code
144
(MethodHash=fe286b3a) for method C:M2():System.String:this
; ============================================================
; ============================================================
Saved diffs
Original text
Open file
; Assembly listing for method C:M2():System.String:this ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; partially interruptible ; No PGO data ; 1 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def ; V01 loc0 [V01 ] ( 3, 3 ) struct (48) [rsp+50H] do-not-enreg[XS] must-init addr-exposed ld-addr-op ; V02 OutArgs [V02 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace" ; V03 tmp1 [V03 ] ( 4, 8 ) struct (48) [rsp+20H] do-not-enreg[XSF] must-init addr-exposed "NewObj constructor temp" ;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V05 tmp3 [V05 ] ( 0, 0 ) struct (16) zero-ref "NewObj constructor temp" ; V06 tmp4 [V06,T00] ( 4, 6 ) ref -> rcx class-hnd single-def "Inlining Arg" ;* V07 tmp5 [V07 ] ( 0, 0 ) struct ( 8) zero-ref "NewObj constructor temp" ; V08 tmp6 [V08,T02] ( 2, 4 ) ref -> rax class-hnd single-def "impSpillLclRefs" ; V09 tmp7 [V09,T03] ( 3, 1.50) byref -> rax V05._pointer(offs=0x00) P-INDEP "field V05._pointer (fldOffset=0x0)" ; V10 tmp8 [V10,T04] ( 3, 1.50) int -> rsi V05._length(offs=0x08) P-INDEP "field V05._length (fldOffset=0x8)" ; V11 tmp9 [V11,T05] ( 2, 1 ) byref -> rax single-def V07._value(offs=0x00) P-INDEP "field V07._value (fldOffset=0x0)" ; V12 tmp10 [V12,T01] ( 3, 6 ) byref -> rcx stack-byref single-def "BlockOp address local" ; ; Lcl frame size = 128 G_M38085_IG01: push rsi sub rsp, 128 vzeroupper vxorps xmm4, xmm4 mov rax, -96 vmovdqa xmmword ptr [rsp+rax+80H], xmm4 vmovdqa xmmword ptr [rsp+rax+90H], xmm4 vmovdqa xmmword ptr [rsp+rax+A0H], xmm4 add rax, 48 jne SHORT -5 instr ;; bbWeight=0 PerfScore 0.00 G_M38085_IG02: mov rcx, gword ptr [rsp+30H] test rcx, rcx je SHORT G_M38085_IG08 ;; bbWeight=1 PerfScore 2.25 G_M38085_IG03: lea rax, bword ptr [rcx+16] mov esi, dword ptr [rcx+8] ;; bbWeight=0.50 PerfScore 1.25 G_M38085_IG04: lea rcx, bword ptr [rsp+40H] mov bword ptr [rcx], rax mov dword ptr [rcx+8], esi xor ecx, ecx mov dword ptr [rsp+38H], ecx ;; bbWeight=1 PerfScore 3.75 G_M38085_IG05: vmovdqu ymm0, ymmword ptr[rsp+20H] vmovdqu ymmword ptr[rsp+50H], ymm0 vmovdqu xmm0, xmmword ptr [rsp+40H] vmovdqu xmmword ptr [rsp+70H], xmm0 ;; bbWeight=1 PerfScore 9.00 G_M38085_IG06: lea rcx, bword ptr [rsp+70H] call System.Span`1[Char][System.Char]:ToString():System.String:this vxorps ymm0, ymm0 vmovdqu ymmword ptr[rsp+50H], ymm0 vmovdqu xmmword ptr [rsp+70H], xmm0 ;; bbWeight=1 PerfScore 3.83 G_M38085_IG07: add rsp, 128 pop rsi ret ;; bbWeight=1 PerfScore 1.75 G_M38085_IG08: xor rax, rax xor esi, esi jmp SHORT G_M38085_IG04 ;; bbWeight=0 PerfScore 0.00 ; Total bytes of code 157, prolog size 58, PerfScore 38.63, instruction count 35, allocated bytes for code 168 (MethodHash=fe286b3a) for method C:M2():System.String:this ; ============================================================
Changed text
Open file
; Assembly listing for method C:M2():System.String:this ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; partially interruptible ; No PGO data ; 1 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def ; V01 loc0 [V01 ] ( 3, 3 ) struct (48) [rsp+58H] do-not-enreg[XS] must-init addr-exposed ld-addr-op ; V02 OutArgs [V02 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace" ; V03 tmp1 [V03,T00] ( 3, 6 ) struct (48) [rsp+28H] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" ;* V04 tmp2 [V04,T04] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" ;* V05 tmp3 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V06 tmp4 [V06,T01] ( 2, 4 ) ref -> rax class-hnd single-def "impAppendStmt" ; V07 tmp5 [V07,T02] ( 2, 2 ) byref -> rcx V05._reference(offs=0x00) P-INDEP "field V05._reference (fldOffset=0x0)" ; V08 tmp6 [V08,T03] ( 2, 2 ) int -> rax V05._length(offs=0x08) P-INDEP "field V05._length (fldOffset=0x8)" ; ; Lcl frame size = 136 G_M38085_IG01: sub rsp, 136 vzeroupper xor eax, eax mov qword ptr [rsp+28H], rax vxorps xmm4, xmm4 vmovdqa xmmword ptr [rsp+30H], xmm4 vmovdqa xmmword ptr [rsp+40H], xmm4 vmovdqa xmmword ptr [rsp+50H], xmm4 vmovdqa xmmword ptr [rsp+60H], xmm4 vmovdqa xmmword ptr [rsp+70H], xmm4 mov qword ptr [rsp+80H], rax ;; size=59 bbWeight=1 PerfScore 13.83 G_M38085_IG02: xor rcx, rcx xor eax, eax mov bword ptr [rsp+48H], rcx mov dword ptr [rsp+50H], eax ;; size=13 bbWeight=1 PerfScore 2.50 G_M38085_IG03: vmovdqu ymm0, ymmword ptr[rsp+28H] vmovdqu ymmword ptr[rsp+58H], ymm0 vmovdqu xmm0, xmmword ptr [rsp+48H] vmovdqu xmmword ptr [rsp+78H], xmm0 ;; size=24 bbWeight=1 PerfScore 9.00 G_M38085_IG04: lea rcx, [rsp+78H] call [System.Span`1[ushort]:ToString():System.String:this] vxorps ymm0, ymm0 vmovdqu ymmword ptr[rsp+58H], ymm0 vmovdqu xmmword ptr [rsp+78H], xmm0 ;; size=27 bbWeight=1 PerfScore 5.83 G_M38085_IG05: add rsp, 136 ret ;; size=8 bbWeight=1 PerfScore 1.25 ; Total bytes of code 131, prolog size 59, PerfScore 46.82, instruction count 26, allocated bytes for code 144 (MethodHash=fe286b3a) for method C:M2():System.String:this ; ============================================================
Find difference