Diff
checker
Texto
Texto
Imágenes
Documentos
Excel
Carpetas
Legal
Enterprise
Aplicación de escritorio
Precios
Iniciar sesión
Descargar Diffchecker Desktop
Comparar texto
Encuentra la diferencia entre dos archivos de texto
Herramientas
Historial
Editor live
Ocultar espacios en blanco
Ocultar sin cambios
Sin ajuste de línea
Vista
Dividido
Unificado
Nivel de detalle
Inteligente
Palabra
Letra
Estilos de texto
Cambiar apariencia
Resaltado de sintaxis
Elegir sintaxis
Ignorar
Transformar texto
Ir al primer cambio
Editar entrada
Diffchecker Desktop
La forma más segura de usar Diffchecker. ¡Obtén la app de Diffchecker Desktop: tus diffs nunca salen de tu computadora!
Obtener Desktop
FormatBigInteger
Creado
hace 5 años
El diff nunca expira
Borrar
Exportar
Compartir
Explicar
278 eliminaciones
Líneas
Total
Eliminado
Caracteres
Total
Eliminado
Para continuar usando esta función, actualice a
Diff
checker
Pro
Ver precios
532 líneas
Copiar todo
283 adiciones
Líneas
Total
Añadido
Caracteres
Total
Añadido
Para continuar usando esta función, actualice a
Diff
checker
Pro
Ver precios
538 líneas
Copiar todo
; Assembly listing for method System.Numerics.BigNumber:FormatBigInteger(bool,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[System.Char],System.Globalization.NumberFormatInfo,System.Span`1[System.Char],byref,byref):System.String
; Assembly listing for method System.Numerics.BigNumber:FormatBigInteger(bool,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[System.Char],System.Globalization.NumberFormatInfo,System.Span`1[System.Char],byref,byref):System.String
; Emitting BLENDED_CODE for X64 CPU with SSE2 - Windows
; Emitting BLENDED_CODE for X64 CPU with SSE2 - Windows
; ReadyToRun compilation
; ReadyToRun compilation
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; fully interruptible
; fully interruptible
; discarded IBC profile data due to mismatch in ILSize
; discarded IBC profile data due to mismatch in ILSize
; Final local variable assignments
; Final local variable assignments
;
;
Copiar
Copiado
Copiar
Copiado
; V00 arg0 [V00,
T33
] ( 6, 4 ) bool -> rdi
; V00 arg0 [V00,
T29
] ( 6, 4 ) bool -> rdi
; V01 arg1 [V01,T2
9
] ( 4, 8 ) byref -> rdx ld-addr-op
; V01 arg1 [V01,T2
5
] ( 4, 8 ) byref -> rdx ld-addr-op
; V02 arg2 [V02,T3
5
] ( 5, 3.50) ref -> rbx class-hnd
; V02 arg2 [V02,T3
1
] ( 5, 3.50) ref -> rbx class-hnd
; V03 arg3 [V03,T2
8
] ( 6, 9 ) byref -> rsi
; V03 arg3 [V03,T2
4
] ( 6, 9 ) byref -> rsi
; V04 arg4 [V04,T4
4
] ( 6, 3 ) ref -> [rbp+1
6
0H] class-hnd
; V04 arg4 [V04,T4
0
] ( 6, 3 ) ref -> [rbp+1
5
0H] class-hnd
; V05 arg5 [V05,T
43
] ( 4, 4 ) byref -> r12
; V05 arg5 [V05,T
39
] ( 4, 4 ) byref -> r12
; V06 arg6 [V06,
T41
] ( 8, 4 ) byref -> r14
; V06 arg6 [V06,
T37
] ( 8, 4 ) byref -> r14
; V07 arg7 [V07,
T42
] ( 8, 4 ) byref ->
r15
; V07 arg7 [V07,
T38
] ( 8, 4 ) byref ->
[rbp+168H]
; V08 loc0 [V08 ] ( 12, 17 ) int -> [rbp+
F
0H] do-not-enreg[X] addr-exposed ld-addr-op
; V08 loc0 [V08 ] ( 12, 17 ) int -> [rbp+
E
0H] do-not-enreg[X] addr-exposed ld-addr-op
; V09 loc1 [V09,
T30
] ( 14, 8 ) ushort -> [rbp+
E
CH]
; V09 loc1 [V09,
T26
] ( 14, 8 ) ushort -> [rbp+
D
CH]
; V10 loc2 [V10,T
60
] ( 3, 1.50) int -> rbx
; V10 loc2 [V10,T
56
] ( 3, 1.50) int -> rbx
; V11 loc3 [V11,
T63
] ( 2, 1 ) int -> rcx
; V11 loc3 [V11,
T59
] ( 2, 1 ) int -> rcx
; V12 loc4 [V12,T0
9
] ( 11, 49.50) ref -> [rbp+28H] class-hnd exact
; V12 loc4 [V12,T0
6
] ( 11, 49.50) ref -> [rbp+28H] class-hnd exact
; V13 loc5 [V13,T1
5
] ( 9, 27.50) int -> [rbp+
E
8H]
; V13 loc5 [V13,T1
3
] ( 9, 27.50) int -> [rbp+
D
8H]
; V14 loc6 [V14,T3
6
] ( 10, 5 ) int -> rbx
; V14 loc6 [V14,T3
2
] ( 10, 5 ) int -> rbx
; V15 loc7 [V15,
T61
] ( 3, 1.50) bool -> [rbp+
E
4H]
; V15 loc7 [V15,
T57
] ( 3, 1.50) bool -> [rbp+
D
4H]
; V16 loc8 [V16,T6
4
] ( 2, 1 ) int -> r
a
x
; V16 loc8 [V16,T6
0
] ( 2, 1 ) int -> r
d
x
; V17 loc9 [V17,
T11
] ( 13, 38.50) ref -> [rbp+20H] class-hnd exact
; V17 loc9 [V17,
T09
] ( 13, 38.50) ref -> [rbp+20H] class-hnd exact
; V18 loc10 [V18,T0
6
] ( 23, 75.50) int -> [rbp+
E
0H]
; V18 loc10 [V18,T0
3
] ( 23, 75.50) int -> [rbp+
D
0H]
; V19 loc11 [V19,
T40
] ( 2, 4.50) int ->
rcx
; V19 loc11 [V19,
T36
] ( 2, 4.50) int ->
r11
; V20 loc12 [V20,T6
5
] ( 2, 1 ) int -> r13
; V20 loc12 [V20,T6
1
] ( 2, 1 ) int -> r13
;* V21 loc13 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd
;* V21 loc13 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd
Copiar
Copiado
Copiar
Copiado
; V22 loc14 [V22,T1
9
] ( 6, 16.50) int -> rbx
; V22 loc14 [V22,T1
7
] ( 6, 16.50) int -> rbx
; V23 loc15 [V23,T0
8
] (
12, 52
) int -> r11
; V23 loc15 [V23,T0
7
] (
10, 48
) int -> r11
; V24 loc16 [V24,T0
5
] ( 6, 82 ) int ->
r10
; V24 loc16 [V24,T0
2
] ( 6, 82 ) int ->
r8
; V25 loc17 [V25,T0
2
] (
6, 96
) long -> r11
; V25 loc17 [V25,T0
4
] (
4, 64
) long -> r11
;* V26 loc18 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd
;* V26 loc18 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd
;* V27 loc19 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd
;* V27 loc19 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd
;* V28 loc20 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd
;* V28 loc20 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd
Copiar
Copiado
Copiar
Copiado
; V29 loc21 [V29,T1
8
] ( 6, 20.50) int -> r
c
x
; V29 loc21 [V29,T1
6
] ( 6, 20.50) int -> r
d
x
; V30 loc22 [V30,T1
2
] ( 5, 36 ) int ->
r10
; V30 loc22 [V30,T1
0
] ( 5, 36 ) int ->
r9
; V31 loc23 [V31,T01] ( 4,100 ) int ->
[rbp+DCH]
; V31 loc23 [V31,T01] ( 4,100 ) int ->
r11
; V32 loc24 [V32,T1
6
] ( 7, 21 ) int ->
r8
; V32 loc24 [V32,T1
4
] ( 7, 21 ) int ->
r11
; V33 loc25 [V33,T6
6
] ( 2, 1 ) bool -> [rbp+
D8H
]
; V33 loc25 [V33,T6
2
] ( 2, 1 ) bool -> [rbp+
CCH
]
;* V34 loc26 [V34 ] ( 0, 0 ) int -> zero-ref
;* V34 loc26 [V34 ] ( 0, 0 ) int -> zero-ref
Copiar
Copiado
Copiar
Copiado
; V35 loc27 [V35,T6
7
] ( 2, 1 ) int -> rbx
; V35 loc27 [V35,T6
3
] ( 2, 1 ) int -> rbx
; V36 loc28 [V36 ] ( 6, 3 ) struct (32) [rbp+
B
8H] do-not-enreg[XSFB] must-init addr-exposed ld-addr-op
; V36 loc28 [V36 ] ( 6, 3 ) struct (32) [rbp+
A
8H] do-not-enreg[XSFB] must-init addr-exposed ld-addr-op
; V37 loc29 [V37,T6
8
] ( 2, 1 ) struct (16) [rbp+
A
8H] do-not-enreg[SB] must-init
; V37 loc29 [V37,T6
4
] ( 2, 1 ) struct (16) [rbp+
9
8H] do-not-enreg[SB] must-init
; V38 loc30 [V38,T3
8
] ( 3, 5 ) ref -> rax class-hnd
; V38 loc30 [V38,T3
4
] ( 3, 5 ) ref -> rax class-hnd
; V39 loc31 [V39,T1
7
] ( 7, 21 ) int -> r10
; V39 loc31 [V39,T1
5
] ( 7, 21 ) int -> r10
; V40 loc32 [V40 ] ( 2, 1 ) struct (16) [rbp+
9
8H] do-not-enreg[XSB] must-init addr-exposed ld-addr-op
; V40 loc32 [V40 ] ( 2, 1 ) struct (16) [rbp+
8
8H] do-not-enreg[XSB] must-init addr-exposed ld-addr-op
; V41 OutArgs [V41 ] ( 1, 1 ) lclBlk (64) [rsp+00H] "OutgoingArgSpace"
; V41 OutArgs [V41 ] ( 1, 1 ) lclBlk (64) [rsp+00H] "OutgoingArgSpace"
Copiar
Copiado
Copiar
Copiado
; V42 tmp1 [V42,T2
2
] ( 2, 16 ) int -> rbx "dup spill"
; V42 tmp1 [V42,T2
0
] ( 2, 16 ) int -> rbx "dup spill"
; V43 tmp2 [V43,
T20
] ( 4, 16 ) int -> rcx "impSpillLclRefs"
; V43 tmp2 [V43,
T18
] ( 4, 16 ) int -> rcx "impSpillLclRefs"
; V44 tmp3 [V44,T
21
] ( 4, 16 ) int ->
rax
"impSpillLclRefs"
; V44 tmp3 [V44,T
19
] ( 4, 16 ) int ->
r8
"impSpillLclRefs"
; V45 tmp4 [V45,
T62
] ( 3, 1.50) int -> r11
; V45 tmp4 [V45,
T58
] ( 3, 1.50) int -> r11
; V46 tmp5 [V46,T00] ( 2,128 ) int ->
rdx
"dup spill"
; V46 tmp5 [V46,T00] ( 2,128 ) int ->
r11
"dup spill"
; V47 tmp6 [V47,T1
4
] ( 2, 32 ) int -> r
a
x "dup spill"
; V47 tmp6 [V47,T1
2
] ( 2, 32 ) int -> r
c
x "dup spill"
; V48 tmp7 [V48,T2
3
] ( 2, 16 ) int -> r
a
x "dup spill"
; V48 tmp7 [V48,T2
1
] ( 2, 16 ) int -> r
c
x "dup spill"
; V49 tmp8 [V49 ] ( 3, 3 ) struct (16) [rbp+
8
8H] do-not-enreg[XSB] must-init addr-exposed "NewObj constructor temp"
; V49 tmp8 [V49 ] ( 3, 3 ) struct (16) [rbp+
7
8H] do-not-enreg[XSB] must-init addr-exposed "NewObj constructor temp"
; V50 tmp9 [V50,T2
4
] ( 2, 16 ) int -> rcx "dup spill"
; V50 tmp9 [V50,T2
2
] ( 2, 16 ) int -> rcx "dup spill"
; V51 tmp10 [V51,T2
5
] ( 2, 16 ) int -> rdx "Strict ordering of exceptions for Array store"
; V51 tmp10 [V51,T2
3
] ( 2, 16 ) int -> rdx "Strict ordering of exceptions for Array store"
; V52 tmp11 [V52,
T31
] ( 2, 8 ) int -> r
a
x "dup spill"
; V52 tmp11 [V52,
T27
] ( 2, 8 ) int -> r
c
x "dup spill"
; V53 tmp12 [V53 ] ( 3, 3 ) struct (16) [rbp+
7
8H] do-not-enreg[XSB] must-init addr-exposed "NewObj constructor temp"
; V53 tmp12 [V53 ] ( 3, 3 ) struct (16) [rbp+
6
8H] do-not-enreg[XSB] must-init addr-exposed "NewObj constructor temp"
; V54 tmp13 [V54,
T73
] ( 2, 0 ) ref -> rsi class-hnd "impSpillSpecialSideEff"
; V54 tmp13 [V54,
T69
] ( 2, 0 ) ref -> rsi class-hnd "impSpillSpecialSideEff"
; V55 tmp14 [V55,T6
9
] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp"
; V55 tmp14 [V55,T6
5
] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp"
; V56 tmp15 [V56,T7
4
] ( 2, 0 ) ref -> rsi class-hnd "impSpillSpecialSideEff"
; V56 tmp15 [V56,T7
0
] ( 2, 0 ) ref -> rsi class-hnd "impSpillSpecialSideEff"
; V57 tmp16 [V57,
T70
] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp"
; V57 tmp16 [V57,
T66
] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp"
; V58 tmp17 [V58,T7
5
] ( 2, 0 ) ref -> rsi class-hnd "impSpillSpecialSideEff"
; V58 tmp17 [V58,T7
1
] ( 2, 0 ) ref -> rsi class-hnd "impSpillSpecialSideEff"
; V59 tmp18 [V59,T
71
] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp"
; V59 tmp18 [V59,T
67
] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp"
; V60 tmp19 [V60,T7
6
] ( 2, 0 ) ref -> rsi class-hnd "impSpillSpecialSideEff"
; V60 tmp19 [V60,T7
2
] ( 2, 0 ) ref -> rsi class-hnd "impSpillSpecialSideEff"
; V61 tmp20 [V61,
T72
] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp"
; V61 tmp20 [V61,
T68
] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp"
; V62 tmp21 [V62,T4
5
] ( 3, 3 ) ref -> rax class-hnd exact "Single-def Box Helper"
; V62 tmp21 [V62,T4
1
] ( 3, 3 ) ref -> rax class-hnd exact "Single-def Box Helper"
; V63 tmp22 [V63,T5
9
] ( 3, 1.50) ref -> rbx
; V63 tmp22 [V63,T5
5
] ( 3, 1.50) ref -> rbx
; V64 tmp23 [V64,T0
7
] ( 2, 64 ) int -> r13 "Inlining Arg"
; V64 tmp23 [V64,T0
5
] ( 2, 64 ) int -> r13 "Inlining Arg"
;* V65 tmp24 [V65 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SB] "Inlining Arg"
;* V65 tmp24 [V65 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SB] "Inlining Arg"
Copiar
Copiado
Copiar
Copiado
; V66 tmp25 [V66,T3
7
] ( 5, 5 ) ref -> rax "Single return block return value"
; V66 tmp25 [V66,T3
3
] ( 5, 5 ) ref -> rax "Single return block return value"
; V67 tmp26 [V67,T
32
] ( 6, 6.50) ref -> [rbp+18H] V69._bits(offs=0x00) P-INDEP "field V01._bits (fldOffset=0x0)"
; V67 tmp26 [V67,T
28
] ( 6, 6.50) ref -> [rbp+18H] V69._bits(offs=0x00) P-INDEP "field V01._bits (fldOffset=0x0)"
; V68 tmp27 [V68 ] ( 7, 4 ) int -> [rbp+
7
4H] do-not-enreg[X] addr-exposed V69._sign(offs=0x08) P-INDEP "field V01._sign (fldOffset=0x8)"
; V68 tmp27 [V68 ] ( 7, 4 ) int -> [rbp+
6
4H] do-not-enreg[X] addr-exposed V69._sign(offs=0x08) P-INDEP "field V01._sign (fldOffset=0x8)"
;* V69 tmp28 [V69 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref"
;* V69 tmp28 [V69 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref"
Copiar
Copiado
Copiar
Copiado
; V70 tmp29 [V70 ] ( 6, 8 ) struct (16) [rbp+
6
0H] do-not-enreg[XSB] must-init addr-exposed "by-value struct argument"
; V70 tmp29 [V70 ] ( 6, 8 ) struct (16) [rbp+
5
0H] do-not-enreg[XSB] must-init addr-exposed "by-value struct argument"
; V71 tmp30 [V71 ] ( 2, 2 ) struct (16) [rbp+
5
0H] do-not-enreg[XSB] must-init addr-exposed "by-value struct argument"
; V71 tmp30 [V71 ] ( 2, 2 ) struct (16) [rbp+
4
0H] do-not-enreg[XSB] must-init addr-exposed "by-value struct argument"
; V72 tmp31 [V72,T4
6
] ( 3, 3 ) byref -> rdx stack-byref "BlockOp address local"
; V72 tmp31 [V72,T4
2
] ( 3, 3 ) byref -> rdx stack-byref "BlockOp address local"
; V73 tmp32 [V73 ] ( 8, 8 ) struct (16) [rbp+
4
0H] do-not-enreg[XSB] must-init addr-exposed "by-value struct argument"
; V73 tmp32 [V73 ] ( 8, 8 ) struct (16) [rbp+
3
0H] do-not-enreg[XSB] must-init addr-exposed "by-value struct argument"
; V74 tmp33 [V74,
T53
] ( 2, 2 ) int -> rcx "argument with side effect"
; V74 tmp33 [V74,
T49
] ( 2, 2 ) int -> rcx "argument with side effect"
; V75 tmp34 [V75,T5
4
] ( 2, 2 ) int -> r8 "argument with side effect"
; V75 tmp34 [V75,T5
0
] ( 2, 2 ) int -> r8 "argument with side effect"
; V76 tmp35 [V76,T5
5
] ( 2, 2 ) int -> r9 "argument with side effect"
; V76 tmp35 [V76,T5
1
] ( 2, 2 ) int -> r9 "argument with side effect"
; V77 tmp36 [V77,T4
9
] ( 2, 2 ) ref -> r13 "argument with side effect"
; V77 tmp36 [V77,T4
5
] ( 2, 2 ) ref -> r13 "argument with side effect"
; V78 tmp37 [V78,
T50
] ( 2, 2 ) byref -> r14 "argument with side effect"
; V78 tmp37 [V78,
T46
] ( 2, 2 ) byref -> r14 "argument with side effect"
; V79 tmp38 [V79,T7
7
] ( 2, 0 ) ref -> rdx "argument with side effect"
; V79 tmp38 [V79,T7
3
] ( 2, 0 ) ref -> rdx "argument with side effect"
; V80 tmp39 [V80,T7
8
] ( 2, 0 ) ref -> rdx "argument with side effect"
; V80 tmp39 [V80,T7
4
] ( 2, 0 ) ref -> rdx "argument with side effect"
; V81 tmp40 [V81,T7
9
] ( 2, 0 ) ref -> rdx "argument with side effect"
; V81 tmp40 [V81,T7
5
] ( 2, 0 ) ref -> rdx "argument with side effect"
; V82 tmp41 [V82,
T80
] ( 2, 0 ) ref -> rdx "argument with side effect"
; V82 tmp41 [V82,
T76
] ( 2, 0 ) ref -> rdx "argument with side effect"
; V83 tmp42 [V83,T5
6
] ( 2, 2 ) long -> rcx "argument with side effect"
; V83 tmp42 [V83,T5
2
] ( 2, 2 ) long -> rcx "argument with side effect"
; V84 tmp43 [V84,T5
7
] ( 2, 2 ) int -> r8 "argument with side effect"
; V84 tmp43 [V84,T5
3
] ( 2, 2 ) int -> r8 "argument with side effect"
; V85 tmp44 [V85,T5
8
] ( 2, 2 ) int -> r9 "argument with side effect"
; V85 tmp44 [V85,T5
4
] ( 2, 2 ) int -> r9 "argument with side effect"
; V86 tmp45 [V86,
T51
] ( 2, 2 ) byref -> rcx "argument with side effect"
; V86 tmp45 [V86,
T47
] ( 2, 2 ) byref -> rcx "argument with side effect"
; V87 tmp46 [V87,
T52
] ( 2, 2 ) byref -> rcx "argument with side effect"
; V87 tmp46 [V87,
T48
] ( 2, 2 ) byref -> rcx "argument with side effect"
; V88 GsCookie [V88 ] ( 1, 1 ) long -> [rbp+10H] do-not-enreg[X] addr-exposed "GSSecurityCookie"
; V88 GsCookie [V88 ] ( 1, 1 ) long -> [rbp+10H] do-not-enreg[X] addr-exposed "GSSecurityCookie"
; V89 PSPSym [V89 ] ( 1, 1 ) long -> [rbp+00H] do-not-enreg[X] addr-exposed "PSPSym"
; V89 PSPSym [V89 ] ( 1, 1 ) long -> [rbp+00H] do-not-enreg[X] addr-exposed "PSPSym"
Copiar
Copiado
Copiar
Copiado
; V90 cse0 [V90,T1
3
] ( 9, 33 ) int ->
[rbp+3CH]
"CSE - aggressive"
; V90 cse0 [V90,T1
1
] ( 9, 33 ) int ->
r9
"CSE - aggressive"
; V91 cse1 [V91,T3
4
] ( 5, 6 ) int -> r8 "CSE - moderate"
; V91 cse1 [V91,T3
0
] ( 5, 6 ) int -> r8 "CSE - moderate"
; V92 cse2 [V92,T3
9
] ( 3, 5 ) int -> rsi "CSE - moderate"
; V92 cse2 [V92,T3
5
] ( 3, 5 ) int -> rsi "CSE - moderate"
; V93 cse3 [V93,T4
8
] ( 4, 2 ) int ->
r10
"CSE - conservative"
; V93 cse3 [V93,T4
4
] ( 4, 2 ) int ->
r9
"CSE - conservative"
; V94 cse4 [V94,T
10
] ( 3, 48 ) long ->
[rbp+30H]
"CSE - aggressive"
; V94 cse4 [V94,T
08
] ( 3, 48 ) long ->
r10
"CSE - aggressive"
; V95 rat0 [V95,T4
7
] ( 3, 3 ) int -> rdx "ReplaceWithLclVar is creating a new local variable"
; V95 rat0 [V95,T4
3
] ( 3, 3 ) int -> rdx "ReplaceWithLclVar is creating a new local variable"
; V96 rat1 [V96,T03] ( 3, 96 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
; V97 rat2 [V97,T04] ( 3, 96 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
; V98 rat3 [V98,T26] ( 3, 12 ) int -> rdx "ReplaceWithLclVar is creating a new local variable"
; V99 rat4 [V99,T27] ( 3, 12 ) int -> rdx "ReplaceWithLclVar is creating a new local variable"
;
;
Copiar
Copiado
Copiar
Copiado
; Lcl frame size =
312
; Lcl frame size =
296
G_M52061_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
G_M52061_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push rbp
push rbp
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rdi
push rdi
push rsi
push rsi
push rbx
push rbx
Copiar
Copiado
Copiar
Copiado
sub rsp,
312
sub rsp,
296
lea rbp, [rsp+40H]
lea rbp, [rsp+40H]
xorps xmm4, xmm4
xorps xmm4, xmm4
mov rax, -144
mov rax, -144
Copiar
Copiado
Copiar
Copiado
movaps xmmword ptr [rbp+rax+C0H], xmm4
movaps xmmword ptr [rbp+rax+D0H], xmm4
movaps xmmword ptr [rbp+rax+D0H], xmm4
movaps xmmword ptr [rbp+rax+E0H], xmm4
movaps xmmword ptr [rbp+rax+E0H], xmm4
Copiar
Copiado
Copiar
Copiado
movaps xmmword ptr [rbp+rax+F0H], xmm4
add rax, 48
add rax, 48
jne SHORT -5 instr
jne SHORT -5 instr
Copiar
Copiado
Copiar
Copiado
mov qword ptr [rbp+
D
0H], rax
mov qword ptr [rbp+
C
0H], rax
mov qword ptr [rbp], rsp
mov qword ptr [rbp], rsp
mov rax, qword ptr [(reloc)]
mov rax, qword ptr [(reloc)]
mov qword ptr [rbp+10H], rax
mov qword ptr [rbp+10H], rax
mov edi, ecx
mov edi, ecx
mov rbx, r8
mov rbx, r8
; gcrRegs +[rbx]
; gcrRegs +[rbx]
mov rsi, r9
mov rsi, r9
; byrRegs +[rsi]
; byrRegs +[rsi]
Copiar
Copiado
Copiar
Copiado
mov r13, gword ptr [rbp+1
6
0H]
mov r13, gword ptr [rbp+1
5
0H]
; gcrRegs +[r13]
; gcrRegs +[r13]
Copiar
Copiado
Copiar
Copiado
mov r12, bword ptr [rbp+1
6
8H]
mov r12, bword ptr [rbp+1
5
8H]
; byrRegs +[r12]
; byrRegs +[r12]
Copiar
Copiado
Copiar
Copiado
mov r14, bword ptr [rbp+1
7
0H]
mov r14, bword ptr [rbp+1
6
0H]
; byrRegs +[r14]
; byrRegs +[r14]
Copiar
Copiado
Copiar
Copiado
mov r15, bword ptr [rbp+1
7
8H]
mov r15, bword ptr [rbp+1
6
8H]
; byrRegs +[r15]
; byrRegs +[r15]
;; bbWeight=1 PerfScore 29.33
;; bbWeight=1 PerfScore 29.33
G_M52061_IG02: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D044 {rdx rsi r12 r14 r15}, byref
G_M52061_IG02: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D044 {rdx rsi r12 r14 r15}, byref
; byrRegs +[rdx]
; byrRegs +[rdx]
mov rax, gword ptr [rdx]
mov rax, gword ptr [rdx]
; gcrRegs +[rax]
; gcrRegs +[rax]
mov gword ptr [rbp+18H], rax
mov gword ptr [rbp+18H], rax
; GC ptr vars +{V67}
; GC ptr vars +{V67}
mov ecx, dword ptr [rdx+8]
mov ecx, dword ptr [rdx+8]
Copiar
Copiado
Copiar
Copiado
mov dword ptr [rbp+
7
4H], ecx
mov dword ptr [rbp+
6
4H], ecx
;; bbWeight=1 PerfScore 6.00
;; bbWeight=1 PerfScore 6.00
Copiar
Copiado
Copiar
Copiado
G_M52061_IG03: ; gcVars=00000000
0
0000000 {V67}, gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref
G_M52061_IG03: ; gcVars=00000000
1
0000000 {V67}, gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref
; gcrRegs -[rax]
; gcrRegs -[rax]
; byrRegs -[rdx]
; byrRegs -[rdx]
xor ecx, ecx
xor ecx, ecx
Copiar
Copiado
Copiar
Copiado
mov dword ptr [rbp+
F
0H], ecx
mov dword ptr [rbp+
E
0H], ecx
;; bbWeight=1 PerfScore 1.25
;; bbWeight=1 PerfScore 1.25
G_M52061_IG04: ; , nogc, extend
G_M52061_IG04: ; , nogc, extend
movups xmm0, xmmword ptr [rsi]
movups xmm0, xmmword ptr [rsi]
Copiar
Copiado
Copiar
Copiado
movups xmmword ptr [rbp+
6
0H], xmm0
movups xmmword ptr [rbp+
5
0H], xmm0
;; bbWeight=1 PerfScore 6.00
;; bbWeight=1 PerfScore 6.00
G_M52061_IG05: ; , isz, extend
G_M52061_IG05: ; , isz, extend
Copiar
Copiado
Copiar
Copiado
lea rcx, bword ptr [rbp+
6
0H]
lea rcx, bword ptr [rbp+
5
0H]
; byrRegs +[rcx]
; byrRegs +[rcx]
Copiar
Copiado
Copiar
Copiado
lea rdx, [rbp+
F
0H]
lea rdx, [rbp+
E
0H]
call [System.Numerics.BigNumber:ParseFormatSpecifier()]
call [System.Numerics.BigNumber:ParseFormatSpecifier()]
; byrRegs -[rcx]
; byrRegs -[rcx]
; gcr arg pop 0
; gcr arg pop 0
movzx rax, ax
movzx rax, ax
mov r8d, eax
mov r8d, eax
cmp r8d, 120
cmp r8d, 120
je SHORT G_M52061_IG07
je SHORT G_M52061_IG07
;; bbWeight=1 PerfScore 5.75
;; bbWeight=1 PerfScore 5.75
G_M52061_IG06: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz
G_M52061_IG06: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz
cmp r8d, 88
cmp r8d, 88
jne SHORT G_M52061_IG10
jne SHORT G_M52061_IG10
Copiar
Copiado
Copiar
Copiado
;; bbWeight=0.50 PerfScore 0.
62
;; bbWeight=0.50 PerfScore 0.
63
G_M52061_IG07: ; gcrefRegs=00002000 {r13}, byrefRegs=0000D000 {r12 r14 r15}, byref
G_M52061_IG07: ; gcrefRegs=00002000 {r13}, byrefRegs=0000D000 {r12 r14 r15}, byref
; gcrRegs -[rbx]
; gcrRegs -[rbx]
; byrRegs -[rsi]
; byrRegs -[rsi]
movzx rcx, dil
movzx rcx, dil
Copiar
Copiado
Copiar
Copiado
lea rdx, bword ptr [rbp+
5
0H]
lea rdx, bword ptr [rbp+
4
0H]
; byrRegs +[rdx]
; byrRegs +[rdx]
mov rdi, gword ptr [rbp+18H]
mov rdi, gword ptr [rbp+18H]
; gcrRegs +[rdi]
; gcrRegs +[rdi]
mov gword ptr [rdx], rdi
mov gword ptr [rdx], rdi
Copiar
Copiado
Copiar
Copiado
mov r9d, dword ptr [rbp+
7
4H]
mov r9d, dword ptr [rbp+
6
4H]
mov dword ptr [rdx+8], r9d
mov dword ptr [rdx+8], r9d
Copiar
Copiado
Copiar
Copiado
mov r9d, dword ptr [rbp+
F
0H]
mov r9d, dword ptr [rbp+
E
0H]
;; bbWeight=0.50 PerfScore 2.88
;; bbWeight=0.50 PerfScore 2.88
G_M52061_IG08: ; , nogc, extend
G_M52061_IG08: ; , nogc, extend
movups xmm0, xmmword ptr [r12]
movups xmm0, xmmword ptr [r12]
Copiar
Copiado
Copiar
Copiado
movups xmmword ptr [rbp+
4
0H], xmm0
movups xmmword ptr [rbp+
3
0H], xmm0
;; bbWeight=0.50 PerfScore 3.00
;; bbWeight=0.50 PerfScore 3.00
G_M52061_IG09: ; , extend
G_M52061_IG09: ; , extend
mov bword ptr [rsp+30H], r14
mov bword ptr [rsp+30H], r14
; byr arg write
; byr arg write
mov bword ptr [rsp+38H], r15
mov bword ptr [rsp+38H], r15
; byr arg write
; byr arg write
Copiar
Copiado
Copiar
Copiado
lea rdx, bword ptr [rbp+
5
0H]
lea rdx, bword ptr [rbp+
4
0H]
mov gword ptr [rsp+20H], r13
mov gword ptr [rsp+20H], r13
; gcr arg write
; gcr arg write
Copiar
Copiado
Copiar
Copiado
lea rax, bword ptr [rbp+
4
0H]
lea rax, bword ptr [rbp+
3
0H]
; byrRegs +[rax]
; byrRegs +[rax]
mov bword ptr [rsp+28H], rax
mov bword ptr [rsp+28H], rax
; byr arg write
; byr arg write
; GC ptr vars -{V67}
; GC ptr vars -{V67}
call [System.Numerics.BigNumber:FormatBigIntegerToHex()]
call [System.Numerics.BigNumber:FormatBigIntegerToHex()]
; gcrRegs -[rdi r13] +[rax]
; gcrRegs -[rdi r13] +[rax]
; byrRegs -[rax rdx r12 r14-r15]
; byrRegs -[rax rdx r12 r14-r15]
; gcr arg pop 0
; gcr arg pop 0
jmp G_M52061_IG75
jmp G_M52061_IG75
;; bbWeight=0.50 PerfScore 5.00
;; bbWeight=0.50 PerfScore 5.00
Copiar
Copiado
Copiar
Copiado
G_M52061_IG10: ; gcVars=00000000
0
0000000 {V67}, gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz
G_M52061_IG10: ; gcVars=00000000
1
0000000 {V67}, gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz
; gcrRegs -[rax] +[rbx r13]
; gcrRegs -[rax] +[rbx r13]
; byrRegs +[rsi r12 r14-r15]
; byrRegs +[rsi r12 r14-r15]
Copiar
Copiado
Copiar
Copiado
; GC ptr vars +{
V32
V67}
; GC ptr vars +{
V67}
mov rdx, gword ptr [rbp+18H]
mov rdx, gword ptr [rbp+18H]
; gcrRegs +[rdx]
; gcrRegs +[rdx]
test rdx, rdx
test rdx, rdx
jne G_M52061_IG19
jne G_M52061_IG19
cmp r8d, 103
cmp r8d, 103
je SHORT G_M52061_IG11
je SHORT G_M52061_IG11
cmp r8d, 71
cmp r8d, 71
je SHORT G_M52061_IG11
je SHORT G_M52061_IG11
cmp r8d, 114
cmp r8d, 114
je SHORT G_M52061_IG11
je SHORT G_M52061_IG11
cmp r8d, 82
cmp r8d, 82
jne SHORT G_M52061_IG14
jne SHORT G_M52061_IG14
Copiar
Copiado
Copiar
Copiado
;; bbWeight=0.50 PerfScore 3.
62
;; bbWeight=0.50 PerfScore 3.
63
G_M52061_IG11: ; gcVars=0000000000000000 {}, gcrefRegs=00002000 {r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz
G_M52061_IG11: ; gcVars=0000000000000000 {}, gcrefRegs=00002000 {r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz
; gcrRegs -[rdx rbx]
; gcrRegs -[rdx rbx]
Copiar
Copiado
Copiar
Copiado
; GC ptr vars -{
V32
V67}
; GC ptr vars -{
V67}
cmp dword ptr [rbp+
F
0H], 0
cmp dword ptr [rbp+
E
0H], 0
jg SHORT G_M52061_IG12
jg SHORT G_M52061_IG12
mov rax, qword ptr [(reloc)]
mov rax, qword ptr [(reloc)]
mov rbx, gword ptr [rax]
mov rbx, gword ptr [rax]
; gcrRegs +[rbx]
; gcrRegs +[rbx]
jmp SHORT G_M52061_IG13
jmp SHORT G_M52061_IG13
;; bbWeight=0.50 PerfScore 4.00
;; bbWeight=0.50 PerfScore 4.00
G_M52061_IG12: ; gcrefRegs=00002000 {r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref
G_M52061_IG12: ; gcrefRegs=00002000 {r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref
; gcrRegs -[rbx]
; gcrRegs -[rbx]
call [CORINFO_HELP_READYTORUN_NEW]
call [CORINFO_HELP_READYTORUN_NEW]
; gcrRegs +[rax]
; gcrRegs +[rax]
; gcr arg pop 0
; gcr arg pop 0
Copiar
Copiado
Copiar
Copiado
mov edx, dword ptr [rbp+
F
0H]
mov edx, dword ptr [rbp+
E
0H]
mov dword ptr [rax+8], edx
mov dword ptr [rax+8], edx
mov rdx, rax
mov rdx, rax
; gcrRegs +[rdx]
; gcrRegs +[rdx]
mov rcx, qword ptr [(reloc)]
mov rcx, qword ptr [(reloc)]
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
; gcrRegs +[rcx]
; gcrRegs +[rcx]
call [System.String:Format()]
call [System.String:Format()]
; gcrRegs -[rcx rdx]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
; gcr arg pop 0
mov rbx, rax
mov rbx, rax
; gcrRegs +[rbx]
; gcrRegs +[rbx]
;; bbWeight=0.50 PerfScore 6.25
;; bbWeight=0.50 PerfScore 6.25
G_M52061_IG13: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref
G_M52061_IG13: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref
; gcrRegs -[rax]
; gcrRegs -[rax]
mov rcx, rsi
mov rcx, rsi
; byrRegs +[rcx]
; byrRegs +[rcx]
mov rdx, rbx
mov rdx, rbx
; gcrRegs +[rdx]
; gcrRegs +[rdx]
call [System.String:op_Implicit()]
call [System.String:op_Implicit()]
; gcrRegs -[rdx]
; gcrRegs -[rdx]
; byrRegs -[rcx]
; byrRegs -[rcx]
; gcr arg pop 0
; gcr arg pop 0
;; bbWeight=0.50 PerfScore 1.75
;; bbWeight=0.50 PerfScore 1.75
G_M52061_IG14: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz
G_M52061_IG14: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz
test dil, dil
test dil, dil
je SHORT G_M52061_IG18
je SHORT G_M52061_IG18
Copiar
Copiado
Copiar
Copiado
;; bbWeight=0.50 PerfScore 0.
62
;; bbWeight=0.50 PerfScore 0.
63
G_M52061_IG15: ; , nogc, extend
G_M52061_IG15: ; , nogc, extend
movups xmm0, xmmword ptr [r12]
movups xmm0, xmmword ptr [r12]
Copiar
Copiado
Copiar
Copiado
movups xmmword ptr [rbp+
4
0H], xmm0
movups xmmword ptr [rbp+
3
0H], xmm0
;; bbWeight=0.50 PerfScore 3.00
;; bbWeight=0.50 PerfScore 3.00
G_M52061_IG16: ; , nogc, extend
G_M52061_IG16: ; , nogc, extend
movups xmm0, xmmword ptr [rsi]
movups xmm0, xmmword ptr [rsi]
Copiar
Copiado
Copiar
Copiado
movups xmmword ptr [rbp+
6
0H], xmm0
movups xmmword ptr [rbp+
5
0H], xmm0
;; bbWeight=0.50 PerfScore 3.00
;; bbWeight=0.50 PerfScore 3.00
G_M52061_IG17: ; , extend
G_M52061_IG17: ; , extend
mov gword ptr [rsp+20H], r13
mov gword ptr [rsp+20H], r13
; gcr arg write
; gcr arg write
Copiar
Copiado
Copiar
Copiado
lea rdx, bword ptr [rbp+
4
0H]
lea rdx, bword ptr [rbp+
3
0H]
; byrRegs +[rdx]
; byrRegs +[rdx]
mov r8, r14
mov r8, r14
; byrRegs +[r8]
; byrRegs +[r8]
Copiar
Copiado
Copiar
Copiado
lea r9, bword ptr [rbp+
6
0H]
lea r9, bword ptr [rbp+
5
0H]
; byrRegs +[r9]
; byrRegs +[r9]
Copiar
Copiado
Copiar
Copiado
lea rcx, bword ptr [rbp+
7
4H]
lea rcx, bword ptr [rbp+
6
4H]
; byrRegs +[rcx]
; byrRegs +[rcx]
call [System.Int32:TryFormat()]
call [System.Int32:TryFormat()]
; gcrRegs -[rbx r13]
; gcrRegs -[rbx r13]
; byrRegs -[rcx rdx rsi r8-r9 r12 r14]
; byrRegs -[rcx rdx rsi r8-r9 r12 r14]
; gcr arg pop 0
; gcr arg pop 0
mov byte ptr [r15], al
mov byte ptr [r15], al
jmp G_M52061_IG72
jmp G_M52061_IG72
;; bbWeight=0.50 PerfScore 4.38
;; bbWeight=0.50 PerfScore 4.38
G_M52061_IG18: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000C000 {r14 r15}, byref
G_M52061_IG18: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000C000 {r14 r15}, byref
; gcrRegs +[rbx r13]
; gcrRegs +[rbx r13]
; byrRegs +[r14]
; byrRegs +[r14]
xor ecx, ecx
xor ecx, ecx
mov dword ptr [r14], ecx
mov dword ptr [r14], ecx
mov byte ptr [r15], 0
mov byte ptr [r15], 0
Copiar
Copiado
Copiar
Copiado
lea rcx, bword ptr [rbp+
7
4H]
lea rcx, bword ptr [rbp+
6
4H]
; byrRegs +[rcx]
; byrRegs +[rcx]
mov rdx, rbx
mov rdx, rbx
; gcrRegs +[rdx]
; gcrRegs +[rdx]
mov r8, r13
mov r8, r13
; gcrRegs +[r8]
; gcrRegs +[r8]
call [System.Int32:ToString()]
call [System.Int32:ToString()]
; gcrRegs -[rdx rbx r8 r13] +[rax]
; gcrRegs -[rdx rbx r8 r13] +[rax]
; byrRegs -[rcx r14-r15]
; byrRegs -[rcx r14-r15]
; gcr arg pop 0
; gcr arg pop 0
jmp G_M52061_IG75
jmp G_M52061_IG75
Copiar
Copiado
Copiar
Copiado
;; bbWeight=0.50 PerfScore 4.
12
;; bbWeight=0.50 PerfScore 4.
13
G_M52061_IG19: ; gcrefRegs=00002004 {rdx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref
G_M52061_IG19: ; gcrefRegs=00002004 {rdx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref
; gcrRegs -[rax] +[rdx r13]
; gcrRegs -[rax] +[rdx r13]
; byrRegs +[rsi r12 r14-r15]
; byrRegs +[rsi r12 r14-r15]
mov gword ptr [rbp+18H], rdx
mov gword ptr [rbp+18H], rdx
; GC ptr vars +{V67}
; GC ptr vars +{V67}
mov ebx, dword ptr [rdx+8]
mov ebx, dword ptr [rdx+8]
;; bbWeight=0.50 PerfScore 1.50
;; bbWeight=0.50 PerfScore 1.50
Copiar
Copiado
Copiar
Copiado
G_M52061_IG20: ; gcVars=00000000
0
0000000 {V67}, gcrefRegs=00002000 {r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz
G_M52061_IG20: ; gcVars=00000000
1
0000000 {V67}, gcrefRegs=00002000 {r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz
; gcrRegs -[rdx]
; gcrRegs -[rdx]
imul ecx, ebx, 10
imul ecx, ebx, 10
jo SHORT G_M52061_IG21
jo SHORT G_M52061_IG21
mov r9d, 0xD1FFAB1E
mov r9d, 0xD1FFAB1E
mov eax, r9d
mov eax, r9d
imul edx:eax, ecx
imul edx:eax, ecx
mov ecx, edx
mov ecx, edx
shr ecx, 31
shr ecx, 31
sar edx, 1
sar edx, 1
add ecx, edx
add ecx, edx
add ecx, 2
add ecx, 2
jo SHORT G_M52061_IG21
jo SHORT G_M52061_IG21
jmp SHORT G_M52061_IG22
jmp SHORT G_M52061_IG22
;; bbWeight=0.50 PerfScore 5.88
;; bbWeight=0.50 PerfScore 5.88
G_M52061_IG21: ; gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
G_M52061_IG21: ; gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[r13]
; gcrRegs -[r13]
; byrRegs -[rsi r12 r14-r15]
; byrRegs -[rsi r12 r14-r15]
; GC ptr vars -{V67}
; GC ptr vars -{V67}
call [CORINFO_HELP_OVERFLOW]
call [CORINFO_HELP_OVERFLOW]
; gcr arg pop 0
; gcr arg pop 0
int3
int3
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
Copiar
Copiado
Copiar
Copiado
G_M52061_IG22: ; gcVars=00000000
0
0000000 {V67}, gcrefRegs=00002000 {r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref
G_M52061_IG22: ; gcVars=00000000
1
0000000 {V67}, gcrefRegs=00002000 {r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref
; gcrRegs +[r13]
; gcrRegs +[r13]
; byrRegs +[rsi r12 r14-r15]
; byrRegs +[rsi r12 r14-r15]
Copiar
Copiado
Copiar
Copiado
; GC ptr vars +{
V32
V67}
; GC ptr vars +{
V67}
mov dword ptr [rbp+
E
CH], r8d
mov dword ptr [rbp+
D
CH], r8d
movsxd rcx, ecx
movsxd rcx, ecx
call [CORINFO_HELP_READYTORUN_NEWARR_1]
call [CORINFO_HELP_READYTORUN_NEWARR_1]
; gcrRegs +[rax]
; gcrRegs +[rax]
; gcr arg pop 0
; gcr arg pop 0
Copiar
Copiado
Copiar
Copiado
mov r8, rax
; gcrRegs +[r8]
xor ecx, ecx
xor ecx, ecx
jmp G_M52061_IG27
jmp G_M52061_IG27
Copiar
Copiado
Copiar
Copiado
;; bbWeight=0.50 PerfScore 3.
38
;; bbWeight=0.50 PerfScore 3.
25
G_M52061_IG23: ; gcrefRegs=00002
100 {r8
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref
G_M52061_IG23: ; gcrefRegs=00002
001 {rax
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref
; gcrRegs -[rax]
mov
rdx
, gword ptr [rbp+18H]
mov
r9
, gword ptr [rbp+18H]
; gcrRegs +[
rdx
]
; gcrRegs +[
r9
]
cmp ebx, dword ptr [
rdx
+8]
cmp ebx, dword ptr [
r9
+8]
jae G_M52061_IG78
jae G_M52061_IG78
Copiar
Copiado
Copiar
Copiado
movsxd
rax
, ebx
movsxd
r11
, ebx
mov r11d, dword ptr [
r9
+4*
rax
+16]
mov r11d, dword ptr [
rdx
+4*
r11
+16]
xor
r10d, r10d
xor
r8d, r8d
test ecx, ecx
test ecx, ecx
jle G_M52061_IG26
jle G_M52061_IG26
Copiar
Copiado
Copiar
Copiado
mov
eax
, dword ptr [
r8
+8]
mov
r9d
, dword ptr [
rax
+8]
mov gword ptr [rbp+
160H
], r13
mov gword ptr [rbp+
18H], rdx
;; bbWeight=2 PerfScore
21
.50
mov gword ptr [rbp+150H
], r13
G_M52061_IG24: ;
gcVars=0000000000000000 {},
gcrefRegs=00000
300 {r8 r9
}, byrefRegs=0000D040 {rsi r12 r14 r15}
, gcvars
, byref
;; bbWeight=2 PerfScore
23
.50
; gcrRegs -[
r13]
G_M52061_IG24: ;
gcrefRegs=00000
001 {rax
}, byrefRegs=0000D040 {rsi r12 r14 r15}
, byref
, isz
; GC ptr vars -{V32 V67}
; gcrRegs -[
rdx
r13]
mov dword ptr [rbp+3CH], eax
cmp
r8d, r9d
cmp
r10d, eax
jae G_M52061_IG78
jae G_M52061_IG78
Copiar
Copiado
Copiar
Copiado
movsxd
rdx, r10d
movsxd
r10, r8d
mov
q
word ptr [rbp+
30H
], r
dx
mov
g
word ptr [rbp+
28H
], r
ax
mov r13d, dword ptr [
r8
+4*
rdx
+16]
; GC ptr vars +{V12}
mov r13d, dword ptr [
rax
+4*
r10
+16]
shl r13, 32
shl r13, 32
mov r11d, r11d
mov r11d, r11d
or r11, r13
or r11, r13
mov r13, 0xD1FFAB1E
mov r13, 0xD1FFAB1E
mov rax, r11
mov rax, r11
Copiar
Copiado
Copiar
Copiado
; gcrRegs -[rax]
shr rax, 9
mul rdx:rax, r13
mul rdx:rax, r13
Copiar
Copiado
Copiar
Copiado
mov rax, r11
shr r
d
x, 1
1
sub rax, rdx
imul rax, r
d
x, 0xD1FFAB1E
shr r
a
x, 1
add rax, rdx
shr rax, 29
imul rax, r
a
x, 0xD1FFAB1E
mov rdx, r11
mov rdx, r11
sub rdx, rax
sub rdx, rax
mov eax, edx
mov eax, edx
Copiar
Copiado
Copiar
Copiado
mov r13,
q
word ptr [rbp+
30H]
mov r13,
g
word ptr [rbp+
28H]
mov dword ptr [
r8
+4*r1
3
+16], eax
; gcrRegs +[r13]
mov dword ptr [
r13
+4*r1
0
+16], eax
mov rdx, 0xD1FFAB1E
mov rdx, 0xD1FFAB1E
mov rax, r11
mov rax, r11
Copiar
Copiado
Copiar
Copiado
shr rax, 9
mul rdx:rax, rdx
mul rdx:rax, rdx
Copiar
Copiado
Copiar
Copiado
sub r11, rdx
shr rdx,
11
shr r11, 1
add rdx, r11
shr rdx,
29
mov r11d, edx
mov r11d, edx
Copiar
Copiado
Copiar
Copiado
inc
r10d
inc
r8d
cmp
r10d
, ecx
cmp
r8d
, ecx
mov
e
ax,
dword ptr [rbp+3CH
]
mov
r
ax,
r13
jl
G_M52061_IG24
; gcrRegs +[rax
]
jl
SHORT
G_M52061_IG24
;; bbWeight=16 PerfScore 428.00
;; bbWeight=16 PerfScore 428.00
Copiar
Copiado
Copiar
Copiado
G_M52061_IG25: ; gcrefRegs=00000
300 {r8 r9
}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref
G_M52061_IG25: ; gcrefRegs=00000
001 {rax
}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref
mov r13, gword ptr [rbp+1
6
0H]
; gcrRegs -[r13]
; GC ptr vars -{V12}
mov rdx, gword ptr [rbp+18H]
; gcrRegs +[rdx]
mov r13, gword ptr [rbp+1
5
0H]
; gcrRegs +[r13]
; gcrRegs +[r13]
Copiar
Copiado
Copiar
Copiado
;; bbWeight=8 PerfScore
8
.00
;; bbWeight=8 PerfScore
16
.00
G_M52061_IG26: ;
gcrefRegs=00002
300 {r8 r9
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}
, byref, isz
G_M52061_IG26: ;
gcVars=0000000000000000 {},
gcrefRegs=00002
005 {rax rdx
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}
, gcvars
, byref, isz
; GC ptr vars -{V67}
test r11d, r11d
test r11d, r11d
Copiar
Copiado
Copiar
Copiado
mov gword ptr [rbp+18H],
r9
mov gword ptr [rbp+18H],
rdx
; GC ptr vars +{V67}
; GC ptr vars +{V67}
Copiar
Copiado
Copiar
Copiado
je
G_M52061_IG27
je
SHORT
G_M52061_IG27
lea
eax
, [rcx+1]
lea
r8d
, [rcx+1]
mov
dword ptr [rbp+E8H], eax
mov
r9d, r11d
mov
edx
, 0xD1FFAB1E
shr r9d, 9
mov eax, r11d
imul
r9, r9
, 0xD1FFAB1E
mul edx:eax, edx
shr r9, 39
mov eax, r11d
imul
r9d, r9d
, 0xD1FFAB1E
sub eax, edx
mov
r10d
, r11d
shr eax, 1
sub
r10d, r9d
add eax, edx
mov
r9d
, dword ptr [
rax
+8]
shr eax, 29
cmp ecx,
r9d
imul
eax, eax
, 0xD1FFAB1E
mov
edx
, r11d
sub
edx, eax
mov
r10d
, dword ptr [
r8
+8]
cmp ecx,
r10d
jae G_M52061_IG78
jae G_M52061_IG78
Copiar
Copiado
Copiar
Copiado
movsxd r
a
x, ecx
movsxd r
c
x, ecx
mov dword ptr [
r8+4*rax+16], edx
mov dword ptr [
rax+4*rcx+16], r10d
mov edx, 0xD1FFAB1E
shr r11d, 9
mov eax, r11d
imul r11, r11, 0xD1FFAB1E
mul edx:eax, edx
shr r11, 39
sub r11d, edx
shr r11d, 1
add r11d, edx
shr r11d, 29
test r11d, r11d
test r11d, r11d
Copiar
Copiado
Copiar
Copiado
mov ecx,
dword ptr [rbp+E8H]
mov ecx,
r8d
je SHORT G_M52061_IG27
je SHORT G_M52061_IG27
Copiar
Copiado
Copiar
Copiado
mov
eax
, ecx
mov
r8d
, ecx
lea ecx, [
rax
+1]
lea ecx, [
r8
+1]
cmp
eax, r10d
cmp
r8d, r9d
jae G_M52061_IG78
jae G_M52061_IG78
Copiar
Copiado
Copiar
Copiado
movsxd
rax, eax
movsxd
r8, r8d
mov gword ptr [rbp+28H],
r8
mov gword ptr [rbp+28H],
rax
; GC ptr vars +{V12}
; GC ptr vars +{V12}
Copiar
Copiado
Copiar
Copiado
mov dword ptr [
r8
+4*
rax
+16], r11d
mov dword ptr [
rax
+4*
r8
+16], r11d
mov
r8
, gword ptr [rbp+28H]
mov
rax
, gword ptr [rbp+28H]
;; bbWeight=2 PerfScore
59.00
;; bbWeight=2 PerfScore
57.50
G_M52061_IG27: ; gcVars=00000000
0
0000000 {V67}, gcrefRegs=00002
100 {r8
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref
G_M52061_IG27: ; gcVars=00000000
1
0000000 {V67}, gcrefRegs=00002
001 {rax
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref
; gcrRegs -[
r9
]
; gcrRegs -[
rdx
]
; GC ptr vars -{V12}
; GC ptr vars -{V12}
dec ebx
dec ebx
test ebx, ebx
test ebx, ebx
jge G_M52061_IG23
jge G_M52061_IG23
;; bbWeight=4 PerfScore 6.00
;; bbWeight=4 PerfScore 6.00
Copiar
Copiado
Copiar
Copiado
G_M52061_IG28: ; gcVars=0000000000000000 {}, gcrefRegs=00002
100 {r8
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz
G_M52061_IG28: ; gcVars=0000000000000000 {}, gcrefRegs=00002
001 {rax
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz
; GC ptr vars -{V67}
; GC ptr vars -{V67}
Copiar
Copiado
Copiar
Copiado
mov dword ptr [rbp+
E
8H], ecx
mov dword ptr [rbp+
D
8H], ecx
imul ebx, ecx, 9
imul ebx, ecx, 9
jo SHORT G_M52061_IG29
jo SHORT G_M52061_IG29
jmp SHORT G_M52061_IG30
jmp SHORT G_M52061_IG30
;; bbWeight=0.50 PerfScore 3.00
;; bbWeight=0.50 PerfScore 3.00
G_M52061_IG29: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M52061_IG29: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
Copiar
Copiado
Copiar
Copiado
; gcrRegs -[
r8
r13]
; gcrRegs -[
rax
r13]
; byrRegs -[rsi r12 r14-r15]
; byrRegs -[rsi r12 r14-r15]
call [CORINFO_HELP_OVERFLOW]
call [CORINFO_HELP_OVERFLOW]
; gcr arg pop 0
; gcr arg pop 0
int3
int3
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
Copiar
Copiado
Copiar
Copiado
G_M52061_IG30: ; gcrefRegs=00002
100 {r8
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz
G_M52061_IG30: ; gcrefRegs=00002
001 {rax
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz
; gcrRegs +[
r8
r13]
; gcrRegs +[
rax
r13]
; byrRegs +[rsi r12 r14-r15]
; byrRegs +[rsi r12 r14-r15]
Copiar
Copiado
Copiar
Copiado
mov
eax
, dword ptr [rbp+
E
CH]
mov
r8d
, dword ptr [rbp+
D
CH]
cmp
eax
, 103
cmp
r8d
, 103
je SHORT G_M52061_IG31
je SHORT G_M52061_IG31
Copiar
Copiado
Copiar
Copiado
cmp
eax
, 71
cmp
r8d
, 71
je SHORT G_M52061_IG31
je SHORT G_M52061_IG31
Copiar
Copiado
Copiar
Copiado
cmp
eax
, 100
cmp
r8d
, 100
je SHORT G_M52061_IG31
je SHORT G_M52061_IG31
Copiar
Copiado
Copiar
Copiado
cmp
eax
, 68
cmp
r8d
, 68
je SHORT G_M52061_IG31
je SHORT G_M52061_IG31
Copiar
Copiado
Copiar
Copiado
cmp
eax
, 114
cmp
r8d
, 114
je SHORT G_M52061_IG31
je SHORT G_M52061_IG31
Copiar
Copiado
Copiar
Copiado
cmp
eax
, 82
cmp
r8d
, 82
sete r11b
sete r11b
movzx r11, r11b
movzx r11, r11b
jmp SHORT G_M52061_IG32
jmp SHORT G_M52061_IG32
;; bbWeight=0.50 PerfScore 5.38
;; bbWeight=0.50 PerfScore 5.38
Copiar
Copiado
Copiar
Copiado
G_M52061_IG31: ; gcrefRegs=00002
100 {r8
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref
G_M52061_IG31: ; gcrefRegs=00002
001 {rax
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref
mov r11d, 1
mov r11d, 1
Copiar
Copiado
Copiar
Copiado
;; bbWeight=0.50 PerfScore 0.
12
;; bbWeight=0.50 PerfScore 0.
13
G_M52061_IG32: ; gcrefRegs=00002
100 {r8
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz
G_M52061_IG32: ; gcrefRegs=00002
001 {rax
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz
movzx
rdx
, r11b
movzx
r10
, r11b
mov dword ptr [rbp+
E
4H],
edx
mov dword ptr [rbp+
D
4H],
r10d
test
edx, edx
test
r10d, r10d
je SHORT G_M52061_IG36
je SHORT G_M52061_IG36
Copiar
Copiado
Copiar
Copiado
cmp dword ptr [rbp+
F
0H], 0
cmp dword ptr [rbp+
E
0H], 0
jle SHORT G_M52061_IG33
jle SHORT G_M52061_IG33
Copiar
Copiado
Copiar
Copiado
cmp dword ptr [rbp+
F
0H], ebx
cmp dword ptr [rbp+
E
0H], ebx
jle SHORT G_M52061_IG33
jle SHORT G_M52061_IG33
Copiar
Copiado
Copiar
Copiado
mov ebx, dword ptr [rbp+
F
0H]
mov ebx, dword ptr [rbp+
E
0H]
;; bbWeight=0.50 PerfScore 3.75
;; bbWeight=0.50 PerfScore 3.75
Copiar
Copiado
Copiar
Copiado
G_M52061_IG33: ; gcrefRegs=00002
100 {r8
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz
G_M52061_IG33: ; gcrefRegs=00002
001 {rax
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz
cmp dword ptr [rbp+
7
4H], 0
cmp dword ptr [rbp+
6
4H], 0
jge SHORT G_M52061_IG36
jge SHORT G_M52061_IG36
;; bbWeight=0.50 PerfScore 1.00
;; bbWeight=0.50 PerfScore 1.00
Copiar
Copiado
Copiar
Copiado
G_M52061_IG34: ; gcrefRegs=00002
100 {r8
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz
G_M52061_IG34: ; gcrefRegs=00002
001 {rax
r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz
mov gword ptr [rbp+28H],
r8
mov gword ptr [rbp+28H],
rax
; GC ptr vars +{V12}
; GC ptr vars +{V12}
Copiar
Copiado
Copiar
Copiado
mov gword ptr [rbp+1
6
0H], r13
mov gword ptr [rbp+1
5
0H], r13
mov rcx, r13
mov rcx, r13
; gcrRegs +[rcx]
; gcrRegs +[rcx]
Copiar
Copiado
Copiar
Copiado
lea r11, [(reloc
lea r11, [(reloc
)]
cmp dword ptr [rcx], ecx
call [hackishModuleName:hackishMethodName():System.String:this]
; gcrRegs -[rcx r13]
; gcr arg pop 0
add ebx, dword ptr [rax+8]
jo SHORT G_M52061_IG35
mov rax, gword ptr [rbp+28H]
mov r13, gword ptr [rbp+150H]
; gcrRegs +[r13]
jmp SHORT G_M52061_IG36
;; bbWeight=0.50 PerfScore 7.38
G_M52061_IG35: ; gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[rax r13]
; byrRegs -[rsi r12 r14-r15]
; GC ptr vars -{V12}
call [CORINFO_HELP_OVERFLOW]
; gcr arg pop 0
int3
;; bbW
Diferencias guardadas
Texto original
Abrir archivo
; Assembly listing for method System.Numerics.BigNumber:FormatBigInteger(bool,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[System.Char],System.Globalization.NumberFormatInfo,System.Span`1[System.Char],byref,byref):System.String ; Emitting BLENDED_CODE for X64 CPU with SSE2 - Windows ; ReadyToRun compilation ; optimized code ; rbp based frame ; fully interruptible ; discarded IBC profile data due to mismatch in ILSize ; Final local variable assignments ; ; V00 arg0 [V00,T33] ( 6, 4 ) bool -> rdi ; V01 arg1 [V01,T29] ( 4, 8 ) byref -> rdx ld-addr-op ; V02 arg2 [V02,T35] ( 5, 3.50) ref -> rbx class-hnd ; V03 arg3 [V03,T28] ( 6, 9 ) byref -> rsi ; V04 arg4 [V04,T44] ( 6, 3 ) ref -> [rbp+160H] class-hnd ; V05 arg5 [V05,T43] ( 4, 4 ) byref -> r12 ; V06 arg6 [V06,T41] ( 8, 4 ) byref -> r14 ; V07 arg7 [V07,T42] ( 8, 4 ) byref -> r15 ; V08 loc0 [V08 ] ( 12, 17 ) int -> [rbp+F0H] do-not-enreg[X] addr-exposed ld-addr-op ; V09 loc1 [V09,T30] ( 14, 8 ) ushort -> [rbp+ECH] ; V10 loc2 [V10,T60] ( 3, 1.50) int -> rbx ; V11 loc3 [V11,T63] ( 2, 1 ) int -> rcx ; V12 loc4 [V12,T09] ( 11, 49.50) ref -> [rbp+28H] class-hnd exact ; V13 loc5 [V13,T15] ( 9, 27.50) int -> [rbp+E8H] ; V14 loc6 [V14,T36] ( 10, 5 ) int -> rbx ; V15 loc7 [V15,T61] ( 3, 1.50) bool -> [rbp+E4H] ; V16 loc8 [V16,T64] ( 2, 1 ) int -> rax ; V17 loc9 [V17,T11] ( 13, 38.50) ref -> [rbp+20H] class-hnd exact ; V18 loc10 [V18,T06] ( 23, 75.50) int -> [rbp+E0H] ; V19 loc11 [V19,T40] ( 2, 4.50) int -> rcx ; V20 loc12 [V20,T65] ( 2, 1 ) int -> r13 ;* V21 loc13 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd ; V22 loc14 [V22,T19] ( 6, 16.50) int -> rbx ; V23 loc15 [V23,T08] ( 12, 52 ) int -> r11 ; V24 loc16 [V24,T05] ( 6, 82 ) int -> r10 ; V25 loc17 [V25,T02] ( 6, 96 ) long -> r11 ;* V26 loc18 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd ;* V27 loc19 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd ;* V28 loc20 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd ; V29 loc21 [V29,T18] ( 6, 20.50) int -> rcx ; V30 loc22 [V30,T12] ( 5, 36 ) int -> r10 ; V31 loc23 [V31,T01] ( 4,100 ) int -> [rbp+DCH] ; V32 loc24 [V32,T16] ( 7, 21 ) int -> r8 ; V33 loc25 [V33,T66] ( 2, 1 ) bool -> [rbp+D8H] ;* V34 loc26 [V34 ] ( 0, 0 ) int -> zero-ref ; V35 loc27 [V35,T67] ( 2, 1 ) int -> rbx ; V36 loc28 [V36 ] ( 6, 3 ) struct (32) [rbp+B8H] do-not-enreg[XSFB] must-init addr-exposed ld-addr-op ; V37 loc29 [V37,T68] ( 2, 1 ) struct (16) [rbp+A8H] do-not-enreg[SB] must-init ; V38 loc30 [V38,T38] ( 3, 5 ) ref -> rax class-hnd ; V39 loc31 [V39,T17] ( 7, 21 ) int -> r10 ; V40 loc32 [V40 ] ( 2, 1 ) struct (16) [rbp+98H] do-not-enreg[XSB] must-init addr-exposed ld-addr-op ; V41 OutArgs [V41 ] ( 1, 1 ) lclBlk (64) [rsp+00H] "OutgoingArgSpace" ; V42 tmp1 [V42,T22] ( 2, 16 ) int -> rbx "dup spill" ; V43 tmp2 [V43,T20] ( 4, 16 ) int -> rcx "impSpillLclRefs" ; V44 tmp3 [V44,T21] ( 4, 16 ) int -> rax "impSpillLclRefs" ; V45 tmp4 [V45,T62] ( 3, 1.50) int -> r11 ; V46 tmp5 [V46,T00] ( 2,128 ) int -> rdx "dup spill" ; V47 tmp6 [V47,T14] ( 2, 32 ) int -> rax "dup spill" ; V48 tmp7 [V48,T23] ( 2, 16 ) int -> rax "dup spill" ; V49 tmp8 [V49 ] ( 3, 3 ) struct (16) [rbp+88H] do-not-enreg[XSB] must-init addr-exposed "NewObj constructor temp" ; V50 tmp9 [V50,T24] ( 2, 16 ) int -> rcx "dup spill" ; V51 tmp10 [V51,T25] ( 2, 16 ) int -> rdx "Strict ordering of exceptions for Array store" ; V52 tmp11 [V52,T31] ( 2, 8 ) int -> rax "dup spill" ; V53 tmp12 [V53 ] ( 3, 3 ) struct (16) [rbp+78H] do-not-enreg[XSB] must-init addr-exposed "NewObj constructor temp" ; V54 tmp13 [V54,T73] ( 2, 0 ) ref -> rsi class-hnd "impSpillSpecialSideEff" ; V55 tmp14 [V55,T69] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp" ; V56 tmp15 [V56,T74] ( 2, 0 ) ref -> rsi class-hnd "impSpillSpecialSideEff" ; V57 tmp16 [V57,T70] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp" ; V58 tmp17 [V58,T75] ( 2, 0 ) ref -> rsi class-hnd "impSpillSpecialSideEff" ; V59 tmp18 [V59,T71] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp" ; V60 tmp19 [V60,T76] ( 2, 0 ) ref -> rsi class-hnd "impSpillSpecialSideEff" ; V61 tmp20 [V61,T72] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp" ; V62 tmp21 [V62,T45] ( 3, 3 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V63 tmp22 [V63,T59] ( 3, 1.50) ref -> rbx ; V64 tmp23 [V64,T07] ( 2, 64 ) int -> r13 "Inlining Arg" ;* V65 tmp24 [V65 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SB] "Inlining Arg" ; V66 tmp25 [V66,T37] ( 5, 5 ) ref -> rax "Single return block return value" ; V67 tmp26 [V67,T32] ( 6, 6.50) ref -> [rbp+18H] V69._bits(offs=0x00) P-INDEP "field V01._bits (fldOffset=0x0)" ; V68 tmp27 [V68 ] ( 7, 4 ) int -> [rbp+74H] do-not-enreg[X] addr-exposed V69._sign(offs=0x08) P-INDEP "field V01._sign (fldOffset=0x8)" ;* V69 tmp28 [V69 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" ; V70 tmp29 [V70 ] ( 6, 8 ) struct (16) [rbp+60H] do-not-enreg[XSB] must-init addr-exposed "by-value struct argument" ; V71 tmp30 [V71 ] ( 2, 2 ) struct (16) [rbp+50H] do-not-enreg[XSB] must-init addr-exposed "by-value struct argument" ; V72 tmp31 [V72,T46] ( 3, 3 ) byref -> rdx stack-byref "BlockOp address local" ; V73 tmp32 [V73 ] ( 8, 8 ) struct (16) [rbp+40H] do-not-enreg[XSB] must-init addr-exposed "by-value struct argument" ; V74 tmp33 [V74,T53] ( 2, 2 ) int -> rcx "argument with side effect" ; V75 tmp34 [V75,T54] ( 2, 2 ) int -> r8 "argument with side effect" ; V76 tmp35 [V76,T55] ( 2, 2 ) int -> r9 "argument with side effect" ; V77 tmp36 [V77,T49] ( 2, 2 ) ref -> r13 "argument with side effect" ; V78 tmp37 [V78,T50] ( 2, 2 ) byref -> r14 "argument with side effect" ; V79 tmp38 [V79,T77] ( 2, 0 ) ref -> rdx "argument with side effect" ; V80 tmp39 [V80,T78] ( 2, 0 ) ref -> rdx "argument with side effect" ; V81 tmp40 [V81,T79] ( 2, 0 ) ref -> rdx "argument with side effect" ; V82 tmp41 [V82,T80] ( 2, 0 ) ref -> rdx "argument with side effect" ; V83 tmp42 [V83,T56] ( 2, 2 ) long -> rcx "argument with side effect" ; V84 tmp43 [V84,T57] ( 2, 2 ) int -> r8 "argument with side effect" ; V85 tmp44 [V85,T58] ( 2, 2 ) int -> r9 "argument with side effect" ; V86 tmp45 [V86,T51] ( 2, 2 ) byref -> rcx "argument with side effect" ; V87 tmp46 [V87,T52] ( 2, 2 ) byref -> rcx "argument with side effect" ; V88 GsCookie [V88 ] ( 1, 1 ) long -> [rbp+10H] do-not-enreg[X] addr-exposed "GSSecurityCookie" ; V89 PSPSym [V89 ] ( 1, 1 ) long -> [rbp+00H] do-not-enreg[X] addr-exposed "PSPSym" ; V90 cse0 [V90,T13] ( 9, 33 ) int -> [rbp+3CH] "CSE - aggressive" ; V91 cse1 [V91,T34] ( 5, 6 ) int -> r8 "CSE - moderate" ; V92 cse2 [V92,T39] ( 3, 5 ) int -> rsi "CSE - moderate" ; V93 cse3 [V93,T48] ( 4, 2 ) int -> r10 "CSE - conservative" ; V94 cse4 [V94,T10] ( 3, 48 ) long -> [rbp+30H] "CSE - aggressive" ; V95 rat0 [V95,T47] ( 3, 3 ) int -> rdx "ReplaceWithLclVar is creating a new local variable" ; V96 rat1 [V96,T03] ( 3, 96 ) long -> rdx "ReplaceWithLclVar is creating a new local variable" ; V97 rat2 [V97,T04] ( 3, 96 ) long -> rdx "ReplaceWithLclVar is creating a new local variable" ; V98 rat3 [V98,T26] ( 3, 12 ) int -> rdx "ReplaceWithLclVar is creating a new local variable" ; V99 rat4 [V99,T27] ( 3, 12 ) int -> rdx "ReplaceWithLclVar is creating a new local variable" ; ; Lcl frame size = 312 G_M52061_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 312 lea rbp, [rsp+40H] xorps xmm4, xmm4 mov rax, -144 movaps xmmword ptr [rbp+rax+D0H], xmm4 movaps xmmword ptr [rbp+rax+E0H], xmm4 movaps xmmword ptr [rbp+rax+F0H], xmm4 add rax, 48 jne SHORT -5 instr mov qword ptr [rbp+D0H], rax mov qword ptr [rbp], rsp mov rax, qword ptr [(reloc)] mov qword ptr [rbp+10H], rax mov edi, ecx mov rbx, r8 ; gcrRegs +[rbx] mov rsi, r9 ; byrRegs +[rsi] mov r13, gword ptr [rbp+160H] ; gcrRegs +[r13] mov r12, bword ptr [rbp+168H] ; byrRegs +[r12] mov r14, bword ptr [rbp+170H] ; byrRegs +[r14] mov r15, bword ptr [rbp+178H] ; byrRegs +[r15] ;; bbWeight=1 PerfScore 29.33 G_M52061_IG02: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D044 {rdx rsi r12 r14 r15}, byref ; byrRegs +[rdx] mov rax, gword ptr [rdx] ; gcrRegs +[rax] mov gword ptr [rbp+18H], rax ; GC ptr vars +{V67} mov ecx, dword ptr [rdx+8] mov dword ptr [rbp+74H], ecx ;; bbWeight=1 PerfScore 6.00 G_M52061_IG03: ; gcVars=0000000000000000 {V67}, gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref ; gcrRegs -[rax] ; byrRegs -[rdx] xor ecx, ecx mov dword ptr [rbp+F0H], ecx ;; bbWeight=1 PerfScore 1.25 G_M52061_IG04: ; , nogc, extend movups xmm0, xmmword ptr [rsi] movups xmmword ptr [rbp+60H], xmm0 ;; bbWeight=1 PerfScore 6.00 G_M52061_IG05: ; , isz, extend lea rcx, bword ptr [rbp+60H] ; byrRegs +[rcx] lea rdx, [rbp+F0H] call [System.Numerics.BigNumber:ParseFormatSpecifier()] ; byrRegs -[rcx] ; gcr arg pop 0 movzx rax, ax mov r8d, eax cmp r8d, 120 je SHORT G_M52061_IG07 ;; bbWeight=1 PerfScore 5.75 G_M52061_IG06: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz cmp r8d, 88 jne SHORT G_M52061_IG10 ;; bbWeight=0.50 PerfScore 0.62 G_M52061_IG07: ; gcrefRegs=00002000 {r13}, byrefRegs=0000D000 {r12 r14 r15}, byref ; gcrRegs -[rbx] ; byrRegs -[rsi] movzx rcx, dil lea rdx, bword ptr [rbp+50H] ; byrRegs +[rdx] mov rdi, gword ptr [rbp+18H] ; gcrRegs +[rdi] mov gword ptr [rdx], rdi mov r9d, dword ptr [rbp+74H] mov dword ptr [rdx+8], r9d mov r9d, dword ptr [rbp+F0H] ;; bbWeight=0.50 PerfScore 2.88 G_M52061_IG08: ; , nogc, extend movups xmm0, xmmword ptr [r12] movups xmmword ptr [rbp+40H], xmm0 ;; bbWeight=0.50 PerfScore 3.00 G_M52061_IG09: ; , extend mov bword ptr [rsp+30H], r14 ; byr arg write mov bword ptr [rsp+38H], r15 ; byr arg write lea rdx, bword ptr [rbp+50H] mov gword ptr [rsp+20H], r13 ; gcr arg write lea rax, bword ptr [rbp+40H] ; byrRegs +[rax] mov bword ptr [rsp+28H], rax ; byr arg write ; GC ptr vars -{V67} call [System.Numerics.BigNumber:FormatBigIntegerToHex()] ; gcrRegs -[rdi r13] +[rax] ; byrRegs -[rax rdx r12 r14-r15] ; gcr arg pop 0 jmp G_M52061_IG75 ;; bbWeight=0.50 PerfScore 5.00 G_M52061_IG10: ; gcVars=0000000000000000 {V67}, gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz ; gcrRegs -[rax] +[rbx r13] ; byrRegs +[rsi r12 r14-r15] ; GC ptr vars +{V32 V67} mov rdx, gword ptr [rbp+18H] ; gcrRegs +[rdx] test rdx, rdx jne G_M52061_IG19 cmp r8d, 103 je SHORT G_M52061_IG11 cmp r8d, 71 je SHORT G_M52061_IG11 cmp r8d, 114 je SHORT G_M52061_IG11 cmp r8d, 82 jne SHORT G_M52061_IG14 ;; bbWeight=0.50 PerfScore 3.62 G_M52061_IG11: ; gcVars=0000000000000000 {}, gcrefRegs=00002000 {r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz ; gcrRegs -[rdx rbx] ; GC ptr vars -{V32 V67} cmp dword ptr [rbp+F0H], 0 jg SHORT G_M52061_IG12 mov rax, qword ptr [(reloc)] mov rbx, gword ptr [rax] ; gcrRegs +[rbx] jmp SHORT G_M52061_IG13 ;; bbWeight=0.50 PerfScore 4.00 G_M52061_IG12: ; gcrefRegs=00002000 {r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref ; gcrRegs -[rbx] call [CORINFO_HELP_READYTORUN_NEW] ; gcrRegs +[rax] ; gcr arg pop 0 mov edx, dword ptr [rbp+F0H] mov dword ptr [rax+8], edx mov rdx, rax ; gcrRegs +[rdx] mov rcx, qword ptr [(reloc)] mov rcx, gword ptr [rcx] ; gcrRegs +[rcx] call [System.String:Format()] ; gcrRegs -[rcx rdx] ; gcr arg pop 0 mov rbx, rax ; gcrRegs +[rbx] ;; bbWeight=0.50 PerfScore 6.25 G_M52061_IG13: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref ; gcrRegs -[rax] mov rcx, rsi ; byrRegs +[rcx] mov rdx, rbx ; gcrRegs +[rdx] call [System.String:op_Implicit()] ; gcrRegs -[rdx] ; byrRegs -[rcx] ; gcr arg pop 0 ;; bbWeight=0.50 PerfScore 1.75 G_M52061_IG14: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz test dil, dil je SHORT G_M52061_IG18 ;; bbWeight=0.50 PerfScore 0.62 G_M52061_IG15: ; , nogc, extend movups xmm0, xmmword ptr [r12] movups xmmword ptr [rbp+40H], xmm0 ;; bbWeight=0.50 PerfScore 3.00 G_M52061_IG16: ; , nogc, extend movups xmm0, xmmword ptr [rsi] movups xmmword ptr [rbp+60H], xmm0 ;; bbWeight=0.50 PerfScore 3.00 G_M52061_IG17: ; , extend mov gword ptr [rsp+20H], r13 ; gcr arg write lea rdx, bword ptr [rbp+40H] ; byrRegs +[rdx] mov r8, r14 ; byrRegs +[r8] lea r9, bword ptr [rbp+60H] ; byrRegs +[r9] lea rcx, bword ptr [rbp+74H] ; byrRegs +[rcx] call [System.Int32:TryFormat()] ; gcrRegs -[rbx r13] ; byrRegs -[rcx rdx rsi r8-r9 r12 r14] ; gcr arg pop 0 mov byte ptr [r15], al jmp G_M52061_IG72 ;; bbWeight=0.50 PerfScore 4.38 G_M52061_IG18: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000C000 {r14 r15}, byref ; gcrRegs +[rbx r13] ; byrRegs +[r14] xor ecx, ecx mov dword ptr [r14], ecx mov byte ptr [r15], 0 lea rcx, bword ptr [rbp+74H] ; byrRegs +[rcx] mov rdx, rbx ; gcrRegs +[rdx] mov r8, r13 ; gcrRegs +[r8] call [System.Int32:ToString()] ; gcrRegs -[rdx rbx r8 r13] +[rax] ; byrRegs -[rcx r14-r15] ; gcr arg pop 0 jmp G_M52061_IG75 ;; bbWeight=0.50 PerfScore 4.12 G_M52061_IG19: ; gcrefRegs=00002004 {rdx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref ; gcrRegs -[rax] +[rdx r13] ; byrRegs +[rsi r12 r14-r15] mov gword ptr [rbp+18H], rdx ; GC ptr vars +{V67} mov ebx, dword ptr [rdx+8] ;; bbWeight=0.50 PerfScore 1.50 G_M52061_IG20: ; gcVars=0000000000000000 {V67}, gcrefRegs=00002000 {r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz ; gcrRegs -[rdx] imul ecx, ebx, 10 jo SHORT G_M52061_IG21 mov r9d, 0xD1FFAB1E mov eax, r9d imul edx:eax, ecx mov ecx, edx shr ecx, 31 sar edx, 1 add ecx, edx add ecx, 2 jo SHORT G_M52061_IG21 jmp SHORT G_M52061_IG22 ;; bbWeight=0.50 PerfScore 5.88 G_M52061_IG21: ; gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[r13] ; byrRegs -[rsi r12 r14-r15] ; GC ptr vars -{V67} call [CORINFO_HELP_OVERFLOW] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 G_M52061_IG22: ; gcVars=0000000000000000 {V67}, gcrefRegs=00002000 {r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref ; gcrRegs +[r13] ; byrRegs +[rsi r12 r14-r15] ; GC ptr vars +{V32 V67} mov dword ptr [rbp+ECH], r8d movsxd rcx, ecx call [CORINFO_HELP_READYTORUN_NEWARR_1] ; gcrRegs +[rax] ; gcr arg pop 0 mov r8, rax ; gcrRegs +[r8] xor ecx, ecx jmp G_M52061_IG27 ;; bbWeight=0.50 PerfScore 3.38 G_M52061_IG23: ; gcrefRegs=00002100 {r8 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref ; gcrRegs -[rax] mov r9, gword ptr [rbp+18H] ; gcrRegs +[r9] cmp ebx, dword ptr [r9+8] jae G_M52061_IG78 movsxd rax, ebx mov r11d, dword ptr [r9+4*rax+16] xor r10d, r10d test ecx, ecx jle G_M52061_IG26 mov eax, dword ptr [r8+8] mov gword ptr [rbp+160H], r13 ;; bbWeight=2 PerfScore 21.50 G_M52061_IG24: ; gcVars=0000000000000000 {}, gcrefRegs=00000300 {r8 r9}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref ; gcrRegs -[r13] ; GC ptr vars -{V32 V67} mov dword ptr [rbp+3CH], eax cmp r10d, eax jae G_M52061_IG78 movsxd rdx, r10d mov qword ptr [rbp+30H], rdx mov r13d, dword ptr [r8+4*rdx+16] shl r13, 32 mov r11d, r11d or r11, r13 mov r13, 0xD1FFAB1E mov rax, r11 mul rdx:rax, r13 mov rax, r11 sub rax, rdx shr rax, 1 add rax, rdx shr rax, 29 imul rax, rax, 0xD1FFAB1E mov rdx, r11 sub rdx, rax mov eax, edx mov r13, qword ptr [rbp+30H] mov dword ptr [r8+4*r13+16], eax mov rdx, 0xD1FFAB1E mov rax, r11 mul rdx:rax, rdx sub r11, rdx shr r11, 1 add rdx, r11 shr rdx, 29 mov r11d, edx inc r10d cmp r10d, ecx mov eax, dword ptr [rbp+3CH] jl G_M52061_IG24 ;; bbWeight=16 PerfScore 428.00 G_M52061_IG25: ; gcrefRegs=00000300 {r8 r9}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref mov r13, gword ptr [rbp+160H] ; gcrRegs +[r13] ;; bbWeight=8 PerfScore 8.00 G_M52061_IG26: ; gcrefRegs=00002300 {r8 r9 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz test r11d, r11d mov gword ptr [rbp+18H], r9 ; GC ptr vars +{V67} je G_M52061_IG27 lea eax, [rcx+1] mov dword ptr [rbp+E8H], eax mov edx, 0xD1FFAB1E mov eax, r11d mul edx:eax, edx mov eax, r11d sub eax, edx shr eax, 1 add eax, edx shr eax, 29 imul eax, eax, 0xD1FFAB1E mov edx, r11d sub edx, eax mov r10d, dword ptr [r8+8] cmp ecx, r10d jae G_M52061_IG78 movsxd rax, ecx mov dword ptr [r8+4*rax+16], edx mov edx, 0xD1FFAB1E mov eax, r11d mul edx:eax, edx sub r11d, edx shr r11d, 1 add r11d, edx shr r11d, 29 test r11d, r11d mov ecx, dword ptr [rbp+E8H] je SHORT G_M52061_IG27 mov eax, ecx lea ecx, [rax+1] cmp eax, r10d jae G_M52061_IG78 movsxd rax, eax mov gword ptr [rbp+28H], r8 ; GC ptr vars +{V12} mov dword ptr [r8+4*rax+16], r11d mov r8, gword ptr [rbp+28H] ;; bbWeight=2 PerfScore 59.00 G_M52061_IG27: ; gcVars=0000000000000000 {V67}, gcrefRegs=00002100 {r8 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref ; gcrRegs -[r9] ; GC ptr vars -{V12} dec ebx test ebx, ebx jge G_M52061_IG23 ;; bbWeight=4 PerfScore 6.00 G_M52061_IG28: ; gcVars=0000000000000000 {}, gcrefRegs=00002100 {r8 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz ; GC ptr vars -{V67} mov dword ptr [rbp+E8H], ecx imul ebx, ecx, 9 jo SHORT G_M52061_IG29 jmp SHORT G_M52061_IG30 ;; bbWeight=0.50 PerfScore 3.00 G_M52061_IG29: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref ; gcrRegs -[r8 r13] ; byrRegs -[rsi r12 r14-r15] call [CORINFO_HELP_OVERFLOW] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 G_M52061_IG30: ; gcrefRegs=00002100 {r8 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz ; gcrRegs +[r8 r13] ; byrRegs +[rsi r12 r14-r15] mov eax, dword ptr [rbp+ECH] cmp eax, 103 je SHORT G_M52061_IG31 cmp eax, 71 je SHORT G_M52061_IG31 cmp eax, 100 je SHORT G_M52061_IG31 cmp eax, 68 je SHORT G_M52061_IG31 cmp eax, 114 je SHORT G_M52061_IG31 cmp eax, 82 sete r11b movzx r11, r11b jmp SHORT G_M52061_IG32 ;; bbWeight=0.50 PerfScore 5.38 G_M52061_IG31: ; gcrefRegs=00002100 {r8 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref mov r11d, 1 ;; bbWeight=0.50 PerfScore 0.12 G_M52061_IG32: ; gcrefRegs=00002100 {r8 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz movzx rdx, r11b mov dword ptr [rbp+E4H], edx test edx, edx je SHORT G_M52061_IG36 cmp dword ptr [rbp+F0H], 0 jle SHORT G_M52061_IG33 cmp dword ptr [rbp+F0H], ebx jle SHORT G_M52061_IG33 mov ebx, dword ptr [rbp+F0H] ;; bbWeight=0.50 PerfScore 3.75 G_M52061_IG33: ; gcrefRegs=00002100 {r8 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz cmp dword ptr [rbp+74H], 0 jge SHORT G_M52061_IG36 ;; bbWeight=0.50 PerfScore 1.00 G_M52061_IG34: ; gcrefRegs=00002100 {r8 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz mov gword ptr [rbp+28H], r8 ; GC ptr vars +{V12} mov gword ptr [rbp+160H], r13 mov rcx, r13 ; gcrRegs +[rcx] lea r11, [(reloc)] cmp dword ptr [rcx], ecx call [hackishModuleName:hackishMethodName():System.String:this] ; gcrRegs -[rcx r8 r13] +[rax] ; gcr arg pop 0 add ebx, dword ptr [rax+8] jo SHORT G_M52061_IG35 mov r8, gword ptr [rbp+28H] ; gcrRegs +[r8] mov r13, gword ptr [rbp+160H] ; gcrRegs +[r13] jmp SHORT G_M52061_IG36 ;; bbWeight=0.50 PerfScore 7.38 G_M52061_IG35: ; gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[rax r8 r13] ; byrRegs -[rsi r12 r14-r15] ; GC ptr vars -{V12} call [CORINFO_HELP_OVERFLOW] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 G_M52061_IG36: ; gcrefRegs=00002100 {r8 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz ; gcrRegs +[r8 r13] ; byrRegs +[rsi r12 r14-r15] mov eax, ebx add eax, 1 jo SHORT G_M52061_IG37 jmp SHORT G_M52061_IG38 ;; bbWeight=0.50 PerfScore 1.75 G_M52061_IG37: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref ; gcrRegs -[r8 r13] ; byrRegs -[rsi r12 r14-r15] call [CORINFO_HELP_OVERFLOW] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 G_M52061_IG38: ; gcrefRegs=00002100 {r8 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz ; gcrRegs +[r8 r13] ; byrRegs +[rsi r12 r14-r15] mov gword ptr [rbp+28H], r8 ; GC ptr vars +{V12} movsxd rcx, eax call [CORINFO_HELP_READYTORUN_NEWARR_1] ; gcrRegs -[r8] +[rax] ; gcr arg pop 0 mov r9, rax ; gcrRegs +[r9] mov eax, ebx ; gcrRegs -[rax] xor ecx, ecx mov r10d, dword ptr [rbp+E8H] lea r8d, [r10-1] test r8d, r8d jle SHORT G_M52061_IG40 ;; bbWeight=0.50 PerfScore 3.88 G_M52061_IG39: ; gcrefRegs=00002200 {r9 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz mov r11, gword ptr [rbp+28H] ; gcrRegs +[r11] mov r10d, dword ptr [r11+8] cmp ecx, r10d jae G_M52061_IG78 movsxd rdx, ecx mov r10d, dword ptr [r11+4*rdx+16] mov edx, 9 jmp SHORT G_M52061_IG42 ;; bbWeight=4 PerfScore 35.00 G_M52061_IG40: ; gcrefRegs=00002200 {r9 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref ; gcrRegs -[r11] mov r11, gword ptr [rbp+28H] ; gcrRegs +[r11] jmp G_M52061_IG44 ;; bbWeight=0.25 PerfScore 0.75 G_M52061_IG41: ; gcVars=0000000000000000 {}, gcrefRegs=00002A00 {r9 r11 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref ; GC ptr vars -{V12} mov gword ptr [rbp+160H], r13 dec eax mov dword ptr [rbp+E0H], eax mov r13d, 0xD1FFAB1E ; gcrRegs -[r13] mov eax, r10d mul edx:eax, r13d shr edx, 3 imul eax, edx, 10 mov edx, r10d sub edx, eax add edx, 48 mov r13d, dword ptr [rbp+E0H] cmp r13d, dword ptr [r9+8] jae G_M52061_IG78 movsxd rax, r13d mov gword ptr [rbp+20H], r9 ; GC ptr vars +{V17} mov word ptr [r9+2*rax+16], dx mov edx, 0xD1FFAB1E mov eax, r10d mul edx:eax, edx mov r10d, edx shr r10d, 3 mov eax, r13d mov edx, dword ptr [rbp+DCH] mov r9, gword ptr [rbp+20H] mov r13, gword ptr [rbp+160H] ; gcrRegs +[r13] ;; bbWeight=8 PerfScore 190.00 G_M52061_IG42: ; gcrefRegs=00002A00 {r9 r11 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz ; GC ptr vars -{V17} dec edx mov dword ptr [rbp+DCH], edx test edx, edx jge SHORT G_M52061_IG41 ;; bbWeight=32 PerfScore 80.00 G_M52061_IG43: ; gcrefRegs=00002A00 {r9 r11 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref inc ecx cmp ecx, r8d jl G_M52061_IG55 ;; bbWeight=4 PerfScore 6.00 G_M52061_IG44: ; gcrefRegs=00002A00 {r9 r11 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz mov r10d, dword ptr [r11+8] cmp r8d, r10d jae G_M52061_IG78 movsxd rcx, r8d mov r8d, dword ptr [r11+4*rcx+16] test r8d, r8d je SHORT G_M52061_IG46 mov edx, dword ptr [r9+8] ;; bbWeight=0.50 PerfScore 4.38 G_M52061_IG45: ; gcrefRegs=00002200 {r9 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz ; gcrRegs -[r11] dec eax mov ecx, eax mov edx, 0xD1FFAB1E mov eax, r8d mul edx:eax, edx shr edx, 3 imul eax, edx, 10 mov edx, r8d sub edx, eax add edx, 48 cmp ecx, dword ptr [r9+8] jae G_M52061_IG78 movsxd rax, ecx mov word ptr [r9+2*rax+16], dx mov edx, 0xD1FFAB1E mov eax, r8d mul edx:eax, edx mov r8d, edx shr r8d, 3 test r8d, r8d mov eax, ecx jne SHORT G_M52061_IG45 ;; bbWeight=4 PerfScore 73.00 G_M52061_IG46: ; gcrefRegs=00002200 {r9 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref cmp dword ptr [rbp+E4H], 0 jne G_M52061_IG57 mov gword ptr [rbp+20H], r9 ; GC ptr vars +{V17} cmp dword ptr [rbp+74H], 0 setl r10b movzx r10, r10b mov dword ptr [rbp+D8H], r10d mov dword ptr [rbp+E0H], eax sub ebx, eax xorps xmm0, xmm0 movups xmmword ptr [rbp+78H], xmm0 lea rcx, bword ptr [rbp+78H] ; byrRegs +[rcx] add rsp, 64 test dword ptr [rsp], esp sub rsp, 256 sub rsp, 64 lea rdx, [rsp+40H] mov r8d, 128 call [System.Span`1:.ctor(long,int):this] ; gcrRegs -[r9] ; byrRegs -[rcx] ; gcr arg pop 0 ;; bbWeight=0.50 PerfScore 8.42 G_M52061_IG47: ; , nogc, extend movups xmm0, xmmword ptr [rbp+78H] movups xmmword ptr [rbp+A8H], xmm0 ;; bbWeight=0.50 PerfScore 2.50 G_M52061_IG48: ; , extend xor rcx, rcx ; gcrRegs +[rcx] mov gword ptr [rbp+B8H], rcx ;; bbWeight=0.50 PerfScore 0.62 G_M52061_IG49: ; , nogc, extend movups xmm0, xmmword ptr [rbp+A8H] movups xmmword ptr [rbp+C8H], xmm0 ;; bbWeight=0.50 PerfScore 2.50 G_M52061_IG50: ; , extend mov dword ptr [rbp+C0H], ecx lea rcx, [rbp+B8H] ; gcrRegs -[rcx] mov r8d, ebx mov ebx, dword ptr [rbp+D8H] mov r9d, ebx ;; bbWeight=0.50 PerfScore 1.50 G_M52061_IG51: ; , nogc, extend movups xmm0, xmmword ptr [rsi] movups xmmword ptr [rbp+60H], xmm0 ;; bbWeight=0.50 PerfScore 3.00 G_M52061_IG52: ; , isz, extend mov gword ptr [rsp+28H], r13 ; gcr arg write mov rbx, gword ptr [rbp+20H] ; gcrRegs +[rbx] mov gword ptr [rsp+30H], rbx ; gcr arg write mov r13d, dword ptr [rbp+E0H] ; gcrRegs -[r13] mov dword ptr [rsp+38H], r13d lea rdx, bword ptr [rbp+60H] ; byrRegs +[rdx] mov bword ptr [rsp+20H], rdx ; byr arg write mov edx, 29 ; byrRegs -[rdx] ; GC ptr vars -{V17} call [System.Globalization.FormatProvider:FormatBigInteger()] ; gcrRegs -[rbx] ; byrRegs -[rsi] ; gcr arg pop 0 test dil, dil je SHORT G_M52061_IG56 lea rcx, bword ptr [rbp+B8H] ; byrRegs +[rcx] ;; bbWeight=0.50 PerfScore 5.75 G_M52061_IG53: ; , nogc, extend movups xmm0, xmmword ptr [r12] movups xmmword ptr [rbp+40H], xmm0 ;; bbWeight=0.50 PerfScore 3.00 G_M52061_IG54: ; , extend lea rdx, bword ptr [rbp+40H] ; byrRegs +[rdx] mov r8, r14 ; byrRegs +[r8] call [System.Text.ValueStringBuilder:TryCopyTo(System.Span`1[System.Char],byref):bool:this] ; byrRegs -[rcx rdx r8 r12 r14] ; gcr arg pop 0 mov byte ptr [r15], al jmp G_M52061_IG72 ;; bbWeight=0.50 PerfScore 3.38 G_M52061_IG55: ; gcrefRegs=00002A00 {r9 r11 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref ; gcrRegs +[r9 r11 r13] ; byrRegs +[rsi r12 r14] mov gword ptr [rbp+28H], r11 ; GC ptr vars +{V12} jmp G_M52061_IG39 ;; bbWeight=2 PerfScore 6.00 G_M52061_IG56: ; gcrefRegs=00000000 {}, byrefRegs=0000C000 {r14 r15}, byref ; gcrRegs -[r9 r11 r13] ; byrRegs -[rsi r12] ; GC ptr vars -{V12} xor ecx, ecx mov dword ptr [r14], ecx mov byte ptr [r15], 0 lea rcx, bword ptr [rbp+B8H] ; byrRegs +[rcx] call [System.Text.ValueStringBuilder:ToString():System.String:this] ; gcrRegs +[rax] ; byrRegs -[rcx r14-r15] ; gcr arg pop 0 jmp G_M52061_IG75 ;; bbWeight=0.50 PerfScore 3.88 G_M52061_IG57: ; gcrefRegs=00002200 {r9 r13}, byrefRegs=0000D000 {r12 r14 r15}, byref, isz ; gcrRegs -[rax] +[r9 r13] ; byrRegs +[r12 r14-r15] mov ecx, ebx sub ecx, eax jmp SHORT G_M52061_IG59 ;; bbWeight=0.50 PerfScore 1.25 G_M52061_IG58: ; gcrefRegs=00002200 {r9 r13}, byrefRegs=0000D000 {r12 r14 r15}, byref dec eax mov esi, eax cmp esi, dword ptr [r9+8] jae G_M52061_IG78 mov dword ptr [rbp+E0H], esi movsxd r11, esi mov gword ptr [rbp+20H], r9 ; GC ptr vars +{V17} mov word ptr [r9+2*r11+16], 48 mov r11d, dword ptr [rbp+F0H] dec r11d mov dword ptr [rbp+F0H], r11d mov eax, dword ptr [rbp+E0H] mov r9, gword ptr [rbp+20H] ;; bbWeight=2 PerfScore 22.00 G_M52061_IG59: ; gcrefRegs=00002200 {r9 r13}, byrefRegs=0000D000 {r12 r14 r15}, byref, isz ; GC ptr vars -{V17} cmp dword ptr [rbp+F0H], 0 jle SHORT G_M52061_IG60 cmp dword ptr [rbp+F0H], ecx jg SHORT G_M52061_IG58 ;; bbWeight=4 PerfScore 16.00 G_M52061_IG60: ; gcrefRegs=00002200 {r9 r13}, byrefRegs=0000D000 {r12 r14 r15}, byref, isz cmp dword ptr [rbp+74H], 0 jge SHORT G_M52061_IG63 mov dword ptr [rbp+E0H], eax mov gword ptr [rbp+20H], r9 ; GC ptr vars +{V17} mov rcx, r13 ; gcrRegs +[rcx] lea r11, [(reloc)] cmp dword ptr [rcx], ecx call [hackishModuleName:hackishMethodName():System.String:this] ; gcrRegs -[rcx r9 r13] +[rax] ; gcr arg pop 0 mov esi, dword ptr [rax+8] lea r10d, [rsi-1] test r10d, r10d jl G_M52061_IG65 ;; bbWeight=0.50 PerfScore 6.75 G_M52061_IG61: ; gcrefRegs=00000001 {rax}, byrefRegs=0000D000 {r12 r14 r15}, byref, isz mov ecx, dword ptr [rbp+E0H] dec ecx mov r13d, ecx cmp r10d, esi jae G_M52061_IG78 movsxd rdx, r10d movzx rdx, word ptr [rax+2*rdx+12] mov r9, gword ptr [rbp+20H] ; gcrRegs +[r9] cmp r13d, dword ptr [r9+8] jae G_M52061_IG78 movsxd rcx, r13d mov word ptr [r9+2*rcx+16], dx dec r10d test r10d, r10d jge SHORT G_M52061_IG64 ;; bbWeight=4 PerfScore 47.00 G_M52061_IG62: ; gcVars=0000000000000000 {}, gcrefRegs=00000200 {r9}, byrefRegs=0000D000 {r12 r14 r15}, gcvars, byref ; gcrRegs -[rax] ; GC ptr vars -{V17} mov eax, r13d ;; bbWeight=2 PerfScore 0.50 G_M52061_IG63: ; gcrefRegs=00000200 {r9}, byrefRegs=0000D000 {r12 r14 r15}, byref, isz mov r10d, ebx sub r10d, eax mov r13d, r10d test dil, dil jne SHORT G_M52061_IG66 mov gword ptr [rbp+20H], r9 ; GC ptr vars +{V17} xor edx, edx mov dword ptr [r14], edx mov byte ptr [r15], 0 mov r9d, r10d ; gcrRegs -[r9] mov rdx, gword ptr [rbp+20H] ; gcrRegs +[rdx] mov r8d, eax xor rcx, rcx ; gcrRegs +[rcx] ; GC ptr vars -{V17} call [hackishModuleName:hackishMethodName(System.Char[],int,int):this] ; gcrRegs -[rcx rdx] +[rax] ; byrRegs -[r12 r14-r15] ; gcr arg pop 0 jmp G_M52061_IG75 ;; bbWeight=0.50 PerfScore 6.00 G_M52061_IG64: ; gcrefRegs=00000201 {rax r9}, byrefRegs=0000D000 {r12 r14 r15}, byref, isz ; gcrRegs +[r9] ; byrRegs +[r12 r14-r15] mov dword ptr [rbp+E0H], r13d mov gword ptr [rbp+20H], r9 ; GC ptr vars +{V17} jmp SHORT G_M52061_IG61 ;; bbWeight=2 PerfScore 8.00 G_M52061_IG65: ; gcVars=0000000000000800 {V17}, gcrefRegs=00000000 {}, byrefRegs=0000D000 {r12 r14 r15}, gcvars, byref, isz ; gcrRegs -[rax r9] mov eax, dword ptr [rbp+E0H] mov r9, gword ptr [rbp+20H] ; gcrRegs +[r9] jmp SHORT G_M52061_IG63 ;; bbWeight=0.25 PerfScore 1.00 G_M52061_IG66: ; gcVars=0000000000000000 {}, gcrefRegs=00000200 {r9}, byrefRegs=0000D000 {r12 r14 r15}, gcvars, byref ; GC ptr vars -{V17} mov gword ptr [rbp+20H], r9 ; GC ptr vars +{V17} xorps xmm0, xmm0 movups xmmword ptr [rbp+88H], xmm0 mov r9d, r10d ; gcrRegs -[r9] lea rcx, bword ptr [rbp+88H] ; byrRegs +[rcx] mov rdx, gword ptr [rbp+20H] ; gcrRegs +[rdx] mov r8d, eax ; GC ptr vars -{V17} call [System.ReadOnlySpan`1:.ctor(System.Char[],int,int):this] ; gcrRegs -[rdx] ; byrRegs -[rcx] ; gcr arg pop 0 ;; bbWeight=0.50 PerfScore 4.17 G_M52061_IG67: ; , nogc, extend movups xmm0, xmmword ptr [rbp+88H] movups xmmword ptr [rbp+98H], xmm0 ;; bbWeight=0.50 PerfScore 2.50 G_M52061_IG68: ; , extend lea rcx, bword ptr [rbp+98H] ; byrRegs +[rcx] ;; bbWeight=0.50 PerfScore 0.25 G_M52061_IG69: ; , nogc, extend movups xmm0, xmmword ptr [r12] movups xmmword ptr [rbp+40H], xmm0 ;; bbWeight=0.50 PerfScore 3.00 G_M52061_IG70: ; , isz, extend lea rdx, bword ptr [rbp+40H] ; byrRegs +[rdx] call [System.ReadOnlySpan`1:TryCopyTo()] ; byrRegs -[rcx rdx r12] ; gcr arg pop 0 test al, al je SHORT G_M52061_IG71 mov dword ptr [r14], r13d mov byte ptr [r15], 1 jmp SHORT G_M52061_IG72 ;; bbWeight=0.50 PerfScore 4.38 G_M52061_IG71: ; gcrefRegs=00000000 {}, byrefRegs=0000C000 {r14 r15}, byref xor eax, eax mov dword ptr [r14], eax mov byte ptr [r15], 0 ;; bbWeight=0.50 PerfScore 1.12 G_M52061_IG72: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz ; byrRegs -[r14-r15] xor rax, rax ; gcrRegs +[rax] lea rcx, [(reloc)] mov rcx, qword ptr [rcx] cmp qword ptr [rbp+10H], rcx je SHORT G_M52061_IG73 call [CORINFO_HELP_FAIL_FAST] ; gcrRegs -[rax] ; gcr arg pop 0 ;; bbWeight=0.50 PerfScore 3.88 G_M52061_IG73: ; gcrefRegs=00000001 {rax}, byrefRegs=00000000 {}, byref ; gcrRegs +[rax] nop ;; bbWeight=0.50 PerfScore 0.12 G_M52061_IG74: ; , epilog, nogc, extend lea rsp, [rbp+F8H] pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; bbWeight=0.50 PerfScore 2.75 G_M52061_IG75: ; gcVars=0000000000000000 {}, gcrefRegs=00000001 {rax}, byrefRegs=00000000 {}, gcvars, byref, isz lea rcx, [(reloc)] mov rcx, qword ptr [rcx] cmp qword ptr [rbp+10H], rcx je SHORT G_M52061_IG76 call [CORINFO_HELP_FAIL_FAST] ; gcrRegs -[rax] ; gcr arg pop 0 ;; bbWeight=0.50 PerfScore 3.75 G_M52061_IG76: ; gcrefRegs=00000001 {rax}, byrefRegs=00000000 {}, byref ; gcrRegs +[rax] nop ;; bbWeight=0.50 PerfScore 0.12 G_M52061_IG77: ; , epilog, nogc, extend lea rsp, [rbp+F8H] pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; bbWeight=0.50 PerfScore 2.75 G_M52061_IG78: ; gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[rax] call [CORINFO_HELP_RNGCHKFAIL] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 G_M52061_IG79: ; gcrefRegs=00000004 {rdx}, byrefRegs=00000000 {}, byref, funclet prolog, nogc ; gcrRegs +[rdx] push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 72 mov rbp, qword ptr [rcx+64] mov qword ptr [rsp+40H], rbp lea rbp, [rbp+40H] ;; bbWeight=0 PerfScore 0.00 G_M52061_IG80: ; gcVars=0000000000000000 {}, gcrefRegs=00000004 {rdx}, byrefRegs=00000000 {}, gcvars, byref mov rsi, rdx ; gcrRegs +[rsi] call [CORINFO_HELP_READYTORUN_NEW] ; gcrRegs -[rdx] +[rax] ; gcr arg pop 0 mov rdi, rax ; gcrRegs +[rdi] call [hackishModuleName:hackishMethodName()] ; gcr arg pop 0 mov rdx, rax ; gcrRegs +[rdx] mov rcx, rdi ; gcrRegs +[rcx] mov r8, rsi ; gcrRegs +[r8] call [hackishModuleName:hackishMethodName(System.String,System.Exception):this] ; gcrRegs -[rax rcx rdx rsi r8] ; gcr arg pop 0 mov rcx, rdi ; gcrRegs +[rcx] call [CORINFO_HELP_THROW] ; gcrRegs -[rcx rdi] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 G_M52061_IG81: ; gcrefRegs=00000004 {rdx}, byrefRegs=00000000 {}, byref, funclet prolog, nogc ; gcrRegs +[rdx] push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 72 mov rbp, qword ptr [rcx+64] mov qword ptr [rsp+40H], rbp lea rbp, [rbp+40H] ;; bbWeight=0 PerfScore 0.00 G_M52061_IG82: ; gcVars=0000000000000000 {}, gcrefRegs=00000004 {rdx}, byrefRegs=00000000 {}, gcvars, byref mov rsi, rdx ; gcrRegs +[rsi] call [CORINFO_HELP_READYTORUN_NEW] ; gcrRegs -[rdx] +[rax] ; gcr arg pop 0 mov rdi, rax ; gcrRegs +[rdi] call [hackishModuleName:hackishMethodName()] ; gcr arg pop 0 mov rdx, rax ; gcrRegs +[rdx] mov rcx, rdi ; gcrRegs +[rcx] mov r8, rsi ; gcrRegs +[r8] call [hackishModuleName:hackishMethodName(System.String,System.Exception):this] ; gcrRegs -[rax rcx rdx rsi r8] ; gcr arg pop 0 mov rcx, rdi ; gcrRegs +[rcx] call [CORINFO_HELP_THROW] ; gcrRegs -[rcx rdi] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 G_M52061_IG83: ; gcrefRegs=00000004 {rdx}, byrefRegs=00000000 {}, byref, funclet prolog, nogc ; gcrRegs +[rdx] push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 72 mov rbp, qword ptr [rcx+64] mov qword ptr [rsp+40H], rbp lea rbp, [rbp+40H] ;; bbWeight=0 PerfScore 0.00 G_M52061_IG84: ; gcVars=0000000000000000 {}, gcrefRegs=00000004 {rdx}, byrefRegs=00000000 {}, gcvars, byref mov rsi, rdx ; gcrRegs +[rsi] call [CORINFO_HELP_READYTORUN_NEW] ; gcrRegs -[rdx] +[rax] ; gcr arg pop 0 mov rdi, rax ; gcrRegs +[rdi] call [hackishModuleName:hackishMethodName()] ; gcr arg pop 0 mov rdx, rax ; gcrRegs +[rdx] mov rcx, rdi ; gcrRegs +[rcx] mov r8, rsi ; gcrRegs +[r8] call [hackishModuleName:hackishMethodName(System.String,System.Exception):this] ; gcrRegs -[rax rcx rdx rsi r8] ; gcr arg pop 0 mov rcx, rdi ; gcrRegs +[rcx] call [CORINFO_HELP_THROW] ; gcrRegs -[rcx rdi] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 G_M52061_IG85: ; gcrefRegs=00000004 {rdx}, byrefRegs=00000000 {}, byref, funclet prolog, nogc ; gcrRegs +[rdx] push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 72 mov rbp, qword ptr [rcx+64] mov qword ptr [rsp+40H], rbp lea rbp, [rbp+40H] ;; bbWeight=0 PerfScore 0.00 G_M52061_IG86: ; gcVars=0000000000000000 {}, gcrefRegs=00000004 {rdx}, byrefRegs=00000000 {}, gcvars, byref mov rsi, rdx ; gcrRegs +[rsi] call [CORINFO_HELP_READYTORUN_NEW] ; gcrRegs -[rdx] +[rax] ; gcr arg pop 0 mov rdi, rax ; gcrRegs +[rdi] call [hackishModuleName:hackishMethodName()] ; gcr arg pop 0 mov rdx, rax ; gcrRegs +[rdx] mov rcx, rdi ; gcrRegs +[rcx] mov r8, rsi ; gcrRegs +[r8] call [hackishModuleName:hackishMethodName(System.String,System.Exception):this] ; gcrRegs -[rax rcx rdx rsi r8] ; gcr arg pop 0 mov rcx, rdi ; gcrRegs +[rcx] call [CORINFO_HELP_THROW] ; gcrRegs -[rcx rdi] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 ; Total bytes of code 2394, prolog size 125, PerfScore 1456.44, instruction count 634, allocated bytes for code 2394 (MethodHash=0c2134a2) for method System.Numerics.BigNumber:FormatBigInteger(bool,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[System.Char],System.Globalization.NumberFormatInfo,System.Span`1[System.Char],byref,byref):System.String ; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x18 CountOfUnwindCodes: 11 FrameRegister : rbp (5) FrameOffset : 4 * 16 = 0x40 UnwindCodes : CodeOffset: 0x18 UnwindOp: UWOP_SET_FPREG (3) OpInfo: Unused (0) CodeOffset: 0x13 UnwindOp: UWOP_ALLOC_LARGE (1) OpInfo: 0 - Scaled small Size: 39 * 8 = 312 = 0x00138 CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7) CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12) CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x10 CountOfUnwindCodes: 9 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x10 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 8 * 8 + 8 = 72 = 0x48 CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7) CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12) CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x10 CountOfUnwindCodes: 9 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x10 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 8 * 8 + 8 = 72 = 0x48 CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7) CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12) CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x10 CountOfUnwindCodes: 9 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x10 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 8 * 8 + 8 = 72 = 0x48 CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7) CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12) CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x10 CountOfUnwindCodes: 9 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x10 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 8 * 8 + 8 = 72 = 0x48 CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7) CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12) CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) *************** EH table for System.Numerics.BigNumber:FormatBigInteger(bool,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[System.Char],System.Globalization.NumberFormatInfo,System.Span`1[System.Char],byref,byref):System.String 4 EH table entries, 0 duplicate clauses, 0 cloned finallys, 4 total EH entries reported to VM EH#0: try [G_M52061_IG20..G_M52061_IG22) handled by [G_M52061_IG79..G_M52061_IG81) (class: 1000028) EH#1: try [G_M52061_IG28..G_M52061_IG30) handled by [G_M52061_IG81..G_M52061_IG83) (class: 1000028) EH#2: try [G_M52061_IG34..G_M52061_IG36) handled by [G_M52061_IG83..G_M52061_IG85) (class: 1000028) EH#3: try [G_M52061_IG36..G_M52061_IG38) handled by [G_M52061_IG85..END) (class: 1000028)
Texto modificado
Abrir archivo
; Assembly listing for method System.Numerics.BigNumber:FormatBigInteger(bool,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[System.Char],System.Globalization.NumberFormatInfo,System.Span`1[System.Char],byref,byref):System.String ; Emitting BLENDED_CODE for X64 CPU with SSE2 - Windows ; ReadyToRun compilation ; optimized code ; rbp based frame ; fully interruptible ; discarded IBC profile data due to mismatch in ILSize ; Final local variable assignments ; ; V00 arg0 [V00,T29] ( 6, 4 ) bool -> rdi ; V01 arg1 [V01,T25] ( 4, 8 ) byref -> rdx ld-addr-op ; V02 arg2 [V02,T31] ( 5, 3.50) ref -> rbx class-hnd ; V03 arg3 [V03,T24] ( 6, 9 ) byref -> rsi ; V04 arg4 [V04,T40] ( 6, 3 ) ref -> [rbp+150H] class-hnd ; V05 arg5 [V05,T39] ( 4, 4 ) byref -> r12 ; V06 arg6 [V06,T37] ( 8, 4 ) byref -> r14 ; V07 arg7 [V07,T38] ( 8, 4 ) byref -> [rbp+168H] ; V08 loc0 [V08 ] ( 12, 17 ) int -> [rbp+E0H] do-not-enreg[X] addr-exposed ld-addr-op ; V09 loc1 [V09,T26] ( 14, 8 ) ushort -> [rbp+DCH] ; V10 loc2 [V10,T56] ( 3, 1.50) int -> rbx ; V11 loc3 [V11,T59] ( 2, 1 ) int -> rcx ; V12 loc4 [V12,T06] ( 11, 49.50) ref -> [rbp+28H] class-hnd exact ; V13 loc5 [V13,T13] ( 9, 27.50) int -> [rbp+D8H] ; V14 loc6 [V14,T32] ( 10, 5 ) int -> rbx ; V15 loc7 [V15,T57] ( 3, 1.50) bool -> [rbp+D4H] ; V16 loc8 [V16,T60] ( 2, 1 ) int -> rdx ; V17 loc9 [V17,T09] ( 13, 38.50) ref -> [rbp+20H] class-hnd exact ; V18 loc10 [V18,T03] ( 23, 75.50) int -> [rbp+D0H] ; V19 loc11 [V19,T36] ( 2, 4.50) int -> r11 ; V20 loc12 [V20,T61] ( 2, 1 ) int -> r13 ;* V21 loc13 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd ; V22 loc14 [V22,T17] ( 6, 16.50) int -> rbx ; V23 loc15 [V23,T07] ( 10, 48 ) int -> r11 ; V24 loc16 [V24,T02] ( 6, 82 ) int -> r8 ; V25 loc17 [V25,T04] ( 4, 64 ) long -> r11 ;* V26 loc18 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd ;* V27 loc19 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd ;* V28 loc20 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd ; V29 loc21 [V29,T16] ( 6, 20.50) int -> rdx ; V30 loc22 [V30,T10] ( 5, 36 ) int -> r9 ; V31 loc23 [V31,T01] ( 4,100 ) int -> r11 ; V32 loc24 [V32,T14] ( 7, 21 ) int -> r11 ; V33 loc25 [V33,T62] ( 2, 1 ) bool -> [rbp+CCH] ;* V34 loc26 [V34 ] ( 0, 0 ) int -> zero-ref ; V35 loc27 [V35,T63] ( 2, 1 ) int -> rbx ; V36 loc28 [V36 ] ( 6, 3 ) struct (32) [rbp+A8H] do-not-enreg[XSFB] must-init addr-exposed ld-addr-op ; V37 loc29 [V37,T64] ( 2, 1 ) struct (16) [rbp+98H] do-not-enreg[SB] must-init ; V38 loc30 [V38,T34] ( 3, 5 ) ref -> rax class-hnd ; V39 loc31 [V39,T15] ( 7, 21 ) int -> r10 ; V40 loc32 [V40 ] ( 2, 1 ) struct (16) [rbp+88H] do-not-enreg[XSB] must-init addr-exposed ld-addr-op ; V41 OutArgs [V41 ] ( 1, 1 ) lclBlk (64) [rsp+00H] "OutgoingArgSpace" ; V42 tmp1 [V42,T20] ( 2, 16 ) int -> rbx "dup spill" ; V43 tmp2 [V43,T18] ( 4, 16 ) int -> rcx "impSpillLclRefs" ; V44 tmp3 [V44,T19] ( 4, 16 ) int -> r8 "impSpillLclRefs" ; V45 tmp4 [V45,T58] ( 3, 1.50) int -> r11 ; V46 tmp5 [V46,T00] ( 2,128 ) int -> r11 "dup spill" ; V47 tmp6 [V47,T12] ( 2, 32 ) int -> rcx "dup spill" ; V48 tmp7 [V48,T21] ( 2, 16 ) int -> rcx "dup spill" ; V49 tmp8 [V49 ] ( 3, 3 ) struct (16) [rbp+78H] do-not-enreg[XSB] must-init addr-exposed "NewObj constructor temp" ; V50 tmp9 [V50,T22] ( 2, 16 ) int -> rcx "dup spill" ; V51 tmp10 [V51,T23] ( 2, 16 ) int -> rdx "Strict ordering of exceptions for Array store" ; V52 tmp11 [V52,T27] ( 2, 8 ) int -> rcx "dup spill" ; V53 tmp12 [V53 ] ( 3, 3 ) struct (16) [rbp+68H] do-not-enreg[XSB] must-init addr-exposed "NewObj constructor temp" ; V54 tmp13 [V54,T69] ( 2, 0 ) ref -> rsi class-hnd "impSpillSpecialSideEff" ; V55 tmp14 [V55,T65] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp" ; V56 tmp15 [V56,T70] ( 2, 0 ) ref -> rsi class-hnd "impSpillSpecialSideEff" ; V57 tmp16 [V57,T66] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp" ; V58 tmp17 [V58,T71] ( 2, 0 ) ref -> rsi class-hnd "impSpillSpecialSideEff" ; V59 tmp18 [V59,T67] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp" ; V60 tmp19 [V60,T72] ( 2, 0 ) ref -> rsi class-hnd "impSpillSpecialSideEff" ; V61 tmp20 [V61,T68] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp" ; V62 tmp21 [V62,T41] ( 3, 3 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V63 tmp22 [V63,T55] ( 3, 1.50) ref -> rbx ; V64 tmp23 [V64,T05] ( 2, 64 ) int -> r13 "Inlining Arg" ;* V65 tmp24 [V65 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SB] "Inlining Arg" ; V66 tmp25 [V66,T33] ( 5, 5 ) ref -> rax "Single return block return value" ; V67 tmp26 [V67,T28] ( 6, 6.50) ref -> [rbp+18H] V69._bits(offs=0x00) P-INDEP "field V01._bits (fldOffset=0x0)" ; V68 tmp27 [V68 ] ( 7, 4 ) int -> [rbp+64H] do-not-enreg[X] addr-exposed V69._sign(offs=0x08) P-INDEP "field V01._sign (fldOffset=0x8)" ;* V69 tmp28 [V69 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" ; V70 tmp29 [V70 ] ( 6, 8 ) struct (16) [rbp+50H] do-not-enreg[XSB] must-init addr-exposed "by-value struct argument" ; V71 tmp30 [V71 ] ( 2, 2 ) struct (16) [rbp+40H] do-not-enreg[XSB] must-init addr-exposed "by-value struct argument" ; V72 tmp31 [V72,T42] ( 3, 3 ) byref -> rdx stack-byref "BlockOp address local" ; V73 tmp32 [V73 ] ( 8, 8 ) struct (16) [rbp+30H] do-not-enreg[XSB] must-init addr-exposed "by-value struct argument" ; V74 tmp33 [V74,T49] ( 2, 2 ) int -> rcx "argument with side effect" ; V75 tmp34 [V75,T50] ( 2, 2 ) int -> r8 "argument with side effect" ; V76 tmp35 [V76,T51] ( 2, 2 ) int -> r9 "argument with side effect" ; V77 tmp36 [V77,T45] ( 2, 2 ) ref -> r13 "argument with side effect" ; V78 tmp37 [V78,T46] ( 2, 2 ) byref -> r14 "argument with side effect" ; V79 tmp38 [V79,T73] ( 2, 0 ) ref -> rdx "argument with side effect" ; V80 tmp39 [V80,T74] ( 2, 0 ) ref -> rdx "argument with side effect" ; V81 tmp40 [V81,T75] ( 2, 0 ) ref -> rdx "argument with side effect" ; V82 tmp41 [V82,T76] ( 2, 0 ) ref -> rdx "argument with side effect" ; V83 tmp42 [V83,T52] ( 2, 2 ) long -> rcx "argument with side effect" ; V84 tmp43 [V84,T53] ( 2, 2 ) int -> r8 "argument with side effect" ; V85 tmp44 [V85,T54] ( 2, 2 ) int -> r9 "argument with side effect" ; V86 tmp45 [V86,T47] ( 2, 2 ) byref -> rcx "argument with side effect" ; V87 tmp46 [V87,T48] ( 2, 2 ) byref -> rcx "argument with side effect" ; V88 GsCookie [V88 ] ( 1, 1 ) long -> [rbp+10H] do-not-enreg[X] addr-exposed "GSSecurityCookie" ; V89 PSPSym [V89 ] ( 1, 1 ) long -> [rbp+00H] do-not-enreg[X] addr-exposed "PSPSym" ; V90 cse0 [V90,T11] ( 9, 33 ) int -> r9 "CSE - aggressive" ; V91 cse1 [V91,T30] ( 5, 6 ) int -> r8 "CSE - moderate" ; V92 cse2 [V92,T35] ( 3, 5 ) int -> rsi "CSE - moderate" ; V93 cse3 [V93,T44] ( 4, 2 ) int -> r9 "CSE - conservative" ; V94 cse4 [V94,T08] ( 3, 48 ) long -> r10 "CSE - aggressive" ; V95 rat0 [V95,T43] ( 3, 3 ) int -> rdx "ReplaceWithLclVar is creating a new local variable" ; ; Lcl frame size = 296 G_M52061_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 296 lea rbp, [rsp+40H] xorps xmm4, xmm4 mov rax, -144 movaps xmmword ptr [rbp+rax+C0H], xmm4 movaps xmmword ptr [rbp+rax+D0H], xmm4 movaps xmmword ptr [rbp+rax+E0H], xmm4 add rax, 48 jne SHORT -5 instr mov qword ptr [rbp+C0H], rax mov qword ptr [rbp], rsp mov rax, qword ptr [(reloc)] mov qword ptr [rbp+10H], rax mov edi, ecx mov rbx, r8 ; gcrRegs +[rbx] mov rsi, r9 ; byrRegs +[rsi] mov r13, gword ptr [rbp+150H] ; gcrRegs +[r13] mov r12, bword ptr [rbp+158H] ; byrRegs +[r12] mov r14, bword ptr [rbp+160H] ; byrRegs +[r14] mov r15, bword ptr [rbp+168H] ; byrRegs +[r15] ;; bbWeight=1 PerfScore 29.33 G_M52061_IG02: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D044 {rdx rsi r12 r14 r15}, byref ; byrRegs +[rdx] mov rax, gword ptr [rdx] ; gcrRegs +[rax] mov gword ptr [rbp+18H], rax ; GC ptr vars +{V67} mov ecx, dword ptr [rdx+8] mov dword ptr [rbp+64H], ecx ;; bbWeight=1 PerfScore 6.00 G_M52061_IG03: ; gcVars=0000000010000000 {V67}, gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref ; gcrRegs -[rax] ; byrRegs -[rdx] xor ecx, ecx mov dword ptr [rbp+E0H], ecx ;; bbWeight=1 PerfScore 1.25 G_M52061_IG04: ; , nogc, extend movups xmm0, xmmword ptr [rsi] movups xmmword ptr [rbp+50H], xmm0 ;; bbWeight=1 PerfScore 6.00 G_M52061_IG05: ; , isz, extend lea rcx, bword ptr [rbp+50H] ; byrRegs +[rcx] lea rdx, [rbp+E0H] call [System.Numerics.BigNumber:ParseFormatSpecifier()] ; byrRegs -[rcx] ; gcr arg pop 0 movzx rax, ax mov r8d, eax cmp r8d, 120 je SHORT G_M52061_IG07 ;; bbWeight=1 PerfScore 5.75 G_M52061_IG06: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz cmp r8d, 88 jne SHORT G_M52061_IG10 ;; bbWeight=0.50 PerfScore 0.63 G_M52061_IG07: ; gcrefRegs=00002000 {r13}, byrefRegs=0000D000 {r12 r14 r15}, byref ; gcrRegs -[rbx] ; byrRegs -[rsi] movzx rcx, dil lea rdx, bword ptr [rbp+40H] ; byrRegs +[rdx] mov rdi, gword ptr [rbp+18H] ; gcrRegs +[rdi] mov gword ptr [rdx], rdi mov r9d, dword ptr [rbp+64H] mov dword ptr [rdx+8], r9d mov r9d, dword ptr [rbp+E0H] ;; bbWeight=0.50 PerfScore 2.88 G_M52061_IG08: ; , nogc, extend movups xmm0, xmmword ptr [r12] movups xmmword ptr [rbp+30H], xmm0 ;; bbWeight=0.50 PerfScore 3.00 G_M52061_IG09: ; , extend mov bword ptr [rsp+30H], r14 ; byr arg write mov bword ptr [rsp+38H], r15 ; byr arg write lea rdx, bword ptr [rbp+40H] mov gword ptr [rsp+20H], r13 ; gcr arg write lea rax, bword ptr [rbp+30H] ; byrRegs +[rax] mov bword ptr [rsp+28H], rax ; byr arg write ; GC ptr vars -{V67} call [System.Numerics.BigNumber:FormatBigIntegerToHex()] ; gcrRegs -[rdi r13] +[rax] ; byrRegs -[rax rdx r12 r14-r15] ; gcr arg pop 0 jmp G_M52061_IG75 ;; bbWeight=0.50 PerfScore 5.00 G_M52061_IG10: ; gcVars=0000000010000000 {V67}, gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz ; gcrRegs -[rax] +[rbx r13] ; byrRegs +[rsi r12 r14-r15] ; GC ptr vars +{V67} mov rdx, gword ptr [rbp+18H] ; gcrRegs +[rdx] test rdx, rdx jne G_M52061_IG19 cmp r8d, 103 je SHORT G_M52061_IG11 cmp r8d, 71 je SHORT G_M52061_IG11 cmp r8d, 114 je SHORT G_M52061_IG11 cmp r8d, 82 jne SHORT G_M52061_IG14 ;; bbWeight=0.50 PerfScore 3.63 G_M52061_IG11: ; gcVars=0000000000000000 {}, gcrefRegs=00002000 {r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz ; gcrRegs -[rdx rbx] ; GC ptr vars -{V67} cmp dword ptr [rbp+E0H], 0 jg SHORT G_M52061_IG12 mov rax, qword ptr [(reloc)] mov rbx, gword ptr [rax] ; gcrRegs +[rbx] jmp SHORT G_M52061_IG13 ;; bbWeight=0.50 PerfScore 4.00 G_M52061_IG12: ; gcrefRegs=00002000 {r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref ; gcrRegs -[rbx] call [CORINFO_HELP_READYTORUN_NEW] ; gcrRegs +[rax] ; gcr arg pop 0 mov edx, dword ptr [rbp+E0H] mov dword ptr [rax+8], edx mov rdx, rax ; gcrRegs +[rdx] mov rcx, qword ptr [(reloc)] mov rcx, gword ptr [rcx] ; gcrRegs +[rcx] call [System.String:Format()] ; gcrRegs -[rcx rdx] ; gcr arg pop 0 mov rbx, rax ; gcrRegs +[rbx] ;; bbWeight=0.50 PerfScore 6.25 G_M52061_IG13: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref ; gcrRegs -[rax] mov rcx, rsi ; byrRegs +[rcx] mov rdx, rbx ; gcrRegs +[rdx] call [System.String:op_Implicit()] ; gcrRegs -[rdx] ; byrRegs -[rcx] ; gcr arg pop 0 ;; bbWeight=0.50 PerfScore 1.75 G_M52061_IG14: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz test dil, dil je SHORT G_M52061_IG18 ;; bbWeight=0.50 PerfScore 0.63 G_M52061_IG15: ; , nogc, extend movups xmm0, xmmword ptr [r12] movups xmmword ptr [rbp+30H], xmm0 ;; bbWeight=0.50 PerfScore 3.00 G_M52061_IG16: ; , nogc, extend movups xmm0, xmmword ptr [rsi] movups xmmword ptr [rbp+50H], xmm0 ;; bbWeight=0.50 PerfScore 3.00 G_M52061_IG17: ; , extend mov gword ptr [rsp+20H], r13 ; gcr arg write lea rdx, bword ptr [rbp+30H] ; byrRegs +[rdx] mov r8, r14 ; byrRegs +[r8] lea r9, bword ptr [rbp+50H] ; byrRegs +[r9] lea rcx, bword ptr [rbp+64H] ; byrRegs +[rcx] call [System.Int32:TryFormat()] ; gcrRegs -[rbx r13] ; byrRegs -[rcx rdx rsi r8-r9 r12 r14] ; gcr arg pop 0 mov byte ptr [r15], al jmp G_M52061_IG72 ;; bbWeight=0.50 PerfScore 4.38 G_M52061_IG18: ; gcrefRegs=00002008 {rbx r13}, byrefRegs=0000C000 {r14 r15}, byref ; gcrRegs +[rbx r13] ; byrRegs +[r14] xor ecx, ecx mov dword ptr [r14], ecx mov byte ptr [r15], 0 lea rcx, bword ptr [rbp+64H] ; byrRegs +[rcx] mov rdx, rbx ; gcrRegs +[rdx] mov r8, r13 ; gcrRegs +[r8] call [System.Int32:ToString()] ; gcrRegs -[rdx rbx r8 r13] +[rax] ; byrRegs -[rcx r14-r15] ; gcr arg pop 0 jmp G_M52061_IG75 ;; bbWeight=0.50 PerfScore 4.13 G_M52061_IG19: ; gcrefRegs=00002004 {rdx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref ; gcrRegs -[rax] +[rdx r13] ; byrRegs +[rsi r12 r14-r15] mov gword ptr [rbp+18H], rdx ; GC ptr vars +{V67} mov ebx, dword ptr [rdx+8] ;; bbWeight=0.50 PerfScore 1.50 G_M52061_IG20: ; gcVars=0000000010000000 {V67}, gcrefRegs=00002000 {r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz ; gcrRegs -[rdx] imul ecx, ebx, 10 jo SHORT G_M52061_IG21 mov r9d, 0xD1FFAB1E mov eax, r9d imul edx:eax, ecx mov ecx, edx shr ecx, 31 sar edx, 1 add ecx, edx add ecx, 2 jo SHORT G_M52061_IG21 jmp SHORT G_M52061_IG22 ;; bbWeight=0.50 PerfScore 5.88 G_M52061_IG21: ; gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[r13] ; byrRegs -[rsi r12 r14-r15] ; GC ptr vars -{V67} call [CORINFO_HELP_OVERFLOW] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 G_M52061_IG22: ; gcVars=0000000010000000 {V67}, gcrefRegs=00002000 {r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref ; gcrRegs +[r13] ; byrRegs +[rsi r12 r14-r15] ; GC ptr vars +{V67} mov dword ptr [rbp+DCH], r8d movsxd rcx, ecx call [CORINFO_HELP_READYTORUN_NEWARR_1] ; gcrRegs +[rax] ; gcr arg pop 0 xor ecx, ecx jmp G_M52061_IG27 ;; bbWeight=0.50 PerfScore 3.25 G_M52061_IG23: ; gcrefRegs=00002001 {rax r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref mov rdx, gword ptr [rbp+18H] ; gcrRegs +[rdx] cmp ebx, dword ptr [rdx+8] jae G_M52061_IG78 movsxd r11, ebx mov r11d, dword ptr [rdx+4*r11+16] xor r8d, r8d test ecx, ecx jle G_M52061_IG26 mov r9d, dword ptr [rax+8] mov gword ptr [rbp+18H], rdx mov gword ptr [rbp+150H], r13 ;; bbWeight=2 PerfScore 23.50 G_M52061_IG24: ; gcrefRegs=00000001 {rax}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz ; gcrRegs -[rdx r13] cmp r8d, r9d jae G_M52061_IG78 movsxd r10, r8d mov gword ptr [rbp+28H], rax ; GC ptr vars +{V12} mov r13d, dword ptr [rax+4*r10+16] shl r13, 32 mov r11d, r11d or r11, r13 mov r13, 0xD1FFAB1E mov rax, r11 ; gcrRegs -[rax] shr rax, 9 mul rdx:rax, r13 shr rdx, 11 imul rax, rdx, 0xD1FFAB1E mov rdx, r11 sub rdx, rax mov eax, edx mov r13, gword ptr [rbp+28H] ; gcrRegs +[r13] mov dword ptr [r13+4*r10+16], eax mov rdx, 0xD1FFAB1E mov rax, r11 shr rax, 9 mul rdx:rax, rdx shr rdx, 11 mov r11d, edx inc r8d cmp r8d, ecx mov rax, r13 ; gcrRegs +[rax] jl SHORT G_M52061_IG24 ;; bbWeight=16 PerfScore 428.00 G_M52061_IG25: ; gcrefRegs=00000001 {rax}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref ; gcrRegs -[r13] ; GC ptr vars -{V12} mov rdx, gword ptr [rbp+18H] ; gcrRegs +[rdx] mov r13, gword ptr [rbp+150H] ; gcrRegs +[r13] ;; bbWeight=8 PerfScore 16.00 G_M52061_IG26: ; gcVars=0000000000000000 {}, gcrefRegs=00002005 {rax rdx r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz ; GC ptr vars -{V67} test r11d, r11d mov gword ptr [rbp+18H], rdx ; GC ptr vars +{V67} je SHORT G_M52061_IG27 lea r8d, [rcx+1] mov r9d, r11d shr r9d, 9 imul r9, r9, 0xD1FFAB1E shr r9, 39 imul r9d, r9d, 0xD1FFAB1E mov r10d, r11d sub r10d, r9d mov r9d, dword ptr [rax+8] cmp ecx, r9d jae G_M52061_IG78 movsxd rcx, ecx mov dword ptr [rax+4*rcx+16], r10d shr r11d, 9 imul r11, r11, 0xD1FFAB1E shr r11, 39 test r11d, r11d mov ecx, r8d je SHORT G_M52061_IG27 mov r8d, ecx lea ecx, [r8+1] cmp r8d, r9d jae G_M52061_IG78 movsxd r8, r8d mov gword ptr [rbp+28H], rax ; GC ptr vars +{V12} mov dword ptr [rax+4*r8+16], r11d mov rax, gword ptr [rbp+28H] ;; bbWeight=2 PerfScore 57.50 G_M52061_IG27: ; gcVars=0000000010000000 {V67}, gcrefRegs=00002001 {rax r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref ; gcrRegs -[rdx] ; GC ptr vars -{V12} dec ebx test ebx, ebx jge G_M52061_IG23 ;; bbWeight=4 PerfScore 6.00 G_M52061_IG28: ; gcVars=0000000000000000 {}, gcrefRegs=00002001 {rax r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref, isz ; GC ptr vars -{V67} mov dword ptr [rbp+D8H], ecx imul ebx, ecx, 9 jo SHORT G_M52061_IG29 jmp SHORT G_M52061_IG30 ;; bbWeight=0.50 PerfScore 3.00 G_M52061_IG29: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref ; gcrRegs -[rax r13] ; byrRegs -[rsi r12 r14-r15] call [CORINFO_HELP_OVERFLOW] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 G_M52061_IG30: ; gcrefRegs=00002001 {rax r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz ; gcrRegs +[rax r13] ; byrRegs +[rsi r12 r14-r15] mov r8d, dword ptr [rbp+DCH] cmp r8d, 103 je SHORT G_M52061_IG31 cmp r8d, 71 je SHORT G_M52061_IG31 cmp r8d, 100 je SHORT G_M52061_IG31 cmp r8d, 68 je SHORT G_M52061_IG31 cmp r8d, 114 je SHORT G_M52061_IG31 cmp r8d, 82 sete r11b movzx r11, r11b jmp SHORT G_M52061_IG32 ;; bbWeight=0.50 PerfScore 5.38 G_M52061_IG31: ; gcrefRegs=00002001 {rax r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref mov r11d, 1 ;; bbWeight=0.50 PerfScore 0.13 G_M52061_IG32: ; gcrefRegs=00002001 {rax r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz movzx r10, r11b mov dword ptr [rbp+D4H], r10d test r10d, r10d je SHORT G_M52061_IG36 cmp dword ptr [rbp+E0H], 0 jle SHORT G_M52061_IG33 cmp dword ptr [rbp+E0H], ebx jle SHORT G_M52061_IG33 mov ebx, dword ptr [rbp+E0H] ;; bbWeight=0.50 PerfScore 3.75 G_M52061_IG33: ; gcrefRegs=00002001 {rax r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz cmp dword ptr [rbp+64H], 0 jge SHORT G_M52061_IG36 ;; bbWeight=0.50 PerfScore 1.00 G_M52061_IG34: ; gcrefRegs=00002001 {rax r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz mov gword ptr [rbp+28H], rax ; GC ptr vars +{V12} mov gword ptr [rbp+150H], r13 mov rcx, r13 ; gcrRegs +[rcx] lea r11, [(reloc)] cmp dword ptr [rcx], ecx call [hackishModuleName:hackishMethodName():System.String:this] ; gcrRegs -[rcx r13] ; gcr arg pop 0 add ebx, dword ptr [rax+8] jo SHORT G_M52061_IG35 mov rax, gword ptr [rbp+28H] mov r13, gword ptr [rbp+150H] ; gcrRegs +[r13] jmp SHORT G_M52061_IG36 ;; bbWeight=0.50 PerfScore 7.38 G_M52061_IG35: ; gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[rax r13] ; byrRegs -[rsi r12 r14-r15] ; GC ptr vars -{V12} call [CORINFO_HELP_OVERFLOW] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 G_M52061_IG36: ; gcrefRegs=00002001 {rax r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz ; gcrRegs +[rax r13] ; byrRegs +[rsi r12 r14-r15] mov edx, ebx add edx, 1 jo SHORT G_M52061_IG37 jmp SHORT G_M52061_IG38 ;; bbWeight=0.50 PerfScore 1.75 G_M52061_IG37: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref ; gcrRegs -[rax r13] ; byrRegs -[rsi r12 r14-r15] call [CORINFO_HELP_OVERFLOW] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 G_M52061_IG38: ; gcrefRegs=00002001 {rax r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz ; gcrRegs +[rax r13] ; byrRegs +[rsi r12 r14-r15] mov gword ptr [rbp+28H], rax ; GC ptr vars +{V12} movsxd rcx, edx call [CORINFO_HELP_READYTORUN_NEWARR_1] ; gcr arg pop 0 mov ecx, ebx xor edx, edx mov r9d, dword ptr [rbp+D8H] lea r8d, [r9-1] test r8d, r8d jle SHORT G_M52061_IG40 ;; bbWeight=0.50 PerfScore 3.75 G_M52061_IG39: ; gcrefRegs=00002001 {rax r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz mov r10, gword ptr [rbp+28H] ; gcrRegs +[r10] mov r9d, dword ptr [r10+8] cmp edx, r9d jae G_M52061_IG78 movsxd r9, edx mov r9d, dword ptr [r10+4*r9+16] mov r11d, 9 jmp SHORT G_M52061_IG42 ;; bbWeight=4 PerfScore 35.00 G_M52061_IG40: ; gcrefRegs=00002001 {rax r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz ; gcrRegs -[r10] mov r10, gword ptr [rbp+28H] ; gcrRegs +[r10] jmp SHORT G_M52061_IG44 ;; bbWeight=0.25 PerfScore 0.75 G_M52061_IG41: ; gcVars=0000000000000000 {}, gcrefRegs=00002401 {rax r10 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, gcvars, byref ; GC ptr vars -{V12} mov bword ptr [rbp+168H], r15 mov gword ptr [rbp+150H], r13 dec ecx mov r13d, 0xD1FFAB1E ; gcrRegs -[r13] mov r15d, r9d ; byrRegs -[r15] imul r15, r13 shr r15, 35 imul r15d, r15d, 10 mov r13d, r9d sub r13d, r15d add r13d, 48 cmp ecx, dword ptr [rax+8] jae G_M52061_IG78 movsxd r15, ecx mov gword ptr [rbp+20H], rax ; GC ptr vars +{V17} mov word ptr [rax+2*r15+16], r13w mov r15d, 0xD1FFAB1E mov r9d, r9d imul r9, r15 shr r9, 35 mov rax, gword ptr [rbp+20H] mov r13, gword ptr [rbp+150H] ; gcrRegs +[r13] mov r15, bword ptr [rbp+168H] ; byrRegs +[r15] ;; bbWeight=8 PerfScore 178.00 G_M52061_IG42: ; gcrefRegs=00002401 {rax r10 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz ; GC ptr vars -{V17} dec r11d test r11d, r11d jge SHORT G_M52061_IG41 ;; bbWeight=32 PerfScore 48.00 G_M52061_IG43: ; gcrefRegs=00002401 {rax r10 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref inc edx cmp edx, r8d jl G_M52061_IG55 ;; bbWeight=4 PerfScore 6.00 G_M52061_IG44: ; gcrefRegs=00002401 {rax r10 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz mov r9d, dword ptr [r10+8] cmp r8d, r9d jae G_M52061_IG78 movsxd rdx, r8d mov r11d, dword ptr [r10+4*rdx+16] test r11d, r11d je SHORT G_M52061_IG46 mov edx, dword ptr [rax+8] ;; bbWeight=0.50 PerfScore 4.38 G_M52061_IG45: ; gcrefRegs=00002001 {rax r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref, isz ; gcrRegs -[r10] dec ecx mov edx, 0xD1FFAB1E mov r8d, r11d imul rdx, r8 shr rdx, 35 imul edx, edx, 10 mov r8d, r11d sub r8d, edx add r8d, 48 cmp ecx, dword ptr [rax+8] jae G_M52061_IG78 movsxd rdx, ecx mov word ptr [rax+2*rdx+16], r8w mov edx, 0xD1FFAB1E mov r11d, r11d imul r11, rdx shr r11, 35 test r11d, r11d jne SHORT G_M52061_IG45 ;; bbWeight=4 PerfScore 70.00 G_M52061_IG46: ; gcrefRegs=00002001 {rax r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref cmp dword ptr [rbp+D4H], 0 jne G_M52061_IG57 mov gword ptr [rbp+20H], rax ; GC ptr vars +{V17} cmp dword ptr [rbp+64H], 0 setl r9b movzx r9, r9b mov dword ptr [rbp+CCH], r9d mov dword ptr [rbp+D0H], ecx sub ebx, ecx xorps xmm0, xmm0 movups xmmword ptr [rbp+68H], xmm0 lea rcx, bword ptr [rbp+68H] ; byrRegs +[rcx] add rsp, 64 test dword ptr [rsp], esp sub rsp, 256 sub rsp, 64 lea rdx, [rsp+40H] mov r8d, 128 call [System.Span`1:.ctor(long,int):this] ; gcrRegs -[rax] ; byrRegs -[rcx] ; gcr arg pop 0 ;; bbWeight=0.50 PerfScore 8.42 G_M52061_IG47: ; , nogc, extend movups xmm0, xmmword ptr [rbp+68H] movups xmmword ptr [rbp+98H], xmm0 ;; bbWeight=0.50 PerfScore 2.50 G_M52061_IG48: ; , extend xor rcx, rcx ; gcrRegs +[rcx] mov gword ptr [rbp+A8H], rcx ;; bbWeight=0.50 PerfScore 0.63 G_M52061_IG49: ; , nogc, extend movups xmm0, xmmword ptr [rbp+98H] movups xmmword ptr [rbp+B8H], xmm0 ;; bbWeight=0.50 PerfScore 2.50 G_M52061_IG50: ; , extend mov dword ptr [rbp+B0H], ecx lea rcx, [rbp+A8H] ; gcrRegs -[rcx] mov r8d, ebx mov ebx, dword ptr [rbp+CCH] mov r9d, ebx ;; bbWeight=0.50 PerfScore 1.50 G_M52061_IG51: ; , nogc, extend movups xmm0, xmmword ptr [rsi] movups xmmword ptr [rbp+50H], xmm0 ;; bbWeight=0.50 PerfScore 3.00 G_M52061_IG52: ; , isz, extend mov gword ptr [rsp+28H], r13 ; gcr arg write mov rbx, gword ptr [rbp+20H] ; gcrRegs +[rbx] mov gword ptr [rsp+30H], rbx ; gcr arg write mov esi, dword ptr [rbp+D0H] ; byrRegs -[rsi] mov dword ptr [rsp+38H], esi lea rdx, bword ptr [rbp+50H] ; byrRegs +[rdx] mov bword ptr [rsp+20H], rdx ; byr arg write mov edx, 29 ; byrRegs -[rdx] ; GC ptr vars -{V17} call [System.Globalization.FormatProvider:FormatBigInteger()] ; gcrRegs -[rbx r13] ; gcr arg pop 0 test dil, dil je SHORT G_M52061_IG56 lea rcx, bword ptr [rbp+A8H] ; byrRegs +[rcx] ;; bbWeight=0.50 PerfScore 5.75 G_M52061_IG53: ; , nogc, extend movups xmm0, xmmword ptr [r12] movups xmmword ptr [rbp+30H], xmm0 ;; bbWeight=0.50 PerfScore 3.00 G_M52061_IG54: ; , extend lea rdx, bword ptr [rbp+30H] ; byrRegs +[rdx] mov r8, r14 ; byrRegs +[r8] call [System.Text.ValueStringBuilder:TryCopyTo(System.Span`1[System.Char],byref):bool:this] ; byrRegs -[rcx rdx r8 r12 r14] ; gcr arg pop 0 mov byte ptr [r15], al jmp G_M52061_IG72 ;; bbWeight=0.50 PerfScore 3.38 G_M52061_IG55: ; gcrefRegs=00002401 {rax r10 r13}, byrefRegs=0000D040 {rsi r12 r14 r15}, byref ; gcrRegs +[rax r10 r13] ; byrRegs +[rsi r12 r14] mov gword ptr [rbp+28H], r10 ; GC ptr vars +{V12} jmp G_M52061_IG39 ;; bbWeight=2 PerfScore 6.00 G_M52061_IG56: ; gcrefRegs=00000000 {}, byrefRegs=0000C000 {r14 r15}, byref ; gcrRegs -[rax r10 r13] ; byrRegs -[rsi r12] ; GC ptr vars -{V12} xor ecx, ecx mov dword ptr [r14], ecx mov byte ptr [r15], 0 lea rcx, bword ptr [rbp+A8H] ; byrRegs +[rcx] call [System.Text.ValueStringBuilder:ToString():System.String:this] ; gcrRegs +[rax] ; byrRegs -[rcx r14-r15] ; gcr arg pop 0 jmp G_M52061_IG75 ;; bbWeight=0.50 PerfScore 3.88 G_M52061_IG57: ; gcrefRegs=00002001 {rax r13}, byrefRegs=0000D000 {r12 r14 r15}, byref, isz ; gcrRegs +[r13] ; byrRegs +[r12 r14-r15] mov r11d, ebx sub r11d, ecx jmp SHORT G_M52061_IG59 ;; bbWeight=0.50 PerfScore 1.25 G_M52061_IG58: ; gcrefRegs=00002001 {rax r13}, byrefRegs=0000D000 {r12 r14 r15}, byref dec ecx mov esi, ecx cmp esi, dword ptr [rax+8] jae G_M52061_IG78 mov dword ptr [rbp+D0H], esi movsxd rcx, esi mov gword ptr [rbp+20H], rax ; GC ptr vars +{V17} mov word ptr [rax+2*rcx+16], 48 mov ecx, dword ptr [rbp+E0H] dec ecx mov dword ptr [rbp+E0H], ecx mov rax, gword ptr [rbp+20H] mov ecx, dword ptr [rbp+D0H] ;; bbWeight=2 PerfScore 22.00 G_M52061_IG59: ; gcrefRegs=00002001 {rax r13}, byrefRegs=0000D000 {r12 r14 r15}, byref, isz ; GC ptr vars -{V17} cmp dword ptr [rbp+E0H], 0 jle SHORT G_M52061_IG60 cmp dword ptr [rbp+E0H], r11d jg SHORT G_M52061_IG58 ;; bbWeight=4 PerfScore 16.00 G_M52061_IG60: ; gcrefRegs=00002001 {rax r13}, byrefRegs=0000D000 {r12 r14 r15}, byref, isz cmp dword ptr [rbp+64H], 0 jge SHORT G_M52061_IG63 mov dword ptr [rbp+D0H], ecx mov gword ptr [rbp+20H], rax ; GC ptr vars +{V17} mov rcx, r13 ; gcrRegs +[rcx] lea r11, [(reloc)] cmp dword ptr [rcx], ecx call [hackishModuleName:hackishMethodName():System.String:this] ; gcrRegs -[rcx r13] ; gcr arg pop 0 mov esi, dword ptr [rax+8] lea r10d, [rsi-1] test r10d, r10d jl SHORT G_M52061_IG65 ;; bbWeight=0.50 PerfScore 6.75 G_M52061_IG61: ; gcrefRegs=00000001 {rax}, byrefRegs=0000D000 {r12 r14 r15}, byref, isz mov ecx, dword ptr [rbp+D0H] dec ecx mov r13d, ecx cmp r10d, esi jae G_M52061_IG78 movsxd rdx, r10d movzx rdx, word ptr [rax+2*rdx+12] mov rcx, gword ptr [rbp+20H] ; gcrRegs +[rcx] cmp r13d, dword ptr [rcx+8] jae G_M52061_IG78 movsxd r8, r13d mov word ptr [rcx+2*r8+16], dx dec r10d test r10d, r10d jge SHORT G_M52061_IG64 ;; bbWeight=4 PerfScore 47.00 G_M52061_IG62: ; gcVars=0000000000000000 {}, gcrefRegs=00000002 {rcx}, byrefRegs=0000D000 {r12 r14 r15}, gcvars, byref ; gcrRegs -[rax] ; GC ptr vars -{V17} mov rax, rcx ; gcrRegs +[rax] mov ecx, r13d ; gcrRegs -[rcx] ;; bbWeight=2 PerfScore 1.00 G_M52061_IG63: ; gcrefRegs=00000001 {rax}, byrefRegs=0000D000 {r12 r14 r15}, byref, isz mov r9d, ebx sub r9d, ecx mov r13d, r9d test dil, dil jne SHORT G_M52061_IG66 xor edx, edx mov dword ptr [r14], edx mov byte ptr [r15], 0 mov rdx, rax ; gcrRegs +[rdx] mov r8d, ecx xor rcx, rcx ; gcrRegs +[rcx] call [hackishModuleName:hackishMethodName(System.Char[],int,int):this] ; gcrRegs -[rcx rdx] ; byrRegs -[r12 r14-r15] ; gcr arg pop 0 jmp G_M52061_IG75 ;; bbWeight=0.50 PerfScore 5.00 G_M52061_IG64: ; gcrefRegs=00000003 {rax rcx}, byrefRegs=0000D000 {r12 r14 r15}, byref, isz ; gcrRegs +[rcx] ; byrRegs +[r12 r14-r15] mov dword ptr [rbp+D0H], r13d mov gword ptr [rbp+20H], rcx ; GC ptr vars +{V17} jmp SHORT G_M52061_IG61 ;; bbWeight=2 PerfScore 8.00 G_M52061_IG65: ; gcVars=0000000000000200 {V17}, gcrefRegs=00000000 {}, byrefRegs=0000D000 {r12 r14 r15}, gcvars, byref, isz ; gcrRegs -[rax rcx] mov rax, gword ptr [rbp+20H] ; gcrRegs +[rax] mov ecx, dword ptr [rbp+D0H] jmp SHORT G_M52061_IG63 ;; bbWeight=0.25 PerfScore 1.00 G_M52061_IG66: ; gcVars=0000000000000000 {}, gcrefRegs=00000001 {rax}, byrefRegs=0000D000 {r12 r14 r15}, gcvars, byref ; GC ptr vars -{V17} mov dword ptr [rbp+D0H], ecx xorps xmm0, xmm0 movups xmmword ptr [rbp+78H], xmm0 lea rcx, bword ptr [rbp+78H] ; byrRegs +[rcx] mov rdx, rax ; gcrRegs +[rdx] mov r8d, dword ptr [rbp+D0H] call [System.ReadOnlySpan`1:.ctor(System.Char[],int,int):this] ; gcrRegs -[rax rdx] ; byrRegs -[rcx] ; gcr arg pop 0 ;; bbWeight=0.50 PerfScore 4.04 G_M52061_IG67: ; , nogc, extend movups xmm0, xmmword ptr [rbp+78H] movups xmmword ptr [rbp+88H], xmm0 ;; bbWeight=0.50 PerfScore 2.50 G_M52061_IG68: ; , extend lea rcx, bword ptr [rbp+88H] ; byrRegs +[rcx] ;; bbWeight=0.50 PerfScore 0.25 G_M52061_IG69: ; , nogc, extend movups xmm0, xmmword ptr [r12] movups xmmword ptr [rbp+30H], xmm0 ;; bbWeight=0.50 PerfScore 3.00 G_M52061_IG70: ; , isz, extend lea rdx, bword ptr [rbp+30H] ; byrRegs +[rdx] call [System.ReadOnlySpan`1:TryCopyTo()] ; byrRegs -[rcx rdx r12] ; gcr arg pop 0 test al, al je SHORT G_M52061_IG71 mov dword ptr [r14], r13d mov byte ptr [r15], 1 jmp SHORT G_M52061_IG72 ;; bbWeight=0.50 PerfScore 4.38 G_M52061_IG71: ; gcrefRegs=00000000 {}, byrefRegs=0000C000 {r14 r15}, byref xor eax, eax mov dword ptr [r14], eax mov byte ptr [r15], 0 ;; bbWeight=0.50 PerfScore 1.13 G_M52061_IG72: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz ; byrRegs -[r14-r15] xor rax, rax ; gcrRegs +[rax] lea rcx, [(reloc)] mov rcx, qword ptr [rcx] cmp qword ptr [rbp+10H], rcx je SHORT G_M52061_IG73 call [CORINFO_HELP_FAIL_FAST] ; gcrRegs -[rax] ; gcr arg pop 0 ;; bbWeight=0.50 PerfScore 3.88 G_M52061_IG73: ; gcrefRegs=00000001 {rax}, byrefRegs=00000000 {}, byref ; gcrRegs +[rax] nop ;; bbWeight=0.50 PerfScore 0.13 G_M52061_IG74: ; , epilog, nogc, extend lea rsp, [rbp+E8H] pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; bbWeight=0.50 PerfScore 2.75 G_M52061_IG75: ; gcVars=0000000000000000 {}, gcrefRegs=00000001 {rax}, byrefRegs=00000000 {}, gcvars, byref, isz lea rcx, [(reloc)] mov rcx, qword ptr [rcx] cmp qword ptr [rbp+10H], rcx je SHORT G_M52061_IG76 call [CORINFO_HELP_FAIL_FAST] ; gcrRegs -[rax] ; gcr arg pop 0 ;; bbWeight=0.50 PerfScore 3.75 G_M52061_IG76: ; gcrefRegs=00000001 {rax}, byrefRegs=00000000 {}, byref ; gcrRegs +[rax] nop ;; bbWeight=0.50 PerfScore 0.13 G_M52061_IG77: ; , epilog, nogc, extend lea rsp, [rbp+E8H] pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; bbWeight=0.50 PerfScore 2.75 G_M52061_IG78: ; gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[rax] call [CORINFO_HELP_RNGCHKFAIL] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 G_M52061_IG79: ; gcrefRegs=00000004 {rdx}, byrefRegs=00000000 {}, byref, funclet prolog, nogc ; gcrRegs +[rdx] push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 72 mov rbp, qword ptr [rcx+64] mov qword ptr [rsp+40H], rbp lea rbp, [rbp+40H] ;; bbWeight=0 PerfScore 0.00 G_M52061_IG80: ; gcVars=0000000000000000 {}, gcrefRegs=00000004 {rdx}, byrefRegs=00000000 {}, gcvars, byref mov rsi, rdx ; gcrRegs +[rsi] call [CORINFO_HELP_READYTORUN_NEW] ; gcrRegs -[rdx] +[rax] ; gcr arg pop 0 mov rdi, rax ; gcrRegs +[rdi] call [hackishModuleName:hackishMethodName()] ; gcr arg pop 0 mov rdx, rax ; gcrRegs +[rdx] mov rcx, rdi ; gcrRegs +[rcx] mov r8, rsi ; gcrRegs +[r8] call [hackishModuleName:hackishMethodName(System.String,System.Exception):this] ; gcrRegs -[rax rcx rdx rsi r8] ; gcr arg pop 0 mov rcx, rdi ; gcrRegs +[rcx] call [CORINFO_HELP_THROW] ; gcrRegs -[rcx rdi] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 G_M52061_IG81: ; gcrefRegs=00000004 {rdx}, byrefRegs=00000000 {}, byref, funclet prolog, nogc ; gcrRegs +[rdx] push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 72 mov rbp, qword ptr [rcx+64] mov qword ptr [rsp+40H], rbp lea rbp, [rbp+40H] ;; bbWeight=0 PerfScore 0.00 G_M52061_IG82: ; gcVars=0000000000000000 {}, gcrefRegs=00000004 {rdx}, byrefRegs=00000000 {}, gcvars, byref mov rsi, rdx ; gcrRegs +[rsi] call [CORINFO_HELP_READYTORUN_NEW] ; gcrRegs -[rdx] +[rax] ; gcr arg pop 0 mov rdi, rax ; gcrRegs +[rdi] call [hackishModuleName:hackishMethodName()] ; gcr arg pop 0 mov rdx, rax ; gcrRegs +[rdx] mov rcx, rdi ; gcrRegs +[rcx] mov r8, rsi ; gcrRegs +[r8] call [hackishModuleName:hackishMethodName(System.String,System.Exception):this] ; gcrRegs -[rax rcx rdx rsi r8] ; gcr arg pop 0 mov rcx, rdi ; gcrRegs +[rcx] call [CORINFO_HELP_THROW] ; gcrRegs -[rcx rdi] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 G_M52061_IG83: ; gcrefRegs=00000004 {rdx}, byrefRegs=00000000 {}, byref, funclet prolog, nogc ; gcrRegs +[rdx] push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 72 mov rbp, qword ptr [rcx+64] mov qword ptr [rsp+40H], rbp lea rbp, [rbp+40H] ;; bbWeight=0 PerfScore 0.00 G_M52061_IG84: ; gcVars=0000000000000000 {}, gcrefRegs=00000004 {rdx}, byrefRegs=00000000 {}, gcvars, byref mov rsi, rdx ; gcrRegs +[rsi] call [CORINFO_HELP_READYTORUN_NEW] ; gcrRegs -[rdx] +[rax] ; gcr arg pop 0 mov rdi, rax ; gcrRegs +[rdi] call [hackishModuleName:hackishMethodName()] ; gcr arg pop 0 mov rdx, rax ; gcrRegs +[rdx] mov rcx, rdi ; gcrRegs +[rcx] mov r8, rsi ; gcrRegs +[r8] call [hackishModuleName:hackishMethodName(System.String,System.Exception):this] ; gcrRegs -[rax rcx rdx rsi r8] ; gcr arg pop 0 mov rcx, rdi ; gcrRegs +[rcx] call [CORINFO_HELP_THROW] ; gcrRegs -[rcx rdi] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 G_M52061_IG85: ; gcrefRegs=00000004 {rdx}, byrefRegs=00000000 {}, byref, funclet prolog, nogc ; gcrRegs +[rdx] push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 72 mov rbp, qword ptr [rcx+64] mov qword ptr [rsp+40H], rbp lea rbp, [rbp+40H] ;; bbWeight=0 PerfScore 0.00 G_M52061_IG86: ; gcVars=0000000000000000 {}, gcrefRegs=00000004 {rdx}, byrefRegs=00000000 {}, gcvars, byref mov rsi, rdx ; gcrRegs +[rsi] call [CORINFO_HELP_READYTORUN_NEW] ; gcrRegs -[rdx] +[rax] ; gcr arg pop 0 mov rdi, rax ; gcrRegs +[rdi] call [hackishModuleName:hackishMethodName()] ; gcr arg pop 0 mov rdx, rax ; gcrRegs +[rdx] mov rcx, rdi ; gcrRegs +[rcx] mov r8, rsi ; gcrRegs +[r8] call [hackishModuleName:hackishMethodName(System.String,System.Exception):this] ; gcrRegs -[rax rcx rdx rsi r8] ; gcr arg pop 0 mov rcx, rdi ; gcrRegs +[rcx] call [CORINFO_HELP_THROW] ; gcrRegs -[rcx rdi] ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 ; Total bytes of code 2332, prolog size 125, PerfScore 1410.87, instruction count 610, allocated bytes for code 2332 (MethodHash=0c2134a2) for method System.Numerics.BigNumber:FormatBigInteger(bool,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[System.Char],System.Globalization.NumberFormatInfo,System.Span`1[System.Char],byref,byref):System.String ; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x18 CountOfUnwindCodes: 11 FrameRegister : rbp (5) FrameOffset : 4 * 16 = 0x40 UnwindCodes : CodeOffset: 0x18 UnwindOp: UWOP_SET_FPREG (3) OpInfo: Unused (0) CodeOffset: 0x13 UnwindOp: UWOP_ALLOC_LARGE (1) OpInfo: 0 - Scaled small Size: 37 * 8 = 296 = 0x00128 CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7) CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12) CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x10 CountOfUnwindCodes: 9 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x10 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 8 * 8 + 8 = 72 = 0x48 CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7) CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12) CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x10 CountOfUnwindCodes: 9 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x10 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 8 * 8 + 8 = 72 = 0x48 CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7) CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12) CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x10 CountOfUnwindCodes: 9 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x10 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 8 * 8 + 8 = 72 = 0x48 CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7) CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12) CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x10 CountOfUnwindCodes: 9 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x10 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 8 * 8 + 8 = 72 = 0x48 CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7) CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12) CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) *************** EH table for System.Numerics.BigNumber:FormatBigInteger(bool,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[System.Char],System.Globalization.NumberFormatInfo,System.Span`1[System.Char],byref,byref):System.String 4 EH table entries, 0 duplicate clauses, 0 cloned finallys, 4 total EH entries reported to VM EH#0: try [G_M52061_IG20..G_M52061_IG22) handled by [G_M52061_IG79..G_M52061_IG81) (class: 1000028) EH#1: try [G_M52061_IG28..G_M52061_IG30) handled by [G_M52061_IG81..G_M52061_IG83) (class: 1000028) EH#2: try [G_M52061_IG34..G_M52061_IG36) handled by [G_M52061_IG83..G_M52061_IG85) (class: 1000028) EH#3: try [G_M52061_IG36..G_M52061_IG38) handled by [G_M52061_IG85..END) (class: 1000028)
Encontrar la diferencia