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
GenericComparer-double
Created
6 years ago
Diff never expires
Clear
Export
Share
Explain
10 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
140 lines
Copy
9 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
140 lines
Copy
; Assembly listing for method System.Collections.Generic.GenericEqualityComparer`1[Double][System.Double]:IndexOf(System.Double[],double,int,int):int:this
; Assembly listing for method System.Collections.Generic.GenericEqualityComparer`1[Double][System.Double]:IndexOf(System.Double[],double,int,int):int: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
; fully interruptible
; fully interruptible
; discarded IBC profile data due to mismatch in ILSize
; discarded IBC profile data due to mismatch in ILSize
; Final local variable assignments
; Final local variable assignments
;
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd
; V01 arg1 [V01,T02] ( 7, 16 ) ref -> rdx class-hnd
; V01 arg1 [V01,T02] ( 7, 16 ) ref -> rdx class-hnd
; V02 arg2 [V02,T11] ( 8, 14 ) double -> mm2
; V02 arg2 [V02,T11] ( 8, 14 ) double -> mm2
; V03 arg3 [V03,T08] ( 5, 5 ) int -> r9
; V03 arg3 [V03,T08] ( 5, 5 ) int -> r9
; V04 arg4 [V04,T09] ( 1, 1 ) int -> [rsp+0x50]
; V04 arg4 [V04,T09] ( 1, 1 ) int -> [rsp+0x50]
; V05 loc0 [V05,T05] ( 6, 12 ) int -> rcx
; V05 loc0 [V05,T05] ( 6, 12 ) int -> rcx
;* V06 loc1 [V06 ] ( 0, 0 ) int -> zero-ref
;* V06 loc1 [V06 ] ( 0, 0 ) int -> zero-ref
; V07 loc2 [V07,T00] ( 13, 42.50) int -> rax
; V07 loc2 [V07,T00] ( 13, 42.50) int -> rax
; V08 OutArgs [V08 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
; V08 OutArgs [V08 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
;* V09 tmp1 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper"
;* V09 tmp1 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper"
; V10 tmp2 [V10,T03] ( 4, 8 ) bool -> registers "Inline return value spill temp"
; V10 tmp2 [V10,T03] ( 4, 8 ) bool -> registers "Inline return value spill temp"
; V11 tmp3 [V11,T01] ( 6, 40 ) byref -> r8 "Inlining Arg"
; V11 tmp3 [V11,T01] ( 6, 40 ) byref -> r8 "Inlining Arg"
; V12 tmp4 [V12,T10] ( 6, 24 ) double -> mm0 "Inlining Arg"
; V12 tmp4 [V12,T10] ( 6, 24 ) double -> mm0 "Inlining Arg"
; V13 cse0 [V13,T04] ( 5, 14 ) int -> r9 "CSE - aggressive"
; V13 cse0 [V13,T04] ( 5, 14 ) int -> r9 "CSE - aggressive"
; V14 cse1 [V14,T06] ( 2, 8 ) long -> r8 "CSE - aggressive"
; V14 cse1 [V14,T06] ( 2, 8 ) long -> r8 "CSE - aggressive"
; V15 cse2 [V15,T07] ( 2, 8 ) long -> r9 "CSE - aggressive"
; V15 cse2 [V15,T07] ( 2, 8 ) long -> r9 "CSE - aggressive"
;
;
; Lcl frame size = 40
; Lcl frame size = 40
G_M47595_IG01:
G_M47595_IG01:
sub rsp, 40
sub rsp, 40
vzeroupper
vzeroupper
;; bbWeight=1 PerfScore 1.25
;; bbWeight=1 PerfScore 1.25
G_M47595_IG02:
G_M47595_IG02:
mov ecx, r9d
mov ecx, r9d
add ecx, dword ptr [rsp+50H]
add ecx, dword ptr [rsp+50H]
mov eax, r9d
mov eax, r9d
cmp r9d, ecx
cmp r9d, ecx
jge G_M47595_IG13
jge G_M47595_IG13
test rdx, rdx
test rdx, rdx
je SHORT G_M47595_IG09
je SHORT G_M47595_IG09
Copy
Copied
Copy
Copied
;; NOP compensation instructions of 4 bytes.
;; bbWeight=1 PerfScore 4.00
;; bbWeight=1 PerfScore 4.00
G_M47595_IG03:
G_M47595_IG03:
mov r8d, eax
mov r8d, eax
not r8d
not r8d
shr r8d, 31
shr r8d, 31
mov r9d, ecx
mov r9d, ecx
not r9d
not r9d
shr r9d, 31
shr r9d, 31
and r8d, r9d
and r8d, r9d
mov r9d, dword ptr [rdx+8]
mov r9d, dword ptr [rdx+8]
cmp r9d, ecx
cmp r9d, ecx
setge r10b
setge r10b
movzx r10, r10b
movzx r10, r10b
test r8d, r10d
test r8d, r10d
je SHORT G_M47595_IG09
je SHORT G_M47595_IG09
Copy
Copied
Copy
Copied
align [
0
bytes]
align [
2
bytes]
;; bbWeight=1 PerfScore 10.25
;; bbWeight=1 PerfScore 10.25
G_M47595_IG04:
G_M47595_IG04:
movsxd r8, eax
movsxd r8, eax
cmp eax, r9d
cmp eax, r9d
jae G_M47595_IG16
jae G_M47595_IG16
lea r8, bword ptr [rdx+8*r8+16]
lea r8, bword ptr [rdx+8*r8+16]
vucomisd xmm2, qword ptr [r8]
vucomisd xmm2, qword ptr [r8]
jp SHORT G_M47595_IG05
jp SHORT G_M47595_IG05
je SHORT G_M47595_IG15
je SHORT G_M47595_IG15
;; bbWeight=4 PerfScore 26.00
;; bbWeight=4 PerfScore 26.00
G_M47595_IG05:
G_M47595_IG05:
vucomisd xmm2, xmm2
vucomisd xmm2, xmm2
jp SHORT G_M47595_IG06
jp SHORT G_M47595_IG06
je SHORT G_M47595_IG07
je SHORT G_M47595_IG07
;; bbWeight=1 PerfScore 3.00
;; bbWeight=1 PerfScore 3.00
G_M47595_IG06:
G_M47595_IG06:
vmovsd xmm0, qword ptr [r8]
vmovsd xmm0, qword ptr [r8]
vucomisd xmm0, xmm0
vucomisd xmm0, xmm0
setp r8b
setp r8b
movzx r8, r8b
movzx r8, r8b
test r8d, r8d
test r8d, r8d
jne SHORT G_M47595_IG15
jne SHORT G_M47595_IG15
;; bbWeight=2 PerfScore 11.00
;; bbWeight=2 PerfScore 11.00
G_M47595_IG07:
G_M47595_IG07:
inc eax
inc eax
cmp eax, ecx
cmp eax, ecx
jl SHORT G_M47595_IG04
jl SHORT G_M47595_IG04
;; bbWeight=4 PerfScore 6.00
;; bbWeight=4 PerfScore 6.00
G_M47595_IG08:
G_M47595_IG08:
jmp SHORT G_M47595_IG13
jmp SHORT G_M47595_IG13
Copy
Copied
Copy
Copied
align [0 bytes]
;; bbWeight=1 PerfScore 2.
00
;; bbWeight=1 PerfScore 2.
25
G_M47595_IG09:
G_M47595_IG09:
mov r9d, dword ptr [rdx+8]
mov r9d, dword ptr [rdx+8]
cmp eax, r9d
cmp eax, r9d
jae SHORT G_M47595_IG16
jae SHORT G_M47595_IG16
movsxd r9, eax
movsxd r9, eax
lea r8, bword ptr [rdx+8*r9+16]
lea r8, bword ptr [rdx+8*r9+16]
vucomisd xmm2, qword ptr [r8]
vucomisd xmm2, qword ptr [r8]
jp SHORT G_M47595_IG10
jp SHORT G_M47595_IG10
je SHORT G_M47595_IG15
je SHORT G_M47595_IG15
;; bbWeight=4 PerfScore 34.00
;; bbWeight=4 PerfScore 34.00
G_M47595_IG10:
G_M47595_IG10:
vucomisd xmm2, xmm2
vucomisd xmm2, xmm2
jp SHORT G_M47595_IG11
jp SHORT G_M47595_IG11
Saved diffs
Original text
Open file
; Assembly listing for method System.Collections.Generic.GenericEqualityComparer`1[Double][System.Double]:IndexOf(System.Double[],double,int,int):int:this ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; fully interruptible ; discarded IBC profile data due to mismatch in ILSize ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd ; V01 arg1 [V01,T02] ( 7, 16 ) ref -> rdx class-hnd ; V02 arg2 [V02,T11] ( 8, 14 ) double -> mm2 ; V03 arg3 [V03,T08] ( 5, 5 ) int -> r9 ; V04 arg4 [V04,T09] ( 1, 1 ) int -> [rsp+0x50] ; V05 loc0 [V05,T05] ( 6, 12 ) int -> rcx ;* V06 loc1 [V06 ] ( 0, 0 ) int -> zero-ref ; V07 loc2 [V07,T00] ( 13, 42.50) int -> rax ; V08 OutArgs [V08 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace" ;* V09 tmp1 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" ; V10 tmp2 [V10,T03] ( 4, 8 ) bool -> registers "Inline return value spill temp" ; V11 tmp3 [V11,T01] ( 6, 40 ) byref -> r8 "Inlining Arg" ; V12 tmp4 [V12,T10] ( 6, 24 ) double -> mm0 "Inlining Arg" ; V13 cse0 [V13,T04] ( 5, 14 ) int -> r9 "CSE - aggressive" ; V14 cse1 [V14,T06] ( 2, 8 ) long -> r8 "CSE - aggressive" ; V15 cse2 [V15,T07] ( 2, 8 ) long -> r9 "CSE - aggressive" ; ; Lcl frame size = 40 G_M47595_IG01: sub rsp, 40 vzeroupper ;; bbWeight=1 PerfScore 1.25 G_M47595_IG02: mov ecx, r9d add ecx, dword ptr [rsp+50H] mov eax, r9d cmp r9d, ecx jge G_M47595_IG13 test rdx, rdx je SHORT G_M47595_IG09 ;; bbWeight=1 PerfScore 4.00 G_M47595_IG03: mov r8d, eax not r8d shr r8d, 31 mov r9d, ecx not r9d shr r9d, 31 and r8d, r9d mov r9d, dword ptr [rdx+8] cmp r9d, ecx setge r10b movzx r10, r10b test r8d, r10d je SHORT G_M47595_IG09 align [0 bytes] ;; bbWeight=1 PerfScore 10.25 G_M47595_IG04: movsxd r8, eax cmp eax, r9d jae G_M47595_IG16 lea r8, bword ptr [rdx+8*r8+16] vucomisd xmm2, qword ptr [r8] jp SHORT G_M47595_IG05 je SHORT G_M47595_IG15 ;; bbWeight=4 PerfScore 26.00 G_M47595_IG05: vucomisd xmm2, xmm2 jp SHORT G_M47595_IG06 je SHORT G_M47595_IG07 ;; bbWeight=1 PerfScore 3.00 G_M47595_IG06: vmovsd xmm0, qword ptr [r8] vucomisd xmm0, xmm0 setp r8b movzx r8, r8b test r8d, r8d jne SHORT G_M47595_IG15 ;; bbWeight=2 PerfScore 11.00 G_M47595_IG07: inc eax cmp eax, ecx jl SHORT G_M47595_IG04 ;; bbWeight=4 PerfScore 6.00 G_M47595_IG08: jmp SHORT G_M47595_IG13 align [0 bytes] ;; bbWeight=1 PerfScore 2.25 G_M47595_IG09: mov r9d, dword ptr [rdx+8] cmp eax, r9d jae SHORT G_M47595_IG16 movsxd r9, eax lea r8, bword ptr [rdx+8*r9+16] vucomisd xmm2, qword ptr [r8] jp SHORT G_M47595_IG10 je SHORT G_M47595_IG15 ;; bbWeight=4 PerfScore 34.00 G_M47595_IG10: vucomisd xmm2, xmm2 jp SHORT G_M47595_IG11 je SHORT G_M47595_IG12 ;; bbWeight=1 PerfScore 3.00 G_M47595_IG11: vmovsd xmm0, qword ptr [r8] vucomisd xmm0, xmm0 setp r9b movzx r9, r9b test r9d, r9d jne SHORT G_M47595_IG15 ;; bbWeight=2 PerfScore 11.00 G_M47595_IG12: inc eax cmp eax, ecx jl SHORT G_M47595_IG09 ;; bbWeight=4 PerfScore 6.00 G_M47595_IG13: mov eax, -1 ;; bbWeight=0.50 PerfScore 0.12 G_M47595_IG14: add rsp, 40 ret ;; bbWeight=0.50 PerfScore 0.62 G_M47595_IG15: add rsp, 40 ret ;; bbWeight=0.50 PerfScore 0.62 G_M47595_IG16: call CORINFO_HELP_RNGCHKFAIL int3 ;; bbWeight=0 PerfScore 0.00 ; Total bytes of code 221, prolog size 7, PerfScore 142.43, instruction count 71, allocated bytes for code 233 (MethodHash=02534614) for method System.Collections.Generic.GenericEqualityComparer`1[Double][System.Double]:IndexOf(System.Double[],double,int,int):int:this ; ============================================================ Using jit(D:\git\runtime\artifacts\tests\coreclr\windows.x64.Checked\tests\Core_Root\clrjit.dll) with input (D:\git\runtime\artifacts\spmi\mch\af37688b-d4e5-4a41-a7ee-701728a470aa.windows.x64\libraries.pmi.windows.x64.checked.mch) indexCount=1 (19387) Jit startup took 6.405800ms Loaded 1 Jitted 1 FailedCompile 0 Excluded 0 Total time: 28.366700ms
Changed text
Open file
; Assembly listing for method System.Collections.Generic.GenericEqualityComparer`1[Double][System.Double]:IndexOf(System.Double[],double,int,int):int:this ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; fully interruptible ; discarded IBC profile data due to mismatch in ILSize ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd ; V01 arg1 [V01,T02] ( 7, 16 ) ref -> rdx class-hnd ; V02 arg2 [V02,T11] ( 8, 14 ) double -> mm2 ; V03 arg3 [V03,T08] ( 5, 5 ) int -> r9 ; V04 arg4 [V04,T09] ( 1, 1 ) int -> [rsp+0x50] ; V05 loc0 [V05,T05] ( 6, 12 ) int -> rcx ;* V06 loc1 [V06 ] ( 0, 0 ) int -> zero-ref ; V07 loc2 [V07,T00] ( 13, 42.50) int -> rax ; V08 OutArgs [V08 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace" ;* V09 tmp1 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" ; V10 tmp2 [V10,T03] ( 4, 8 ) bool -> registers "Inline return value spill temp" ; V11 tmp3 [V11,T01] ( 6, 40 ) byref -> r8 "Inlining Arg" ; V12 tmp4 [V12,T10] ( 6, 24 ) double -> mm0 "Inlining Arg" ; V13 cse0 [V13,T04] ( 5, 14 ) int -> r9 "CSE - aggressive" ; V14 cse1 [V14,T06] ( 2, 8 ) long -> r8 "CSE - aggressive" ; V15 cse2 [V15,T07] ( 2, 8 ) long -> r9 "CSE - aggressive" ; ; Lcl frame size = 40 G_M47595_IG01: sub rsp, 40 vzeroupper ;; bbWeight=1 PerfScore 1.25 G_M47595_IG02: mov ecx, r9d add ecx, dword ptr [rsp+50H] mov eax, r9d cmp r9d, ecx jge G_M47595_IG13 test rdx, rdx je SHORT G_M47595_IG09 ;; NOP compensation instructions of 4 bytes. ;; bbWeight=1 PerfScore 4.00 G_M47595_IG03: mov r8d, eax not r8d shr r8d, 31 mov r9d, ecx not r9d shr r9d, 31 and r8d, r9d mov r9d, dword ptr [rdx+8] cmp r9d, ecx setge r10b movzx r10, r10b test r8d, r10d je SHORT G_M47595_IG09 align [2 bytes] ;; bbWeight=1 PerfScore 10.25 G_M47595_IG04: movsxd r8, eax cmp eax, r9d jae G_M47595_IG16 lea r8, bword ptr [rdx+8*r8+16] vucomisd xmm2, qword ptr [r8] jp SHORT G_M47595_IG05 je SHORT G_M47595_IG15 ;; bbWeight=4 PerfScore 26.00 G_M47595_IG05: vucomisd xmm2, xmm2 jp SHORT G_M47595_IG06 je SHORT G_M47595_IG07 ;; bbWeight=1 PerfScore 3.00 G_M47595_IG06: vmovsd xmm0, qword ptr [r8] vucomisd xmm0, xmm0 setp r8b movzx r8, r8b test r8d, r8d jne SHORT G_M47595_IG15 ;; bbWeight=2 PerfScore 11.00 G_M47595_IG07: inc eax cmp eax, ecx jl SHORT G_M47595_IG04 ;; bbWeight=4 PerfScore 6.00 G_M47595_IG08: jmp SHORT G_M47595_IG13 ;; bbWeight=1 PerfScore 2.00 G_M47595_IG09: mov r9d, dword ptr [rdx+8] cmp eax, r9d jae SHORT G_M47595_IG16 movsxd r9, eax lea r8, bword ptr [rdx+8*r9+16] vucomisd xmm2, qword ptr [r8] jp SHORT G_M47595_IG10 je SHORT G_M47595_IG15 ;; bbWeight=4 PerfScore 34.00 G_M47595_IG10: vucomisd xmm2, xmm2 jp SHORT G_M47595_IG11 je SHORT G_M47595_IG12 ;; bbWeight=1 PerfScore 3.00 G_M47595_IG11: vmovsd xmm0, qword ptr [r8] vucomisd xmm0, xmm0 setp r9b movzx r9, r9b test r9d, r9d jne SHORT G_M47595_IG15 ;; bbWeight=2 PerfScore 11.00 G_M47595_IG12: inc eax cmp eax, ecx jl SHORT G_M47595_IG09 ;; bbWeight=4 PerfScore 6.00 G_M47595_IG13: mov eax, -1 ;; bbWeight=0.50 PerfScore 0.12 G_M47595_IG14: add rsp, 40 ret ;; bbWeight=0.50 PerfScore 0.62 G_M47595_IG15: add rsp, 40 ret ;; bbWeight=0.50 PerfScore 0.62 G_M47595_IG16: call CORINFO_HELP_RNGCHKFAIL int3 ;; bbWeight=0 PerfScore 0.00 ; Total bytes of code 227, prolog size 7, PerfScore 141.98, instruction count 70, allocated bytes for code 231 (MethodHash=02534614) for method System.Collections.Generic.GenericEqualityComparer`1[Double][System.Double]:IndexOf(System.Double[],double,int,int):int:this ; ============================================================ Using jit(D:\git\runtime\artifacts\tests\coreclr\windows.x64.Checked\tests\Core_Root\clrjit.dll) with input (D:\git\runtime\artifacts\spmi\mch\af37688b-d4e5-4a41-a7ee-701728a470aa.windows.x64\libraries.pmi.windows.x64.checked.mch) indexCount=1 (19387) Jit startup took 25.268000ms Loaded 1 Jitted 1 FailedCompile 0 Excluded 0 Total time: 49.322200ms
Find difference