Diff
checker
Texte
Texte
Images
Documents
Excel
Dossiers
Legal
Enterprise
Application de bureau
Prix
Se connecter
Télécharger Diffchecker Desktop
Comparer le texte
Trouver la différence entre deux fichiers texte
Outils
Historique
Éditeur live
Cacher identiques
Sans retour à la ligne
Vue
Divisé
Unifié
Niveau de précision
Intelligent
Mot
Caractère
Coloration syntaxique
Choisir la syntaxe
Ignorer
Transformer le texte
Aller au premier écart
Modifier l'entrée
Diffchecker Desktop
La façon la plus sécurisée d'utiliser Diffchecker. Obtenez l'application Diffchecker Desktop : vos diffs ne quittent jamais votre ordinateur !
Obtenir Desktop
Untitled Diff
Créé
il y a 5 ans
Le diff n'expire jamais
Effacer
Exporter
Partager
Expliquer
99 suppressions
Lignes
Total
Supprimé
Caractères
Total
Supprimé
Pour continuer à utiliser cette fonctionnalité, passez à
Diff
checker
Pro
Voir les prix
143 lignes
Copier tout
55 ajouts
Lignes
Total
Ajouté
Caractères
Total
Ajouté
Pour continuer à utiliser cette fonctionnalité, passez à
Diff
checker
Pro
Voir les prix
100 lignes
Copier tout
; Assembly listing for method DiagnosticsPass:CheckArguments(ImmutableArray`1,ImmutableArray`1,Symbol):this
; Assembly listing for method DiagnosticsPass:CheckArguments(ImmutableArray`1,ImmutableArray`1,Symbol):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
; Final local variable assignments
; Final local variable assignments
;
;
Copier
Copié
Copier
Copié
; V00 this [V00,T0
7
] (
4, 6
) ref -> rdi this class-hnd
; V00 this [V00,T0
4
] (
3, 10
) ref -> rdi this class-hnd
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
Copier
Copié
Copier
Copié
; V03 arg3 [V03,T0
8
] (
4, 6
) ref -> rbx class-hnd
; V03 arg3 [V03,T0
5
] (
3, 10
) ref -> rbx class-hnd
; V04 loc0 [V04,T00] (
12, 40
.50) int -> r14
; V04 loc0 [V04,T00] (
7, 58
.50) int -> r14
; V05 OutArgs [V05 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
; V05 OutArgs [V05 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
Copier
Copié
Copier
Copié
; V06 tmp1 [V06,T0
2
] (
6, 1
8 ) ref -> rdx "CASTCLASS eval op1"
; V06 tmp1 [V06,T0
6
] (
3,
8 ) ref -> rdx "CASTCLASS eval op1"
; V07 tmp2 [V07,T0
5
] (
6, 10
) long -> rcx "fgInsertCommaFormTemp is creating a new local variable"
; V07 tmp2 [V07,T0
7
] (
3, 8
) long -> rcx "fgInsertCommaFormTemp is creating a new local variable"
; V08 tmp3 [V08,T01] (
10, 30
) ref ->
r8
class-hnd "spilling QMark2"
; V08 tmp3 [V08,T01] (
5, 28
) ref ->
rax
class-hnd "spilling QMark2"
; V09 tmp4 [V09,T0
4
] (
4, 16
) ref -> r
a
x class-hnd "Inlining Arg"
; V09 tmp4 [V09,T0
8
] (
2, 8
) ref -> r
c
x class-hnd "Inlining Arg"
; V10 tmp5 [V10,T03] (
6, 14.50
) ref -> rsi V01.array(offs=0x00) P-INDEP "field V01.array (fldOffset=0x0)"
; V10 tmp5 [V10,T03] (
4, 10
) ref -> rsi V01.array(offs=0x00) P-INDEP "field V01.array (fldOffset=0x0)"
; V11 tmp6 [V11,T
09
] (
4
,
5
.50) ref -> rbp V02.array(offs=0x00) P-INDEP "field V02.array (fldOffset=0x0)"
; V11 tmp6 [V11,T
10
] (
3
,
3
.50) ref -> rbp V02.array(offs=0x00) P-INDEP "field V02.array (fldOffset=0x0)"
; V12 cse0 [V12,T
10
] ( 3, 6 ) ref -> rdx "CSE - aggressive"
; V12 cse0 [V12,T
09
] ( 3, 6 ) ref -> rdx "CSE - aggressive"
; V13 cse1 [V13,
T11
] ( 3,
6
)
ref -> rdx "CSE - aggressive"
; V13 cse1 [V13,
T02
] ( 3,
17
)
int -> r15 "CSE - aggressive"
; V14 cse2 [V14,T06] ( 5, 9.50)
int -> r15 "CSE - aggressive"
;
;
; Lcl frame size = 40
; Lcl frame size = 40
G_M20472_IG01:
G_M20472_IG01:
push r15
push r15
push r14
push r14
push rdi
push rdi
push rsi
push rsi
push rbp
push rbp
push rbx
push rbx
sub rsp, 40
sub rsp, 40
mov rdi, rcx
mov rdi, rcx
mov rsi, rdx
mov rsi, rdx
mov rbp, r8
mov rbp, r8
mov rbx, r9
mov rbx, r9
;; bbWeight=1 PerfScore 7.25
;; bbWeight=1 PerfScore 7.25
G_M20472_IG02:
G_M20472_IG02:
test rsi, rsi
test rsi, rsi
Copier
Copié
Copier
Copié
je
G_M20472_
IG17
je
SHORT
G_M20472_
IG08
;; bbWeight=1 PerfScore 1.25
;; bbWeight=1 PerfScore 1.25
G_M20472_IG03:
G_M20472_IG03:
xor r14d, r14d
xor r14d, r14d
mov r15d, dword ptr [rbp+8]
mov r15d, dword ptr [rbp+8]
test r15d, r15d
test r15d, r15d
Copier
Copié
Copier
Copié
jle
G_M20472_IG17
jle
SHORT G_M20472_
IG08
cmp dword ptr [rsi+8], r15d
;; bbWeight=0.50 PerfScore
1.75
jl
SHORT G_M20472_
IG11
;; bbWeight=0.50 PerfScore
3.25
G_M20472_IG04:
G_M20472_IG04:
Copier
Copié
Copier
Copié
cmp r14d, dword ptr [rsi+8]
jae SHORT G_M20472_IG10
movsxd rcx, r14d
movsxd rcx, r14d
cmp byte ptr [rsi+rcx+16], 0
cmp byte ptr [rsi+rcx+16], 0
Copier
Copié
Copier
Copié
je SHORT G_M20472_IG0
9
je SHORT G_M20472_IG0
7
;; bbWeight=4 PerfScore
13
.00
;; bbWeight=4 PerfScore
25
.00
G_M20472_IG05:
G_M20472_IG05:
movsxd rcx, r14d
movsxd rcx, r14d
mov rdx, gword ptr [rbp+8*rcx+16]
mov rdx, gword ptr [rbp+8*rcx+16]
Copier
Copié
Copier
Copié
mov rcx, rdx
cmp byte ptr [rcx+16], 108
jne SHORT G_M20472_IG07
mov rax, rdx
mov rax, rdx
Copier
Copié
Copier
Copié
cmp
byte
ptr [rax
+16
],
108
test rax, rax
je SHORT G_M20472_IG06
mov rcx, 0xD1FFAB1E
cmp
qword
ptr [rax
],
rcx
jne SHORT G_M20472_IG09
jne SHORT G_M20472_IG09
Copier
Copié
Copier
Copié
mov r8, rdx
;; bbWeight=2 PerfScore
20.50
test r8, r8
je SHORT G_M20472_IG08
;; bbWeight=2 PerfScore
14.00
G_M20472_IG06:
G_M20472_IG06:
Copier
Copié
Copier
Copié
mov rcx, 0xD1FFAB1E
cmp qword ptr [r8], rcx
je SHORT G_M20472_IG08
;; bbWeight=1 PerfScore 3.25
G_M20472_IG07:
call CORINFO_HELP_CHKCASTCLASS_SPECIAL
mov r8, rax
;; bbWeight=0.50 PerfScore 0.63
G_M20472_IG08:
mov rcx, rdi
mov rcx, rdi
Copier
Copié
Copier
Copié
mov rdx,
r8
mov rdx,
rax
mov r8, rbx
mov r8, rbx
call DiagnosticsPass:CheckFieldAddress(BoundFieldAccess,Symbol):this
call DiagnosticsPass:CheckFieldAddress(BoundFieldAccess,Symbol):this
Copier
Copié
Copier
Copié
;; bbWeight=
2
PerfScore
3.50
;; bbWeight=
8
PerfScore
14.00
G_M20472_IG0
9
:
G_M20472_IG0
7
:
inc r14d
inc r14d
cmp r15d, r14d
cmp r15d, r14d
jg SHORT G_M20472_IG04
jg SHORT G_M20472_IG04
Copier
Copié
Copier
Copié
;; bbWeight=
4 PerfScore 6.00
;; bbWeight=
16 PerfScore 24.00
G_M20472_IG10:
G_M20472_
IG08:
jmp SHORT G_M20472_IG17
;; bbWeight=0.50 PerfScore 1.00
G_M20472_IG11:
cmp r14d, dword ptr [rsi+8]
jae SHORT G_M20472_IG18
movsxd rcx, r14d
cmp byte ptr [rsi+rcx+16], 0
je SHORT G_M20472_IG16
;; bbWeight=4 PerfScore 25.00
G_M20472_IG12:
movsxd rcx, r14d
mov rdx, gword ptr [rbp+8*rcx+16]
mov rax, rdx
cmp byte ptr [rax+16], 108
jne SHORT G_M20472_IG16
mov r8, rdx
test r8, r8
je SHORT G_M20472_IG15
;; bbWeight=2 PerfScore 14.00
G_M20472_
IG13:
mov rcx, 0xD1FFAB1E
cmp qword ptr [r8], rcx
je SHORT G_M20472_IG15
;; bbWeight=1 PerfScore 3.25
G_M20472_IG14:
call CORINFO_HELP_CHKCASTCLASS_SPECIAL
mov r8, rax
;; bbWeight=0.50 PerfScore 0.63
G_M20472_IG15:
mov rcx, rdi
mov rdx, r8
mov r8, rbx
call DiagnosticsPass:CheckFieldAddress(BoundFieldAccess,Symbol):this
;; bbWeight=2 PerfScore 3.50
G_M20472_IG16:
inc r14d
cmp r15d, r14d
jg SHORT G_M20472_IG11
;; bbWeight=4 PerfScore 6.00
G_M20472_IG17:
add rsp, 40
add rsp, 40
pop rbx
pop rbx
pop rbp
pop rbp
pop rsi
pop rsi
pop rdi
pop rdi
pop r14
pop r14
pop r15
pop r15
ret
ret
;; bbWeight=1 PerfScore 4.25
;; bbWeight=1 PerfScore 4.25
Copier
Copié
Copier
Copié
G_M20472_IG1
8
:
G_M20472_IG09:
call CORINFO_HELP_CHKCASTCLASS_SPECIAL
jmp SHORT G_M20472_IG06
;; bbWeight=0 PerfScore 0.00
G_M20472_IG1
0
:
call CORINFO_HELP_RNGCHKFAIL
call CORINFO_HELP_RNGCHKFAIL
int3
int3
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
Copier
Copié
Copier
Copié
; Total bytes of code
242
, prolog size 24, PerfScore
133.95
, instruction count
78
, allocated bytes for code
242
(MethodHash=2056b007) for method DiagnosticsPass:CheckArguments(ImmutableArray`1,ImmutableArray`1,Symbol):this
; Total bytes of code
145
, prolog size 24, PerfScore
112.50
, instruction count
52
, allocated bytes for code
145
(MethodHash=2056b007) for method DiagnosticsPass:CheckArguments(ImmutableArray`1,ImmutableArray`1,Symbol):this
; ============================================================
; ============================================================
Différences enregistrées
Texte d'origine
Ouvrir un fichier
; Assembly listing for method DiagnosticsPass:CheckArguments(ImmutableArray`1,ImmutableArray`1,Symbol):this ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; fully interruptible ; Final local variable assignments ; ; V00 this [V00,T07] ( 4, 6 ) ref -> rdi this class-hnd ;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op ;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op ; V03 arg3 [V03,T08] ( 4, 6 ) ref -> rbx class-hnd ; V04 loc0 [V04,T00] ( 12, 40.50) int -> r14 ; V05 OutArgs [V05 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace" ; V06 tmp1 [V06,T02] ( 6, 18 ) ref -> rdx "CASTCLASS eval op1" ; V07 tmp2 [V07,T05] ( 6, 10 ) long -> rcx "fgInsertCommaFormTemp is creating a new local variable" ; V08 tmp3 [V08,T01] ( 10, 30 ) ref -> r8 class-hnd "spilling QMark2" ; V09 tmp4 [V09,T04] ( 4, 16 ) ref -> rax class-hnd "Inlining Arg" ; V10 tmp5 [V10,T03] ( 6, 14.50) ref -> rsi V01.array(offs=0x00) P-INDEP "field V01.array (fldOffset=0x0)" ; V11 tmp6 [V11,T09] ( 4, 5.50) ref -> rbp V02.array(offs=0x00) P-INDEP "field V02.array (fldOffset=0x0)" ; V12 cse0 [V12,T10] ( 3, 6 ) ref -> rdx "CSE - aggressive" ; V13 cse1 [V13,T11] ( 3, 6 ) ref -> rdx "CSE - aggressive" ; V14 cse2 [V14,T06] ( 5, 9.50) int -> r15 "CSE - aggressive" ; ; Lcl frame size = 40 G_M20472_IG01: push r15 push r14 push rdi push rsi push rbp push rbx sub rsp, 40 mov rdi, rcx mov rsi, rdx mov rbp, r8 mov rbx, r9 ;; bbWeight=1 PerfScore 7.25 G_M20472_IG02: test rsi, rsi je G_M20472_IG17 ;; bbWeight=1 PerfScore 1.25 G_M20472_IG03: xor r14d, r14d mov r15d, dword ptr [rbp+8] test r15d, r15d jle G_M20472_IG17 cmp dword ptr [rsi+8], r15d jl SHORT G_M20472_IG11 ;; bbWeight=0.50 PerfScore 3.25 G_M20472_IG04: movsxd rcx, r14d cmp byte ptr [rsi+rcx+16], 0 je SHORT G_M20472_IG09 ;; bbWeight=4 PerfScore 13.00 G_M20472_IG05: movsxd rcx, r14d mov rdx, gword ptr [rbp+8*rcx+16] mov rax, rdx cmp byte ptr [rax+16], 108 jne SHORT G_M20472_IG09 mov r8, rdx test r8, r8 je SHORT G_M20472_IG08 ;; bbWeight=2 PerfScore 14.00 G_M20472_IG06: mov rcx, 0xD1FFAB1E cmp qword ptr [r8], rcx je SHORT G_M20472_IG08 ;; bbWeight=1 PerfScore 3.25 G_M20472_IG07: call CORINFO_HELP_CHKCASTCLASS_SPECIAL mov r8, rax ;; bbWeight=0.50 PerfScore 0.63 G_M20472_IG08: mov rcx, rdi mov rdx, r8 mov r8, rbx call DiagnosticsPass:CheckFieldAddress(BoundFieldAccess,Symbol):this ;; bbWeight=2 PerfScore 3.50 G_M20472_IG09: inc r14d cmp r15d, r14d jg SHORT G_M20472_IG04 ;; bbWeight=4 PerfScore 6.00 G_M20472_IG10: jmp SHORT G_M20472_IG17 ;; bbWeight=0.50 PerfScore 1.00 G_M20472_IG11: cmp r14d, dword ptr [rsi+8] jae SHORT G_M20472_IG18 movsxd rcx, r14d cmp byte ptr [rsi+rcx+16], 0 je SHORT G_M20472_IG16 ;; bbWeight=4 PerfScore 25.00 G_M20472_IG12: movsxd rcx, r14d mov rdx, gword ptr [rbp+8*rcx+16] mov rax, rdx cmp byte ptr [rax+16], 108 jne SHORT G_M20472_IG16 mov r8, rdx test r8, r8 je SHORT G_M20472_IG15 ;; bbWeight=2 PerfScore 14.00 G_M20472_IG13: mov rcx, 0xD1FFAB1E cmp qword ptr [r8], rcx je SHORT G_M20472_IG15 ;; bbWeight=1 PerfScore 3.25 G_M20472_IG14: call CORINFO_HELP_CHKCASTCLASS_SPECIAL mov r8, rax ;; bbWeight=0.50 PerfScore 0.63 G_M20472_IG15: mov rcx, rdi mov rdx, r8 mov r8, rbx call DiagnosticsPass:CheckFieldAddress(BoundFieldAccess,Symbol):this ;; bbWeight=2 PerfScore 3.50 G_M20472_IG16: inc r14d cmp r15d, r14d jg SHORT G_M20472_IG11 ;; bbWeight=4 PerfScore 6.00 G_M20472_IG17: add rsp, 40 pop rbx pop rbp pop rsi pop rdi pop r14 pop r15 ret ;; bbWeight=1 PerfScore 4.25 G_M20472_IG18: call CORINFO_HELP_RNGCHKFAIL int3 ;; bbWeight=0 PerfScore 0.00 ; Total bytes of code 242, prolog size 24, PerfScore 133.95, instruction count 78, allocated bytes for code 242 (MethodHash=2056b007) for method DiagnosticsPass:CheckArguments(ImmutableArray`1,ImmutableArray`1,Symbol):this ; ============================================================
Texte modifié
Ouvrir un fichier
; Assembly listing for method DiagnosticsPass:CheckArguments(ImmutableArray`1,ImmutableArray`1,Symbol):this ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; fully interruptible ; Final local variable assignments ; ; V00 this [V00,T04] ( 3, 10 ) ref -> rdi this class-hnd ;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op ;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op ; V03 arg3 [V03,T05] ( 3, 10 ) ref -> rbx class-hnd ; V04 loc0 [V04,T00] ( 7, 58.50) int -> r14 ; V05 OutArgs [V05 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace" ; V06 tmp1 [V06,T06] ( 3, 8 ) ref -> rdx "CASTCLASS eval op1" ; V07 tmp2 [V07,T07] ( 3, 8 ) long -> rcx "fgInsertCommaFormTemp is creating a new local variable" ; V08 tmp3 [V08,T01] ( 5, 28 ) ref -> rax class-hnd "spilling QMark2" ; V09 tmp4 [V09,T08] ( 2, 8 ) ref -> rcx class-hnd "Inlining Arg" ; V10 tmp5 [V10,T03] ( 4, 10 ) ref -> rsi V01.array(offs=0x00) P-INDEP "field V01.array (fldOffset=0x0)" ; V11 tmp6 [V11,T10] ( 3, 3.50) ref -> rbp V02.array(offs=0x00) P-INDEP "field V02.array (fldOffset=0x0)" ; V12 cse0 [V12,T09] ( 3, 6 ) ref -> rdx "CSE - aggressive" ; V13 cse1 [V13,T02] ( 3, 17 ) int -> r15 "CSE - aggressive" ; ; Lcl frame size = 40 G_M20472_IG01: push r15 push r14 push rdi push rsi push rbp push rbx sub rsp, 40 mov rdi, rcx mov rsi, rdx mov rbp, r8 mov rbx, r9 ;; bbWeight=1 PerfScore 7.25 G_M20472_IG02: test rsi, rsi je SHORT G_M20472_IG08 ;; bbWeight=1 PerfScore 1.25 G_M20472_IG03: xor r14d, r14d mov r15d, dword ptr [rbp+8] test r15d, r15d jle SHORT G_M20472_IG08 ;; bbWeight=0.50 PerfScore 1.75 G_M20472_IG04: cmp r14d, dword ptr [rsi+8] jae SHORT G_M20472_IG10 movsxd rcx, r14d cmp byte ptr [rsi+rcx+16], 0 je SHORT G_M20472_IG07 ;; bbWeight=4 PerfScore 25.00 G_M20472_IG05: movsxd rcx, r14d mov rdx, gword ptr [rbp+8*rcx+16] mov rcx, rdx cmp byte ptr [rcx+16], 108 jne SHORT G_M20472_IG07 mov rax, rdx test rax, rax je SHORT G_M20472_IG06 mov rcx, 0xD1FFAB1E cmp qword ptr [rax], rcx jne SHORT G_M20472_IG09 ;; bbWeight=2 PerfScore 20.50 G_M20472_IG06: mov rcx, rdi mov rdx, rax mov r8, rbx call DiagnosticsPass:CheckFieldAddress(BoundFieldAccess,Symbol):this ;; bbWeight=8 PerfScore 14.00 G_M20472_IG07: inc r14d cmp r15d, r14d jg SHORT G_M20472_IG04 ;; bbWeight=16 PerfScore 24.00 G_M20472_IG08: add rsp, 40 pop rbx pop rbp pop rsi pop rdi pop r14 pop r15 ret ;; bbWeight=1 PerfScore 4.25 G_M20472_IG09: call CORINFO_HELP_CHKCASTCLASS_SPECIAL jmp SHORT G_M20472_IG06 ;; bbWeight=0 PerfScore 0.00 G_M20472_IG10: call CORINFO_HELP_RNGCHKFAIL int3 ;; bbWeight=0 PerfScore 0.00 ; Total bytes of code 145, prolog size 24, PerfScore 112.50, instruction count 52, allocated bytes for code 145 (MethodHash=2056b007) for method DiagnosticsPass:CheckArguments(ImmutableArray`1,ImmutableArray`1,Symbol):this ; ============================================================
Trouver la différence