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
Affichage
Vue
Divisé
Unifié
Éditeur live
Masquer les espaces
Cacher identiques
Sans retour à la ligne
Niveau de précision
Intelligent
Syntaxe
Aucun
Modifier l’apparence
Traitement
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 4 ans
Le diff n'expire jamais
Effacer
Exporter
Partager
Expliquer
89 suppressions
Lignes
Total
Supprimé
Caractères
Total
Supprimé
Pour continuer à utiliser cette fonctionnalité, passez à
Diff
checker
Pro
Voir les prix
79 lignes
Copier tout
78 ajouts
Lignes
Total
Ajouté
Caractères
Total
Ajouté
Pour continuer à utiliser cette fonctionnalité, passez à
Diff
checker
Pro
Voir les prix
60 lignes
Copier tout
; 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
Copier
Copié
Copier
Copié
; 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"
Copier
Copié
Copier
Copié
; 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"
;
;
Copier
Copié
Copier
Copié
; Lcl frame size =
128
; Lcl frame size =
136
G_M38085_IG01:
G_M38085_IG01:
Copier
Copié
Copier
Copié
push rsi
sub rsp,
136
sub rsp,
128
vzeroupper
vzeroupper
Copier
Copié
Copier
Copié
xor eax, eax
mov qword ptr [rsp+28H], rax
vxorps xmm4, xmm4
vxorps xmm4, xmm4
Copier
Copié
Copier
Copié
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:
Copier
Copié
Copier
Copié
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:
Copier
Copié
Copier
Copié
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:
Copier
Copié
Copier
Copié
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
Copier
Copié
Copier
Copié
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
Copier
Copié
Copier
Copié
;;
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
Copier
Copié
Copier
Copié
; 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
; ============================================================
; ============================================================
Différences enregistrées
Texte d'origine
Ouvrir un fichier
; 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 ; ============================================================
Texte modifié
Ouvrir un fichier
; 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 ; ============================================================
Trouver la différence