Diff
checker
Text
Text
Images
Documents
Excel
Folders
Legal
Enterprise
Desktop
Pricing
Sign in
Download Diffchecker Desktop
Compare text
Find the difference between two text files
Tools
History
Real-time editor
Hide unchanged lines
Disable line wrap
Layout
Split
Unified
Diff precision
Smart
Word
Char
Syntax highlighting
Choose syntax
Ignore
Transform text
Go to first change
Edit input
Diffchecker Desktop
The most secure way to run Diffchecker. Get the Diffchecker Desktop app: your diffs never leave your computer!
Get Desktop
Untitled diff
Created
last year
Diff never expires
Clear
Export
Share
Explain
429 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
507 lines
Copy
409 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
477 lines
Copy
; Assembly listing for method System.TimeZoneInfo:.ctor(ubyte[],System.String,ubyte):this (FullOpts)
; Assembly listing for method System.TimeZoneInfo:.ctor(ubyte[],System.String,ubyte):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; FullOpts code
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; partially interruptible
; partially interruptible
; No PGO data
; No PGO data
Copy
Copied
Copy
Copied
; 0 inlinees with PGO data;
33
single block inlinees;
13
inlinees without PGO data
; 0 inlinees with PGO data;
39
single block inlinees;
19
inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
Copy
Copied
Copy
Copied
; V00 this [V00,
T05
] ( 20, 21 ) ref -> rbx this class-hnd single-def <System.TimeZoneInfo>
; V00 this [V00,
T11
] ( 20, 21 ) ref -> rbx this class-hnd single-def <System.TimeZoneInfo>
; V01 arg1 [V01,T4
0
] ( 3, 2.50) ref -> r14 class-hnd single-def <ubyte[]>
; V01 arg1 [V01,T4
9
] ( 3, 2.50) ref -> r14 class-hnd single-def <ubyte[]>
; V02 arg2 [V02,T
31
] ( 4, 4 ) ref -> r15 class-hnd single-def <System.String>
; V02 arg2 [V02,T
43
] ( 4, 4 ) ref -> r15 class-hnd single-def <System.String>
; V03 arg3 [V03,
T41
] ( 3, 2.50) ubyte -> r13 single-def
; V03 arg3 [V03,
T50
] ( 3, 2.50) ubyte -> r13 single-def
; V04 loc0 [V04 ] ( 6, 13.50) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.DateTime[]>
; V04 loc0 [V04 ] ( 6, 13.50) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.DateTime[]>
; V05 loc1 [V05 ] ( 4, 5 ) ref -> [rbp-0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <ubyte[]>
; V05 loc1 [V05 ] ( 4, 5 ) ref -> [rbp-0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <ubyte[]>
; V06 loc2 [V06 ] ( 20, 41.50) ref -> [rbp-0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.TimeZoneInfo+TZifType[]>
; V06 loc2 [V06 ] ( 20, 41.50) ref -> [rbp-0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.TimeZoneInfo+TZifType[]>
; V07 loc3 [V07 ] ( 5, 8.50) ref -> [rbp-0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
; V07 loc3 [V07 ] ( 5, 8.50) ref -> [rbp-0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
; V08 loc4 [V08 ] ( 2, 1 ) ref -> [rbp-0x50] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
; V08 loc4 [V08 ] ( 2, 1 ) ref -> [rbp-0x50] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
;* V09 loc5 [V09 ] ( 0, 0 ) struct ( 8) zero-ref <System.DateTime>
;* V09 loc5 [V09 ] ( 0, 0 ) struct ( 8) zero-ref <System.DateTime>
Copy
Copied
Copy
Copied
;* V10 loc6 [V10,
T54
] ( 0, 0 ) int -> zero-ref
;* V10 loc6 [V10,
T66
] ( 0, 0 ) int -> zero-ref
; V11 loc7 [V11,T1
2
] ( 6, 12 ) int -> r12
; V11 loc7 [V11,T1
8
] ( 6, 12 ) int -> r12
;* V12 loc8 [V12,
T55
] ( 0, 0 ) int -> zero-ref
;* V12 loc8 [V12,
T67
] ( 0, 0 ) int -> zero-ref
;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
;* V14 tmp1 [V14 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V14 tmp1 [V14 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V15 tmp2 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V15 tmp2 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V16 tmp3 [V16 ] ( 0, 0 ) struct ( 8) zero-ref "folding static readonly field struct" <System.TimeSpan>
;* V16 tmp3 [V16 ] ( 0, 0 ) struct ( 8) zero-ref "folding static readonly field struct" <System.TimeSpan>
Copy
Copied
Copy
Copied
; V17 tmp4 [V17,
T32
] ( 3, 6 ) ref ->
rax
class-hnd exact "Inline return value spill temp" <System.String>
; V17 tmp4 [V17,
T44
] ( 3, 6 ) ref ->
rsi
class-hnd exact "Inline return value spill temp" <System.String>
; V18 tmp5 [V18,T0
7
] (
5, 20
) ref -> [rbp-0x
58
] class-hnd exact spill-single-def "Inlining Arg" <System.String>
; V18 tmp5 [V18,T0
5
] (
7, 25
) ref -> [rbp-0x
80
] class-hnd exact spill-single-def "Inlining Arg" <System.String>
; V19 tmp6 [V19,T00] (
8, 32
) int -> r12 "Inlining Arg"
; V19 tmp6 [V19,T00] (
10, 37
) int -> r12 "Inlining Arg"
;* V20 tmp7 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V20 tmp7 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
Copy
Copied
Copy
Copied
; V21 tmp8 [V21,
T14
] ( 4, 8 ) int -> r
d
x "Inline return value spill temp"
; V21 tmp8 [V21,
T26
] ( 4, 8 ) int -> r
a
x "Inline return value spill temp"
; V22 tmp9 [V22,
T26
] ( 2, 8 ) int -> rdx "Inlining Arg"
; V22 tmp9 [V22,
T38
] ( 2, 8 ) int -> rdx "Inlining Arg"
;* V23 tmp10 [V23 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V23 tmp10 [V23 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
Copy
Copied
Copy
Copied
; V24 tmp11 [V24,
T22
] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V24 tmp11 [V24,
T34
] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V25 tmp12 [V25,
T15
] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V25 tmp12 [V25,
T27
] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V26 tmp13 [V26,T
3
3] (
3
,
6
) ref ->
rax
class-hnd exact "Inline return value spill temp" <System.String>
; V26 tmp13 [V26,T
2
3] (
4
,
8
) ref ->
rsi
class-hnd exact "Inline return value spill temp" <System.String>
; V27 tmp14 [V27,T08] (
5, 2
0 )
ref -> [rbp-0x60
] class-hnd exact spill-single-def
"Inlining Arg"
<System.String>
; V27 tmp14 [V27,T08] (
7, 25 ) int -> rdx "Inlining Arg"
;
V28 tmp15
[V28
,T01] (
8, 32
) int -> r12 "Inlining Arg"
;* V28 tmp15 [V28 ] ( 0,
0 )
int -> zero-ref "Inlining Arg"
;*
V29 tmp16
[
V29
] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V29 tmp16 [V29,T53] ( 2, 4 ) long -> [rbp-0x58] spill-single-def "Inline stloc first use temp"
; V3
0 tmp17
[V3
0,T16
] ( 4, 8 ) int -> r
d
x "Inline return value spill temp"
; V30 tmp17 [V30,T14] ( 4, 16 ) ref -> [rbp-0x88
] class-hnd exact spill-single-def
"dup spill" <System.String>
; V3
1 tmp18
[V3
1,T27
] ( 2, 8 ) int -> rdx "Inlining Arg"
;* V31 tmp18 [V31 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V3
2 tmp19
[V3
2
] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V32 tmp19 [V32 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;
V33
tmp2
0
[
V33,T23
] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V33 tmp20 [V33,T45] ( 3, 6 ) ref -> rsi class-hnd exact "Inline return value spill temp"
<System.String>
; V
34
tmp2
1
[V
34,T17
] ( 4, 8 ) int -> rax "Inline return value spill temp"
;
V34 tmp21 [V34,T06] ( 7, 25
)
ref -> [rbp-0x90] class-hnd exact spill-single-def "Inlining Arg" <System.String>
;* V35 tmp22
[V35
] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
; V35 tmp22 [V35
,T01] (
10, 37
) int -> r12 "Inlining Arg"
;*
V36
tmp
23
[
V36
] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;*
V36 tmp23
[
V36
] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;*
V37 tmp24
[
V37
] ( 0, 0 ) long -> zero-ref "impAppendStmt"
; V3
7 tmp24
[V3
7,T28
] ( 4, 8 ) int -> r
a
x "Inline return value spill temp"
;
V38 tmp25
[
V38,T34
] ( 3, 6 ) ref ->
rax
class-hnd exact "Inline return value spill temp" <System.String>
; V3
8 tmp25
[V3
8,T39
] ( 2, 8 ) int -> rdx "Inlining Arg"
; V
39 tmp26
[V
39
,T0
9
] (
5, 20
) ref -> r12 class-hnd exact "Inlining Arg" <System.String>
;* V3
9 tmp26
[V3
9
] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V
40 tmp27
[V
40
,T02] (
8, 32
) int -> r14 "Inlining Arg"
;
V40
tmp2
7
[
V40,T35
] ( 2, 8 ) byref -> rdi "Inlining Arg"
;*
V41
tmp
28
[
V41
] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V
41
tmp2
8
[V
41,T29
] ( 4, 8 ) int -> rax "Inline return value spill temp"
;
V42 tmp29
[
V42,T18
] ( 4, 8 ) int -> r
d
x "Inline return value spill temp"
; V42 tmp29 [V42,T24] ( 4, 8 ) ref -> rsi class-hnd exact "Inline return value spill temp" <System.String>
;
V43 tmp30
[
V43,T28
] ( 2, 8 ) int -> rdx "Inlining Arg"
; V43 tmp30 [V43,T09] ( 7, 25 ) int -> rdx "Inlining Arg"
;*
V44 tmp31
[
V44
] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V44 tmp31 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V
45 tmp32
[V
45,T24
] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V45 tmp32 [V45,T54] ( 2, 4
)
long -> [rbp-0x60] spill-single-def "Inline stloc first use temp"
; V
46 tmp33
[V
46,T19
] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V46 tmp33 [V46,T15] ( 4, 16 ) ref -> [rbp-0x98] class-hnd exact spill-single-def "dup spill" <System.String>
; V47 tmp34 [V47,T35
] ( 3, 6 ) ref -> rax class-hnd exact "Inline return value spill temp" <System.String>
;* V47 tmp34 [V47 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;
V48
tmp
35
[
V48
,T1
0
] ( 5, 20 ) ref -> r12 class-hnd exact "Inlining Arg" <System.String>
;* V48 tmp35 [V48 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;
V49 tmp36
[
V49
,T03] ( 8, 32 ) int -> r14 "Inlining Arg"
;* V49 tmp36 [V49
] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;*
V50 tmp37
[
V50
] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;*
V50
tmp
37
[
V50
] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;
V51 tmp38
[
V51,T20
] ( 4, 8 ) int -> rdx "Inline return value spill temp"
;*
V51 tmp38
[
V51
] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;
V52 tmp39
[
V52,T29
] ( 2, 8 ) int -> rdx "Inlining Arg"
;
V52 tmp39
[
V52,T46
] ( 3, 6 ) ref ->
rsi
class-hnd exact "Inline return value spill temp" <System.String>
;*
V53 tmp40
[
V53
] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V
53 tmp40
[V
53
,T0
7
] (
7, 25
) ref -> r12 class-hnd exact "Inlining Arg" <System.String>
; V
54 tmp41
[V
54,T25
] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V
54 tmp41
[V
54
,T02] (
10, 37
) int -> r14 "Inlining Arg"
;
V55 tmp42
[
V55,T21
] ( 4, 8 ) int -> rax "Inline return value spill temp"
;*
V55
tmp
42
[
V55
] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;*
V56
tmp
43
[
V56
] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;
V56 tmp43
[
V56,T30
] ( 4, 8 ) int -> r
a
x "Inline return value spill temp"
;* V
57 tmp44
[V
57
] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;
V57 tmp44
[
V57,T40
] ( 2, 8 ) int -> rdx "Inlining Arg"
;*
V58 tmp45
[
V58
] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;*
V58 tmp45
[
V58
] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;*
V59
tmp
46
[
V59
] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V
59 tmp46
[V
59,T36
] ( 2, 8 ) byref -> rdi "Inlining Arg"
;
V60 tmp47
[
V60,T51
] ( 4, 2 ) long -> rsi "Inline stloc first use temp"
; V
60 tmp47
[V
60,T31
] ( 4, 8 ) int -> rax "Inline return value spill temp"
;
V61 tmp48
[
V61,T42
] ( 2, 4.50) long -> r15 "field V09._dateData (fldOffset=0x0)" P-INDEP
; V61 tmp48 [V61,T25] ( 4, 8 ) ref -> rsi class-hnd exact "Inline return value spill temp" <System.String>
;
V62 tmp49
[
V62,T53
] ( 2, 1 ) long -> rsi "field V15._ticks (fldOffset=0x0)" P-INDEP
; V62 tmp49 [V62,T10] ( 7, 25 ) int -> rdx "Inlining Arg"
;*
V63 tmp50
[
V63,T56
] ( 0, 0 ) long -> zero-ref "field V16._ticks (fldOffset=0x0)" P-INDEP
;* V63 tmp50 [V63 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;
V64 tmp51
[
V64,T30
] ( 2, 8 ) long -> rdi "field
V35
._dateData (fldOffset=0x0)" P-INDEP
; V64 tmp51 [V64,T55] ( 2, 4 ) long -> [rbp-0x68] spill-single-def "Inline stloc first use temp"
;* V
65 tmp52
[V
65
] ( 0, 0 ) long -> zero-ref "field
V36
._dateData (fldOffset=0x0)" P-INDEP
; V65 tmp52 [V65,T16] ( 4, 16 ) ref -> [rbp-0xA0] class-hnd exact spill-single-def "dup spill" <System.String>
;
V66 tmp53
[
V66,T44
] ( 3, 3 ) long -> rdi "fgMakeTemp is creating a new local variable"
;* V66 tmp53 [V66 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;
V67
tmp
54
[
V67,T45
] ( 3, 3 ) long -> rdi "fgMakeTemp is creating a new local variable"
;* V67 tmp54 [V67 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V
68 tmp55
[V
68,T43
] ( 4, 4 ) long -> rsi "fgMakeTemp is creating a new local variable"
; V68 tmp55 [V68,T47
] ( 3, 6 ) ref -> rax class-hnd exact "Inline return value spill temp" <System.String>
; V
69
cse0 [V
69
,T1
3
] ( 5, 10 ) long -> rax "CSE #02: moderate"
;
V69
tmp
56
[
V69
,T1
3
] ( 5, 20 ) ref -> r12 class-hnd exact "Inlining Arg" <System.String>
;
V70
cse1 [
V70
,T1
1
] ( 5, 14 ) long -> r14 "CSE #
07
: moderate"
;
V70 tmp57
[
V70
,T03] ( 8, 32 ) int -> r14 "Inlining Arg"
;
V71
cse2 [
V71,T52
] ( 4, 2 ) long -> rsi "CSE #
11
: conservative"
;*
V71 tmp58
[
V71
] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;
V72
cse3 [
V72,T36
] (
3, 6
) int ->
rdi
"CSE #03: moderate"
;
V72 tmp59
[
V72,T32
] ( 4, 8 ) int -> rdx "Inline return value spill temp"
;
V73
cse4 [
V73,T37
] (
3, 6
) int ->
rdi
"CSE #
04
: moderate"
;
V73 tmp60
[
V73,T41
] ( 2, 8 ) int -> rdx "Inlining Arg"
;
V74
cse5 [
V74,T38
] (
3, 6
) int ->
rdi
"CSE #
09
: moderate"
;*
V74 tmp61
[
V74
] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;
V75
cse6 [
V75,T39
] ( 3, 6 ) int -> rdi "CSE #
10: moderate
"
; V
75 tmp62
[V
75,T37
] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V
76
rat0 [V
76,T06
] ( 8, 20.50) long -> r14 "Widened IV V10"
;
V76 tmp63
[
V76,T33
] ( 4, 8 ) int -> rax "Inline return value spill temp"
;
V77
rat1 [
V77
,T04] ( 9, 26.50) long -> r15 "Widened IV V12"
;*
V77
tmp
64
[
V77
] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;
V78
rat2 [
V78,T46
] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;* V
78 tmp65
[V
78
] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;
V79
rat3
[V79,T47
] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;*
V79 tmp66
[
V79
] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;
V80
rat4
[V80,T48
] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;*
V80
tmp
67
[
V80
] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;
V81
rat5
[V81,T49
] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;
V81 tmp68
[
V81,T63
] ( 4, 2 ) long -> rsi "Inline stloc first use temp"
;
V82
rat6
[V82,T50
] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;
V82 tmp69
[
V82,T51
] ( 2, 4.50) long -> r15 "field V09._dateData (fldOffset=0x0)" P-INDEP
;
V83 tmp70
[
V83,T65
] ( 2, 1 ) long -> rsi "field V15._ticks (fldOffset=0x0)" P-INDEP
;*
V84 tmp71
[
V84,T68
] ( 0, 0 ) long -> zero-ref "field V16._ticks (fldOffset=0x0)" P-INDEP
;
V85 tmp72
[
V85,T42
] ( 2, 8 ) long -> rdi "field
V49
._dateData (fldOffset=0x0)" P-INDEP
;* V
86 tmp73
[V
86
] ( 0, 0 ) long -> zero-ref "field
V50
._dateData (fldOffset=0x0)" P-INDEP
;
V87 tmp74
[
V87,T56
] ( 3, 3 ) long -> rdi "fgMakeTemp is creating a new local variable"
;
V88
tmp
75
[
V88,T57
] ( 3, 3 ) long -> rdi "fgMakeTemp is creating a new local variable"
; V
89 tmp76
[V
89,T52
] ( 4, 4 ) long -> rsi "fgMakeTemp is creating a new local variable"
; V
90
cse0 [V
90
,T1
9
] ( 5, 10 ) long -> rax "CSE #02: moderate"
;
V91
cse1 [
V91
,T1
7
] ( 5, 14 ) long -> r14 "CSE #
14
: moderate"
;
V92
cse2 [
V92,T64
] ( 4, 2 ) long -> rsi "CSE #
21
: conservative"
;
V93
cse3 [
V93,T20
] (
5, 10
) int ->
[rbp-0x6C] spill-single-def
"CSE #03: moderate"
;
V94
cse4 [
V94,T21
] (
5, 10
) int ->
[rbp-0x70] spill-single-def
"CSE #
07
: moderate"
;
V95
cse5 [
V95,T22
] (
5, 10
) int ->
[rbp-0x74] spill-single-def
"CSE #
16
: moderate"
;
V96
cse6 [
V96,T48
] ( 3, 6 ) int -> rdi "CSE #
20: conservative
"
; V
97
rat0 [V
97,T12
] ( 8, 20.50) long -> r14 "Widened IV V10"
;
V98
rat1 [
V98
,T04] ( 9, 26.50) long -> r15 "Widened IV V12"
;
V99
rat2 [
V99,T58
] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;
V100
rat3
[V100,T59
] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;
V101
rat4
[V101,T60
] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;
V102
rat5
[V102,T61
] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;
V103
rat6
[V103,T62
] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;
;
Copy
Copied
Copy
Copied
; Lcl frame size =
56
; Lcl frame size =
120
G_M41263_IG01:
G_M41263_IG01:
push rbp
push rbp
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rbx
push rbx
Copy
Copied
Copy
Copied
sub rsp,
56
sub rsp,
120
lea rbp, [rsp+0x
6
0]
lea rbp, [rsp+0x
A
0]
vxorps xmm8, xmm8, xmm8
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x50], ymm8
vmovdqu ymmword ptr [rbp-0x50], ymm8
xor eax, eax
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov qword ptr [rbp-0x30], rax
mov rbx, rdi
mov rbx, rdi
mov r14, rsi
mov r14, rsi
mov r15, rdx
mov r15, rdx
mov r13d, ecx
mov r13d, ecx
Copy
Copied
Copy
Copied
;; size=
47
bbWeight=1 PerfScore 11.33
;; size=
50
bbWeight=1 PerfScore 11.33
G_M41263_IG02:
G_M41263_IG02:
lea rdi, bword ptr [rbx+0x08]
lea rdi, bword ptr [rbx+0x08]
mov rsi, r15
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [rbx+0x49], 1
mov byte ptr [rbx+0x49], 1
mov rdi, r15
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:IsUtcAlias(System.String):ubyte
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:IsUtcAlias(System.String):ubyte
call [rax]System.TimeZoneInfo:IsUtcAlias(System.String):ubyte
call [rax]System.TimeZoneInfo:IsUtcAlias(System.String):ubyte
test eax, eax
test eax, eax
Copy
Copied
Copy
Copied
jne G_M41263_IG
34
jne G_M41263_IG
47
;; size=39 bbWeight=1 PerfScore 7.50
;; size=39 bbWeight=1 PerfScore 7.50
G_M41263_IG03:
G_M41263_IG03:
lea r9, [rbp-0x50]
lea r9, [rbp-0x50]
lea rsi, [rbp-0x30]
lea rsi, [rbp-0x30]
lea rdx, [rbp-0x38]
lea rdx, [rbp-0x38]
lea rcx, [rbp-0x40]
lea rcx, [rbp-0x40]
lea r8, [rbp-0x48]
lea r8, [rbp-0x48]
mov rdi, r14
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:TZif_ParseRaw(ubyte[],byref,byref,byref,byref,byref)
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:TZif_ParseRaw(ubyte[],byref,byref,byref,byref,byref)
call [rax]System.TimeZoneInfo:TZif_ParseRaw(ubyte[],byref,byref,byref,byref,byref)
call [rax]System.TimeZoneInfo:TZif_ParseRaw(ubyte[],byref,byref,byref,byref,byref)
mov rax, 0xD1FFAB1E ; code for System.DateTime:get_UtcNow():System.DateTime
mov rax, 0xD1FFAB1E ; code for System.DateTime:get_UtcNow():System.DateTime
call [rax]System.DateTime:get_UtcNow():System.DateTime
call [rax]System.DateTime:get_UtcNow():System.DateTime
mov r15, rax
mov r15, rax
xor r14d, r14d
xor r14d, r14d
Copy
Copied
Copy
Copied
jmp G_M41263_IG1
0
jmp G_M41263_IG1
3
;; size=58 bbWeight=0.50 PerfScore 5.88
;; size=58 bbWeight=0.50 PerfScore 5.88
G_M41263_IG04:
G_M41263_IG04:
mov rcx, gword ptr [rbp-0x48]
mov rcx, gword ptr [rbp-0x48]
Copy
Copied
Copy
Copied
mov gword ptr [rbp-0x
6
0],
rcx
mov rsi, rcx
mov gword ptr [rbp-0x
9
0],
rsi
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp r12d, dword ptr [rdi+0x08]
cmp r12d, dword ptr [rdi+0x08]
Copy
Copied
Copy
Copied
jae G_M41263_
IG39
jae G_M41263_
IG52
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
movzx r12, byte ptr [rdi+rax+0x19]
movzx r12, byte ptr [rdi+rax+0x19]
Copy
Copied
Copy
Copied
mov
edi
, dword ptr [
rcx
+0x08]
mov
eax
, dword ptr [
rsi
+0x08]
mov edx,
edi
mov dword ptr [rbp-0x70], eax
mov edx,
eax
sub edx, r12d
sub edx, r12d
Copy
Copied
Copy
Copied
cmp
edi
, r12d
cmp
eax
, r12d
jb G_M41263_
IG33
jb G_M41263_
IG46
movsxd rdi, r12d
movsxd rdi, r12d
Copy
Copied
Copy
Copied
lea rdi, bword ptr [
rcx
+2*rdi+0x0C]
lea rdi, bword ptr [
rsi
+2*rdi+0x0C]
xor esi, esi
xor esi, esi
Copy
Copied
Copy
Copied
mov r
a
x, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
mov r
c
x, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [r
a
x]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [r
c
x]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
test eax, eax
test eax, eax
jge SHORT G_M41263_IG05
jge SHORT G_M41263_IG05
Copy
Copied
Copy
Copied
mov edx, eax
jmp SHORT G_M41263_IG06
jmp SHORT G_M41263_IG06
Copy
Copied
Copy
Copied
;; size=
79
bbWeight=2 PerfScore
44
.00
;; size=
86
bbWeight=2 PerfScore
46
.00
G_M41263_IG05:
G_M41263_IG05:
Copy
Copied
Copy
Copied
lea
e
d
x,
[rax+
r12
]
add
e
a
x,
r12
d
;; size=
4
bbWeight=2 PerfScore
1.0
0
;; size=
3
bbWeight=2 PerfScore
0.5
0
G_M41263_IG06:
G_M41263_IG06:
Copy
Copied
Copy
Copied
test e
d
x, e
d
x
test e
a
x, e
a
x
jle
SHORT
G_M41263_IG
07
jle
G_M41263_IG
10
mov edx, eax
sub edx, r12d
sub edx, r12d
Copy
Copied
Copy
Copied
mov rdi, g
word ptr [rbp-0x60]
mov edi, r12d
mov esi
, r12d
mov eax, edx
mov rax, 0xD1FFAB1E ; code for System.
String:Substring(int,int):System.String:this
add rdi, rax
call [rax]System.
String:Substring(int,int):System.String:this
mov eax, dword ptr [rbp-0x70]
jmp SHORT G_M41263_IG0
8
mov ecx, eax
;; size=
28
bbWeight=2 PerfScore
16
.00
cmp rdi, rcx
ja G_M41263_IG22
test edx, edx
je SHORT G_M41263_IG08
cmp eax, edx
je SHORT G_M41263_IG07
mov eax, edx
mov q
word ptr [rbp-0x60]
, rax
mov edi, edx
call System.String:FastAllocateString(int):System.String
mov gword ptr [rbp-0x98], rax
mov edi
, r12d
mov r12, gword ptr [rbp-0x90]
lea rsi, bword ptr [r12+2*rdi+0x0C]
mov r12, gword ptr [rbp-0x98]
cmp byte ptr [r12], r12b
lea rdi, bword ptr [r12+0x0C]
mov rdx, qword ptr [rbp-0x60]
add rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.
SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.
SpanHelpers:Memmove(byref,byref,ulong)
mov rsi, r12
jmp SHORT G_M41263_IG0
9
;; size=
118
bbWeight=2 PerfScore
49
.00
G_M41263_IG07:
G_M41263_IG07:
Copy
Copied
Copy
Copied
mov rdi, gword ptr [rbp-0x
6
0]
mov r12, gword ptr [rbp-0x90]
mov rsi, r12
jmp SHORT G_M41263_IG09
;; size=12 bbWeight=2 PerfScore 6.50
G_M41263_IG08:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=2 PerfScore 0.50
G_M41263_IG09:
jmp SHORT G_M41263_IG11
;; size=2 bbWeight=2 PerfScore 4.00
G_M41263_IG10:
mov rdi, gword ptr [rbp-0x
9
0]
mov esi, r12d
mov esi, r12d
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this
call [rax]System.String:Substring(int):System.String:this
call [rax]System.String:Substring(int):System.String:this
Copy
Copied
Copy
Copied
;; size=
19
bbWeight=2 PerfScore 9.
00
mov rsi, rax
G_M41263_
IG08
:
;; size=
25
bbWeight=2 PerfScore 9.
50
G_M41263_
IG11
:
lea rdi, bword ptr [rbx+0x40]
lea rdi, bword ptr [rbx+0x40]
Copy
Copied
Copy
Copied
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
Copy
Copied
Copy
Copied
;; size=
12
bbWeight=2 PerfScore 3.
50
;; size=
9
bbWeight=2 PerfScore 3.
00
G_M41263_
IG09
:
G_M41263_
IG12
:
inc r14d
inc r14d
;; size=3 bbWeight=2 PerfScore 0.50
;; size=3 bbWeight=2 PerfScore 0.50
Copy
Copied
Copy
Copied
G_M41263_IG1
0
:
G_M41263_IG1
3
:
mov rdi, gword ptr [rbp-0x30]
mov rdi, gword ptr [rbp-0x30]
cmp dword ptr [rdi+0x08], r14d
cmp dword ptr [rdi+0x08], r14d
Copy
Copied
Copy
Copied
jle G_M41263_
IG16
jle G_M41263_
IG24
mov rdi, gword ptr [rbp-0x30]
mov rdi, gword ptr [rbp-0x30]
cmp r14d, dword ptr [rdi+0x08]
cmp r14d, dword ptr [rdi+0x08]
Copy
Copied
Copy
Copied
jae G_M41263_
IG39
jae G_M41263_
IG52
mov rdi, gword ptr [rbp-0x30]
mov rdi, gword ptr [rbp-0x30]
mov rdi, qword ptr [rdi+8*r14+0x10]
mov rdi, qword ptr [rdi+8*r14+0x10]
mov rdx, 0xD1FFAB1E
mov rdx, 0xD1FFAB1E
and rdi, rdx
and rdi, rdx
and rdx, r15
and rdx, r15
cmp rdi, rdx
cmp rdi, rdx
Copy
Copied
Copy
Copied
jg G_M41263_
IG16
jg G_M41263_
IG24
;; size=62 bbWeight=4 PerfScore 60.00
;; size=62 bbWeight=4 PerfScore 60.00
Copy
Copied
Copy
Copied
G_M41263_IG1
1
:
G_M41263_IG1
4
:
mov rdi, gword ptr [rbp-0x38]
mov rdi, gword ptr [rbp-0x38]
cmp r14d, dword ptr [rdi+0x08]
cmp r14d, dword ptr [rdi+0x08]
Copy
Copied
Copy
Copied
jae G_M41263_
IG39
jae G_M41263_
IG52
mov rdi, gword ptr [rbp-0x38]
mov rdi, gword ptr [rbp-0x38]
movzx r12, byte ptr [rdi+r14+0x10]
movzx r12, byte ptr [rdi+r14+0x10]
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp r12d, dword ptr [rdi+0x08]
cmp r12d, dword ptr [rdi+0x08]
Copy
Copied
Copy
Copied
jae G_M41263_
IG39
jae G_M41263_
IG52
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
mov eax, r12d
mov eax, r12d
shl rax, 4
shl rax, 4
cmp byte ptr [rdi+rax+0x18], 0
cmp byte ptr [rdi+rax+0x18], 0
jne G_M41263_IG04
jne G_M41263_IG04
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp r12d, dword ptr [rdi+0x08]
cmp r12d, dword ptr [rdi+0x08]
Copy
Copied
Copy
Copied
jae G_M41263_
IG39
jae G_M41263_
IG52
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
mov rdi, qword ptr [rdi+rax+0x10]
mov rdi, qword ptr [rdi+rax+0x10]
mov qword ptr [rbx+0x50], rdi
mov qword ptr [rbx+0x50], rdi
mov rcx, gword ptr [rbp-0x48]
mov rcx, gword ptr [rbp-0x48]
Copy
Copied
Copy
Copied
mov gword ptr [rbp-0x
58
],
rcx
mov rsi, rcx
mov gword ptr [rbp-0x
80
],
rsi
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp r12d, dword ptr [rdi+0x08]
cmp r12d, dword ptr [rdi+0x08]
Copy
Copied
Copy
Copied
jae G_M41263_
IG39
jae G_M41263_
IG52
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
movzx r12, byte ptr [rdi+rax+0x19]
movzx r12, byte ptr [rdi+rax+0x19]
Copy
Copied
Copy
Copied
mov
edi
, dword ptr [
rcx
+0x08]
mov
eax
, dword ptr [
rsi
+0x08]
mov edx,
edi
mov dword ptr [rbp-0x6C], eax
mov edx,
eax
sub edx, r12d
sub edx, r12d
Copy
Copied
Copy
Copied
cmp
edi
, r12d
cmp
eax
, r12d
jb G_M41263_
IG33
jb G_M41263_
IG46
movsxd rdi, r12d
movsxd rdi, r12d
Copy
Copied
Copy
Copied
lea rdi, bword ptr [
rcx
+2*rdi+0x0C]
lea rdi, bword ptr [
rsi
+2*rdi+0x0C]
xor esi, esi
xor esi, esi
Copy
Copied
Copy
Copied
mov r
a
x, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
mov r
c
x, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [r
a
x]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [r
c
x]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
test eax, eax
test eax, eax
Copy
Copied
Copy
Copied
jge SHORT G_M41263_
IG12
jge SHORT G_M41263_
IG15
jmp SHORT G_M41263_IG16
;; size=170 bbWeight=2 PerfScore 101.50
G_M41263_IG15:
add eax, r12d
;; size=3 bbWeight=2 PerfScore 0.50
G_M41263_IG16:
test eax, eax
jle G_M41263_IG20
mov edx, eax
mov edx, eax
Copy
Copied
Copy
Copied
jmp SHORT G_M41263_IG13
;; size=166 bbWeight=2 PerfScore 99.50
G_M41263_IG12:
lea edx, [rax+r12]
;; size=4 bbWeight=2 PerfScore 1.00
G_M41263_IG13:
test edx, edx
jle SHORT G_M41263_IG14
sub edx, r12d
sub edx, r12d
Copy
Copied
Copy
Copied
mov rdi, g
word ptr [rbp-0x58]
mov edi, r12d
mov esi
, r12d
mov eax, edx
mov rax, 0xD1FFAB1E ; code for System.
String:Substring(int,int):System.String:this
add rdi, rax
call [rax]System.
String:Substring(int,int):System.String:this
mov eax, dword ptr [rbp-0x6C]
jmp SHORT G_M41263_
IG15
mov ecx, eax
;; size=2
8
bbWeight=2 PerfScore
16
.00
cmp rdi, rcx
G_M41263_
IG14
:
ja G_M41263_IG23
mov rdi, gword ptr [rbp-0x
58
]
test edx, edx
je SHORT G_M41263_IG18
cmp eax, edx
je SHORT G_M41263_IG17
mov eax, edx
mov q
word ptr [rbp-0x58]
, rax
mov edi, edx
call System.String:FastAllocateString(int):System.String
mov gword ptr [rbp-0x88], rax
mov edi
, r12d
mov r12, gword ptr [rbp-0x80]
lea rsi, bword ptr [r12+2*rdi+0x0C]
mov r12, gword ptr [rbp-0x88]
cmp byte ptr [r12], r12b
lea rdi, bword ptr [r12+0x0C]
mov rdx, qword ptr [rbp-0x58]
add rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.
SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.
SpanHelpers:Memmove(byref,byref,ulong)
mov rsi, r12
jmp SHORT G_M41263_IG19
;; size=115 bbWeight=2 PerfScore 49.00
G_M41263_IG17:
mov r12, gword ptr [rbp-0x80]
mov rsi, r12
jmp SHORT G_M41263_
IG19
;; size=9 bbWeight=2 PerfScore 6.50
G_M41263_IG18:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=2 PerfScore 0.50
G_M41263_IG19:
jmp SHORT G_M41263_IG21
;; size=2
bbWeight=2 PerfScore
4
.00
G_M41263_
IG20
:
mov rdi, gword ptr [rbp-0x
80
]
mov esi, r12d
mov esi, r12d
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this
call [rax]System.String:Substring(int):System.String:this
call [rax]System.String:Substring(int):System.String:this
Copy
Copied
Copy
Copied
;; size=
19
bbWeight=2 PerfScore 9.
00
mov rsi, rax
G_M41263_IG
15
:
;; size=
22
bbWeight=2 PerfScore 9.
50
G_M41263_IG
21
:
lea rdi, bword ptr [rbx+0x38]
lea rdi, bword ptr [rbx+0x38]
Copy
Copied
Copy
Copied
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
Copy
Copied
Copy
Copied
jmp G_M41263_
IG09
jmp G_M41263_
IG12
;; size=
17
bbWeight=2 PerfScore 7.
50
;; size=
14
bbWeight=2 PerfScore 7.
00
G_M41263_
IG16:
G_M41263_
IG22:
mov rdi, gword ptr [rbp-0x90]
mov esi, r12d
mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this
call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this
int3
;; size=23 bbWeight=0.50 PerfScore 2.38
G_M41263_IG23:
mov rdi, gword ptr [rbp-0x80]
mov esi, r12d
mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this
call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this
int3
;; size=20 bbWeight=0.50 PerfScore 2.38
G_M41263_IG24:
mov rdi, gword ptr [rbp-0x30]
mov rdi, gword ptr [rbp-0x30]
cmp dword ptr [rdi+0x08], 0
cmp dword ptr [rdi+0x08], 0
Copy
Copied
Copy
Copied
jne G_M41263_
IG29
jne G_M41263_
IG40
xor r15d, r15d
xor r15d, r15d
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp dword ptr [rdi+0x08], 0
cmp dword ptr [rdi+0x08], 0
Copy
Copied
Copy
Copied
jle G_M41263_
IG29
jle G_M41263_
IG40
;; size=31 bbWeight=0.50 PerfScore 5.12
;; size=31 bbWeight=0.50 PerfScore 5.12
Copy
Copied
Copy
Copied
G_M41263_
IG17
:
G_M41263_
IG25
:
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp r15d, dword ptr [rdi+0x08]
cmp r15d, dword ptr [rdi+0x08]
Copy
Copied
Copy
Copied
jae G_M41263_
IG39
jae G_M41263_
IG52
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
mov r14, r15
mov r14, r15
shl r14, 4
shl r14, 4
cmp byte ptr [rdi+r14+0x18], 0
cmp byte ptr [rdi+r14+0x18], 0
Copy
Copied
Copy
Copied
je G_M41263_IG
23
je G_M41263_IG
31
;; size=37 bbWeight=4 PerfScore 43.00
;; size=37 bbWeight=4 PerfScore 43.00
Copy
Copied
Copy
Copied
G_M41263_
IG18
:
G_M41263_
IG26
:
mov r12, gword ptr [rbp-0x48]
mov r12, gword ptr [rbp-0x48]
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp r15d, dword ptr [rdi+0x08]
cmp r15d, dword ptr [rdi+0x08]
Copy
Copied
Copy
Copied
jae G_M41263_
IG39
jae G_M41263_
IG52
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
movzx r14, byte ptr [rdi+r14+0x19]
movzx r14, byte ptr [rdi+r14+0x19]
mov edi, dword ptr [r12+0x08]
mov edi, dword ptr [r12+0x08]
mov edx, edi
mov edx, edi
sub edx, r14d
sub edx, r14d
cmp edi, r14d
cmp edi, r14d
Copy
Copied
Copy
Copied
jb G_M41263_
IG33
jb G_M41263_
IG46
movsxd rdi, r14d
movsxd rdi, r14d
lea rdi, bword ptr [r12+2*rdi+0x0C]
lea rdi, bword ptr [r12+2*rdi+0x0C]
xor esi, esi
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [rax]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [rax]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
test eax, eax
test eax, eax
Copy
Copied
Copy
Copied
jge SHORT G_M41263_
IG19
jge SHORT G_M41263_
IG27
mov edx, eax
mov edx, eax
Copy
Copied
Copy
Copied
jmp SHORT G_M41263_IG2
0
jmp SHORT G_M41263_IG2
8
;; size=77 bbWeight=2 PerfScore 42.00
;; size=77 bbWeight=2 PerfScore 42.00
Copy
Copied
Copy
Copied
G_M41263_
IG19
:
G_M41263_
IG27
:
lea edx, [rax+r14]
lea edx, [rax+r14]
;; size=4 bbWeight=2 PerfScore 1.00
;; size=4 bbWeight=2 PerfScore 1.00
Copy
Copied
Copy
Copied
G_M41263_IG2
0
:
G_M41263_IG2
8
:
test edx, edx
test edx, edx
Copy
Copied
Copy
Copied
jle SHORT G_M41263_IG2
1
jle SHORT G_M41263_IG2
9
sub edx, r14d
sub edx, r14d
mov rdi, r12
mov rdi, r12
mov esi, r14d
mov esi, r14d
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this
call [rax]System.String:Substring(int,int):System.String:this
call [rax]System.String:Substring(int,int):System.String:this
Copy
Copied
Copy
Copied
jmp SHORT G_M41263_
IG22
jmp SHORT G_M41263_
IG30
;; size=27 bbWeight=2 PerfScore 14.50
;; size=27 bbWeight=2 PerfScore 14.50
Copy
Copied
Copy
Copied
G_M41263_IG2
1
:
G_M41263_IG2
9
:
mov rdi, r12
mov rdi, r12
mov esi, r14d
mov esi, r14d
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this
call [rax]System.String:Substring(int):System.String:this
call [rax]System.String:Substring(int):System.String:this
;; size=18 bbWeight=2 PerfScore 7.50
;; size=18 bbWeight=2 PerfScore 7.50
Copy
Copied
Copy
Copied
G_M41263_
IG22
:
G_M41263_
IG30
:
lea rdi, bword ptr [rbx+0x40]
lea rdi, bword ptr [rbx+0x40]
mov rsi, rax
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
Copy
Copied
Copy
Copied
jmp G_M41263_
IG28
jmp G_M41263_
IG39
;; size=17 bbWeight=2 PerfScore 7.50
;; size=17 bbWeight=2 PerfScore 7.50
Copy
Copied
Copy
Copied
G_M41263_IG
23
:
G_M41263_IG
31
:
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp r15d, dword ptr [rdi+0x08]
cmp r15d, dword ptr [rdi+0x08]
Copy
Copied
Copy
Copied
jae G_M41263_
IG39
jae G_M41263_
IG52
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
mov rdi, qword ptr [rdi+r14+0x10]
mov rdi, qword ptr [rdi+r14+0x10]
mov qword ptr [rbx+0x50], rdi
mov qword ptr [rbx+0x50], rdi
mov r12, gword ptr [rbp-0x48]
mov r12, gword ptr [rbp-0x48]
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp r15d, dword ptr [rdi+0x08]
cmp r15d, dword ptr [rdi+0x08]
Copy
Copied
Copy
Copied
jae G_M41263_
IG39
jae G_M41263_
IG52
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
movzx r14, byte ptr [rdi+r14+0x19]
movzx r14, byte ptr [rdi+r14+0x19]
Copy
Copied
Copy
Copied
mov
edi
, dword ptr [r12+0x08]
mov
eax
, dword ptr [r12+0x08]
mov edx,
edi
mov dword ptr [rbp-0x74], eax
mov edx,
eax
sub edx, r14d
sub edx, r14d
Copy
Copied
Copy
Copied
cmp
edi
, r14d
cmp
eax
, r14d
jb G_M41263_
IG33
jb G_M41263_
IG46
movsxd rdi, r14d
movsxd rdi, r14d
lea rdi, bword ptr [r12+2*rdi+0x0C]
lea rdi, bword ptr [r12+2*rdi+0x0C]
xor esi, esi
xor esi, esi
Copy
Copied
Copy
Copied
mov r
a
x, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
mov r
c
x, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [r
a
x]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [r
c
x]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
test eax, eax
test eax, eax
Copy
Copied
Copy
Copied
jge SHORT G_M41263_
IG24
jge SHORT G_M41263_
IG32
mov edx, eax
jmp SHORT G_M41263_
IG33
jmp SHORT G_M41263_IG25
;; size=105 bbWeight=2 PerfScore 61.50
;; size=104 bbWeight=2 PerfScore 60.00
G_M41263_IG24:
lea edx, [rax+r14]
;; size=4 bbWeight=2 PerfScore 1.00
G_M41263_IG25:
test edx, edx
jle SHORT G_M41263_IG26
sub edx, r14d
mov rdi, r12
mov esi, r14d
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this
call [rax]System.String:Substring(int,int):System.String:this
jmp SHORT G_M41263_
IG27
;; size=27 bbWeight=2 PerfScore 14.50
G_M41263_IG26:
mov rdi, r12
mov esi, r14d
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this
call [rax]System.String:Substring(int):System.String:this
;; size=18 bbWeight=2 PerfScore 7.50
G_M41263_IG27:
lea rdi, bword ptr [rbx+0x38]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
;; size=12 bbWeight=2 PerfScore 3.50
G_M41263_IG28:
inc r15d
mov rax, gword ptr [rbp-0x40]
cmp dword ptr [rax+0x08], r15d
jg G_M41263_IG17
;; size=17 bbWeight=4 PerfScore 21.00
G_M41263_IG29:
mov rsi, qword ptr [rbx+0x50]
mov rdi, rsi
mov rdx, 0xD1FFAB1E
mov rax, rdx
imul rdx:rax, rdi
mov rax, rdx
shr rax, 63
sar rdx, 26
add rax, rdx
imul rax, rax, 0xD1FFAB1E
sub rdi, rax
je G_M41263_IG30
mov rdx, 0xD1FFAB1E
mov rax, rdx
imul rdx:rax, rsi
mov rdi, rdx
shr rdi, 63
sar rdx, 33
add rdi, rdx
mov rdx, 0xD1FFAB1E
mov rax, rdx
imul rdx:rax, rdi
mov rax, rdx
shr rax, 63
sar rdx, 2
add rax, rdx
lea rax, [rax+2*rax]
shl rax, 3
sub rdi, rax
movsxd rax, edi
imul rdi, rax, 0xE10
mov rdx, 0xD1FFAB1E
mov rax, rdx
imul rdx:rax, rsi
mov rsi, rdx
shr rsi, 63
sar rdx, 26
add rsi, rdx
mov rdx, 0xD1FFAB1E
mov rax, rdx
imul rdx:rax, rsi
add rdx, rsi
mov rcx, rdx
shr rcx, 63
sar rdx, 5
add rdx, rcx
imul rdx, rdx, 60
sub rsi, rdx
movsxd rsi, esi
imul rsi, rsi, 60
add rsi, rdi
mov rdi, 0xD1FFAB1E
cmp rsi, rdi
jg SHORT G_M41263_IG32
mov rdi, 0xD1FFAB1E
cmp rsi, rdi
jl SHORT G_M41263_IG32
imul rsi, rsi, 0xD1FFAB1E
mov qword ptr [rbx+0x50], rsi
;; size=255 bbWeight=0.50 PerfScore 22.50
G_M41263_IG30:
test r13b, r13b
jne SHORT G_M41263_IG31
mov rsi, qword ptr [rbx+0x50]
lea rdi, bword ptr [rbx+0x28]
mov rdx, gword ptr [rbp-0x30]
mov rcx, gword ptr [rbp-0x38]
mov r8, gword ptr [rbp-0x40]
mov r9, gword ptr [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:TZif_GenerateAdjustmentRules(byref,System.TimeSpan,System.DateTime[],ubyte[],System.TimeZoneInfo+TZifType[],System.String)
call [rax]System.TimeZoneInfo:TZif_GenerateAdjustmentRules(byref,System.TimeSpan,System.DateTime[],ubyte[],System.TimeZoneInfo+TZifType[],System.String)
;; size=41 bbWeight=0.50 PerfScore 5.50
G_M41263_IG31:
mov rdi, gword ptr [rbx+0x08]
mov rsi, qword ptr [rbx+0x50]
mov rdx, gword ptr [rbx+0x28]
lea rcx, bword ptr [rbx+0x48]
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:ValidateTimeZoneInfo(System.String,System.TimeSpan,System.TimeZoneInfo+AdjustmentRule[],byref)
call [rax]System.TimeZoneInfo:ValidateTimeZoneInfo(System.String,System.TimeSpan,System.TimeZoneInfo+AdjustmentRule[],byref)
jmp SHORT G_M41263_IG36
;; size=30 bbWeight=0.50 PerfScore 5.88
G_M41263_IG32:
G_M41263_IG32:
Copy
Copied
Copy
Copied
mov
rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_TimeSpanTooLong()
add
eax, r14d
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_TimeSpanTooLong()
;; size=
3 bbWeight=
2
PerfScore
0.50
int3
;; size=
1
3 bbWeight=
0.50
PerfScore
1.75
G_M41263_IG33:
G_M41263_IG33:
Copy
Copied
Copy
Copied
mov edi, 8
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
int3
;; size=20 bbWeight=0.50 PerfScore 2.00
G_M41263_IG34:
xor edi, edi
mov qword ptr [rbx+0x50], rdi
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je SHORT G_M41263_IG38
;; size=21 bbWeight=0.50 PerfScore 2.75
G_M41263_IG35:
mov rdi, 0xD1FFAB1E ; data for System.Array+EmptyArray`1[System.TimeZoneInfo+AdjustmentRule]:Value
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [rbx+0x28]
call CORINFO_HELP_ASSIGN_REF
;; size=22 bbWeight=0.50 PerfScore 1.88
G_M41263_IG36:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M41263_IG37:
Saved diffs
Original text
Open file
; Assembly listing for method System.TimeZoneInfo:.ctor(ubyte[],System.String,ubyte):this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 33 single block inlinees; 13 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T05] ( 20, 21 ) ref -> rbx this class-hnd single-def <System.TimeZoneInfo> ; V01 arg1 [V01,T40] ( 3, 2.50) ref -> r14 class-hnd single-def <ubyte[]> ; V02 arg2 [V02,T31] ( 4, 4 ) ref -> r15 class-hnd single-def <System.String> ; V03 arg3 [V03,T41] ( 3, 2.50) ubyte -> r13 single-def ; V04 loc0 [V04 ] ( 6, 13.50) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.DateTime[]> ; V05 loc1 [V05 ] ( 4, 5 ) ref -> [rbp-0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <ubyte[]> ; V06 loc2 [V06 ] ( 20, 41.50) ref -> [rbp-0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.TimeZoneInfo+TZifType[]> ; V07 loc3 [V07 ] ( 5, 8.50) ref -> [rbp-0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String> ; V08 loc4 [V08 ] ( 2, 1 ) ref -> [rbp-0x50] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String> ;* V09 loc5 [V09 ] ( 0, 0 ) struct ( 8) zero-ref <System.DateTime> ;* V10 loc6 [V10,T54] ( 0, 0 ) int -> zero-ref ; V11 loc7 [V11,T12] ( 6, 12 ) int -> r12 ;* V12 loc8 [V12,T55] ( 0, 0 ) int -> zero-ref ;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty> ;* V14 tmp1 [V14 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ;* V15 tmp2 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan> ;* V16 tmp3 [V16 ] ( 0, 0 ) struct ( 8) zero-ref "folding static readonly field struct" <System.TimeSpan> ; V17 tmp4 [V17,T32] ( 3, 6 ) ref -> rax class-hnd exact "Inline return value spill temp" <System.String> ; V18 tmp5 [V18,T07] ( 5, 20 ) ref -> [rbp-0x58] class-hnd exact spill-single-def "Inlining Arg" <System.String> ; V19 tmp6 [V19,T00] ( 8, 32 ) int -> r12 "Inlining Arg" ;* V20 tmp7 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V21 tmp8 [V21,T14] ( 4, 8 ) int -> rdx "Inline return value spill temp" ; V22 tmp9 [V22,T26] ( 2, 8 ) int -> rdx "Inlining Arg" ;* V23 tmp10 [V23 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V24 tmp11 [V24,T22] ( 2, 8 ) byref -> rdi "Inlining Arg" ; V25 tmp12 [V25,T15] ( 4, 8 ) int -> rax "Inline return value spill temp" ; V26 tmp13 [V26,T33] ( 3, 6 ) ref -> rax class-hnd exact "Inline return value spill temp" <System.String> ; V27 tmp14 [V27,T08] ( 5, 20 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "Inlining Arg" <System.String> ; V28 tmp15 [V28,T01] ( 8, 32 ) int -> r12 "Inlining Arg" ;* V29 tmp16 [V29 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V30 tmp17 [V30,T16] ( 4, 8 ) int -> rdx "Inline return value spill temp" ; V31 tmp18 [V31,T27] ( 2, 8 ) int -> rdx "Inlining Arg" ;* V32 tmp19 [V32 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V33 tmp20 [V33,T23] ( 2, 8 ) byref -> rdi "Inlining Arg" ; V34 tmp21 [V34,T17] ( 4, 8 ) int -> rax "Inline return value spill temp" ;* V35 tmp22 [V35 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime> ;* V36 tmp23 [V36 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime> ;* V37 tmp24 [V37 ] ( 0, 0 ) long -> zero-ref "impAppendStmt" ; V38 tmp25 [V38,T34] ( 3, 6 ) ref -> rax class-hnd exact "Inline return value spill temp" <System.String> ; V39 tmp26 [V39,T09] ( 5, 20 ) ref -> r12 class-hnd exact "Inlining Arg" <System.String> ; V40 tmp27 [V40,T02] ( 8, 32 ) int -> r14 "Inlining Arg" ;* V41 tmp28 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V42 tmp29 [V42,T18] ( 4, 8 ) int -> rdx "Inline return value spill temp" ; V43 tmp30 [V43,T28] ( 2, 8 ) int -> rdx "Inlining Arg" ;* V44 tmp31 [V44 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V45 tmp32 [V45,T24] ( 2, 8 ) byref -> rdi "Inlining Arg" ; V46 tmp33 [V46,T19] ( 4, 8 ) int -> rax "Inline return value spill temp" ; V47 tmp34 [V47,T35] ( 3, 6 ) ref -> rax class-hnd exact "Inline return value spill temp" <System.String> ; V48 tmp35 [V48,T10] ( 5, 20 ) ref -> r12 class-hnd exact "Inlining Arg" <System.String> ; V49 tmp36 [V49,T03] ( 8, 32 ) int -> r14 "Inlining Arg" ;* V50 tmp37 [V50 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V51 tmp38 [V51,T20] ( 4, 8 ) int -> rdx "Inline return value spill temp" ; V52 tmp39 [V52,T29] ( 2, 8 ) int -> rdx "Inlining Arg" ;* V53 tmp40 [V53 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V54 tmp41 [V54,T25] ( 2, 8 ) byref -> rdi "Inlining Arg" ; V55 tmp42 [V55,T21] ( 4, 8 ) int -> rax "Inline return value spill temp" ;* V56 tmp43 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V57 tmp44 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V58 tmp45 [V58 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V59 tmp46 [V59 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ; V60 tmp47 [V60,T51] ( 4, 2 ) long -> rsi "Inline stloc first use temp" ; V61 tmp48 [V61,T42] ( 2, 4.50) long -> r15 "field V09._dateData (fldOffset=0x0)" P-INDEP ; V62 tmp49 [V62,T53] ( 2, 1 ) long -> rsi "field V15._ticks (fldOffset=0x0)" P-INDEP ;* V63 tmp50 [V63,T56] ( 0, 0 ) long -> zero-ref "field V16._ticks (fldOffset=0x0)" P-INDEP ; V64 tmp51 [V64,T30] ( 2, 8 ) long -> rdi "field V35._dateData (fldOffset=0x0)" P-INDEP ;* V65 tmp52 [V65 ] ( 0, 0 ) long -> zero-ref "field V36._dateData (fldOffset=0x0)" P-INDEP ; V66 tmp53 [V66,T44] ( 3, 3 ) long -> rdi "fgMakeTemp is creating a new local variable" ; V67 tmp54 [V67,T45] ( 3, 3 ) long -> rdi "fgMakeTemp is creating a new local variable" ; V68 tmp55 [V68,T43] ( 4, 4 ) long -> rsi "fgMakeTemp is creating a new local variable" ; V69 cse0 [V69,T13] ( 5, 10 ) long -> rax "CSE #02: moderate" ; V70 cse1 [V70,T11] ( 5, 14 ) long -> r14 "CSE #07: moderate" ; V71 cse2 [V71,T52] ( 4, 2 ) long -> rsi "CSE #11: conservative" ; V72 cse3 [V72,T36] ( 3, 6 ) int -> rdi "CSE #03: moderate" ; V73 cse4 [V73,T37] ( 3, 6 ) int -> rdi "CSE #04: moderate" ; V74 cse5 [V74,T38] ( 3, 6 ) int -> rdi "CSE #09: moderate" ; V75 cse6 [V75,T39] ( 3, 6 ) int -> rdi "CSE #10: moderate" ; V76 rat0 [V76,T06] ( 8, 20.50) long -> r14 "Widened IV V10" ; V77 rat1 [V77,T04] ( 9, 26.50) long -> r15 "Widened IV V12" ; V78 rat2 [V78,T46] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable" ; V79 rat3 [V79,T47] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable" ; V80 rat4 [V80,T48] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable" ; V81 rat5 [V81,T49] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable" ; V82 rat6 [V82,T50] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable" ; ; Lcl frame size = 56 G_M41263_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 56 lea rbp, [rsp+0x60] vxorps xmm8, xmm8, xmm8 vmovdqu ymmword ptr [rbp-0x50], ymm8 xor eax, eax mov qword ptr [rbp-0x30], rax mov rbx, rdi mov r14, rsi mov r15, rdx mov r13d, ecx ;; size=47 bbWeight=1 PerfScore 11.33 G_M41263_IG02: lea rdi, bword ptr [rbx+0x08] mov rsi, r15 call CORINFO_HELP_ASSIGN_REF mov byte ptr [rbx+0x49], 1 mov rdi, r15 mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:IsUtcAlias(System.String):ubyte call [rax]System.TimeZoneInfo:IsUtcAlias(System.String):ubyte test eax, eax jne G_M41263_IG34 ;; size=39 bbWeight=1 PerfScore 7.50 G_M41263_IG03: lea r9, [rbp-0x50] lea rsi, [rbp-0x30] lea rdx, [rbp-0x38] lea rcx, [rbp-0x40] lea r8, [rbp-0x48] mov rdi, r14 mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:TZif_ParseRaw(ubyte[],byref,byref,byref,byref,byref) call [rax]System.TimeZoneInfo:TZif_ParseRaw(ubyte[],byref,byref,byref,byref,byref) mov rax, 0xD1FFAB1E ; code for System.DateTime:get_UtcNow():System.DateTime call [rax]System.DateTime:get_UtcNow():System.DateTime mov r15, rax xor r14d, r14d jmp G_M41263_IG10 ;; size=58 bbWeight=0.50 PerfScore 5.88 G_M41263_IG04: mov rcx, gword ptr [rbp-0x48] mov gword ptr [rbp-0x60], rcx mov rdi, gword ptr [rbp-0x40] cmp r12d, dword ptr [rdi+0x08] jae G_M41263_IG39 mov rdi, gword ptr [rbp-0x40] movzx r12, byte ptr [rdi+rax+0x19] mov edi, dword ptr [rcx+0x08] mov edx, edi sub edx, r12d cmp edi, r12d jb G_M41263_IG33 movsxd rdi, r12d lea rdi, bword ptr [rcx+2*rdi+0x0C] xor esi, esi mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int call [rax]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int test eax, eax jge SHORT G_M41263_IG05 mov edx, eax jmp SHORT G_M41263_IG06 ;; size=79 bbWeight=2 PerfScore 44.00 G_M41263_IG05: lea edx, [rax+r12] ;; size=4 bbWeight=2 PerfScore 1.00 G_M41263_IG06: test edx, edx jle SHORT G_M41263_IG07 sub edx, r12d mov rdi, gword ptr [rbp-0x60] mov esi, r12d mov rax, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this call [rax]System.String:Substring(int,int):System.String:this jmp SHORT G_M41263_IG08 ;; size=28 bbWeight=2 PerfScore 16.00 G_M41263_IG07: mov rdi, gword ptr [rbp-0x60] mov esi, r12d mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this call [rax]System.String:Substring(int):System.String:this ;; size=19 bbWeight=2 PerfScore 9.00 G_M41263_IG08: lea rdi, bword ptr [rbx+0x40] mov rsi, rax call CORINFO_HELP_ASSIGN_REF ;; size=12 bbWeight=2 PerfScore 3.50 G_M41263_IG09: inc r14d ;; size=3 bbWeight=2 PerfScore 0.50 G_M41263_IG10: mov rdi, gword ptr [rbp-0x30] cmp dword ptr [rdi+0x08], r14d jle G_M41263_IG16 mov rdi, gword ptr [rbp-0x30] cmp r14d, dword ptr [rdi+0x08] jae G_M41263_IG39 mov rdi, gword ptr [rbp-0x30] mov rdi, qword ptr [rdi+8*r14+0x10] mov rdx, 0xD1FFAB1E and rdi, rdx and rdx, r15 cmp rdi, rdx jg G_M41263_IG16 ;; size=62 bbWeight=4 PerfScore 60.00 G_M41263_IG11: mov rdi, gword ptr [rbp-0x38] cmp r14d, dword ptr [rdi+0x08] jae G_M41263_IG39 mov rdi, gword ptr [rbp-0x38] movzx r12, byte ptr [rdi+r14+0x10] mov rdi, gword ptr [rbp-0x40] cmp r12d, dword ptr [rdi+0x08] jae G_M41263_IG39 mov rdi, gword ptr [rbp-0x40] mov eax, r12d shl rax, 4 cmp byte ptr [rdi+rax+0x18], 0 jne G_M41263_IG04 mov rdi, gword ptr [rbp-0x40] cmp r12d, dword ptr [rdi+0x08] jae G_M41263_IG39 mov rdi, gword ptr [rbp-0x40] mov rdi, qword ptr [rdi+rax+0x10] mov qword ptr [rbx+0x50], rdi mov rcx, gword ptr [rbp-0x48] mov gword ptr [rbp-0x58], rcx mov rdi, gword ptr [rbp-0x40] cmp r12d, dword ptr [rdi+0x08] jae G_M41263_IG39 mov rdi, gword ptr [rbp-0x40] movzx r12, byte ptr [rdi+rax+0x19] mov edi, dword ptr [rcx+0x08] mov edx, edi sub edx, r12d cmp edi, r12d jb G_M41263_IG33 movsxd rdi, r12d lea rdi, bword ptr [rcx+2*rdi+0x0C] xor esi, esi mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int call [rax]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int test eax, eax jge SHORT G_M41263_IG12 mov edx, eax jmp SHORT G_M41263_IG13 ;; size=166 bbWeight=2 PerfScore 99.50 G_M41263_IG12: lea edx, [rax+r12] ;; size=4 bbWeight=2 PerfScore 1.00 G_M41263_IG13: test edx, edx jle SHORT G_M41263_IG14 sub edx, r12d mov rdi, gword ptr [rbp-0x58] mov esi, r12d mov rax, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this call [rax]System.String:Substring(int,int):System.String:this jmp SHORT G_M41263_IG15 ;; size=28 bbWeight=2 PerfScore 16.00 G_M41263_IG14: mov rdi, gword ptr [rbp-0x58] mov esi, r12d mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this call [rax]System.String:Substring(int):System.String:this ;; size=19 bbWeight=2 PerfScore 9.00 G_M41263_IG15: lea rdi, bword ptr [rbx+0x38] mov rsi, rax call CORINFO_HELP_ASSIGN_REF jmp G_M41263_IG09 ;; size=17 bbWeight=2 PerfScore 7.50 G_M41263_IG16: mov rdi, gword ptr [rbp-0x30] cmp dword ptr [rdi+0x08], 0 jne G_M41263_IG29 xor r15d, r15d mov rdi, gword ptr [rbp-0x40] cmp dword ptr [rdi+0x08], 0 jle G_M41263_IG29 ;; size=31 bbWeight=0.50 PerfScore 5.12 G_M41263_IG17: mov rdi, gword ptr [rbp-0x40] cmp r15d, dword ptr [rdi+0x08] jae G_M41263_IG39 mov rdi, gword ptr [rbp-0x40] mov r14, r15 shl r14, 4 cmp byte ptr [rdi+r14+0x18], 0 je G_M41263_IG23 ;; size=37 bbWeight=4 PerfScore 43.00 G_M41263_IG18: mov r12, gword ptr [rbp-0x48] mov rdi, gword ptr [rbp-0x40] cmp r15d, dword ptr [rdi+0x08] jae G_M41263_IG39 mov rdi, gword ptr [rbp-0x40] movzx r14, byte ptr [rdi+r14+0x19] mov edi, dword ptr [r12+0x08] mov edx, edi sub edx, r14d cmp edi, r14d jb G_M41263_IG33 movsxd rdi, r14d lea rdi, bword ptr [r12+2*rdi+0x0C] xor esi, esi mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int call [rax]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int test eax, eax jge SHORT G_M41263_IG19 mov edx, eax jmp SHORT G_M41263_IG20 ;; size=77 bbWeight=2 PerfScore 42.00 G_M41263_IG19: lea edx, [rax+r14] ;; size=4 bbWeight=2 PerfScore 1.00 G_M41263_IG20: test edx, edx jle SHORT G_M41263_IG21 sub edx, r14d mov rdi, r12 mov esi, r14d mov rax, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this call [rax]System.String:Substring(int,int):System.String:this jmp SHORT G_M41263_IG22 ;; size=27 bbWeight=2 PerfScore 14.50 G_M41263_IG21: mov rdi, r12 mov esi, r14d mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this call [rax]System.String:Substring(int):System.String:this ;; size=18 bbWeight=2 PerfScore 7.50 G_M41263_IG22: lea rdi, bword ptr [rbx+0x40] mov rsi, rax call CORINFO_HELP_ASSIGN_REF jmp G_M41263_IG28 ;; size=17 bbWeight=2 PerfScore 7.50 G_M41263_IG23: mov rdi, gword ptr [rbp-0x40] cmp r15d, dword ptr [rdi+0x08] jae G_M41263_IG39 mov rdi, gword ptr [rbp-0x40] mov rdi, qword ptr [rdi+r14+0x10] mov qword ptr [rbx+0x50], rdi mov r12, gword ptr [rbp-0x48] mov rdi, gword ptr [rbp-0x40] cmp r15d, dword ptr [rdi+0x08] jae G_M41263_IG39 mov rdi, gword ptr [rbp-0x40] movzx r14, byte ptr [rdi+r14+0x19] mov edi, dword ptr [r12+0x08] mov edx, edi sub edx, r14d cmp edi, r14d jb G_M41263_IG33 movsxd rdi, r14d lea rdi, bword ptr [r12+2*rdi+0x0C] xor esi, esi mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int call [rax]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int test eax, eax jge SHORT G_M41263_IG24 mov edx, eax jmp SHORT G_M41263_IG25 ;; size=104 bbWeight=2 PerfScore 60.00 G_M41263_IG24: lea edx, [rax+r14] ;; size=4 bbWeight=2 PerfScore 1.00 G_M41263_IG25: test edx, edx jle SHORT G_M41263_IG26 sub edx, r14d mov rdi, r12 mov esi, r14d mov rax, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this call [rax]System.String:Substring(int,int):System.String:this jmp SHORT G_M41263_IG27 ;; size=27 bbWeight=2 PerfScore 14.50 G_M41263_IG26: mov rdi, r12 mov esi, r14d mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this call [rax]System.String:Substring(int):System.String:this ;; size=18 bbWeight=2 PerfScore 7.50 G_M41263_IG27: lea rdi, bword ptr [rbx+0x38] mov rsi, rax call CORINFO_HELP_ASSIGN_REF ;; size=12 bbWeight=2 PerfScore 3.50 G_M41263_IG28: inc r15d mov rax, gword ptr [rbp-0x40] cmp dword ptr [rax+0x08], r15d jg G_M41263_IG17 ;; size=17 bbWeight=4 PerfScore 21.00 G_M41263_IG29: mov rsi, qword ptr [rbx+0x50] mov rdi, rsi mov rdx, 0xD1FFAB1E mov rax, rdx imul rdx:rax, rdi mov rax, rdx shr rax, 63 sar rdx, 26 add rax, rdx imul rax, rax, 0xD1FFAB1E sub rdi, rax je G_M41263_IG30 mov rdx, 0xD1FFAB1E mov rax, rdx imul rdx:rax, rsi mov rdi, rdx shr rdi, 63 sar rdx, 33 add rdi, rdx mov rdx, 0xD1FFAB1E mov rax, rdx imul rdx:rax, rdi mov rax, rdx shr rax, 63 sar rdx, 2 add rax, rdx lea rax, [rax+2*rax] shl rax, 3 sub rdi, rax movsxd rax, edi imul rdi, rax, 0xE10 mov rdx, 0xD1FFAB1E mov rax, rdx imul rdx:rax, rsi mov rsi, rdx shr rsi, 63 sar rdx, 26 add rsi, rdx mov rdx, 0xD1FFAB1E mov rax, rdx imul rdx:rax, rsi add rdx, rsi mov rcx, rdx shr rcx, 63 sar rdx, 5 add rdx, rcx imul rdx, rdx, 60 sub rsi, rdx movsxd rsi, esi imul rsi, rsi, 60 add rsi, rdi mov rdi, 0xD1FFAB1E cmp rsi, rdi jg SHORT G_M41263_IG32 mov rdi, 0xD1FFAB1E cmp rsi, rdi jl SHORT G_M41263_IG32 imul rsi, rsi, 0xD1FFAB1E mov qword ptr [rbx+0x50], rsi ;; size=255 bbWeight=0.50 PerfScore 22.50 G_M41263_IG30: test r13b, r13b jne SHORT G_M41263_IG31 mov rsi, qword ptr [rbx+0x50] lea rdi, bword ptr [rbx+0x28] mov rdx, gword ptr [rbp-0x30] mov rcx, gword ptr [rbp-0x38] mov r8, gword ptr [rbp-0x40] mov r9, gword ptr [rbp-0x50] mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:TZif_GenerateAdjustmentRules(byref,System.TimeSpan,System.DateTime[],ubyte[],System.TimeZoneInfo+TZifType[],System.String) call [rax]System.TimeZoneInfo:TZif_GenerateAdjustmentRules(byref,System.TimeSpan,System.DateTime[],ubyte[],System.TimeZoneInfo+TZifType[],System.String) ;; size=41 bbWeight=0.50 PerfScore 5.50 G_M41263_IG31: mov rdi, gword ptr [rbx+0x08] mov rsi, qword ptr [rbx+0x50] mov rdx, gword ptr [rbx+0x28] lea rcx, bword ptr [rbx+0x48] mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:ValidateTimeZoneInfo(System.String,System.TimeSpan,System.TimeZoneInfo+AdjustmentRule[],byref) call [rax]System.TimeZoneInfo:ValidateTimeZoneInfo(System.String,System.TimeSpan,System.TimeZoneInfo+AdjustmentRule[],byref) jmp SHORT G_M41263_IG36 ;; size=30 bbWeight=0.50 PerfScore 5.88 G_M41263_IG32: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_TimeSpanTooLong() call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_TimeSpanTooLong() int3 ;; size=13 bbWeight=0.50 PerfScore 1.75 G_M41263_IG33: mov edi, 8 xor esi, esi mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int) call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int) int3 ;; size=20 bbWeight=0.50 PerfScore 2.00 G_M41263_IG34: xor edi, edi mov qword ptr [rbx+0x50], rdi mov rdi, 0xD1FFAB1E ; global ptr test byte ptr [rdi], 1 je SHORT G_M41263_IG38 ;; size=21 bbWeight=0.50 PerfScore 2.75 G_M41263_IG35: mov rdi, 0xD1FFAB1E ; data for System.Array+EmptyArray`1[System.TimeZoneInfo+AdjustmentRule]:Value mov rsi, gword ptr [rdi] lea rdi, bword ptr [rbx+0x28] call CORINFO_HELP_ASSIGN_REF ;; size=22 bbWeight=0.50 PerfScore 1.88 G_M41263_IG36: nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M41263_IG37: add rsp, 56 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 G_M41263_IG38: mov rdi, 0xD1FFAB1E ; System.Array+EmptyArray`1[System.TimeZoneInfo+AdjustmentRule] mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GET_GCSTATIC_BASE call [rax]CORINFO_HELP_GET_GCSTATIC_BASE jmp SHORT G_M41263_IG35 ;; size=24 bbWeight=0 PerfScore 0.00 G_M41263_IG39: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 ; Total bytes of code 1426, prolog size 35, PerfScore 566.58, instruction count 352, allocated bytes for code 1426 (MethodHash=af405ed0) for method System.TimeZoneInfo:.ctor(ubyte[],System.String,ubyte):this (FullOpts) ; ============================================================
Changed text
Open file
; Assembly listing for method System.TimeZoneInfo:.ctor(ubyte[],System.String,ubyte):this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 39 single block inlinees; 19 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T11] ( 20, 21 ) ref -> rbx this class-hnd single-def <System.TimeZoneInfo> ; V01 arg1 [V01,T49] ( 3, 2.50) ref -> r14 class-hnd single-def <ubyte[]> ; V02 arg2 [V02,T43] ( 4, 4 ) ref -> r15 class-hnd single-def <System.String> ; V03 arg3 [V03,T50] ( 3, 2.50) ubyte -> r13 single-def ; V04 loc0 [V04 ] ( 6, 13.50) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.DateTime[]> ; V05 loc1 [V05 ] ( 4, 5 ) ref -> [rbp-0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <ubyte[]> ; V06 loc2 [V06 ] ( 20, 41.50) ref -> [rbp-0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.TimeZoneInfo+TZifType[]> ; V07 loc3 [V07 ] ( 5, 8.50) ref -> [rbp-0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String> ; V08 loc4 [V08 ] ( 2, 1 ) ref -> [rbp-0x50] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String> ;* V09 loc5 [V09 ] ( 0, 0 ) struct ( 8) zero-ref <System.DateTime> ;* V10 loc6 [V10,T66] ( 0, 0 ) int -> zero-ref ; V11 loc7 [V11,T18] ( 6, 12 ) int -> r12 ;* V12 loc8 [V12,T67] ( 0, 0 ) int -> zero-ref ;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty> ;* V14 tmp1 [V14 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ;* V15 tmp2 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan> ;* V16 tmp3 [V16 ] ( 0, 0 ) struct ( 8) zero-ref "folding static readonly field struct" <System.TimeSpan> ; V17 tmp4 [V17,T44] ( 3, 6 ) ref -> rsi class-hnd exact "Inline return value spill temp" <System.String> ; V18 tmp5 [V18,T05] ( 7, 25 ) ref -> [rbp-0x80] class-hnd exact spill-single-def "Inlining Arg" <System.String> ; V19 tmp6 [V19,T00] ( 10, 37 ) int -> r12 "Inlining Arg" ;* V20 tmp7 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V21 tmp8 [V21,T26] ( 4, 8 ) int -> rax "Inline return value spill temp" ; V22 tmp9 [V22,T38] ( 2, 8 ) int -> rdx "Inlining Arg" ;* V23 tmp10 [V23 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V24 tmp11 [V24,T34] ( 2, 8 ) byref -> rdi "Inlining Arg" ; V25 tmp12 [V25,T27] ( 4, 8 ) int -> rax "Inline return value spill temp" ; V26 tmp13 [V26,T23] ( 4, 8 ) ref -> rsi class-hnd exact "Inline return value spill temp" <System.String> ; V27 tmp14 [V27,T08] ( 7, 25 ) int -> rdx "Inlining Arg" ;* V28 tmp15 [V28 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ; V29 tmp16 [V29,T53] ( 2, 4 ) long -> [rbp-0x58] spill-single-def "Inline stloc first use temp" ; V30 tmp17 [V30,T14] ( 4, 16 ) ref -> [rbp-0x88] class-hnd exact spill-single-def "dup spill" <System.String> ;* V31 tmp18 [V31 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V32 tmp19 [V32 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ; V33 tmp20 [V33,T45] ( 3, 6 ) ref -> rsi class-hnd exact "Inline return value spill temp" <System.String> ; V34 tmp21 [V34,T06] ( 7, 25 ) ref -> [rbp-0x90] class-hnd exact spill-single-def "Inlining Arg" <System.String> ; V35 tmp22 [V35,T01] ( 10, 37 ) int -> r12 "Inlining Arg" ;* V36 tmp23 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V37 tmp24 [V37,T28] ( 4, 8 ) int -> rax "Inline return value spill temp" ; V38 tmp25 [V38,T39] ( 2, 8 ) int -> rdx "Inlining Arg" ;* V39 tmp26 [V39 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V40 tmp27 [V40,T35] ( 2, 8 ) byref -> rdi "Inlining Arg" ; V41 tmp28 [V41,T29] ( 4, 8 ) int -> rax "Inline return value spill temp" ; V42 tmp29 [V42,T24] ( 4, 8 ) ref -> rsi class-hnd exact "Inline return value spill temp" <System.String> ; V43 tmp30 [V43,T09] ( 7, 25 ) int -> rdx "Inlining Arg" ;* V44 tmp31 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ; V45 tmp32 [V45,T54] ( 2, 4 ) long -> [rbp-0x60] spill-single-def "Inline stloc first use temp" ; V46 tmp33 [V46,T15] ( 4, 16 ) ref -> [rbp-0x98] class-hnd exact spill-single-def "dup spill" <System.String> ;* V47 tmp34 [V47 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V48 tmp35 [V48 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V49 tmp36 [V49 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime> ;* V50 tmp37 [V50 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime> ;* V51 tmp38 [V51 ] ( 0, 0 ) long -> zero-ref "impAppendStmt" ; V52 tmp39 [V52,T46] ( 3, 6 ) ref -> rsi class-hnd exact "Inline return value spill temp" <System.String> ; V53 tmp40 [V53,T07] ( 7, 25 ) ref -> r12 class-hnd exact "Inlining Arg" <System.String> ; V54 tmp41 [V54,T02] ( 10, 37 ) int -> r14 "Inlining Arg" ;* V55 tmp42 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V56 tmp43 [V56,T30] ( 4, 8 ) int -> rax "Inline return value spill temp" ; V57 tmp44 [V57,T40] ( 2, 8 ) int -> rdx "Inlining Arg" ;* V58 tmp45 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V59 tmp46 [V59,T36] ( 2, 8 ) byref -> rdi "Inlining Arg" ; V60 tmp47 [V60,T31] ( 4, 8 ) int -> rax "Inline return value spill temp" ; V61 tmp48 [V61,T25] ( 4, 8 ) ref -> rsi class-hnd exact "Inline return value spill temp" <System.String> ; V62 tmp49 [V62,T10] ( 7, 25 ) int -> rdx "Inlining Arg" ;* V63 tmp50 [V63 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ; V64 tmp51 [V64,T55] ( 2, 4 ) long -> [rbp-0x68] spill-single-def "Inline stloc first use temp" ; V65 tmp52 [V65,T16] ( 4, 16 ) ref -> [rbp-0xA0] class-hnd exact spill-single-def "dup spill" <System.String> ;* V66 tmp53 [V66 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V67 tmp54 [V67 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ; V68 tmp55 [V68,T47] ( 3, 6 ) ref -> rax class-hnd exact "Inline return value spill temp" <System.String> ; V69 tmp56 [V69,T13] ( 5, 20 ) ref -> r12 class-hnd exact "Inlining Arg" <System.String> ; V70 tmp57 [V70,T03] ( 8, 32 ) int -> r14 "Inlining Arg" ;* V71 tmp58 [V71 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V72 tmp59 [V72,T32] ( 4, 8 ) int -> rdx "Inline return value spill temp" ; V73 tmp60 [V73,T41] ( 2, 8 ) int -> rdx "Inlining Arg" ;* V74 tmp61 [V74 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V75 tmp62 [V75,T37] ( 2, 8 ) byref -> rdi "Inlining Arg" ; V76 tmp63 [V76,T33] ( 4, 8 ) int -> rax "Inline return value spill temp" ;* V77 tmp64 [V77 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V78 tmp65 [V78 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V79 tmp66 [V79 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V80 tmp67 [V80 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ; V81 tmp68 [V81,T63] ( 4, 2 ) long -> rsi "Inline stloc first use temp" ; V82 tmp69 [V82,T51] ( 2, 4.50) long -> r15 "field V09._dateData (fldOffset=0x0)" P-INDEP ; V83 tmp70 [V83,T65] ( 2, 1 ) long -> rsi "field V15._ticks (fldOffset=0x0)" P-INDEP ;* V84 tmp71 [V84,T68] ( 0, 0 ) long -> zero-ref "field V16._ticks (fldOffset=0x0)" P-INDEP ; V85 tmp72 [V85,T42] ( 2, 8 ) long -> rdi "field V49._dateData (fldOffset=0x0)" P-INDEP ;* V86 tmp73 [V86 ] ( 0, 0 ) long -> zero-ref "field V50._dateData (fldOffset=0x0)" P-INDEP ; V87 tmp74 [V87,T56] ( 3, 3 ) long -> rdi "fgMakeTemp is creating a new local variable" ; V88 tmp75 [V88,T57] ( 3, 3 ) long -> rdi "fgMakeTemp is creating a new local variable" ; V89 tmp76 [V89,T52] ( 4, 4 ) long -> rsi "fgMakeTemp is creating a new local variable" ; V90 cse0 [V90,T19] ( 5, 10 ) long -> rax "CSE #02: moderate" ; V91 cse1 [V91,T17] ( 5, 14 ) long -> r14 "CSE #14: moderate" ; V92 cse2 [V92,T64] ( 4, 2 ) long -> rsi "CSE #21: conservative" ; V93 cse3 [V93,T20] ( 5, 10 ) int -> [rbp-0x6C] spill-single-def "CSE #03: moderate" ; V94 cse4 [V94,T21] ( 5, 10 ) int -> [rbp-0x70] spill-single-def "CSE #07: moderate" ; V95 cse5 [V95,T22] ( 5, 10 ) int -> [rbp-0x74] spill-single-def "CSE #16: moderate" ; V96 cse6 [V96,T48] ( 3, 6 ) int -> rdi "CSE #20: conservative" ; V97 rat0 [V97,T12] ( 8, 20.50) long -> r14 "Widened IV V10" ; V98 rat1 [V98,T04] ( 9, 26.50) long -> r15 "Widened IV V12" ; V99 rat2 [V99,T58] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable" ; V100 rat3 [V100,T59] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable" ; V101 rat4 [V101,T60] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable" ; V102 rat5 [V102,T61] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable" ; V103 rat6 [V103,T62] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable" ; ; Lcl frame size = 120 G_M41263_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 120 lea rbp, [rsp+0xA0] vxorps xmm8, xmm8, xmm8 vmovdqu ymmword ptr [rbp-0x50], ymm8 xor eax, eax mov qword ptr [rbp-0x30], rax mov rbx, rdi mov r14, rsi mov r15, rdx mov r13d, ecx ;; size=50 bbWeight=1 PerfScore 11.33 G_M41263_IG02: lea rdi, bword ptr [rbx+0x08] mov rsi, r15 call CORINFO_HELP_ASSIGN_REF mov byte ptr [rbx+0x49], 1 mov rdi, r15 mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:IsUtcAlias(System.String):ubyte call [rax]System.TimeZoneInfo:IsUtcAlias(System.String):ubyte test eax, eax jne G_M41263_IG47 ;; size=39 bbWeight=1 PerfScore 7.50 G_M41263_IG03: lea r9, [rbp-0x50] lea rsi, [rbp-0x30] lea rdx, [rbp-0x38] lea rcx, [rbp-0x40] lea r8, [rbp-0x48] mov rdi, r14 mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:TZif_ParseRaw(ubyte[],byref,byref,byref,byref,byref) call [rax]System.TimeZoneInfo:TZif_ParseRaw(ubyte[],byref,byref,byref,byref,byref) mov rax, 0xD1FFAB1E ; code for System.DateTime:get_UtcNow():System.DateTime call [rax]System.DateTime:get_UtcNow():System.DateTime mov r15, rax xor r14d, r14d jmp G_M41263_IG13 ;; size=58 bbWeight=0.50 PerfScore 5.88 G_M41263_IG04: mov rcx, gword ptr [rbp-0x48] mov rsi, rcx mov gword ptr [rbp-0x90], rsi mov rdi, gword ptr [rbp-0x40] cmp r12d, dword ptr [rdi+0x08] jae G_M41263_IG52 mov rdi, gword ptr [rbp-0x40] movzx r12, byte ptr [rdi+rax+0x19] mov eax, dword ptr [rsi+0x08] mov dword ptr [rbp-0x70], eax mov edx, eax sub edx, r12d cmp eax, r12d jb G_M41263_IG46 movsxd rdi, r12d lea rdi, bword ptr [rsi+2*rdi+0x0C] xor esi, esi mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int call [rcx]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int test eax, eax jge SHORT G_M41263_IG05 jmp SHORT G_M41263_IG06 ;; size=86 bbWeight=2 PerfScore 46.00 G_M41263_IG05: add eax, r12d ;; size=3 bbWeight=2 PerfScore 0.50 G_M41263_IG06: test eax, eax jle G_M41263_IG10 mov edx, eax sub edx, r12d mov edi, r12d mov eax, edx add rdi, rax mov eax, dword ptr [rbp-0x70] mov ecx, eax cmp rdi, rcx ja G_M41263_IG22 test edx, edx je SHORT G_M41263_IG08 cmp eax, edx je SHORT G_M41263_IG07 mov eax, edx mov qword ptr [rbp-0x60], rax mov edi, edx call System.String:FastAllocateString(int):System.String mov gword ptr [rbp-0x98], rax mov edi, r12d mov r12, gword ptr [rbp-0x90] lea rsi, bword ptr [r12+2*rdi+0x0C] mov r12, gword ptr [rbp-0x98] cmp byte ptr [r12], r12b lea rdi, bword ptr [r12+0x0C] mov rdx, qword ptr [rbp-0x60] add rdx, rdx mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) call [rax]System.SpanHelpers:Memmove(byref,byref,ulong) mov rsi, r12 jmp SHORT G_M41263_IG09 ;; size=118 bbWeight=2 PerfScore 49.00 G_M41263_IG07: mov r12, gword ptr [rbp-0x90] mov rsi, r12 jmp SHORT G_M41263_IG09 ;; size=12 bbWeight=2 PerfScore 6.50 G_M41263_IG08: mov rsi, 0xD1FFAB1E ; '' ;; size=10 bbWeight=2 PerfScore 0.50 G_M41263_IG09: jmp SHORT G_M41263_IG11 ;; size=2 bbWeight=2 PerfScore 4.00 G_M41263_IG10: mov rdi, gword ptr [rbp-0x90] mov esi, r12d mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this call [rax]System.String:Substring(int):System.String:this mov rsi, rax ;; size=25 bbWeight=2 PerfScore 9.50 G_M41263_IG11: lea rdi, bword ptr [rbx+0x40] call CORINFO_HELP_ASSIGN_REF ;; size=9 bbWeight=2 PerfScore 3.00 G_M41263_IG12: inc r14d ;; size=3 bbWeight=2 PerfScore 0.50 G_M41263_IG13: mov rdi, gword ptr [rbp-0x30] cmp dword ptr [rdi+0x08], r14d jle G_M41263_IG24 mov rdi, gword ptr [rbp-0x30] cmp r14d, dword ptr [rdi+0x08] jae G_M41263_IG52 mov rdi, gword ptr [rbp-0x30] mov rdi, qword ptr [rdi+8*r14+0x10] mov rdx, 0xD1FFAB1E and rdi, rdx and rdx, r15 cmp rdi, rdx jg G_M41263_IG24 ;; size=62 bbWeight=4 PerfScore 60.00 G_M41263_IG14: mov rdi, gword ptr [rbp-0x38] cmp r14d, dword ptr [rdi+0x08] jae G_M41263_IG52 mov rdi, gword ptr [rbp-0x38] movzx r12, byte ptr [rdi+r14+0x10] mov rdi, gword ptr [rbp-0x40] cmp r12d, dword ptr [rdi+0x08] jae G_M41263_IG52 mov rdi, gword ptr [rbp-0x40] mov eax, r12d shl rax, 4 cmp byte ptr [rdi+rax+0x18], 0 jne G_M41263_IG04 mov rdi, gword ptr [rbp-0x40] cmp r12d, dword ptr [rdi+0x08] jae G_M41263_IG52 mov rdi, gword ptr [rbp-0x40] mov rdi, qword ptr [rdi+rax+0x10] mov qword ptr [rbx+0x50], rdi mov rcx, gword ptr [rbp-0x48] mov rsi, rcx mov gword ptr [rbp-0x80], rsi mov rdi, gword ptr [rbp-0x40] cmp r12d, dword ptr [rdi+0x08] jae G_M41263_IG52 mov rdi, gword ptr [rbp-0x40] movzx r12, byte ptr [rdi+rax+0x19] mov eax, dword ptr [rsi+0x08] mov dword ptr [rbp-0x6C], eax mov edx, eax sub edx, r12d cmp eax, r12d jb G_M41263_IG46 movsxd rdi, r12d lea rdi, bword ptr [rsi+2*rdi+0x0C] xor esi, esi mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int call [rcx]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int test eax, eax jge SHORT G_M41263_IG15 jmp SHORT G_M41263_IG16 ;; size=170 bbWeight=2 PerfScore 101.50 G_M41263_IG15: add eax, r12d ;; size=3 bbWeight=2 PerfScore 0.50 G_M41263_IG16: test eax, eax jle G_M41263_IG20 mov edx, eax sub edx, r12d mov edi, r12d mov eax, edx add rdi, rax mov eax, dword ptr [rbp-0x6C] mov ecx, eax cmp rdi, rcx ja G_M41263_IG23 test edx, edx je SHORT G_M41263_IG18 cmp eax, edx je SHORT G_M41263_IG17 mov eax, edx mov qword ptr [rbp-0x58], rax mov edi, edx call System.String:FastAllocateString(int):System.String mov gword ptr [rbp-0x88], rax mov edi, r12d mov r12, gword ptr [rbp-0x80] lea rsi, bword ptr [r12+2*rdi+0x0C] mov r12, gword ptr [rbp-0x88] cmp byte ptr [r12], r12b lea rdi, bword ptr [r12+0x0C] mov rdx, qword ptr [rbp-0x58] add rdx, rdx mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) call [rax]System.SpanHelpers:Memmove(byref,byref,ulong) mov rsi, r12 jmp SHORT G_M41263_IG19 ;; size=115 bbWeight=2 PerfScore 49.00 G_M41263_IG17: mov r12, gword ptr [rbp-0x80] mov rsi, r12 jmp SHORT G_M41263_IG19 ;; size=9 bbWeight=2 PerfScore 6.50 G_M41263_IG18: mov rsi, 0xD1FFAB1E ; '' ;; size=10 bbWeight=2 PerfScore 0.50 G_M41263_IG19: jmp SHORT G_M41263_IG21 ;; size=2 bbWeight=2 PerfScore 4.00 G_M41263_IG20: mov rdi, gword ptr [rbp-0x80] mov esi, r12d mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this call [rax]System.String:Substring(int):System.String:this mov rsi, rax ;; size=22 bbWeight=2 PerfScore 9.50 G_M41263_IG21: lea rdi, bword ptr [rbx+0x38] call CORINFO_HELP_ASSIGN_REF jmp G_M41263_IG12 ;; size=14 bbWeight=2 PerfScore 7.00 G_M41263_IG22: mov rdi, gword ptr [rbp-0x90] mov esi, r12d mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this int3 ;; size=23 bbWeight=0.50 PerfScore 2.38 G_M41263_IG23: mov rdi, gword ptr [rbp-0x80] mov esi, r12d mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this int3 ;; size=20 bbWeight=0.50 PerfScore 2.38 G_M41263_IG24: mov rdi, gword ptr [rbp-0x30] cmp dword ptr [rdi+0x08], 0 jne G_M41263_IG40 xor r15d, r15d mov rdi, gword ptr [rbp-0x40] cmp dword ptr [rdi+0x08], 0 jle G_M41263_IG40 ;; size=31 bbWeight=0.50 PerfScore 5.12 G_M41263_IG25: mov rdi, gword ptr [rbp-0x40] cmp r15d, dword ptr [rdi+0x08] jae G_M41263_IG52 mov rdi, gword ptr [rbp-0x40] mov r14, r15 shl r14, 4 cmp byte ptr [rdi+r14+0x18], 0 je G_M41263_IG31 ;; size=37 bbWeight=4 PerfScore 43.00 G_M41263_IG26: mov r12, gword ptr [rbp-0x48] mov rdi, gword ptr [rbp-0x40] cmp r15d, dword ptr [rdi+0x08] jae G_M41263_IG52 mov rdi, gword ptr [rbp-0x40] movzx r14, byte ptr [rdi+r14+0x19] mov edi, dword ptr [r12+0x08] mov edx, edi sub edx, r14d cmp edi, r14d jb G_M41263_IG46 movsxd rdi, r14d lea rdi, bword ptr [r12+2*rdi+0x0C] xor esi, esi mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int call [rax]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int test eax, eax jge SHORT G_M41263_IG27 mov edx, eax jmp SHORT G_M41263_IG28 ;; size=77 bbWeight=2 PerfScore 42.00 G_M41263_IG27: lea edx, [rax+r14] ;; size=4 bbWeight=2 PerfScore 1.00 G_M41263_IG28: test edx, edx jle SHORT G_M41263_IG29 sub edx, r14d mov rdi, r12 mov esi, r14d mov rax, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this call [rax]System.String:Substring(int,int):System.String:this jmp SHORT G_M41263_IG30 ;; size=27 bbWeight=2 PerfScore 14.50 G_M41263_IG29: mov rdi, r12 mov esi, r14d mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this call [rax]System.String:Substring(int):System.String:this ;; size=18 bbWeight=2 PerfScore 7.50 G_M41263_IG30: lea rdi, bword ptr [rbx+0x40] mov rsi, rax call CORINFO_HELP_ASSIGN_REF jmp G_M41263_IG39 ;; size=17 bbWeight=2 PerfScore 7.50 G_M41263_IG31: mov rdi, gword ptr [rbp-0x40] cmp r15d, dword ptr [rdi+0x08] jae G_M41263_IG52 mov rdi, gword ptr [rbp-0x40] mov rdi, qword ptr [rdi+r14+0x10] mov qword ptr [rbx+0x50], rdi mov r12, gword ptr [rbp-0x48] mov rdi, gword ptr [rbp-0x40] cmp r15d, dword ptr [rdi+0x08] jae G_M41263_IG52 mov rdi, gword ptr [rbp-0x40] movzx r14, byte ptr [rdi+r14+0x19] mov eax, dword ptr [r12+0x08] mov dword ptr [rbp-0x74], eax mov edx, eax sub edx, r14d cmp eax, r14d jb G_M41263_IG46 movsxd rdi, r14d lea rdi, bword ptr [r12+2*rdi+0x0C] xor esi, esi mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int call [rcx]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int test eax, eax jge SHORT G_M41263_IG32 jmp SHORT G_M41263_IG33 ;; size=105 bbWeight=2 PerfScore 61.50 G_M41263_IG32: add eax, r14d ;; size=3 bbWeight=2 PerfScore 0.50 G_M41263_IG33: test eax, eax jle SHORT G_M41263_IG37 mov edx, eax sub edx, r14d mov edi, r14d mov eax, edx add rdi, rax mov eax, dword ptr [rbp-0x74] mov ecx, eax cmp rdi, rcx ja G_M41263_IG42 test edx, edx je SHORT G_M41263_IG35 cmp eax, edx je SHORT G_M41263_IG34 mov eax, edx mov qword ptr [rbp-0x68], rax mov edi, edx call System.String:FastAllocateString(int):System.String mov gword ptr [rbp-0xA0], rax mov edi, r14d lea rsi, bword ptr [r12+2*rdi+0x0C] mov r12, gword ptr [rbp-0xA0] cmp byte ptr [r12], r12b lea rdi, bword ptr [r12+0x0C] mov r14, qword ptr [rbp-0x68] lea rdx, [r14+r14] mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) call [rax]System.SpanHelpers:Memmove(byref,byref,ulong) mov rsi, r12 jmp SHORT G_M41263_IG36 ;; size=108 bbWeight=2 PerfScore 47.50 G_M41263_IG34: mov rsi, r12 jmp SHORT G_M41263_IG36 ;; size=5 bbWeight=2 PerfScore 4.50 G_M41263_IG35: mov rsi, 0xD1FFAB1E ; '' ;; size=10 bbWeight=2 PerfScore 0.50 G_M41263_IG36: jmp SHORT G_M41263_IG38 ;; size=2 bbWeight=2 PerfScore 4.00 G_M41263_IG37: mov rdi, r12 mov esi, r14d mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this call [rax]System.String:Substring(int):System.String:this mov rsi, rax ;; size=21 bbWeight=2 PerfScore 8.00 G_M41263_IG38: lea rdi, bword ptr [rbx+0x38] call CORINFO_HELP_ASSIGN_REF ;; size=9 bbWeight=2 PerfScore 3.00 G_M41263_IG39: inc r15d mov rdi, gword ptr [rbp-0x40] cmp dword ptr [rdi+0x08], r15d jg G_M41263_IG25 ;; size=17 bbWeight=4 PerfScore 21.00 G_M41263_IG40: mov rsi, qword ptr [rbx+0x50] mov rdi, rsi mov rdx, 0xD1FFAB1E mov rax, rdx imul rdx:rax, rdi mov rax, rdx shr rax, 63 sar rdx, 26 add rax, rdx imul rax, rax, 0xD1FFAB1E sub rdi, rax je G_M41263_IG44 mov rdx, 0xD1FFAB1E mov rax, rdx imul rdx:rax, rsi mov rdi, rdx shr rdi, 63 sar rdx, 33 add rdi, rdx mov rdx, 0xD1FFAB1E mov rax, rdx imul rdx:rax, rdi mov rax, rdx shr rax, 63 sar rdx, 2 add rax, rdx lea rax, [rax+2*rax] shl rax, 3 sub rdi, rax movsxd rax, edi imul rdi, rax, 0xE10 mov rdx, 0xD1FFAB1E mov rax, rdx imul rdx:rax, rsi mov rsi, rdx shr rsi, 63 sar rdx, 26 add rsi, rdx mov rdx, 0xD1FFAB1E mov rax, rdx imul rdx:rax, rsi add rdx, rsi mov rcx, rdx shr rcx, 63 sar rdx, 5 add rdx, rcx imul rdx, rdx, 60 sub rsi, rdx movsxd rsi, esi imul rsi, rsi, 60 add rsi, rdi mov rdi, 0xD1FFAB1E cmp rsi, rdi jg SHORT G_M41263_IG41 mov rdi, 0xD1FFAB1E cmp rsi, rdi jge SHORT G_M41263_IG43 ;; size=244 bbWeight=0.50 PerfScore 21.00 G_M41263_IG41: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_TimeSpanTooLong() call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_TimeSpanTooLong() int3 ;; size=13 bbWeight=0.50 PerfScore 1.75 G_M41263_IG42: mov rdi, r12 mov esi, r14d mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this int3 ;; size=19 bbWeight=0.50 PerfScore 2.00 G_M41263_IG43: imul rsi, rsi, 0xD1FFAB1E mov qword ptr [rbx+0x50], rsi ;; size=11 bbWeight=0.50 PerfScore 1.50 G_M41263_IG44: test r13b, r13b jne SHORT G_M41263_IG45 mov rsi, qword ptr [rbx+0x50] lea rdi, bword ptr [rbx+0x28] mov rdx, gword ptr [rbp-0x30] mov rcx, gword ptr [rbp-0x38] mov r8, gword ptr [rbp-0x40] mov r9, gword ptr [rbp-0x50] mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:TZif_GenerateAdjustmentRules(byref,System.TimeSpan,System.DateTime[],ubyte[],System.TimeZoneInfo+TZifType[],System.String) call [rax]System.TimeZoneInfo:TZif_GenerateAdjustmentRules(byref,System.TimeSpan,System.DateTime[],ubyte[],System.TimeZoneInfo+TZifType[],System.String) ;; size=41 bbWeight=0.50 PerfScore 5.50 G_M41263_IG45: mov rdi, gword ptr [rbx+0x08] mov rsi, qword ptr [rbx+0x50] mov rdx, gword ptr [rbx+0x28] lea rcx, bword ptr [rbx+0x48] mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:ValidateTimeZoneInfo(System.String,System.TimeSpan,System.TimeZoneInfo+AdjustmentRule[],byref) call [rax]System.TimeZoneInfo:ValidateTimeZoneInfo(System.String,System.TimeSpan,System.TimeZoneInfo+AdjustmentRule[],byref) jmp SHORT G_M41263_IG49 ;; size=30 bbWeight=0.50 PerfScore 5.88 G_M41263_IG46: mov edi, 8 xor esi, esi mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int) call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int) int3 ;; size=20 bbWeight=0.50 PerfScore 2.00 G_M41263_IG47: xor edi, edi mov qword ptr [rbx+0x50], rdi mov rdi, 0xD1FFAB1E ; global ptr test byte ptr [rdi], 1 je SHORT G_M41263_IG51 ;; size=21 bbWeight=0.50 PerfScore 2.75 G_M41263_IG48: mov rdi, 0xD1FFAB1E ; data for System.Array+EmptyArray`1[System.TimeZoneInfo+AdjustmentRule]:Value mov rsi, gword ptr [rdi] lea rdi, bword ptr [rbx+0x28] call CORINFO_HELP_ASSIGN_REF ;; size=22 bbWeight=0.50 PerfScore 1.88 G_M41263_IG49: nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M41263_IG50: add rsp, 120 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 G_M41263_IG51: mov rdi, 0xD1FFAB1E ; System.Array+EmptyArray`1[System.TimeZoneInfo+AdjustmentRule] mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GET_GCSTATIC_BASE call [rax]CORINFO_HELP_GET_GCSTATIC_BASE jmp SHORT G_M41263_IG48 ;; size=24 bbWeight=0 PerfScore 0.00 G_M41263_IG52: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 ; Total bytes of code 1823, prolog size 38, PerfScore 707.33, instruction count 454, allocated bytes for code 1823 (MethodHash=af405ed0) for method System.TimeZoneInfo:.ctor(ubyte[],System.String,ubyte):this (FullOpts) ; ============================================================
Find difference