Diff
checker
Testo
Testo
Immagini
Documenti
Excel
Cartelle
Legal
Enterprise
Applicazione per desktop
Prezzi
Accedi
Scarica Diffchecker Desktop
Confronta il testo
Trova la differenza tra due file di testo
Strumenti
Cronologia
Visualizzazione
Layout
Diviso
Unificato
Editor live
Nascondi spazi bianchi
Comprimi invariate
Senza a capo
Livello di dettaglio
Intelligente
Sintassi
Nessuno
Modifica aspetto
Elaborazione
Ignora
Trasforma testo
Vai alla prima modifica
Modifica input
Diffchecker Desktop
Il modo più sicuro per usare Diffchecker. Ottieni l'app Diffchecker Desktop: i tuoi diff non lasciano mai il tuo computer!
Ottieni Desktop
GenericComparer-double
Creato
6 anni fa
Il diff non scade mai
Eliminare
Esporta
Condividere
Spiegare
10 rimozioni
Linee
Totale
Rimosso
Caratteri
Totale
Rimosso
Per continuare a utilizzare questa funzione, aggiorna a
Diff
checker
Pro
Visualizza prezzi
140 linee
Copia tutti
9 aggiunte
Linee
Totale
Aggiunto
Caratteri
Totale
Aggiunto
Per continuare a utilizzare questa funzione, aggiorna a
Diff
checker
Pro
Visualizza prezzi
140 linee
Copia tutti
; 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
Copia
Copiato
Copia
Copiato
;; 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
Copia
Copiato
Copia
Copiato
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
Copia
Copiato
Copia
Copiato
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
Diff salvati
Testo originale
Apri 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
Testo modificato
Apri 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
Trovare la differenza