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
Masquer les espaces
Cacher identiques
Sans retour à la ligne
Vue
Divisé
Unifié
Niveau de précision
Intelligent
Mot
Caractère
Styles de texte
Modifier l’apparence
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
TryParseUInt16D
Créé
il y a 5 ans
Le diff n'expire jamais
Effacer
Exporter
Partager
Expliquer
15 suppressions
Lignes
Total
Supprimé
Caractères
Total
Supprimé
Pour continuer à utiliser cette fonctionnalité, passez à
Diff
checker
Pro
Voir les prix
192 lignes
Copier tout
17 ajouts
Lignes
Total
Ajouté
Caractères
Total
Ajouté
Pour continuer à utiliser cette fonctionnalité, passez à
Diff
checker
Pro
Voir les prix
193 lignes
Copier tout
; Assembly listing for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[Byte],byref,byref,ushort):bool
; Assembly listing for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[Byte],byref,byref,ushort):bool
; 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
;
;
; V00 arg0 [V00,T00] ( 6, 8 ) byref -> rcx
; V00 arg0 [V00,T00] ( 6, 8 ) byref -> rcx
; V01 arg1 [V01,T01] ( 6, 4 ) byref -> rdx
; V01 arg1 [V01,T01] ( 6, 4 ) byref -> rdx
; V02 arg2 [V02,T02] ( 6, 4 ) byref -> r8
; V02 arg2 [V02,T02] ( 6, 4 ) byref -> r8
; V03 arg3 [V03,T03] ( 4, 3.50) ushort -> r9
; V03 arg3 [V03,T03] ( 4, 3.50) ushort -> r9
; V04 loc0 [V04,T04] ( 6, 3 ) int -> rax
; V04 loc0 [V04,T04] ( 6, 3 ) int -> rax
;# V05 OutArgs [V05 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace"
;# V05 OutArgs [V05 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) byref -> zero-ref V08._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)"
;* V06 tmp1 [V06 ] ( 0, 0 ) byref -> zero-ref V08._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)"
;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref V08._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)"
;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref V08._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)"
;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref"
;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref"
;
;
; Lcl frame size = 0
; Lcl frame size = 0
G_M1013_IG01: ;; offset=0000H
G_M1013_IG01: ;; offset=0000H
;; bbWeight=1 PerfScore 0.00
;; bbWeight=1 PerfScore 0.00
G_M1013_IG02: ;; offset=0000H
G_M1013_IG02: ;; offset=0000H
410FB7C1 movzx rax, r9w
410FB7C1 movzx rax, r9w
85C0 test eax, eax
85C0 test eax, eax
7505 jne SHORT G_M1013_IG04
7505 jne SHORT G_M1013_IG04
;; bbWeight=1 PerfScore 1.50
;; bbWeight=1 PerfScore 1.50
G_M1013_IG03: ;; offset=0008H
G_M1013_IG03: ;; offset=0008H
E9CBFAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool
E9CBFAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool
;; bbWeight=0.50 PerfScore 1.00
;; bbWeight=0.50 PerfScore 1.00
G_M1013_IG04: ;; offset=000DH
G_M1013_IG04: ;; offset=000DH
410FB7C1 movzx rax, r9w
410FB7C1 movzx rax, r9w
83C820 or eax, 32
83C820 or eax, 32
83F867 cmp eax, 103
83F867 cmp eax, 103
7F0C jg SHORT G_M1013_IG05
7F0C jg SHORT G_M1013_IG05
83F864 cmp eax, 100
83F864 cmp eax, 100
74EA je SHORT G_M1013_IG03
74EA je SHORT G_M1013_IG03
83F867 cmp eax, 103
83F867 cmp eax, 103
74E5 je SHORT G_M1013_IG03
74E5 je SHORT G_M1013_IG03
EB16 jmp SHORT G_M1013_IG08
EB16 jmp SHORT G_M1013_IG08
;; bbWeight=0.50 PerfScore 3.12
;; bbWeight=0.50 PerfScore 3.12
G_M1013_IG05: ;; offset=0025H
G_M1013_IG05: ;; offset=0025H
83F86E cmp eax, 110
83F86E cmp eax, 110
7407 je SHORT G_M1013_IG06
7407 je SHORT G_M1013_IG06
83F878 cmp eax, 120
83F878 cmp eax, 120
7407 je SHORT G_M1013_IG07
7407 je SHORT G_M1013_IG07
EB0A jmp SHORT G_M1013_IG08
EB0A jmp SHORT G_M1013_IG08
;; bbWeight=0.50 PerfScore 2.25
;; bbWeight=0.50 PerfScore 2.25
G_M1013_IG06: ;; offset=0031H
G_M1013_IG06: ;; offset=0031H
E9C2FAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16N(System.ReadOnlySpan`1[Byte],byref,byref):bool
E9C2FAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16N(System.ReadOnlySpan`1[Byte],byref,byref):bool
;; bbWeight=0.50 PerfScore 1.00
;; bbWeight=0.50 PerfScore 1.00
G_M1013_IG07: ;; offset=0036H
G_M1013_IG07: ;; offset=0036H
E9DDFAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16X(System.ReadOnlySpan`1[Byte],byref,byref):bool
E9DDFAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16X(System.ReadOnlySpan`1[Byte],byref,byref):bool
;; bbWeight=0.50 PerfScore 1.00
;; bbWeight=0.50 PerfScore 1.00
G_M1013_IG08: ;; offset=003BH
G_M1013_IG08: ;; offset=003BH
E9F0EFFFFF jmp System.Buffers.Text.ParserHelpers:TryParseThrowFormatException(System.ReadOnlySpan`1[Byte],byref,byref):bool
E9F0EFFFFF jmp System.Buffers.Text.ParserHelpers:TryParseThrowFormatException(System.ReadOnlySpan`1[Byte],byref,byref):bool
;; bbWeight=0.50 PerfScore 1.00
;; bbWeight=0.50 PerfScore 1.00
; Total bytes of code 64, prolog size 0, PerfScore 17.28, instruction count 21, allocated bytes for code 64 (MethodHash=8045fc0a) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[Byte],byref,byref,ushort):bool
; Total bytes of code 64, prolog size 0, PerfScore 17.28, instruction count 21, allocated bytes for code 64 (MethodHash=8045fc0a) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[Byte],byref,byref,ushort):bool
; ============================================================
; ============================================================
; Assembly listing for method System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool
; Assembly listing for method System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool
; 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
;
;
; V00 arg0 [V00,T02] ( 4, 8 ) byref -> rcx ld-addr-op
; V00 arg0 [V00,T02] ( 4, 8 ) byref -> rcx ld-addr-op
; V01 arg1 [V01,T06] ( 4, 3 ) byref -> rdx
; V01 arg1 [V01,T06] ( 4, 3 ) byref -> rdx
; V02 arg2 [V02,T07] ( 4, 3 ) byref -> r8
; V02 arg2 [V02,T07] ( 4, 3 ) byref -> r8
; V03 loc0 [V03,T00] ( 26, 27 ) int -> r9
; V03 loc0 [V03,T00] ( 26, 27 ) int -> r9
; V04 loc1 [V04,T01] ( 19, 16.50) int -> r10
; V04 loc1 [V04,T01] ( 19, 16.50) int -> r10
; V05 loc2 [V05,T05] ( 12, 6 ) int -> r11
; V05 loc2 [V05,T05] ( 12, 6 ) int -> r11
;# V06 OutArgs [V06 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace"
;# V06 OutArgs [V06 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace"
; V07 tmp1 [V07,T08] ( 2, 2 ) int -> rax "Inlining Arg"
; V07 tmp1 [V07,T08] ( 2, 2 ) int -> rax "Inlining Arg"
; V08 tmp2 [V08,T04] ( 8, 8 ) byref -> rax V10._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)"
; V08 tmp2 [V08,T04] ( 8, 8 ) byref -> rax V10._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)"
; V09 tmp3 [V09,T03] ( 8, 8.50) int -> rcx V10._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)"
; V09 tmp3 [V09,T03] ( 8, 8.50) int -> rcx V10._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)"
;* V10 tmp4 [V10 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref"
;* V10 tmp4 [V10 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref"
;
;
; Lcl frame size = 0
; Lcl frame size = 0
G_M49819_IG01: ;; offset=0000H
G_M49819_IG01: ;; offset=0000H
56 push rsi
56 push rsi
;; bbWeight=1 PerfScore 1.00
;; bbWeight=1 PerfScore 1.00
G_M49819_IG02: ;; offset=0001H
G_M49819_IG02: ;; offset=0001H
488B01 mov rax, bword ptr [rcx]
488B01 mov rax, bword ptr [rcx]
8B4908 mov ecx, dword ptr [rcx+8]
8B4908 mov ecx, dword ptr [rcx+8]
;; bbWeight=1 PerfScore 4.00
;; bbWeight=1 PerfScore 4.00
G_M49819_IG03: ;; offset=0007H
G_M49819_IG03: ;; offset=0007H
85C9 test ecx, ecx
85C9 test ecx, ecx
Copier
Copié
Copier
Copié
0F8E
FC
000
000 jle G_M49819_IG08
0F8E
000
10
000 jle G_M49819_IG08
;; bbWeight=1 PerfScore 1.25
;; bbWeight=1 PerfScore 1.25
G_M49819_IG04: ;; offset=000FH
G_M49819_IG04: ;; offset=000FH
4533C9 xor r9d, r9d
4533C9 xor r9d, r9d
440FB610 movzx r10, byte ptr [rax]
440FB610 movzx r10, byte ptr [rax]
4533DB xor r11d, r11d
4533DB xor r11d, r11d
418D72D0 lea esi, [r10-48]
418D72D0 lea esi, [r10-48]
83FE09 cmp esi, 9
83FE09 cmp esi, 9
Copier
Copié
Copier
Copié
0F87E
5
000000 ja G_M49819_IG08
0F87E
9
000000 ja G_M49819_IG08
4183FA30 cmp r10d, 48
4183FA30 cmp r10d, 48
Copier
Copié
Copier
Copié
752
7
jne SHORT G_M49819_IG07
752
B
jne SHORT G_M49819_IG07
;; bbWeight=0.50 PerfScore 2.
75
0F1F4000 align
G_M49819_IG05: ;; offset=
002CH
;; bbWeight=0.50 PerfScore 2.
88
G_M49819_IG05: ;; offset=
0030H
41FFC1 inc r9d
41FFC1 inc r9d
443BC9 cmp r9d, ecx
443BC9 cmp r9d, ecx
0F83DF000000 jae G_M49819_IG10
0F83DF000000 jae G_M49819_IG10
4D63D1 movsxd r10, r9d
4D63D1 movsxd r10, r9d
460FB61410 movzx r10, byte ptr [rax+r10]
460FB61410 movzx r10, byte ptr [rax+r10]
4183FA30 cmp r10d, 48
4183FA30 cmp r10d, 48
74E6 je SHORT G_M49819_IG05
74E6 je SHORT G_M49819_IG05
;; bbWeight=4 PerfScore 20.00
;; bbWeight=4 PerfScore 20.00
Copier
Copié
Copier
Copié
G_M49819_IG06: ;; offset=004
6
H
G_M49819_IG06: ;; offset=004
A
H
418D72D0 lea esi, [r10-48]
418D72D0 lea esi, [r10-48]
83FE09 cmp esi, 9
83FE09 cmp esi, 9
0F87C4000000 ja G_M49819_IG10
0F87C4000000 ja G_M49819_IG10
;; bbWeight=0.50 PerfScore 0.88
;; bbWeight=0.50 PerfScore 0.88
Copier
Copié
Copier
Copié
G_M49819_IG07: ;; offset=005
3
H
G_M49819_IG07: ;; offset=005
7
H
458D5AD0 lea r11d, [r10-48]
458D5AD0 lea r11d, [r10-48]
41FFC1 inc r9d
41FFC1 inc r9d
443BC9 cmp r9d, ecx
443BC9 cmp r9d, ecx
0F83B4000000 jae G_M49819_IG10
0F83B4000000 jae G_M49819_IG10
4D63D1 movsxd r10, r9d
4D63D1 movsxd r10, r9d
460FB61410 movzx r10, byte ptr [rax+r10]
460FB61410 movzx r10, byte ptr [rax+r10]
418D72D0 lea esi, [r10-48]
418D72D0 lea esi, [r10-48]
83FE09 cmp esi, 9
83FE09 cmp esi, 9
0F879F000000 ja G_M49819_IG10
0F879F000000 ja G_M49819_IG10
41FFC1 inc r9d
41FFC1 inc r9d
478D1C9B lea r11d, [r11+4*r11]
478D1C9B lea r11d, [r11+4*r11]
478D5C5AD0 lea r11d, [r10+2*r11-48]
478D5C5AD0 lea r11d, [r10+2*r11-48]
443BC9 cmp r9d, ecx
443BC9 cmp r9d, ecx
0F838A000000 jae G_M49819_IG10
0F838A000000 jae G_M49819_IG10
4D63D1 movsxd r10, r9d
4D63D1 movsxd r10, r9d
460FB61410 movzx r10, byte ptr [rax+r10]
460FB61410 movzx r10, byte ptr [rax+r10]
418D72D0 lea esi, [r10-48]
418D72D0 lea esi, [r10-48]
83FE09 cmp esi, 9
83FE09 cmp esi, 9
7779 ja SHORT G_M49819_IG10
7779 ja SHORT G_M49819_IG10
41FFC1 inc r9d
41FFC1 inc r9d
478D1C9B lea r11d, [r11+4*r11]
478D1C9B lea r11d, [r11+4*r11]
478D5C5AD0 lea r11d, [r10+2*r11-48]
478D5C5AD0 lea r11d, [r10+2*r11-48]
443BC9 cmp r9d, ecx
443BC9 cmp r9d, ecx
7368 jae SHORT G_M49819_IG10
7368 jae SHORT G_M49819_IG10
4D63D1 movsxd r10, r9d
4D63D1 movsxd r10, r9d
460FB61410 movzx r10, byte ptr [rax+r10]
460FB61410 movzx r10, byte ptr [rax+r10]
418D72D0 lea esi, [r10-48]
418D72D0 lea esi, [r10-48]
83FE09 cmp esi, 9
83FE09 cmp esi, 9
7757 ja SHORT G_M49819_IG10
7757 ja SHORT G_M49819_IG10
41FFC1 inc r9d
41FFC1 inc r9d
478D1C9B lea r11d, [r11+4*r11]
478D1C9B lea r11d, [r11+4*r11]
478D5C5AD0 lea r11d, [r10+2*r11-48]
478D5C5AD0 lea r11d, [r10+2*r11-48]
443BC9 cmp r9d, ecx
443BC9 cmp r9d, ecx
7346 jae SHORT G_M49819_IG10
7346 jae SHORT G_M49819_IG10
4D63D1 movsxd r10, r9d
4D63D1 movsxd r10, r9d
460FB61410 movzx r10, byte ptr [rax+r10]
460FB61410 movzx r10, byte ptr [rax+r10]
418D72D0 lea esi, [r10-48]
418D72D0 lea esi, [r10-48]
83FE09 cmp esi, 9
83FE09 cmp esi, 9
7735 ja SHORT G_M49819_IG10
7735 ja SHORT G_M49819_IG10
41FFC1 inc r9d
41FFC1 inc r9d
478D1C9B lea r11d, [r11+4*r11]
478D1C9B lea r11d, [r11+4*r11]
478D5C5AD0 lea r11d, [r10+2*r11-48]
478D5C5AD0 lea r11d, [r10+2*r11-48]
4181FBFFFF0000 cmp r11d, 0xFFFF
4181FBFFFF0000 cmp r11d, 0xFFFF
7714 ja SHORT G_M49819_IG08
7714 ja SHORT G_M49819_IG08
443BC9 cmp r9d, ecx
443BC9 cmp r9d, ecx
731B jae SHORT G_M49819_IG10
731B jae SHORT G_M49819_IG10
4963C9 movsxd rcx, r9d
4963C9 movsxd rcx, r9d
0FB60408 movzx rax, byte ptr [rax+rcx]
0FB60408 movzx rax, byte ptr [rax+rcx]
83C0D0 add eax, -48
83C0D0 add eax, -48
83F809 cmp eax, 9
83F809 cmp eax, 9
770C ja SHORT G_M49819_IG10
770C ja SHORT G_M49819_IG10
;; bbWeight=0.50 PerfScore 17.50
;; bbWeight=0.50 PerfScore 17.50
Copier
Copié
Copier
Copié
G_M49819_IG08: ;; offset=010
B
H
G_M49819_IG08: ;; offset=010
F
H
33C0 xor eax, eax
33C0 xor eax, eax
418900 mov dword ptr [r8], eax
418900 mov dword ptr [r8], eax
66C7020000 mov word ptr [rdx], 0
66C7020000 mov word ptr [rdx], 0
;; bbWeight=0.50 PerfScore 1.12
;; bbWeight=0.50 PerfScore 1.12
Copier
Copié
Copier
Copié
G_M49819_IG09: ;; offset=011
5
H
G_M49819_IG09: ;; offset=011
9
H
5E pop rsi
5E pop rsi
C3 ret
C3 ret
;; bbWeight=0.50 PerfScore 0.75
;; bbWeight=0.50 PerfScore 0.75
Copier
Copié
Copier
Copié
G_M49819_IG10: ;; offset=011
7
H
G_M49819_IG10: ;; offset=011
B
H
458908 mov dword ptr [r8], r9d
458908 mov dword ptr [r8], r9d
6644891A mov word ptr [rdx], r11w
6644891A mov word ptr [rdx], r11w
B801000000 mov eax, 1
B801000000 mov eax, 1
;; bbWeight=0.50 PerfScore 1.12
;; bbWeight=0.50 PerfScore 1.12
Copier
Copié
Copier
Copié
G_M49819_IG11: ;; offset=012
3
H
G_M49819_IG11: ;; offset=012
7
H
5E pop rsi
5E pop rsi
C3 ret
C3 ret
;; bbWeight=0.50 PerfScore 0.75
;; bbWeight=0.50 PerfScore 0.75
Copier
Copié
Copier
Copié
; Total bytes of code 29
3
, prolog size 1, PerfScore 80.
43
, instruction count
84
, allocated bytes for code 29
3
(MethodHash=1aab3d64) for method System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool
; Total bytes of code 29
7
, prolog size 1, PerfScore 80.
95
, instruction count
85
, allocated bytes for code 29
7
(MethodHash=1aab3d64) for method System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool
; ============================================================
; ============================================================
Différences enregistrées
Texte d'origine
Ouvrir un fichier
; Assembly listing for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[Byte],byref,byref,ushort):bool ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; fully interruptible ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 6, 8 ) byref -> rcx ; V01 arg1 [V01,T01] ( 6, 4 ) byref -> rdx ; V02 arg2 [V02,T02] ( 6, 4 ) byref -> r8 ; V03 arg3 [V03,T03] ( 4, 3.50) ushort -> r9 ; V04 loc0 [V04,T04] ( 6, 3 ) int -> rax ;# V05 OutArgs [V05 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace" ;* V06 tmp1 [V06 ] ( 0, 0 ) byref -> zero-ref V08._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)" ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref V08._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)" ;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" ; ; Lcl frame size = 0 G_M1013_IG01: ;; offset=0000H ;; bbWeight=1 PerfScore 0.00 G_M1013_IG02: ;; offset=0000H 410FB7C1 movzx rax, r9w 85C0 test eax, eax 7505 jne SHORT G_M1013_IG04 ;; bbWeight=1 PerfScore 1.50 G_M1013_IG03: ;; offset=0008H E9CBFAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool ;; bbWeight=0.50 PerfScore 1.00 G_M1013_IG04: ;; offset=000DH 410FB7C1 movzx rax, r9w 83C820 or eax, 32 83F867 cmp eax, 103 7F0C jg SHORT G_M1013_IG05 83F864 cmp eax, 100 74EA je SHORT G_M1013_IG03 83F867 cmp eax, 103 74E5 je SHORT G_M1013_IG03 EB16 jmp SHORT G_M1013_IG08 ;; bbWeight=0.50 PerfScore 3.12 G_M1013_IG05: ;; offset=0025H 83F86E cmp eax, 110 7407 je SHORT G_M1013_IG06 83F878 cmp eax, 120 7407 je SHORT G_M1013_IG07 EB0A jmp SHORT G_M1013_IG08 ;; bbWeight=0.50 PerfScore 2.25 G_M1013_IG06: ;; offset=0031H E9C2FAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16N(System.ReadOnlySpan`1[Byte],byref,byref):bool ;; bbWeight=0.50 PerfScore 1.00 G_M1013_IG07: ;; offset=0036H E9DDFAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16X(System.ReadOnlySpan`1[Byte],byref,byref):bool ;; bbWeight=0.50 PerfScore 1.00 G_M1013_IG08: ;; offset=003BH E9F0EFFFFF jmp System.Buffers.Text.ParserHelpers:TryParseThrowFormatException(System.ReadOnlySpan`1[Byte],byref,byref):bool ;; bbWeight=0.50 PerfScore 1.00 ; Total bytes of code 64, prolog size 0, PerfScore 17.28, instruction count 21, allocated bytes for code 64 (MethodHash=8045fc0a) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[Byte],byref,byref,ushort):bool ; ============================================================ ; Assembly listing for method System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; fully interruptible ; Final local variable assignments ; ; V00 arg0 [V00,T02] ( 4, 8 ) byref -> rcx ld-addr-op ; V01 arg1 [V01,T06] ( 4, 3 ) byref -> rdx ; V02 arg2 [V02,T07] ( 4, 3 ) byref -> r8 ; V03 loc0 [V03,T00] ( 26, 27 ) int -> r9 ; V04 loc1 [V04,T01] ( 19, 16.50) int -> r10 ; V05 loc2 [V05,T05] ( 12, 6 ) int -> r11 ;# V06 OutArgs [V06 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace" ; V07 tmp1 [V07,T08] ( 2, 2 ) int -> rax "Inlining Arg" ; V08 tmp2 [V08,T04] ( 8, 8 ) byref -> rax V10._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)" ; V09 tmp3 [V09,T03] ( 8, 8.50) int -> rcx V10._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)" ;* V10 tmp4 [V10 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" ; ; Lcl frame size = 0 G_M49819_IG01: ;; offset=0000H 56 push rsi ;; bbWeight=1 PerfScore 1.00 G_M49819_IG02: ;; offset=0001H 488B01 mov rax, bword ptr [rcx] 8B4908 mov ecx, dword ptr [rcx+8] ;; bbWeight=1 PerfScore 4.00 G_M49819_IG03: ;; offset=0007H 85C9 test ecx, ecx 0F8EFC000000 jle G_M49819_IG08 ;; bbWeight=1 PerfScore 1.25 G_M49819_IG04: ;; offset=000FH 4533C9 xor r9d, r9d 440FB610 movzx r10, byte ptr [rax] 4533DB xor r11d, r11d 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 0F87E5000000 ja G_M49819_IG08 4183FA30 cmp r10d, 48 7527 jne SHORT G_M49819_IG07 ;; bbWeight=0.50 PerfScore 2.75 G_M49819_IG05: ;; offset=002CH 41FFC1 inc r9d 443BC9 cmp r9d, ecx 0F83DF000000 jae G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 4183FA30 cmp r10d, 48 74E6 je SHORT G_M49819_IG05 ;; bbWeight=4 PerfScore 20.00 G_M49819_IG06: ;; offset=0046H 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 0F87C4000000 ja G_M49819_IG10 ;; bbWeight=0.50 PerfScore 0.88 G_M49819_IG07: ;; offset=0053H 458D5AD0 lea r11d, [r10-48] 41FFC1 inc r9d 443BC9 cmp r9d, ecx 0F83B4000000 jae G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 0F879F000000 ja G_M49819_IG10 41FFC1 inc r9d 478D1C9B lea r11d, [r11+4*r11] 478D5C5AD0 lea r11d, [r10+2*r11-48] 443BC9 cmp r9d, ecx 0F838A000000 jae G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 7779 ja SHORT G_M49819_IG10 41FFC1 inc r9d 478D1C9B lea r11d, [r11+4*r11] 478D5C5AD0 lea r11d, [r10+2*r11-48] 443BC9 cmp r9d, ecx 7368 jae SHORT G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 7757 ja SHORT G_M49819_IG10 41FFC1 inc r9d 478D1C9B lea r11d, [r11+4*r11] 478D5C5AD0 lea r11d, [r10+2*r11-48] 443BC9 cmp r9d, ecx 7346 jae SHORT G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 7735 ja SHORT G_M49819_IG10 41FFC1 inc r9d 478D1C9B lea r11d, [r11+4*r11] 478D5C5AD0 lea r11d, [r10+2*r11-48] 4181FBFFFF0000 cmp r11d, 0xFFFF 7714 ja SHORT G_M49819_IG08 443BC9 cmp r9d, ecx 731B jae SHORT G_M49819_IG10 4963C9 movsxd rcx, r9d 0FB60408 movzx rax, byte ptr [rax+rcx] 83C0D0 add eax, -48 83F809 cmp eax, 9 770C ja SHORT G_M49819_IG10 ;; bbWeight=0.50 PerfScore 17.50 G_M49819_IG08: ;; offset=010BH 33C0 xor eax, eax 418900 mov dword ptr [r8], eax 66C7020000 mov word ptr [rdx], 0 ;; bbWeight=0.50 PerfScore 1.12 G_M49819_IG09: ;; offset=0115H 5E pop rsi C3 ret ;; bbWeight=0.50 PerfScore 0.75 G_M49819_IG10: ;; offset=0117H 458908 mov dword ptr [r8], r9d 6644891A mov word ptr [rdx], r11w B801000000 mov eax, 1 ;; bbWeight=0.50 PerfScore 1.12 G_M49819_IG11: ;; offset=0123H 5E pop rsi C3 ret ;; bbWeight=0.50 PerfScore 0.75 ; Total bytes of code 293, prolog size 1, PerfScore 80.43, instruction count 84, allocated bytes for code 293 (MethodHash=1aab3d64) for method System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool ; ============================================================
Texte modifié
Ouvrir un fichier
; Assembly listing for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[Byte],byref,byref,ushort):bool ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; fully interruptible ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 6, 8 ) byref -> rcx ; V01 arg1 [V01,T01] ( 6, 4 ) byref -> rdx ; V02 arg2 [V02,T02] ( 6, 4 ) byref -> r8 ; V03 arg3 [V03,T03] ( 4, 3.50) ushort -> r9 ; V04 loc0 [V04,T04] ( 6, 3 ) int -> rax ;# V05 OutArgs [V05 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace" ;* V06 tmp1 [V06 ] ( 0, 0 ) byref -> zero-ref V08._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)" ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref V08._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)" ;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" ; ; Lcl frame size = 0 G_M1013_IG01: ;; offset=0000H ;; bbWeight=1 PerfScore 0.00 G_M1013_IG02: ;; offset=0000H 410FB7C1 movzx rax, r9w 85C0 test eax, eax 7505 jne SHORT G_M1013_IG04 ;; bbWeight=1 PerfScore 1.50 G_M1013_IG03: ;; offset=0008H E9CBFAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool ;; bbWeight=0.50 PerfScore 1.00 G_M1013_IG04: ;; offset=000DH 410FB7C1 movzx rax, r9w 83C820 or eax, 32 83F867 cmp eax, 103 7F0C jg SHORT G_M1013_IG05 83F864 cmp eax, 100 74EA je SHORT G_M1013_IG03 83F867 cmp eax, 103 74E5 je SHORT G_M1013_IG03 EB16 jmp SHORT G_M1013_IG08 ;; bbWeight=0.50 PerfScore 3.12 G_M1013_IG05: ;; offset=0025H 83F86E cmp eax, 110 7407 je SHORT G_M1013_IG06 83F878 cmp eax, 120 7407 je SHORT G_M1013_IG07 EB0A jmp SHORT G_M1013_IG08 ;; bbWeight=0.50 PerfScore 2.25 G_M1013_IG06: ;; offset=0031H E9C2FAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16N(System.ReadOnlySpan`1[Byte],byref,byref):bool ;; bbWeight=0.50 PerfScore 1.00 G_M1013_IG07: ;; offset=0036H E9DDFAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16X(System.ReadOnlySpan`1[Byte],byref,byref):bool ;; bbWeight=0.50 PerfScore 1.00 G_M1013_IG08: ;; offset=003BH E9F0EFFFFF jmp System.Buffers.Text.ParserHelpers:TryParseThrowFormatException(System.ReadOnlySpan`1[Byte],byref,byref):bool ;; bbWeight=0.50 PerfScore 1.00 ; Total bytes of code 64, prolog size 0, PerfScore 17.28, instruction count 21, allocated bytes for code 64 (MethodHash=8045fc0a) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[Byte],byref,byref,ushort):bool ; ============================================================ ; Assembly listing for method System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; fully interruptible ; Final local variable assignments ; ; V00 arg0 [V00,T02] ( 4, 8 ) byref -> rcx ld-addr-op ; V01 arg1 [V01,T06] ( 4, 3 ) byref -> rdx ; V02 arg2 [V02,T07] ( 4, 3 ) byref -> r8 ; V03 loc0 [V03,T00] ( 26, 27 ) int -> r9 ; V04 loc1 [V04,T01] ( 19, 16.50) int -> r10 ; V05 loc2 [V05,T05] ( 12, 6 ) int -> r11 ;# V06 OutArgs [V06 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace" ; V07 tmp1 [V07,T08] ( 2, 2 ) int -> rax "Inlining Arg" ; V08 tmp2 [V08,T04] ( 8, 8 ) byref -> rax V10._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)" ; V09 tmp3 [V09,T03] ( 8, 8.50) int -> rcx V10._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)" ;* V10 tmp4 [V10 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" ; ; Lcl frame size = 0 G_M49819_IG01: ;; offset=0000H 56 push rsi ;; bbWeight=1 PerfScore 1.00 G_M49819_IG02: ;; offset=0001H 488B01 mov rax, bword ptr [rcx] 8B4908 mov ecx, dword ptr [rcx+8] ;; bbWeight=1 PerfScore 4.00 G_M49819_IG03: ;; offset=0007H 85C9 test ecx, ecx 0F8E00010000 jle G_M49819_IG08 ;; bbWeight=1 PerfScore 1.25 G_M49819_IG04: ;; offset=000FH 4533C9 xor r9d, r9d 440FB610 movzx r10, byte ptr [rax] 4533DB xor r11d, r11d 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 0F87E9000000 ja G_M49819_IG08 4183FA30 cmp r10d, 48 752B jne SHORT G_M49819_IG07 0F1F4000 align ;; bbWeight=0.50 PerfScore 2.88 G_M49819_IG05: ;; offset=0030H 41FFC1 inc r9d 443BC9 cmp r9d, ecx 0F83DF000000 jae G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 4183FA30 cmp r10d, 48 74E6 je SHORT G_M49819_IG05 ;; bbWeight=4 PerfScore 20.00 G_M49819_IG06: ;; offset=004AH 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 0F87C4000000 ja G_M49819_IG10 ;; bbWeight=0.50 PerfScore 0.88 G_M49819_IG07: ;; offset=0057H 458D5AD0 lea r11d, [r10-48] 41FFC1 inc r9d 443BC9 cmp r9d, ecx 0F83B4000000 jae G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 0F879F000000 ja G_M49819_IG10 41FFC1 inc r9d 478D1C9B lea r11d, [r11+4*r11] 478D5C5AD0 lea r11d, [r10+2*r11-48] 443BC9 cmp r9d, ecx 0F838A000000 jae G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 7779 ja SHORT G_M49819_IG10 41FFC1 inc r9d 478D1C9B lea r11d, [r11+4*r11] 478D5C5AD0 lea r11d, [r10+2*r11-48] 443BC9 cmp r9d, ecx 7368 jae SHORT G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 7757 ja SHORT G_M49819_IG10 41FFC1 inc r9d 478D1C9B lea r11d, [r11+4*r11] 478D5C5AD0 lea r11d, [r10+2*r11-48] 443BC9 cmp r9d, ecx 7346 jae SHORT G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 7735 ja SHORT G_M49819_IG10 41FFC1 inc r9d 478D1C9B lea r11d, [r11+4*r11] 478D5C5AD0 lea r11d, [r10+2*r11-48] 4181FBFFFF0000 cmp r11d, 0xFFFF 7714 ja SHORT G_M49819_IG08 443BC9 cmp r9d, ecx 731B jae SHORT G_M49819_IG10 4963C9 movsxd rcx, r9d 0FB60408 movzx rax, byte ptr [rax+rcx] 83C0D0 add eax, -48 83F809 cmp eax, 9 770C ja SHORT G_M49819_IG10 ;; bbWeight=0.50 PerfScore 17.50 G_M49819_IG08: ;; offset=010FH 33C0 xor eax, eax 418900 mov dword ptr [r8], eax 66C7020000 mov word ptr [rdx], 0 ;; bbWeight=0.50 PerfScore 1.12 G_M49819_IG09: ;; offset=0119H 5E pop rsi C3 ret ;; bbWeight=0.50 PerfScore 0.75 G_M49819_IG10: ;; offset=011BH 458908 mov dword ptr [r8], r9d 6644891A mov word ptr [rdx], r11w B801000000 mov eax, 1 ;; bbWeight=0.50 PerfScore 1.12 G_M49819_IG11: ;; offset=0127H 5E pop rsi C3 ret ;; bbWeight=0.50 PerfScore 0.75 ; Total bytes of code 297, prolog size 1, PerfScore 80.95, instruction count 85, allocated bytes for code 297 (MethodHash=1aab3d64) for method System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool ; ============================================================
Trouver la différence