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
Caricamento del resto di questo confronto.
Untitled Diff
Creato
4 anni fa
Il diff non scade mai
Eliminare
Esporta
Condividere
Spiegare
244 rimozioni
Linee
Totale
Rimosso
Caratteri
Totale
Rimosso
Per continuare a utilizzare questa funzione, aggiorna a
Diff
checker
Pro
Visualizza prezzi
526 linee
Copia tutti
250 aggiunte
Linee
Totale
Aggiunto
Caratteri
Totale
Aggiunto
Per continuare a utilizzare questa funzione, aggiorna a
Diff
checker
Pro
Visualizza prezzi
532 linee
Copia tutti
; Assembly listing for method Number:ParseNumber(byref,long,int,byref,StringBuilder,NumberFormatInfo,bool):bool
; Assembly listing for method Number:ParseNumber(byref,long,int,byref,StringBuilder,NumberFormatInfo,bool):bool
; Emitting BLENDED_CODE for X64 CPU with AVX - Unix
; Emitting BLENDED_CODE for X64 CPU with AVX - Unix
; Tier-1 compilation
; Tier-1 compilation
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; fully interruptible
; fully interruptible
; No PGO data
; No PGO data
Copia
Copiato
Copia
Copiato
;
2
inlinees with PGO data; 37 single block inlinees;
18
inlinees without PGO data
;
0
inlinees with PGO data; 37 single block inlinees;
19
inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 arg0 [V00,T44] ( 5, 4 ) byref -> [rbp-E0H] single-def
; V00 arg0 [V00,T44] ( 5, 4 ) byref -> [rbp-E0H] single-def
; V01 arg1 [V01,T02] ( 27, 62.50) long -> rbx single-def
; V01 arg1 [V01,T02] ( 27, 62.50) long -> rbx single-def
; V02 arg2 [V02,T07] ( 13, 29.50) int -> r14 single-def
; V02 arg2 [V02,T07] ( 13, 29.50) int -> r14 single-def
; V03 arg3 [V03,T09] ( 14, 17.50) byref -> r12 single-def
; V03 arg3 [V03,T09] ( 14, 17.50) byref -> r12 single-def
Copia
Copiato
Copia
Copiato
; V04 arg4 [V04,
T10
] (
13, 15.10
) ref -> r13 class-hnd single-def
; V04 arg4 [V04,
T25
] (
8, 7
) ref -> r13 class-hnd single-def
; V05 arg5 [V05,T08] ( 17, 20.50) ref -> r15 class-hnd single-def
; V05 arg5 [V05,T08] ( 17, 20.50) ref -> r15 class-hnd single-def
Copia
Copiato
Copia
Copiato
; V06 arg6 [V06,T8
2
] ( 2, 2.50) bool -> [rbp+10H] single-def
; V06 arg6 [V06,T8
0
] ( 2, 2.50) bool -> [rbp+10H] single-def
; V07 loc0 [V07,T5
8
] ( 4, 5 ) ref -> [rbp-E8H] class-hnd
; V07 loc0 [V07,T5
6
] ( 4, 5 ) ref -> [rbp-E8H] class-hnd
; V08 loc1 [V08,T5
9
] ( 4, 5 ) ref -> [rbp-F0H] class-hnd
; V08 loc1 [V08,T5
7
] ( 4, 5 ) ref -> [rbp-F0H] class-hnd
; V09 loc2 [V09,T1
6
] ( 8, 15.50) ref -> [rbp-F8H] class-hnd
; V09 loc2 [V09,T1
5
] ( 8, 15.50) ref -> [rbp-F8H] class-hnd
; V10 loc3 [V10,T5
5
] ( 4, 5.50) bool -> [rbp-2CH]
; V10 loc3 [V10,T5
3
] ( 4, 5.50) bool -> [rbp-2CH]
; V11 loc4 [V11,T5
6
] ( 4, 5.50) bool -> [rbp-30H]
; V11 loc4 [V11,T5
4
] ( 4, 5.50) bool -> [rbp-30H]
; V12 loc5 [V12,T04] ( 35, 63.50) int -> [rbp-34H]
; V12 loc5 [V12,T04] ( 35, 63.50) int -> [rbp-34H]
; V13 loc6 [V13,T43] ( 5, 7 ) bool -> [rbp-38H] spill-single-def
; V13 loc6 [V13,T43] ( 5, 7 ) bool -> [rbp-38H] spill-single-def
Copia
Copiato
Copia
Copiato
; V14 loc7 [V14,T
80
] ( 2, 3 ) int -> [rbp-3CH]
; V14 loc7 [V14,T
78
] ( 2, 3 ) int -> [rbp-3CH]
; V15 loc8 [V15,T00] ( 65,168.50) long -> [rbp-48H]
; V15 loc8 [V15,T00] ( 65,168.50) long -> [rbp-48H]
Copia
Copiato
Copia
Copiato
; V16 loc9 [V16,T01] (
32
,10
8.34
) ushort -> [rbp-4CH]
; V16 loc9 [V16,T01] (
31
,10
6.50
) ushort -> [rbp-4CH]
; V17 loc10 [V17,T05] ( 32, 55 ) long -> rax
; V17 loc10 [V17,T05] ( 32, 55 ) long -> rax
Copia
Copiato
Copia
Copiato
; V18 loc11 [V18,T7
6
] ( 3, 3.50) long -> [rbp-58H]
; V18 loc11 [V18,T7
4
] ( 3, 3.50) long -> [rbp-58H]
; V19 loc12 [V19,T26] ( 5, 9 ) int -> [rbp-5CH]
; V19 loc12 [V19,T26] ( 5, 9 ) int -> [rbp-5CH]
Copia
Copiato
Copia
Copiato
; V20 loc13 [V20,
T60
] ( 4, 4.50) int -> [rbp-60H]
; V20 loc13 [V20,
T58
] ( 4, 4.50) int -> [rbp-60H]
; V21 loc14 [V21,T8
4
] ( 3, 2 ) bool -> [rbp-64H]
; V21 loc14 [V21,T8
3
] ( 3, 2 ) bool -> [rbp-64H]
;* V22 loc15 [V22 ] ( 0, 0 ) bool -> zero-ref
;* V22 loc15 [V22 ] ( 0, 0 ) bool -> zero-ref
; V23 loc16 [V23,T91] ( 3, 1.50) long -> r13
; V23 loc16 [V23,T91] ( 3, 1.50) long -> r13
Copia
Copiato
Copia
Copiato
; V24 loc17 [V24,T1
1
] ( 8, 16 ) int -> rsi
; V24 loc17 [V24,T1
0
] ( 8, 16 ) int -> rsi
;# V25 OutArgs [V25 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
;# V25 OutArgs [V25 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
Copia
Copiato
Copia
Copiato
; V26 tmp1 [V26,T8
5
] ( 3, 2 ) int -> rcx
; V26 tmp1 [V26,T8
4
] ( 3, 2 ) int -> rcx
; V27 tmp2 [V27,T8
6
] ( 3, 2 ) int -> rax
; V27 tmp2 [V27,T8
5
] ( 3, 2 ) int -> rax
; V28 tmp3 [V28,T1
2
] ( 2, 16 ) long -> rcx "dup spill"
; V28 tmp3 [V28,T1
1
] ( 2, 16 ) long -> rcx "dup spill"
; V29 tmp4 [V29,T29] ( 3, 8 ) int -> rax
; V29 tmp4 [V29,T29] ( 3, 8 ) int -> rax
Copia
Copiato
Copia
Copiato
; V30 tmp5 [V30,T1
7
] ( 3, 12 ) byref -> rax "dup spill"
; V30 tmp5 [V30,T1
6
] ( 3, 12 ) byref -> rax "dup spill"
; V31 tmp6 [V31,T2
5
] ( 3, 12 ) int -> r11 "impSpillLclRefs"
; V31 tmp6 [V31,T2
4
] ( 3, 12 ) int -> r11 "impSpillLclRefs"
; V32 tmp7 [V32,T1
8
] ( 3, 12 ) byref -> rax "dup spill"
; V32 tmp7 [V32,T1
7
] ( 3, 12 ) byref -> rax "dup spill"
;* V33 tmp8 [V33 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V33 tmp8 [V33 ] ( 0, 0 ) long -> zero-ref "dup spill"
Copia
Copiato
Copia
Copiato
; V34 tmp9 [V34,T1
3
] ( 2, 16 ) long -> rcx "dup spill"
; V34 tmp9 [V34,T1
2
] ( 2, 16 ) long -> rcx "dup spill"
; V35 tmp10 [V35,T30] ( 3, 8 ) int -> rax
; V35 tmp10 [V35,T30] ( 3, 8 ) int -> rax
;* V36 tmp11 [V36 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V36 tmp11 [V36 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V37 tmp12 [V37 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V37 tmp12 [V37 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V38 tmp13 [V38 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V38 tmp13 [V38 ] ( 0, 0 ) int -> zero-ref "dup spill"
Copia
Copiato
Copia
Copiato
; V39 tmp14 [V39,T8
7
] ( 2, 2 ) long -> rcx "dup spill"
; V39 tmp14 [V39,T8
6
] ( 2, 2 ) long -> rcx "dup spill"
; V40 tmp15 [V40,T92] ( 3, 1.50) int -> rax
; V40 tmp15 [V40,T92] ( 3, 1.50) int -> rax
;* V41 tmp16 [V41 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V41 tmp16 [V41 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V42 tmp17 [V42 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V42 tmp17 [V42 ] ( 0, 0 ) long -> zero-ref "dup spill"
; V43 tmp18 [V43,T93] ( 3, 1.50) int -> rax
; V43 tmp18 [V43,T93] ( 3, 1.50) int -> rax
Copia
Copiato
Copia
Copiato
; V44 tmp19 [V44,T1
4
] ( 2, 16 ) long -> rcx "dup spill"
; V44 tmp19 [V44,T1
3
] ( 2, 16 ) long -> rcx "dup spill"
; V45 tmp20 [V45,T31] ( 3, 8 ) int -> rax
; V45 tmp20 [V45,T31] ( 3, 8 ) int -> rax
Copia
Copiato
Copia
Copiato
; V46 tmp21 [V46,T7
7
] ( 3, 3 ) byref -> rdi single-def "dup spill"
; V46 tmp21 [V46,T7
5
] ( 3, 3 ) byref -> rdi single-def "dup spill"
; V47 tmp22 [V47,T03] ( 2, 64 ) long -> r13 "dup spill"
; V47 tmp22 [V47,T03] ( 2, 64 ) long -> r13 "dup spill"
; V48 tmp23 [V48,T06] ( 3, 32 ) int -> rax
; V48 tmp23 [V48,T06] ( 3, 32 ) int -> rax
; V49 tmp24 [V49,T94] ( 3, 1.50) int -> rdi
; V49 tmp24 [V49,T94] ( 3, 1.50) int -> rdi
; V50 tmp25 [V50,T95] ( 3, 1.50) int -> rdi
; V50 tmp25 [V50,T95] ( 3, 1.50) int -> rdi
;* V51 tmp26 [V51 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V51 tmp26 [V51 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V52 tmp27 [V52 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V52 tmp27 [V52 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V53 tmp28 [V53 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V53 tmp28 [V53 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V54 tmp29 [V54 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V54 tmp29 [V54 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V55 tmp30 [V55 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V55 tmp30 [V55 ] ( 0, 0 ) long -> zero-ref "dup spill"
Copia
Copiato
Copia
Copiato
; V56 tmp31 [V56,T1
5
] ( 2, 16 ) long -> rcx "dup spill"
; V56 tmp31 [V56,T1
4
] ( 2, 16 ) long -> rcx "dup spill"
; V57 tmp32 [V57,T32] ( 3, 8 ) int -> rax
; V57 tmp32 [V57,T32] ( 3, 8 ) int -> rax
;* V58 tmp33 [V58 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V58 tmp33 [V58 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V59 tmp34 [V59 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V59 tmp34 [V59 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V60 tmp35 [V60 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V60 tmp35 [V60 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V61 tmp36 [V61 ] ( 0, 0 ) bool -> zero-ref "Inline return value spill temp"
;* V61 tmp36 [V61 ] ( 0, 0 ) bool -> zero-ref "Inline return value spill temp"
Copia
Copiato
Copia
Copiato
; V62 tmp37 [V62,T7
5
] ( 4, 3.50) ref -> rdi class-hnd "Inline stloc first use temp"
; V62 tmp37 [V62,T7
3
] ( 4, 3.50) ref -> rdi class-hnd "Inline stloc first use temp"
; V63 tmp38 [V63,T8
8
] ( 2, 2 ) bool -> r9 "Inline stloc first use temp"
; V63 tmp38 [V63,T8
7
] ( 2, 2 ) bool -> r9 "Inline stloc first use temp"
; V64 tmp39 [V64,
T81
] ( 3, 2.50) bool -> r9 "Inline stloc first use temp"
; V64 tmp39 [V64,
T79
] ( 3, 2.50) bool -> r9 "Inline stloc first use temp"
; V65 tmp40 [V65,T5
7
] ( 10, 5 ) ushort -> r9 "Inline stloc first use temp"
; V65 tmp40 [V65,T5
5
] ( 10, 5 ) ushort -> r9 "Inline stloc first use temp"
; V66 tmp41 [V66,T96] ( 3, 1.50) bool -> r9 "Inline stloc first use temp"
; V66 tmp41 [V66,T96] ( 3, 1.50) bool -> r9 "Inline stloc first use temp"
Copia
Copiato
Copia
Copiato
;* V67 tmp42 [V67,
T61
] ( 0, 0 ) bool -> zero-ref "Inline return value spill temp"
;* V67 tmp42 [V67,
T59
] ( 0, 0 ) bool -> zero-ref "Inline return value spill temp"
; V68 tmp43 [V68,T6
2
] ( 2, 4 ) long -> rax "Inline return value spill temp"
; V68 tmp43 [V68,T6
0
] ( 2, 4 ) long -> rax "Inline return value spill temp"
; V69 tmp44 [V69,T1
9
] ( 3, 12 ) ref -> r11 class-hnd "Inlining Arg"
; V69 tmp44 [V69,T1
8
] ( 3, 12 ) ref -> r11 class-hnd "Inlining Arg"
; V70 tmp45 [V70 ] ( 3, 6 ) byref -> [rbp-70H] must-init pinned "Inline stloc first use temp"
; V70 tmp45 [V70 ] ( 3, 6 ) byref -> [rbp-70H] must-init pinned "Inline stloc first use temp"
; V71 tmp46 [V71,T45] ( 3, 6 ) long -> r11
; V71 tmp46 [V71,T45] ( 3, 6 ) long -> r11
;* V72 tmp47 [V72 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V72 tmp47 [V72 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
Copia
Copiato
Copia
Copiato
; V73 tmp48 [V73,
T20
] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg"
; V73 tmp48 [V73,
T19
] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg"
; V74 tmp49 [V74,T27] ( 4, 8 ) long -> rax "Inline stloc first use temp"
; V74 tmp49 [V74,T27] ( 4, 8 ) long -> rax "Inline stloc first use temp"
Copia
Copiato
Copia
Copiato
; V75 tmp50 [V75,T6
3
] ( 2, 4 ) long -> rax "Inline return value spill temp"
; V75 tmp50 [V75,T6
1
] ( 2, 4 ) long -> rax "Inline return value spill temp"
; V76 tmp51 [V76 ] ( 3, 6 ) byref -> [rbp-78H] must-init pinned "Inline stloc first use temp"
; V76 tmp51 [V76 ] ( 3, 6 ) byref -> [rbp-78H] must-init pinned "Inline stloc first use temp"
; V77 tmp52 [V77,T46] ( 3, 6 ) long -> rdx
; V77 tmp52 [V77,T46] ( 3, 6 ) long -> rdx
;* V78 tmp53 [V78 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V78 tmp53 [V78 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
Copia
Copiato
Copia
Copiato
; V79 tmp54 [V79,T6
4
] ( 2, 4 ) long -> rax "Inline return value spill temp"
; V79 tmp54 [V79,T6
2
] ( 2, 4 ) long -> rax "Inline return value spill temp"
; V80 tmp55 [V80 ] ( 3, 6 ) byref -> [rbp-80H] must-init pinned "Inline stloc first use temp"
; V80 tmp55 [V80 ] ( 3, 6 ) byref -> [rbp-80H] must-init pinned "Inline stloc first use temp"
Copia
Copiato
Copia
Copiato
; V81 tmp56 [V81,T6
5
] ( 2, 4 ) long -> r11
; V81 tmp56 [V81,T6
3
] ( 2, 4 ) long -> r11
;* V82 tmp57 [V82 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V82 tmp57 [V82 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V83 tmp58 [V83 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V83 tmp58 [V83 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
Copia
Copiato
Copia
Copiato
;
*
V84 tmp59 [V84
] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp"
;
V84 tmp59 [V84
,T64
] ( 2, 4 ) long -> rax "Inline return value spill temp"
; V85 tmp60 [V85,T54] ( 3, 5.84) int -> rdx "Inline stloc first use temp"
; V8
5
tmp6
0
[V8
5
] ( 3, 6 ) byref -> [rbp-88H] must-init pinned "Inline stloc first use temp"
; V86 tmp61 [V86,T53] ( 3, 5.84) ref -> r9 class-hnd "Inline stloc first use temp"
; V8
6
tmp6
1
[V8
6
,T47] ( 3, 6 ) long -> [rbp-90H]
; V87 tmp62 [V87,T66
] ( 2, 4 ) long -> rax "Inline return value spill temp"
;*
V87
tmp6
2
[
V87
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V8
8
tmp6
3
[V8
8
] ( 3, 6 ) byref -> [rbp-88H] must-init pinned "Inline stloc first use temp"
;
V88
tmp6
3
[
V88
,T6
5
] ( 2, 4 ) long -> rax "Inline return value spill temp"
; V8
9
tmp6
4
[V8
9
,T47] ( 3, 6 ) long -> [rbp-90H]
; V
89
tmp6
4
[V
89
,T2
0
] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg"
;*
V90
tmp6
5
[
V90
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V9
0
tmp6
5
[V9
0
] ( 3, 6 ) byref -> [rbp-98H] must-init pinned "Inline stloc first use temp"
;
V91
tmp6
6
[
V91
,T6
7
] ( 2, 4 ) long -> rax "Inline return value spill temp"
; V9
1
tmp6
6
[V9
1
,T48] ( 3, 6 ) long -> rdx
; V
92
tmp6
7
[V
92
,T2
1
] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg"
;* V9
2
tmp
67
[V9
2
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V9
3
tmp6
8
[V9
3
] ( 3, 6 ) byref -> [rbp-98H] must-init pinned "Inline stloc first use temp"
; V9
3 tmp68
[V9
3
,T6
6
] ( 2, 4 ) long -> rax "Inline return value spill temp"
; V9
4
tmp6
9
[V9
4
,T48] ( 3, 6 ) long -> rdx
; V9
4 tmp69
[V9
4
] ( 3, 6 ) byref -> [rbp-A0H] must-init pinned "Inline stloc first use temp"
;* V9
5
tmp
70
[V9
5
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V9
5
tmp7
0
[V9
5
,T49] ( 3, 6 ) long -> [rbp-A8H]
; V9
6 tmp71
[V9
6
,T6
8
] ( 2, 4 ) long -> rax "Inline return value spill temp"
;* V9
6
tmp7
1
[V9
6
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V9
7 tmp72
[V9
7
] ( 3, 6 ) byref -> [rbp-A0H] must-init pinned "Inline stloc first use temp"
;
V97
tmp7
2
[
V97
,T6
7
] ( 2, 4 ) long -> rax "Inline return value spill temp"
; V9
8
tmp7
3
[V9
8
,T49] ( 3, 6 ) long -> [rbp-A8H]
;
V98
tmp7
3
[
V98
,T2
1
] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg"
;* V9
9
tmp7
4
[V9
9
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;
V99
tmp7
4
[
V99
] ( 3, 6 ) byref -> [rbp-B0H] must-init pinned "Inline stloc first use temp"
;
V100
tmp7
5
[
V100
,T6
9
] ( 2, 4 ) long -> rax "Inline return value spill temp"
; V10
0
tmp7
5
[V10
0
,T50] ( 3, 6 ) long -> rdx
;
V101
tmp7
6
[
V101
,T2
2
] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg"
;* V10
1
tmp7
6
[V10
1
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;
V102
tmp7
7
[
V102
] ( 3, 6 ) byref -> [rbp-B0H] must-init pinned "Inline stloc first use temp"
;* V10
2 tmp77
[V10
2
] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp"
; V10
3
tmp7
8
[V10
3
,T50] ( 3, 6 ) long -> rdx
; V10
3
tmp
78
[V10
3,T81
] (
4
,
2
) int -> rdi "Inline stloc first use temp"
;* V10
4
tmp7
9
[V10
4
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V10
4 tmp79
[V10
4
,T9
0
] ( 3, 1.
50
) ref -> rdx class-hnd "Inline stloc first use temp"
;* V10
5 tmp80
[V10
5
] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp"
; V10
5
tmp8
0
[V10
5,T99
] ( 2, 1 ) long -> rax "Inline return value spill temp"
; V10
6
tmp
81
[V10
6,T100
] (
3
,
1.46
) int -> rdi "Inline stloc first use temp"
; V10
6
tmp8
1
[V10
6
,T7
6
] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg"
; V10
7 tmp82
[V10
7
,T9
9
] ( 3, 1.
46
) ref -> rdx class-hnd "Inline stloc first use temp"
; V
107
tmp8
2
[V
107
] ( 3, 1.50) byref -> [rbp-B8H] must-init pinned "Inline stloc first use temp"
; V10
8
tmp8
3
[V10
8,T101
] ( 2, 1 ) long -> rax "Inline return value spill temp"
;
V108
tmp8
3
[
V108
,T97] ( 3, 1.50) long -> rdx
; V10
9
tmp8
4
[V10
9
,T7
8
] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg"
;*
V109
tmp8
4
[
V109
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V
110
tmp8
5
[V
110
] ( 3, 1.50) byref -> [rbp-B8H] must-init pinned "Inline stloc first use temp"
; V11
0
tmp8
5
[V11
0
,T7
7
] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg"
;
V111
tmp8
6
[
V111
,T97] ( 3, 1.50) long -> rdx
; V11
1
tmp8
6
[V11
1
,T8
2
] ( 4, 2 ) long -> rax "Inline stloc first use temp"
;*
V112
tmp8
7
[
V112
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V11
2 tmp87
[V11
2
,T10
0
] ( 2, 1 ) long -> rax "Inline return value spill temp"
; V11
3
tmp8
8
[V11
3
,T7
9
] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg"
; V11
3 tmp88
[V11
3
] ( 3, 1.50) byref -> [rbp-C0H] must-init pinned "Inline stloc first use temp"
; V11
4
tmp8
9
[V11
4
,T8
3
] ( 4, 2 ) long -> rax "Inline stloc first use temp"
; V11
4
tmp
89
[V11
4
,T98] ( 3, 1.50) long -> rdx
; V11
5 tmp90
[V11
5
,T10
2
] ( 2, 1 ) long -> rax "Inline return value spill temp"
;* V11
5
tmp9
0
[V11
5
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V11
6 tmp91
[V11
6
] ( 3, 1.50) byref -> [rbp-C0H] must-init pinned "Inline stloc first use temp"
;* V11
6
tmp9
1
[V11
6,T68
] ( 0, 0 ) bool -> zero-ref "Inline return value spill temp"
; V11
7
tmp
92
[V11
7
,T98] ( 3, 1.50) long -> rdx
;
V117
tmp9
2
[
V117,T69
] ( 2, 4 ) long -> rax "Inline return value spill temp"
;* V11
8
tmp9
3
[V11
8
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V1
18
tmp9
3
[V1
18
,T2
2
] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg"
;* V11
9
tmp9
4
[V11
9,T70
] ( 0, 0 ) bool -> zero-ref "Inline return value spill temp"
;
V119
tmp9
4
[
V119
] ( 3, 6 ) byref -> [rbp-C8H] must-init pinned "Inline stloc first use temp"
;
V120
tmp9
5
[
V120,T71
] ( 2, 4 ) long -> rax "Inline return value spill temp"
; V12
0
tmp9
5
[V12
0
,T51] ( 3, 6 ) long -> rdx
; V1
21
tmp9
6
[V1
21
,T2
3
] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg"
;* V12
1
tmp9
6
[V12
1
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;
V122
tmp9
7
[
V122
] ( 3, 6 ) byref -> [rbp-C8H] must-init pinned "Inline stloc first use temp"
; V12
2 tmp97
[V12
2
,T2
3
] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg"
; V12
3
tmp9
8
[V12
3
,T51] ( 3, 6 ) long -> rdx
; V12
3 tmp98
[V12
3
,T28] ( 4, 8 ) long -> rax "Inline stloc first use temp"
;* V12
4
tmp9
9
[V12
4
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V12
4 tmp99
[V12
4
,T7
0
] ( 2, 4 ) long -> rax "Inline return value spill temp"
; V12
5 tmp100
[V12
5
,T2
4
] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg"
; V12
5
tmp10
0
[V12
5
] ( 3, 6 ) byref -> [rbp-D0H] must-init pinned "Inline stloc first use temp"
; V12
6 tmp101
[V12
6
,T28] ( 4, 8 ) long -> rax "Inline stloc first use temp"
; V12
6
tmp10
1
[V12
6
,T52] ( 3, 6 ) long -> rdx
; V12
7 tmp102
[V12
7
,T7
2
] ( 2, 4 ) long -> rax "Inline return value spill temp"
;*
V127
tmp10
2
[
V127
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V12
8
tmp10
3
[V12
8
] ( 3, 6 ) byref -> [rbp-D0H] must-init pinned "Inline stloc first use temp"
;
V128
tmp10
3
[
V128
,T7
1
] ( 2, 4 ) long -> rax "Inline return value spill temp"
; V12
9
tmp10
4
[V12
9
,T52] ( 3, 6 ) long -> rdx
; V1
29
tmp10
4
[V1
29
] ( 3, 6 ) byref -> [rbp-D8H] must-init pinned "Inline stloc first use temp"
;*
V130
tmp10
5
[
V130
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V13
0
tmp10
5
[V13
0
,T7
2
] ( 2, 4 ) long -> rdx
;
V131
tmp10
6
[
V131
,T7
3
] ( 2, 4 ) long -> rax "Inline return value spill temp"
;* V13
1
tmp10
6
[V13
1
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V1
32
tmp10
7
[V1
32
] ( 3, 6 ) byref -> [rbp-D8H] must-init pinned "Inline stloc first use temp"
; V13
2
tmp
107
[V13
2
,T33] ( 2, 8 ) long -> r11 "Cast away GC"
; V13
3
tmp10
8
[V13
3
,T7
4
] ( 2, 4 ) long -> rdx
; V13
3
tmp1
08
[V13
3
,T34] ( 2, 8 ) long -> rdx "Cast away GC"
;* V13
4
tmp10
9
[V13
4
] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V13
4
tmp1
09
[V13
4
,T35] ( 2, 8 ) long -> r11 "Cast away GC"
; V13
5
tmp
110
[V13
5
,T33] ( 2, 8 ) long -> r11 "Cast away GC"
; V13
5
tmp11
0
[V13
5
,T36] ( 2, 8 ) long -> rdi "Cast away GC"
; V13
6
tmp1
11
[V13
6
,T34] ( 2, 8 ) long -> rdx "Cast away GC"
; V13
6
tmp11
1
[V13
6
,T37] ( 2, 8 ) long -> rdx "Cast away GC"
; V13
7
tmp1
12
[V13
7
,T35] ( 2, 8 ) long -> r11 "Cast away GC"
;
V137
tmp11
2
[
V137
,T38] ( 2, 8 ) long -> rdi "Cast away GC"
; V13
8
tmp11
3
[V13
8
,T36] ( 2, 8 ) long -> rdi "Cast away GC"
;
V138
tmp11
3
[
V138
,T39] ( 2, 8 ) long -> rdx "Cast away GC"
; V13
9
tmp11
4
[V13
9
,T37] ( 2, 8 ) long -> rdx "Cast away GC"
;
V139
tmp11
4
[
V139
,T8
8
] ( 2, 2 ) long -> rdx "Cast away GC"
;
V140
tmp11
5
[
V140
,T38] ( 2, 8 ) long -> rdi "Cast away GC"
; V14
0
tmp11
5
[V14
0,T89
] ( 2, 2 ) long -> rdx "Cast away GC"
;
V141
tmp11
6
[
V141
,T39] ( 2, 8 ) long -> rdx "Cast away GC"
; V14
1
tmp11
6
[V14
1
,T40] ( 2, 8 ) long -> rdx "Cast away GC"
;
V142
tmp11
7
[
V142
,T8
9
] ( 2, 2 ) long -> rdx "Cast away GC"
; V14
2
tmp1
17
[V14
2
,T41] ( 2, 8 ) long -> rdx "Cast away GC"
; V14
3
tmp11
8
[V14
3,T90
] ( 2, 2 ) long -> rdx "Cast away GC"
; V14
3
tmp1
18
[V14
3
,T42] ( 2, 8 ) long -> rdx "Cast away GC"
; V14
4
tmp11
9
[V14
4
,T40] ( 2, 8 ) long -> rdx "Cast away GC"
; V14
4
cse0 [V14
4
,T10
1
] ( 2, 1 ) int -> r11 "CSE - conservative"
; V14
5
tmp1
20
[V14
5
,T41] ( 2, 8 ) long -> rdx "Cast away GC"
; V14
6
tmp1
21
[V14
6
,T42] ( 2, 8 ) long -> rdx "Cast away GC"
; V14
7
cse0 [V14
7
,T10
3
] ( 2, 1 ) int -> r11 "CSE - conservative"
;
;
; Lcl frame size = 216
; Lcl frame size = 216
G_M4653_IG01:
G_M4653_IG01:
push rbp
push rbp
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rbx
push rbx
sub rsp, 216
sub rsp, 216
lea rbp, [rsp+100H]
lea rbp, [rsp+100H]
xor eax, eax
xor eax, eax
mov qword ptr [rbp-D8H], rax
mov qword ptr [rbp-D8H], rax
vxorps xmm8, xmm8
vxorps xmm8, xmm8
mov rax, -96
mov rax, -96
vmovdqa xmmword ptr [rbp+rax-70H], xmm8
vmovdqa xmmword ptr [rbp+rax-70H], xmm8
vmovdqa xmmword ptr [rbp+rax-60H], xmm8
vmovdqa xmmword ptr [rbp+rax-60H], xmm8
vmovdqa xmmword ptr [rbp+rax-50H], xmm8
vmovdqa xmmword ptr [rbp+rax-50H], xmm8
add rax, 48
add rax, 48
Diff salvati
Testo originale
Apri file
; Assembly listing for method Number:ParseNumber(byref,long,int,byref,StringBuilder,NumberFormatInfo,bool):bool ; Emitting BLENDED_CODE for X64 CPU with AVX - Unix ; Tier-1 compilation ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 2 inlinees with PGO data; 37 single block inlinees; 18 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T44] ( 5, 4 ) byref -> [rbp-E0H] single-def ; V01 arg1 [V01,T02] ( 27, 62.50) long -> rbx single-def ; V02 arg2 [V02,T07] ( 13, 29.50) int -> r14 single-def ; V03 arg3 [V03,T09] ( 14, 17.50) byref -> r12 single-def ; V04 arg4 [V04,T10] ( 13, 15.10) ref -> r13 class-hnd single-def ; V05 arg5 [V05,T08] ( 17, 20.50) ref -> r15 class-hnd single-def ; V06 arg6 [V06,T82] ( 2, 2.50) bool -> [rbp+10H] single-def ; V07 loc0 [V07,T58] ( 4, 5 ) ref -> [rbp-E8H] class-hnd ; V08 loc1 [V08,T59] ( 4, 5 ) ref -> [rbp-F0H] class-hnd ; V09 loc2 [V09,T16] ( 8, 15.50) ref -> [rbp-F8H] class-hnd ; V10 loc3 [V10,T55] ( 4, 5.50) bool -> [rbp-2CH] ; V11 loc4 [V11,T56] ( 4, 5.50) bool -> [rbp-30H] ; V12 loc5 [V12,T04] ( 35, 63.50) int -> [rbp-34H] ; V13 loc6 [V13,T43] ( 5, 7 ) bool -> [rbp-38H] spill-single-def ; V14 loc7 [V14,T80] ( 2, 3 ) int -> [rbp-3CH] ; V15 loc8 [V15,T00] ( 65,168.50) long -> [rbp-48H] ; V16 loc9 [V16,T01] ( 32,108.34) ushort -> [rbp-4CH] ; V17 loc10 [V17,T05] ( 32, 55 ) long -> rax ; V18 loc11 [V18,T76] ( 3, 3.50) long -> [rbp-58H] ; V19 loc12 [V19,T26] ( 5, 9 ) int -> [rbp-5CH] ; V20 loc13 [V20,T60] ( 4, 4.50) int -> [rbp-60H] ; V21 loc14 [V21,T84] ( 3, 2 ) bool -> [rbp-64H] ;* V22 loc15 [V22 ] ( 0, 0 ) bool -> zero-ref ; V23 loc16 [V23,T91] ( 3, 1.50) long -> r13 ; V24 loc17 [V24,T11] ( 8, 16 ) int -> rsi ;# V25 OutArgs [V25 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace" ; V26 tmp1 [V26,T85] ( 3, 2 ) int -> rcx ; V27 tmp2 [V27,T86] ( 3, 2 ) int -> rax ; V28 tmp3 [V28,T12] ( 2, 16 ) long -> rcx "dup spill" ; V29 tmp4 [V29,T29] ( 3, 8 ) int -> rax ; V30 tmp5 [V30,T17] ( 3, 12 ) byref -> rax "dup spill" ; V31 tmp6 [V31,T25] ( 3, 12 ) int -> r11 "impSpillLclRefs" ; V32 tmp7 [V32,T18] ( 3, 12 ) byref -> rax "dup spill" ;* V33 tmp8 [V33 ] ( 0, 0 ) long -> zero-ref "dup spill" ; V34 tmp9 [V34,T13] ( 2, 16 ) long -> rcx "dup spill" ; V35 tmp10 [V35,T30] ( 3, 8 ) int -> rax ;* V36 tmp11 [V36 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V37 tmp12 [V37 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V38 tmp13 [V38 ] ( 0, 0 ) int -> zero-ref "dup spill" ; V39 tmp14 [V39,T87] ( 2, 2 ) long -> rcx "dup spill" ; V40 tmp15 [V40,T92] ( 3, 1.50) int -> rax ;* V41 tmp16 [V41 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V42 tmp17 [V42 ] ( 0, 0 ) long -> zero-ref "dup spill" ; V43 tmp18 [V43,T93] ( 3, 1.50) int -> rax ; V44 tmp19 [V44,T14] ( 2, 16 ) long -> rcx "dup spill" ; V45 tmp20 [V45,T31] ( 3, 8 ) int -> rax ; V46 tmp21 [V46,T77] ( 3, 3 ) byref -> rdi single-def "dup spill" ; V47 tmp22 [V47,T03] ( 2, 64 ) long -> r13 "dup spill" ; V48 tmp23 [V48,T06] ( 3, 32 ) int -> rax ; V49 tmp24 [V49,T94] ( 3, 1.50) int -> rdi ; V50 tmp25 [V50,T95] ( 3, 1.50) int -> rdi ;* V51 tmp26 [V51 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V52 tmp27 [V52 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V53 tmp28 [V53 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V54 tmp29 [V54 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V55 tmp30 [V55 ] ( 0, 0 ) long -> zero-ref "dup spill" ; V56 tmp31 [V56,T15] ( 2, 16 ) long -> rcx "dup spill" ; V57 tmp32 [V57,T32] ( 3, 8 ) int -> rax ;* V58 tmp33 [V58 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V59 tmp34 [V59 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V60 tmp35 [V60 ] ( 0, 0 ) int -> zero-ref "dup spill" ;* V61 tmp36 [V61 ] ( 0, 0 ) bool -> zero-ref "Inline return value spill temp" ; V62 tmp37 [V62,T75] ( 4, 3.50) ref -> rdi class-hnd "Inline stloc first use temp" ; V63 tmp38 [V63,T88] ( 2, 2 ) bool -> r9 "Inline stloc first use temp" ; V64 tmp39 [V64,T81] ( 3, 2.50) bool -> r9 "Inline stloc first use temp" ; V65 tmp40 [V65,T57] ( 10, 5 ) ushort -> r9 "Inline stloc first use temp" ; V66 tmp41 [V66,T96] ( 3, 1.50) bool -> r9 "Inline stloc first use temp" ;* V67 tmp42 [V67,T61] ( 0, 0 ) bool -> zero-ref "Inline return value spill temp" ; V68 tmp43 [V68,T62] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V69 tmp44 [V69,T19] ( 3, 12 ) ref -> r11 class-hnd "Inlining Arg" ; V70 tmp45 [V70 ] ( 3, 6 ) byref -> [rbp-70H] must-init pinned "Inline stloc first use temp" ; V71 tmp46 [V71,T45] ( 3, 6 ) long -> r11 ;* V72 tmp47 [V72 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V73 tmp48 [V73,T20] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg" ; V74 tmp49 [V74,T27] ( 4, 8 ) long -> rax "Inline stloc first use temp" ; V75 tmp50 [V75,T63] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V76 tmp51 [V76 ] ( 3, 6 ) byref -> [rbp-78H] must-init pinned "Inline stloc first use temp" ; V77 tmp52 [V77,T46] ( 3, 6 ) long -> rdx ;* V78 tmp53 [V78 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V79 tmp54 [V79,T64] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V80 tmp55 [V80 ] ( 3, 6 ) byref -> [rbp-80H] must-init pinned "Inline stloc first use temp" ; V81 tmp56 [V81,T65] ( 2, 4 ) long -> r11 ;* V82 tmp57 [V82 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V83 tmp58 [V83 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg" ;* V84 tmp59 [V84 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" ; V85 tmp60 [V85,T54] ( 3, 5.84) int -> rdx "Inline stloc first use temp" ; V86 tmp61 [V86,T53] ( 3, 5.84) ref -> r9 class-hnd "Inline stloc first use temp" ; V87 tmp62 [V87,T66] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V88 tmp63 [V88 ] ( 3, 6 ) byref -> [rbp-88H] must-init pinned "Inline stloc first use temp" ; V89 tmp64 [V89,T47] ( 3, 6 ) long -> [rbp-90H] ;* V90 tmp65 [V90 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V91 tmp66 [V91,T67] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V92 tmp67 [V92,T21] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg" ; V93 tmp68 [V93 ] ( 3, 6 ) byref -> [rbp-98H] must-init pinned "Inline stloc first use temp" ; V94 tmp69 [V94,T48] ( 3, 6 ) long -> rdx ;* V95 tmp70 [V95 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V96 tmp71 [V96,T68] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V97 tmp72 [V97 ] ( 3, 6 ) byref -> [rbp-A0H] must-init pinned "Inline stloc first use temp" ; V98 tmp73 [V98,T49] ( 3, 6 ) long -> [rbp-A8H] ;* V99 tmp74 [V99 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V100 tmp75 [V100,T69] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V101 tmp76 [V101,T22] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg" ; V102 tmp77 [V102 ] ( 3, 6 ) byref -> [rbp-B0H] must-init pinned "Inline stloc first use temp" ; V103 tmp78 [V103,T50] ( 3, 6 ) long -> rdx ;* V104 tmp79 [V104 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V105 tmp80 [V105 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp" ; V106 tmp81 [V106,T100] ( 3, 1.46) int -> rdi "Inline stloc first use temp" ; V107 tmp82 [V107,T99] ( 3, 1.46) ref -> rdx class-hnd "Inline stloc first use temp" ; V108 tmp83 [V108,T101] ( 2, 1 ) long -> rax "Inline return value spill temp" ; V109 tmp84 [V109,T78] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" ; V110 tmp85 [V110 ] ( 3, 1.50) byref -> [rbp-B8H] must-init pinned "Inline stloc first use temp" ; V111 tmp86 [V111,T97] ( 3, 1.50) long -> rdx ;* V112 tmp87 [V112 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V113 tmp88 [V113,T79] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" ; V114 tmp89 [V114,T83] ( 4, 2 ) long -> rax "Inline stloc first use temp" ; V115 tmp90 [V115,T102] ( 2, 1 ) long -> rax "Inline return value spill temp" ; V116 tmp91 [V116 ] ( 3, 1.50) byref -> [rbp-C0H] must-init pinned "Inline stloc first use temp" ; V117 tmp92 [V117,T98] ( 3, 1.50) long -> rdx ;* V118 tmp93 [V118 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V119 tmp94 [V119,T70] ( 0, 0 ) bool -> zero-ref "Inline return value spill temp" ; V120 tmp95 [V120,T71] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V121 tmp96 [V121,T23] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg" ; V122 tmp97 [V122 ] ( 3, 6 ) byref -> [rbp-C8H] must-init pinned "Inline stloc first use temp" ; V123 tmp98 [V123,T51] ( 3, 6 ) long -> rdx ;* V124 tmp99 [V124 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V125 tmp100 [V125,T24] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg" ; V126 tmp101 [V126,T28] ( 4, 8 ) long -> rax "Inline stloc first use temp" ; V127 tmp102 [V127,T72] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V128 tmp103 [V128 ] ( 3, 6 ) byref -> [rbp-D0H] must-init pinned "Inline stloc first use temp" ; V129 tmp104 [V129,T52] ( 3, 6 ) long -> rdx ;* V130 tmp105 [V130 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V131 tmp106 [V131,T73] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V132 tmp107 [V132 ] ( 3, 6 ) byref -> [rbp-D8H] must-init pinned "Inline stloc first use temp" ; V133 tmp108 [V133,T74] ( 2, 4 ) long -> rdx ;* V134 tmp109 [V134 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V135 tmp110 [V135,T33] ( 2, 8 ) long -> r11 "Cast away GC" ; V136 tmp111 [V136,T34] ( 2, 8 ) long -> rdx "Cast away GC" ; V137 tmp112 [V137,T35] ( 2, 8 ) long -> r11 "Cast away GC" ; V138 tmp113 [V138,T36] ( 2, 8 ) long -> rdi "Cast away GC" ; V139 tmp114 [V139,T37] ( 2, 8 ) long -> rdx "Cast away GC" ; V140 tmp115 [V140,T38] ( 2, 8 ) long -> rdi "Cast away GC" ; V141 tmp116 [V141,T39] ( 2, 8 ) long -> rdx "Cast away GC" ; V142 tmp117 [V142,T89] ( 2, 2 ) long -> rdx "Cast away GC" ; V143 tmp118 [V143,T90] ( 2, 2 ) long -> rdx "Cast away GC" ; V144 tmp119 [V144,T40] ( 2, 8 ) long -> rdx "Cast away GC" ; V145 tmp120 [V145,T41] ( 2, 8 ) long -> rdx "Cast away GC" ; V146 tmp121 [V146,T42] ( 2, 8 ) long -> rdx "Cast away GC" ; V147 cse0 [V147,T103] ( 2, 1 ) int -> r11 "CSE - conservative" ; ; Lcl frame size = 216 G_M4653_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 216 lea rbp, [rsp+100H] xor eax, eax mov qword ptr [rbp-D8H], rax vxorps xmm8, xmm8 mov rax, -96 vmovdqa xmmword ptr [rbp+rax-70H], xmm8 vmovdqa xmmword ptr [rbp+rax-60H], xmm8 vmovdqa xmmword ptr [rbp+rax-50H], xmm8 add rax, 48 jne SHORT -5 instr mov qword ptr [rbp-70H], rax mov rax, rdi mov rbx, rsi mov r14d, edx mov r12, rcx mov r13, r8 mov r15, r9 ;; size=98 bbWeight=1 PerfScore 18.33 G_M4653_IG02: xor edi, edi mov dword ptr [r12+4], edi mov byte ptr [r12+8], 0 xor r8, r8 mov rdi, gword ptr [r15+40] xor r9d, r9d cmp dword ptr [rdi+8], 1 sete r9b cmp dword ptr [rdi+8], 1 jne SHORT G_M4653_IG08 ;; size=37 bbWeight=1 PerfScore 12.75 G_M4653_IG03: movzx r9, word ptr [rdi+12] cmp r9d, 0x208B ja SHORT G_M4653_IG04 cmp r9d, 0x2012 je SHORT G_M4653_IG06 cmp r9d, 0x207B je SHORT G_M4653_IG06 cmp r9d, 0x208B je SHORT G_M4653_IG06 jmp SHORT G_M4653_IG07 ;; size=43 bbWeight=0.50 PerfScore 4.50 G_M4653_IG04: cmp r9d, 0x2796 ja SHORT G_M4653_IG05 cmp r9d, 0x2212 je SHORT G_M4653_IG06 cmp r9d, 0x2796 je SHORT G_M4653_IG06 jmp SHORT G_M4653_IG07 ;; size=29 bbWeight=0.50 PerfScore 2.88 G_M4653_IG05: cmp r9d, 0xFE63 je SHORT G_M4653_IG06 cmp r9d, 0xFF0D jne SHORT G_M4653_IG07 ;; size=18 bbWeight=0.50 PerfScore 1.25 G_M4653_IG06: mov r9d, 1 jmp SHORT G_M4653_IG08 ;; size=8 bbWeight=0.50 PerfScore 1.12 G_M4653_IG07: xor r9d, r9d ;; size=3 bbWeight=0.50 PerfScore 0.12 G_M4653_IG08: mov dword ptr [rbp-2CH], r9d xor r10d, r10d test r14d, 256 je SHORT G_M4653_IG10 ;; size=16 bbWeight=1 PerfScore 2.50 G_M4653_IG09: mov r8, gword ptr [r15+80] mov gword ptr [rbp-F8H], r8 mov r11, gword ptr [r15+72] mov rdx, gword ptr [r15+64] mov dword ptr [rbp-30H], 1 jmp SHORT G_M4653_IG11 ;; size=28 bbWeight=0.50 PerfScore 5.00 G_M4653_IG10: mov r11, gword ptr [r15+48] mov gword ptr [rbp-E8H], r11 mov rdx, gword ptr [r15+56] mov gword ptr [rbp-F0H], rdx mov gword ptr [rbp-F8H], r8 mov dword ptr [rbp-30H], r10d mov rdx, gword ptr [rbp-F0H] mov r11, gword ptr [rbp-E8H] ;; size=47 bbWeight=0.50 PerfScore 5.00 G_M4653_IG11: xor esi, esi xor edi, edi test r13, r13 setne dil mov dword ptr [rbp-38H], edi test edi, edi jne SHORT G_M4653_IG13 ;; size=18 bbWeight=1 PerfScore 4.00 G_M4653_IG12: mov ecx, 32 jmp SHORT G_M4653_IG14 ;; size=7 bbWeight=0.50 PerfScore 1.12 G_M4653_IG13: mov ecx, 0xD1FFAB1E ;; size=5 bbWeight=0.50 PerfScore 0.12 G_M4653_IG14: mov dword ptr [rbp-3CH], ecx mov bword ptr [rbp-E0H], rax mov rcx, qword ptr [rax] cmp rcx, rbx jb SHORT G_M4653_IG16 ;; size=18 bbWeight=1 PerfScore 5.25 G_M4653_IG15: xor eax, eax mov gword ptr [rbp-E8H], r11 jmp SHORT G_M4653_IG17 ;; size=11 bbWeight=0.50 PerfScore 1.62 G_M4653_IG16: movzx rax, word ptr [rcx] mov gword ptr [rbp-E8H], r11 ;; size=10 bbWeight=0.50 PerfScore 1.50 G_M4653_IG17: movzx rax, ax mov r11, qword ptr [r12+16] mov qword ptr [rbp-58H], r11 ;; size=12 bbWeight=1 PerfScore 3.25 G_M4653_IG18: cmp eax, 32 je SHORT G_M4653_IG20 ;; size=5 bbWeight=8 PerfScore 10.00 G_M4653_IG19: cmp eax, 9 jl SHORT G_M4653_IG21 mov dword ptr [rbp-4CH], eax cmp eax, 13 mov eax, dword ptr [rbp-4CH] jg SHORT G_M4653_IG21 ;; size=16 bbWeight=2 PerfScore 9.00 G_M4653_IG20: test r14b, 1 je SHORT G_M4653_IG21 test sil, 1 je G_M4653_IG37 test sil, 32 jne G_M4653_IG37 cmp dword ptr [r15+168], 2 je G_M4653_IG37 ;; size=40 bbWeight=2 PerfScore 15.50 G_M4653_IG21: test r14b, 4 je G_M4653_IG33 ;; size=10 bbWeight=4 PerfScore 5.00 G_M4653_IG22: mov dword ptr [rbp-34H], esi test sil, 1 jne SHORT G_M4653_IG23 mov r11, gword ptr [r15+32] test r11, r11 jne SHORT G_M4653_IG24 xor r11d, r11d mov dword ptr [rbp-4CH], eax mov gword ptr [rbp-F0H], rdx jmp SHORT G_M4653_IG25 ;; size=33 bbWeight=2 PerfScore 19.50 G_M4653_IG23: mov esi, dword ptr [rbp-34H] jmp G_M4653_IG33 ;; size=8 bbWeight=1 PerfScore 3.00 G_M4653_IG24: add r11, 12 mov bword ptr [rbp-70H], r11 mov r11, bword ptr [rbp-70H] mov dword ptr [rbp-4CH], eax mov gword ptr [rbp-F0H], rdx ;; size=22 bbWeight=2 PerfScore 8.50 G_M4653_IG25: mov qword ptr [rbp-48H], rcx mov rdi, rcx mov rsi, rbx mov rdx, r11 call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-70H], rdi test rax, rax jne SHORT G_M4653_IG29 mov rdi, gword ptr [r15+40] test rdi, rdi jne SHORT G_M4653_IG26 xor edx, edx jmp SHORT G_M4653_IG27 ;; size=43 bbWeight=2 PerfScore 25.50 G_M4653_IG26: add rdi, 12 mov bword ptr [rbp-78H], rdi mov rdx, bword ptr [rbp-78H] ;; size=12 bbWeight=2 PerfScore 4.50 G_M4653_IG27: mov rdi, qword ptr [rbp-48H] mov rsi, rbx call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-78H], rdi xor edi, edi test rax, rax sete dil test edi, dword ptr [rbp-2CH] je SHORT G_M4653_IG28 mov r8, qword ptr [rbp-48H] cmp r8, rbx jae SHORT G_M4653_IG32 cmp word ptr [r8], 45 jne SHORT G_M4653_IG31 lea rax, [r8+2] mov qword ptr [rbp-48H], r8 ;; size=57 bbWeight=2 PerfScore 35.50 G_M4653_IG28: test rax, rax mov rcx, qword ptr [rbp-48H] je SHORT G_M4653_IG30 mov byte ptr [r12+8], 1 ;; size=15 bbWeight=2 PerfScore 6.50 G_M4653_IG29: mov esi, dword ptr [rbp-34H] or esi, 1 lea r8, [rax-2] mov rcx, r8 mov rdx, gword ptr [rbp-F0H] jmp G_M4653_IG37 ;; size=25 bbWeight=2 PerfScore 10.00 G_M4653_IG30: mov eax, dword ptr [rbp-4CH] mov rdx, gword ptr [rbp-F0H] mov esi, dword ptr [rbp-34H] jmp SHORT G_M4653_IG33 ;; size=15 bbWeight=1 PerfScore 5.00 G_M4653_IG31: mov qword ptr [rbp-48H], r8 jmp SHORT G_M4653_IG28 ;; size=6 bbWeight=1 PerfScore 3.00 G_M4653_IG32: mov qword ptr [rbp-48H], r8 jmp SHORT G_M4653_IG28 ;; size=6 bbWeight=1 PerfScore 3.00 G_M4653_IG33: mov dword ptr [rbp-4CH], eax cmp eax, 40 jne SHORT G_M4653_IG35 ;; size=8 bbWeight=4 PerfScore 9.00 G_M4653_IG34: test r14b, 16 je SHORT G_M4653_IG35 test sil, 1 jne SHORT G_M4653_IG35 or esi, 3 mov dword ptr [rbp-34H], esi mov byte ptr [r12+8], 1 mov esi, dword ptr [rbp-34H] jmp SHORT G_M4653_IG37 ;; size=29 bbWeight=2 PerfScore 15.50 G_M4653_IG35: mov r8, gword ptr [rbp-F8H] test r8, r8 je G_M4653_IG42 ;; size=16 bbWeight=4 PerfScore 9.00 G_M4653_IG36: mov dword ptr [rbp-34H], esi mov gword ptr [rbp-F0H], rdx mov gword ptr [rbp-F8H], r8 lea r11, bword ptr [r8+12] mov bword ptr [rbp-80H], r11 mov r11, bword ptr [rbp-80H] mov qword ptr [rbp-48H], rcx mov rdi, rcx mov rsi, rbx mov rdx, r11 call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-80H], rdi test rax, rax mov rcx, qword ptr [rbp-48H] mov r8, gword ptr [rbp-F8H] je SHORT G_M4653_IG39 mov ecx, dword ptr [rbp-34H] or ecx, 32 xor r8, r8 mov gword ptr [rbp-F8H], r8 lea rdi, [rax-2] mov esi, ecx mov rcx, rdi mov rdx, gword ptr [rbp-F0H] ;; size=102 bbWeight=2 PerfScore 38.50 G_M4653_IG37: add rcx, 2 cmp rcx, rbx jb SHORT G_M4653_IG40 ;; size=9 bbWeight=4 PerfScore 6.00 G_M4653_IG38: xor eax, eax jmp SHORT G_M4653_IG41 ;; size=4 bbWeight=2 PerfScore 4.50 G_M4653_IG39: mov rdx, gword ptr [rbp-F0H] mov esi, dword ptr [rbp-34H] jmp SHORT G_M4653_IG42 ;; size=12 bbWeight=1 PerfScore 4.00 G_M4653_IG40: mov qword ptr [rbp-48H], rcx movzx rax, word ptr [rcx] mov rcx, qword ptr [rbp-48H] ;; size=11 bbWeight=2 PerfScore 8.00 G_M4653_IG41: movzx rax, ax jmp G_M4653_IG18 ;; size=8 bbWeight=4 PerfScore 9.00 G_M4653_IG42: xor r11d, r11d xor edi, edi mov dword ptr [rbp-60H], edi mov gword ptr [rbp-F0H], rdx ;; size=15 bbWeight=1 PerfScore 2.50 G_M4653_IG43: mov eax, dword ptr [rbp-4CH] lea edx, [rax-48] cmp edx, 9 jbe SHORT G_M4653_IG46 ;; size=11 bbWeight=8 PerfScore 22.00 G_M4653_IG44: test r14d, 512 je G_M4653_IG59 ;; size=13 bbWeight=4 PerfScore 5.00 G_M4653_IG45: mov edx, eax or edx, 32 movzx rdx, dx add edx, -97 cmp edx, 5 ja G_M4653_IG59 ;; size=20 bbWeight=2 PerfScore 4.50 G_M4653_IG46: or esi, 4 cmp eax, 48 jne SHORT G_M4653_IG48 mov dword ptr [rbp-34H], esi test sil, 8 jne SHORT G_M4653_IG50 mov edx, dword ptr [rbp-38H] test edx, edx je G_M4653_IG57 test r14d, 512 je G_M4653_IG57 ;; size=41 bbWeight=2 PerfScore 14.50 G_M4653_IG47: mov esi, dword ptr [rbp-34H] ;; size=3 bbWeight=1 PerfScore 1.00 G_M4653_IG48: mov dword ptr [rbp-5CH], r11d cmp r11d, dword ptr [rbp-3CH] jge G_M4653_IG54 cmp dword ptr [rbp-38H], 0 je SHORT G_M4653_IG52 mov edx, dword ptr [r13+24] mov r9, gword ptr [r13+8] cmp dword ptr [r9+8], edx jbe SHORT G_M4653_IG51 ;; size=34 bbWeight=2 PerfScore 30.00 G_M4653_IG49: mov edx, edx mov word ptr [r9+2*rdx+16], ax inc dword ptr [r13+24] mov dword ptr [rbp-4CH], eax mov dword ptr [rbp-34H], esi mov gword ptr [rbp-F8H], r8 jmp SHORT G_M4653_IG53 ;; size=27 bbWeight=1.84 PerfScore 17.01 G_M4653_IG50: mov esi, dword ptr [rbp-34H] jmp SHORT G_M4653_IG48 ;; size=5 bbWeight=1 PerfScore 3.00 G_M4653_IG51: mov qword ptr [rbp-48H], rcx mov dword ptr [rbp-34H], esi mov gword ptr [rbp-F8H], r8 mov rdi, r13 mov dword ptr [rbp-4CH], eax mov esi, eax mov edx, 1 call [StringBuilder:Append(ushort,int):StringBuilder:this] mov rcx, qword ptr [rbp-48H] jmp SHORT G_M4653_IG53 ;; size=39 bbWeight=2 PerfScore 21.50 G_M4653_IG52: mov r11d, dword ptr [rbp-5CH] lea edx, [r11+1] movsxd r11, r11d mov rdi, qword ptr [rbp-58H] mov word ptr [rdi+2*r11], ax mov dword ptr [rbp-4CH], eax mov dword ptr [rbp-34H], esi mov gword ptr [rbp-F8H], r8 mov dword ptr [rbp-5CH], edx mov qword ptr [rbp-58H], rdi ;; size=40 bbWeight=2 PerfScore 17.50 G_M4653_IG53: xor eax, eax cmp dword ptr [rbp-4CH], 48 setne al mov r11d, dword ptr [rbp+10H] movzx r11, r11b or eax, r11d je SHORT G_M4653_IG56 mov edx, dword ptr [rbp-5CH] mov dword ptr [rbp-60H], edx mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] ;; size=38 bbWeight=2 PerfScore 19.50 G_M4653_IG54: test sil, 16 jne SHORT G_M4653_IG55 lea rax, bword ptr [r12+4] inc dword ptr [rax] ;; size=13 bbWeight=2 PerfScore 9.50 G_M4653_IG55: or esi, 8 jmp G_M4653_IG80 ;; size=8 bbWeight=2 PerfScore 4.50 G_M4653_IG56: mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] jmp SHORT G_M4653_IG54 ;; size=12 bbWeight=1 PerfScore 4.00 G_M4653_IG57: mov esi, dword ptr [rbp-34H] test sil, 16 je SHORT G_M4653_IG58 lea rax, bword ptr [r12+4] dec dword ptr [rax] mov dword ptr [rbp-5CH], r11d jmp G_M4653_IG80 ;; size=25 bbWeight=2 PerfScore 17.50 G_M4653_IG58: mov dword ptr [rbp-5CH], r11d jmp G_M4653_IG80 ;; size=9 bbWeight=1 PerfScore 3.00 G_M4653_IG59: test r14b, 32 je G_M4653_IG70 ;; size=10 bbWeight=4 PerfScore 5.00 G_M4653_IG60: mov dword ptr [rbp-34H], esi test sil, 16 jne SHORT G_M4653_IG61 mov rdx, gword ptr [rbp-E8H] test rdx, rdx jne SHORT G_M4653_IG62 xor edi, edi mov dword ptr [rbp-4CH], eax mov gword ptr [rbp-F8H], r8 mov dword ptr [rbp-5CH], r11d mov qword ptr [rbp-90H], rdi mov gword ptr [rbp-E8H], rdx jmp SHORT G_M4653_IG63 ;; size=53 bbWeight=2 PerfScore 23.50 G_M4653_IG61: mov esi, dword ptr [rbp-34H] jmp G_M4653_IG70 ;; size=8 bbWeight=1 PerfScore 3.00 G_M4653_IG62: mov gword ptr [rbp-E8H], rdx lea rdi, bword ptr [rdx+12] mov bword ptr [rbp-88H], rdi mov rdi, bword ptr [rbp-88H] mov qword ptr [rbp-90H], rdi mov dword ptr [rbp-4CH], eax mov gword ptr [rbp-F8H], r8 mov dword ptr [rbp-5CH], r11d ;; size=46 bbWeight=2 PerfScore 15.00 G_M4653_IG63: mov qword ptr [rbp-48H], rcx mov rdi, rcx mov rsi, rbx mov rdx, qword ptr [rbp-90H] call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-88H], rdi test rax, rax jne SHORT G_M4653_IG68 cmp dword ptr [rbp-30H], 0 je SHORT G_M4653_IG65 test byte ptr [rbp-34H], 32 jne SHORT G_M4653_IG64 mov rdi, gword ptr [r15+48] test rdi, rdi jne SHORT G_M4653_IG66 xor edx, edx jmp SHORT G_M4653_IG67 ;; size=62 bbWeight=2 PerfScore 39.00 G_M4653_IG64: mov eax, dword ptr [rbp-4CH] mov rcx, qword ptr [rbp-48H] mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] mov r11d, dword ptr [rbp-5CH] jmp SHORT G_M4653_IG70 ;; size=23 bbWeight=1 PerfScore 7.00 G_M4653_IG65: mov eax, dword ptr [rbp-4CH] mov rcx, qword ptr [rbp-48H] mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] mov r11d, dword ptr [rbp-5CH] jmp SHORT G_M4653_IG70 ;; size=23 bbWeight=1 PerfScore 7.00 G_M4653_IG66: add rdi, 12 mov bword ptr [rbp-98H], rdi mov rdx, bword ptr [rbp-98H] ;; size=18 bbWeight=2 PerfScore 4.50 G_M4653_IG67: mov rdi, qword ptr [rbp-48H] mov rsi, rbx call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-98H], rdi test rax, rax mov rcx, qword ptr [rbp-48H] je SHORT G_M4653_IG69 ;; size=31 bbWeight=2 PerfScore 15.50 G_M4653_IG68: mov ecx, dword ptr [rbp-34H] or ecx, 16 lea rdi, [rax-2] mov r8, rdi mov esi, ecx mov rcx, r8 mov r8, gword ptr [rbp-F8H] jmp G_M4653_IG80 ;; size=30 bbWeight=2 PerfScore 11.00 G_M4653_IG69: mov eax, dword ptr [rbp-4CH] mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] mov r11d, dword ptr [rbp-5CH] ;; size=17 bbWeight=1 PerfScore 4.00 G_M4653_IG70: test r14b, 64 je G_M4653_IG85 ;; size=10 bbWeight=4 PerfScore 5.00 G_M4653_IG71: test sil, 4 je G_M4653_IG85 mov dword ptr [rbp-34H], esi test sil, 16 jne SHORT G_M4653_IG72 mov rdx, gword ptr [rbp-F0H] test rdx, rdx jne SHORT G_M4653_IG73 xor edi, edi mov dword ptr [rbp-4CH], eax mov gword ptr [rbp-F8H], r8 mov dword ptr [rbp-5CH], r11d mov qword ptr [rbp-A8H], rdi mov gword ptr [rbp-F0H], rdx jmp SHORT G_M4653_IG74 ;; size=63 bbWeight=2 PerfScore 26.00 G_M4653_IG72: mov esi, dword ptr [rbp-34H] jmp G_M4653_IG85 ;; size=8 bbWeight=1 PerfScore 3.00 G_M4653_IG73: mov gword ptr [rbp-F0H], rdx lea rdi, bword ptr [rdx+12] mov bword ptr [rbp-A0H], rdi mov rdi, bword ptr [rbp-A0H] mov qword ptr [rbp-A8H], rdi mov dword ptr [rbp-4CH], eax mov gword ptr [rbp-F8H], r8 mov dword ptr [rbp-5CH], r11d ;; size=46 bbWeight=2 PerfScore 15.00 G_M4653_IG74: mov qword ptr [rbp-48H], rcx mov rdi, rcx mov rsi, rbx mov rdx, qword ptr [rbp-A8H] call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-A0H], rdi test rax, rax jne SHORT G_M4653_IG79 cmp dword ptr [rbp-30H], 0 je SHORT G_M4653_IG76 test byte ptr [rbp-34H], 32 jne SHORT G_M4653_IG75 mov rdi, gword ptr [r15+56] test rdi, rdi jne SHORT G_M4653_IG77 xor edx, edx jmp SHORT G_M4653_IG78 ;; size=62 bbWeight=2 PerfScore 39.00 G_M4653_IG75: mov eax, dword ptr [rbp-4CH] mov rcx, qword ptr [rbp-48H] mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] jmp G_M4653_IG85 ;; size=22 bbWeight=1 PerfScore 6.00 G_M4653_IG76: mov eax, dword ptr [rbp-4CH] mov rcx, qword ptr [rbp-48H] mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] jmp SHORT G_M4653_IG85 ;; size=19 bbWeight=1 PerfScore 6.00 G_M4653_IG77: add rdi, 12 mov bword ptr [rbp-B0H], rdi mov rdx, bword ptr [rbp-B0H] ;; size=18 bbWeight=2 PerfScore 4.50 G_M4653_IG78: mov rdi, qword ptr [rbp-48H] mov rsi, rbx call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-B0H], rdi test rax, rax mov rcx, qword ptr [rbp-48H] je SHORT G_M4653_IG82 ;; size=31 bbWeight=2 PerfScore 15.50 G_M4653_IG79: lea rdi, [rax-2] mov rcx, rdi mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] ;; size=17 bbWeight=2 PerfScore 5.50 G_M4653_IG80: add rcx, 2 cmp rcx, rbx jb SHORT G_M4653_IG83 ;; size=9 bbWeight=4 PerfScore 6.00 G_M4653_IG81: xor eax, eax jmp SHORT G_M4653_IG84 ;; size=4 bbWeight=2 PerfScore 4.50 G_M4653_IG82: mov eax, dword ptr [rbp-4CH] mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] jmp SHORT G_M4653_IG85 ;; size=15 bbWeight=1 PerfScore 5.00 G_M4653_IG83: mov qword ptr [rbp-48H], rcx movzx rax, word ptr [rcx] mov rcx, qword ptr [rbp-48H] ;; size=11 bbWeight=2 PerfScore 8.00 G_M4653_IG84: movzx rax, ax mov dword ptr [rbp-4CH], eax mov r11d, dword ptr [rbp-5CH] jmp G_M4653_IG43 ;; size=15 bbWeight=4 PerfScore 17.00 G_M4653_IG85: xor r10d, r10d mov dword ptr [rbp-64H], r10d mov edi, dword ptr [rbp-60H] mov dword ptr [r12], edi cmp dword ptr [rbp-38H], 0 je SHORT G_M4653_IG89 ;; size=20 bbWeight=1 PerfScore 6.25 G_M4653_IG86: mov edi, dword ptr [r13+24] mov rdx, gword ptr [r13+8] mov r11d, dword ptr [rdx+8] cmp r11d, edi jbe SHORT G_M4653_IG88 ;; size=17 bbWeight=0.50 PerfScore 3.62 G_M4653_IG87: mov edi, edi mov word ptr [rdx+2*rdi+16], 0 inc dword ptr [r13+24] mov qword ptr [rbp-48H], rcx mov dword ptr [rbp-4CH], eax mov dword ptr [rbp-34H], esi mov gword ptr [rbp-F8H], r8 jmp SHORT G_M4653_IG90 ;; size=32 bbWeight=0.46 PerfScore 4.71 G_M4653_IG88: mov qword ptr [rbp-48H], rcx mov dword ptr [rbp-4CH], eax mov dword ptr [rbp-34H], esi mov gword ptr [rbp-F8H], r8 mov rdi, r13 xor esi, esi mov edx, 1 call [StringBuilder:Append(ushort,int):StringBuilder:this] jmp SHORT G_M4653_IG90 ;; size=35 bbWeight=0.50 PerfScore 4.88 G_M4653_IG89: movsxd rdi, edi mov r13, qword ptr [rbp-58H] mov word ptr [r13+2*rdi], 0 mov qword ptr [rbp-48H], rcx mov dword ptr [rbp-4CH], eax mov dword ptr [rbp-34H], esi mov gword ptr [rbp-F8H], r8 ;; size=32 bbWeight=0.50 PerfScore 3.12 G_M4653_IG90: test byte ptr [rbp-34H], 4 je G_M4653_IG150 ;; size=10 bbWeight=1 PerfScore 3.00 G_M4653_IG91: mov eax, dword ptr [rbp-4CH] cmp eax, 69 je SHORT G_M4653_IG92 cmp eax, 101 jne SHORT G_M4653_IG94 ;; size=13 bbWeight=0.50 PerfScore 1.75 G_M4653_IG92: test r14b, 128 je SHORT G_M4653_IG93 mov rcx, qword ptr [rbp-48H] mov r13, rcx lea rcx, [r13+2] cmp rcx, rbx jb SHORT G_M4653_IG95 xor eax, eax jmp SHORT G_M4653_IG96 ;; size=26 bbWeight=0.50 PerfScore 3.25 G_M4653_IG93: mov rcx, qword ptr [rbp-48H] jmp G_M4653_IG125 align [4 bytes for IG115] ;; size=13 bbWeight=0.25 PerfScore 0.75 G_M4653_IG94: mov rcx, qword ptr [rbp-48H] jmp G_M4653_IG125 ;; size=9 bbWeight=0.25 PerfScore 0.75 G_M4653_IG95: movzx rax, word ptr [rcx] ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M4653_IG96: movzx rax, ax mov dword ptr [rbp-4CH], eax mov rdi, gword ptr [r15+32] test rdi, rdi jne SHORT G_M4653_IG97 xor edx, edx jmp SHORT G_M4653_IG98 ;; size=19 bbWeight=0.50 PerfScore 3.38 G_M4653_IG97: add rdi, 12 mov bword ptr [rbp-B8H], rdi mov rdx, bword ptr [rbp-B8H] ;; size=18 bbWeight=0.50 PerfScore 1.12 G_M4653_IG98: mov qword ptr [rbp-48H], rcx mov rdi, rcx mov rsi, rbx call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-B8H], rdi test rax, rax je SHORT G_M4653_IG101 mov rcx, rax cmp rcx, rbx jb SHORT G_M4653_IG99 xor edi, edi jmp SHORT G_M4653_IG100 ;; size=42 bbWeight=0.50 PerfScore 5.38 G_M4653_IG99: movzx rdi, word ptr [rcx] ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M4653_IG100: movzx rax, di mov dword ptr [rbp-4CH], eax jmp G_M4653_IG109 ;; size=11 bbWeight=0.50 PerfScore 1.62 G_M4653_IG101: mov rcx, qword ptr [rbp-48H] mov rdi, gword ptr [r15+40] test rdi, rdi jne SHORT G_M4653_IG102 xor edx, edx jmp SHORT G_M4653_IG103 ;; size=17 bbWeight=0.50 PerfScore 3.25 G_M4653_IG102: add rdi, 12 mov bword ptr [rbp-C0H], rdi mov rdx, bword ptr [rbp-C0H] ;; size=18 bbWeight=0.50 PerfScore 1.12 G_M4653_IG103: mov qword ptr [rbp-48H], rcx mov rdi, rcx mov rsi, rbx call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-C0H], rdi xor edi, edi test rax, rax sete dil test edi, dword ptr [rbp-2CH] je SHORT G_M4653_IG104 mov r8, qword ptr [rbp-48H] cmp r8, rbx jae SHORT G_M4653_IG106 cmp word ptr [r8], 45 jne SHORT G_M4653_IG105 lea rax, [r8+2] mov qword ptr [rbp-48H], r8 ;; size=63 bbWeight=0.50 PerfScore 9.00 G_M4653_IG104: test rax, rax mov rcx, qword ptr [rbp-48H] je SHORT G_M4653_IG109 mov r8, rax cmp r8, rbx jb SHORT G_M4653_IG107 xor edi, edi jmp SHORT G_M4653_IG108 ;; size=21 bbWeight=0.50 PerfScore 3.00 G_M4653_IG105: mov qword ptr [rbp-48H], r8 jmp SHORT G_M4653_IG104 ;; size=6 bbWeight=0.25 PerfScore 0.75 G_M4653_IG106: mov qword ptr [rbp-48H], r8 jmp SHORT G_M4653_IG104 ;; size=6 bbWeight=0.25 PerfScore 0.75 G_M4653_IG107: movzx rdi, word ptr [r8] ;; size=4 bbWeight=0.50 PerfScore 1.00 G_M4653_IG108: movzx rax, di mov edi, 1 mov dword ptr [rbp-4CH], eax mov dword ptr [rbp-64H], edi mov rcx, r8 ;; size=17 bbWeight=0.50 PerfScore 1.38 G_M4653_IG109: mov eax, dword ptr [rbp-4CH] lea esi, [rax-48] cmp esi, 9 ja SHORT G_M4653_IG122 xor esi, esi ;; size=13 bbWeight=0.50 PerfScore 1.50 G_M4653_IG110: lea esi, [rsi+4*rsi] lea esi, [rax+2*rsi-48] add rcx, 2 mov r13, rcx cmp r13, rbx jb SHORT G_M4653_IG112 ;; size=19 bbWeight=4 PerfScore 13.00 G_M4653_IG111: xor eax, eax jmp SHORT G_M4653_IG113 ;; size=4 bbWeight=2 PerfScore 4.50 G_M4653_IG112: movzx rax, word ptr [r13] ;; size=5 bbWeight=2 PerfScore 4.00 G_M4653_IG113: movzx rax, ax cmp esi, 0x3E8 jle SHORT G_M4653_IG119 ;; size=11 bbWeight=4 PerfScore 6.00 G_M4653_IG114: mov esi, 0x270F lea edx, [rax-48] cmp edx, 9 ja SHORT G_M4653_IG119 ;; size=13 bbWeight=2 PerfScore 4.00 G_M4653_IG115: add r13, 2 cmp r13, rbx jb SHORT G_M4653_IG117 ;; size=9 bbWeight=16 PerfScore 24.00 G_M4653_IG116: xor eax, eax jmp SHORT G_M4653_IG118 ;; size=4 bbWeight=8 PerfScore 18.00 G_M4653_IG117: movzx rax, word ptr [r13] ;; size=5 bbWeight=8 PerfScore 16.00 G_M4653_IG118: movzx rax, ax lea edx, [rax-48] cmp edx, 9 jbe SHORT G_M4653_IG115 ;; size=11 bbWeight=16 PerfScore 32.00 G_M4653_IG119: lea edx, [rax-48] cmp edx, 9 mov rcx, r13 jbe SHORT G_M4653_IG110 ;; size=11 bbWeight=4 PerfScore 8.00 G_M4653_IG120: cmp dword ptr [rbp-64H], 0 je SHORT G_M4653_IG121 neg esi ;; size=8 bbWeight=0.50 PerfScore 1.62 G_M4653_IG121: lea rdi, bword ptr [r12+4] add dword ptr [rdi], esi jmp SHORT G_M4653_IG125 ;; size=9 bbWeight=0.50 PerfScore 2.75 G_M4653_IG122: mov rcx, r13 cmp rcx, rbx jb SHORT G_M4653_IG123 xor eax, eax jmp SHORT G_M4653_IG124 ;; size=12 bbWeight=0.50 PerfScore 1.88 G_M4653_IG123: movzx rax, word ptr [rcx] ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M4653_IG124: movzx rax, ax mov r13d, eax mov eax, r13d ;; size=9 bbWeight=0.50 PerfScore 0.38 G_M4653_IG125: cmp eax, 32 je SHORT G_M4653_IG127 ;; size=5 bbWeight=4 PerfScore 5.00 G_M4653_IG126: cmp eax, 9 jl SHORT G_M4653_IG128 mov dword ptr [rbp-4CH], eax cmp eax, 13 mov eax, dword ptr [rbp-4CH] jg SHORT G_M4653_IG128 ;; size=16 bbWeight=2 PerfScore 9.00 G_M4653_IG127: test r14b, 2 jne G_M4653_IG141 ;; size=10 bbWeight=2 PerfScore 2.50 G_M4653_IG128: test r14b, 8 je G_M4653_IG138 test byte ptr [rbp-34H], 1 jne G_M4653_IG138 mov rdi, gword ptr [r15+32] test rdi, rdi jne SHORT G_M4653_IG129 xor edx, edx mov dword ptr [rbp-4CH], eax jmp SHORT G_M4653_IG130 ;; size=36 bbWeight=2 PerfScore 21.50 G_M4653_IG129: add rdi, 12 mov bword ptr [rbp-C8H], rdi mov rdx, bword ptr [rbp-C8H] mov dword ptr [rbp-4CH], eax ;; size=21 bbWeight=2 PerfScore 6.50 G_M4653_IG130: mov qword ptr [rbp-48H], rcx mov rdi, rcx mov rsi, rbx call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-C8H], rdi test rax, rax jne SHORT G_M4653_IG134 mov rdi, gword ptr [r15+40] test rdi, rdi jne SHORT G_M4653_IG131 xor edx, edx jmp SHORT G_M4653_IG132 ;; size=43 bbWeight=2 PerfScore 25.00 G_M4653_IG131: add rdi, 12 mov bword ptr [rbp-D0H], rdi mov rdx, bword ptr [rbp-D0H] ;; size=18 bbWeight=2 PerfScore 4.50 G_M4653_IG132: mov rdi, qword ptr [rbp-48H] mov rsi, rbx call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-D0H], rdi xor edi, edi test rax, rax sete dil test edi, dword ptr [rbp-2CH] je SHORT G_M4653_IG133 mov rcx, qword ptr [rbp-48H] cmp rcx, rbx jae SHORT G_M4653_IG137 cmp word ptr [rcx], 45 jne SHORT G_M4653_IG136 lea rax, [rcx+2] mov qword ptr [rbp-48H], rcx ;; size=59 bbWeight=2 PerfScore 35.50 G_M4653_IG133: test rax, rax mov rcx, qword ptr [rbp-48H] je SHORT G_M4653_IG135 mov byte ptr [r12+8], 1 ;; size=15 bbWeight=2 PerfScore 6.50 G_M4653_IG134: mov r8d, dword ptr [rbp-34H] or r8d, 1 lea rcx, [rax-2] mov dword ptr [rbp-34H], r8d jmp SHORT G_M4653_IG141 ;; size=18 bbWeight=2 PerfScore 9.50 G_M4653_IG135: mov eax, dword ptr [rbp-4CH] jmp SHORT G_M4653_IG138 ;; size=5 bbWeight=1 PerfScore 3.00 G_M4653_IG136: mov qword ptr [rbp-48H], rcx jmp SHORT G_M4653_IG133 ;; size=6 bbWeight=1 PerfScore 3.00 G_M4653_IG137: mov qword ptr [rbp-48H], rcx jmp SHORT G_M4653_IG133 ;; size=6 bbWeight=1 PerfScore 3.00 G_M4653_IG138: cmp eax, 41 jne SHORT G_M4653_IG140 mov esi, dword ptr [rbp-34H] test sil, 2 je SHORT G_M4653_IG139 and esi, -3 mov dword ptr [rbp-34H], esi jmp SHORT G_M4653_IG141 ;; size=22 bbWeight=2 PerfScore 13.50 G_M4653_IG139: mov dword ptr [rbp-34H], esi ;; size=3 bbWeight=1 PerfScore 1.00 G_M4653_IG140: mov r8, gword ptr [rbp-F8H] test r8, r8 je SHORT G_M4653_IG145 add r8, 12 mov bword ptr [rbp-D8H], r8 mov rdx, bword ptr [rbp-D8H] mov qword ptr [rbp-48H], rcx mov rdi, rcx mov rsi, rbx call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-D8H], rdi test rax, rax mov rcx, qword ptr [rbp-48H] je SHORT G_M4653_IG145 xor r8, r8 xor r13, r13 lea rcx, [rax-2] mov gword ptr [rbp-F8H], r13 ;; size=81 bbWeight=2 PerfScore 29.00 G_M4653_IG141: add rcx, 2 mov r13, rcx cmp r13, rbx jb SHORT G_M4653_IG143 ;; size=12 bbWeight=4 PerfScore 7.00 G_M4653_IG142: xor eax, eax jmp SHORT G_M4653_IG144 ;; size=4 bbWeight=2 PerfScore 4.50 G_M4653_IG143: movzx rax, word ptr [r13] ;; size=5 bbWeight=2 PerfScore 4.00 G_M4653_IG144: movzx rax, ax mov rcx, r13 jmp G_M4653_IG125 ;; size=11 bbWeight=4 PerfScore 10.00 G_M4653_IG145: mov esi, dword ptr [rbp-34H] test sil, 2 jne SHORT G_M4653_IG149 test sil, 8 jne SHORT G_M4653_IG147 cmp byte ptr [rbp+10H], 0 jne SHORT G_M4653_IG146 xor eax, eax mov dword ptr [r12+4], eax ;; size=28 bbWeight=0.50 PerfScore 3.88 G_M4653_IG146: test sil, 16 jne SHORT G_M4653_IG147 mov byte ptr [r12+8], 0 ;; size=12 bbWeight=0.50 PerfScore 1.12 G_M4653_IG147: mov rbx, bword ptr [rbp-E0H] mov qword ptr [rbx], rcx mov eax, 1 ;; size=15 bbWeight=0.50 PerfScore 1.12 G_M4653_IG148: add rsp, 216 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=18 bbWeight=0.50 PerfScore 2.12 G_M4653_IG149: mov qword ptr [rbp-48H], rcx ;; size=4 bbWeight=0.25 PerfScore 0.25 G_M4653_IG150: mov rbx, bword ptr [rbp-E0H] mov rcx, qword ptr [rbp-48H] mov qword ptr [rbx], rcx xor eax, eax ;; size=16 bbWeight=0.50 PerfScore 1.62 G_M4653_IG151: add rsp, 216 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=18 bbWeight=0.50 PerfScore 2.12 ; Total bytes of code 3052, prolog size 98, PerfScore 1559.75, instruction count 826, allocated bytes for code 3052 (MethodHash=5f20edd2) for method Number:ParseNumber(byref,long,int,byref,StringBuilder,NumberFormatInfo,bool):bool ; ============================================================
Testo modificato
Apri file
; Assembly listing for method Number:ParseNumber(byref,long,int,byref,StringBuilder,NumberFormatInfo,bool):bool ; Emitting BLENDED_CODE for X64 CPU with AVX - Unix ; Tier-1 compilation ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 37 single block inlinees; 19 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T44] ( 5, 4 ) byref -> [rbp-E0H] single-def ; V01 arg1 [V01,T02] ( 27, 62.50) long -> rbx single-def ; V02 arg2 [V02,T07] ( 13, 29.50) int -> r14 single-def ; V03 arg3 [V03,T09] ( 14, 17.50) byref -> r12 single-def ; V04 arg4 [V04,T25] ( 8, 7 ) ref -> r13 class-hnd single-def ; V05 arg5 [V05,T08] ( 17, 20.50) ref -> r15 class-hnd single-def ; V06 arg6 [V06,T80] ( 2, 2.50) bool -> [rbp+10H] single-def ; V07 loc0 [V07,T56] ( 4, 5 ) ref -> [rbp-E8H] class-hnd ; V08 loc1 [V08,T57] ( 4, 5 ) ref -> [rbp-F0H] class-hnd ; V09 loc2 [V09,T15] ( 8, 15.50) ref -> [rbp-F8H] class-hnd ; V10 loc3 [V10,T53] ( 4, 5.50) bool -> [rbp-2CH] ; V11 loc4 [V11,T54] ( 4, 5.50) bool -> [rbp-30H] ; V12 loc5 [V12,T04] ( 35, 63.50) int -> [rbp-34H] ; V13 loc6 [V13,T43] ( 5, 7 ) bool -> [rbp-38H] spill-single-def ; V14 loc7 [V14,T78] ( 2, 3 ) int -> [rbp-3CH] ; V15 loc8 [V15,T00] ( 65,168.50) long -> [rbp-48H] ; V16 loc9 [V16,T01] ( 31,106.50) ushort -> [rbp-4CH] ; V17 loc10 [V17,T05] ( 32, 55 ) long -> rax ; V18 loc11 [V18,T74] ( 3, 3.50) long -> [rbp-58H] ; V19 loc12 [V19,T26] ( 5, 9 ) int -> [rbp-5CH] ; V20 loc13 [V20,T58] ( 4, 4.50) int -> [rbp-60H] ; V21 loc14 [V21,T83] ( 3, 2 ) bool -> [rbp-64H] ;* V22 loc15 [V22 ] ( 0, 0 ) bool -> zero-ref ; V23 loc16 [V23,T91] ( 3, 1.50) long -> r13 ; V24 loc17 [V24,T10] ( 8, 16 ) int -> rsi ;# V25 OutArgs [V25 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace" ; V26 tmp1 [V26,T84] ( 3, 2 ) int -> rcx ; V27 tmp2 [V27,T85] ( 3, 2 ) int -> rax ; V28 tmp3 [V28,T11] ( 2, 16 ) long -> rcx "dup spill" ; V29 tmp4 [V29,T29] ( 3, 8 ) int -> rax ; V30 tmp5 [V30,T16] ( 3, 12 ) byref -> rax "dup spill" ; V31 tmp6 [V31,T24] ( 3, 12 ) int -> r11 "impSpillLclRefs" ; V32 tmp7 [V32,T17] ( 3, 12 ) byref -> rax "dup spill" ;* V33 tmp8 [V33 ] ( 0, 0 ) long -> zero-ref "dup spill" ; V34 tmp9 [V34,T12] ( 2, 16 ) long -> rcx "dup spill" ; V35 tmp10 [V35,T30] ( 3, 8 ) int -> rax ;* V36 tmp11 [V36 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V37 tmp12 [V37 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V38 tmp13 [V38 ] ( 0, 0 ) int -> zero-ref "dup spill" ; V39 tmp14 [V39,T86] ( 2, 2 ) long -> rcx "dup spill" ; V40 tmp15 [V40,T92] ( 3, 1.50) int -> rax ;* V41 tmp16 [V41 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V42 tmp17 [V42 ] ( 0, 0 ) long -> zero-ref "dup spill" ; V43 tmp18 [V43,T93] ( 3, 1.50) int -> rax ; V44 tmp19 [V44,T13] ( 2, 16 ) long -> rcx "dup spill" ; V45 tmp20 [V45,T31] ( 3, 8 ) int -> rax ; V46 tmp21 [V46,T75] ( 3, 3 ) byref -> rdi single-def "dup spill" ; V47 tmp22 [V47,T03] ( 2, 64 ) long -> r13 "dup spill" ; V48 tmp23 [V48,T06] ( 3, 32 ) int -> rax ; V49 tmp24 [V49,T94] ( 3, 1.50) int -> rdi ; V50 tmp25 [V50,T95] ( 3, 1.50) int -> rdi ;* V51 tmp26 [V51 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V52 tmp27 [V52 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V53 tmp28 [V53 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V54 tmp29 [V54 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V55 tmp30 [V55 ] ( 0, 0 ) long -> zero-ref "dup spill" ; V56 tmp31 [V56,T14] ( 2, 16 ) long -> rcx "dup spill" ; V57 tmp32 [V57,T32] ( 3, 8 ) int -> rax ;* V58 tmp33 [V58 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V59 tmp34 [V59 ] ( 0, 0 ) long -> zero-ref "dup spill" ;* V60 tmp35 [V60 ] ( 0, 0 ) int -> zero-ref "dup spill" ;* V61 tmp36 [V61 ] ( 0, 0 ) bool -> zero-ref "Inline return value spill temp" ; V62 tmp37 [V62,T73] ( 4, 3.50) ref -> rdi class-hnd "Inline stloc first use temp" ; V63 tmp38 [V63,T87] ( 2, 2 ) bool -> r9 "Inline stloc first use temp" ; V64 tmp39 [V64,T79] ( 3, 2.50) bool -> r9 "Inline stloc first use temp" ; V65 tmp40 [V65,T55] ( 10, 5 ) ushort -> r9 "Inline stloc first use temp" ; V66 tmp41 [V66,T96] ( 3, 1.50) bool -> r9 "Inline stloc first use temp" ;* V67 tmp42 [V67,T59] ( 0, 0 ) bool -> zero-ref "Inline return value spill temp" ; V68 tmp43 [V68,T60] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V69 tmp44 [V69,T18] ( 3, 12 ) ref -> r11 class-hnd "Inlining Arg" ; V70 tmp45 [V70 ] ( 3, 6 ) byref -> [rbp-70H] must-init pinned "Inline stloc first use temp" ; V71 tmp46 [V71,T45] ( 3, 6 ) long -> r11 ;* V72 tmp47 [V72 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V73 tmp48 [V73,T19] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg" ; V74 tmp49 [V74,T27] ( 4, 8 ) long -> rax "Inline stloc first use temp" ; V75 tmp50 [V75,T61] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V76 tmp51 [V76 ] ( 3, 6 ) byref -> [rbp-78H] must-init pinned "Inline stloc first use temp" ; V77 tmp52 [V77,T46] ( 3, 6 ) long -> rdx ;* V78 tmp53 [V78 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V79 tmp54 [V79,T62] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V80 tmp55 [V80 ] ( 3, 6 ) byref -> [rbp-80H] must-init pinned "Inline stloc first use temp" ; V81 tmp56 [V81,T63] ( 2, 4 ) long -> r11 ;* V82 tmp57 [V82 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V83 tmp58 [V83 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg" ; V84 tmp59 [V84,T64] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V85 tmp60 [V85 ] ( 3, 6 ) byref -> [rbp-88H] must-init pinned "Inline stloc first use temp" ; V86 tmp61 [V86,T47] ( 3, 6 ) long -> [rbp-90H] ;* V87 tmp62 [V87 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V88 tmp63 [V88,T65] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V89 tmp64 [V89,T20] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg" ; V90 tmp65 [V90 ] ( 3, 6 ) byref -> [rbp-98H] must-init pinned "Inline stloc first use temp" ; V91 tmp66 [V91,T48] ( 3, 6 ) long -> rdx ;* V92 tmp67 [V92 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V93 tmp68 [V93,T66] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V94 tmp69 [V94 ] ( 3, 6 ) byref -> [rbp-A0H] must-init pinned "Inline stloc first use temp" ; V95 tmp70 [V95,T49] ( 3, 6 ) long -> [rbp-A8H] ;* V96 tmp71 [V96 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V97 tmp72 [V97,T67] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V98 tmp73 [V98,T21] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg" ; V99 tmp74 [V99 ] ( 3, 6 ) byref -> [rbp-B0H] must-init pinned "Inline stloc first use temp" ; V100 tmp75 [V100,T50] ( 3, 6 ) long -> rdx ;* V101 tmp76 [V101 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V102 tmp77 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp" ; V103 tmp78 [V103,T81] ( 4, 2 ) int -> rdi "Inline stloc first use temp" ; V104 tmp79 [V104,T90] ( 3, 1.50) ref -> rdx class-hnd "Inline stloc first use temp" ; V105 tmp80 [V105,T99] ( 2, 1 ) long -> rax "Inline return value spill temp" ; V106 tmp81 [V106,T76] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" ; V107 tmp82 [V107 ] ( 3, 1.50) byref -> [rbp-B8H] must-init pinned "Inline stloc first use temp" ; V108 tmp83 [V108,T97] ( 3, 1.50) long -> rdx ;* V109 tmp84 [V109 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V110 tmp85 [V110,T77] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" ; V111 tmp86 [V111,T82] ( 4, 2 ) long -> rax "Inline stloc first use temp" ; V112 tmp87 [V112,T100] ( 2, 1 ) long -> rax "Inline return value spill temp" ; V113 tmp88 [V113 ] ( 3, 1.50) byref -> [rbp-C0H] must-init pinned "Inline stloc first use temp" ; V114 tmp89 [V114,T98] ( 3, 1.50) long -> rdx ;* V115 tmp90 [V115 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V116 tmp91 [V116,T68] ( 0, 0 ) bool -> zero-ref "Inline return value spill temp" ; V117 tmp92 [V117,T69] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V118 tmp93 [V118,T22] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg" ; V119 tmp94 [V119 ] ( 3, 6 ) byref -> [rbp-C8H] must-init pinned "Inline stloc first use temp" ; V120 tmp95 [V120,T51] ( 3, 6 ) long -> rdx ;* V121 tmp96 [V121 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V122 tmp97 [V122,T23] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg" ; V123 tmp98 [V123,T28] ( 4, 8 ) long -> rax "Inline stloc first use temp" ; V124 tmp99 [V124,T70] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V125 tmp100 [V125 ] ( 3, 6 ) byref -> [rbp-D0H] must-init pinned "Inline stloc first use temp" ; V126 tmp101 [V126,T52] ( 3, 6 ) long -> rdx ;* V127 tmp102 [V127 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V128 tmp103 [V128,T71] ( 2, 4 ) long -> rax "Inline return value spill temp" ; V129 tmp104 [V129 ] ( 3, 6 ) byref -> [rbp-D8H] must-init pinned "Inline stloc first use temp" ; V130 tmp105 [V130,T72] ( 2, 4 ) long -> rdx ;* V131 tmp106 [V131 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V132 tmp107 [V132,T33] ( 2, 8 ) long -> r11 "Cast away GC" ; V133 tmp108 [V133,T34] ( 2, 8 ) long -> rdx "Cast away GC" ; V134 tmp109 [V134,T35] ( 2, 8 ) long -> r11 "Cast away GC" ; V135 tmp110 [V135,T36] ( 2, 8 ) long -> rdi "Cast away GC" ; V136 tmp111 [V136,T37] ( 2, 8 ) long -> rdx "Cast away GC" ; V137 tmp112 [V137,T38] ( 2, 8 ) long -> rdi "Cast away GC" ; V138 tmp113 [V138,T39] ( 2, 8 ) long -> rdx "Cast away GC" ; V139 tmp114 [V139,T88] ( 2, 2 ) long -> rdx "Cast away GC" ; V140 tmp115 [V140,T89] ( 2, 2 ) long -> rdx "Cast away GC" ; V141 tmp116 [V141,T40] ( 2, 8 ) long -> rdx "Cast away GC" ; V142 tmp117 [V142,T41] ( 2, 8 ) long -> rdx "Cast away GC" ; V143 tmp118 [V143,T42] ( 2, 8 ) long -> rdx "Cast away GC" ; V144 cse0 [V144,T101] ( 2, 1 ) int -> r11 "CSE - conservative" ; ; Lcl frame size = 216 G_M4653_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 216 lea rbp, [rsp+100H] xor eax, eax mov qword ptr [rbp-D8H], rax vxorps xmm8, xmm8 mov rax, -96 vmovdqa xmmword ptr [rbp+rax-70H], xmm8 vmovdqa xmmword ptr [rbp+rax-60H], xmm8 vmovdqa xmmword ptr [rbp+rax-50H], xmm8 add rax, 48 jne SHORT -5 instr mov qword ptr [rbp-70H], rax mov rax, rdi mov rbx, rsi mov r14d, edx mov r12, rcx mov r13, r8 mov r15, r9 ;; size=95 bbWeight=1 PerfScore 18.33 G_M4653_IG02: xor edi, edi mov dword ptr [r12+4], edi mov byte ptr [r12+8], 0 xor r8, r8 mov rdi, gword ptr [r15+40] xor r9d, r9d cmp dword ptr [rdi+8], 1 sete r9b cmp dword ptr [rdi+8], 1 jne SHORT G_M4653_IG08 ;; size=37 bbWeight=1 PerfScore 12.75 G_M4653_IG03: movzx r9, word ptr [rdi+12] cmp r9d, 0x208B ja SHORT G_M4653_IG04 cmp r9d, 0x2012 je SHORT G_M4653_IG06 cmp r9d, 0x207B je SHORT G_M4653_IG06 cmp r9d, 0x208B je SHORT G_M4653_IG06 jmp SHORT G_M4653_IG07 ;; size=43 bbWeight=0.50 PerfScore 4.50 G_M4653_IG04: cmp r9d, 0x2796 ja SHORT G_M4653_IG05 cmp r9d, 0x2212 je SHORT G_M4653_IG06 cmp r9d, 0x2796 je SHORT G_M4653_IG06 jmp SHORT G_M4653_IG07 ;; size=29 bbWeight=0.50 PerfScore 2.88 G_M4653_IG05: cmp r9d, 0xFE63 je SHORT G_M4653_IG06 cmp r9d, 0xFF0D jne SHORT G_M4653_IG07 ;; size=18 bbWeight=0.50 PerfScore 1.25 G_M4653_IG06: mov r9d, 1 jmp SHORT G_M4653_IG08 ;; size=8 bbWeight=0.50 PerfScore 1.12 G_M4653_IG07: xor r9d, r9d ;; size=3 bbWeight=0.50 PerfScore 0.12 G_M4653_IG08: mov dword ptr [rbp-2CH], r9d xor r10d, r10d test r14d, 256 je SHORT G_M4653_IG10 ;; size=16 bbWeight=1 PerfScore 2.50 G_M4653_IG09: mov r8, gword ptr [r15+80] mov gword ptr [rbp-F8H], r8 mov r11, gword ptr [r15+72] mov rdx, gword ptr [r15+64] mov dword ptr [rbp-30H], 1 jmp SHORT G_M4653_IG11 ;; size=28 bbWeight=0.50 PerfScore 5.00 G_M4653_IG10: mov r11, gword ptr [r15+48] mov gword ptr [rbp-E8H], r11 mov rdx, gword ptr [r15+56] mov gword ptr [rbp-F0H], rdx mov gword ptr [rbp-F8H], r8 mov dword ptr [rbp-30H], r10d mov rdx, gword ptr [rbp-F0H] mov r11, gword ptr [rbp-E8H] ;; size=47 bbWeight=0.50 PerfScore 5.00 G_M4653_IG11: xor esi, esi xor edi, edi test r13, r13 setne dil mov dword ptr [rbp-38H], edi test edi, edi jne SHORT G_M4653_IG13 ;; size=18 bbWeight=1 PerfScore 4.00 G_M4653_IG12: mov ecx, 32 jmp SHORT G_M4653_IG14 ;; size=7 bbWeight=0.50 PerfScore 1.12 G_M4653_IG13: mov ecx, 0xD1FFAB1E ;; size=5 bbWeight=0.50 PerfScore 0.12 G_M4653_IG14: mov dword ptr [rbp-3CH], ecx mov bword ptr [rbp-E0H], rax mov rcx, qword ptr [rax] cmp rcx, rbx jb SHORT G_M4653_IG16 ;; size=18 bbWeight=1 PerfScore 5.25 G_M4653_IG15: xor eax, eax mov gword ptr [rbp-E8H], r11 jmp SHORT G_M4653_IG17 ;; size=11 bbWeight=0.50 PerfScore 1.62 G_M4653_IG16: movzx rax, word ptr [rcx] mov gword ptr [rbp-E8H], r11 ;; size=10 bbWeight=0.50 PerfScore 1.50 G_M4653_IG17: movzx rax, ax mov r11, qword ptr [r12+16] mov qword ptr [rbp-58H], r11 ;; size=12 bbWeight=1 PerfScore 3.25 G_M4653_IG18: cmp eax, 32 je SHORT G_M4653_IG20 ;; size=5 bbWeight=8 PerfScore 10.00 G_M4653_IG19: cmp eax, 9 jl SHORT G_M4653_IG21 mov dword ptr [rbp-4CH], eax cmp eax, 13 mov eax, dword ptr [rbp-4CH] jg SHORT G_M4653_IG21 ;; size=16 bbWeight=2 PerfScore 9.00 G_M4653_IG20: test r14b, 1 je SHORT G_M4653_IG21 test sil, 1 je G_M4653_IG37 test sil, 32 jne G_M4653_IG37 cmp dword ptr [r15+168], 2 je G_M4653_IG37 ;; size=40 bbWeight=2 PerfScore 15.50 G_M4653_IG21: test r14b, 4 je G_M4653_IG33 ;; size=10 bbWeight=4 PerfScore 5.00 G_M4653_IG22: mov dword ptr [rbp-34H], esi test sil, 1 jne SHORT G_M4653_IG23 mov r11, gword ptr [r15+32] test r11, r11 jne SHORT G_M4653_IG24 xor r11d, r11d mov dword ptr [rbp-4CH], eax mov gword ptr [rbp-F0H], rdx jmp SHORT G_M4653_IG25 ;; size=33 bbWeight=2 PerfScore 19.50 G_M4653_IG23: mov esi, dword ptr [rbp-34H] jmp G_M4653_IG33 ;; size=8 bbWeight=1 PerfScore 3.00 G_M4653_IG24: add r11, 12 mov bword ptr [rbp-70H], r11 mov r11, bword ptr [rbp-70H] mov dword ptr [rbp-4CH], eax mov gword ptr [rbp-F0H], rdx ;; size=22 bbWeight=2 PerfScore 8.50 G_M4653_IG25: mov qword ptr [rbp-48H], rcx mov rdi, rcx mov rsi, rbx mov rdx, r11 call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-70H], rdi test rax, rax jne SHORT G_M4653_IG29 mov rdi, gword ptr [r15+40] test rdi, rdi jne SHORT G_M4653_IG26 xor edx, edx jmp SHORT G_M4653_IG27 ;; size=43 bbWeight=2 PerfScore 25.50 G_M4653_IG26: add rdi, 12 mov bword ptr [rbp-78H], rdi mov rdx, bword ptr [rbp-78H] ;; size=12 bbWeight=2 PerfScore 4.50 G_M4653_IG27: mov rdi, qword ptr [rbp-48H] mov rsi, rbx call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-78H], rdi xor edi, edi test rax, rax sete dil test edi, dword ptr [rbp-2CH] je SHORT G_M4653_IG28 mov r8, qword ptr [rbp-48H] cmp r8, rbx jae SHORT G_M4653_IG32 cmp word ptr [r8], 45 jne SHORT G_M4653_IG31 lea rax, [r8+2] mov qword ptr [rbp-48H], r8 ;; size=57 bbWeight=2 PerfScore 35.50 G_M4653_IG28: test rax, rax mov rcx, qword ptr [rbp-48H] je SHORT G_M4653_IG30 mov byte ptr [r12+8], 1 ;; size=15 bbWeight=2 PerfScore 6.50 G_M4653_IG29: mov esi, dword ptr [rbp-34H] or esi, 1 lea r8, [rax-2] mov rcx, r8 mov rdx, gword ptr [rbp-F0H] jmp G_M4653_IG37 ;; size=25 bbWeight=2 PerfScore 10.00 G_M4653_IG30: mov eax, dword ptr [rbp-4CH] mov rdx, gword ptr [rbp-F0H] mov esi, dword ptr [rbp-34H] jmp SHORT G_M4653_IG33 ;; size=15 bbWeight=1 PerfScore 5.00 G_M4653_IG31: mov qword ptr [rbp-48H], r8 jmp SHORT G_M4653_IG28 ;; size=6 bbWeight=1 PerfScore 3.00 G_M4653_IG32: mov qword ptr [rbp-48H], r8 jmp SHORT G_M4653_IG28 ;; size=6 bbWeight=1 PerfScore 3.00 G_M4653_IG33: mov dword ptr [rbp-4CH], eax cmp eax, 40 jne SHORT G_M4653_IG35 ;; size=8 bbWeight=4 PerfScore 9.00 G_M4653_IG34: test r14b, 16 je SHORT G_M4653_IG35 test sil, 1 jne SHORT G_M4653_IG35 or esi, 3 mov dword ptr [rbp-34H], esi mov byte ptr [r12+8], 1 mov esi, dword ptr [rbp-34H] jmp SHORT G_M4653_IG37 ;; size=29 bbWeight=2 PerfScore 15.50 G_M4653_IG35: mov r8, gword ptr [rbp-F8H] test r8, r8 je G_M4653_IG42 ;; size=16 bbWeight=4 PerfScore 9.00 G_M4653_IG36: mov dword ptr [rbp-34H], esi mov gword ptr [rbp-F0H], rdx mov gword ptr [rbp-F8H], r8 lea r11, bword ptr [r8+12] mov bword ptr [rbp-80H], r11 mov r11, bword ptr [rbp-80H] mov qword ptr [rbp-48H], rcx mov rdi, rcx mov rsi, rbx mov rdx, r11 call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-80H], rdi test rax, rax mov rcx, qword ptr [rbp-48H] mov r8, gword ptr [rbp-F8H] je SHORT G_M4653_IG39 mov edx, dword ptr [rbp-34H] or edx, 32 xor r8, r8 mov gword ptr [rbp-F8H], r8 lea rdi, [rax-2] mov rcx, rdi mov esi, edx mov rdx, gword ptr [rbp-F0H] ;; size=102 bbWeight=2 PerfScore 38.50 G_M4653_IG37: add rcx, 2 cmp rcx, rbx jb SHORT G_M4653_IG40 ;; size=9 bbWeight=4 PerfScore 6.00 G_M4653_IG38: xor eax, eax jmp SHORT G_M4653_IG41 ;; size=4 bbWeight=2 PerfScore 4.50 G_M4653_IG39: mov rdx, gword ptr [rbp-F0H] mov esi, dword ptr [rbp-34H] jmp SHORT G_M4653_IG42 ;; size=12 bbWeight=1 PerfScore 4.00 G_M4653_IG40: mov qword ptr [rbp-48H], rcx movzx rax, word ptr [rcx] mov rcx, qword ptr [rbp-48H] ;; size=11 bbWeight=2 PerfScore 8.00 G_M4653_IG41: movzx rax, ax jmp G_M4653_IG18 ;; size=8 bbWeight=4 PerfScore 9.00 G_M4653_IG42: xor r11d, r11d xor edi, edi mov dword ptr [rbp-60H], edi mov gword ptr [rbp-F0H], rdx ;; size=15 bbWeight=1 PerfScore 2.50 G_M4653_IG43: mov eax, dword ptr [rbp-4CH] lea edx, [rax-48] cmp edx, 9 jbe SHORT G_M4653_IG46 ;; size=11 bbWeight=8 PerfScore 22.00 G_M4653_IG44: test r14d, 512 je G_M4653_IG57 ;; size=13 bbWeight=4 PerfScore 5.00 G_M4653_IG45: mov edx, eax or edx, 32 movzx rdx, dx add edx, -97 cmp edx, 5 ja G_M4653_IG57 ;; size=20 bbWeight=2 PerfScore 4.50 G_M4653_IG46: or esi, 4 cmp eax, 48 jne SHORT G_M4653_IG48 mov dword ptr [rbp-34H], esi test sil, 8 jne SHORT G_M4653_IG49 mov edx, dword ptr [rbp-38H] test edx, edx je G_M4653_IG55 test r14d, 512 je G_M4653_IG55 ;; size=41 bbWeight=2 PerfScore 14.50 G_M4653_IG47: mov esi, dword ptr [rbp-34H] ;; size=3 bbWeight=1 PerfScore 1.00 G_M4653_IG48: mov dword ptr [rbp-5CH], r11d cmp r11d, dword ptr [rbp-3CH] jge G_M4653_IG52 cmp dword ptr [rbp-38H], 0 je SHORT G_M4653_IG50 mov qword ptr [rbp-48H], rcx mov dword ptr [rbp-34H], esi mov gword ptr [rbp-F8H], r8 mov rdi, r13 mov dword ptr [rbp-4CH], eax mov esi, eax cmp dword ptr [rdi], edi call [StringBuilder:Append(ushort):StringBuilder:this] mov rcx, qword ptr [rbp-48H] jmp SHORT G_M4653_IG51 ;; size=56 bbWeight=2 PerfScore 41.00 G_M4653_IG49: mov esi, dword ptr [rbp-34H] jmp SHORT G_M4653_IG48 ;; size=5 bbWeight=1 PerfScore 3.00 G_M4653_IG50: mov r11d, dword ptr [rbp-5CH] lea edx, [r11+1] movsxd r11, r11d mov rdi, qword ptr [rbp-58H] mov word ptr [rdi+2*r11], ax mov dword ptr [rbp-4CH], eax mov dword ptr [rbp-34H], esi mov gword ptr [rbp-F8H], r8 mov dword ptr [rbp-5CH], edx mov qword ptr [rbp-58H], rdi ;; size=40 bbWeight=2 PerfScore 17.50 G_M4653_IG51: xor eax, eax cmp dword ptr [rbp-4CH], 48 setne al mov r11d, dword ptr [rbp+10H] movzx r11, r11b or eax, r11d je SHORT G_M4653_IG54 mov edx, dword ptr [rbp-5CH] mov dword ptr [rbp-60H], edx mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] ;; size=38 bbWeight=2 PerfScore 19.50 G_M4653_IG52: test sil, 16 jne SHORT G_M4653_IG53 lea rax, bword ptr [r12+4] inc dword ptr [rax] ;; size=13 bbWeight=2 PerfScore 9.50 G_M4653_IG53: or esi, 8 jmp G_M4653_IG78 ;; size=8 bbWeight=2 PerfScore 4.50 G_M4653_IG54: mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] jmp SHORT G_M4653_IG52 ;; size=12 bbWeight=1 PerfScore 4.00 G_M4653_IG55: mov esi, dword ptr [rbp-34H] test sil, 16 je SHORT G_M4653_IG56 lea rax, bword ptr [r12+4] dec dword ptr [rax] mov dword ptr [rbp-5CH], r11d jmp G_M4653_IG78 ;; size=25 bbWeight=2 PerfScore 17.50 G_M4653_IG56: mov dword ptr [rbp-5CH], r11d jmp G_M4653_IG78 ;; size=9 bbWeight=1 PerfScore 3.00 G_M4653_IG57: test r14b, 32 je G_M4653_IG68 ;; size=10 bbWeight=4 PerfScore 5.00 G_M4653_IG58: mov dword ptr [rbp-34H], esi test sil, 16 jne SHORT G_M4653_IG59 mov rdx, gword ptr [rbp-E8H] test rdx, rdx jne SHORT G_M4653_IG60 xor edi, edi mov dword ptr [rbp-4CH], eax mov gword ptr [rbp-F8H], r8 mov dword ptr [rbp-5CH], r11d mov qword ptr [rbp-90H], rdi mov gword ptr [rbp-E8H], rdx jmp SHORT G_M4653_IG61 ;; size=53 bbWeight=2 PerfScore 23.50 G_M4653_IG59: mov esi, dword ptr [rbp-34H] jmp G_M4653_IG68 ;; size=8 bbWeight=1 PerfScore 3.00 G_M4653_IG60: mov gword ptr [rbp-E8H], rdx lea rdi, bword ptr [rdx+12] mov bword ptr [rbp-88H], rdi mov rdi, bword ptr [rbp-88H] mov qword ptr [rbp-90H], rdi mov dword ptr [rbp-4CH], eax mov gword ptr [rbp-F8H], r8 mov dword ptr [rbp-5CH], r11d ;; size=46 bbWeight=2 PerfScore 15.00 G_M4653_IG61: mov qword ptr [rbp-48H], rcx mov rdi, rcx mov rsi, rbx mov rdx, qword ptr [rbp-90H] call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-88H], rdi test rax, rax jne SHORT G_M4653_IG66 cmp dword ptr [rbp-30H], 0 je SHORT G_M4653_IG63 test byte ptr [rbp-34H], 32 jne SHORT G_M4653_IG62 mov rdi, gword ptr [r15+48] test rdi, rdi jne SHORT G_M4653_IG64 xor edx, edx jmp SHORT G_M4653_IG65 ;; size=62 bbWeight=2 PerfScore 39.00 G_M4653_IG62: mov eax, dword ptr [rbp-4CH] mov rcx, qword ptr [rbp-48H] mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] mov r11d, dword ptr [rbp-5CH] jmp SHORT G_M4653_IG68 ;; size=23 bbWeight=1 PerfScore 7.00 G_M4653_IG63: mov eax, dword ptr [rbp-4CH] mov rcx, qword ptr [rbp-48H] mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] mov r11d, dword ptr [rbp-5CH] jmp SHORT G_M4653_IG68 ;; size=23 bbWeight=1 PerfScore 7.00 G_M4653_IG64: add rdi, 12 mov bword ptr [rbp-98H], rdi mov rdx, bword ptr [rbp-98H] ;; size=18 bbWeight=2 PerfScore 4.50 G_M4653_IG65: mov rdi, qword ptr [rbp-48H] mov rsi, rbx call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-98H], rdi test rax, rax mov rcx, qword ptr [rbp-48H] je SHORT G_M4653_IG67 ;; size=31 bbWeight=2 PerfScore 15.50 G_M4653_IG66: mov ecx, dword ptr [rbp-34H] or ecx, 16 lea rdi, [rax-2] mov r8, rdi mov esi, ecx mov rcx, r8 mov r8, gword ptr [rbp-F8H] jmp G_M4653_IG78 ;; size=30 bbWeight=2 PerfScore 11.00 G_M4653_IG67: mov eax, dword ptr [rbp-4CH] mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] mov r11d, dword ptr [rbp-5CH] ;; size=17 bbWeight=1 PerfScore 4.00 G_M4653_IG68: test r14b, 64 je G_M4653_IG83 ;; size=10 bbWeight=4 PerfScore 5.00 G_M4653_IG69: test sil, 4 je G_M4653_IG83 mov dword ptr [rbp-34H], esi test sil, 16 jne SHORT G_M4653_IG70 mov rdx, gword ptr [rbp-F0H] test rdx, rdx jne SHORT G_M4653_IG71 xor edi, edi mov dword ptr [rbp-4CH], eax mov gword ptr [rbp-F8H], r8 mov dword ptr [rbp-5CH], r11d mov qword ptr [rbp-A8H], rdi mov gword ptr [rbp-F0H], rdx jmp SHORT G_M4653_IG72 ;; size=63 bbWeight=2 PerfScore 26.00 G_M4653_IG70: mov esi, dword ptr [rbp-34H] jmp G_M4653_IG83 ;; size=8 bbWeight=1 PerfScore 3.00 G_M4653_IG71: mov gword ptr [rbp-F0H], rdx lea rdi, bword ptr [rdx+12] mov bword ptr [rbp-A0H], rdi mov rdi, bword ptr [rbp-A0H] mov qword ptr [rbp-A8H], rdi mov dword ptr [rbp-4CH], eax mov gword ptr [rbp-F8H], r8 mov dword ptr [rbp-5CH], r11d ;; size=46 bbWeight=2 PerfScore 15.00 G_M4653_IG72: mov qword ptr [rbp-48H], rcx mov rdi, rcx mov rsi, rbx mov rdx, qword ptr [rbp-A8H] call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-A0H], rdi test rax, rax jne SHORT G_M4653_IG77 cmp dword ptr [rbp-30H], 0 je SHORT G_M4653_IG74 test byte ptr [rbp-34H], 32 jne SHORT G_M4653_IG73 mov rdi, gword ptr [r15+56] test rdi, rdi jne SHORT G_M4653_IG75 xor edx, edx jmp SHORT G_M4653_IG76 ;; size=62 bbWeight=2 PerfScore 39.00 G_M4653_IG73: mov eax, dword ptr [rbp-4CH] mov rcx, qword ptr [rbp-48H] mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] jmp G_M4653_IG83 ;; size=22 bbWeight=1 PerfScore 6.00 G_M4653_IG74: mov eax, dword ptr [rbp-4CH] mov rcx, qword ptr [rbp-48H] mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] jmp SHORT G_M4653_IG83 ;; size=19 bbWeight=1 PerfScore 6.00 G_M4653_IG75: add rdi, 12 mov bword ptr [rbp-B0H], rdi mov rdx, bword ptr [rbp-B0H] ;; size=18 bbWeight=2 PerfScore 4.50 G_M4653_IG76: mov rdi, qword ptr [rbp-48H] mov rsi, rbx call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-B0H], rdi test rax, rax mov rcx, qword ptr [rbp-48H] je SHORT G_M4653_IG80 ;; size=31 bbWeight=2 PerfScore 15.50 G_M4653_IG77: lea rdi, [rax-2] mov rcx, rdi mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] ;; size=17 bbWeight=2 PerfScore 5.50 G_M4653_IG78: add rcx, 2 cmp rcx, rbx jb SHORT G_M4653_IG81 ;; size=9 bbWeight=4 PerfScore 6.00 G_M4653_IG79: xor eax, eax jmp SHORT G_M4653_IG82 ;; size=4 bbWeight=2 PerfScore 4.50 G_M4653_IG80: mov eax, dword ptr [rbp-4CH] mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] jmp SHORT G_M4653_IG83 ;; size=15 bbWeight=1 PerfScore 5.00 G_M4653_IG81: mov qword ptr [rbp-48H], rcx movzx rax, word ptr [rcx] mov rcx, qword ptr [rbp-48H] ;; size=11 bbWeight=2 PerfScore 8.00 G_M4653_IG82: movzx rax, ax mov dword ptr [rbp-4CH], eax mov r11d, dword ptr [rbp-5CH] jmp G_M4653_IG43 ;; size=15 bbWeight=4 PerfScore 17.00 G_M4653_IG83: xor r10d, r10d mov dword ptr [rbp-64H], r10d mov edi, dword ptr [rbp-60H] mov dword ptr [r12], edi cmp dword ptr [rbp-38H], 0 je SHORT G_M4653_IG86 ;; size=20 bbWeight=1 PerfScore 6.25 G_M4653_IG84: mov edi, dword ptr [r13+24] mov rdx, gword ptr [r13+8] mov r11d, dword ptr [rdx+8] cmp r11d, edi jbe SHORT G_M4653_IG85 mov r11d, edi mov word ptr [rdx+2*r11+16], 0 inc edi mov dword ptr [r13+24], edi jmp SHORT G_M4653_IG87 ;; size=36 bbWeight=0.50 PerfScore 5.88 G_M4653_IG85: mov qword ptr [rbp-48H], rcx mov dword ptr [rbp-4CH], eax mov dword ptr [rbp-34H], esi mov gword ptr [rbp-F8H], r8 mov rdi, r13 xor esi, esi mov edx, 1 call [StringBuilder:Append(ushort,int):StringBuilder:this] mov eax, dword ptr [rbp-4CH] mov rcx, qword ptr [rbp-48H] mov esi, dword ptr [rbp-34H] mov r8, gword ptr [rbp-F8H] jmp SHORT G_M4653_IG87 ;; size=52 bbWeight=0.50 PerfScore 6.88 G_M4653_IG86: movsxd rdi, edi mov r13, qword ptr [rbp-58H] mov word ptr [r13+2*rdi], 0 ;; size=15 bbWeight=0.50 PerfScore 1.12 G_M4653_IG87: mov dword ptr [rbp-34H], esi test sil, 4 je G_M4653_IG144 ;; size=13 bbWeight=1 PerfScore 2.25 G_M4653_IG88: cmp eax, 69 je SHORT G_M4653_IG89 cmp eax, 101 jne G_M4653_IG120 ;; size=14 bbWeight=0.50 PerfScore 1.25 G_M4653_IG89: test r14b, 128 je G_M4653_IG120 mov r13, rcx lea rcx, [r13+2] cmp rcx, rbx jb SHORT G_M4653_IG90 xor eax, eax jmp SHORT G_M4653_IG91 ;; size=26 bbWeight=0.50 PerfScore 2.75 G_M4653_IG90: movzx rax, word ptr [rcx] ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M4653_IG91: movzx rax, ax mov dword ptr [rbp-4CH], eax mov rdi, gword ptr [r15+32] test rdi, rdi jne SHORT G_M4653_IG92 xor edx, edx mov gword ptr [rbp-F8H], r8 jmp SHORT G_M4653_IG93 ;; size=26 bbWeight=0.50 PerfScore 3.88 G_M4653_IG92: add rdi, 12 mov bword ptr [rbp-B8H], rdi mov rdx, bword ptr [rbp-B8H] mov gword ptr [rbp-F8H], r8 ;; size=25 bbWeight=0.50 PerfScore 1.62 G_M4653_IG93: mov qword ptr [rbp-48H], rcx mov rdi, rcx mov rsi, rbx call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-B8H], rdi test rax, rax je SHORT G_M4653_IG96 mov rcx, rax cmp rcx, rbx jb SHORT G_M4653_IG94 xor edi, edi jmp SHORT G_M4653_IG95 ;; size=42 bbWeight=0.50 PerfScore 5.38 G_M4653_IG94: movzx rdi, word ptr [rcx] ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M4653_IG95: movzx rax, di mov dword ptr [rbp-4CH], eax jmp G_M4653_IG104 ;; size=11 bbWeight=0.50 PerfScore 1.62 G_M4653_IG96: mov rcx, qword ptr [rbp-48H] mov rdi, gword ptr [r15+40] test rdi, rdi jne SHORT G_M4653_IG97 xor edx, edx jmp SHORT G_M4653_IG98 ;; size=17 bbWeight=0.50 PerfScore 3.25 G_M4653_IG97: add rdi, 12 mov bword ptr [rbp-C0H], rdi mov rdx, bword ptr [rbp-C0H] ;; size=18 bbWeight=0.50 PerfScore 1.12 G_M4653_IG98: mov qword ptr [rbp-48H], rcx mov rdi, rcx mov rsi, rbx call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-C0H], rdi xor edi, edi test rax, rax sete dil test edi, dword ptr [rbp-2CH] je SHORT G_M4653_IG99 mov r8, qword ptr [rbp-48H] cmp r8, rbx jae SHORT G_M4653_IG101 cmp word ptr [r8], 45 jne SHORT G_M4653_IG100 lea rax, [r8+2] mov qword ptr [rbp-48H], r8 ;; size=63 bbWeight=0.50 PerfScore 9.00 G_M4653_IG99: test rax, rax mov rcx, qword ptr [rbp-48H] je SHORT G_M4653_IG104 mov r8, rax cmp r8, rbx jb SHORT G_M4653_IG102 xor edi, edi jmp SHORT G_M4653_IG103 ;; size=21 bbWeight=0.50 PerfScore 3.00 G_M4653_IG100: mov qword ptr [rbp-48H], r8 jmp SHORT G_M4653_IG99 align [0 bytes for IG110] ;; size=6 bbWeight=0.25 PerfScore 0.75 G_M4653_IG101: mov qword ptr [rbp-48H], r8 jmp SHORT G_M4653_IG99 ;; size=6 bbWeight=0.25 PerfScore 0.75 G_M4653_IG102: movzx rdi, word ptr [r8] ;; size=4 bbWeight=0.50 PerfScore 1.00 G_M4653_IG103: movzx rax, di mov edi, 1 mov dword ptr [rbp-4CH], eax mov dword ptr [rbp-64H], edi mov rcx, r8 ;; size=17 bbWeight=0.50 PerfScore 1.38 G_M4653_IG104: mov eax, dword ptr [rbp-4CH] lea esi, [rax-48] cmp esi, 9 ja SHORT G_M4653_IG117 xor esi, esi ;; size=13 bbWeight=0.50 PerfScore 1.50 G_M4653_IG105: lea esi, [rsi+4*rsi] lea esi, [rax+2*rsi-48] add rcx, 2 mov r13, rcx cmp r13, rbx jb SHORT G_M4653_IG107 ;; size=19 bbWeight=4 PerfScore 13.00 G_M4653_IG106: xor eax, eax jmp SHORT G_M4653_IG108 ;; size=4 bbWeight=2 PerfScore 4.50 G_M4653_IG107: movzx rax, word ptr [r13] ;; size=5 bbWeight=2 PerfScore 4.00 G_M4653_IG108: movzx rax, ax cmp esi, 0x3E8 jle SHORT G_M4653_IG114 ;; size=11 bbWeight=4 PerfScore 6.00 G_M4653_IG109: mov esi, 0x270F lea edx, [rax-48] cmp edx, 9 ja SHORT G_M4653_IG114 ;; size=13 bbWeight=2 PerfScore 4.00 G_M4653_IG110: add r13, 2 cmp r13, rbx jb SHORT G_M4653_IG112 ;; size=9 bbWeight=16 PerfScore 24.00 G_M4653_IG111: xor eax, eax jmp SHORT G_M4653_IG113 ;; size=4 bbWeight=8 PerfScore 18.00 G_M4653_IG112: movzx rax, word ptr [r13] ;; size=5 bbWeight=8 PerfScore 16.00 G_M4653_IG113: movzx rax, ax lea edx, [rax-48] cmp edx, 9 jbe SHORT G_M4653_IG110 ;; size=11 bbWeight=16 PerfScore 32.00 G_M4653_IG114: lea edx, [rax-48] cmp edx, 9 mov rcx, r13 jbe SHORT G_M4653_IG105 ;; size=11 bbWeight=4 PerfScore 8.00 G_M4653_IG115: cmp dword ptr [rbp-64H], 0 je SHORT G_M4653_IG116 neg esi ;; size=8 bbWeight=0.50 PerfScore 1.62 G_M4653_IG116: lea rdi, bword ptr [r12+4] add dword ptr [rdi], esi mov r8, gword ptr [rbp-F8H] jmp SHORT G_M4653_IG120 ;; size=16 bbWeight=0.50 PerfScore 3.25 G_M4653_IG117: mov rcx, r13 cmp rcx, rbx jb SHORT G_M4653_IG118 xor eax, eax jmp SHORT G_M4653_IG119 ;; size=12 bbWeight=0.50 PerfScore 1.88 G_M4653_IG118: movzx rax, word ptr [rcx] ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M4653_IG119: movzx rax, ax mov r13d, eax mov eax, r13d mov r8, gword ptr [rbp-F8H] ;; size=16 bbWeight=0.50 PerfScore 0.88 G_M4653_IG120: cmp eax, 32 je SHORT G_M4653_IG122 ;; size=5 bbWeight=4 PerfScore 5.00 G_M4653_IG121: cmp eax, 9 jl SHORT G_M4653_IG123 mov dword ptr [rbp-4CH], eax cmp eax, 13 mov eax, dword ptr [rbp-4CH] jg SHORT G_M4653_IG123 ;; size=16 bbWeight=2 PerfScore 9.00 G_M4653_IG122: test r14b, 2 jne G_M4653_IG136 ;; size=10 bbWeight=2 PerfScore 2.50 G_M4653_IG123: test r14b, 8 je G_M4653_IG133 test byte ptr [rbp-34H], 1 jne G_M4653_IG133 mov rdi, gword ptr [r15+32] test rdi, rdi jne SHORT G_M4653_IG124 xor edx, edx mov dword ptr [rbp-4CH], eax mov gword ptr [rbp-F8H], r8 jmp SHORT G_M4653_IG125 ;; size=43 bbWeight=2 PerfScore 23.50 G_M4653_IG124: add rdi, 12 mov bword ptr [rbp-C8H], rdi mov rdx, bword ptr [rbp-C8H] mov dword ptr [rbp-4CH], eax mov gword ptr [rbp-F8H], r8 ;; size=28 bbWeight=2 PerfScore 8.50 G_M4653_IG125: mov qword ptr [rbp-48H], rcx mov rdi, rcx mov rsi, rbx call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-C8H], rdi test rax, rax jne SHORT G_M4653_IG129 mov rdi, gword ptr [r15+40] test rdi, rdi jne SHORT G_M4653_IG126 xor edx, edx jmp SHORT G_M4653_IG127 ;; size=43 bbWeight=2 PerfScore 25.00 G_M4653_IG126: add rdi, 12 mov bword ptr [rbp-D0H], rdi mov rdx, bword ptr [rbp-D0H] ;; size=18 bbWeight=2 PerfScore 4.50 G_M4653_IG127: mov rdi, qword ptr [rbp-48H] mov rsi, rbx call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-D0H], rdi xor edi, edi test rax, rax sete dil test edi, dword ptr [rbp-2CH] je SHORT G_M4653_IG128 mov rcx, qword ptr [rbp-48H] cmp rcx, rbx jae SHORT G_M4653_IG132 cmp word ptr [rcx], 45 jne SHORT G_M4653_IG131 lea rax, [rcx+2] mov qword ptr [rbp-48H], rcx ;; size=59 bbWeight=2 PerfScore 35.50 G_M4653_IG128: test rax, rax mov rcx, qword ptr [rbp-48H] je SHORT G_M4653_IG130 mov byte ptr [r12+8], 1 ;; size=15 bbWeight=2 PerfScore 6.50 G_M4653_IG129: mov r8d, dword ptr [rbp-34H] or r8d, 1 lea rcx, [rax-2] mov dword ptr [rbp-34H], r8d mov r8, gword ptr [rbp-F8H] jmp SHORT G_M4653_IG136 ;; size=25 bbWeight=2 PerfScore 11.50 G_M4653_IG130: mov eax, dword ptr [rbp-4CH] mov r8, gword ptr [rbp-F8H] jmp SHORT G_M4653_IG133 ;; size=12 bbWeight=1 PerfScore 4.00 G_M4653_IG131: mov qword ptr [rbp-48H], rcx jmp SHORT G_M4653_IG128 ;; size=6 bbWeight=1 PerfScore 3.00 G_M4653_IG132: mov qword ptr [rbp-48H], rcx jmp SHORT G_M4653_IG128 ;; size=6 bbWeight=1 PerfScore 3.00 G_M4653_IG133: cmp eax, 41 jne SHORT G_M4653_IG135 mov esi, dword ptr [rbp-34H] test sil, 2 je SHORT G_M4653_IG134 and esi, -3 mov dword ptr [rbp-34H], esi jmp SHORT G_M4653_IG136 ;; size=22 bbWeight=2 PerfScore 13.50 G_M4653_IG134: mov dword ptr [rbp-34H], esi ;; size=3 bbWeight=1 PerfScore 1.00 G_M4653_IG135: test r8, r8 je SHORT G_M4653_IG140 add r8, 12 mov bword ptr [rbp-D8H], r8 mov rdx, bword ptr [rbp-D8H] mov qword ptr [rbp-48H], rcx mov rdi, rcx mov rsi, rbx call [Number:MatchChars(long,long,long):long] xor rdi, rdi mov bword ptr [rbp-D8H], rdi test rax, rax mov rcx, qword ptr [rbp-48H] je SHORT G_M4653_IG140 xor r8, r8 xor r13, r13 lea rcx, [rax-2] mov r8, r13 ;; size=70 bbWeight=2 PerfScore 25.50 G_M4653_IG136: add rcx, 2 mov r13, rcx cmp r13, rbx jb SHORT G_M4653_IG138 ;; size=12 bbWeight=4 PerfScore 7.00 G_M4653_IG137: xor eax, eax jmp SHORT G_M4653_IG139 ;; size=4 bbWeight=2 PerfScore 4.50 G_M4653_IG138: movzx rax, word ptr [r13] ;; size=5 bbWeight=2 PerfScore 4.00 G_M4653_IG139: movzx rax, ax mov rcx, r13 jmp G_M4653_IG120 ;; size=11 bbWeight=4 PerfScore 10.00 G_M4653_IG140: mov esi, dword ptr [rbp-34H] test sil, 2 jne SHORT G_M4653_IG144 test sil, 8 jne SHORT G_M4653_IG142 cmp byte ptr [rbp+10H], 0 jne SHORT G_M4653_IG141 xor eax, eax mov dword ptr [r12+4], eax ;; size=28 bbWeight=0.50 PerfScore 3.88 G_M4653_IG141: test sil, 16 jne SHORT G_M4653_IG142 mov byte ptr [r12+8], 0 ;; size=12 bbWeight=0.50 PerfScore 1.12 G_M4653_IG142: mov rbx, bword ptr [rbp-E0H] mov qword ptr [rbx], rcx mov eax, 1 ;; size=15 bbWeight=0.50 PerfScore 1.12 G_M4653_IG143: add rsp, 216 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=18 bbWeight=0.50 PerfScore 2.12 G_M4653_IG144: mov rbx, bword ptr [rbp-E0H] mov qword ptr [rbx], rcx xor eax, eax ;; size=12 bbWeight=0.50 PerfScore 1.12 G_M4653_IG145: add rsp, 216 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=18 bbWeight=0.50 PerfScore 2.12 ; Total bytes of code 3011, prolog size 95, PerfScore 1527.48, instruction count 811, allocated bytes for code 3014 (MethodHash=5f20edd2) for method Number:ParseNumber(byref,long,int,byref,StringBuilder,NumberFormatInfo,bool):bool ; ============================================================
Trovare la differenza