238 (11.35 % of base) - System.Version:ParseVersion(System.ReadOnlySpan`1[ushort],ubyte):System.Version
; Assembly listing for method System.Version:ParseVersion(System.ReadOnlySpan`1[ushort],ubyte):System.Version (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 59 single block inlinees; 71 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
; V01 arg1 [V01,T02] ( 10, 6 ) ubyte -> r14 single-def
;* V02 loc0 [V02 ] ( 0, 0 ) int -> zero-ref
; V03 loc1 [V03,T06] ( 8, 4 ) int -> [rbp-0x2C]
; V04 loc2 [V04,T05] ( 10, 5 ) int -> [rbp-0x30]
; V05 loc3 [V05 ] ( 11, 5.50) int -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op
; V06 loc4 [V06 ] ( 10, 5 ) int -> [rbp-0x40] do-not-enreg[X] addr-exposed ld-addr-op
; V07 loc5 [V07 ] ( 5, 2.50) int -> [rbp-0x48] do-not-enreg[X] addr-exposed ld-addr-op
; V08 loc6 [V08 ] ( 7, 3.50) int -> [rbp-0x50] do-not-enreg[X] addr-exposed ld-addr-op
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V10 tmp1 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V11 tmp2 [V11 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V12 tmp3 [V12 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V13 tmp4 [V13,T13] ( 3, 3 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Version>
;* V14 tmp5 [V14 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V15 tmp6 [V15 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V16 tmp7 [V16,T14] ( 3, 3 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Version>
;* V17 tmp8 [V17 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V18 tmp9 [V18 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V19 tmp10 [V19,T15] ( 3, 3 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Version>
;* V20 tmp11 [V20 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V21 tmp12 [V21 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V22 tmp13 [V22,T93] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
; V23 tmp14 [V23,T94] ( 3, 0 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
;* V24 tmp15 [V24 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V25 tmp16 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V26 tmp17 [V26,T46] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
;* V27 tmp18 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V28 tmp19 [V28 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V29 tmp20 [V29,T47] ( 0, 0 ) short -> zero-ref "Inlining Arg"
;* V30 tmp21 [V30 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V31 tmp22 [V31,T04] ( 9, 5.50) int -> r13 "Inline return value spill temp"
;* V32 tmp23 [V32 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V33 tmp24 [V33 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V34 tmp25 [V34 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V35 tmp26 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V36 tmp27 [V36,T08] ( 4, 4 ) int -> rsi "Inlining Arg"
;* V37 tmp28 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V38 tmp29 [V38,T20] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
+; V38 tmp29 [V38,T32] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
; V39 tmp30 [V39,T38] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V40 tmp31 [V40 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V41 tmp32 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V42 tmp33 [V42,T86] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
;* V43 tmp34 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V44 tmp35 [V44 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V45 tmp36 [V45,T87] ( 0, 0 ) short -> zero-ref "Inlining Arg"
;* V46 tmp37 [V46 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V47 tmp38 [V47,T59] ( 3, 1.50) int -> rax "Inline return value spill temp"
+; V47 tmp38 [V47,T71] ( 3, 1.50) int -> rax "Inline return value spill temp"
;* V48 tmp39 [V48 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V49 tmp40 [V49 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V50 tmp41 [V50 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V51 tmp42 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V52 tmp43 [V52,T09] ( 4, 4 ) int -> rsi "Inlining Arg"
;* V53 tmp44 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V54 tmp45 [V54,T21] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
+; V54 tmp45 [V54,T33] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
; V55 tmp46 [V55,T39] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V56 tmp47 [V56 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V57 tmp48 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V58 tmp49 [V58,T88] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
;* V59 tmp50 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V60 tmp51 [V60 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V61 tmp52 [V61,T89] ( 0, 0 ) short -> zero-ref "Inlining Arg"
;* V62 tmp53 [V62 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V63 tmp54 [V63,T60] ( 3, 1.50) int -> rax "Inline return value spill temp"
+; V63 tmp54 [V63,T72] ( 3, 1.50) int -> rax "Inline return value spill temp"
;* V64 tmp55 [V64 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V65 tmp56 [V65 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V66 tmp57 [V66 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V67 tmp58 [V67 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V68 tmp59 [V68,T10] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V69 tmp60 [V69 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V70 tmp61 [V70,T22] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
+; V70 tmp61 [V70,T34] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
; V71 tmp62 [V71,T40] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V72 tmp63 [V72 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V73 tmp64 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V74 tmp65 [V74,T90] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
;* V75 tmp66 [V75 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V76 tmp67 [V76,T79] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V77 tmp68 [V77 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V78 tmp69 [V78,T91] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V79 tmp70 [V79 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V80 tmp71 [V80 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V81 tmp72 [V81 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V82 tmp73 [V82 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V83 tmp74 [V83 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V84 tmp75 [V84,T80] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V85 tmp76 [V85,T23] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-; V86 tmp77 [V86,T67] ( 2, 1 ) ref -> rcx class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V85 tmp76 [V85,T16] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V86 tmp77 [V86,T59] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
; V87 tmp78 [V87 ] ( 2, 1 ) int -> [rbp-0x58] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V88 tmp79 [V88,T61] ( 3, 1 ) int -> rax "Inline stloc first use temp"
+; V88 tmp79 [V88,T73] ( 3, 1 ) int -> rax "Inline stloc first use temp"
;* V89 tmp80 [V89 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V90 tmp81 [V90,T24] ( 2, 2 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-; V91 tmp82 [V91,T68] ( 2, 1 ) ref -> rcx class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V90 tmp81 [V90,T17] ( 3, 3 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V91 tmp82 [V91,T60] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V92 tmp83 [V92 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V93 tmp84 [V93,T41] ( 2, 2 ) int -> rdi "Inlining Arg"
-; V94 tmp85 [V94,T16] ( 3, 3 ) int -> r13 "Inlining Arg"
+; V94 tmp85 [V94,T28] ( 3, 3 ) int -> r13 "Inlining Arg"
;* V95 tmp86 [V95 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V96 tmp87 [V96 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V97 tmp88 [V97,T81] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V98 tmp89 [V98,T25] ( 2, 2 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-; V99 tmp90 [V99,T69] ( 2, 1 ) ref -> rcx class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V98 tmp89 [V98,T18] ( 3, 3 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V99 tmp90 [V99,T61] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
; V100 tmp91 [V100 ] ( 2, 1 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V101 tmp92 [V101,T62] ( 3, 1 ) int -> rax "Inline stloc first use temp"
+; V101 tmp92 [V101,T74] ( 3, 1 ) int -> rax "Inline stloc first use temp"
;* V102 tmp93 [V102 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V103 tmp94 [V103,T26] ( 2, 2 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-; V104 tmp95 [V104,T70] ( 2, 1 ) ref -> rcx class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V103 tmp94 [V103,T19] ( 3, 3 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V104 tmp95 [V104,T62] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V105 tmp96 [V105 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V106 tmp97 [V106,T17] ( 3, 3 ) int -> rdi "Inlining Arg"
-; V107 tmp98 [V107,T18] ( 3, 3 ) int -> r13 "Inlining Arg"
+; V106 tmp97 [V106,T29] ( 3, 3 ) int -> rdi "Inlining Arg"
+; V107 tmp98 [V107,T30] ( 3, 3 ) int -> r13 "Inlining Arg"
;* V108 tmp99 [V108 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V109 tmp100 [V109 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V110 tmp101 [V110,T82] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V111 tmp102 [V111,T27] ( 2, 2 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-; V112 tmp103 [V112,T71] ( 2, 1 ) ref -> rcx class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V111 tmp102 [V111,T20] ( 3, 3 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V112 tmp103 [V112,T63] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
; V113 tmp104 [V113 ] ( 2, 1 ) int -> [rbp-0x68] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V114 tmp105 [V114,T63] ( 3, 1 ) int -> rax "Inline stloc first use temp"
+; V114 tmp105 [V114,T75] ( 3, 1 ) int -> rax "Inline stloc first use temp"
;* V115 tmp106 [V115 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V116 tmp107 [V116,T28] ( 2, 2 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-; V117 tmp108 [V117,T72] ( 2, 1 ) ref -> rcx class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V116 tmp107 [V116,T21] ( 3, 3 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V117 tmp108 [V117,T64] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V118 tmp109 [V118 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V119 tmp110 [V119,T11] ( 4, 4 ) int -> r12 "Inlining Arg"
;* V120 tmp111 [V120 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V121 tmp112 [V121,T29] ( 2, 2 ) byref -> r13 single-def "Inlining Arg"
+; V121 tmp112 [V121,T35] ( 2, 2 ) byref -> r13 single-def "Inlining Arg"
; V122 tmp113 [V122,T42] ( 2, 2 ) int -> rbx "Inlining Arg"
;* V123 tmp114 [V123,T83] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V124 tmp115 [V124,T30] ( 2, 2 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-; V125 tmp116 [V125,T73] ( 2, 1 ) ref -> rcx class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V124 tmp115 [V124,T22] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V125 tmp116 [V125,T65] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
; V126 tmp117 [V126 ] ( 2, 1 ) int -> [rbp-0x70] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V127 tmp118 [V127,T64] ( 3, 1 ) int -> rax "Inline stloc first use temp"
+; V127 tmp118 [V127,T76] ( 3, 1 ) int -> rax "Inline stloc first use temp"
;* V128 tmp119 [V128 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V129 tmp120 [V129,T31] ( 2, 2 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-; V130 tmp121 [V130,T74] ( 2, 1 ) ref -> rcx class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V129 tmp120 [V129,T23] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V130 tmp121 [V130,T66] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V131 tmp122 [V131 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V132 tmp123 [V132,T12] ( 4, 4 ) int -> r13 "Inlining Arg"
;* V133 tmp124 [V133 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V134 tmp125 [V134,T32] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
+; V134 tmp125 [V134,T36] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
; V135 tmp126 [V135,T43] ( 2, 2 ) int -> r12 "Inlining Arg"
;* V136 tmp127 [V136,T84] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V137 tmp128 [V137,T33] ( 2, 2 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-; V138 tmp129 [V138,T75] ( 2, 1 ) ref -> rcx class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V137 tmp128 [V137,T24] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V138 tmp129 [V138,T67] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
; V139 tmp130 [V139 ] ( 2, 1 ) int -> [rbp-0x78] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V140 tmp131 [V140,T65] ( 3, 1 ) int -> rax "Inline stloc first use temp"
+; V140 tmp131 [V140,T77] ( 3, 1 ) int -> rax "Inline stloc first use temp"
;* V141 tmp132 [V141 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V142 tmp133 [V142,T34] ( 2, 2 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-; V143 tmp134 [V143,T76] ( 2, 1 ) ref -> rcx class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V142 tmp133 [V142,T25] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V143 tmp134 [V143,T68] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V144 tmp135 [V144 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V145 tmp136 [V145,T44] ( 2, 2 ) int -> r13 "Inlining Arg"
;* V146 tmp137 [V146 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V147 tmp138 [V147,T35] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
+; V147 tmp138 [V147,T37] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
; V148 tmp139 [V148,T45] ( 2, 2 ) int -> rbx "Inlining Arg"
;* V149 tmp140 [V149,T85] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V150 tmp141 [V150,T36] ( 2, 2 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-; V151 tmp142 [V151,T77] ( 2, 1 ) ref -> rcx class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V150 tmp141 [V150,T26] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V151 tmp142 [V151,T69] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
; V152 tmp143 [V152 ] ( 2, 1 ) int -> [rbp-0x80] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V153 tmp144 [V153,T66] ( 3, 1 ) int -> rax "Inline stloc first use temp"
+; V153 tmp144 [V153,T78] ( 3, 1 ) int -> rax "Inline stloc first use temp"
;* V154 tmp145 [V154 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V155 tmp146 [V155,T37] ( 2, 2 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-; V156 tmp147 [V156,T78] ( 2, 1 ) ref -> rcx class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V155 tmp146 [V155,T27] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V156 tmp147 [V156,T70] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V157 tmp148 [V157 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V158 tmp149 [V158,T07] ( 4, 4 ) ref -> r13 "Single return block return value"
; V159 tmp150 [V159,T01] ( 11, 6.50) byref -> r15 single-def "field V00._reference (fldOffset=0x0)" P-INDEP
; V160 tmp151 [V160,T00] ( 16, 9 ) int -> rbx single-def "field V00._length (fldOffset=0x8)" P-INDEP
;* V161 tmp152 [V161 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
;* V162 tmp153 [V162 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
;* V163 tmp154 [V163 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
;* V164 tmp155 [V164 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
;* V165 tmp156 [V165 ] ( 0, 0 ) byref -> zero-ref single-def "field V12._reference (fldOffset=0x0)" P-INDEP
;* V166 tmp157 [V166 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
;* V167 tmp158 [V167 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
;* V168 tmp159 [V168 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
;* V169 tmp160 [V169 ] ( 0, 0 ) byref -> zero-ref single-def "field V15._reference (fldOffset=0x0)" P-INDEP
;* V170 tmp161 [V170 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
;* V171 tmp162 [V171 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
;* V172 tmp163 [V172 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
;* V173 tmp164 [V173 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
;* V174 tmp165 [V174 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
;* V175 tmp166 [V175 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP
;* V176 tmp167 [V176 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
;* V177 tmp168 [V177 ] ( 0, 0 ) byref -> zero-ref "field V21._reference (fldOffset=0x0)" P-INDEP
;* V178 tmp169 [V178 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
;* V179 tmp170 [V179 ] ( 0, 0 ) byref -> zero-ref single-def "field V25._reference (fldOffset=0x0)" P-INDEP
;* V180 tmp171 [V180 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
;* V181 tmp172 [V181 ] ( 0, 0 ) byref -> zero-ref single-def "field V27._reference (fldOffset=0x0)" P-INDEP
;* V182 tmp173 [V182 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
;* V183 tmp174 [V183 ] ( 0, 0 ) byref -> zero-ref "field V35._reference (fldOffset=0x0)" P-INDEP
;* V184 tmp175 [V184 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
;* V185 tmp176 [V185 ] ( 0, 0 ) byref -> zero-ref single-def "field V37._reference (fldOffset=0x0)" P-INDEP
;* V186 tmp177 [V186 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
;* V187 tmp178 [V187 ] ( 0, 0 ) byref -> zero-ref single-def "field V41._reference (fldOffset=0x0)" P-INDEP
;* V188 tmp179 [V188 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
;* V189 tmp180 [V189 ] ( 0, 0 ) byref -> zero-ref single-def "field V43._reference (fldOffset=0x0)" P-INDEP
;* V190 tmp181 [V190 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
;* V191 tmp182 [V191 ] ( 0, 0 ) byref -> zero-ref "field V51._reference (fldOffset=0x0)" P-INDEP
;* V192 tmp183 [V192 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
;* V193 tmp184 [V193 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP
;* V194 tmp185 [V194 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
;* V195 tmp186 [V195 ] ( 0, 0 ) byref -> zero-ref single-def "field V57._reference (fldOffset=0x0)" P-INDEP
;* V196 tmp187 [V196 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
;* V197 tmp188 [V197 ] ( 0, 0 ) byref -> zero-ref single-def "field V59._reference (fldOffset=0x0)" P-INDEP
;* V198 tmp189 [V198 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
;* V199 tmp190 [V199 ] ( 0, 0 ) byref -> zero-ref "field V67._reference (fldOffset=0x0)" P-INDEP
;* V200 tmp191 [V200 ] ( 0, 0 ) int -> zero-ref "field V67._length (fldOffset=0x8)" P-INDEP
;* V201 tmp192 [V201 ] ( 0, 0 ) byref -> zero-ref single-def "field V69._reference (fldOffset=0x0)" P-INDEP
;* V202 tmp193 [V202 ] ( 0, 0 ) int -> zero-ref "field V69._length (fldOffset=0x8)" P-INDEP
;* V203 tmp194 [V203 ] ( 0, 0 ) byref -> zero-ref single-def "field V73._reference (fldOffset=0x0)" P-INDEP
;* V204 tmp195 [V204 ] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP
;* V205 tmp196 [V205 ] ( 0, 0 ) byref -> zero-ref single-def "field V75._reference (fldOffset=0x0)" P-INDEP
;* V206 tmp197 [V206 ] ( 0, 0 ) int -> zero-ref "field V75._length (fldOffset=0x8)" P-INDEP
;* V207 tmp198 [V207 ] ( 0, 0 ) byref -> zero-ref "field V81._reference (fldOffset=0x0)" P-INDEP
;* V208 tmp199 [V208 ] ( 0, 0 ) int -> zero-ref "field V81._length (fldOffset=0x8)" P-INDEP
; V209 tmp200 [V209,T92] ( 2, 0.50) byref -> [rbp-0x90] spill-single-def "field V82._reference (fldOffset=0x0)" P-INDEP
; V210 tmp201 [V210,T53] ( 4, 1.50) int -> [rbp-0x84] spill-single-def "field V82._length (fldOffset=0x8)" P-INDEP
; V211 tmp202 [V211,T48] ( 4, 1.50) byref -> [rbp-0x98] spill-single-def "field V95._reference (fldOffset=0x0)" P-INDEP
; V212 tmp203 [V212,T54] ( 4, 1.50) int -> r13 "field V95._length (fldOffset=0x8)" P-INDEP
; V213 tmp204 [V213,T49] ( 4, 1.50) byref -> [rbp-0xA0] spill-single-def "field V108._reference (fldOffset=0x0)" P-INDEP
; V214 tmp205 [V214,T55] ( 4, 1.50) int -> r13 "field V108._length (fldOffset=0x8)" P-INDEP
; V215 tmp206 [V215,T50] ( 4, 1.50) byref -> r13 single-def "field V120._reference (fldOffset=0x0)" P-INDEP
; V216 tmp207 [V216,T56] ( 4, 1.50) int -> rbx "field V120._length (fldOffset=0x8)" P-INDEP
; V217 tmp208 [V217,T51] ( 4, 1.50) byref -> r15 single-def "field V133._reference (fldOffset=0x0)" P-INDEP
; V218 tmp209 [V218,T57] ( 4, 1.50) int -> r12 "field V133._length (fldOffset=0x8)" P-INDEP
; V219 tmp210 [V219,T52] ( 4, 1.50) byref -> r15 single-def "field V146._reference (fldOffset=0x0)" P-INDEP
; V220 tmp211 [V220,T58] ( 4, 1.50) int -> rbx "field V146._length (fldOffset=0x8)" P-INDEP
; V221 tmp212 [V221,T95] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
; V222 tmp213 [V222,T96] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V223 tmp214 [V223,T97] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
; V224 tmp215 [V224,T98] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V225 cse0 [V225,T19] ( 4, 2 ) byref -> [rbp-0xA8] spill-single-def "CSE - conservative"
+; V225 cse0 [V225,T31] ( 4, 2 ) byref -> [rbp-0xA8] spill-single-def "CSE - conservative"
; V226 cse1 [V226,T03] ( 14, 7 ) ref -> [rbp-0xB0] multi-def "CSE - aggressive"
;
; Lcl frame size = 136
G_M14102_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 136
lea rbp, [rsp+0xB0]
mov r15, rdi
mov ebx, esi
mov r14d, edx
;; size=33 bbWeight=1 PerfScore 7.50
G_M14102_IG02:
mov esi, 46
mov rdi, r15
mov edx, ebx
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [rax]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
mov r13d, eax
test r13d, r13d
jge SHORT G_M14102_IG06
;; size=30 bbWeight=1 PerfScore 5.50
G_M14102_IG03:
test r14b, r14b
- jne G_M14102_IG26
+ jne G_M14102_IG50
;; size=9 bbWeight=0.50 PerfScore 0.62
G_M14102_IG04:
xor rax, rax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M14102_IG05:
add rsp, 136
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
G_M14102_IG06:
mov r12d, -1
lea esi, [r13+0x01]
cmp esi, ebx
- ja G_M14102_IG33
+ ja G_M14102_IG57
mov edi, esi
lea rax, bword ptr [r15+2*rdi]
mov bword ptr [rbp-0xA8], rax
mov rdi, rax
mov edx, ebx
sub edx, esi
mov esi, 46
mov rcx, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [rcx]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
mov ecx, eax
test ecx, ecx
jl G_M14102_IG09
lea ecx, [rax+r13+0x01]
mov r12d, ecx
lea esi, [r12+0x01]
cmp esi, ebx
- ja G_M14102_IG33
+ ja G_M14102_IG57
mov edi, esi
lea rdi, bword ptr [r15+2*rdi]
mov edx, ebx
sub edx, esi
mov esi, 46
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [rax]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
mov ecx, eax
test ecx, ecx
jl SHORT G_M14102_IG08
mov dword ptr [rbp-0x30], r12d
lea ecx, [rax+r12+0x01]
mov eax, ecx
mov dword ptr [rbp-0x2C], eax
lea edi, [rax+0x01]
cmp edi, ebx
- ja G_M14102_IG33
+ ja G_M14102_IG57
mov esi, edi
lea rsi, bword ptr [r15+2*rsi]
mov edx, ebx
sub edx, edi
mov rdi, rsi
mov esi, 46
mov rcx, 0xD1FFAB1E ; code for System.PackedSpanHelpers:Contains(byref,short,int):ubyte
call [rcx]System.PackedSpanHelpers:Contains(byref,short,int):ubyte
test eax, eax
mov ecx, dword ptr [rbp-0x30]
mov r12d, dword ptr [rbp-0x2C]
je SHORT G_M14102_IG09
test r14b, r14b
- jne G_M14102_IG27
+ jne G_M14102_IG51
;; size=194 bbWeight=0.50 PerfScore 16.62
G_M14102_IG07:
jmp G_M14102_IG04
;; size=5 bbWeight=0.50 PerfScore 1.00
G_M14102_IG08:
mov eax, ecx
mov ecx, r12d
mov r12d, eax
;; size=8 bbWeight=0.25 PerfScore 0.19
G_M14102_IG09:
cmp r13d, ebx
- ja G_M14102_IG33
+ ja G_M14102_IG57
mov bword ptr [rbp-0x90], r15
mov dword ptr [rbp-0x84], r13d
test r14b, r14b
- je SHORT G_M14102_IG10
- mov dword ptr [rbp-0x30], ecx
+ je G_M14102_IG12
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
mov rdi, rsi
mov gword ptr [rbp-0xB0], rdi
mov rsi, rdi
+ test rsi, rsi
+ je SHORT G_M14102_IG10
+ mov dword ptr [rbp-0x30], ecx
mov rdi, rsi
mov rsi, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rsi]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rcx, rax
+ jmp SHORT G_M14102_IG11
+ ;; size=83 bbWeight=0.50 PerfScore 8.00
+G_M14102_IG10:
+ mov dword ptr [rbp-0x30], ecx
+ mov rsi, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rsi]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M14102_IG11:
mov rdi, r15
mov esi, dword ptr [rbp-0x84]
lea r8, [rbp-0x58]
+ mov rcx, rax
mov edx, 7
mov rax, 0xD1FFAB1E ; code for System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
call [rax]System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
test eax, eax
- jne G_M14102_IG28
+ jne G_M14102_IG52
mov edi, dword ptr [rbp-0x58]
mov dword ptr [rbp-0x50], edi
mov edi, dword ptr [rbp-0x50]
mov rsi, 0xD1FFAB1E ; 'input'
mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:ThrowIfNegative[int](int,System.String)
call [rax]System.ArgumentOutOfRangeException:ThrowIfNegative[int](int,System.String)
- jmp SHORT G_M14102_IG11
- ;; size=146 bbWeight=0.50 PerfScore 14.00
-G_M14102_IG10:
- mov dword ptr [rbp-0x30], ecx
+ jmp SHORT G_M14102_IG15
+ ;; size=74 bbWeight=0.50 PerfScore 7.62
+G_M14102_IG12:
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
mov gword ptr [rbp-0xB0], rdi
mov rax, rdi
+ test rax, rax
+ je SHORT G_M14102_IG13
+ mov dword ptr [rbp-0x30], ecx
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rcx, rax
+ jmp SHORT G_M14102_IG14
+ ;; size=48 bbWeight=0.50 PerfScore 5.62
+G_M14102_IG13:
+ mov dword ptr [rbp-0x30], ecx
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M14102_IG14:
mov rdi, r15
mov esi, dword ptr [rbp-0x84]
lea r8, [rbp-0x50]
+ mov rcx, rax
mov edx, 7
mov rax, 0xD1FFAB1E ; code for System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
call [rax]System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
test eax, eax
jne G_M14102_IG04
cmp dword ptr [rbp-0x50], 0
jl G_M14102_IG04
- ;; size=92 bbWeight=0.50 PerfScore 8.88
-G_M14102_IG11:
+ ;; size=51 bbWeight=0.50 PerfScore 4.88
+G_M14102_IG15:
mov eax, dword ptr [rbp-0x30]
cmp eax, -1
- je G_M14102_IG21
+ je G_M14102_IG41
lea edi, [r13+0x01]
mov dword ptr [rbp-0x30], eax
mov ecx, eax
sub ecx, r13d
dec ecx
mov r13d, ecx
mov ecx, r13d
add rdi, rcx
mov ecx, ebx
cmp rdi, rcx
- ja G_M14102_IG33
+ ja G_M14102_IG57
mov rcx, bword ptr [rbp-0xA8]
mov bword ptr [rbp-0x98], rcx
test r14b, r14b
- je SHORT G_M14102_IG12
+ je SHORT G_M14102_IG18
mov rdi, gword ptr [rbp-0xB0]
mov rcx, rdi
+ test rcx, rcx
+ je SHORT G_M14102_IG16
mov rdi, rcx
mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rcx]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rcx, rax
+ jmp SHORT G_M14102_IG17
+ ;; size=97 bbWeight=0.50 PerfScore 9.00
+G_M14102_IG16:
+ mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rcx]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M14102_IG17:
mov rdi, bword ptr [rbp-0x98]
mov esi, r13d
lea r8, [rbp-0x60]
+ mov rcx, rax
mov edx, 7
mov rax, 0xD1FFAB1E ; code for System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
call [rax]System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
test eax, eax
- jne G_M14102_IG29
+ jne G_M14102_IG53
mov edi, dword ptr [rbp-0x60]
mov dword ptr [rbp-0x38], edi
mov edi, dword ptr [rbp-0x38]
mov rsi, 0xD1FFAB1E ; 'input'
mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:ThrowIfNegative[int](int,System.String)
call [rax]System.ArgumentOutOfRangeException:ThrowIfNegative[int](int,System.String)
- jmp SHORT G_M14102_IG13
- ;; size=165 bbWeight=0.50 PerfScore 15.00
-G_M14102_IG12:
+ jmp SHORT G_M14102_IG21
+ ;; size=75 bbWeight=0.50 PerfScore 7.62
+G_M14102_IG18:
mov rdi, gword ptr [rbp-0xB0]
mov rcx, rdi
+ test rcx, rcx
+ je SHORT G_M14102_IG19
mov rdi, rcx
mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rcx]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rcx, rax
+ jmp SHORT G_M14102_IG20
+ ;; size=32 bbWeight=0.50 PerfScore 4.00
+G_M14102_IG19:
+ mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rcx]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M14102_IG20:
mov rdi, bword ptr [rbp-0x98]
mov esi, r13d
lea r8, [rbp-0x38]
+ mov rcx, rax
mov edx, 7
mov rax, 0xD1FFAB1E ; code for System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
call [rax]System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
test eax, eax
jne G_M14102_IG04
cmp dword ptr [rbp-0x38], 0
jl G_M14102_IG04
- ;; size=77 bbWeight=0.50 PerfScore 7.25
-G_M14102_IG13:
+ ;; size=52 bbWeight=0.50 PerfScore 4.88
+G_M14102_IG21:
cmp r12d, -1
- je G_M14102_IG18
+ je G_M14102_IG34
mov r13d, dword ptr [rbp-0x30]
lea edi, [r13+0x01]
mov eax, r12d
sub eax, r13d
dec eax
mov r13d, eax
mov eax, edi
mov ecx, r13d
add rax, rcx
mov ecx, ebx
cmp rax, rcx
- ja G_M14102_IG33
+ ja G_M14102_IG57
lea rax, bword ptr [r15+2*rdi]
mov bword ptr [rbp-0xA0], rax
test r14b, r14b
- je SHORT G_M14102_IG14
+ je SHORT G_M14102_IG24
mov rdi, gword ptr [rbp-0xB0]
mov rcx, rdi
+ test rcx, rcx
+ je SHORT G_M14102_IG22
mov rdi, rcx
mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rcx]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rcx, rax
+ jmp SHORT G_M14102_IG23
+ ;; size=96 bbWeight=0.50 PerfScore 8.38
+G_M14102_IG22:
+ mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rcx]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M14102_IG23:
mov rdi, bword ptr [rbp-0xA0]
mov esi, r13d
lea r8, [rbp-0x68]
+ mov rcx, rax
mov edx, 7
mov rax, 0xD1FFAB1E ; code for System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
call [rax]System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
test eax, eax
- jne G_M14102_IG30
+ jne G_M14102_IG54
mov edi, dword ptr [rbp-0x68]
mov dword ptr [rbp-0x40], edi
mov edi, dword ptr [rbp-0x40]
mov rsi, 0xD1FFAB1E ; 'build'
mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:ThrowIfNegative[int](int,System.String)
call [rax]System.ArgumentOutOfRangeException:ThrowIfNegative[int](int,System.String)
- jmp SHORT G_M14102_IG15
- ;; size=164 bbWeight=0.50 PerfScore 14.38
-G_M14102_IG14:
+ jmp SHORT G_M14102_IG27
+ ;; size=75 bbWeight=0.50 PerfScore 7.62
+G_M14102_IG24:
mov rdi, gword ptr [rbp-0xB0]
mov rcx, rdi
+ test rcx, rcx
+ je SHORT G_M14102_IG25
mov rdi, rcx
mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rcx]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rcx, rax
+ jmp SHORT G_M14102_IG26
+ ;; size=32 bbWeight=0.50 PerfScore 4.00
+G_M14102_IG25:
+ mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rcx]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M14102_IG26:
mov rdi, bword ptr [rbp-0xA0]
mov esi, r13d
lea r8, [rbp-0x40]
+ mov rcx, rax
mov edx, 7
mov rax, 0xD1FFAB1E ; code for System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
call [rax]System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
test eax, eax
jne G_M14102_IG04
cmp dword ptr [rbp-0x40], 0
jl G_M14102_IG04
- ;; size=77 bbWeight=0.50 PerfScore 7.25
-G_M14102_IG15:
+ ;; size=52 bbWeight=0.50 PerfScore 4.88
+G_M14102_IG27:
inc r12d
cmp r12d, ebx
- ja G_M14102_IG33
+ ja G_M14102_IG57
mov edi, r12d
lea r13, bword ptr [r15+2*rdi]
sub ebx, r12d
test r14b, r14b
- je SHORT G_M14102_IG16
+ je SHORT G_M14102_IG30
mov r15, gword ptr [rbp-0xB0]
mov rdi, r15
+ test rdi, rdi
+ je SHORT G_M14102_IG28
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rcx, rax
+ jmp SHORT G_M14102_IG29
+ ;; size=56 bbWeight=0.50 PerfScore 5.75
+G_M14102_IG28:
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M14102_IG29:
mov rdi, r13
mov esi, ebx
lea r8, [rbp-0x70]
+ mov rcx, rax
mov edx, 7
mov rax, 0xD1FFAB1E ; code for System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
call [rax]System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
test eax, eax
- jne G_M14102_IG31
+ jne G_M14102_IG55
mov edi, dword ptr [rbp-0x70]
mov dword ptr [rbp-0x48], edi
mov edi, dword ptr [rbp-0x48]
mov rsi, 0xD1FFAB1E ; 'revision'
mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:ThrowIfNegative[int](int,System.String)
call [rax]System.ArgumentOutOfRangeException:ThrowIfNegative[int](int,System.String)
- jmp SHORT G_M14102_IG17
- ;; size=119 bbWeight=0.50 PerfScore 11.38
-G_M14102_IG16:
+ jmp SHORT G_M14102_IG33
+ ;; size=70 bbWeight=0.50 PerfScore 7.25
+G_M14102_IG30:
mov r15, gword ptr [rbp-0xB0]
mov rdi, r15
+ test rdi, rdi
+ je SHORT G_M14102_IG31
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rcx, rax
+ jmp SHORT G_M14102_IG32
+ ;; size=29 bbWeight=0.50 PerfScore 3.88
+G_M14102_IG31:
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M14102_IG32:
mov rdi, r13
mov esi, ebx
lea r8, [rbp-0x48]
+ mov rcx, rax
mov edx, 7
mov rax, 0xD1FFAB1E ; code for System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
call [rax]System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
test eax, eax
jne G_M14102_IG04
cmp dword ptr [rbp-0x48], 0
jl G_M14102_IG04
- ;; size=69 bbWeight=0.50 PerfScore 6.75
-G_M14102_IG17:
+ ;; size=47 bbWeight=0.50 PerfScore 4.50
+G_M14102_IG33:
mov rdi, 0xD1FFAB1E ; System.Version
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdi, r13
mov esi, dword ptr [rbp-0x50]
mov edx, dword ptr [rbp-0x38]
mov ecx, dword ptr [rbp-0x40]
mov r8d, dword ptr [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Version:.ctor(int,int,int,int):this
call [rax]System.Version:.ctor(int,int,int,int):this
- jmp G_M14102_IG24
+ jmp G_M14102_IG48
;; size=51 bbWeight=0.50 PerfScore 5.50
-G_M14102_IG18:
+G_M14102_IG34:
mov r13d, dword ptr [rbp-0x30]
inc r13d
cmp r13d, ebx
- ja G_M14102_IG33
+ ja G_M14102_IG57
mov edi, r13d
lea r15, bword ptr [r15+2*rdi]
mov r12d, ebx
sub r12d, r13d
test r14b, r14b
- je SHORT G_M14102_IG19
+ je SHORT G_M14102_IG37
mov r13, gword ptr [rbp-0xB0]
mov rdi, r13
+ test rdi, rdi
+ je SHORT G_M14102_IG35
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rcx, rax
+ jmp SHORT G_M14102_IG36
+ ;; size=63 bbWeight=0.50 PerfScore 6.38
+G_M14102_IG35:
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M14102_IG36:
mov rdi, r15
mov esi, r12d
lea r8, [rbp-0x78]
+ mov rcx, rax
mov edx, 7
mov rax, 0xD1FFAB1E ; code for System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
call [rax]System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
test eax, eax
- jne G_M14102_IG32
+ jne G_M14102_IG56
mov edi, dword ptr [rbp-0x78]
mov dword ptr [rbp-0x40], edi
mov edi, dword ptr [rbp-0x40]
mov rsi, 0xD1FFAB1E ; 'build'
mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:ThrowIfNegative[int](int,System.String)
call [rax]System.ArgumentOutOfRangeException:ThrowIfNegative[int](int,System.String)
- jmp SHORT G_M14102_IG20
- ;; size=127 bbWeight=0.50 PerfScore 12.00
-G_M14102_IG19:
+ jmp SHORT G_M14102_IG40
+ ;; size=71 bbWeight=0.50 PerfScore 7.25
+G_M14102_IG37:
mov r13, gword ptr [rbp-0xB0]
mov rdi, r13
+ test rdi, rdi
+ je SHORT G_M14102_IG38
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rcx, rax
+ jmp SHORT G_M14102_IG39
+ ;; size=29 bbWeight=0.50 PerfScore 3.88
+G_M14102_IG38:
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M14102_IG39:
mov rdi, r15
mov esi, r12d
lea r8, [rbp-0x40]
+ mov rcx, rax
mov edx, 7
mov rax, 0xD1FFAB1E ; code for System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
call [rax]System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
test eax, eax
jne G_M14102_IG04
cmp dword ptr [rbp-0x40], 0
jl G_M14102_IG04
- ;; size=70 bbWeight=0.50 PerfScore 6.75
-G_M14102_IG20:
+ ;; size=48 bbWeight=0.50 PerfScore 4.50
+G_M14102_IG40:
mov rdi, 0xD1FFAB1E ; System.Version
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdi, r13
mov esi, dword ptr [rbp-0x50]
mov edx, dword ptr [rbp-0x38]
mov ecx, dword ptr [rbp-0x40]
mov rax, 0xD1FFAB1E ; code for System.Version:.ctor(int,int,int):this
call [rax]System.Version:.ctor(int,int,int):this
- jmp G_M14102_IG24
+ jmp G_M14102_IG48
;; size=47 bbWeight=0.50 PerfScore 5.00
-G_M14102_IG21:
+G_M14102_IG41:
inc r13d
mov r15, bword ptr [rbp-0xA8]
sub ebx, r13d
test r14b, r14b
- je SHORT G_M14102_IG22
+ je SHORT G_M14102_IG44
mov r13, gword ptr [rbp-0xB0]
mov rdi, r13
+ test rdi, rdi
+ je SHORT G_M14102_IG42
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rcx, rax
+ jmp SHORT G_M14102_IG43
+ ;; size=47 bbWeight=0.50 PerfScore 5.25
+G_M14102_IG42:
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M14102_IG43:
mov rdi, r15
mov esi, ebx
lea r8, [rbp-0x80]
+ mov rcx, rax
mov edx, 7
mov rax, 0xD1FFAB1E ; code for System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
call [rax]System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
test eax, eax
- jne G_M14102_IG34
+ jne G_M14102_IG58
mov edi, dword ptr [rbp-0x80]
mov dword ptr [rbp-0x38], edi
mov edi, dword ptr [rbp-0x38]
mov rsi, 0xD1FFAB1E ; 'input'
mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:ThrowIfNegative[int](int,System.String)
call [rax]System.ArgumentOutOfRangeException:ThrowIfNegative[int](int,System.String)
- jmp SHORT G_M14102_IG23
- ;; size=110 bbWeight=0.50 PerfScore 10.88
-G_M14102_IG22:
+ jmp SHORT G_M14102_IG47
+ ;; size=70 bbWeight=0.50 PerfScore 7.25
+G_M14102_IG44:
mov r13, gword ptr [rbp-0xB0]
mov rdi, r13
+ test rdi, rdi
+ je SHORT G_M14102_IG45
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rcx, rax
+ jmp SHORT G_M14102_IG46
+ ;; size=29 bbWeight=0.50 PerfScore 3.88
+G_M14102_IG45:
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M14102_IG46:
mov rdi, r15
mov esi, ebx
lea r8, [rbp-0x38]
+ mov rcx, rax
mov edx, 7
mov rax, 0xD1FFAB1E ; code for System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
call [rax]System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
test eax, eax
jne G_M14102_IG04
cmp dword ptr [rbp-0x38], 0
jl G_M14102_IG04
- ;; size=69 bbWeight=0.50 PerfScore 6.75
-G_M14102_IG23:
+ ;; size=47 bbWeight=0.50 PerfScore 4.50
+G_M14102_IG47:
mov rdi, 0xD1FFAB1E ; System.Version
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdi, r13
mov esi, dword ptr [rbp-0x50]
mov edx, dword ptr [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Version:.ctor(int,int):this
call [rax]System.Version:.ctor(int,int):this
;; size=39 bbWeight=0.50 PerfScore 3.50
-G_M14102_IG24:
+G_M14102_IG48:
mov rax, r13
;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M14102_IG25:
+G_M14102_IG49:
add rsp, 136
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
-G_M14102_IG26:
+G_M14102_IG50:
mov rdi, 0xD1FFAB1E ; System.ArgumentException
call CORINFO_HELP_NEWSFAST
mov r12, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Arg_VersionString():System.String
call [rax]System.SR:get_Arg_VersionString():System.String
mov r15, rax
mov edi, 0x1827
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdx, rax
mov rsi, r15
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this
call [rax]System.ArgumentException:.ctor(System.String,System.String):this
mov rdi, r12
call CORINFO_HELP_THROW
;; size=82 bbWeight=0 PerfScore 0.00
-G_M14102_IG27:
+G_M14102_IG51:
mov rdi, 0xD1FFAB1E ; System.ArgumentException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Arg_VersionString():System.String
call [rax]System.SR:get_Arg_VersionString():System.String
mov r15, rax
mov edi, 0x1827
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdx, rax
mov rsi, r15
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this
call [rax]System.ArgumentException:.ctor(System.String,System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
;; size=82 bbWeight=0 PerfScore 0.00
-G_M14102_IG28:
+G_M14102_IG52:
cmp eax, 1
- jne G_M14102_IG35
+ jne G_M14102_IG59
mov rdi, bword ptr [rbp-0x90]
mov esi, dword ptr [rbp-0x84]
mov rax, 0xD1FFAB1E ; code for System.Number:ThrowFormatException[ushort](System.ReadOnlySpan`1[ushort])
call [rax]System.Number:ThrowFormatException[ushort](System.ReadOnlySpan`1[ushort])
int3
;; size=35 bbWeight=0 PerfScore 0.00
-G_M14102_IG29:
+G_M14102_IG53:
cmp eax, 1
- jne G_M14102_IG35
+ jne G_M14102_IG59
mov rdi, bword ptr [rbp-0x98]
mov esi, r13d
mov rax, 0xD1FFAB1E ; code for System.Number:ThrowFormatException[ushort](System.ReadOnlySpan`1[ushort])
call [rax]System.Number:ThrowFormatException[ushort](System.ReadOnlySpan`1[ushort])
int3
;; size=32 bbWeight=0 PerfScore 0.00
-G_M14102_IG30:
+G_M14102_IG54:
cmp eax, 1
- jne SHORT G_M14102_IG35
+ jne SHORT G_M14102_IG59
mov rdi, bword ptr [rbp-0xA0]
mov esi, r13d
mov rax, 0xD1FFAB1E ; code for System.Number:ThrowFormatException[ushort](System.ReadOnlySpan`1[ushort])
call [rax]System.Number:ThrowFormatException[ushort](System.ReadOnlySpan`1[ushort])
int3
;; size=28 bbWeight=0 PerfScore 0.00
-G_M14102_IG31:
+G_M14102_IG55:
cmp eax, 1
- jne SHORT G_M14102_IG35
+ jne SHORT G_M14102_IG59
mov rdi, r13
mov esi, ebx
mov rax, 0xD1FFAB1E ; code for System.Number:ThrowFormatException[ushort](System.ReadOnlySpan`1[ushort])
call [rax]System.Number:ThrowFormatException[ushort](System.ReadOnlySpan`1[ushort])
int3
;; size=23 bbWeight=0 PerfScore 0.00
-G_M14102_IG32:
+G_M14102_IG56:
cmp eax, 1
- jne SHORT G_M14102_IG35
+ jne SHORT G_M14102_IG59
mov rdi, r15
mov esi, r12d
mov rax, 0xD1FFAB1E ; code for System.Number:ThrowFormatException[ushort](System.ReadOnlySpan`1[ushort])
call [rax]System.Number:ThrowFormatException[ushort](System.ReadOnlySpan`1[ushort])
int3
;; size=24 bbWeight=0 PerfScore 0.00
-G_M14102_IG33:
+G_M14102_IG57:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M14102_IG34:
+G_M14102_IG58:
cmp eax, 1
- jne SHORT G_M14102_IG35
+ jne SHORT G_M14102_IG59
mov rdi, r15
mov esi, ebx
mov rax, 0xD1FFAB1E ; code for System.Number:ThrowFormatException[ushort](System.ReadOnlySpan`1[ushort])
call [rax]System.Number:ThrowFormatException[ushort](System.ReadOnlySpan`1[ushort])
int3
;; size=23 bbWeight=0 PerfScore 0.00
-G_M14102_IG35:
+G_M14102_IG59:
mov rax, 0xD1FFAB1E ; code for System.Number:ThrowOverflowException[int]()
call [rax]System.Number:ThrowOverflowException[int]()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2097, prolog size 25, PerfScore 380.89, instruction count 492, allocated bytes for code 2097 (MethodHash=fb9ec8e9) for method System.Version:ParseVersion(System.ReadOnlySpan`1[ushort],ubyte):System.Version (FullOpts)
+; Total bytes of code 2335, prolog size 25, PerfScore 444.69, instruction count 554, allocated bytes for code 2335 (MethodHash=fb9ec8e9) for method System.Version:ParseVersion(System.ReadOnlySpan`1[ushort],ubyte):System.Version (FullOpts)
181 (6.75 % of base) - System.TimeZoneInfo+StringSerializer:SerializeTransitionTime(System.TimeZoneInfo+TransitionTime,byref)
; Assembly listing for method System.TimeZoneInfo+StringSerializer:SerializeTransitionTime(System.TimeZoneInfo+TransitionTime,byref) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 88 single block inlinees; 76 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T31] ( 6, 4.50) struct (24) [rbp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.TimeZoneInfo+TransitionTime>
+; V00 arg0 [V00,T35] ( 6, 4.50) struct (24) [rbp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.TimeZoneInfo+TransitionTime>
; V01 arg1 [V01,T00] ( 82, 52.50) byref -> rbx single-def
; V02 OutArgs [V02 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) byref -> zero-ref
;* V04 tmp2 [V04 ] ( 0, 0 ) byref -> zero-ref single-def
; V05 tmp3 [V05,T97] ( 2, 2 ) int -> rdi
;* V06 tmp4 [V06 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.DateTime>
;* V07 tmp5 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp6 [V08 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V09 tmp7 [V09 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V10 tmp8 [V10 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V11 tmp9 [V11,T56] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
+; V11 tmp9 [V11,T59] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
;* V12 tmp10 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V13 tmp11 [V13,T57] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
+; V13 tmp11 [V13,T60] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
;* V14 tmp12 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V15 tmp13 [V15,T47] ( 3, 4 ) ushort -> rsi "Inlining Arg"
-; V16 tmp14 [V16,T58] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
+; V15 tmp13 [V15,T50] ( 3, 4 ) ushort -> rsi "Inlining Arg"
+; V16 tmp14 [V16,T61] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
;* V17 tmp15 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V18 tmp16 [V18 ] ( 3, 5 ) struct ( 8) [rbp-0x30] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.DateTime>
;* V19 tmp17 [V19 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.DateTime>
; V20 tmp18 [V20,T88] ( 2, 2 ) byref -> r8 single-def
; V21 tmp19 [V21 ] ( 2, 1.50) int -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V22 tmp20 [V22 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ushort]>
-; V23 tmp21 [V23,T30] ( 3, 5 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Globalization.DateTimeFormatInfo>
+; V23 tmp21 [V23,T34] ( 3, 5 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Globalization.DateTimeFormatInfo>
;* V24 tmp22 [V24 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V25 tmp23 [V25,T13] ( 4, 8 ) int -> rsi "Inlining Arg"
-; V26 tmp24 [V26,T25] ( 3, 6 ) byref -> r9 single-def "Inlining Arg"
+; V25 tmp23 [V25,T16] ( 4, 8 ) int -> rsi "Inlining Arg"
+; V26 tmp24 [V26,T26] ( 3, 6 ) byref -> r9 single-def "Inlining Arg"
;* V27 tmp25 [V27 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V28 tmp26 [V28,T48] ( 2, 4 ) byref -> r9 single-def "Inlining Arg"
-; V29 tmp27 [V29,T49] ( 2, 4 ) int -> rdx "Inlining Arg"
+; V28 tmp26 [V28,T51] ( 2, 4 ) byref -> r9 single-def "Inlining Arg"
+; V29 tmp27 [V29,T52] ( 2, 4 ) int -> rdx "Inlining Arg"
;* V30 tmp28 [V30 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V31 tmp29 [V31 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V32 tmp30 [V32 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V33 tmp31 [V33 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.DateTime>
;* V34 tmp32 [V34 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V35 tmp33 [V35 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.DateTime>
;* V36 tmp34 [V36 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
-; V37 tmp35 [V37,T27] ( 5, 5 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V37 tmp35 [V37,T28] ( 5, 5 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
; V38 tmp36 [V38,T75] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
-; V39 tmp37 [V39,T61] ( 3, 3 ) byref -> rsi single-def "Span.get_Item ptrToSpan"
-; V40 tmp38 [V40,T59] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
+; V39 tmp37 [V39,T64] ( 3, 3 ) byref -> rsi single-def "Span.get_Item ptrToSpan"
+; V40 tmp38 [V40,T62] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
;* V41 tmp39 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V42 tmp40 [V42 ] ( 3, 5 ) int -> [rbp-0x3C] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V43 tmp41 [V43 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
; V44 tmp42 [V44,T89] ( 2, 2 ) byref -> rdi single-def
; V45 tmp43 [V45 ] ( 4, 2 ) int -> [rbp-0x48] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V46 tmp44 [V46 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.Span`1[ushort]>
-; V47 tmp45 [V47,T46] ( 3, 4 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V47 tmp45 [V47,T25] ( 5, 6 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
;* V48 tmp46 [V48 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V49 tmp47 [V49,T14] ( 4, 8 ) int -> rcx "Inlining Arg"
-; V50 tmp48 [V50,T26] ( 3, 6 ) byref -> rax single-def "Inlining Arg"
+; V49 tmp47 [V49,T17] ( 4, 8 ) int -> rcx "Inlining Arg"
+; V50 tmp48 [V50,T27] ( 3, 6 ) byref -> rax single-def "Inlining Arg"
;* V51 tmp49 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V52 tmp50 [V52,T12] ( 4, 6 ) byref -> rax single-def "Inlining Arg"
+; V52 tmp50 [V52,T15] ( 4, 6 ) byref -> rax single-def "Inlining Arg"
; V53 tmp51 [V53,T22] ( 3, 5 ) int -> rdx "Inlining Arg"
;* V54 tmp52 [V54 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V55 tmp53 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V56 tmp54 [V56,T87] ( 3, 2 ) ubyte -> rax "Inline return value spill temp"
;* V57 tmp55 [V57 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V58 tmp56 [V58,T11] ( 6, 8 ) int -> [rbp-0x4C] spill-single-def "Inlining Arg"
+; V58 tmp56 [V58,T14] ( 6, 8 ) int -> [rbp-0x4C] spill-single-def "Inlining Arg"
;* V59 tmp57 [V59 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V60 tmp58 [V60,T142] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V60 tmp58 [V60,T113] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V61 tmp59 [V61 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V62 tmp60 [V62 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V63 tmp61 [V63 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V64 tmp62 [V64,T32] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
+; V64 tmp62 [V64,T36] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
;* V65 tmp63 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V66 tmp64 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V67 tmp65 [V67,T90] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
; V68 tmp66 [V68,T98] ( 2, 2 ) int -> rcx "Inlining Arg"
;* V69 tmp67 [V69 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V70 tmp68 [V70 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V71 tmp69 [V71 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V72 tmp70 [V72 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V73 tmp71 [V73 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V74 tmp72 [V74,T174] ( 2, 1 ) int -> rcx "Inline stloc first use temp"
+; V74 tmp72 [V74,T175] ( 2, 1 ) int -> rcx "Inline stloc first use temp"
;* V75 tmp73 [V75 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V76 tmp74 [V76 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V77 tmp75 [V77 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V78 tmp76 [V78,T118] ( 3, 1.50) ubyte -> rax "Inline return value spill temp"
-; V79 tmp77 [V79,T83] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
+; V78 tmp76 [V78,T129] ( 3, 1.50) ubyte -> rax "Inline return value spill temp"
+; V79 tmp77 [V79,T84] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
;* V80 tmp78 [V80 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
; V81 tmp79 [V81 ] ( 3, 1.50) byref -> [rbp-0x58] must-init pinned "Inline stloc first use temp"
;* V82 tmp80 [V82 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V83 tmp81 [V83 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V84 tmp82 [V84 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[long]>
;* V85 tmp83 [V85 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
;* V86 tmp84 [V86 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V87 tmp85 [V87 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V88 tmp86 [V88 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
;* V89 tmp87 [V89 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V90 tmp88 [V90 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V91 tmp89 [V91 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V92 tmp90 [V92 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
; V93 tmp91 [V93,T01] ( 10, 38 ) int -> registers "Inlining Arg"
; V94 tmp92 [V94,T04] ( 6, 27 ) long -> rdi "Inlining Arg"
;* V95 tmp93 [V95 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V96 tmp94 [V96 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
;* V97 tmp95 [V97 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V98 tmp96 [V98,T08] ( 3, 12 ) int -> rcx "Inline stloc first use temp"
+; V98 tmp96 [V98,T11] ( 3, 12 ) int -> rcx "Inline stloc first use temp"
;* V99 tmp97 [V99 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
;* V100 tmp98 [V100 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V101 tmp99 [V101 ] ( 0, 0 ) long -> zero-ref
;* V102 tmp100 [V102 ] ( 0, 0 ) long -> zero-ref
-; V103 tmp101 [V103,T15] ( 2, 8 ) ref -> rdx
+; V103 tmp101 [V103,T08] ( 3, 12 ) ref -> rdx
;* V104 tmp102 [V104 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V105 tmp103 [V105 ] ( 0, 0 ) long -> zero-ref
-; V106 tmp104 [V106,T175] ( 2, 1 ) long -> rdi
-; V107 tmp105 [V107,T143] ( 2, 1 ) ref -> rax single-def
+; V106 tmp104 [V106,T176] ( 2, 1 ) long -> rdi
+; V107 tmp105 [V107,T114] ( 3, 1.50) ref -> rax single-def
;* V108 tmp106 [V108 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V109 tmp107 [V109 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V110 tmp108 [V110,T54] ( 6, 3 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
-; V111 tmp109 [V111,T36] ( 4, 4 ) int -> [rbp-0x5C] spill-single-def "Inlining Arg"
+; V110 tmp108 [V110,T57] ( 6, 3 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
+; V111 tmp109 [V111,T40] ( 4, 4 ) int -> [rbp-0x5C] spill-single-def "Inlining Arg"
;* V112 tmp110 [V112 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V113 tmp111 [V113,T144] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V113 tmp111 [V113,T115] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
; V114 tmp112 [V114,T76] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
-; V115 tmp113 [V115,T62] ( 3, 3 ) byref -> rsi single-def "Span.get_Item ptrToSpan"
-; V116 tmp114 [V116,T60] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
+; V115 tmp113 [V115,T65] ( 3, 3 ) byref -> rsi single-def "Span.get_Item ptrToSpan"
+; V116 tmp114 [V116,T63] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
;* V117 tmp115 [V117 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V118 tmp116 [V118 ] ( 3, 3 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V119 tmp117 [V119 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-; V120 tmp118 [V120,T145] ( 2, 1 ) byref -> rdi single-def
+; V120 tmp118 [V120,T154] ( 2, 1 ) byref -> rdi single-def
; V121 tmp119 [V121 ] ( 4, 2 ) int -> [rbp-0x68] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V122 tmp120 [V122 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.Span`1[ushort]>
-; V123 tmp121 [V123,T63] ( 3, 3 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V123 tmp121 [V123,T29] ( 5, 5 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
;* V124 tmp122 [V124 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V125 tmp123 [V125,T37] ( 4, 4 ) int -> rcx "Inlining Arg"
-; V126 tmp124 [V126,T64] ( 3, 3 ) byref -> rax single-def "Inlining Arg"
+; V125 tmp123 [V125,T41] ( 4, 4 ) int -> rcx "Inlining Arg"
+; V126 tmp124 [V126,T66] ( 3, 3 ) byref -> rax single-def "Inlining Arg"
;* V127 tmp125 [V127 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V128 tmp126 [V128,T28] ( 4, 4 ) byref -> r15 single-def "Inlining Arg"
-; V129 tmp127 [V129,T38] ( 3, 3 ) int -> rdx "Inlining Arg"
+; V128 tmp126 [V128,T30] ( 4, 4 ) byref -> r15 single-def "Inlining Arg"
+; V129 tmp127 [V129,T42] ( 3, 3 ) int -> rdx "Inlining Arg"
;* V130 tmp128 [V130 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V131 tmp129 [V131 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V132 tmp130 [V132,T119] ( 3, 1.50) ubyte -> rax "Inline return value spill temp"
+; V132 tmp130 [V132,T130] ( 3, 1.50) ubyte -> rax "Inline return value spill temp"
;* V133 tmp131 [V133 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V134 tmp132 [V134,T23] ( 6, 6 ) int -> [rbp-0x6C] spill-single-def "Inlining Arg"
;* V135 tmp133 [V135 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V136 tmp134 [V136,T146] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V136 tmp134 [V136,T116] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V137 tmp135 [V137 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V138 tmp136 [V138 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V139 tmp137 [V139 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V140 tmp138 [V140,T33] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
+; V140 tmp138 [V140,T37] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
;* V141 tmp139 [V141 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V142 tmp140 [V142 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V143 tmp141 [V143,T91] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
; V144 tmp142 [V144,T99] ( 2, 2 ) int -> rcx "Inlining Arg"
;* V145 tmp143 [V145 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V146 tmp144 [V146 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V147 tmp145 [V147 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V148 tmp146 [V148 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V149 tmp147 [V149 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V150 tmp148 [V150,T176] ( 2, 1 ) int -> rcx "Inline stloc first use temp"
+; V150 tmp148 [V150,T177] ( 2, 1 ) int -> rcx "Inline stloc first use temp"
;* V151 tmp149 [V151 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V152 tmp150 [V152 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V153 tmp151 [V153 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V154 tmp152 [V154,T120] ( 3, 1.50) ubyte -> rax "Inline return value spill temp"
-; V155 tmp153 [V155,T84] ( 4, 2 ) int -> rax "Inline stloc first use temp"
+; V154 tmp152 [V154,T131] ( 3, 1.50) ubyte -> rax "Inline return value spill temp"
+; V155 tmp153 [V155,T85] ( 4, 2 ) int -> rax "Inline stloc first use temp"
;* V156 tmp154 [V156 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
; V157 tmp155 [V157 ] ( 3, 1.50) byref -> [rbp-0x78] must-init pinned "Inline stloc first use temp"
;* V158 tmp156 [V158 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V159 tmp157 [V159 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V160 tmp158 [V160 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[long]>
;* V161 tmp159 [V161 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
;* V162 tmp160 [V162 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V163 tmp161 [V163 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V164 tmp162 [V164 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
;* V165 tmp163 [V165 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V166 tmp164 [V166 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V167 tmp165 [V167 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V168 tmp166 [V168 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
; V169 tmp167 [V169,T02] ( 10, 38 ) int -> registers "Inlining Arg"
; V170 tmp168 [V170,T05] ( 6, 27 ) long -> rdi "Inlining Arg"
;* V171 tmp169 [V171 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V172 tmp170 [V172 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
;* V173 tmp171 [V173 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V174 tmp172 [V174,T09] ( 3, 12 ) int -> rdx "Inline stloc first use temp"
+; V174 tmp172 [V174,T12] ( 3, 12 ) int -> rdx "Inline stloc first use temp"
;* V175 tmp173 [V175 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
;* V176 tmp174 [V176 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V177 tmp175 [V177 ] ( 0, 0 ) long -> zero-ref
;* V178 tmp176 [V178 ] ( 0, 0 ) long -> zero-ref
-; V179 tmp177 [V179,T16] ( 2, 8 ) ref -> rsi
+; V179 tmp177 [V179,T09] ( 3, 12 ) ref -> rsi
;* V180 tmp178 [V180 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V181 tmp179 [V181 ] ( 0, 0 ) long -> zero-ref
-; V182 tmp180 [V182,T177] ( 2, 1 ) long -> rdi
-; V183 tmp181 [V183,T147] ( 2, 1 ) ref -> rax single-def
+; V182 tmp180 [V182,T178] ( 2, 1 ) long -> rdi
+; V183 tmp181 [V183,T117] ( 3, 1.50) ref -> rax single-def
;* V184 tmp182 [V184 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V185 tmp183 [V185 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V186 tmp184 [V186,T55] ( 6, 3 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
-; V187 tmp185 [V187,T39] ( 4, 4 ) int -> r15 "Inlining Arg"
+; V186 tmp184 [V186,T58] ( 6, 3 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
+; V187 tmp185 [V187,T43] ( 4, 4 ) int -> r15 "Inlining Arg"
;* V188 tmp186 [V188 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V189 tmp187 [V189,T148] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V189 tmp187 [V189,T118] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
; V190 tmp188 [V190,T77] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
-; V191 tmp189 [V191,T65] ( 3, 3 ) byref -> r13 single-def "Span.get_Item ptrToSpan"
-; V192 tmp190 [V192,T85] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
+; V191 tmp189 [V191,T67] ( 3, 3 ) byref -> r13 single-def "Span.get_Item ptrToSpan"
+; V192 tmp190 [V192,T78] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
;* V193 tmp191 [V193 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V194 tmp192 [V194 ] ( 3, 3 ) int -> [rbp-0x7C] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V195 tmp193 [V195 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-; V196 tmp194 [V196,T149] ( 2, 1 ) byref -> rdi single-def
+; V196 tmp194 [V196,T155] ( 2, 1 ) byref -> rdi single-def
; V197 tmp195 [V197 ] ( 4, 2 ) int -> [rbp-0x88] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V198 tmp196 [V198 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.Span`1[ushort]>
-; V199 tmp197 [V199,T66] ( 3, 3 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V199 tmp197 [V199,T31] ( 5, 5 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
;* V200 tmp198 [V200 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V201 tmp199 [V201,T40] ( 4, 4 ) int -> rcx "Inlining Arg"
-; V202 tmp200 [V202,T67] ( 3, 3 ) byref -> rax single-def "Inlining Arg"
+; V201 tmp199 [V201,T44] ( 4, 4 ) int -> rcx "Inlining Arg"
+; V202 tmp200 [V202,T68] ( 3, 3 ) byref -> rax single-def "Inlining Arg"
;* V203 tmp201 [V203 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V204 tmp202 [V204,T29] ( 4, 4 ) byref -> r12 single-def "Inlining Arg"
-; V205 tmp203 [V205,T41] ( 3, 3 ) int -> rdx "Inlining Arg"
+; V204 tmp202 [V204,T32] ( 4, 4 ) byref -> r12 single-def "Inlining Arg"
+; V205 tmp203 [V205,T45] ( 3, 3 ) int -> rdx "Inlining Arg"
;* V206 tmp204 [V206 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V207 tmp205 [V207 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V208 tmp206 [V208,T121] ( 3, 1.50) ubyte -> rax "Inline return value spill temp"
+; V208 tmp206 [V208,T132] ( 3, 1.50) ubyte -> rax "Inline return value spill temp"
;* V209 tmp207 [V209 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V210 tmp208 [V210,T24] ( 6, 6 ) int -> [rbp-0x8C] spill-single-def "Inlining Arg"
;* V211 tmp209 [V211 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V212 tmp210 [V212,T150] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V212 tmp210 [V212,T119] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V213 tmp211 [V213 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V214 tmp212 [V214 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V215 tmp213 [V215 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V216 tmp214 [V216,T34] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
+; V216 tmp214 [V216,T38] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
;* V217 tmp215 [V217 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V218 tmp216 [V218 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V219 tmp217 [V219,T92] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
; V220 tmp218 [V220,T100] ( 2, 2 ) int -> rcx "Inlining Arg"
;* V221 tmp219 [V221 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V222 tmp220 [V222 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V223 tmp221 [V223 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V224 tmp222 [V224 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V225 tmp223 [V225 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V226 tmp224 [V226,T178] ( 2, 1 ) int -> rcx "Inline stloc first use temp"
+; V226 tmp224 [V226,T179] ( 2, 1 ) int -> rcx "Inline stloc first use temp"
;* V227 tmp225 [V227 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V228 tmp226 [V228 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V229 tmp227 [V229 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V230 tmp228 [V230,T122] ( 3, 1.50) ubyte -> rax "Inline return value spill temp"
+; V230 tmp228 [V230,T133] ( 3, 1.50) ubyte -> rax "Inline return value spill temp"
; V231 tmp229 [V231,T86] ( 4, 2 ) int -> rax "Inline stloc first use temp"
;* V232 tmp230 [V232 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
; V233 tmp231 [V233 ] ( 3, 1.50) byref -> [rbp-0x98] must-init pinned "Inline stloc first use temp"
;* V234 tmp232 [V234 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V235 tmp233 [V235 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V236 tmp234 [V236 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[long]>
;* V237 tmp235 [V237 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
;* V238 tmp236 [V238 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V239 tmp237 [V239 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V240 tmp238 [V240 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
;* V241 tmp239 [V241 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V242 tmp240 [V242 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V243 tmp241 [V243 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V244 tmp242 [V244 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
; V245 tmp243 [V245,T03] ( 10, 38 ) int -> registers "Inlining Arg"
; V246 tmp244 [V246,T06] ( 6, 27 ) long -> rdi "Inlining Arg"
;* V247 tmp245 [V247 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V248 tmp246 [V248 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
;* V249 tmp247 [V249 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V250 tmp248 [V250,T10] ( 3, 12 ) int -> rcx "Inline stloc first use temp"
+; V250 tmp248 [V250,T13] ( 3, 12 ) int -> rcx "Inline stloc first use temp"
;* V251 tmp249 [V251 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
;* V252 tmp250 [V252 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V253 tmp251 [V253 ] ( 0, 0 ) long -> zero-ref
;* V254 tmp252 [V254 ] ( 0, 0 ) long -> zero-ref
-; V255 tmp253 [V255,T17] ( 2, 8 ) ref -> rdx
+; V255 tmp253 [V255,T10] ( 3, 12 ) ref -> rdx
;* V256 tmp254 [V256 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V257 tmp255 [V257 ] ( 0, 0 ) long -> zero-ref
-; V258 tmp256 [V258,T179] ( 2, 1 ) long -> rdi
-; V259 tmp257 [V259,T151] ( 2, 1 ) ref -> rax single-def
+; V258 tmp256 [V258,T180] ( 2, 1 ) long -> rdi
+; V259 tmp257 [V259,T120] ( 3, 1.50) ref -> rax single-def
;* V260 tmp258 [V260 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V261 tmp259 [V261 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V262 tmp260 [V262,T50] ( 7, 3.50) ref -> rax class-hnd "Inline return value spill temp" <System.String>
-; V263 tmp261 [V263,T42] ( 4, 4 ) int -> r12 "Inlining Arg"
+; V262 tmp260 [V262,T53] ( 7, 3.50) ref -> rax class-hnd "Inline return value spill temp" <System.String>
+; V263 tmp261 [V263,T46] ( 4, 4 ) int -> r12 "Inlining Arg"
;* V264 tmp262 [V264 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V265 tmp263 [V265,T152] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-; V266 tmp264 [V266,T78] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
-; V267 tmp265 [V267,T68] ( 3, 3 ) byref -> rsi single-def "Span.get_Item ptrToSpan"
-; V268 tmp266 [V268,T79] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
+; V265 tmp263 [V265,T121] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V266 tmp264 [V266,T79] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
+; V267 tmp265 [V267,T69] ( 3, 3 ) byref -> rsi single-def "Span.get_Item ptrToSpan"
+; V268 tmp266 [V268,T80] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
;* V269 tmp267 [V269 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V270 tmp268 [V270 ] ( 3, 3 ) int -> [rbp-0x9C] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V271 tmp269 [V271 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-; V272 tmp270 [V272,T153] ( 2, 1 ) byref -> rdi single-def
+; V272 tmp270 [V272,T156] ( 2, 1 ) byref -> rdi single-def
; V273 tmp271 [V273 ] ( 3, 1.50) int -> [rbp-0xA8] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V274 tmp272 [V274 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.Span`1[ushort]>
-; V275 tmp273 [V275,T69] ( 3, 3 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V275 tmp273 [V275,T33] ( 5, 5 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
;* V276 tmp274 [V276 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V277 tmp275 [V277,T43] ( 4, 4 ) int -> rcx "Inlining Arg"
+; V277 tmp275 [V277,T47] ( 4, 4 ) int -> rcx "Inlining Arg"
; V278 tmp276 [V278,T70] ( 3, 3 ) byref -> rax single-def "Inlining Arg"
;* V279 tmp277 [V279 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V280 tmp278 [V280,T93] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
; V281 tmp279 [V281,T101] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V282 tmp280 [V282 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V283 tmp281 [V283 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V284 tmp282 [V284,T123] ( 3, 1.50) ubyte -> rax "Inline return value spill temp"
+; V284 tmp282 [V284,T134] ( 3, 1.50) ubyte -> rax "Inline return value spill temp"
;* V285 tmp283 [V285 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V286 tmp284 [V286,T44] ( 4, 4 ) int -> [rbp-0xAC] spill-single-def "Inlining Arg"
+; V286 tmp284 [V286,T48] ( 4, 4 ) int -> [rbp-0xAC] spill-single-def "Inlining Arg"
;* V287 tmp285 [V287 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V288 tmp286 [V288,T154] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V288 tmp286 [V288,T122] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V289 tmp287 [V289 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V290 tmp288 [V290 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V291 tmp289 [V291 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V292 tmp290 [V292,T35] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
+; V292 tmp290 [V292,T39] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
;* V293 tmp291 [V293 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V294 tmp292 [V294 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V295 tmp293 [V295,T94] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
; V296 tmp294 [V296,T102] ( 2, 2 ) int -> rcx "Inlining Arg"
;* V297 tmp295 [V297 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V298 tmp296 [V298 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V299 tmp297 [V299 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V300 tmp298 [V300 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V301 tmp299 [V301 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V302 tmp300 [V302,T180] ( 2, 1 ) int -> rcx "Inline stloc first use temp"
+; V302 tmp300 [V302,T181] ( 2, 1 ) int -> rcx "Inline stloc first use temp"
;* V303 tmp301 [V303 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V304 tmp302 [V304 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V305 tmp303 [V305 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V306 tmp304 [V306,T51] ( 7, 3.50) ref -> rax class-hnd "Inline return value spill temp" <System.String>
-; V307 tmp305 [V307,T45] ( 4, 4 ) int -> r14 "Inlining Arg"
+; V306 tmp304 [V306,T54] ( 7, 3.50) ref -> rax class-hnd "Inline return value spill temp" <System.String>
+; V307 tmp305 [V307,T49] ( 4, 4 ) int -> r14 "Inlining Arg"
;* V308 tmp306 [V308 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V309 tmp307 [V309,T155] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-; V310 tmp308 [V310,T80] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
+; V309 tmp307 [V309,T123] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V310 tmp308 [V310,T81] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
; V311 tmp309 [V311,T71] ( 3, 3 ) byref -> rsi single-def "Span.get_Item ptrToSpan"
-; V312 tmp310 [V312,T81] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
+; V312 tmp310 [V312,T82] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
;* V313 tmp311 [V313 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V314 tmp312 [V314,T53] ( 5, 3.50) int -> rdi "Inline stloc first use temp"
+; V314 tmp312 [V314,T56] ( 5, 3.50) int -> rdi "Inline stloc first use temp"
;* V315 tmp313 [V315 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
;* V316 tmp314 [V316 ] ( 0, 0 ) long -> zero-ref "field V06._dateData (fldOffset=0x0)" P-INDEP
-; V317 tmp315 [V317,T134] ( 2, 1.50) byref -> rsi single-def "field V12._reference (fldOffset=0x0)" P-INDEP
+; V317 tmp315 [V317,T146] ( 2, 1.50) byref -> rsi single-def "field V12._reference (fldOffset=0x0)" P-INDEP
; V318 tmp316 [V318,T103] ( 2, 2 ) int -> rax "field V12._length (fldOffset=0x8)" P-INDEP
-; V319 tmp317 [V319,T135] ( 2, 1.50) byref -> rax single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+; V319 tmp317 [V319,T147] ( 2, 1.50) byref -> rax single-def "field V14._reference (fldOffset=0x0)" P-INDEP
; V320 tmp318 [V320,T104] ( 2, 2 ) int -> rcx "field V14._length (fldOffset=0x8)" P-INDEP
-; V321 tmp319 [V321,T136] ( 2, 1.50) byref -> rsi single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+; V321 tmp319 [V321,T148] ( 2, 1.50) byref -> rsi single-def "field V17._reference (fldOffset=0x0)" P-INDEP
; V322 tmp320 [V322,T105] ( 2, 2 ) int -> rax "field V17._length (fldOffset=0x8)" P-INDEP
; V323 tmp321 [V323 ] ( 3, 3.50) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V18._dateData (fldOffset=0x0)" P-DEP
;* V324 tmp322 [V324 ] ( 0, 0 ) long -> zero-ref "field V19._dateData (fldOffset=0x0)" P-INDEP
;* V325 tmp323 [V325 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
;* V326 tmp324 [V326 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
;* V327 tmp325 [V327 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP
;* V328 tmp326 [V328 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
; V329 tmp327 [V329,T95] ( 2, 2 ) byref -> rsi single-def "field V27._reference (fldOffset=0x0)" P-INDEP
; V330 tmp328 [V330,T106] ( 2, 2 ) int -> rdx "field V27._length (fldOffset=0x8)" P-INDEP
;* V331 tmp329 [V331 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
;* V332 tmp330 [V332 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
; V333 tmp331 [V333,T96] ( 2, 2 ) byref -> r9 single-def "field V31._reference (fldOffset=0x0)" P-INDEP
;* V334 tmp332 [V334,T195] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
; V335 tmp333 [V335,T107] ( 2, 2 ) long -> rdi "field V33._dateData (fldOffset=0x0)" P-INDEP
;* V336 tmp334 [V336,T196] ( 0, 0 ) long -> zero-ref "field V34._ticks (fldOffset=0x0)" P-INDEP
-; V337 tmp335 [V337,T181] ( 2, 1 ) long -> rdi "field V35._dateData (fldOffset=0x0)" P-INDEP
+; V337 tmp335 [V337,T182] ( 2, 1 ) long -> rdi "field V35._dateData (fldOffset=0x0)" P-INDEP
;* V338 tmp336 [V338,T200] ( 0, 0 ) long -> zero-ref "field V36._ticks (fldOffset=0x0)" P-INDEP
-; V339 tmp337 [V339,T137] ( 2, 1.50) byref -> rsi single-def "field V41._reference (fldOffset=0x0)" P-INDEP
+; V339 tmp337 [V339,T149] ( 2, 1.50) byref -> rsi single-def "field V41._reference (fldOffset=0x0)" P-INDEP
; V340 tmp338 [V340,T108] ( 2, 2 ) int -> rax "field V41._length (fldOffset=0x8)" P-INDEP
-; V341 tmp339 [V341,T138] ( 2, 1.50) byref -> [rbp-0xC0] spill-single-def "field V46._reference (fldOffset=0x0)" P-INDEP
-; V342 tmp340 [V342,T141] ( 2, 1.50) int -> [rbp-0xB0] spill-single-def "field V46._length (fldOffset=0x8)" P-INDEP
+; V341 tmp339 [V341,T150] ( 2, 1.50) byref -> [rbp-0xC0] spill-single-def "field V46._reference (fldOffset=0x0)" P-INDEP
+; V342 tmp340 [V342,T153] ( 2, 1.50) int -> [rbp-0xB0] spill-single-def "field V46._length (fldOffset=0x8)" P-INDEP
;* V343 tmp341 [V343 ] ( 0, 0 ) byref -> zero-ref single-def "field V48._reference (fldOffset=0x0)" P-INDEP
;* V344 tmp342 [V344 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
;* V345 tmp343 [V345,T194] ( 0, 0 ) byref -> zero-ref single-def "field V51._reference (fldOffset=0x0)" P-INDEP
;* V346 tmp344 [V346,T197] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
;* V347 tmp345 [V347 ] ( 0, 0 ) byref -> zero-ref "field V54._reference (fldOffset=0x0)" P-INDEP
;* V348 tmp346 [V348 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
;* V349 tmp347 [V349 ] ( 0, 0 ) byref -> zero-ref single-def "field V55._reference (fldOffset=0x0)" P-INDEP
;* V350 tmp348 [V350 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
;* V351 tmp349 [V351 ] ( 0, 0 ) byref -> zero-ref single-def "field V57._reference (fldOffset=0x0)" P-INDEP
;* V352 tmp350 [V352 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
;* V353 tmp351 [V353 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
;* V354 tmp352 [V354 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
;* V355 tmp353 [V355 ] ( 0, 0 ) byref -> zero-ref "field V61._reference (fldOffset=0x0)" P-INDEP
;* V356 tmp354 [V356 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
;* V357 tmp355 [V357 ] ( 0, 0 ) byref -> zero-ref "field V62._reference (fldOffset=0x0)" P-INDEP
;* V358 tmp356 [V358 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP
-; V359 tmp357 [V359,T113] ( 3, 1.50) byref -> rdx "field V63._reference (fldOffset=0x0)" P-INDEP
-; V360 tmp358 [V360,T124] ( 3, 1.50) int -> rcx "field V63._length (fldOffset=0x8)" P-INDEP
-; V361 tmp359 [V361,T156] ( 2, 1 ) byref -> rdx single-def "field V65._reference (fldOffset=0x0)" P-INDEP
-; V362 tmp360 [V362,T182] ( 2, 1 ) int -> rcx "field V65._length (fldOffset=0x8)" P-INDEP
+; V359 tmp357 [V359,T124] ( 3, 1.50) byref -> rdx "field V63._reference (fldOffset=0x0)" P-INDEP
+; V360 tmp358 [V360,T135] ( 3, 1.50) int -> rcx "field V63._length (fldOffset=0x8)" P-INDEP
+; V361 tmp359 [V361,T157] ( 2, 1 ) byref -> rdx single-def "field V65._reference (fldOffset=0x0)" P-INDEP
+; V362 tmp360 [V362,T183] ( 2, 1 ) int -> rcx "field V65._length (fldOffset=0x8)" P-INDEP
;* V363 tmp361 [V363 ] ( 0, 0 ) byref -> zero-ref single-def "field V66._reference (fldOffset=0x0)" P-INDEP
;* V364 tmp362 [V364 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
-; V365 tmp363 [V365,T157] ( 2, 1 ) byref -> rdx single-def "field V71._reference (fldOffset=0x0)" P-INDEP
+; V365 tmp363 [V365,T158] ( 2, 1 ) byref -> rdx single-def "field V71._reference (fldOffset=0x0)" P-INDEP
;* V366 tmp364 [V366 ] ( 0, 0 ) int -> zero-ref "field V71._length (fldOffset=0x8)" P-INDEP
-; V367 tmp365 [V367,T158] ( 2, 1 ) byref -> rdx single-def "field V75._reference (fldOffset=0x0)" P-INDEP
-; V368 tmp366 [V368,T183] ( 2, 1 ) int -> rcx "field V75._length (fldOffset=0x8)" P-INDEP
+; V367 tmp365 [V367,T159] ( 2, 1 ) byref -> rdx single-def "field V75._reference (fldOffset=0x0)" P-INDEP
+; V368 tmp366 [V368,T184] ( 2, 1 ) int -> rcx "field V75._length (fldOffset=0x8)" P-INDEP
;* V369 tmp367 [V369 ] ( 0, 0 ) byref -> zero-ref single-def "field V76._reference (fldOffset=0x0)" P-INDEP
;* V370 tmp368 [V370 ] ( 0, 0 ) int -> zero-ref "field V76._length (fldOffset=0x8)" P-INDEP
;* V371 tmp369 [V371 ] ( 0, 0 ) byref -> zero-ref single-def "field V80._reference (fldOffset=0x0)" P-INDEP
;* V372 tmp370 [V372 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-INDEP
;* V373 tmp371 [V373 ] ( 0, 0 ) byref -> zero-ref single-def "field V84._reference (fldOffset=0x0)" P-INDEP
;* V374 tmp372 [V374 ] ( 0, 0 ) int -> zero-ref "field V84._length (fldOffset=0x8)" P-INDEP
;* V375 tmp373 [V375 ] ( 0, 0 ) byref -> zero-ref "field V85._reference (fldOffset=0x0)" P-INDEP
;* V376 tmp374 [V376 ] ( 0, 0 ) int -> zero-ref "field V85._length (fldOffset=0x8)" P-INDEP
;* V377 tmp375 [V377 ] ( 0, 0 ) byref -> zero-ref single-def "field V88._reference (fldOffset=0x0)" P-INDEP
;* V378 tmp376 [V378 ] ( 0, 0 ) int -> zero-ref "field V88._length (fldOffset=0x8)" P-INDEP
;* V379 tmp377 [V379 ] ( 0, 0 ) byref -> zero-ref single-def "field V91._reference (fldOffset=0x0)" P-INDEP
;* V380 tmp378 [V380 ] ( 0, 0 ) int -> zero-ref "field V91._length (fldOffset=0x8)" P-INDEP
;* V381 tmp379 [V381 ] ( 0, 0 ) int -> zero-ref "field V96.Item1 (fldOffset=0x0)" P-INDEP
;* V382 tmp380 [V382 ] ( 0, 0 ) int -> zero-ref "field V96.Item2 (fldOffset=0x4)" P-INDEP
;* V383 tmp381 [V383 ] ( 0, 0 ) int -> zero-ref "field V99.Item1 (fldOffset=0x0)" P-INDEP
; V384 tmp382 [V384,T18] ( 2, 8 ) int -> r8 "field V99.Item2 (fldOffset=0x4)" P-INDEP
-; V385 tmp383 [V385,T139] ( 2, 1.50) byref -> rsi single-def "field V117._reference (fldOffset=0x0)" P-INDEP
+; V385 tmp383 [V385,T151] ( 2, 1.50) byref -> rsi single-def "field V117._reference (fldOffset=0x0)" P-INDEP
; V386 tmp384 [V386,T109] ( 2, 2 ) int -> rax "field V117._length (fldOffset=0x8)" P-INDEP
-; V387 tmp385 [V387,T159] ( 2, 1 ) byref -> r12 single-def "field V122._reference (fldOffset=0x0)" P-INDEP
-; V388 tmp386 [V388,T184] ( 2, 1 ) int -> [rbp-0xB4] spill-single-def "field V122._length (fldOffset=0x8)" P-INDEP
+; V387 tmp385 [V387,T160] ( 2, 1 ) byref -> r12 single-def "field V122._reference (fldOffset=0x0)" P-INDEP
+; V388 tmp386 [V388,T185] ( 2, 1 ) int -> [rbp-0xB4] spill-single-def "field V122._length (fldOffset=0x8)" P-INDEP
;* V389 tmp387 [V389 ] ( 0, 0 ) byref -> zero-ref single-def "field V124._reference (fldOffset=0x0)" P-INDEP
;* V390 tmp388 [V390 ] ( 0, 0 ) int -> zero-ref "field V124._length (fldOffset=0x8)" P-INDEP
;* V391 tmp389 [V391,T198] ( 0, 0 ) byref -> zero-ref single-def "field V127._reference (fldOffset=0x0)" P-INDEP
;* V392 tmp390 [V392,T201] ( 0, 0 ) int -> zero-ref "field V127._length (fldOffset=0x8)" P-INDEP
;* V393 tmp391 [V393 ] ( 0, 0 ) byref -> zero-ref "field V130._reference (fldOffset=0x0)" P-INDEP
;* V394 tmp392 [V394 ] ( 0, 0 ) int -> zero-ref "field V130._length (fldOffset=0x8)" P-INDEP
;* V395 tmp393 [V395 ] ( 0, 0 ) byref -> zero-ref single-def "field V131._reference (fldOffset=0x0)" P-INDEP
;* V396 tmp394 [V396 ] ( 0, 0 ) int -> zero-ref "field V131._length (fldOffset=0x8)" P-INDEP
;* V397 tmp395 [V397 ] ( 0, 0 ) byref -> zero-ref single-def "field V133._reference (fldOffset=0x0)" P-INDEP
;* V398 tmp396 [V398 ] ( 0, 0 ) int -> zero-ref "field V133._length (fldOffset=0x8)" P-INDEP
;* V399 tmp397 [V399 ] ( 0, 0 ) byref -> zero-ref "field V135._reference (fldOffset=0x0)" P-INDEP
;* V400 tmp398 [V400 ] ( 0, 0 ) int -> zero-ref "field V135._length (fldOffset=0x8)" P-INDEP
;* V401 tmp399 [V401 ] ( 0, 0 ) byref -> zero-ref "field V137._reference (fldOffset=0x0)" P-INDEP
;* V402 tmp400 [V402 ] ( 0, 0 ) int -> zero-ref "field V137._length (fldOffset=0x8)" P-INDEP
;* V403 tmp401 [V403 ] ( 0, 0 ) byref -> zero-ref "field V138._reference (fldOffset=0x0)" P-INDEP
;* V404 tmp402 [V404 ] ( 0, 0 ) int -> zero-ref "field V138._length (fldOffset=0x8)" P-INDEP
-; V405 tmp403 [V405,T114] ( 3, 1.50) byref -> rdx "field V139._reference (fldOffset=0x0)" P-INDEP
-; V406 tmp404 [V406,T125] ( 3, 1.50) int -> rcx "field V139._length (fldOffset=0x8)" P-INDEP
-; V407 tmp405 [V407,T160] ( 2, 1 ) byref -> rdx single-def "field V141._reference (fldOffset=0x0)" P-INDEP
-; V408 tmp406 [V408,T185] ( 2, 1 ) int -> rcx "field V141._length (fldOffset=0x8)" P-INDEP
+; V405 tmp403 [V405,T125] ( 3, 1.50) byref -> rdx "field V139._reference (fldOffset=0x0)" P-INDEP
+; V406 tmp404 [V406,T136] ( 3, 1.50) int -> rcx "field V139._length (fldOffset=0x8)" P-INDEP
+; V407 tmp405 [V407,T161] ( 2, 1 ) byref -> rdx single-def "field V141._reference (fldOffset=0x0)" P-INDEP
+; V408 tmp406 [V408,T186] ( 2, 1 ) int -> rcx "field V141._length (fldOffset=0x8)" P-INDEP
;* V409 tmp407 [V409 ] ( 0, 0 ) byref -> zero-ref single-def "field V142._reference (fldOffset=0x0)" P-INDEP
;* V410 tmp408 [V410 ] ( 0, 0 ) int -> zero-ref "field V142._length (fldOffset=0x8)" P-INDEP
-; V411 tmp409 [V411,T161] ( 2, 1 ) byref -> rdx single-def "field V147._reference (fldOffset=0x0)" P-INDEP
+; V411 tmp409 [V411,T162] ( 2, 1 ) byref -> rdx single-def "field V147._reference (fldOffset=0x0)" P-INDEP
;* V412 tmp410 [V412 ] ( 0, 0 ) int -> zero-ref "field V147._length (fldOffset=0x8)" P-INDEP
-; V413 tmp411 [V413,T162] ( 2, 1 ) byref -> rdx single-def "field V151._reference (fldOffset=0x0)" P-INDEP
-; V414 tmp412 [V414,T186] ( 2, 1 ) int -> rcx "field V151._length (fldOffset=0x8)" P-INDEP
+; V413 tmp411 [V413,T163] ( 2, 1 ) byref -> rdx single-def "field V151._reference (fldOffset=0x0)" P-INDEP
+; V414 tmp412 [V414,T187] ( 2, 1 ) int -> rcx "field V151._length (fldOffset=0x8)" P-INDEP
;* V415 tmp413 [V415 ] ( 0, 0 ) byref -> zero-ref single-def "field V152._reference (fldOffset=0x0)" P-INDEP
;* V416 tmp414 [V416 ] ( 0, 0 ) int -> zero-ref "field V152._length (fldOffset=0x8)" P-INDEP
;* V417 tmp415 [V417 ] ( 0, 0 ) byref -> zero-ref single-def "field V156._reference (fldOffset=0x0)" P-INDEP
;* V418 tmp416 [V418 ] ( 0, 0 ) int -> zero-ref "field V156._length (fldOffset=0x8)" P-INDEP
;* V419 tmp417 [V419 ] ( 0, 0 ) byref -> zero-ref single-def "field V160._reference (fldOffset=0x0)" P-INDEP
;* V420 tmp418 [V420 ] ( 0, 0 ) int -> zero-ref "field V160._length (fldOffset=0x8)" P-INDEP
;* V421 tmp419 [V421 ] ( 0, 0 ) byref -> zero-ref "field V161._reference (fldOffset=0x0)" P-INDEP
;* V422 tmp420 [V422 ] ( 0, 0 ) int -> zero-ref "field V161._length (fldOffset=0x8)" P-INDEP
;* V423 tmp421 [V423 ] ( 0, 0 ) byref -> zero-ref single-def "field V164._reference (fldOffset=0x0)" P-INDEP
;* V424 tmp422 [V424 ] ( 0, 0 ) int -> zero-ref "field V164._length (fldOffset=0x8)" P-INDEP
;* V425 tmp423 [V425 ] ( 0, 0 ) byref -> zero-ref single-def "field V167._reference (fldOffset=0x0)" P-INDEP
;* V426 tmp424 [V426 ] ( 0, 0 ) int -> zero-ref "field V167._length (fldOffset=0x8)" P-INDEP
;* V427 tmp425 [V427 ] ( 0, 0 ) int -> zero-ref "field V172.Item1 (fldOffset=0x0)" P-INDEP
;* V428 tmp426 [V428 ] ( 0, 0 ) int -> zero-ref "field V172.Item2 (fldOffset=0x4)" P-INDEP
;* V429 tmp427 [V429 ] ( 0, 0 ) int -> zero-ref "field V175.Item1 (fldOffset=0x0)" P-INDEP
; V430 tmp428 [V430,T19] ( 2, 8 ) int -> rcx "field V175.Item2 (fldOffset=0x4)" P-INDEP
-; V431 tmp429 [V431,T163] ( 2, 1 ) byref -> rax single-def "field V193._reference (fldOffset=0x0)" P-INDEP
-; V432 tmp430 [V432,T187] ( 2, 1 ) int -> rcx "field V193._length (fldOffset=0x8)" P-INDEP
-; V433 tmp431 [V433,T164] ( 2, 1 ) byref -> [rbp-0xC8] spill-single-def "field V198._reference (fldOffset=0x0)" P-INDEP
+; V431 tmp429 [V431,T164] ( 2, 1 ) byref -> rax single-def "field V193._reference (fldOffset=0x0)" P-INDEP
+; V432 tmp430 [V432,T137] ( 3, 1.50) int -> rcx "field V193._length (fldOffset=0x8)" P-INDEP
+; V433 tmp431 [V433,T165] ( 2, 1 ) byref -> [rbp-0xC8] spill-single-def "field V198._reference (fldOffset=0x0)" P-INDEP
; V434 tmp432 [V434,T188] ( 2, 1 ) int -> [rbp-0xB8] spill-single-def "field V198._length (fldOffset=0x8)" P-INDEP
;* V435 tmp433 [V435 ] ( 0, 0 ) byref -> zero-ref single-def "field V200._reference (fldOffset=0x0)" P-INDEP
;* V436 tmp434 [V436 ] ( 0, 0 ) int -> zero-ref "field V200._length (fldOffset=0x8)" P-INDEP
;* V437 tmp435 [V437,T199] ( 0, 0 ) byref -> zero-ref single-def "field V203._reference (fldOffset=0x0)" P-INDEP
;* V438 tmp436 [V438,T202] ( 0, 0 ) int -> zero-ref "field V203._length (fldOffset=0x8)" P-INDEP
;* V439 tmp437 [V439 ] ( 0, 0 ) byref -> zero-ref "field V206._reference (fldOffset=0x0)" P-INDEP
;* V440 tmp438 [V440 ] ( 0, 0 ) int -> zero-ref "field V206._length (fldOffset=0x8)" P-INDEP
;* V441 tmp439 [V441 ] ( 0, 0 ) byref -> zero-ref single-def "field V207._reference (fldOffset=0x0)" P-INDEP
;* V442 tmp440 [V442 ] ( 0, 0 ) int -> zero-ref "field V207._length (fldOffset=0x8)" P-INDEP
;* V443 tmp441 [V443 ] ( 0, 0 ) byref -> zero-ref single-def "field V209._reference (fldOffset=0x0)" P-INDEP
;* V444 tmp442 [V444 ] ( 0, 0 ) int -> zero-ref "field V209._length (fldOffset=0x8)" P-INDEP
;* V445 tmp443 [V445 ] ( 0, 0 ) byref -> zero-ref "field V211._reference (fldOffset=0x0)" P-INDEP
;* V446 tmp444 [V446 ] ( 0, 0 ) int -> zero-ref "field V211._length (fldOffset=0x8)" P-INDEP
;* V447 tmp445 [V447 ] ( 0, 0 ) byref -> zero-ref "field V213._reference (fldOffset=0x0)" P-INDEP
;* V448 tmp446 [V448 ] ( 0, 0 ) int -> zero-ref "field V213._length (fldOffset=0x8)" P-INDEP
;* V449 tmp447 [V449 ] ( 0, 0 ) byref -> zero-ref "field V214._reference (fldOffset=0x0)" P-INDEP
;* V450 tmp448 [V450 ] ( 0, 0 ) int -> zero-ref "field V214._length (fldOffset=0x8)" P-INDEP
-; V451 tmp449 [V451,T115] ( 3, 1.50) byref -> rdx "field V215._reference (fldOffset=0x0)" P-INDEP
-; V452 tmp450 [V452,T126] ( 3, 1.50) int -> rcx "field V215._length (fldOffset=0x8)" P-INDEP
-; V453 tmp451 [V453,T165] ( 2, 1 ) byref -> rdx single-def "field V217._reference (fldOffset=0x0)" P-INDEP
+; V451 tmp449 [V451,T126] ( 3, 1.50) byref -> rdx "field V215._reference (fldOffset=0x0)" P-INDEP
+; V452 tmp450 [V452,T138] ( 3, 1.50) int -> rcx "field V215._length (fldOffset=0x8)" P-INDEP
+; V453 tmp451 [V453,T166] ( 2, 1 ) byref -> rdx single-def "field V217._reference (fldOffset=0x0)" P-INDEP
; V454 tmp452 [V454,T189] ( 2, 1 ) int -> rcx "field V217._length (fldOffset=0x8)" P-INDEP
;* V455 tmp453 [V455 ] ( 0, 0 ) byref -> zero-ref single-def "field V218._reference (fldOffset=0x0)" P-INDEP
;* V456 tmp454 [V456 ] ( 0, 0 ) int -> zero-ref "field V218._length (fldOffset=0x8)" P-INDEP
-; V457 tmp455 [V457,T166] ( 2, 1 ) byref -> rdx single-def "field V223._reference (fldOffset=0x0)" P-INDEP
+; V457 tmp455 [V457,T167] ( 2, 1 ) byref -> rdx single-def "field V223._reference (fldOffset=0x0)" P-INDEP
;* V458 tmp456 [V458 ] ( 0, 0 ) int -> zero-ref "field V223._length (fldOffset=0x8)" P-INDEP
-; V459 tmp457 [V459,T167] ( 2, 1 ) byref -> rdx single-def "field V227._reference (fldOffset=0x0)" P-INDEP
+; V459 tmp457 [V459,T168] ( 2, 1 ) byref -> rdx single-def "field V227._reference (fldOffset=0x0)" P-INDEP
; V460 tmp458 [V460,T190] ( 2, 1 ) int -> rcx "field V227._length (fldOffset=0x8)" P-INDEP
;* V461 tmp459 [V461 ] ( 0, 0 ) byref -> zero-ref single-def "field V228._reference (fldOffset=0x0)" P-INDEP
;* V462 tmp460 [V462 ] ( 0, 0 ) int -> zero-ref "field V228._length (fldOffset=0x8)" P-INDEP
;* V463 tmp461 [V463 ] ( 0, 0 ) byref -> zero-ref single-def "field V232._reference (fldOffset=0x0)" P-INDEP
;* V464 tmp462 [V464 ] ( 0, 0 ) int -> zero-ref "field V232._length (fldOffset=0x8)" P-INDEP
;* V465 tmp463 [V465 ] ( 0, 0 ) byref -> zero-ref single-def "field V236._reference (fldOffset=0x0)" P-INDEP
;* V466 tmp464 [V466 ] ( 0, 0 ) int -> zero-ref "field V236._length (fldOffset=0x8)" P-INDEP
;* V467 tmp465 [V467 ] ( 0, 0 ) byref -> zero-ref "field V237._reference (fldOffset=0x0)" P-INDEP
;* V468 tmp466 [V468 ] ( 0, 0 ) int -> zero-ref "field V237._length (fldOffset=0x8)" P-INDEP
;* V469 tmp467 [V469 ] ( 0, 0 ) byref -> zero-ref single-def "field V240._reference (fldOffset=0x0)" P-INDEP
;* V470 tmp468 [V470 ] ( 0, 0 ) int -> zero-ref "field V240._length (fldOffset=0x8)" P-INDEP
;* V471 tmp469 [V471 ] ( 0, 0 ) byref -> zero-ref single-def "field V243._reference (fldOffset=0x0)" P-INDEP
;* V472 tmp470 [V472 ] ( 0, 0 ) int -> zero-ref "field V243._length (fldOffset=0x8)" P-INDEP
;* V473 tmp471 [V473 ] ( 0, 0 ) int -> zero-ref "field V248.Item1 (fldOffset=0x0)" P-INDEP
;* V474 tmp472 [V474 ] ( 0, 0 ) int -> zero-ref "field V248.Item2 (fldOffset=0x4)" P-INDEP
;* V475 tmp473 [V475 ] ( 0, 0 ) int -> zero-ref "field V251.Item1 (fldOffset=0x0)" P-INDEP
; V476 tmp474 [V476,T20] ( 2, 8 ) int -> rsi "field V251.Item2 (fldOffset=0x4)" P-INDEP
-; V477 tmp475 [V477,T168] ( 2, 1 ) byref -> rsi single-def "field V269._reference (fldOffset=0x0)" P-INDEP
-; V478 tmp476 [V478,T127] ( 3, 1.50) int -> rax "field V269._length (fldOffset=0x8)" P-INDEP
-; V479 tmp477 [V479,T169] ( 2, 1 ) byref -> r14 single-def "field V274._reference (fldOffset=0x0)" P-INDEP
+; V477 tmp475 [V477,T169] ( 2, 1 ) byref -> rsi single-def "field V269._reference (fldOffset=0x0)" P-INDEP
+; V478 tmp476 [V478,T139] ( 3, 1.50) int -> rax "field V269._length (fldOffset=0x8)" P-INDEP
+; V479 tmp477 [V479,T170] ( 2, 1 ) byref -> r14 single-def "field V274._reference (fldOffset=0x0)" P-INDEP
; V480 tmp478 [V480,T191] ( 2, 1 ) int -> r12 "field V274._length (fldOffset=0x8)" P-INDEP
;* V481 tmp479 [V481 ] ( 0, 0 ) byref -> zero-ref single-def "field V276._reference (fldOffset=0x0)" P-INDEP
;* V482 tmp480 [V482 ] ( 0, 0 ) int -> zero-ref "field V276._length (fldOffset=0x8)" P-INDEP
-; V483 tmp481 [V483,T116] ( 3, 1.50) byref -> rsi single-def "field V279._reference (fldOffset=0x0)" P-INDEP
-; V484 tmp482 [V484,T128] ( 3, 1.50) int -> rdx "field V279._length (fldOffset=0x8)" P-INDEP
+; V483 tmp481 [V483,T127] ( 3, 1.50) byref -> rsi single-def "field V279._reference (fldOffset=0x0)" P-INDEP
+; V484 tmp482 [V484,T140] ( 3, 1.50) int -> rdx "field V279._length (fldOffset=0x8)" P-INDEP
;* V485 tmp483 [V485 ] ( 0, 0 ) byref -> zero-ref "field V282._reference (fldOffset=0x0)" P-INDEP
;* V486 tmp484 [V486 ] ( 0, 0 ) int -> zero-ref "field V282._length (fldOffset=0x8)" P-INDEP
;* V487 tmp485 [V487 ] ( 0, 0 ) byref -> zero-ref single-def "field V283._reference (fldOffset=0x0)" P-INDEP
;* V488 tmp486 [V488 ] ( 0, 0 ) int -> zero-ref "field V283._length (fldOffset=0x8)" P-INDEP
;* V489 tmp487 [V489 ] ( 0, 0 ) byref -> zero-ref single-def "field V285._reference (fldOffset=0x0)" P-INDEP
;* V490 tmp488 [V490 ] ( 0, 0 ) int -> zero-ref "field V285._length (fldOffset=0x8)" P-INDEP
;* V491 tmp489 [V491 ] ( 0, 0 ) byref -> zero-ref "field V287._reference (fldOffset=0x0)" P-INDEP
;* V492 tmp490 [V492 ] ( 0, 0 ) int -> zero-ref "field V287._length (fldOffset=0x8)" P-INDEP
;* V493 tmp491 [V493 ] ( 0, 0 ) byref -> zero-ref "field V289._reference (fldOffset=0x0)" P-INDEP
;* V494 tmp492 [V494 ] ( 0, 0 ) int -> zero-ref "field V289._length (fldOffset=0x8)" P-INDEP
;* V495 tmp493 [V495 ] ( 0, 0 ) byref -> zero-ref "field V290._reference (fldOffset=0x0)" P-INDEP
;* V496 tmp494 [V496 ] ( 0, 0 ) int -> zero-ref "field V290._length (fldOffset=0x8)" P-INDEP
-; V497 tmp495 [V497,T117] ( 3, 1.50) byref -> rdx "field V291._reference (fldOffset=0x0)" P-INDEP
-; V498 tmp496 [V498,T129] ( 3, 1.50) int -> rcx "field V291._length (fldOffset=0x8)" P-INDEP
-; V499 tmp497 [V499,T170] ( 2, 1 ) byref -> rdx single-def "field V293._reference (fldOffset=0x0)" P-INDEP
+; V497 tmp495 [V497,T128] ( 3, 1.50) byref -> rdx "field V291._reference (fldOffset=0x0)" P-INDEP
+; V498 tmp496 [V498,T141] ( 3, 1.50) int -> rcx "field V291._length (fldOffset=0x8)" P-INDEP
+; V499 tmp497 [V499,T171] ( 2, 1 ) byref -> rdx single-def "field V293._reference (fldOffset=0x0)" P-INDEP
; V500 tmp498 [V500,T192] ( 2, 1 ) int -> rcx "field V293._length (fldOffset=0x8)" P-INDEP
;* V501 tmp499 [V501 ] ( 0, 0 ) byref -> zero-ref single-def "field V294._reference (fldOffset=0x0)" P-INDEP
;* V502 tmp500 [V502 ] ( 0, 0 ) int -> zero-ref "field V294._length (fldOffset=0x8)" P-INDEP
-; V503 tmp501 [V503,T171] ( 2, 1 ) byref -> rdx single-def "field V299._reference (fldOffset=0x0)" P-INDEP
+; V503 tmp501 [V503,T172] ( 2, 1 ) byref -> rdx single-def "field V299._reference (fldOffset=0x0)" P-INDEP
;* V504 tmp502 [V504 ] ( 0, 0 ) int -> zero-ref "field V299._length (fldOffset=0x8)" P-INDEP
-; V505 tmp503 [V505,T172] ( 2, 1 ) byref -> rdx single-def "field V303._reference (fldOffset=0x0)" P-INDEP
+; V505 tmp503 [V505,T173] ( 2, 1 ) byref -> rdx single-def "field V303._reference (fldOffset=0x0)" P-INDEP
; V506 tmp504 [V506,T193] ( 2, 1 ) int -> rcx "field V303._length (fldOffset=0x8)" P-INDEP
;* V507 tmp505 [V507 ] ( 0, 0 ) byref -> zero-ref single-def "field V304._reference (fldOffset=0x0)" P-INDEP
;* V508 tmp506 [V508 ] ( 0, 0 ) int -> zero-ref "field V304._length (fldOffset=0x8)" P-INDEP
-; V509 tmp507 [V509,T173] ( 2, 1 ) byref -> rsi single-def "field V313._reference (fldOffset=0x0)" P-INDEP
-; V510 tmp508 [V510,T130] ( 3, 1.50) int -> rax "field V313._length (fldOffset=0x8)" P-INDEP
-; V511 tmp509 [V511,T140] ( 2, 1.50) byref -> rsi single-def "field V315._reference (fldOffset=0x0)" P-INDEP
-; V512 tmp510 [V512,T82] ( 3, 2.50) int -> rax "field V315._length (fldOffset=0x8)" P-INDEP
+; V509 tmp507 [V509,T174] ( 2, 1 ) byref -> rsi single-def "field V313._reference (fldOffset=0x0)" P-INDEP
+; V510 tmp508 [V510,T142] ( 3, 1.50) int -> rax "field V313._length (fldOffset=0x8)" P-INDEP
+; V511 tmp509 [V511,T152] ( 2, 1.50) byref -> rsi single-def "field V315._reference (fldOffset=0x0)" P-INDEP
+; V512 tmp510 [V512,T83] ( 3, 2.50) int -> rax "field V315._length (fldOffset=0x8)" P-INDEP
; V513 tmp511 [V513,T72] ( 3, 3 ) ubyte -> r15 "V00.[016..017)"
; V514 tmp512 [V514,T110] ( 2, 2 ) long -> rax "Cast away GC"
; V515 tmp513 [V515,T111] ( 2, 2 ) long -> r12 "Cast away GC"
; V516 tmp514 [V516,T112] ( 2, 2 ) long -> r15 "Cast away GC"
; V517 cse0 [V517,T07] ( 12, 16.50) ref -> rax hoist multi-def "CSE - aggressive"
-; V518 cse1 [V518,T52] ( 5, 3.50) ref -> r14 "CSE - conservative"
+; V518 cse1 [V518,T55] ( 5, 3.50) ref -> r14 "CSE - conservative"
; V519 cse2 [V519,T73] ( 3, 3 ) int -> rdx "CSE - conservative"
; V520 cse3 [V520,T74] ( 3, 3 ) int -> rdx "CSE - conservative"
-; V521 cse4 [V521,T131] ( 3, 1.50) int -> rdx "CSE - conservative"
-; V522 cse5 [V522,T132] ( 3, 1.50) int -> rdx "CSE - conservative"
-; V523 cse6 [V523,T133] ( 3, 1.50) int -> rdx "CSE - conservative"
+; V521 cse4 [V521,T143] ( 3, 1.50) int -> rdx "CSE - conservative"
+; V522 cse5 [V522,T144] ( 3, 1.50) int -> rdx "CSE - conservative"
+; V523 cse6 [V523,T145] ( 3, 1.50) int -> rdx "CSE - conservative"
; V524 cse7 [V524,T21] ( 11, 7 ) byref -> r13 "CSE - moderate"
;
; Lcl frame size = 184
G_M63296_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 184
lea rbp, [rsp+0xE0]
xor eax, eax
mov qword ptr [rbp-0x98], rax
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x90], ymm8
vmovdqu ymmword ptr [rbp-0x70], ymm8
mov rbx, rdi
;; size=55 bbWeight=1 PerfScore 12.58
G_M63296_IG02:
movzx r15, byte ptr [rbp+0x20]
mov edi, dword ptr [rbx+0x08]
mov rsi, bword ptr [rbx+0x10]
mov eax, dword ptr [rbx+0x18]
cmp edi, eax
jae SHORT G_M63296_IG04
;; size=19 bbWeight=1 PerfScore 8.25
G_M63296_IG03:
mov eax, edi
mov word ptr [rsi+2*rax], 91
inc edi
mov dword ptr [rbx+0x08], edi
jmp SHORT G_M63296_IG05
- align [0 bytes for IG23]
- ;; size=15 bbWeight=0.50 PerfScore 2.25
+ align [4 bytes for IG25]
+ ;; size=19 bbWeight=0.50 PerfScore 2.25
G_M63296_IG04:
mov rdi, rbx
mov esi, 91
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=20 bbWeight=0.50 PerfScore 1.88
G_M63296_IG05:
mov edi, 49
mov esi, 48
test r15d, r15d
cmove edi, esi
movzx rsi, di
mov edi, dword ptr [rbx+0x08]
mov rax, bword ptr [rbx+0x10]
mov ecx, dword ptr [rbx+0x18]
cmp edi, ecx
jae SHORT G_M63296_IG07
;; size=33 bbWeight=1 PerfScore 8.50
G_M63296_IG06:
mov ecx, edi
mov word ptr [rax+2*rcx], si
inc edi
mov dword ptr [rbx+0x08], edi
jmp SHORT G_M63296_IG08
;; size=13 bbWeight=0.50 PerfScore 2.25
G_M63296_IG07:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M63296_IG08:
mov edi, dword ptr [rbx+0x08]
mov rsi, bword ptr [rbx+0x10]
mov eax, dword ptr [rbx+0x18]
cmp edi, eax
jae SHORT G_M63296_IG10
;; size=14 bbWeight=1 PerfScore 7.25
G_M63296_IG09:
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbx+0x08], edi
jmp SHORT G_M63296_IG11
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M63296_IG10:
mov rdi, rbx
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=20 bbWeight=0.50 PerfScore 1.88
G_M63296_IG11:
mov r8, qword ptr [rbp+0x10]
mov qword ptr [rbp-0x30], r8
mov r8, 0xD1FFAB1E ; const ptr
mov r14, gword ptr [r8]
lea r8, bword ptr [rbp-0x30]
lea r13, bword ptr [rbx+0x10]
mov r9, r13
mov esi, dword ptr [rbx+0x08]
mov edx, dword ptr [r9+0x08]
cmp esi, edx
- ja G_M63296_IG98
+ ja G_M63296_IG114
mov r9, bword ptr [r9]
mov ecx, esi
lea r9, bword ptr [r9+2*rcx]
sub edx, esi
mov rsi, r9
mov r9, 0xD1FFAB1E
mov rdi, qword ptr [r8]
mov gword ptr [rsp], r14
mov r8, 0xD1FFAB1E
mov qword ptr [rsp+0x08], r8
mov r8, r9
mov r9d, 12
lea rcx, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:TryFormat[ushort](System.DateTime,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.TimeSpan):ubyte
call [rax]System.DateTimeFormat:TryFormat[ushort](System.DateTime,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.TimeSpan):ubyte
test eax, eax
je SHORT G_M63296_IG13
;; size=122 bbWeight=1 PerfScore 24.00
G_M63296_IG12:
mov edi, dword ptr [rbp-0x38]
add dword ptr [rbx+0x08], edi
jmp SHORT G_M63296_IG15
;; size=8 bbWeight=0.50 PerfScore 3.00
G_M63296_IG13:
mov rdi, qword ptr [rbp-0x30]
mov rcx, 0xD1FFAB1E
mov rdx, r14
mov rsi, 0xD1FFAB1E ; 'HH:mm:ss.FFF'
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:Format(System.DateTime,System.String,System.IFormatProvider,System.TimeSpan):System.String
call [rax]System.DateTimeFormat:Format(System.DateTime,System.String,System.IFormatProvider,System.TimeSpan):System.String
test rax, rax
je SHORT G_M63296_IG15
mov edi, dword ptr [rbx+0x08]
cmp dword ptr [rax+0x08], 1
jne SHORT G_M63296_IG14
cmp edi, dword ptr [rbx+0x18]
jae SHORT G_M63296_IG14
mov rsi, r13
cmp edi, dword ptr [rsi+0x08]
- jae G_M63296_IG97
+ jae G_M63296_IG113
mov rsi, bword ptr [rsi]
mov ecx, edi
movzx rax, word ptr [rax+0x0C]
mov word ptr [rsi+2*rcx], ax
inc edi
mov dword ptr [rbx+0x08], edi
jmp SHORT G_M63296_IG15
;; size=90 bbWeight=0.50 PerfScore 14.50
G_M63296_IG14:
mov rdi, rbx
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:AppendSlow(System.String):this
call [rax]System.Text.ValueStringBuilder:AppendSlow(System.String):this
;; size=18 bbWeight=0.50 PerfScore 1.88
G_M63296_IG15:
mov edi, dword ptr [rbx+0x08]
mov rsi, bword ptr [rbx+0x10]
mov eax, dword ptr [rbx+0x18]
cmp edi, eax
jae SHORT G_M63296_IG17
;; size=14 bbWeight=1 PerfScore 7.25
G_M63296_IG16:
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbx+0x08], edi
jmp SHORT G_M63296_IG18
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M63296_IG17:
mov rdi, rbx
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=20 bbWeight=0.50 PerfScore 1.88
G_M63296_IG18:
movzx rdi, byte ptr [rbp+0x18]
mov dword ptr [rbp-0x3C], edi
mov rdi, 0xD1FFAB1E ; const ptr
mov r14, gword ptr [rdi]
mov r12, r14
lea rdi, bword ptr [rbp-0x3C]
mov rax, r13
mov ecx, dword ptr [rbx+0x08]
mov edx, dword ptr [rax+0x08]
cmp ecx, edx
- ja G_M63296_IG98
+ ja G_M63296_IG114
mov rax, bword ptr [rax]
mov esi, ecx
lea rax, bword ptr [rax+2*rsi]
sub edx, ecx
mov bword ptr [rbp-0xC0], rax
mov dword ptr [rbp-0xB0], edx
mov r8d, dword ptr [rdi]
mov dword ptr [rbp-0x4C], r8d
test r8d, r8d
- jge SHORT G_M63296_IG22
+ jge SHORT G_M63296_IG24
;; size=81 bbWeight=1 PerfScore 19.75
G_M63296_IG19:
+ test r12, r12
+ je SHORT G_M63296_IG20
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
+ jmp SHORT G_M63296_IG21
+ ;; size=22 bbWeight=0.50 PerfScore 3.38
+G_M63296_IG20:
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M63296_IG21:
mov r8, gword ptr [rax+0x28]
test r8, r8
- jne SHORT G_M63296_IG20
+ jne SHORT G_M63296_IG22
xor rdx, rdx
xor ecx, ecx
- jmp SHORT G_M63296_IG21
- ;; size=30 bbWeight=0.50 PerfScore 4.62
-G_M63296_IG20:
+ jmp SHORT G_M63296_IG23
+ ;; size=15 bbWeight=0.50 PerfScore 2.88
+G_M63296_IG22:
lea rdx, bword ptr [r8+0x0C]
mov ecx, dword ptr [r8+0x08]
;; size=8 bbWeight=0.50 PerfScore 1.25
-G_M63296_IG21:
+G_M63296_IG23:
lea r8, [rbp-0x48]
mov qword ptr [rsp], r8
mov r8, bword ptr [rbp-0xC0]
mov r9d, dword ptr [rbp-0xB0]
mov edi, dword ptr [rbp-0x4C]
mov esi, -1
mov rax, 0xD1FFAB1E ; code for System.Number:TryNegativeInt32ToDecStr[ushort](int,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte
call [rax]System.Number:TryNegativeInt32ToDecStr[ushort](int,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte
- jmp G_M63296_IG32
+ jmp G_M63296_IG34
;; size=47 bbWeight=0.50 PerfScore 5.00
-G_M63296_IG22:
+G_M63296_IG24:
mov r8d, dword ptr [rbp-0x4C]
mov edi, r8d
mov ecx, r8d
or ecx, 1
lzcnt ecx, ecx
xor ecx, 31
mov rsi, 0xD1FFAB1E ; static handle
add rdi, qword ptr [rsi+8*rcx]
sar rdi, 32
cmp edi, edx
- jg G_M63296_IG30
+ jg G_M63296_IG32
mov dword ptr [rbp-0x48], edi
mov bword ptr [rbp-0x58], rax
movsxd rdi, edi
lea rdi, [rax+2*rdi]
cmp r8d, 10
- jb SHORT G_M63296_IG28
+ jb SHORT G_M63296_IG30
+ ;; NOP compensation instructions of 4 bytes.
cmp r8d, 100
- jb SHORT G_M63296_IG27
+ jb SHORT G_M63296_IG29
mov rax, 0xD1FFAB1E ; const ptr
mov rax, gword ptr [rax]
- ;; size=85 bbWeight=0.50 PerfScore 8.25
-G_M63296_IG23:
+ ;; size=89 bbWeight=0.50 PerfScore 8.25
+G_M63296_IG25:
add rdi, -4
mov ecx, r8d
imul rcx, rcx, 0xD1FFAB1E
shr rcx, 37
imul edx, ecx, 100
sub r8d, edx
mov rdx, rax
+ cmp byte ptr [rdx], dl
shl r8d, 2
mov esi, r8d
mov edx, dword ptr [rdx+rsi+0x10]
mov dword ptr [rdi], edx
cmp ecx, 100
- jae SHORT G_M63296_IG26
- ;; size=45 bbWeight=4 PerfScore 42.00
-G_M63296_IG24:
+ jae SHORT G_M63296_IG28
+ ;; size=47 bbWeight=4 PerfScore 54.00
+G_M63296_IG26:
cmp ecx, 10
- jb SHORT G_M63296_IG25
+ jb SHORT G_M63296_IG27
add rdi, -4
mov rax, 0xD1FFAB1E ; const ptr
mov rax, gword ptr [rax]
+ cmp byte ptr [rax], al
shl ecx, 2
mov eax, dword ptr [rax+rcx+0x10]
mov dword ptr [rdi], eax
- jmp SHORT G_M63296_IG29
- ;; size=33 bbWeight=0.50 PerfScore 4.62
-G_M63296_IG25:
+ jmp SHORT G_M63296_IG31
+ ;; size=35 bbWeight=0.50 PerfScore 6.12
+G_M63296_IG27:
mov r8d, ecx
- jmp SHORT G_M63296_IG28
- align [0 bytes for IG46]
+ jmp SHORT G_M63296_IG30
+ align [0 bytes for IG52]
;; size=5 bbWeight=0.25 PerfScore 0.56
-G_M63296_IG26:
+G_M63296_IG28:
mov r8d, ecx
- jmp SHORT G_M63296_IG23
+ jmp SHORT G_M63296_IG25
;; size=5 bbWeight=2 PerfScore 4.50
-G_M63296_IG27:
+G_M63296_IG29:
mov ecx, r8d
- jmp SHORT G_M63296_IG24
+ jmp SHORT G_M63296_IG26
;; size=5 bbWeight=0.25 PerfScore 0.56
-G_M63296_IG28:
+G_M63296_IG30:
lea eax, [r8+0x30]
mov word ptr [rdi-0x02], ax
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M63296_IG29:
+G_M63296_IG31:
xor edi, edi
mov bword ptr [rbp-0x58], rdi
mov eax, 1
- jmp SHORT G_M63296_IG31
+ jmp SHORT G_M63296_IG33
;; size=13 bbWeight=0.50 PerfScore 1.75
-G_M63296_IG30:
+G_M63296_IG32:
xor eax, eax
mov dword ptr [rbp-0x48], eax
;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M63296_IG31:
+G_M63296_IG33:
xor rdi, rdi
mov bword ptr [rbp-0x58], rdi
;; size=6 bbWeight=0.50 PerfScore 0.62
-G_M63296_IG32:
+G_M63296_IG34:
test eax, eax
- je SHORT G_M63296_IG34
+ je SHORT G_M63296_IG36
;; size=4 bbWeight=1 PerfScore 1.25
-G_M63296_IG33:
+G_M63296_IG35:
mov edi, dword ptr [rbp-0x48]
add dword ptr [rbx+0x08], edi
- jmp G_M63296_IG38
+ jmp G_M63296_IG42
;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M63296_IG34:
+G_M63296_IG36:
mov eax, dword ptr [rbp-0x3C]
mov dword ptr [rbp-0x5C], eax
test eax, eax
- jge SHORT G_M63296_IG35
+ jge SHORT G_M63296_IG39
+ test r12, r12
+ je SHORT G_M63296_IG37
mov rdi, r12
mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rcx]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
+ jmp SHORT G_M63296_IG38
+ ;; size=32 bbWeight=0.50 PerfScore 5.00
+G_M63296_IG37:
+ mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rcx]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M63296_IG38:
mov rdx, gword ptr [rax+0x28]
mov edi, dword ptr [rbp-0x5C]
mov esi, -1
mov rax, 0xD1FFAB1E ; code for System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
call [rax]System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
- jmp SHORT G_M63296_IG36
- ;; size=51 bbWeight=0.50 PerfScore 7.62
-G_M63296_IG35:
+ jmp SHORT G_M63296_IG40
+ ;; size=26 bbWeight=0.50 PerfScore 4.25
+G_M63296_IG39:
mov eax, dword ptr [rbp-0x5C]
mov edi, eax
mov rax, 0xD1FFAB1E ; code for System.Number:UInt32ToDecStr(uint):System.String
call [rax]System.Number:UInt32ToDecStr(uint):System.String
;; size=17 bbWeight=0.50 PerfScore 2.25
-G_M63296_IG36:
+G_M63296_IG40:
test rax, rax
- je SHORT G_M63296_IG38
+ je SHORT G_M63296_IG42
mov edi, dword ptr [rbx+0x08]
cmp dword ptr [rax+0x08], 1
- jne SHORT G_M63296_IG37
+ jne SHORT G_M63296_IG41
cmp edi, dword ptr [rbx+0x18]
- jae SHORT G_M63296_IG37
+ jae SHORT G_M63296_IG41
mov rsi, r13
cmp edi, dword ptr [rsi+0x08]
- jae G_M63296_IG97
+ jae G_M63296_IG113
mov rsi, bword ptr [rsi]
mov ecx, edi
movzx rax, word ptr [rax+0x0C]
mov word ptr [rsi+2*rcx], ax
inc edi
mov dword ptr [rbx+0x08], edi
- jmp SHORT G_M63296_IG38
+ jmp SHORT G_M63296_IG42
;; size=51 bbWeight=0.50 PerfScore 12.00
-G_M63296_IG37:
+G_M63296_IG41:
mov rdi, rbx
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:AppendSlow(System.String):this
call [rax]System.Text.ValueStringBuilder:AppendSlow(System.String):this
;; size=18 bbWeight=0.50 PerfScore 1.88
-G_M63296_IG38:
+G_M63296_IG42:
mov edi, dword ptr [rbx+0x08]
mov rsi, bword ptr [rbx+0x10]
mov eax, dword ptr [rbx+0x18]
cmp edi, eax
- jae SHORT G_M63296_IG40
+ jae SHORT G_M63296_IG44
;; size=14 bbWeight=1 PerfScore 7.25
-G_M63296_IG39:
+G_M63296_IG43:
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbx+0x08], edi
- jmp SHORT G_M63296_IG41
+ jmp SHORT G_M63296_IG45
;; size=15 bbWeight=0.50 PerfScore 2.25
-G_M63296_IG40:
+G_M63296_IG44:
mov rdi, rbx
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M63296_IG41:
+G_M63296_IG45:
test r15d, r15d
- je G_M63296_IG61
+ je G_M63296_IG69
;; size=9 bbWeight=1 PerfScore 1.25
-G_M63296_IG42:
+G_M63296_IG46:
movzx rdi, byte ptr [rbp+0x1A]
mov dword ptr [rbp-0x60], edi
lea rdi, bword ptr [rbp-0x60]
mov rax, r13
mov ecx, dword ptr [rbx+0x08]
mov edx, dword ptr [rax+0x08]
cmp ecx, edx
- ja G_M63296_IG98
+ ja G_M63296_IG114
mov rax, bword ptr [rax]
mov esi, ecx
lea r15, bword ptr [rax+2*rsi]
sub edx, ecx
mov r12, r15
mov dword ptr [rbp-0xB4], edx
mov ecx, dword ptr [rdi]
mov dword ptr [rbp-0x6C], ecx
test ecx, ecx
- jge SHORT G_M63296_IG45
+ jge SHORT G_M63296_IG51
+ test r14, r14
+ je SHORT G_M63296_IG47
mov rdi, r14
mov rdx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rdx]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
+ jmp SHORT G_M63296_IG48
+ ;; size=80 bbWeight=0.50 PerfScore 11.62
+G_M63296_IG47:
+ mov rdx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rdx]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M63296_IG48:
mov r8, gword ptr [rax+0x28]
test r8, r8
- jne SHORT G_M63296_IG43
+ jne SHORT G_M63296_IG49
xor rdx, rdx
xor ecx, ecx
- jmp SHORT G_M63296_IG44
- ;; size=88 bbWeight=0.50 PerfScore 12.88
-G_M63296_IG43:
+ jmp SHORT G_M63296_IG50
+ ;; size=15 bbWeight=0.50 PerfScore 2.88
+G_M63296_IG49:
lea rdx, bword ptr [r8+0x0C]
mov ecx, dword ptr [r8+0x08]
;; size=8 bbWeight=0.50 PerfScore 1.25
-G_M63296_IG44:
+G_M63296_IG50:
lea r8, [rbp-0x68]
mov qword ptr [rsp], r8
mov r8, r12
mov r9d, dword ptr [rbp-0xB4]
mov edi, dword ptr [rbp-0x6C]
mov esi, -1
mov rax, 0xD1FFAB1E ; code for System.Number:TryNegativeInt32ToDecStr[ushort](int,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte
call [rax]System.Number:TryNegativeInt32ToDecStr[ushort](int,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte
- jmp G_M63296_IG55
+ jmp G_M63296_IG61
;; size=43 bbWeight=0.50 PerfScore 4.62
-G_M63296_IG45:
+G_M63296_IG51:
mov ecx, dword ptr [rbp-0x6C]
mov eax, ecx
mov edi, ecx
or edi, 1
lzcnt edi, edi
xor edi, 31
mov rsi, 0xD1FFAB1E ; static handle
add rax, qword ptr [rsi+8*rdi]
sar rax, 32
cmp eax, edx
- jg G_M63296_IG53
+ jg G_M63296_IG59
mov dword ptr [rbp-0x68], eax
mov bword ptr [rbp-0x78], r15
movsxd rdi, eax
lea rdi, [r15+2*rdi]
cmp ecx, 10
- jb SHORT G_M63296_IG51
+ jb SHORT G_M63296_IG57
cmp ecx, 100
- jb SHORT G_M63296_IG50
+ jb SHORT G_M63296_IG56
mov rax, 0xD1FFAB1E ; const ptr
mov rax, gword ptr [rax]
;; size=80 bbWeight=0.50 PerfScore 8.25
-G_M63296_IG46:
+G_M63296_IG52:
add rdi, -4
mov edx, ecx
imul rdx, rdx, 0xD1FFAB1E
shr rdx, 37
imul esi, edx, 100
sub ecx, esi
mov rsi, rax
+ cmp byte ptr [rsi], sil
shl ecx, 2
mov ecx, dword ptr [rsi+rcx+0x10]
mov dword ptr [rdi], ecx
cmp edx, 100
- jae SHORT G_M63296_IG49
- ;; size=39 bbWeight=4 PerfScore 41.00
-G_M63296_IG47:
+ jae SHORT G_M63296_IG55
+ ;; size=42 bbWeight=4 PerfScore 53.00
+G_M63296_IG53:
cmp edx, 10
- jb SHORT G_M63296_IG48
+ jb SHORT G_M63296_IG54
add rdi, -4
mov rax, 0xD1FFAB1E ; const ptr
mov rax, gword ptr [rax]
+ cmp byte ptr [rax], al
shl edx, 2
mov ecx, edx
mov eax, dword ptr [rax+rcx+0x10]
mov dword ptr [rdi], eax
- jmp SHORT G_M63296_IG52
- ;; size=35 bbWeight=0.50 PerfScore 4.75
-G_M63296_IG48:
+ jmp SHORT G_M63296_IG58
+ ;; size=37 bbWeight=0.50 PerfScore 6.25
+G_M63296_IG54:
mov ecx, edx
- jmp SHORT G_M63296_IG51
- align [0 bytes for IG65]
+ jmp SHORT G_M63296_IG57
+ align [0 bytes for IG75]
;; size=4 bbWeight=0.25 PerfScore 0.56
-G_M63296_IG49:
+G_M63296_IG55:
mov ecx, edx
- jmp SHORT G_M63296_IG46
+ jmp SHORT G_M63296_IG52
;; size=4 bbWeight=2 PerfScore 4.50
-G_M63296_IG50:
+G_M63296_IG56:
mov edx, ecx
- jmp SHORT G_M63296_IG47
+ jmp SHORT G_M63296_IG53
;; size=4 bbWeight=0.25 PerfScore 0.56
-G_M63296_IG51:
+G_M63296_IG57:
lea eax, [rcx+0x30]
mov word ptr [rdi-0x02], ax
;; size=7 bbWeight=0.50 PerfScore 0.75
-G_M63296_IG52:
+G_M63296_IG58:
xor edi, edi
mov bword ptr [rbp-0x78], rdi
mov eax, 1
- jmp SHORT G_M63296_IG54
+ jmp SHORT G_M63296_IG60
;; size=13 bbWeight=0.50 PerfScore 1.75
-G_M63296_IG53:
+G_M63296_IG59:
xor eax, eax
mov dword ptr [rbp-0x68], eax
;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M63296_IG54:
+G_M63296_IG60:
xor rdi, rdi
mov bword ptr [rbp-0x78], rdi
;; size=6 bbWeight=0.50 PerfScore 0.62
-G_M63296_IG55:
+G_M63296_IG61:
test eax, eax
- je SHORT G_M63296_IG56
+ je SHORT G_M63296_IG62
mov edi, dword ptr [rbp-0x68]
add dword ptr [rbx+0x08], edi
- jmp G_M63296_IG60
+ jmp G_M63296_IG68
;; size=15 bbWeight=0.50 PerfScore 3.62
-G_M63296_IG56:
+G_M63296_IG62:
mov r15d, dword ptr [rbp-0x60]
test r15d, r15d
- jge SHORT G_M63296_IG57
+ jge SHORT G_M63296_IG65
+ test r14, r14
+ je SHORT G_M63296_IG63
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
+ jmp SHORT G_M63296_IG64
+ ;; size=31 bbWeight=0.50 PerfScore 4.50
+G_M63296_IG63:
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M63296_IG64:
mov rdx, gword ptr [rax+0x28]
mov edi, r15d
mov esi, -1
mov rax, 0xD1FFAB1E ; code for System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
call [rax]System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
- jmp SHORT G_M63296_IG58
- ;; size=50 bbWeight=0.50 PerfScore 6.75
-G_M63296_IG57:
+ jmp SHORT G_M63296_IG66
+ ;; size=26 bbWeight=0.50 PerfScore 3.88
+G_M63296_IG65:
mov edi, r15d
mov rax, 0xD1FFAB1E ; code for System.Number:UInt32ToDecStr(uint):System.String
call [rax]System.Number:UInt32ToDecStr(uint):System.String
;; size=15 bbWeight=0.50 PerfScore 1.75
-G_M63296_IG58:
+G_M63296_IG66:
test rax, rax
- je SHORT G_M63296_IG60
+ je SHORT G_M63296_IG68
mov edi, dword ptr [rbx+0x08]
cmp dword ptr [rax+0x08], 1
- jne SHORT G_M63296_IG59
+ jne SHORT G_M63296_IG67
cmp edi, dword ptr [rbx+0x18]
- jae SHORT G_M63296_IG59
+ jae SHORT G_M63296_IG67
cmp edi, dword ptr [r13+0x08]
- jae G_M63296_IG97
+ jae G_M63296_IG113
mov rsi, bword ptr [r13]
mov ecx, edi
movzx rax, word ptr [rax+0x0C]
mov word ptr [rsi+2*rcx], ax
inc edi
mov dword ptr [rbx+0x08], edi
- jmp SHORT G_M63296_IG60
+ jmp SHORT G_M63296_IG68
;; size=50 bbWeight=0.50 PerfScore 11.88
-G_M63296_IG59:
+G_M63296_IG67:
mov rdi, rbx
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:AppendSlow(System.String):this
call [rax]System.Text.ValueStringBuilder:AppendSlow(System.String):this
;; size=18 bbWeight=0.50 PerfScore 1.88
-G_M63296_IG60:
+G_M63296_IG68:
mov edi, dword ptr [rbx+0x08]
mov rax, bword ptr [rbx+0x10]
mov ecx, dword ptr [rbx+0x18]
cmp edi, ecx
- jae G_M63296_IG91
+ jae G_M63296_IG107
+ cmp edi, ecx
+ jae G_M63296_IG113
mov ecx, edi
mov word ptr [rax+2*rcx], 59
inc edi
mov dword ptr [rbx+0x08], edi
- jmp G_M63296_IG92
- ;; size=36 bbWeight=0.50 PerfScore 5.88
-G_M63296_IG61:
+ jmp G_M63296_IG108
+ ;; size=44 bbWeight=0.50 PerfScore 6.50
+G_M63296_IG69:
movzx rdi, byte ptr [rbp+0x19]
mov dword ptr [rbp-0x7C], edi
mov r15, r14
lea rdi, bword ptr [rbp-0x7C]
mov rax, r13
mov ecx, dword ptr [rbx+0x08]
mov edx, dword ptr [rax+0x08]
cmp ecx, edx
- ja G_M63296_IG98
+ ja G_M63296_IG114
mov rax, bword ptr [rax]
mov esi, ecx
lea r12, bword ptr [rax+2*rsi]
sub edx, ecx
mov bword ptr [rbp-0xC8], r12
mov dword ptr [rbp-0xB8], edx
mov esi, dword ptr [rdi]
mov dword ptr [rbp-0x8C], esi
test esi, esi
- jge SHORT G_M63296_IG64
+ jge SHORT G_M63296_IG74
+ test r15, r15
+ je SHORT G_M63296_IG70
mov rdi, r15
mov rdx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rdx]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
+ jmp SHORT G_M63296_IG71
+ ;; size=90 bbWeight=0.50 PerfScore 12.12
+G_M63296_IG70:
+ mov rdx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rdx]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M63296_IG71:
mov r8, gword ptr [rax+0x28]
test r8, r8
- jne SHORT G_M63296_IG62
+ jne SHORT G_M63296_IG72
xor rdx, rdx
xor ecx, ecx
- jmp SHORT G_M63296_IG63
- ;; size=98 bbWeight=0.50 PerfScore 13.38
-G_M63296_IG62:
+ jmp SHORT G_M63296_IG73
+ ;; size=15 bbWeight=0.50 PerfScore 2.88
+G_M63296_IG72:
lea rdx, bword ptr [r8+0x0C]
mov ecx, dword ptr [r8+0x08]
;; size=8 bbWeight=0.50 PerfScore 1.25
-G_M63296_IG63:
+G_M63296_IG73:
lea r8, [rbp-0x88]
mov qword ptr [rsp], r8
mov r8, bword ptr [rbp-0xC8]
mov r9d, dword ptr [rbp-0xB8]
mov edi, dword ptr [rbp-0x8C]
mov esi, -1
mov rax, 0xD1FFAB1E ; code for System.Number:TryNegativeInt32ToDecStr[ushort](int,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte
call [rax]System.Number:TryNegativeInt32ToDecStr[ushort](int,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte
- jmp G_M63296_IG74
+ jmp G_M63296_IG84
;; size=53 bbWeight=0.50 PerfScore 5.00
-G_M63296_IG64:
+G_M63296_IG74:
mov esi, dword ptr [rbp-0x8C]
mov eax, esi
mov edi, esi
or edi, 1
lzcnt edi, edi
xor edi, 31
mov rcx, 0xD1FFAB1E ; static handle
add rax, qword ptr [rcx+8*rdi]
sar rax, 32
cmp eax, edx
- jg G_M63296_IG72
+ jg G_M63296_IG82
mov dword ptr [rbp-0x88], eax
mov bword ptr [rbp-0x98], r12
movsxd rdi, eax
lea rdi, [r12+2*rdi]
cmp esi, 10
- jb SHORT G_M63296_IG70
+ jb SHORT G_M63296_IG80
cmp esi, 100
- jb SHORT G_M63296_IG69
+ jb SHORT G_M63296_IG79
mov rax, 0xD1FFAB1E ; const ptr
mov rax, gword ptr [rax]
;; size=89 bbWeight=0.50 PerfScore 8.25
-G_M63296_IG65:
+G_M63296_IG75:
add rdi, -4
mov ecx, esi
imul rcx, rcx, 0xD1FFAB1E
shr rcx, 37
imul edx, ecx, 100
sub esi, edx
mov rdx, rax
+ cmp byte ptr [rdx], dl
shl esi, 2
mov edx, dword ptr [rdx+rsi+0x10]
mov dword ptr [rdi], edx
cmp ecx, 100
- jae SHORT G_M63296_IG68
- ;; size=39 bbWeight=4 PerfScore 41.00
-G_M63296_IG66:
+ jae SHORT G_M63296_IG78
+ ;; size=41 bbWeight=4 PerfScore 53.00
+G_M63296_IG76:
cmp ecx, 10
- jb SHORT G_M63296_IG67
+ jb SHORT G_M63296_IG77
add rdi, -4
mov rax, 0xD1FFAB1E ; const ptr
mov rax, gword ptr [rax]
+ cmp byte ptr [rax], al
shl ecx, 2
mov eax, dword ptr [rax+rcx+0x10]
mov dword ptr [rdi], eax
- jmp SHORT G_M63296_IG71
- ;; size=33 bbWeight=0.50 PerfScore 4.62
-G_M63296_IG67:
+ jmp SHORT G_M63296_IG81
+ ;; size=35 bbWeight=0.50 PerfScore 6.12
+G_M63296_IG77:
mov esi, ecx
- jmp SHORT G_M63296_IG70
+ jmp SHORT G_M63296_IG80
;; size=4 bbWeight=0.25 PerfScore 0.56
-G_M63296_IG68:
+G_M63296_IG78:
mov esi, ecx
- jmp SHORT G_M63296_IG65
+ jmp SHORT G_M63296_IG75
;; size=4 bbWeight=2 PerfScore 4.50
-G_M63296_IG69:
+G_M63296_IG79:
mov ecx, esi
- jmp SHORT G_M63296_IG66
+ jmp SHORT G_M63296_IG76
;; size=4 bbWeight=0.25 PerfScore 0.56
-G_M63296_IG70:
+G_M63296_IG80:
lea eax, [rsi+0x30]
mov word ptr [rdi-0x02], ax
;; size=7 bbWeight=0.50 PerfScore 0.75
-G_M63296_IG71:
+G_M63296_IG81:
xor edi, edi
mov bword ptr [rbp-0x98], rdi
mov eax, 1
- jmp SHORT G_M63296_IG73
+ jmp SHORT G_M63296_IG83
;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M63296_IG72:
+G_M63296_IG82:
xor eax, eax
mov dword ptr [rbp-0x88], eax
;; size=8 bbWeight=0.50 PerfScore 0.62
-G_M63296_IG73:
+G_M63296_IG83:
xor rdi, rdi
mov bword ptr [rbp-0x98], rdi
;; size=9 bbWeight=0.50 PerfScore 0.62
-G_M63296_IG74:
+G_M63296_IG84:
test eax, eax
- je SHORT G_M63296_IG75
+ je SHORT G_M63296_IG85
mov edi, dword ptr [rbp-0x88]
add dword ptr [rbx+0x08], edi
- jmp G_M63296_IG79
+ jmp G_M63296_IG91
;; size=18 bbWeight=0.50 PerfScore 3.62
-G_M63296_IG75:
+G_M63296_IG85:
mov r12d, dword ptr [rbp-0x7C]
test r12d, r12d
- jge SHORT G_M63296_IG76
+ jge SHORT G_M63296_IG88
+ test r15, r15
+ je SHORT G_M63296_IG86
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
+ jmp SHORT G_M63296_IG87
+ ;; size=31 bbWeight=0.50 PerfScore 4.50
+G_M63296_IG86:
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M63296_IG87:
mov rdx, gword ptr [rax+0x28]
mov edi, r12d
mov esi, -1
mov rax, 0xD1FFAB1E ; code for System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
call [rax]System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
- jmp SHORT G_M63296_IG77
- ;; size=50 bbWeight=0.50 PerfScore 6.75
-G_M63296_IG76:
+ jmp SHORT G_M63296_IG89
+ ;; size=26 bbWeight=0.50 PerfScore 3.88
+G_M63296_IG88:
mov edi, r12d
mov rax, 0xD1FFAB1E ; code for System.Number:UInt32ToDecStr(uint):System.String
call [rax]System.Number:UInt32ToDecStr(uint):System.String
;; size=15 bbWeight=0.50 PerfScore 1.75
-G_M63296_IG77:
+G_M63296_IG89:
test rax, rax
- je SHORT G_M63296_IG79
+ je SHORT G_M63296_IG91
mov edi, dword ptr [rbx+0x08]
cmp dword ptr [rax+0x08], 1
- jne SHORT G_M63296_IG78
+ jne SHORT G_M63296_IG90
cmp edi, dword ptr [rbx+0x18]
- jae SHORT G_M63296_IG78
+ jae SHORT G_M63296_IG90
mov rsi, r13
cmp edi, dword ptr [rsi+0x08]
- jae G_M63296_IG97
+ jae G_M63296_IG113
mov rsi, bword ptr [rsi]
mov ecx, edi
cmp dword ptr [rax+0x08], 0
- jbe G_M63296_IG97
+ jbe G_M63296_IG113
movzx rax, word ptr [rax+0x0C]
mov word ptr [rsi+2*rcx], ax
inc edi
mov dword ptr [rbx+0x08], edi
- jmp SHORT G_M63296_IG79
+ jmp SHORT G_M63296_IG91
;; size=61 bbWeight=0.50 PerfScore 14.00
-G_M63296_IG78:
+G_M63296_IG90:
mov rdi, rbx
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:AppendSlow(System.String):this
call [rax]System.Text.ValueStringBuilder:AppendSlow(System.String):this
;; size=18 bbWeight=0.50 PerfScore 1.88
-G_M63296_IG79:
+G_M63296_IG91:
mov edi, dword ptr [rbx+0x08]
mov rsi, bword ptr [rbx+0x10]
mov eax, dword ptr [rbx+0x18]
cmp edi, eax
- jae SHORT G_M63296_IG80
+ jae SHORT G_M63296_IG92
cmp edi, eax
- jae G_M63296_IG97
+ jae G_M63296_IG113
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbx+0x08], edi
- jmp SHORT G_M63296_IG81
+ jmp SHORT G_M63296_IG93
;; size=37 bbWeight=0.50 PerfScore 6.50
-G_M63296_IG80:
+G_M63296_IG92:
mov rdi, rbx
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M63296_IG81:
+G_M63296_IG93:
mov edi, dword ptr [rbp+0x1C]
mov dword ptr [rbp-0x9C], edi
mov r15, r14
lea rdi, bword ptr [rbp-0x9C]
mov rax, r13
mov ecx, dword ptr [rbx+0x08]
mov edx, dword ptr [rax+0x08]
cmp ecx, edx
- ja G_M63296_IG98
+ ja G_M63296_IG114
mov rax, bword ptr [rax]
mov esi, ecx
lea rsi, bword ptr [rax+2*rsi]
sub edx, ecx
mov r14, rsi
mov r12d, edx
mov eax, dword ptr [rdi]
mov dword ptr [rbp-0xAC], eax
test eax, eax
- jge SHORT G_M63296_IG84
+ jge SHORT G_M63296_IG98
+ test r15, r15
+ je SHORT G_M63296_IG94
mov rdi, r15
mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rcx]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
+ jmp SHORT G_M63296_IG95
+ ;; size=87 bbWeight=0.50 PerfScore 11.38
+G_M63296_IG94:
+ mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rcx]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M63296_IG95:
mov r8, gword ptr [rax+0x28]
test r8, r8
- jne SHORT G_M63296_IG82
+ jne SHORT G_M63296_IG96
xor rdx, rdx
xor ecx, ecx
- jmp SHORT G_M63296_IG83
- ;; size=95 bbWeight=0.50 PerfScore 12.62
-G_M63296_IG82:
+ jmp SHORT G_M63296_IG97
+ ;; size=15 bbWeight=0.50 PerfScore 2.88
+G_M63296_IG96:
lea rdx, bword ptr [r8+0x0C]
mov ecx, dword ptr [r8+0x08]
;; size=8 bbWeight=0.50 PerfScore 1.25
-G_M63296_IG83:
+G_M63296_IG97:
lea r8, [rbp-0xA8]
mov qword ptr [rsp], r8
mov r8, r14
mov r9d, r12d
mov edi, dword ptr [rbp-0xAC]
mov esi, -1
mov rax, 0xD1FFAB1E ; code for System.Number:TryNegativeInt32ToDecStr[ushort](int,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte
call [rax]System.Number:TryNegativeInt32ToDecStr[ushort](int,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte
- jmp SHORT G_M63296_IG85
+ jmp SHORT G_M63296_IG99
;; size=42 bbWeight=0.50 PerfScore 4.25
-G_M63296_IG84:
+G_M63296_IG98:
mov eax, dword ptr [rbp-0xAC]
lea rcx, [rbp-0xA8]
mov edi, eax
mov rax, 0xD1FFAB1E ; code for System.Number:TryUInt32ToDecStr[ushort](uint,System.Span`1[ushort],byref):ubyte
call [rax]System.Number:TryUInt32ToDecStr[ushort](uint,System.Span`1[ushort],byref):ubyte
;; size=27 bbWeight=0.50 PerfScore 2.50
-G_M63296_IG85:
+G_M63296_IG99:
test eax, eax
- je SHORT G_M63296_IG86
+ je SHORT G_M63296_IG100
mov edi, dword ptr [rbp-0xA8]
add dword ptr [rbx+0x08], edi
- jmp G_M63296_IG90
+ jmp G_M63296_IG106
;; size=18 bbWeight=0.50 PerfScore 3.62
-G_M63296_IG86:
+G_M63296_IG100:
mov r14d, dword ptr [rbp-0x9C]
test r14d, r14d
- jge SHORT G_M63296_IG87
+ jge SHORT G_M63296_IG103
+ test r15, r15
+ je SHORT G_M63296_IG101
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
+ jmp SHORT G_M63296_IG102
+ ;; size=34 bbWeight=0.50 PerfScore 4.50
+G_M63296_IG101:
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M63296_IG102:
mov rdx, gword ptr [rax+0x28]
mov edi, r14d
mov esi, -1
mov rax, 0xD1FFAB1E ; code for System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
call [rax]System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
- jmp SHORT G_M63296_IG88
- ;; size=53 bbWeight=0.50 PerfScore 6.75
-G_M63296_IG87:
+ jmp SHORT G_M63296_IG104
+ ;; size=26 bbWeight=0.50 PerfScore 3.88
+G_M63296_IG103:
mov edi, r14d
mov rax, 0xD1FFAB1E ; code for System.Number:UInt32ToDecStr(uint):System.String
call [rax]System.Number:UInt32ToDecStr(uint):System.String
;; size=15 bbWeight=0.50 PerfScore 1.75
-G_M63296_IG88:
+G_M63296_IG104:
test rax, rax
- je SHORT G_M63296_IG90
+ je SHORT G_M63296_IG106
mov edi, dword ptr [rbx+0x08]
cmp dword ptr [rax+0x08], 1
- jne SHORT G_M63296_IG89
+ jne SHORT G_M63296_IG105
cmp edi, dword ptr [rbx+0x18]
- jae SHORT G_M63296_IG89
+ jae SHORT G_M63296_IG105
mov rsi, r13
cmp edi, dword ptr [rsi+0x08]
- jae G_M63296_IG97
+ jae G_M63296_IG113
mov rsi, bword ptr [rsi]
mov ecx, edi
cmp dword ptr [rax+0x08], 0
- jbe G_M63296_IG97
+ jbe G_M63296_IG113
movzx rax, word ptr [rax+0x0C]
mov word ptr [rsi+2*rcx], ax
inc edi
mov dword ptr [rbx+0x08], edi
- jmp SHORT G_M63296_IG90
+ jmp SHORT G_M63296_IG106
;; size=61 bbWeight=0.50 PerfScore 14.00
-G_M63296_IG89:
+G_M63296_IG105:
mov rdi, rbx
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:AppendSlow(System.String):this
call [rax]System.Text.ValueStringBuilder:AppendSlow(System.String):this
;; size=18 bbWeight=0.50 PerfScore 1.88
-G_M63296_IG90:
+G_M63296_IG106:
mov edi, dword ptr [rbx+0x08]
mov rsi, bword ptr [rbx+0x10]
mov eax, dword ptr [rbx+0x18]
cmp edi, eax
- jae SHORT G_M63296_IG91
+ jae SHORT G_M63296_IG107
cmp edi, eax
- jae SHORT G_M63296_IG97
+ jae SHORT G_M63296_IG113
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbx+0x08], edi
- jmp SHORT G_M63296_IG92
+ jmp SHORT G_M63296_IG108
;; size=33 bbWeight=0.50 PerfScore 6.50
-G_M63296_IG91:
+G_M63296_IG107:
mov rdi, rbx
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M63296_IG92:
+G_M63296_IG108:
mov edi, dword ptr [rbx+0x08]
mov rsi, bword ptr [rbx+0x10]
mov eax, dword ptr [rbx+0x18]
cmp edi, eax
- jae SHORT G_M63296_IG94
+ jae SHORT G_M63296_IG110
;; size=14 bbWeight=1 PerfScore 7.25
-G_M63296_IG93:
+G_M63296_IG109:
cmp edi, eax
- jae SHORT G_M63296_IG97
+ jae SHORT G_M63296_IG113
mov eax, edi
mov word ptr [rsi+2*rax], 93
inc edi
mov dword ptr [rbx+0x08], edi
- jmp SHORT G_M63296_IG95
+ jmp SHORT G_M63296_IG111
;; size=19 bbWeight=0.50 PerfScore 2.88
-G_M63296_IG94:
+G_M63296_IG110:
mov rdi, rbx
mov esi, 93
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M63296_IG95:
+G_M63296_IG111:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M63296_IG96:
+G_M63296_IG112:
add rsp, 184
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
-G_M63296_IG97:
+G_M63296_IG113:
call CORINFO_HELP_RNGCHKFAIL
;; size=5 bbWeight=0 PerfScore 0.00
-G_M63296_IG98:
+G_M63296_IG114:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2683, prolog size 55, PerfScore 814.41, instruction count 730, allocated bytes for code 2687 (MethodHash=a16208bf) for method System.TimeZoneInfo+StringSerializer:SerializeTransitionTime(System.TimeZoneInfo+TransitionTime,byref) (FullOpts)
+; Total bytes of code 2864, prolog size 55, PerfScore 899.63, instruction count 778, allocated bytes for code 2868 (MethodHash=a16208bf) for method System.TimeZoneInfo+StringSerializer:SerializeTransitionTime(System.TimeZoneInfo+TransitionTime,byref) (FullOpts)
125 (16.94 % of base) - System.String:Replace(System.String,System.String,int):System.String:this
; Assembly listing for method System.String:Replace(System.String,System.String,int):System.String:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 20 single block inlinees; 18 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 15, 8.50) ref -> rbx this class-hnd single-def <System.String>
; V01 arg1 [V01,T01] ( 13, 7 ) ref -> r15 class-hnd single-def <System.String>
; V02 arg2 [V02,T02] ( 12, 7 ) ref -> r14 class-hnd single-def <System.String>
; V03 arg3 [V03,T03] ( 6, 5 ) int -> r13 single-def
; V04 OutArgs [V04 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T73] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
-; V06 tmp2 [V06,T11] ( 2, 2 ) ref -> rdi class-hnd exact single-def "impAppendStmt" <System.Globalization.CompareInfo>
-; V07 tmp3 [V07,T12] ( 2, 2 ) ref -> rax class-hnd exact single-def "impAppendStmt" <System.Globalization.CompareInfo>
+; V05 tmp1 [V05,T75] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+; V06 tmp2 [V06,T15] ( 2, 2 ) ref -> rax class-hnd exact single-def "impAppendStmt" <System.Globalization.CompareInfo>
+; V07 tmp3 [V07,T16] ( 2, 2 ) ref -> rax class-hnd exact single-def "impAppendStmt" <System.Globalization.CompareInfo>
;* V08 tmp4 [V08 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V09 tmp5 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V10 tmp6 [V10 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ushort]>
;* V11 tmp7 [V11 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ushort]>
;* V12 tmp8 [V12 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ushort]>
-; V13 tmp9 [V13,T10] ( 4, 2 ) ref -> rax
+; V13 tmp9 [V13,T12] ( 4, 2 ) ref -> rax
;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V15 tmp11 [V15,T13] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" <System.String>
-; V16 tmp12 [V16,T07] ( 5, 2.50) ref -> rax
-;* V17 tmp13 [V17,T77] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V15 tmp11 [V15,T17] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" <System.String>
+; V16 tmp12 [V16,T09] ( 5, 2.50) ref -> rax
+;* V17 tmp13 [V17,T79] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V18 tmp14 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V19 tmp15 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V20 tmp16 [V20,T14] ( 2, 2 ) byref -> rcx single-def "Inlining Arg"
-; V21 tmp17 [V21,T26] ( 2, 2 ) int -> rdx "Inlining Arg"
+; V20 tmp16 [V20,T18] ( 2, 2 ) byref -> rcx single-def "Inlining Arg"
+; V21 tmp17 [V21,T30] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V22 tmp18 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V23 tmp19 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V24 tmp20 [V24,T15] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
-; V25 tmp21 [V25,T27] ( 2, 2 ) int -> r12 "Inlining Arg"
+; V24 tmp20 [V24,T19] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
+; V25 tmp21 [V25,T31] ( 2, 2 ) int -> r12 "Inlining Arg"
;* V26 tmp22 [V26 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V27 tmp23 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V28 tmp24 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V29 tmp25 [V29,T16] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
-; V30 tmp26 [V30,T28] ( 2, 2 ) int -> rsi "Inlining Arg"
+; V29 tmp25 [V29,T20] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
+; V30 tmp26 [V30,T32] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V31 tmp27 [V31 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V32 tmp28 [V32 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V33 tmp29 [V33 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ushort]>
;* V34 tmp30 [V34 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ushort]>
;* V35 tmp31 [V35 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ushort]>
-; V36 tmp32 [V36,T47] ( 2, 1 ) ref -> rdi
+; V36 tmp32 [V36,T13] ( 4, 2 ) ref -> rax
;* V37 tmp33 [V37 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V38 tmp34 [V38,T17] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" <System.String>
-; V39 tmp35 [V39,T08] ( 5, 2.50) ref -> rax
-;* V40 tmp36 [V40,T78] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V38 tmp34 [V38,T21] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" <System.String>
+; V39 tmp35 [V39,T10] ( 5, 2.50) ref -> rax
+;* V40 tmp36 [V40,T80] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V41 tmp37 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V42 tmp38 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V43 tmp39 [V43,T18] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
-; V44 tmp40 [V44,T29] ( 2, 2 ) int -> rdx "Inlining Arg"
+; V43 tmp39 [V43,T22] ( 2, 2 ) byref -> rcx single-def "Inlining Arg"
+; V44 tmp40 [V44,T33] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V45 tmp41 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V46 tmp42 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V47 tmp43 [V47,T19] ( 2, 2 ) byref -> rcx single-def "Inlining Arg"
-; V48 tmp44 [V48,T30] ( 2, 2 ) int -> r8 "Inlining Arg"
+; V47 tmp43 [V47,T23] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
+; V48 tmp44 [V48,T34] ( 2, 2 ) int -> r12 "Inlining Arg"
;* V49 tmp45 [V49 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V50 tmp46 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V51 tmp47 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V52 tmp48 [V52,T20] ( 2, 2 ) byref -> r9 single-def "Inlining Arg"
-; V53 tmp49 [V53,T31] ( 2, 2 ) int -> rax "Inlining Arg"
+; V52 tmp48 [V52,T24] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
+; V53 tmp49 [V53,T35] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V54 tmp50 [V54 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V55 tmp51 [V55 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
-; V56 tmp52 [V56,T21] ( 2, 2 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Globalization.CompareInfo>
+; V56 tmp52 [V56,T25] ( 2, 2 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.Globalization.CompareInfo>
;* V57 tmp53 [V57 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ushort]>
;* V58 tmp54 [V58 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ushort]>
;* V59 tmp55 [V59 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ushort]>
-; V60 tmp56 [V60,T48] ( 2, 1 ) ref -> rdi
-; V61 tmp57 [V61,T22] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" <System.String>
-; V62 tmp58 [V62,T09] ( 5, 2.50) ref -> rax
-;* V63 tmp59 [V63,T79] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V60 tmp56 [V60,T14] ( 4, 2 ) ref -> rax
+; V61 tmp57 [V61,T26] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" <System.String>
+; V62 tmp58 [V62,T11] ( 5, 2.50) ref -> rax
+;* V63 tmp59 [V63,T81] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V64 tmp60 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V65 tmp61 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V66 tmp62 [V66,T23] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
-; V67 tmp63 [V67,T32] ( 2, 2 ) int -> rdx "Inlining Arg"
+; V66 tmp62 [V66,T27] ( 2, 2 ) byref -> r13 single-def "Inlining Arg"
+; V67 tmp63 [V67,T36] ( 2, 2 ) int -> rcx "Inlining Arg"
;* V68 tmp64 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V69 tmp65 [V69 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V70 tmp66 [V70,T24] ( 2, 2 ) byref -> rcx single-def "Inlining Arg"
-; V71 tmp67 [V71,T33] ( 2, 2 ) int -> r8 "Inlining Arg"
+; V70 tmp66 [V70,T28] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
+; V71 tmp67 [V71,T37] ( 2, 2 ) int -> r12 "Inlining Arg"
;* V72 tmp68 [V72 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V73 tmp69 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V74 tmp70 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V75 tmp71 [V75,T25] ( 2, 2 ) byref -> r9 single-def "Inlining Arg"
-; V76 tmp72 [V76,T34] ( 2, 2 ) int -> rax "Inlining Arg"
-; V77 tmp73 [V77,T35] ( 3, 1.50) byref -> [rbp-0x38] "field V08._reference (fldOffset=0x0)" P-INDEP
-; V78 tmp74 [V78,T41] ( 3, 1.50) int -> [rbp-0x2C] "field V08._length (fldOffset=0x8)" P-INDEP
-; V79 tmp75 [V79,T49] ( 2, 1 ) byref -> r15 "field V09._reference (fldOffset=0x0)" P-INDEP
-; V80 tmp76 [V80,T61] ( 2, 1 ) int -> r12 "field V09._length (fldOffset=0x8)" P-INDEP
+; V75 tmp71 [V75,T29] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
+; V76 tmp72 [V76,T38] ( 2, 2 ) int -> rdi "Inlining Arg"
+; V77 tmp73 [V77,T39] ( 3, 1.50) byref -> [rbp-0x48] "field V08._reference (fldOffset=0x0)" P-INDEP
+; V78 tmp74 [V78,T45] ( 3, 1.50) int -> [rbp-0x2C] "field V08._length (fldOffset=0x8)" P-INDEP
+; V79 tmp75 [V79,T51] ( 2, 1 ) byref -> r15 "field V09._reference (fldOffset=0x0)" P-INDEP
+; V80 tmp76 [V80,T63] ( 2, 1 ) int -> r12 "field V09._length (fldOffset=0x8)" P-INDEP
;* V81 tmp77 [V81 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP
;* V82 tmp78 [V82 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
;* V83 tmp79 [V83 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
;* V84 tmp80 [V84 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
;* V85 tmp81 [V85 ] ( 0, 0 ) byref -> zero-ref single-def "field V12._reference (fldOffset=0x0)" P-INDEP
;* V86 tmp82 [V86 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
-; V87 tmp83 [V87,T50] ( 2, 1 ) byref -> rcx single-def "field V18._reference (fldOffset=0x0)" P-INDEP
-; V88 tmp84 [V88,T62] ( 2, 1 ) int -> rdx "field V18._length (fldOffset=0x8)" P-INDEP
+; V87 tmp83 [V87,T52] ( 2, 1 ) byref -> rcx single-def "field V18._reference (fldOffset=0x0)" P-INDEP
+; V88 tmp84 [V88,T64] ( 2, 1 ) int -> rdx "field V18._length (fldOffset=0x8)" P-INDEP
;* V89 tmp85 [V89 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
;* V90 tmp86 [V90 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
-; V91 tmp87 [V91,T51] ( 2, 1 ) byref -> r15 single-def "field V22._reference (fldOffset=0x0)" P-INDEP
-; V92 tmp88 [V92,T63] ( 2, 1 ) int -> r12 "field V22._length (fldOffset=0x8)" P-INDEP
+; V91 tmp87 [V91,T53] ( 2, 1 ) byref -> r15 single-def "field V22._reference (fldOffset=0x0)" P-INDEP
+; V92 tmp88 [V92,T65] ( 2, 1 ) int -> r12 "field V22._length (fldOffset=0x8)" P-INDEP
;* V93 tmp89 [V93 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
;* V94 tmp90 [V94 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
-; V95 tmp91 [V95,T36] ( 3, 1.50) byref -> r14 "field V26._reference (fldOffset=0x0)" P-INDEP
-; V96 tmp92 [V96,T42] ( 3, 1.50) int -> [rbp-0x30] "field V26._length (fldOffset=0x8)" P-INDEP
-; V97 tmp93 [V97,T52] ( 2, 1 ) byref -> r14 single-def "field V27._reference (fldOffset=0x0)" P-INDEP
-; V98 tmp94 [V98,T64] ( 2, 1 ) int -> rdi "field V27._length (fldOffset=0x8)" P-INDEP
+; V95 tmp91 [V95,T40] ( 3, 1.50) byref -> r14 "field V26._reference (fldOffset=0x0)" P-INDEP
+; V96 tmp92 [V96,T46] ( 3, 1.50) int -> [rbp-0x30] "field V26._length (fldOffset=0x8)" P-INDEP
+; V97 tmp93 [V97,T54] ( 2, 1 ) byref -> r14 single-def "field V27._reference (fldOffset=0x0)" P-INDEP
+; V98 tmp94 [V98,T66] ( 2, 1 ) int -> rdi "field V27._length (fldOffset=0x8)" P-INDEP
;* V99 tmp95 [V99 ] ( 0, 0 ) byref -> zero-ref single-def "field V28._reference (fldOffset=0x0)" P-INDEP
;* V100 tmp96 [V100 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
-; V101 tmp97 [V101,T37] ( 3, 1.50) byref -> rsi "field V31._reference (fldOffset=0x0)" P-INDEP
-; V102 tmp98 [V102,T43] ( 3, 1.50) int -> rdx "field V31._length (fldOffset=0x8)" P-INDEP
-; V103 tmp99 [V103,T53] ( 2, 1 ) byref -> rcx "field V32._reference (fldOffset=0x0)" P-INDEP
-; V104 tmp100 [V104,T65] ( 2, 1 ) int -> r8 "field V32._length (fldOffset=0x8)" P-INDEP
+; V101 tmp97 [V101,T41] ( 3, 1.50) byref -> [rbp-0x50] "field V31._reference (fldOffset=0x0)" P-INDEP
+; V102 tmp98 [V102,T47] ( 3, 1.50) int -> [rbp-0x34] "field V31._length (fldOffset=0x8)" P-INDEP
+; V103 tmp99 [V103,T55] ( 2, 1 ) byref -> r15 "field V32._reference (fldOffset=0x0)" P-INDEP
+; V104 tmp100 [V104,T67] ( 2, 1 ) int -> r12 "field V32._length (fldOffset=0x8)" P-INDEP
;* V105 tmp101 [V105 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
;* V106 tmp102 [V106 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
;* V107 tmp103 [V107 ] ( 0, 0 ) byref -> zero-ref single-def "field V34._reference (fldOffset=0x0)" P-INDEP
;* V108 tmp104 [V108 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
;* V109 tmp105 [V109 ] ( 0, 0 ) byref -> zero-ref single-def "field V35._reference (fldOffset=0x0)" P-INDEP
;* V110 tmp106 [V110 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
-; V111 tmp107 [V111,T54] ( 2, 1 ) byref -> rsi single-def "field V41._reference (fldOffset=0x0)" P-INDEP
-; V112 tmp108 [V112,T66] ( 2, 1 ) int -> rdx "field V41._length (fldOffset=0x8)" P-INDEP
+; V111 tmp107 [V111,T56] ( 2, 1 ) byref -> rcx single-def "field V41._reference (fldOffset=0x0)" P-INDEP
+; V112 tmp108 [V112,T68] ( 2, 1 ) int -> rdx "field V41._length (fldOffset=0x8)" P-INDEP
;* V113 tmp109 [V113 ] ( 0, 0 ) byref -> zero-ref single-def "field V42._reference (fldOffset=0x0)" P-INDEP
;* V114 tmp110 [V114 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP
-; V115 tmp111 [V115,T55] ( 2, 1 ) byref -> rcx single-def "field V45._reference (fldOffset=0x0)" P-INDEP
-; V116 tmp112 [V116,T67] ( 2, 1 ) int -> r8 "field V45._length (fldOffset=0x8)" P-INDEP
+; V115 tmp111 [V115,T57] ( 2, 1 ) byref -> r15 single-def "field V45._reference (fldOffset=0x0)" P-INDEP
+; V116 tmp112 [V116,T69] ( 2, 1 ) int -> r12 "field V45._length (fldOffset=0x8)" P-INDEP
;* V117 tmp113 [V117 ] ( 0, 0 ) byref -> zero-ref single-def "field V46._reference (fldOffset=0x0)" P-INDEP
;* V118 tmp114 [V118 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP
-; V119 tmp115 [V119,T38] ( 3, 1.50) byref -> r9 "field V49._reference (fldOffset=0x0)" P-INDEP
-; V120 tmp116 [V120,T44] ( 3, 1.50) int -> rax "field V49._length (fldOffset=0x8)" P-INDEP
-; V121 tmp117 [V121,T56] ( 2, 1 ) byref -> r9 single-def "field V50._reference (fldOffset=0x0)" P-INDEP
-; V122 tmp118 [V122,T68] ( 2, 1 ) int -> rax "field V50._length (fldOffset=0x8)" P-INDEP
+; V119 tmp115 [V119,T42] ( 3, 1.50) byref -> r14 "field V49._reference (fldOffset=0x0)" P-INDEP
+; V120 tmp116 [V120,T48] ( 3, 1.50) int -> [rbp-0x38] "field V49._length (fldOffset=0x8)" P-INDEP
+; V121 tmp117 [V121,T58] ( 2, 1 ) byref -> r14 single-def "field V50._reference (fldOffset=0x0)" P-INDEP
+; V122 tmp118 [V122,T70] ( 2, 1 ) int -> rdi "field V50._length (fldOffset=0x8)" P-INDEP
;* V123 tmp119 [V123 ] ( 0, 0 ) byref -> zero-ref single-def "field V51._reference (fldOffset=0x0)" P-INDEP
;* V124 tmp120 [V124 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
-; V125 tmp121 [V125,T39] ( 3, 1.50) byref -> rsi "field V54._reference (fldOffset=0x0)" P-INDEP
-; V126 tmp122 [V126,T45] ( 3, 1.50) int -> rdx "field V54._length (fldOffset=0x8)" P-INDEP
-; V127 tmp123 [V127,T57] ( 2, 1 ) byref -> rcx "field V55._reference (fldOffset=0x0)" P-INDEP
-; V128 tmp124 [V128,T69] ( 2, 1 ) int -> r8 "field V55._length (fldOffset=0x8)" P-INDEP
+; V125 tmp121 [V125,T43] ( 3, 1.50) byref -> r13 "field V54._reference (fldOffset=0x0)" P-INDEP
+; V126 tmp122 [V126,T49] ( 3, 1.50) int -> [rbp-0x3C] "field V54._length (fldOffset=0x8)" P-INDEP
+; V127 tmp123 [V127,T59] ( 2, 1 ) byref -> r15 "field V55._reference (fldOffset=0x0)" P-INDEP
+; V128 tmp124 [V128,T71] ( 2, 1 ) int -> r12 "field V55._length (fldOffset=0x8)" P-INDEP
;* V129 tmp125 [V129 ] ( 0, 0 ) byref -> zero-ref single-def "field V57._reference (fldOffset=0x0)" P-INDEP
;* V130 tmp126 [V130 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
;* V131 tmp127 [V131 ] ( 0, 0 ) byref -> zero-ref single-def "field V58._reference (fldOffset=0x0)" P-INDEP
;* V132 tmp128 [V132 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP
;* V133 tmp129 [V133 ] ( 0, 0 ) byref -> zero-ref single-def "field V59._reference (fldOffset=0x0)" P-INDEP
;* V134 tmp130 [V134 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
-; V135 tmp131 [V135,T58] ( 2, 1 ) byref -> rsi single-def "field V64._reference (fldOffset=0x0)" P-INDEP
-; V136 tmp132 [V136,T70] ( 2, 1 ) int -> rdx "field V64._length (fldOffset=0x8)" P-INDEP
+; V135 tmp131 [V135,T60] ( 2, 1 ) byref -> r13 single-def "field V64._reference (fldOffset=0x0)" P-INDEP
+; V136 tmp132 [V136,T72] ( 2, 1 ) int -> rcx "field V64._length (fldOffset=0x8)" P-INDEP
;* V137 tmp133 [V137 ] ( 0, 0 ) byref -> zero-ref single-def "field V65._reference (fldOffset=0x0)" P-INDEP
;* V138 tmp134 [V138 ] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP
-; V139 tmp135 [V139,T59] ( 2, 1 ) byref -> rcx single-def "field V68._reference (fldOffset=0x0)" P-INDEP
-; V140 tmp136 [V140,T71] ( 2, 1 ) int -> r8 "field V68._length (fldOffset=0x8)" P-INDEP
+; V139 tmp135 [V139,T61] ( 2, 1 ) byref -> r15 single-def "field V68._reference (fldOffset=0x0)" P-INDEP
+; V140 tmp136 [V140,T73] ( 2, 1 ) int -> r12 "field V68._length (fldOffset=0x8)" P-INDEP
;* V141 tmp137 [V141 ] ( 0, 0 ) byref -> zero-ref single-def "field V69._reference (fldOffset=0x0)" P-INDEP
;* V142 tmp138 [V142 ] ( 0, 0 ) int -> zero-ref "field V69._length (fldOffset=0x8)" P-INDEP
-; V143 tmp139 [V143,T40] ( 3, 1.50) byref -> r9 "field V72._reference (fldOffset=0x0)" P-INDEP
-; V144 tmp140 [V144,T46] ( 3, 1.50) int -> rax "field V72._length (fldOffset=0x8)" P-INDEP
-; V145 tmp141 [V145,T60] ( 2, 1 ) byref -> r9 single-def "field V73._reference (fldOffset=0x0)" P-INDEP
-; V146 tmp142 [V146,T72] ( 2, 1 ) int -> rax "field V73._length (fldOffset=0x8)" P-INDEP
+; V143 tmp139 [V143,T44] ( 3, 1.50) byref -> r14 "field V72._reference (fldOffset=0x0)" P-INDEP
+; V144 tmp140 [V144,T50] ( 3, 1.50) int -> [rbp-0x40] "field V72._length (fldOffset=0x8)" P-INDEP
+; V145 tmp141 [V145,T62] ( 2, 1 ) byref -> r14 single-def "field V73._reference (fldOffset=0x0)" P-INDEP
+; V146 tmp142 [V146,T74] ( 2, 1 ) int -> rdx "field V73._length (fldOffset=0x8)" P-INDEP
;* V147 tmp143 [V147 ] ( 0, 0 ) byref -> zero-ref single-def "field V74._reference (fldOffset=0x0)" P-INDEP
;* V148 tmp144 [V148 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP
-; V149 tmp145 [V149,T74] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
-; V150 tmp146 [V150,T75] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-;* V151 tmp147 [V151 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V152 tmp148 [V152,T05] ( 3, 3 ) ref -> rax single-def "argument with side effect"
-; V153 tmp149 [V153,T76] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-;* V154 tmp150 [V154 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V155 tmp151 [V155,T06] ( 3, 3 ) ref -> rax single-def "argument with side effect"
+; V149 tmp145 [V149,T76] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
+; V150 tmp146 [V150,T77] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V151 tmp147 [V151,T05] ( 3, 3 ) ref -> rax single-def "argument with side effect"
+; V152 tmp148 [V152,T06] ( 3, 3 ) ref -> rax single-def "argument with side effect"
+; V153 tmp149 [V153,T78] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V154 tmp150 [V154,T07] ( 3, 3 ) ref -> rax single-def "argument with side effect"
+; V155 tmp151 [V155,T08] ( 3, 3 ) ref -> rax single-def "argument with side effect"
; V156 cse0 [V156,T04] ( 9, 4.50) int -> r12 multi-def "CSE - aggressive"
;
-; Lcl frame size = 40
+; Lcl frame size = 56
G_M5144_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 40
- lea rbp, [rsp+0x50]
+ sub rsp, 56
+ lea rbp, [rsp+0x60]
mov rbx, rdi
mov r15, rsi
mov r14, rdx
mov r13d, ecx
;; size=31 bbWeight=1 PerfScore 7.75
G_M5144_IG02:
cmp r13d, 5
- ja G_M5144_IG24
+ ja G_M5144_IG26
mov eax, r13d
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rax]
lea rdx, G_M5144_IG02
add rcx, rdx
jmp rcx
;; size=35 bbWeight=1 PerfScore 7.25
G_M5144_IG03:
mov rax, 0xD1FFAB1E ; code for System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo
call [rax]System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo
mov rdi, rax
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x48]
call [rax+0x30]System.Globalization.CultureInfo:get_CompareInfo():System.Globalization.CompareInfo:this
test r15, r15
- je G_M5144_IG25
+ je G_M5144_IG27
mov r12d, dword ptr [r15+0x08]
test r12d, r12d
- je G_M5144_IG25
+ je G_M5144_IG27
test rbx, rbx
jne SHORT G_M5144_IG04
xor rcx, rcx
xor edx, edx
jmp SHORT G_M5144_IG05
;; size=58 bbWeight=0.50 PerfScore 9.38
G_M5144_IG04:
lea rcx, bword ptr [rbx+0x0C]
mov edx, dword ptr [rbx+0x08]
- mov bword ptr [rbp-0x38], rcx
+ mov bword ptr [rbp-0x48], rcx
mov dword ptr [rbp-0x2C], edx
- mov rcx, bword ptr [rbp-0x38]
+ mov rcx, bword ptr [rbp-0x48]
mov edx, dword ptr [rbp-0x2C]
;; size=21 bbWeight=0.50 PerfScore 3.25
G_M5144_IG05:
add r15, 12
test r14, r14
jne SHORT G_M5144_IG06
xor r14, r14
xor edi, edi
jmp SHORT G_M5144_IG07
;; size=16 bbWeight=0.50 PerfScore 2.00
G_M5144_IG06:
lea rdi, bword ptr [r14+0x0C]
mov esi, dword ptr [r14+0x08]
mov r14, rdi
mov edi, esi
mov dword ptr [rbp-0x30], edi
mov edi, dword ptr [rbp-0x30]
;; size=19 bbWeight=0.50 PerfScore 2.50
G_M5144_IG07:
test rax, rax
mov dword ptr [rbp-0x30], edi
jne SHORT G_M5144_IG08
- mov bword ptr [rbp-0x38], rcx
+ mov bword ptr [rbp-0x48], rcx
mov dword ptr [rbp-0x2C], edx
mov rax, 0xD1FFAB1E ; code for System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo
call [rax]System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo
mov rdi, rax
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x48]
call [rax+0x30]System.Globalization.CultureInfo:get_CompareInfo():System.Globalization.CompareInfo:this
- mov rcx, bword ptr [rbp-0x38]
+ mov rcx, bword ptr [rbp-0x48]
mov edx, dword ptr [rbp-0x2C]
;; size=47 bbWeight=0.50 PerfScore 8.38
G_M5144_IG08:
mov gword ptr [rsp], rax
and r13d, 1
mov dword ptr [rsp+0x08], r13d
mov rdi, rcx
mov esi, edx
mov rdx, r15
mov ecx, r12d
mov r8, r14
mov r9d, dword ptr [rbp-0x30]
mov rax, 0xD1FFAB1E ; code for System.String:ReplaceCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.Globalization.CompareInfo,int):System.String
call [rax]System.String:ReplaceCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.Globalization.CompareInfo,int):System.String
test rax, rax
cmove rax, rbx
;; size=50 bbWeight=0.50 PerfScore 4.12
G_M5144_IG09:
- add rsp, 40
+ add rsp, 56
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M5144_IG10:
- mov rdi, 0xD1FFAB1E ; const ptr
- mov rdi, gword ptr [rdi]
+ mov rax, 0xD1FFAB1E ; const ptr
+ mov rax, gword ptr [rax]
test r15, r15
- je G_M5144_IG25
+ je G_M5144_IG27
mov r12d, dword ptr [r15+0x08]
test r12d, r12d
- je G_M5144_IG25
+ je G_M5144_IG27
test rbx, rbx
jne SHORT G_M5144_IG11
- xor rsi, rsi
+ xor rcx, rcx
xor edx, edx
jmp SHORT G_M5144_IG12
;; size=46 bbWeight=0.50 PerfScore 5.25
G_M5144_IG11:
- lea rsi, bword ptr [rbx+0x0C]
+ lea rcx, bword ptr [rbx+0x0C]
mov edx, dword ptr [rbx+0x08]
- ;; size=7 bbWeight=0.50 PerfScore 1.25
+ mov bword ptr [rbp-0x50], rcx
+ mov dword ptr [rbp-0x34], edx
+ mov rcx, bword ptr [rbp-0x50]
+ mov edx, dword ptr [rbp-0x34]
+ ;; size=21 bbWeight=0.50 PerfScore 3.25
G_M5144_IG12:
- lea rcx, bword ptr [r15+0x0C]
- mov r8d, r12d
+ add r15, 12
test r14, r14
jne SHORT G_M5144_IG13
- xor r9, r9
- xor eax, eax
+ xor r14, r14
+ xor edi, edi
jmp SHORT G_M5144_IG14
- ;; size=19 bbWeight=0.50 PerfScore 2.25
+ ;; size=16 bbWeight=0.50 PerfScore 2.00
G_M5144_IG13:
- lea r9, bword ptr [r14+0x0C]
- mov eax, dword ptr [r14+0x08]
- ;; size=8 bbWeight=0.50 PerfScore 1.25
+ lea rdi, bword ptr [r14+0x0C]
+ mov esi, dword ptr [r14+0x08]
+ mov r14, rdi
+ mov edi, esi
+ mov dword ptr [rbp-0x38], edi
+ mov edi, dword ptr [rbp-0x38]
+ ;; size=19 bbWeight=0.50 PerfScore 2.50
G_M5144_IG14:
- mov gword ptr [rsp], rdi
- mov edi, r13d
- and edi, 1
- mov dword ptr [rsp+0x08], edi
- mov rdi, rsi
+ test rax, rax
+ mov dword ptr [rbp-0x38], edi
+ jne SHORT G_M5144_IG15
+ mov bword ptr [rbp-0x50], rcx
+ mov dword ptr [rbp-0x34], edx
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo
+ call [rax]System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo
+ mov rdi, rax
+ mov rax, qword ptr [rax]
+ mov rax, qword ptr [rax+0x48]
+ call [rax+0x30]System.Globalization.CultureInfo:get_CompareInfo():System.Globalization.CompareInfo:this
+ mov rcx, bword ptr [rbp-0x50]
+ mov edx, dword ptr [rbp-0x34]
+ ;; size=47 bbWeight=0.50 PerfScore 8.38
+G_M5144_IG15:
+ mov gword ptr [rsp], rax
+ mov esi, r13d
+ and esi, 1
+ mov dword ptr [rsp+0x08], esi
+ mov rdi, rcx
mov esi, edx
- mov rdx, rcx
- mov ecx, r8d
- mov r8, r9
- mov r9d, eax
+ mov rdx, r15
+ mov ecx, r12d
+ mov r8, r14
+ mov r9d, dword ptr [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.String:ReplaceCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.Globalization.CompareInfo,int):System.String
call [rax]System.String:ReplaceCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.Globalization.CompareInfo,int):System.String
test rax, rax
cmove rax, rbx
- ;; size=50 bbWeight=0.50 PerfScore 3.88
-G_M5144_IG15:
- add rsp, 40
+ ;; size=51 bbWeight=0.50 PerfScore 4.25
+G_M5144_IG16:
+ add rsp, 56
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M5144_IG16:
+G_M5144_IG17:
mov rdi, rbx
mov rsi, r15
mov rdx, r14
mov rax, 0xD1FFAB1E ; code for System.String:Replace(System.String,System.String):System.String:this
call [rax]System.String:Replace(System.String,System.String):System.String:this
nop
;; size=22 bbWeight=0.50 PerfScore 2.12
-G_M5144_IG17:
- add rsp, 40
+G_M5144_IG18:
+ add rsp, 56
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M5144_IG18:
- mov rdi, 0xD1FFAB1E ; const ptr
- mov rdi, gword ptr [rdi]
+G_M5144_IG19:
+ mov rax, 0xD1FFAB1E ; const ptr
+ mov rax, gword ptr [rax]
test r15, r15
- je G_M5144_IG25
+ je G_M5144_IG27
mov r12d, dword ptr [r15+0x08]
test r12d, r12d
- je G_M5144_IG25
+ je G_M5144_IG27
test rbx, rbx
- jne SHORT G_M5144_IG19
- xor rsi, rsi
- xor edx, edx
- jmp SHORT G_M5144_IG20
- ;; size=46 bbWeight=0.50 PerfScore 5.25
-G_M5144_IG19:
- lea rsi, bword ptr [rbx+0x0C]
- mov edx, dword ptr [rbx+0x08]
- ;; size=7 bbWeight=0.50 PerfScore 1.25
+ jne SHORT G_M5144_IG20
+ xor r13, r13
+ xor ecx, ecx
+ mov dword ptr [rbp-0x3C], ecx
+ mov ecx, dword ptr [rbp-0x3C]
+ jmp SHORT G_M5144_IG21
+ ;; size=53 bbWeight=0.50 PerfScore 6.25
G_M5144_IG20:
- lea rcx, bword ptr [r15+0x0C]
- mov r8d, r12d
- test r14, r14
- jne SHORT G_M5144_IG21
- xor r9, r9
- xor eax, eax
- jmp SHORT G_M5144_IG22
- ;; size=19 bbWeight=0.50 PerfScore 2.25
+ lea r13, bword ptr [rbx+0x0C]
+ mov ecx, dword ptr [rbx+0x08]
+ ;; size=7 bbWeight=0.50 PerfScore 1.25
G_M5144_IG21:
- lea r9, bword ptr [r14+0x0C]
- mov eax, dword ptr [r14+0x08]
- ;; size=8 bbWeight=0.50 PerfScore 1.25
+ add r15, 12
+ test r14, r14
+ jne SHORT G_M5144_IG22
+ xor r14, r14
+ xor edx, edx
+ jmp SHORT G_M5144_IG23
+ ;; size=16 bbWeight=0.50 PerfScore 2.00
G_M5144_IG22:
- mov gword ptr [rsp], rdi
+ lea rdx, bword ptr [r14+0x0C]
+ mov edi, dword ptr [r14+0x08]
+ mov r14, rdx
+ mov edx, edi
+ mov dword ptr [rbp-0x40], edx
+ mov edx, dword ptr [rbp-0x40]
+ ;; size=19 bbWeight=0.50 PerfScore 2.50
+G_M5144_IG23:
+ test rax, rax
+ mov dword ptr [rbp-0x40], edx
+ jne SHORT G_M5144_IG24
+ mov dword ptr [rbp-0x3C], ecx
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo
+ call [rax]System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo
+ mov rdi, rax
+ mov rax, qword ptr [rax]
+ mov rax, qword ptr [rax+0x48]
+ call [rax+0x30]System.Globalization.CultureInfo:get_CompareInfo():System.Globalization.CompareInfo:this
+ mov ecx, dword ptr [rbp-0x3C]
+ ;; size=39 bbWeight=0.50 PerfScore 7.38
+G_M5144_IG24:
+ mov gword ptr [rsp], rax
mov dword ptr [rsp+0x08], 0xD1FFAB1E
- mov rdi, rsi
- mov esi, edx
- mov rdx, rcx
- mov ecx, r8d
- mov r8, r9
- mov r9d, eax
+ mov rdi, r13
+ mov esi, ecx
+ mov rdx, r15
+ mov ecx, r12d
+ mov r8, r14
+ mov r9d, dword ptr [rbp-0x40]
mov rax, 0xD1FFAB1E ; code for System.String:ReplaceCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.Globalization.CompareInfo,int):System.String
call [rax]System.String:ReplaceCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.Globalization.CompareInfo,int):System.String
test rax, rax
cmove rax, rbx
- ;; size=48 bbWeight=0.50 PerfScore 3.62
-G_M5144_IG23:
- add rsp, 40
+ ;; size=49 bbWeight=0.50 PerfScore 4.00
+G_M5144_IG25:
+ add rsp, 56
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M5144_IG24:
+G_M5144_IG26:
mov rdi, 0xD1FFAB1E ; System.ArgumentException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_NotSupported_StringComparison():System.String
call [rax]System.SR:get_NotSupported_StringComparison():System.String
mov r15, rax
mov edi, 0xD03
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdx, rax
mov rsi, r15
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this
call [rax]System.ArgumentException:.ctor(System.String,System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
;; size=82 bbWeight=0 PerfScore 0.00
-G_M5144_IG25:
+G_M5144_IG27:
mov edi, 0xDA5
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rsi, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)
call [rax]System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)
int3
;; size=39 bbWeight=0 PerfScore 0.00
RWD00 dd G_M5144_IG03 - G_M5144_IG02
dd G_M5144_IG03 - G_M5144_IG02
dd G_M5144_IG10 - G_M5144_IG02
dd G_M5144_IG10 - G_M5144_IG02
- dd G_M5144_IG16 - G_M5144_IG02
- dd G_M5144_IG18 - G_M5144_IG02
+ dd G_M5144_IG17 - G_M5144_IG02
+ dd G_M5144_IG19 - G_M5144_IG02
-; Total bytes of code 738, prolog size 19, PerfScore 156.55, instruction count 214, allocated bytes for code 738 (MethodHash=aa3febe7) for method System.String:Replace(System.String,System.String,int):System.String:this (FullOpts)
+; Total bytes of code 863, prolog size 19, PerfScore 190.55, instruction count 250, allocated bytes for code 863 (MethodHash=aa3febe7) for method System.String:Replace(System.String,System.String,int):System.String:this (FullOpts)
123 (4.27 % of base) - System.TimeZoneInfo+StringSerializer:GetSerializedString(System.TimeZoneInfo):System.String
; Assembly listing for method System.TimeZoneInfo+StringSerializer:GetSerializedString(System.TimeZoneInfo):System.String (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 52 single block inlinees; 53 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T32] ( 8, 8 ) ref -> rbx class-hnd single-def <System.TimeZoneInfo>
; V01 loc0 [V01 ] (164,338 ) struct (32) [rbp-0x48] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Text.ValueStringBuilder>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.TimeZoneInfo+AdjustmentRule[]>
;* V03 loc2 [V03 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[ushort]>
;* V04 loc3 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.TimeSpan>
; V05 loc4 [V05,T39] ( 4, 10 ) ref -> rbx class-hnd exact single-def <System.TimeZoneInfo+AdjustmentRule[]>
-; V06 loc5 [V06,T11] ( 5, 17 ) int -> r15
+; V06 loc5 [V06,T12] ( 5, 17 ) int -> r15
; V07 loc6 [V07,T00] ( 9, 34 ) ref -> r13 class-hnd exact <System.TimeZoneInfo+AdjustmentRule>
; V08 OutArgs [V08 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V09 tmp1 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V10 tmp2 [V10 ] ( 0, 0 ) double -> zero-ref "impAppendStmt"
;* V11 tmp3 [V11 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.DateTime>
;* V12 tmp4 [V12 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.DateTime>
;* V13 tmp5 [V13 ] ( 0, 0 ) double -> zero-ref "impAppendStmt"
;* V14 tmp6 [V14 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "spilled call-like call argument" <System.TimeZoneInfo+TransitionTime>
;* V15 tmp7 [V15 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "spilled call-like call argument" <System.TimeZoneInfo+TransitionTime>
;* V16 tmp8 [V16 ] ( 0, 0 ) struct ( 8) zero-ref "folding static readonly field struct" <System.TimeSpan>
;* V17 tmp9 [V17 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.TimeSpan>
;* V18 tmp10 [V18 ] ( 0, 0 ) double -> zero-ref "impAppendStmt"
; V19 tmp11 [V19,T100] ( 2, 4 ) long -> rdi "Inlining Arg"
; V20 tmp12 [V20,T113] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
;* V21 tmp13 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V22 tmp14 [V22 ] ( 3, 5 ) double -> [rbp-0x50] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V23 tmp15 [V23 ] ( 0, 0 ) double -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-; V24 tmp16 [V24,T120] ( 2, 2 ) byref -> rdi single-def
+; V24 tmp16 [V24,T121] ( 2, 2 ) byref -> rdi single-def
; V25 tmp17 [V25 ] ( 2, 1.50) int -> [rbp-0x58] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V26 tmp18 [V26 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ushort]>
-; V27 tmp19 [V27,T86] ( 3, 5 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V27 tmp19 [V27,T78] ( 5, 7 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
;* V28 tmp20 [V28 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V29 tmp21 [V29,T41] ( 4, 8 ) int -> rax "Inlining Arg"
;* V30 tmp22 [V30 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V31 tmp23 [V31,T87] ( 2, 4 ) byref -> r13 single-def "Inlining Arg"
+; V31 tmp23 [V31,T90] ( 2, 4 ) byref -> r13 single-def "Inlining Arg"
; V32 tmp24 [V32,T101] ( 2, 4 ) int -> r12 "Inlining Arg"
;* V33 tmp25 [V33 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V34 tmp26 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V35 tmp27 [V35,T148] ( 2, 4 ) double -> [rbp-0x60] spill-single-def "impAppendStmt"
-; V36 tmp28 [V36,T121] ( 2, 2 ) ref -> rdx class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V36 tmp28 [V36,T120] ( 3, 2 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
; V37 tmp29 [V37,T149] ( 2, 2 ) double -> [rbp-0x68] spill-single-def "impAppendStmt"
-; V38 tmp30 [V38,T141] ( 2, 1 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-; V39 tmp31 [V39,T85] ( 5, 5 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V38 tmp30 [V38,T135] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V39 tmp31 [V39,T89] ( 5, 5 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
; V40 tmp32 [V40,T119] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
; V41 tmp33 [V41,T114] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
;* V42 tmp34 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V43 tmp35 [V43,T115] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
;* V44 tmp36 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V45 tmp37 [V45,T116] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
;* V46 tmp38 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V47 tmp39 [V47,T117] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
;* V48 tmp40 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V49 tmp41 [V49,T22] ( 4, 12 ) int -> rdi "Inline stloc first use temp"
+; V49 tmp41 [V49,T23] ( 4, 12 ) int -> rdi "Inline stloc first use temp"
;* V50 tmp42 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V51 tmp43 [V51 ] ( 3, 20 ) struct ( 8) [rbp-0x70] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.DateTime>
;* V52 tmp44 [V52 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.DateTime>
-; V53 tmp45 [V53,T45] ( 2, 8 ) byref -> r8
+; V53 tmp45 [V53,T46] ( 2, 8 ) byref -> r8
; V54 tmp46 [V54 ] ( 2, 6 ) int -> [rbp-0x78] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V55 tmp47 [V55 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ushort]>
-; V56 tmp48 [V56,T08] ( 3, 20 ) ref -> [rbp-0xF0] class-hnd exact spill-single-def "Inlining Arg" <System.Globalization.DateTimeFormatInfo>
+; V56 tmp48 [V56,T10] ( 3, 20 ) ref -> [rbp-0xF0] class-hnd exact spill-single-def "Inlining Arg" <System.Globalization.DateTimeFormatInfo>
;* V57 tmp49 [V57 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V58 tmp50 [V58,T01] ( 4, 32 ) int -> r9 "Inlining Arg"
;* V59 tmp51 [V59 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V60 tmp52 [V60,T13] ( 2, 16 ) byref -> rsi "Inlining Arg"
-; V61 tmp53 [V61,T16] ( 2, 16 ) int -> rdx "Inlining Arg"
+; V60 tmp52 [V60,T14] ( 2, 16 ) byref -> rsi "Inlining Arg"
+; V61 tmp53 [V61,T17] ( 2, 16 ) int -> rdx "Inlining Arg"
;* V62 tmp54 [V62 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V63 tmp55 [V63 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V64 tmp56 [V64 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V65 tmp57 [V65 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.DateTime>
;* V66 tmp58 [V66 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V67 tmp59 [V67 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.DateTime>
;* V68 tmp60 [V68 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
-; V69 tmp61 [V69,T04] ( 5, 20 ) ref -> [rbp-0xF8] class-hnd exact spill-single-def "Inlining Arg" <System.String>
+; V69 tmp61 [V69,T05] ( 5, 20 ) ref -> [rbp-0xF8] class-hnd exact spill-single-def "Inlining Arg" <System.String>
; V70 tmp62 [V70,T33] ( 5, 10 ) int -> rdi "Inline stloc first use temp"
; V71 tmp63 [V71,T34] ( 5, 10 ) int -> [rbp-0x7C] spill-single-def "Inline stloc first use temp"
;* V72 tmp64 [V72 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
;* V73 tmp65 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V74 tmp66 [V74,T46] ( 2, 8 ) byref -> rdi "Inlining Arg"
+; V74 tmp66 [V74,T47] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V75 tmp67 [V75,T60] ( 2, 8 ) int -> rdx "Inlining Arg"
;* V76 tmp68 [V76 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V77 tmp69 [V77 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V78 tmp70 [V78,T47] ( 2, 8 ) byref -> rsi "Inlining Arg"
+; V78 tmp70 [V78,T48] ( 2, 8 ) byref -> rsi "Inlining Arg"
; V79 tmp71 [V79,T61] ( 2, 8 ) long -> rdx "Inlining Arg"
;* V80 tmp72 [V80 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V81 tmp73 [V81,T23] ( 4, 12 ) int -> rdi "Inline stloc first use temp"
+; V81 tmp73 [V81,T24] ( 4, 12 ) int -> rdi "Inline stloc first use temp"
;* V82 tmp74 [V82 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V83 tmp75 [V83 ] ( 3, 20 ) struct ( 8) [rbp-0x88] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.DateTime>
;* V84 tmp76 [V84 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.DateTime>
-; V85 tmp77 [V85,T48] ( 2, 8 ) byref -> r8
+; V85 tmp77 [V85,T49] ( 2, 8 ) byref -> r8
; V86 tmp78 [V86 ] ( 2, 6 ) int -> [rbp-0x90] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V87 tmp79 [V87 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ushort]>
-; V88 tmp80 [V88,T09] ( 3, 20 ) ref -> r12 class-hnd exact "Inlining Arg" <System.Globalization.DateTimeFormatInfo>
+; V88 tmp80 [V88,T11] ( 3, 20 ) ref -> r12 class-hnd exact "Inlining Arg" <System.Globalization.DateTimeFormatInfo>
;* V89 tmp81 [V89 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V90 tmp82 [V90,T02] ( 4, 32 ) int -> r9 "Inlining Arg"
;* V91 tmp83 [V91 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V92 tmp84 [V92,T14] ( 2, 16 ) byref -> rsi "Inlining Arg"
-; V93 tmp85 [V93,T17] ( 2, 16 ) int -> rdx "Inlining Arg"
+; V92 tmp84 [V92,T15] ( 2, 16 ) byref -> rsi "Inlining Arg"
+; V93 tmp85 [V93,T18] ( 2, 16 ) int -> rdx "Inlining Arg"
;* V94 tmp86 [V94 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V95 tmp87 [V95 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V96 tmp88 [V96 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V97 tmp89 [V97 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.DateTime>
;* V98 tmp90 [V98 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V99 tmp91 [V99 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.DateTime>
;* V100 tmp92 [V100 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
-; V101 tmp93 [V101,T05] ( 5, 20 ) ref -> r12 class-hnd exact "Inlining Arg" <System.String>
+; V101 tmp93 [V101,T06] ( 5, 20 ) ref -> r12 class-hnd exact "Inlining Arg" <System.String>
; V102 tmp94 [V102,T35] ( 5, 10 ) int -> rsi "Inline stloc first use temp"
; V103 tmp95 [V103,T36] ( 5, 10 ) int -> [rbp-0x94] spill-single-def "Inline stloc first use temp"
;* V104 tmp96 [V104 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
;* V105 tmp97 [V105 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V106 tmp98 [V106,T49] ( 2, 8 ) byref -> rdi "Inlining Arg"
+; V106 tmp98 [V106,T50] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V107 tmp99 [V107,T62] ( 2, 8 ) int -> rdx "Inlining Arg"
;* V108 tmp100 [V108 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V109 tmp101 [V109 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V110 tmp102 [V110,T50] ( 2, 8 ) byref -> rsi "Inlining Arg"
+; V110 tmp102 [V110,T51] ( 2, 8 ) byref -> rsi "Inlining Arg"
; V111 tmp103 [V111,T63] ( 2, 8 ) long -> rdx "Inlining Arg"
;* V112 tmp104 [V112 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V113 tmp105 [V113,T24] ( 4, 12 ) int -> rdi "Inline stloc first use temp"
+; V113 tmp105 [V113,T25] ( 4, 12 ) int -> rdi "Inline stloc first use temp"
;* V114 tmp106 [V114 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V115 tmp107 [V115 ] ( 3, 20 ) double -> [rbp-0xA0] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V116 tmp108 [V116 ] ( 0, 0 ) double -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-; V117 tmp109 [V117,T51] ( 2, 8 ) byref -> rdi
+; V117 tmp109 [V117,T52] ( 2, 8 ) byref -> rdi
; V118 tmp110 [V118 ] ( 2, 6 ) int -> [rbp-0xA8] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V119 tmp111 [V119 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ushort]>
-; V120 tmp112 [V120,T10] ( 3, 20 ) ref -> r12 class-hnd exact "Inlining Arg" <System.Globalization.CultureInfo>
+; V120 tmp112 [V120,T04] ( 5, 28 ) ref -> r12 class-hnd exact "Inlining Arg" <System.Globalization.CultureInfo>
;* V121 tmp113 [V121 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V122 tmp114 [V122,T03] ( 4, 32 ) int -> rax "Inlining Arg"
;* V123 tmp115 [V123 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V124 tmp116 [V124,T15] ( 2, 16 ) byref -> rcx "Inlining Arg"
-; V125 tmp117 [V125,T18] ( 2, 16 ) int -> rax "Inlining Arg"
+; V124 tmp116 [V124,T16] ( 2, 16 ) byref -> rcx "Inlining Arg"
+; V125 tmp117 [V125,T19] ( 2, 16 ) int -> rax "Inlining Arg"
;* V126 tmp118 [V126 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V127 tmp119 [V127 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V128 tmp120 [V128,T144] ( 2, 16 ) double -> [rbp-0xB0] spill-single-def "impAppendStmt"
-; V129 tmp121 [V129,T52] ( 2, 8 ) ref -> rdx class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V129 tmp121 [V129,T45] ( 3, 8 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
; V130 tmp122 [V130,T145] ( 2, 8 ) double -> [rbp-0xB8] spill-single-def "impAppendStmt"
-; V131 tmp123 [V131,T88] ( 2, 4 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-; V132 tmp124 [V132,T06] ( 5, 20 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
+; V131 tmp123 [V131,T79] ( 3, 6 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V132 tmp124 [V132,T07] ( 5, 20 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
; V133 tmp125 [V133,T37] ( 5, 10 ) int -> rdi "Inline stloc first use temp"
-; V134 tmp126 [V134,T25] ( 4, 12 ) int -> rdi "Inline stloc first use temp"
+; V134 tmp126 [V134,T26] ( 4, 12 ) int -> rdi "Inline stloc first use temp"
;* V135 tmp127 [V135 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V136 tmp128 [V136,T26] ( 4, 12 ) int -> rdi "Inline stloc first use temp"
+; V136 tmp128 [V136,T27] ( 4, 12 ) int -> rdi "Inline stloc first use temp"
;* V137 tmp129 [V137 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V138 tmp130 [V138,T27] ( 4, 12 ) int -> rdi "Inline stloc first use temp"
+; V138 tmp130 [V138,T28] ( 4, 12 ) int -> rdi "Inline stloc first use temp"
;* V139 tmp131 [V139 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V140 tmp132 [V140 ] ( 3, 12 ) double -> [rbp-0xC0] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V141 tmp133 [V141 ] ( 0, 0 ) double -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-; V142 tmp134 [V142,T89] ( 2, 4 ) byref -> rdi
+; V142 tmp134 [V142,T91] ( 2, 4 ) byref -> rdi
; V143 tmp135 [V143 ] ( 2, 4 ) int -> [rbp-0xC8] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V144 tmp136 [V144 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ushort]>
-; V145 tmp137 [V145,T29] ( 3, 12 ) ref -> r12 class-hnd exact "Inlining Arg" <System.Globalization.CultureInfo>
+; V145 tmp137 [V145,T08] ( 5, 20 ) ref -> r12 class-hnd exact "Inlining Arg" <System.Globalization.CultureInfo>
;* V146 tmp138 [V146 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V147 tmp139 [V147,T12] ( 4, 16 ) int -> rax "Inlining Arg"
+; V147 tmp139 [V147,T13] ( 4, 16 ) int -> rax "Inlining Arg"
;* V148 tmp140 [V148 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V149 tmp141 [V149,T53] ( 2, 8 ) byref -> rcx "Inlining Arg"
; V150 tmp142 [V150,T64] ( 2, 8 ) int -> rax "Inlining Arg"
;* V151 tmp143 [V151 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V152 tmp144 [V152 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V153 tmp145 [V153,T146] ( 2, 8 ) double -> [rbp-0xD0] spill-single-def "impAppendStmt"
-; V154 tmp146 [V154,T90] ( 2, 4 ) ref -> rdx class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V154 tmp146 [V154,T80] ( 3, 6 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
; V155 tmp147 [V155,T147] ( 2, 8 ) double -> [rbp-0xD8] spill-single-def "impAppendStmt"
-; V156 tmp148 [V156,T91] ( 2, 4 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-; V157 tmp149 [V157,T07] ( 5, 20 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
+; V156 tmp148 [V156,T81] ( 3, 6 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V157 tmp149 [V157,T09] ( 5, 20 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
; V158 tmp150 [V158,T38] ( 5, 10 ) int -> rdi "Inline stloc first use temp"
; V159 tmp151 [V159,T42] ( 4, 8 ) int -> rdi "Inline stloc first use temp"
;* V160 tmp152 [V160 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V161 tmp153 [V161,T43] ( 4, 8 ) int -> rdi "Inline stloc first use temp"
;* V162 tmp154 [V162 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V163 tmp155 [V163,T44] ( 4, 8 ) int -> rdi "Inline stloc first use temp"
;* V164 tmp156 [V164 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V165 tmp157 [V165,T28] ( 4, 12 ) int -> rdi "Inline stloc first use temp"
+; V165 tmp157 [V165,T29] ( 4, 12 ) int -> rdi "Inline stloc first use temp"
;* V166 tmp158 [V166 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V167 tmp159 [V167,T118] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
;* V168 tmp160 [V168 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
;* V169 tmp161 [V169 ] ( 0, 0 ) byref -> zero-ref single-def "field V03._reference (fldOffset=0x0)" P-INDEP
;* V170 tmp162 [V170 ] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x8)" P-INDEP
-; V171 tmp163 [V171,T21] ( 6, 14 ) long -> registers "field V04._ticks (fldOffset=0x0)" P-INDEP
+; V171 tmp163 [V171,T22] ( 6, 14 ) long -> registers "field V04._ticks (fldOffset=0x0)" P-INDEP
; V172 tmp164 [V172,T122] ( 2, 2 ) byref -> rdi single-def "field V09._reference (fldOffset=0x0)" P-INDEP
;* V173 tmp165 [V173,T142] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
;* V174 tmp166 [V174 ] ( 0, 0 ) long -> zero-ref "field V11._dateData (fldOffset=0x0)" P-INDEP
;* V175 tmp167 [V175 ] ( 0, 0 ) long -> zero-ref "field V12._dateData (fldOffset=0x0)" P-INDEP
;* V176 tmp168 [V176 ] ( 0, 0 ) long -> zero-ref "field V16._ticks (fldOffset=0x0)" P-INDEP
; V177 tmp169 [V177,T65] ( 2, 8 ) long -> rdi "field V17._ticks (fldOffset=0x0)" P-INDEP
-; V178 tmp170 [V178,T135] ( 2, 1.50) byref -> rsi single-def "field V21._reference (fldOffset=0x0)" P-INDEP
+; V178 tmp170 [V178,T136] ( 2, 1.50) byref -> rsi single-def "field V21._reference (fldOffset=0x0)" P-INDEP
; V179 tmp171 [V179,T125] ( 2, 2 ) int -> rax "field V21._length (fldOffset=0x8)" P-INDEP
;* V180 tmp172 [V180 ] ( 0, 0 ) byref -> zero-ref single-def "field V26._reference (fldOffset=0x0)" P-INDEP
;* V181 tmp173 [V181 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
; V182 tmp174 [V182,T123] ( 2, 2 ) byref -> [rbp-0x100] spill-single-def "field V28._reference (fldOffset=0x0)" P-INDEP
;* V183 tmp175 [V183,T143] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
; V184 tmp176 [V184,T124] ( 2, 2 ) byref -> r13 single-def "field V30._reference (fldOffset=0x0)" P-INDEP
; V185 tmp177 [V185,T126] ( 2, 2 ) int -> r12 "field V30._length (fldOffset=0x8)" P-INDEP
;* V186 tmp178 [V186 ] ( 0, 0 ) byref -> zero-ref "field V33._reference (fldOffset=0x0)" P-INDEP
;* V187 tmp179 [V187 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
;* V188 tmp180 [V188 ] ( 0, 0 ) byref -> zero-ref single-def "field V34._reference (fldOffset=0x0)" P-INDEP
;* V189 tmp181 [V189 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
-; V190 tmp182 [V190,T136] ( 2, 1.50) byref -> rsi single-def "field V42._reference (fldOffset=0x0)" P-INDEP
+; V190 tmp182 [V190,T137] ( 2, 1.50) byref -> rsi single-def "field V42._reference (fldOffset=0x0)" P-INDEP
; V191 tmp183 [V191,T127] ( 2, 2 ) int -> rax "field V42._length (fldOffset=0x8)" P-INDEP
-; V192 tmp184 [V192,T137] ( 2, 1.50) byref -> rsi single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+; V192 tmp184 [V192,T138] ( 2, 1.50) byref -> rsi single-def "field V44._reference (fldOffset=0x0)" P-INDEP
; V193 tmp185 [V193,T128] ( 2, 2 ) int -> rax "field V44._length (fldOffset=0x8)" P-INDEP
-; V194 tmp186 [V194,T138] ( 2, 1.50) byref -> rsi single-def "field V46._reference (fldOffset=0x0)" P-INDEP
+; V194 tmp186 [V194,T139] ( 2, 1.50) byref -> rsi single-def "field V46._reference (fldOffset=0x0)" P-INDEP
; V195 tmp187 [V195,T129] ( 2, 2 ) int -> rax "field V46._length (fldOffset=0x8)" P-INDEP
-; V196 tmp188 [V196,T139] ( 2, 1.50) byref -> rsi single-def "field V48._reference (fldOffset=0x0)" P-INDEP
+; V196 tmp188 [V196,T140] ( 2, 1.50) byref -> rsi single-def "field V48._reference (fldOffset=0x0)" P-INDEP
; V197 tmp189 [V197,T130] ( 2, 2 ) int -> rax "field V48._length (fldOffset=0x8)" P-INDEP
-; V198 tmp190 [V198,T78] ( 2, 6 ) byref -> rsi "field V50._reference (fldOffset=0x0)" P-INDEP
+; V198 tmp190 [V198,T82] ( 2, 6 ) byref -> rsi "field V50._reference (fldOffset=0x0)" P-INDEP
; V199 tmp191 [V199,T66] ( 2, 8 ) int -> rax "field V50._length (fldOffset=0x8)" P-INDEP
; V200 tmp192 [V200 ] ( 3, 14 ) long -> [rbp-0x70] do-not-enreg[X] addr-exposed "field V51._dateData (fldOffset=0x0)" P-DEP
;* V201 tmp193 [V201 ] ( 0, 0 ) long -> zero-ref "field V52._dateData (fldOffset=0x0)" P-INDEP
;* V202 tmp194 [V202 ] ( 0, 0 ) byref -> zero-ref "field V55._reference (fldOffset=0x0)" P-INDEP
;* V203 tmp195 [V203 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
;* V204 tmp196 [V204 ] ( 0, 0 ) byref -> zero-ref "field V57._reference (fldOffset=0x0)" P-INDEP
;* V205 tmp197 [V205 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
; V206 tmp198 [V206,T54] ( 2, 8 ) byref -> rsi "field V59._reference (fldOffset=0x0)" P-INDEP
; V207 tmp199 [V207,T67] ( 2, 8 ) int -> rdx "field V59._length (fldOffset=0x8)" P-INDEP
;* V208 tmp200 [V208 ] ( 0, 0 ) byref -> zero-ref "field V62._reference (fldOffset=0x0)" P-INDEP
;* V209 tmp201 [V209 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP
; V210 tmp202 [V210,T55] ( 2, 8 ) byref -> r9 "field V63._reference (fldOffset=0x0)" P-INDEP
;* V211 tmp203 [V211,T108] ( 0, 0 ) int -> zero-ref "field V63._length (fldOffset=0x8)" P-INDEP
; V212 tmp204 [V212,T68] ( 2, 8 ) long -> rdi "field V65._dateData (fldOffset=0x0)" P-INDEP
;* V213 tmp205 [V213,T109] ( 0, 0 ) long -> zero-ref "field V66._ticks (fldOffset=0x0)" P-INDEP
; V214 tmp206 [V214,T102] ( 2, 4 ) long -> rdi "field V67._dateData (fldOffset=0x0)" P-INDEP
;* V215 tmp207 [V215,T132] ( 0, 0 ) long -> zero-ref "field V68._ticks (fldOffset=0x0)" P-INDEP
;* V216 tmp208 [V216 ] ( 0, 0 ) byref -> zero-ref "field V72._reference (fldOffset=0x0)" P-INDEP
;* V217 tmp209 [V217 ] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-INDEP
;* V218 tmp210 [V218 ] ( 0, 0 ) byref -> zero-ref "field V73._reference (fldOffset=0x0)" P-INDEP
;* V219 tmp211 [V219 ] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP
;* V220 tmp212 [V220 ] ( 0, 0 ) byref -> zero-ref "field V76._reference (fldOffset=0x0)" P-INDEP
;* V221 tmp213 [V221 ] ( 0, 0 ) int -> zero-ref "field V76._length (fldOffset=0x8)" P-INDEP
-; V222 tmp214 [V222,T79] ( 2, 6 ) byref -> rsi "field V82._reference (fldOffset=0x0)" P-INDEP
+; V222 tmp214 [V222,T83] ( 2, 6 ) byref -> rsi "field V82._reference (fldOffset=0x0)" P-INDEP
; V223 tmp215 [V223,T69] ( 2, 8 ) int -> rax "field V82._length (fldOffset=0x8)" P-INDEP
; V224 tmp216 [V224 ] ( 3, 14 ) long -> [rbp-0x88] do-not-enreg[X] addr-exposed "field V83._dateData (fldOffset=0x0)" P-DEP
;* V225 tmp217 [V225 ] ( 0, 0 ) long -> zero-ref "field V84._dateData (fldOffset=0x0)" P-INDEP
;* V226 tmp218 [V226 ] ( 0, 0 ) byref -> zero-ref "field V87._reference (fldOffset=0x0)" P-INDEP
;* V227 tmp219 [V227 ] ( 0, 0 ) int -> zero-ref "field V87._length (fldOffset=0x8)" P-INDEP
;* V228 tmp220 [V228 ] ( 0, 0 ) byref -> zero-ref "field V89._reference (fldOffset=0x0)" P-INDEP
;* V229 tmp221 [V229 ] ( 0, 0 ) int -> zero-ref "field V89._length (fldOffset=0x8)" P-INDEP
; V230 tmp222 [V230,T56] ( 2, 8 ) byref -> rsi "field V91._reference (fldOffset=0x0)" P-INDEP
; V231 tmp223 [V231,T70] ( 2, 8 ) int -> rdx "field V91._length (fldOffset=0x8)" P-INDEP
;* V232 tmp224 [V232 ] ( 0, 0 ) byref -> zero-ref "field V94._reference (fldOffset=0x0)" P-INDEP
;* V233 tmp225 [V233 ] ( 0, 0 ) int -> zero-ref "field V94._length (fldOffset=0x8)" P-INDEP
; V234 tmp226 [V234,T57] ( 2, 8 ) byref -> r9 "field V95._reference (fldOffset=0x0)" P-INDEP
;* V235 tmp227 [V235,T110] ( 0, 0 ) int -> zero-ref "field V95._length (fldOffset=0x8)" P-INDEP
; V236 tmp228 [V236,T71] ( 2, 8 ) long -> rdi "field V97._dateData (fldOffset=0x0)" P-INDEP
;* V237 tmp229 [V237,T111] ( 0, 0 ) long -> zero-ref "field V98._ticks (fldOffset=0x0)" P-INDEP
; V238 tmp230 [V238,T103] ( 2, 4 ) long -> rdi "field V99._dateData (fldOffset=0x0)" P-INDEP
;* V239 tmp231 [V239,T133] ( 0, 0 ) long -> zero-ref "field V100._ticks (fldOffset=0x0)" P-INDEP
;* V240 tmp232 [V240 ] ( 0, 0 ) byref -> zero-ref "field V104._reference (fldOffset=0x0)" P-INDEP
;* V241 tmp233 [V241 ] ( 0, 0 ) int -> zero-ref "field V104._length (fldOffset=0x8)" P-INDEP
;* V242 tmp234 [V242 ] ( 0, 0 ) byref -> zero-ref "field V105._reference (fldOffset=0x0)" P-INDEP
;* V243 tmp235 [V243 ] ( 0, 0 ) int -> zero-ref "field V105._length (fldOffset=0x8)" P-INDEP
;* V244 tmp236 [V244 ] ( 0, 0 ) byref -> zero-ref "field V108._reference (fldOffset=0x0)" P-INDEP
;* V245 tmp237 [V245 ] ( 0, 0 ) int -> zero-ref "field V108._length (fldOffset=0x8)" P-INDEP
-; V246 tmp238 [V246,T80] ( 2, 6 ) byref -> rsi "field V114._reference (fldOffset=0x0)" P-INDEP
+; V246 tmp238 [V246,T84] ( 2, 6 ) byref -> rsi "field V114._reference (fldOffset=0x0)" P-INDEP
; V247 tmp239 [V247,T72] ( 2, 8 ) int -> rax "field V114._length (fldOffset=0x8)" P-INDEP
;* V248 tmp240 [V248 ] ( 0, 0 ) byref -> zero-ref "field V119._reference (fldOffset=0x0)" P-INDEP
;* V249 tmp241 [V249 ] ( 0, 0 ) int -> zero-ref "field V119._length (fldOffset=0x8)" P-INDEP
; V250 tmp242 [V250,T58] ( 2, 8 ) byref -> [rbp-0x108] spill-single-def "field V121._reference (fldOffset=0x0)" P-INDEP
;* V251 tmp243 [V251,T112] ( 0, 0 ) int -> zero-ref "field V121._length (fldOffset=0x8)" P-INDEP
; V252 tmp244 [V252,T59] ( 2, 8 ) byref -> [rbp-0x110] spill-single-def "field V123._reference (fldOffset=0x0)" P-INDEP
; V253 tmp245 [V253,T73] ( 2, 8 ) int -> [rbp-0xDC] spill-single-def "field V123._length (fldOffset=0x8)" P-INDEP
;* V254 tmp246 [V254 ] ( 0, 0 ) byref -> zero-ref "field V126._reference (fldOffset=0x0)" P-INDEP
;* V255 tmp247 [V255 ] ( 0, 0 ) int -> zero-ref "field V126._length (fldOffset=0x8)" P-INDEP
;* V256 tmp248 [V256 ] ( 0, 0 ) byref -> zero-ref "field V127._reference (fldOffset=0x0)" P-INDEP
;* V257 tmp249 [V257 ] ( 0, 0 ) int -> zero-ref "field V127._length (fldOffset=0x8)" P-INDEP
-; V258 tmp250 [V258,T81] ( 2, 6 ) byref -> rsi "field V135._reference (fldOffset=0x0)" P-INDEP
+; V258 tmp250 [V258,T85] ( 2, 6 ) byref -> rsi "field V135._reference (fldOffset=0x0)" P-INDEP
; V259 tmp251 [V259,T74] ( 2, 8 ) int -> rax "field V135._length (fldOffset=0x8)" P-INDEP
-; V260 tmp252 [V260,T82] ( 2, 6 ) byref -> rsi "field V137._reference (fldOffset=0x0)" P-INDEP
+; V260 tmp252 [V260,T86] ( 2, 6 ) byref -> rsi "field V137._reference (fldOffset=0x0)" P-INDEP
; V261 tmp253 [V261,T75] ( 2, 8 ) int -> rax "field V137._length (fldOffset=0x8)" P-INDEP
-; V262 tmp254 [V262,T83] ( 2, 6 ) byref -> rsi "field V139._reference (fldOffset=0x0)" P-INDEP
+; V262 tmp254 [V262,T87] ( 2, 6 ) byref -> rsi "field V139._reference (fldOffset=0x0)" P-INDEP
; V263 tmp255 [V263,T76] ( 2, 8 ) int -> rax "field V139._length (fldOffset=0x8)" P-INDEP
;* V264 tmp256 [V264 ] ( 0, 0 ) byref -> zero-ref "field V144._reference (fldOffset=0x0)" P-INDEP
;* V265 tmp257 [V265 ] ( 0, 0 ) int -> zero-ref "field V144._length (fldOffset=0x8)" P-INDEP
; V266 tmp258 [V266,T92] ( 2, 4 ) byref -> [rbp-0x118] spill-single-def "field V146._reference (fldOffset=0x0)" P-INDEP
;* V267 tmp259 [V267,T134] ( 0, 0 ) int -> zero-ref "field V146._length (fldOffset=0x8)" P-INDEP
; V268 tmp260 [V268,T93] ( 2, 4 ) byref -> [rbp-0x120] spill-single-def "field V148._reference (fldOffset=0x0)" P-INDEP
; V269 tmp261 [V269,T104] ( 2, 4 ) int -> [rbp-0xE0] spill-single-def "field V148._length (fldOffset=0x8)" P-INDEP
;* V270 tmp262 [V270 ] ( 0, 0 ) byref -> zero-ref "field V151._reference (fldOffset=0x0)" P-INDEP
;* V271 tmp263 [V271 ] ( 0, 0 ) int -> zero-ref "field V151._length (fldOffset=0x8)" P-INDEP
;* V272 tmp264 [V272 ] ( 0, 0 ) byref -> zero-ref "field V152._reference (fldOffset=0x0)" P-INDEP
;* V273 tmp265 [V273 ] ( 0, 0 ) int -> zero-ref "field V152._length (fldOffset=0x8)" P-INDEP
; V274 tmp266 [V274,T94] ( 2, 4 ) byref -> rsi "field V160._reference (fldOffset=0x0)" P-INDEP
; V275 tmp267 [V275,T105] ( 2, 4 ) int -> rax "field V160._length (fldOffset=0x8)" P-INDEP
; V276 tmp268 [V276,T95] ( 2, 4 ) byref -> rsi "field V162._reference (fldOffset=0x0)" P-INDEP
; V277 tmp269 [V277,T106] ( 2, 4 ) int -> rax "field V162._length (fldOffset=0x8)" P-INDEP
; V278 tmp270 [V278,T96] ( 2, 4 ) byref -> rsi "field V164._reference (fldOffset=0x0)" P-INDEP
; V279 tmp271 [V279,T107] ( 2, 4 ) int -> rax "field V164._length (fldOffset=0x8)" P-INDEP
-; V280 tmp272 [V280,T84] ( 2, 6 ) byref -> rsi "field V166._reference (fldOffset=0x0)" P-INDEP
+; V280 tmp272 [V280,T88] ( 2, 6 ) byref -> rsi "field V166._reference (fldOffset=0x0)" P-INDEP
; V281 tmp273 [V281,T77] ( 2, 8 ) int -> rax "field V166._length (fldOffset=0x8)" P-INDEP
-; V282 tmp274 [V282,T140] ( 2, 1.50) byref -> rsi single-def "field V168._reference (fldOffset=0x0)" P-INDEP
+; V282 tmp274 [V282,T141] ( 2, 1.50) byref -> rsi single-def "field V168._reference (fldOffset=0x0)" P-INDEP
; V283 tmp275 [V283,T131] ( 2, 2 ) int -> rax "field V168._length (fldOffset=0x8)" P-INDEP
; V284 tmp276 [V284,T97] ( 2, 4 ) ref -> rdi single-def "argument with side effect"
; V285 tmp277 [V285,T98] ( 2, 4 ) ref -> rdi single-def "argument with side effect"
; V286 tmp278 [V286,T99] ( 2, 4 ) ref -> rdi single-def "argument with side effect"
; V287 GsCookie [V287 ] ( 1, 1 ) long -> [rbp-0x130] do-not-enreg[X] addr-exposed "GSSecurityCookie"
; V288 cse0 [V288,T40] ( 4, 8 ) ref -> r14 "CSE - conservative"
; V289 cse1 [V289,T30] ( 3, 12 ) ref -> r12 "CSE - conservative"
; V290 cse2 [V290,T31] ( 3, 12 ) byref -> [rbp-0x128] spill-single-def "CSE - conservative"
-; V291 cse3 [V291,T19] ( 7, 14 ) int -> [rbp-0xE4] spill-single-def "CSE - moderate"
-; V292 cse4 [V292,T20] ( 7, 14 ) int -> [rbp-0xE8] spill-single-def "CSE - moderate"
+; V291 cse3 [V291,T20] ( 7, 14 ) int -> [rbp-0xE4] spill-single-def "CSE - moderate"
+; V292 cse4 [V292,T21] ( 7, 14 ) int -> [rbp-0xE8] spill-single-def "CSE - moderate"
;
; Lcl frame size = 296
G_M8366_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 296
vzeroupper
lea rbp, [rsp+0x150]
xor eax, eax
mov qword ptr [rbp-0x48], rax
vxorps xmm8, xmm8, xmm8
vmovdqa xmmword ptr [rbp-0x40], xmm8
mov qword ptr [rbp-0x30], rax
mov qword ptr [rbp-0x130], 0xD1FFAB1E
mov rbx, rdi
;; size=62 bbWeight=1 PerfScore 13.58
G_M8366_IG02:
test dword ptr [rsp], esp
sub rsp, 128
lea rdi, [rsp+0x20]
mov bword ptr [rbp-0x38], rdi
mov dword ptr [rbp-0x30], 64
xor edi, edi
mov dword ptr [rbp-0x40], edi
mov rdi, gword ptr [rbx+0x08]
lea rsi, [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo+StringSerializer:SerializeSubstitute(System.String,byref)
call [rax]System.TimeZoneInfo+StringSerializer:SerializeSubstitute(System.String,byref)
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
jae SHORT G_M8366_IG04
;; size=65 bbWeight=1 PerfScore 17.00
G_M8366_IG03:
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M8366_IG05
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M8366_IG04:
lea rdi, [rbp-0x48]
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=0.50 PerfScore 2.00
G_M8366_IG05:
mov r15, qword ptr [rbx+0x50]
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, r15
vdivsd xmm0, xmm0, qword ptr [reloc @RWD00]
vmovsd qword ptr [rbp-0x50], xmm0
mov rdi, 0xD1FFAB1E ; const ptr
mov r14, gword ptr [rdi]
mov r15, r14
lea rdi, bword ptr [rbp-0x50]
mov eax, dword ptr [rbp-0x40]
cmp eax, dword ptr [rbp-0x30]
- ja G_M8366_IG77
+ ja G_M8366_IG91
mov rcx, bword ptr [rbp-0x38]
mov edx, eax
lea r13, bword ptr [rcx+2*rdx]
mov r12d, dword ptr [rbp-0x30]
sub r12d, eax
xor rax, rax
mov bword ptr [rbp-0x100], rax
vmovsd xmm0, qword ptr [rdi]
vmovsd qword ptr [rbp-0x60], xmm0
+ test r15, r15
+ je SHORT G_M8366_IG07
+ ;; size=98 bbWeight=1 PerfScore 40.83
+G_M8366_IG06:
mov rdi, r15
mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rcx]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rdx, rax
+ jmp SHORT G_M8366_IG08
+ ;; size=17 bbWeight=0.50 PerfScore 2.75
+G_M8366_IG07:
+ mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rcx]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M8366_IG08:
mov rcx, r13
mov r8d, r12d
mov rdi, bword ptr [rbp-0x100]
xor esi, esi
lea r9, [rbp-0x58]
vmovsd xmm0, qword ptr [rbp-0x60]
+ mov rdx, rax
mov rax, 0xD1FFAB1E ; code for System.Number:TryFormatDouble[ushort](double,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref):ubyte
call [rax]System.Number:TryFormatDouble[ushort](double,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref):ubyte
test eax, eax
- je SHORT G_M8366_IG07
- ;; size=151 bbWeight=1 PerfScore 53.08
-G_M8366_IG06:
+ je SHORT G_M8366_IG10
+ ;; size=43 bbWeight=1 PerfScore 10.00
+G_M8366_IG09:
mov edi, dword ptr [rbp-0x40]
add edi, dword ptr [rbp-0x58]
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG09
- ;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M8366_IG07:
+ jmp G_M8366_IG14
+ ;; size=14 bbWeight=0.50 PerfScore 3.00
+G_M8366_IG10:
vmovsd xmm0, qword ptr [rbp-0x50]
vmovsd qword ptr [rbp-0x68], xmm0
+ test r15, r15
+ je SHORT G_M8366_IG11
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rsi, rax
+ jmp SHORT G_M8366_IG12
+ ;; size=32 bbWeight=0.50 PerfScore 5.38
+G_M8366_IG11:
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M8366_IG12:
vmovsd xmm0, qword ptr [rbp-0x68]
+ mov rsi, rax
xor rdi, rdi
mov rax, 0xD1FFAB1E ; code for System.Number:FormatDouble(double,System.String,System.Globalization.NumberFormatInfo):System.String
call [rax]System.Number:FormatDouble(double,System.String,System.Globalization.NumberFormatInfo):System.String
test rax, rax
- je SHORT G_M8366_IG09
+ je SHORT G_M8366_IG14
mov edi, dword ptr [rbp-0x40]
cmp dword ptr [rax+0x08], 1
- jne SHORT G_M8366_IG08
+ jne SHORT G_M8366_IG13
cmp edi, dword ptr [rbp-0x30]
- jae SHORT G_M8366_IG08
+ jae SHORT G_M8366_IG13
cmp edi, dword ptr [rbp-0x30]
- jae G_M8366_IG75
+ jae G_M8366_IG89
mov rsi, bword ptr [rbp-0x38]
mov ecx, edi
movzx rax, word ptr [rax+0x0C]
mov word ptr [rsi+2*rcx], ax
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG09
- ;; size=96 bbWeight=0.50 PerfScore 17.00
-G_M8366_IG08:
+ jmp SHORT G_M8366_IG14
+ ;; size=71 bbWeight=0.50 PerfScore 13.25
+G_M8366_IG13:
lea rdi, [rbp-0x48]
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:AppendSlow(System.String):this
call [rax]System.Text.ValueStringBuilder:AppendSlow(System.String):this
;; size=19 bbWeight=0.50 PerfScore 2.00
-G_M8366_IG09:
+G_M8366_IG14:
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M8366_IG11
+ jae SHORT G_M8366_IG16
;; size=14 bbWeight=1 PerfScore 4.25
-G_M8366_IG10:
+G_M8366_IG15:
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG12
+ jmp SHORT G_M8366_IG17
;; size=15 bbWeight=0.50 PerfScore 2.25
-G_M8366_IG11:
+G_M8366_IG16:
lea rdi, [rbp-0x48]
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=0.50 PerfScore 2.00
-G_M8366_IG12:
+G_M8366_IG17:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:get_DisplayName():System.String:this
call [rax]System.TimeZoneInfo:get_DisplayName():System.String:this
mov rdi, rax
lea rsi, [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo+StringSerializer:SerializeSubstitute(System.String,byref)
call [rax]System.TimeZoneInfo+StringSerializer:SerializeSubstitute(System.String,byref)
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M8366_IG14
+ jae SHORT G_M8366_IG19
;; size=48 bbWeight=1 PerfScore 11.75
-G_M8366_IG13:
+G_M8366_IG18:
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG15
+ jmp SHORT G_M8366_IG20
;; size=15 bbWeight=0.50 PerfScore 2.25
-G_M8366_IG14:
+G_M8366_IG19:
lea rdi, [rbp-0x48]
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=0.50 PerfScore 2.00
-G_M8366_IG15:
+G_M8366_IG20:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:get_StandardName():System.String:this
call [rax]System.TimeZoneInfo:get_StandardName():System.String:this
mov rdi, rax
lea rsi, [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo+StringSerializer:SerializeSubstitute(System.String,byref)
call [rax]System.TimeZoneInfo+StringSerializer:SerializeSubstitute(System.String,byref)
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M8366_IG17
+ jae SHORT G_M8366_IG22
;; size=48 bbWeight=1 PerfScore 11.75
-G_M8366_IG16:
+G_M8366_IG21:
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG18
+ jmp SHORT G_M8366_IG23
;; size=15 bbWeight=0.50 PerfScore 2.25
-G_M8366_IG17:
+G_M8366_IG22:
lea rdi, [rbp-0x48]
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=0.50 PerfScore 2.00
-G_M8366_IG18:
+G_M8366_IG23:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:get_DaylightName():System.String:this
call [rax]System.TimeZoneInfo:get_DaylightName():System.String:this
mov rdi, rax
lea rsi, [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo+StringSerializer:SerializeSubstitute(System.String,byref)
call [rax]System.TimeZoneInfo+StringSerializer:SerializeSubstitute(System.String,byref)
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M8366_IG20
+ jae SHORT G_M8366_IG25
;; size=48 bbWeight=1 PerfScore 11.75
-G_M8366_IG19:
+G_M8366_IG24:
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG21
+ jmp SHORT G_M8366_IG26
;; size=15 bbWeight=0.50 PerfScore 2.25
-G_M8366_IG20:
+G_M8366_IG25:
lea rdi, [rbp-0x48]
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=0.50 PerfScore 2.00
-G_M8366_IG21:
+G_M8366_IG26:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:GetAdjustmentRules():System.TimeZoneInfo+AdjustmentRule[]:this
call [rax]System.TimeZoneInfo:GetAdjustmentRules():System.TimeZoneInfo+AdjustmentRule[]:this
mov rbx, rax
xor r15d, r15d
cmp dword ptr [rbx+0x08], 0
- jle G_M8366_IG69
+ jle G_M8366_IG83
;; size=31 bbWeight=1 PerfScore 8.00
-G_M8366_IG22:
+G_M8366_IG27:
mov edi, r15d
mov r13, gword ptr [rbx+8*rdi+0x10]
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M8366_IG24
+ jae SHORT G_M8366_IG29
;; size=22 bbWeight=4 PerfScore 26.00
-G_M8366_IG23:
+G_M8366_IG28:
mov eax, edi
mov word ptr [rsi+2*rax], 91
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG25
+ jmp SHORT G_M8366_IG30
;; size=15 bbWeight=2 PerfScore 9.00
-G_M8366_IG24:
+G_M8366_IG29:
lea rdi, [rbp-0x48]
mov esi, 91
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=2 PerfScore 8.00
-G_M8366_IG25:
+G_M8366_IG30:
mov r8, qword ptr [r13+0x10]
mov qword ptr [rbp-0x70], r8
mov r8, 0xD1FFAB1E ; const ptr
mov r12, gword ptr [r8]
mov rax, r12
mov gword ptr [rbp-0xF0], rax
lea r8, bword ptr [rbp-0x70]
mov r9d, dword ptr [rbp-0x40]
cmp r9d, dword ptr [rbp-0x30]
- ja G_M8366_IG77
+ ja G_M8366_IG91
mov rsi, bword ptr [rbp-0x38]
mov edx, r9d
lea rsi, bword ptr [rsi+2*rdx]
mov edx, dword ptr [rbp-0x30]
sub edx, r9d
mov r10, 0xD1FFAB1E
mov bword ptr [rbp-0x128], r10
mov r9, r10
mov rdi, qword ptr [r8]
mov gword ptr [rsp], rax
mov r8, 0xD1FFAB1E
mov qword ptr [rsp+0x08], r8
mov r8, r9
mov r9d, 10
lea rcx, [rbp-0x78]
mov r11, 0xD1FFAB1E ; code for System.DateTimeFormat:TryFormat[ushort](System.DateTime,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.TimeSpan):ubyte
call [r11]System.DateTimeFormat:TryFormat[ushort](System.DateTime,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.TimeSpan):ubyte
test eax, eax
- je SHORT G_M8366_IG27
+ je SHORT G_M8366_IG32
;; size=138 bbWeight=4 PerfScore 101.00
-G_M8366_IG26:
+G_M8366_IG31:
mov edi, dword ptr [rbp-0x40]
add edi, dword ptr [rbp-0x78]
mov dword ptr [rbp-0x40], edi
- jmp G_M8366_IG30
+ jmp G_M8366_IG35
;; size=14 bbWeight=2 PerfScore 12.00
-G_M8366_IG27:
+G_M8366_IG32:
mov rdi, qword ptr [rbp-0x70]
mov rcx, 0xD1FFAB1E
mov rdx, gword ptr [rbp-0xF0]
mov rsi, 0xD1FFAB1E ; 'MM:dd:yyyy'
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:Format(System.DateTime,System.String,System.IFormatProvider,System.TimeSpan):System.String
call [rax]System.DateTimeFormat:Format(System.DateTime,System.String,System.IFormatProvider,System.TimeSpan):System.String
mov rsi, rax
mov gword ptr [rbp-0xF8], rsi
test rsi, rsi
- je G_M8366_IG30
+ je G_M8366_IG35
mov edi, dword ptr [rbp-0x40]
mov eax, dword ptr [rsi+0x08]
mov dword ptr [rbp-0xE4], eax
cmp eax, 1
- jne SHORT G_M8366_IG28
+ jne SHORT G_M8366_IG33
cmp edi, dword ptr [rbp-0x30]
- jae SHORT G_M8366_IG28
+ jae SHORT G_M8366_IG33
cmp edi, dword ptr [rbp-0x30]
- jae G_M8366_IG75
+ jae G_M8366_IG89
mov rax, bword ptr [rbp-0x38]
mov ecx, edi
movzx rsi, word ptr [rsi+0x0C]
mov word ptr [rax+2*rcx], si
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG30
+ jmp SHORT G_M8366_IG35
;; size=114 bbWeight=2 PerfScore 54.00
-G_M8366_IG28:
+G_M8366_IG33:
mov ecx, dword ptr [rbp-0x40]
mov dword ptr [rbp-0x7C], ecx
mov edi, dword ptr [rbp-0x30]
sub edi, eax
cmp edi, ecx
- jge SHORT G_M8366_IG29
+ jge SHORT G_M8366_IG34
mov esi, eax
lea rdi, [rbp-0x48]
mov rdx, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
call [rdx]System.Text.ValueStringBuilder:Grow(int):this
mov eax, dword ptr [rbp-0xE4]
mov rsi, gword ptr [rbp-0xF8]
;; size=46 bbWeight=2 PerfScore 21.00
-G_M8366_IG29:
+G_M8366_IG34:
mov ecx, dword ptr [rbp-0x7C]
cmp ecx, dword ptr [rbp-0x30]
- ja G_M8366_IG77
+ ja G_M8366_IG91
mov rdx, bword ptr [rbp-0x38]
mov edi, ecx
lea rdi, bword ptr [rdx+2*rdi]
mov edx, dword ptr [rbp-0x30]
sub edx, ecx
cmp eax, edx
- ja G_M8366_IG76
+ ja G_M8366_IG90
add rsi, 12
mov edx, eax
add rdx, rdx
mov rcx, 0xD1FFAB1E ; code for System.Buffer:Memmove(byref,byref,ulong)
call [rcx]System.Buffer:Memmove(byref,byref,ulong)
mov edi, dword ptr [rbp-0xE4]
add edi, dword ptr [rbp-0x40]
mov dword ptr [rbp-0x40], edi
;; size=68 bbWeight=2 PerfScore 32.50
-G_M8366_IG30:
+G_M8366_IG35:
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M8366_IG32
+ jae SHORT G_M8366_IG37
;; size=14 bbWeight=4 PerfScore 17.00
-G_M8366_IG31:
+G_M8366_IG36:
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG33
+ jmp SHORT G_M8366_IG38
;; size=15 bbWeight=2 PerfScore 9.00
-G_M8366_IG32:
+G_M8366_IG37:
lea rdi, [rbp-0x48]
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=2 PerfScore 8.00
-G_M8366_IG33:
+G_M8366_IG38:
mov r8, qword ptr [r13+0x18]
mov qword ptr [rbp-0x88], r8
lea r8, bword ptr [rbp-0x88]
mov r9d, dword ptr [rbp-0x40]
cmp r9d, dword ptr [rbp-0x30]
- ja G_M8366_IG77
+ ja G_M8366_IG91
mov rsi, bword ptr [rbp-0x38]
mov edx, r9d
lea rsi, bword ptr [rsi+2*rdx]
mov edx, dword ptr [rbp-0x30]
sub edx, r9d
mov r9, bword ptr [rbp-0x128]
mov rdi, qword ptr [r8]
mov gword ptr [rsp], r12
mov r8, 0xD1FFAB1E
mov qword ptr [rsp+0x08], r8
mov r8, r9
mov r9d, 10
lea rcx, [rbp-0x90]
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:TryFormat[ushort](System.DateTime,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.TimeSpan):ubyte
call [rax]System.DateTimeFormat:TryFormat[ushort](System.DateTime,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.TimeSpan):ubyte
test eax, eax
- je SHORT G_M8366_IG35
+ je SHORT G_M8366_IG40
;; size=110 bbWeight=4 PerfScore 85.00
-G_M8366_IG34:
+G_M8366_IG39:
mov edi, dword ptr [rbp-0x40]
add edi, dword ptr [rbp-0x90]
mov dword ptr [rbp-0x40], edi
- jmp G_M8366_IG38
+ jmp G_M8366_IG43
;; size=17 bbWeight=2 PerfScore 12.00
-G_M8366_IG35:
+G_M8366_IG40:
mov rdi, qword ptr [rbp-0x88]
mov rcx, 0xD1FFAB1E
mov rdx, r12
mov rsi, 0xD1FFAB1E ; 'MM:dd:yyyy'
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:Format(System.DateTime,System.String,System.IFormatProvider,System.TimeSpan):System.String
call [rax]System.DateTimeFormat:Format(System.DateTime,System.String,System.IFormatProvider,System.TimeSpan):System.String
mov r12, rax
test r12, r12
- je G_M8366_IG38
+ je G_M8366_IG43
mov esi, dword ptr [rbp-0x40]
mov eax, dword ptr [r12+0x08]
mov dword ptr [rbp-0xE8], eax
cmp eax, 1
- jne SHORT G_M8366_IG36
+ jne SHORT G_M8366_IG41
cmp esi, dword ptr [rbp-0x30]
- jae SHORT G_M8366_IG36
+ jae SHORT G_M8366_IG41
cmp esi, dword ptr [rbp-0x30]
- jae G_M8366_IG75
+ jae G_M8366_IG89
mov rax, bword ptr [rbp-0x38]
mov edi, esi
movzx rcx, word ptr [r12+0x0C]
mov word ptr [rax+2*rdi], cx
inc esi
mov dword ptr [rbp-0x40], esi
- jmp SHORT G_M8366_IG38
+ jmp SHORT G_M8366_IG43
;; size=110 bbWeight=2 PerfScore 50.50
-G_M8366_IG36:
+G_M8366_IG41:
mov ecx, dword ptr [rbp-0x40]
mov dword ptr [rbp-0x94], ecx
mov esi, dword ptr [rbp-0x30]
sub esi, eax
cmp esi, ecx
- jge SHORT G_M8366_IG37
+ jge SHORT G_M8366_IG42
mov esi, eax
lea rdi, [rbp-0x48]
mov rdx, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
call [rdx]System.Text.ValueStringBuilder:Grow(int):this
mov eax, dword ptr [rbp-0xE8]
;; size=42 bbWeight=2 PerfScore 19.00
-G_M8366_IG37:
+G_M8366_IG42:
mov ecx, dword ptr [rbp-0x94]
cmp ecx, dword ptr [rbp-0x30]
- ja G_M8366_IG77
+ ja G_M8366_IG91
mov rdx, bword ptr [rbp-0x38]
mov edi, ecx
lea rdi, bword ptr [rdx+2*rdi]
mov edx, dword ptr [rbp-0x30]
sub edx, ecx
cmp eax, edx
- ja G_M8366_IG76
+ ja G_M8366_IG90
lea rsi, bword ptr [r12+0x0C]
mov edx, eax
add rdx, rdx
mov rcx, 0xD1FFAB1E ; code for System.Buffer:Memmove(byref,byref,ulong)
call [rcx]System.Buffer:Memmove(byref,byref,ulong)
mov r12d, dword ptr [rbp-0xE8]
add r12d, dword ptr [rbp-0x40]
mov dword ptr [rbp-0x40], r12d
;; size=75 bbWeight=2 PerfScore 33.00
-G_M8366_IG38:
+G_M8366_IG43:
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M8366_IG40
+ jae SHORT G_M8366_IG45
;; size=14 bbWeight=4 PerfScore 17.00
-G_M8366_IG39:
+G_M8366_IG44:
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG41
+ jmp SHORT G_M8366_IG46
;; size=15 bbWeight=2 PerfScore 9.00
-G_M8366_IG40:
+G_M8366_IG45:
lea rdi, [rbp-0x48]
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=2 PerfScore 8.00
-G_M8366_IG41:
+G_M8366_IG46:
mov rdi, qword ptr [r13+0x20]
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, rdi
vdivsd xmm0, xmm0, qword ptr [reloc @RWD00]
vmovsd qword ptr [rbp-0xA0], xmm0
mov r12, r14
lea rdi, bword ptr [rbp-0xA0]
mov eax, dword ptr [rbp-0x40]
cmp eax, dword ptr [rbp-0x30]
- ja G_M8366_IG77
+ ja G_M8366_IG91
mov rcx, bword ptr [rbp-0x38]
mov edx, eax
lea rcx, bword ptr [rcx+2*rdx]
mov edx, dword ptr [rbp-0x30]
sub edx, eax
mov eax, edx
mov bword ptr [rbp-0x110], rcx
mov dword ptr [rbp-0xDC], eax
xor rdx, rdx
mov bword ptr [rbp-0x108], rdx
vmovsd xmm0, qword ptr [rdi]
vmovsd qword ptr [rbp-0xB0], xmm0
+ test r12, r12
+ je SHORT G_M8366_IG48
+ ;; size=107 bbWeight=4 PerfScore 163.33
+G_M8366_IG47:
mov rdi, r12
mov rsi, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rsi]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rdx, rax
+ jmp SHORT G_M8366_IG49
+ ;; size=17 bbWeight=2 PerfScore 11.00
+G_M8366_IG48:
+ mov rdi, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rdi]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=2 PerfScore 6.50
+G_M8366_IG49:
mov rcx, bword ptr [rbp-0x110]
mov r8d, dword ptr [rbp-0xDC]
mov rdi, bword ptr [rbp-0x108]
xor esi, esi
lea r9, [rbp-0xA8]
vmovsd xmm0, qword ptr [rbp-0xB0]
+ mov rdx, rax
mov rax, 0xD1FFAB1E ; code for System.Number:TryFormatDouble[ushort](double,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref):ubyte
call [rax]System.Number:TryFormatDouble[ushort](double,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref):ubyte
test eax, eax
- je SHORT G_M8366_IG43
- ;; size=174 bbWeight=4 PerfScore 218.33
-G_M8366_IG42:
+ je SHORT G_M8366_IG51
+ ;; size=57 bbWeight=4 PerfScore 46.00
+G_M8366_IG50:
mov edi, dword ptr [rbp-0x40]
add edi, dword ptr [rbp-0xA8]
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG45
- ;; size=14 bbWeight=2 PerfScore 12.00
-G_M8366_IG43:
+ jmp G_M8366_IG55
+ ;; size=17 bbWeight=2 PerfScore 12.00
+G_M8366_IG51:
vmovsd xmm0, qword ptr [rbp-0xA0]
vmovsd qword ptr [rbp-0xB8], xmm0
+ test r12, r12
+ je SHORT G_M8366_IG52
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rsi, rax
+ jmp SHORT G_M8366_IG53
+ ;; size=38 bbWeight=2 PerfScore 21.50
+G_M8366_IG52:
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=2 PerfScore 6.50
+G_M8366_IG53:
vmovsd xmm0, qword ptr [rbp-0xB8]
+ mov rsi, rax
xor rdi, rdi
mov rax, 0xD1FFAB1E ; code for System.Number:FormatDouble(double,System.String,System.Globalization.NumberFormatInfo):System.String
call [rax]System.Number:FormatDouble(double,System.String,System.Globalization.NumberFormatInfo):System.String
test rax, rax
- je SHORT G_M8366_IG45
+ je SHORT G_M8366_IG55
mov edi, dword ptr [rbp-0x40]
cmp dword ptr [rax+0x08], 1
- jne SHORT G_M8366_IG44
+ jne SHORT G_M8366_IG54
cmp edi, dword ptr [rbp-0x30]
- jae SHORT G_M8366_IG44
+ jae SHORT G_M8366_IG54
cmp edi, dword ptr [rbp-0x30]
- jae G_M8366_IG75
+ jae G_M8366_IG89
mov rsi, bword ptr [rbp-0x38]
mov ecx, edi
movzx rax, word ptr [rax+0x0C]
mov word ptr [rsi+2*rcx], ax
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG45
- ;; size=105 bbWeight=2 PerfScore 68.00
-G_M8366_IG44:
+ jmp SHORT G_M8366_IG55
+ ;; size=74 bbWeight=2 PerfScore 53.00
+G_M8366_IG54:
lea rdi, [rbp-0x48]
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:AppendSlow(System.String):this
call [rax]System.Text.ValueStringBuilder:AppendSlow(System.String):this
;; size=19 bbWeight=2 PerfScore 8.00
-G_M8366_IG45:
+G_M8366_IG55:
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M8366_IG47
+ jae SHORT G_M8366_IG57
;; size=14 bbWeight=4 PerfScore 17.00
-G_M8366_IG46:
+G_M8366_IG56:
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG48
+ jmp SHORT G_M8366_IG58
;; size=15 bbWeight=2 PerfScore 9.00
-G_M8366_IG47:
+G_M8366_IG57:
lea rdi, [rbp-0x48]
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=2 PerfScore 8.00
-G_M8366_IG48:
+G_M8366_IG58:
lea rdi, bword ptr [r13+0x28]
vmovdqu xmm0, xmmword ptr [rdi]
vmovdqu xmmword ptr [rsp], xmm0
mov rax, qword ptr [rdi+0x10]
mov qword ptr [rsp+0x10], rax
lea rdi, [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo+StringSerializer:SerializeTransitionTime(System.TimeZoneInfo+TransitionTime,byref)
call [rax]System.TimeZoneInfo+StringSerializer:SerializeTransitionTime(System.TimeZoneInfo+TransitionTime,byref)
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M8366_IG50
+ jae SHORT G_M8366_IG60
;; size=52 bbWeight=4 PerfScore 66.00
-G_M8366_IG49:
+G_M8366_IG59:
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG51
+ jmp SHORT G_M8366_IG61
;; size=15 bbWeight=2 PerfScore 9.00
-G_M8366_IG50:
+G_M8366_IG60:
lea rdi, [rbp-0x48]
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=2 PerfScore 8.00
-G_M8366_IG51:
+G_M8366_IG61:
lea rdi, bword ptr [r13+0x40]
vmovdqu xmm0, xmmword ptr [rdi]
vmovdqu xmmword ptr [rsp], xmm0
mov rax, qword ptr [rdi+0x10]
mov qword ptr [rsp+0x10], rax
lea rdi, [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo+StringSerializer:SerializeTransitionTime(System.TimeZoneInfo+TransitionTime,byref)
call [rax]System.TimeZoneInfo+StringSerializer:SerializeTransitionTime(System.TimeZoneInfo+TransitionTime,byref)
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M8366_IG53
+ jae SHORT G_M8366_IG63
;; size=52 bbWeight=4 PerfScore 66.00
-G_M8366_IG52:
+G_M8366_IG62:
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG54
+ jmp SHORT G_M8366_IG64
;; size=15 bbWeight=2 PerfScore 9.00
-G_M8366_IG53:
+G_M8366_IG63:
lea rdi, [rbp-0x48]
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=2 PerfScore 8.00
-G_M8366_IG54:
+G_M8366_IG64:
mov rdi, qword ptr [r13+0x58]
test rdi, rdi
- je G_M8366_IG60
+ je G_M8366_IG74
;; size=13 bbWeight=4 PerfScore 13.00
-G_M8366_IG55:
+G_M8366_IG65:
mov rdi, qword ptr [r13+0x58]
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, rdi
vdivsd xmm0, xmm0, qword ptr [reloc @RWD00]
vmovsd qword ptr [rbp-0xC0], xmm0
mov r12, r14
lea rdi, bword ptr [rbp-0xC0]
mov eax, dword ptr [rbp-0x40]
cmp eax, dword ptr [rbp-0x30]
- ja G_M8366_IG77
+ ja G_M8366_IG91
mov rcx, bword ptr [rbp-0x38]
mov edx, eax
lea rcx, bword ptr [rcx+2*rdx]
mov edx, dword ptr [rbp-0x30]
sub edx, eax
mov eax, edx
mov bword ptr [rbp-0x120], rcx
mov dword ptr [rbp-0xE0], eax
xor rdx, rdx
mov bword ptr [rbp-0x118], rdx
vmovsd xmm0, qword ptr [rdi]
vmovsd qword ptr [rbp-0xD0], xmm0
+ test r12, r12
+ je SHORT G_M8366_IG66
mov rdi, r12
mov rsi, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rsi]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rdx, rax
+ jmp SHORT G_M8366_IG67
+ ;; size=124 bbWeight=2 PerfScore 92.67
+G_M8366_IG66:
+ mov rdi, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rdi]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=2 PerfScore 6.50
+G_M8366_IG67:
mov rcx, bword ptr [rbp-0x120]
mov r8d, dword ptr [rbp-0xE0]
mov rdi, bword ptr [rbp-0x118]
xor esi, esi
lea r9, [rbp-0xC8]
vmovsd xmm0, qword ptr [rbp-0xD0]
+ mov rdx, rax
mov rax, 0xD1FFAB1E ; code for System.Number:TryFormatDouble[ushort](double,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref):ubyte
call [rax]System.Number:TryFormatDouble[ushort](double,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref):ubyte
test eax, eax
- je SHORT G_M8366_IG56
+ je SHORT G_M8366_IG68
mov edi, dword ptr [rbp-0x40]
add edi, dword ptr [rbp-0xC8]
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG58
- ;; size=188 bbWeight=2 PerfScore 121.17
-G_M8366_IG56:
+ jmp G_M8366_IG72
+ ;; size=74 bbWeight=2 PerfScore 35.00
+G_M8366_IG68:
vmovsd xmm0, qword ptr [rbp-0xC0]
vmovsd qword ptr [rbp-0xD8], xmm0
+ test r12, r12
+ je SHORT G_M8366_IG69
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- mov rsi, rax
+ jmp SHORT G_M8366_IG70
+ ;; size=38 bbWeight=2 PerfScore 21.50
+G_M8366_IG69:
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=2 PerfScore 6.50
+G_M8366_IG70:
vmovsd xmm0, qword ptr [rbp-0xD8]
+ mov rsi, rax
xor rdi, rdi
mov rax, 0xD1FFAB1E ; code for System.Number:FormatDouble(double,System.String,System.Globalization.NumberFormatInfo):System.String
call [rax]System.Number:FormatDouble(double,System.String,System.Globalization.NumberFormatInfo):System.String
test rax, rax
- je SHORT G_M8366_IG58
+ je SHORT G_M8366_IG72
mov edi, dword ptr [rbp-0x40]
cmp dword ptr [rax+0x08], 1
- jne SHORT G_M8366_IG57
+ jne SHORT G_M8366_IG71
cmp edi, dword ptr [rbp-0x30]
- jae SHORT G_M8366_IG57
+ jae SHORT G_M8366_IG71
cmp edi, dword ptr [rbp-0x30]
- jae G_M8366_IG75
+ jae G_M8366_IG89
mov rsi, bword ptr [rbp-0x38]
mov ecx, edi
movzx rax, word ptr [rax+0x0C]
mov word ptr [rsi+2*rcx], ax
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG58
- ;; size=105 bbWeight=2 PerfScore 68.00
-G_M8366_IG57:
+ jmp SHORT G_M8366_IG72
+ ;; size=74 bbWeight=2 PerfScore 53.00
+G_M8366_IG71:
lea rdi, [rbp-0x48]
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:AppendSlow(System.String):this
call [rax]System.Text.ValueStringBuilder:AppendSlow(System.String):this
;; size=19 bbWeight=2 PerfScore 8.00
-G_M8366_IG58:
+G_M8366_IG72:
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M8366_IG59
+ jae SHORT G_M8366_IG73
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG60
+ jmp SHORT G_M8366_IG74
;; size=29 bbWeight=2 PerfScore 17.50
-G_M8366_IG59:
+G_M8366_IG73:
lea rdi, [rbp-0x48]
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=2 PerfScore 8.00
-G_M8366_IG60:
+G_M8366_IG74:
cmp byte ptr [r13+0x08], 0
- je SHORT G_M8366_IG65
+ je SHORT G_M8366_IG79
;; size=7 bbWeight=4 PerfScore 16.00
-G_M8366_IG61:
+G_M8366_IG75:
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M8366_IG62
+ jae SHORT G_M8366_IG76
mov eax, edi
mov word ptr [rsi+2*rax], 49
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG63
+ jmp SHORT G_M8366_IG77
;; size=29 bbWeight=2 PerfScore 17.50
-G_M8366_IG62:
+G_M8366_IG76:
lea rdi, [rbp-0x48]
mov esi, 49
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=2 PerfScore 8.00
-G_M8366_IG63:
+G_M8366_IG77:
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M8366_IG64
+ jae SHORT G_M8366_IG78
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG65
+ jmp SHORT G_M8366_IG79
;; size=29 bbWeight=2 PerfScore 17.50
-G_M8366_IG64:
+G_M8366_IG78:
lea rdi, [rbp-0x48]
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=2 PerfScore 8.00
-G_M8366_IG65:
+G_M8366_IG79:
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M8366_IG67
+ jae SHORT G_M8366_IG81
;; size=14 bbWeight=4 PerfScore 17.00
-G_M8366_IG66:
+G_M8366_IG80:
mov eax, edi
mov word ptr [rsi+2*rax], 93
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M8366_IG68
+ jmp SHORT G_M8366_IG82
;; size=15 bbWeight=2 PerfScore 9.00
-G_M8366_IG67:
+G_M8366_IG81:
lea rdi, [rbp-0x48]
mov esi, 93
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=2 PerfScore 8.00
-G_M8366_IG68:
+G_M8366_IG82:
inc r15d
cmp dword ptr [rbx+0x08], r15d
- jg G_M8366_IG22
+ jg G_M8366_IG27
;; size=13 bbWeight=4 PerfScore 17.00
-G_M8366_IG69:
+G_M8366_IG83:
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M8366_IG74
+ jae SHORT G_M8366_IG88
;; size=14 bbWeight=1 PerfScore 4.25
-G_M8366_IG70:
+G_M8366_IG84:
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbp-0x40], edi
;; size=13 bbWeight=0.50 PerfScore 1.25
-G_M8366_IG71:
+G_M8366_IG85:
lea rdi, [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:ToString():System.String:this
call [rax]System.Text.ValueStringBuilder:ToString():System.String:this
cmp qword ptr [rbp-0x130], 0xD1FFAB1E
- je SHORT G_M8366_IG72
+ je SHORT G_M8366_IG86
call CORINFO_HELP_FAIL_FAST
;; size=34 bbWeight=1 PerfScore 7.75
-G_M8366_IG72:
+G_M8366_IG86:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M8366_IG73:
+G_M8366_IG87:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.50
-G_M8366_IG74:
+G_M8366_IG88:
lea rdi, [rbp-0x48]
mov esi, 59
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
- jmp SHORT G_M8366_IG71
+ jmp SHORT G_M8366_IG85
;; size=23 bbWeight=0.50 PerfScore 3.00
-G_M8366_IG75:
+G_M8366_IG89:
call CORINFO_HELP_RNGCHKFAIL
;; size=5 bbWeight=0 PerfScore 0.00
-G_M8366_IG76:
+G_M8366_IG90:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M8366_IG77:
+G_M8366_IG91:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
RWD00 dq 41C1E1A300000000h ; 600000000
-; Total bytes of code 2879, prolog size 59, PerfScore 1874.32, instruction count 706, allocated bytes for code 2879 (MethodHash=f157df51) for method System.TimeZoneInfo+StringSerializer:GetSerializedString(System.TimeZoneInfo):System.String (FullOpts)
+; Total bytes of code 3002, prolog size 59, PerfScore 1939.49, instruction count 736, allocated bytes for code 3002 (MethodHash=f157df51) for method System.TimeZoneInfo+StringSerializer:GetSerializedString(System.TimeZoneInfo):System.String (FullOpts)
99 (23.40 % of base) - System.Globalization.CultureData:GetNativeDigits():System.String[]:this
; Assembly listing for method System.Globalization.CultureData:GetNativeDigits():System.String[]:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 11 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T12] ( 4, 4 ) ref -> rdi this class-hnd single-def <System.Globalization.CultureData>
-; V01 loc0 [V01,T11] ( 5, 9.96) ref -> r15 class-hnd <System.String[]>
-; V02 loc1 [V02,T02] ( 10, 28.46) ref -> r14 class-hnd exact single-def <System.String>
+; V01 loc0 [V01,T11] ( 6, 10 ) ref -> r15 class-hnd <System.String[]>
+; V02 loc1 [V02,T02] ( 11, 28.50) ref -> r14 class-hnd exact single-def <System.String>
; V03 loc2 [V03,T00] ( 11, 85 ) int -> r12
; V04 loc3 [V04,T09] ( 4, 12.50) int -> rsi
; V05 loc4 [V05,T08] ( 5, 13 ) int -> [rbp-0x2C]
-; V06 loc5 [V06,T04] ( 6, 20.30) int -> r12
+; V06 loc5 [V06,T04] ( 12, 20.54) int -> r12
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V09 tmp2 [V09,T15] ( 2, 2 ) int -> rdi "spilling unroll qmark"
;* V10 tmp3 [V10 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-; V11 tmp4 [V11,T17] ( 2, 2 ) int -> rdi "spilling unroll qmark"
+; V11 tmp4 [V11,T16] ( 2, 2 ) int -> rdi "spilling unroll qmark"
; V12 tmp5 [V12,T03] ( 3, 24 ) int -> [rbp-0x30] spill-single-def "impSpillLclRefs"
-; V13 tmp6 [V13,T05] ( 2, 16 ) ref -> rax class-hnd exact "Strict ordering of exceptions for Array store" <System.String>
-; V14 tmp7 [V14,T06] ( 2, 16 ) int -> r12 "dup spill"
+; V13 tmp6 [V13,T06] ( 2, 16 ) ref -> rax class-hnd exact "Strict ordering of exceptions for Array store" <System.String>
+; V14 tmp7 [V14,T07] ( 2, 16 ) int -> r12 "dup spill"
;* V15 tmp8 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Strict ordering of exceptions for Array store" <System.String>
;* V16 tmp9 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
-; V17 tmp10 [V17,T16] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
+; V17 tmp10 [V17,T17] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
; V18 tmp11 [V18,T18] ( 2, 2 ) int -> rdx "Inlining Arg"
; V19 tmp12 [V19,T19] ( 2, 1 ) int -> r12 "Inline return value spill temp"
;* V20 tmp13 [V20,T20] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V21 tmp14 [V21 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V22 tmp15 [V22 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V23 tmp16 [V23,T07] ( 2, 15.84) ushort -> r13 "Inlining Arg"
+; V23 tmp16 [V23,T05] ( 4, 16 ) ushort -> rbx "Inlining Arg"
;* V24 tmp17 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-; V25 tmp18 [V25,T10] ( 3, 11.88) ref -> rax class-hnd exact "Inline stloc first use temp" <System.String>
+; V25 tmp18 [V25,T10] ( 6, 12 ) ref -> rax class-hnd exact "Inline stloc first use temp" <System.String>
; V26 tmp19 [V26,T13] ( 3, 4 ) ref -> rax "Single return block return value"
-; V27 cse0 [V27,T14] ( 3, 2.50) ref -> rbx "CSE - moderate"
-; V28 cse1 [V28,T01] ( 6, 39 ) int -> r13 "CSE - aggressive"
-; V29 rat0 [V29,T22] ( 3, 3 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
-; V30 rat1 [V30,T21] ( 3, 3 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+; V27 cse0 [V27,T14] ( 4, 3.50) ref -> rbx "CSE - moderate"
+; V28 cse1 [V28,T01] ( 9, 40.04) int -> r13 "CSE - aggressive"
+; V29 rat0 [V29,T21] ( 3, 3 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+; V30 rat1 [V30,T22] ( 3, 3 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 8
G_M6160_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
vzeroupper
lea rbp, [rsp+0x30]
;; size=19 bbWeight=1 PerfScore 8.50
G_M6160_IG02:
mov rsi, 0xD1FFAB1E ; const ptr
mov rbx, gword ptr [rsi]
mov r15, rbx
mov rsi, gword ptr [rdi+0x10]
mov edx, 19
xor rcx, rcx
mov rax, 0xD1FFAB1E ; code for System.Globalization.CultureData:IcuGetLocaleInfo(System.String,uint,System.String):System.String:this
call [rax]System.Globalization.CultureData:IcuGetLocaleInfo(System.String,uint,System.String):System.String:this
mov r14, rax
mov r13d, dword ptr [r14+0x08]
- cmp r13d, 10
+ cmp r13d, dword ptr [rbx+0x08]
jge SHORT G_M6160_IG04
- ;; size=52 bbWeight=1 PerfScore 11.75
+ ;; size=52 bbWeight=1 PerfScore 14.50
G_M6160_IG03:
mov rax, r15
- jmp G_M6160_IG16
- align [0 bytes for IG10]
- ;; size=8 bbWeight=0.50 PerfScore 1.12
+ jmp G_M6160_IG19
+ align [12 bytes for IG13]
+ ;; size=20 bbWeight=0.50 PerfScore 1.12
G_M6160_IG04:
cmp r13d, 20
jl SHORT G_M6160_IG05
vmovups ymm0, ymmword ptr [r14+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [r14+0x14]
vpxor ymm1, ymm1, ymmword ptr [reloc @RWD32]
vpor ymm0, ymm0, ymm1
vptest ymm0, ymm0
sete dil
movzx rdi, dil
test edi, edi
jne SHORT G_M6160_IG03
;; size=55 bbWeight=0.50 PerfScore 11.54
G_M6160_IG05:
+ cmp r13d, 10
+ jl SHORT G_M6160_IG06
vmovups xmm0, xmmword ptr [r14+0x0C]
vpxor xmm0, xmm0, xmmword ptr [reloc @RWD64]
vmovups xmm1, xmmword ptr [r14+0x10]
vpxor xmm1, xmm1, xmmword ptr [reloc @RWD80]
vpor xmm0, xmm0, xmm1
vptest xmm0, xmm0
sete dil
movzx rdi, dil
test edi, edi
- jne SHORT G_M6160_IG03
+ jne G_M6160_IG03
+ ;; size=59 bbWeight=0.50 PerfScore 9.54
+G_M6160_IG06:
lea rdi, bword ptr [r14+0x0C]
mov edx, r13d
mov esi, -1
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
mov r12d, eax
mov rdi, 0xD1FFAB1E ; System.String[]
mov esi, 10
call CORINFO_HELP_NEWARR_1_OBJ
mov r15, rax
test r12d, r12d
- jge SHORT G_M6160_IG08
+ jge G_M6160_IG11
xor r12d, r12d
- ;; size=107 bbWeight=0.50 PerfScore 12.79
-G_M6160_IG06:
+ cmp r13d, 10
+ jl SHORT G_M6160_IG09
+ ;; size=68 bbWeight=0.50 PerfScore 4.50
+G_M6160_IG07:
mov edi, r12d
- movzx r13, word ptr [r14+2*rdi+0x0C]
+ movzx rbx, word ptr [r14+2*rdi+0x0C]
mov edi, 1
call System.String:FastAllocateString(int):System.String
- mov word ptr [rax+0x0C], r13w
+ mov word ptr [rax+0x0C], bx
mov edi, r12d
lea rdi, bword ptr [r15+8*rdi+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
inc r12d
cmp r12d, 10
- jl SHORT G_M6160_IG06
- ;; size=49 bbWeight=3.96 PerfScore 33.66
-G_M6160_IG07:
+ jl SHORT G_M6160_IG07
+ ;; size=48 bbWeight=3.96 PerfScore 33.66
+G_M6160_IG08:
jmp G_M6160_IG03
;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M6160_IG08:
+G_M6160_IG09:
+ cmp r12d, r13d
+ jae G_M6160_IG20
+ mov edi, r12d
+ movzx rbx, word ptr [r14+2*rdi+0x0C]
+ mov edi, 1
+ call System.String:FastAllocateString(int):System.String
+ mov word ptr [rax+0x0C], bx
+ mov edi, r12d
+ lea rdi, bword ptr [r15+8*rdi+0x10]
+ mov rsi, rax
+ call CORINFO_HELP_ASSIGN_REF
+ inc r12d
+ cmp r12d, 10
+ jl SHORT G_M6160_IG09
+ ;; size=57 bbWeight=0.04 PerfScore 0.39
+G_M6160_IG10:
+ jmp G_M6160_IG03
+ ;; size=5 bbWeight=0.50 PerfScore 1.00
+G_M6160_IG11:
xor esi, esi
xor eax, eax
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M6160_IG09:
+G_M6160_IG12:
mov ecx, eax
mov dword ptr [rbp-0x30], ecx
lea eax, [rcx+0x01]
mov dword ptr [rbp-0x2C], eax
mov edx, r12d
sub edx, esi
mov rdi, r14
mov r8, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this
call [r8]System.String:Substring(int,int):System.String:this
mov edi, dword ptr [rbp-0x30]
lea rdi, bword ptr [r15+8*rdi+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
inc r12d
mov esi, r12d
- jmp SHORT G_M6160_IG11
+ jmp SHORT G_M6160_IG14
;; size=56 bbWeight=4 PerfScore 50.00
-G_M6160_IG10:
+G_M6160_IG13:
inc r12d
;; size=3 bbWeight=8 PerfScore 2.00
-G_M6160_IG11:
+G_M6160_IG14:
cmp r13d, r12d
- jbe SHORT G_M6160_IG13
+ jbe SHORT G_M6160_IG16
;; size=5 bbWeight=32 PerfScore 40.00
-G_M6160_IG12:
+G_M6160_IG15:
mov eax, r12d
cmp word ptr [r14+2*rax+0x0C], 0xFFFF
- jne SHORT G_M6160_IG10
+ jne SHORT G_M6160_IG13
;; size=13 bbWeight=16 PerfScore 68.00
-G_M6160_IG13:
+G_M6160_IG16:
cmp r13d, r12d
- jle SHORT G_M6160_IG15
+ jle SHORT G_M6160_IG18
mov eax, dword ptr [rbp-0x2C]
cmp eax, 10
- jl SHORT G_M6160_IG09
+ jl SHORT G_M6160_IG12
;; size=13 bbWeight=4 PerfScore 14.00
-G_M6160_IG14:
+G_M6160_IG17:
mov dword ptr [rbp-0x2C], eax
;; size=3 bbWeight=2 PerfScore 2.00
-G_M6160_IG15:
+G_M6160_IG18:
cmp dword ptr [rbp-0x2C], 10
jge G_M6160_IG03
mov rax, rbx
;; size=13 bbWeight=0.50 PerfScore 1.62
-G_M6160_IG16:
+G_M6160_IG19:
vzeroupper
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 5.25
+G_M6160_IG20:
+ call CORINFO_HELP_RNGCHKFAIL
+ int3
+ ;; size=6 bbWeight=0 PerfScore 0.00
RWD00 dq FFFF0031FFFF0030h, FFFF0033FFFF0032h, FFFF0035FFFF0034h, FFFF0037FFFF0036h
RWD32 dq FFFF0033FFFF0032h, FFFF0035FFFF0034h, FFFF0037FFFF0036h, FFFF0039FFFF0038h
RWD64 dq 0033003200310030h, 0037003600350034h
RWD80 dq 0035003400330032h, 0039003800370036h
-; Total bytes of code 423, prolog size 19, PerfScore 305.79, instruction count 114, allocated bytes for code 423 (MethodHash=9ba2e7ef) for method System.Globalization.CultureData:GetNativeDigits():System.String[]:this (FullOpts)
+; Total bytes of code 522, prolog size 19, PerfScore 321.08, instruction count 135, allocated bytes for code 522 (MethodHash=9ba2e7ef) for method System.Globalization.CultureData:GetNativeDigits():System.String[]:this (FullOpts)
63 (14.06 % of base) - System.IO.TextWriter:WriteAsync(ushort[],int,int):System.Threading.Tasks.Task:this
; Assembly listing for method System.IO.TextWriter:WriteAsync(ushort[],int,int):System.Threading.Tasks.Task:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 7 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T04] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.IO.TextWriter>
-; V01 arg1 [V01,T05] ( 3, 3 ) ref -> r15 class-hnd single-def <ushort[]>
-; V02 arg2 [V02,T06] ( 3, 3 ) int -> r14 single-def
-; V03 arg3 [V03,T07] ( 3, 3 ) int -> r13 single-def
+; V00 this [V00,T05] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.IO.TextWriter>
+; V01 arg1 [V01,T06] ( 3, 3 ) ref -> r15 class-hnd single-def <ushort[]>
+; V02 arg2 [V02,T07] ( 3, 3 ) int -> r14 single-def
+; V03 arg3 [V03,T08] ( 3, 3 ) int -> r13 single-def
; V04 OutArgs [V04 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T09] ( 2, 4 ) ref -> r12 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
-;* V06 tmp2 [V06,T12] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
+; V05 tmp1 [V05,T10] ( 2, 4 ) ref -> rax class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+; V06 tmp2 [V06,T11] ( 2, 4 ) ref -> r12 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
;* V07 tmp3 [V07 ] ( 0, 0 ) ref -> zero-ref single-def
-; V08 tmp4 [V08,T08] ( 5, 4.50) ref -> r12
-; V09 tmp5 [V09,T00] ( 6, 12 ) ref -> [rbp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" <System.TupleSlim`4[System.IO.TextWriter,ushort[],int,int]>
+; V08 tmp4 [V08,T09] ( 5, 4.50) ref -> [rbp-0x30]
+; V09 tmp5 [V09,T00] ( 6, 12 ) ref -> [rbp-0x38] class-hnd exact spill-single-def "NewObj constructor temp" <System.TupleSlim`4[System.IO.TextWriter,ushort[],int,int]>
;* V10 tmp6 [V10 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-; V11 tmp7 [V11,T03] ( 5, 5 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
-; V12 tmp8 [V12,T11] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.TextWriter+<>c>
+; V11 tmp7 [V11,T04] ( 5, 5 ) ref -> [rbp-0x40] class-hnd exact spill-single-def "NewObj constructor temp" <System.Action`1[System.Object]>
+; V12 tmp8 [V12,T12] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.TextWriter+<>c>
;* V13 tmp9 [V13 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V14 tmp10 [V14,T10] ( 2, 4 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
+; V14 tmp10 [V14,T03] ( 3, 6 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
;* V15 tmp11 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V16 tmp12 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.Task>
; V17 tmp13 [V17,T01] ( 7, 11 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V18 tmp14 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
-; V19 tmp15 [V19,T02] ( 4, 6 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
+; V19 tmp15 [V19,T02] ( 4, 6 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
;* V20 tmp16 [V20,T13] ( 0, 0 ) ref -> zero-ref single-def "field V10._source (fldOffset=0x0)" P-INDEP
;* V21 tmp17 [V21 ] ( 0, 0 ) ref -> zero-ref single-def "field V13._source (fldOffset=0x0)" P-INDEP
;* V22 cse0 [V22,T14] ( 0, 0 ) long -> zero-ref "CSE - moderate"
;
-; Lcl frame size = 24
+; Lcl frame size = 40
G_M46618_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 24
- lea rbp, [rsp+0x40]
+ sub rsp, 40
+ lea rbp, [rsp+0x50]
mov rbx, rdi
mov r15, rsi
mov r14d, edx
mov r13d, ecx
;; size=31 bbWeight=1 PerfScore 7.75
G_M46618_IG02:
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov r12, gword ptr [rdi]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M46618_IG10
- ;; size=19 bbWeight=1 PerfScore 4.25
+ ;; size=32 bbWeight=1 PerfScore 6.50
G_M46618_IG03:
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__62_0
- mov r12, gword ptr [rdi]
- test r12, r12
+ mov rax, gword ptr [rdi]
+ test rax, rax
+ mov gword ptr [rbp-0x30], rax
jne SHORT G_M46618_IG05
- ;; size=18 bbWeight=1 PerfScore 3.50
+ ;; size=22 bbWeight=1 PerfScore 4.50
G_M46618_IG04:
mov rdi, 0xD1FFAB1E ; System.Action`1[System.Object]
call CORINFO_HELP_NEWSFAST
- mov r12, rax
+ mov gword ptr [rbp-0x40], rax
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9
mov rsi, gword ptr [rdi]
test rsi, rsi
je G_M46618_IG11
- lea rdi, bword ptr [r12+0x08]
+ lea rdi, bword ptr [rax+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.IO.TextWriter+<>c:<WriteAsync>b__62_0(System.Object):this
- mov qword ptr [r12+0x18], rdi
+ mov rax, gword ptr [rbp-0x40]
+ mov qword ptr [rax+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__62_0
- mov rsi, r12
+ mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
- ;; size=83 bbWeight=0.50 PerfScore 4.62
+ mov rax, gword ptr [rbp-0x40]
+ mov gword ptr [rbp-0x30], rax
+ ;; size=94 bbWeight=0.50 PerfScore 6.50
G_M46618_IG05:
mov rdi, 0xD1FFAB1E ; System.TupleSlim`4[System.IO.TextWriter,ushort[],int,int]
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x30], rax
+ mov gword ptr [rbp-0x38], rax
lea rdi, bword ptr [rax+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
- mov rbx, gword ptr [rbp-0x30]
+ mov rbx, gword ptr [rbp-0x38]
lea rdi, bword ptr [rbx+0x10]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
mov dword ptr [rbx+0x18], r14d
mov dword ptr [rbx+0x1C], r13d
mov rdi, 0xD1FFAB1E ; const ptr
mov r15, gword ptr [rdi]
+ cmp byte ptr [r12], r12b
+ test r15, r15
+ je G_M46618_IG12
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task
call CORINFO_HELP_NEWSFAST
mov r14, rax
- test r12, r12
- je G_M46618_IG12
+ mov r13, gword ptr [rbp-0x30]
+ test r13, r13
+ je G_M46618_IG13
mov gword ptr [rsp], r15
mov rdi, r14
- mov rsi, r12
+ mov rsi, r13
mov rdx, rbx
xor rcx, rcx
mov r8d, 8
mov r9d, 0x2000
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
call [rax]System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
call [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
- mov r13, rax
- test r13, r13
+ mov r12, rax
+ test r12, r12
jne SHORT G_M46618_IG07
- ;; size=154 bbWeight=1 PerfScore 24.25
+ ;; size=171 bbWeight=1 PerfScore 29.50
G_M46618_IG06:
or dword ptr [r14+0x34], 0xD1FFAB1E
jmp SHORT G_M46618_IG08
;; size=10 bbWeight=0.50 PerfScore 2.50
G_M46618_IG07:
mov rdi, 0xD1FFAB1E ; const ptr
- cmp r13, gword ptr [rdi]
+ cmp r12, gword ptr [rdi]
je SHORT G_M46618_IG08
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
call [rax]System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
lea rdi, bword ptr [rax+0x08]
- mov rsi, r13
+ mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
;; size=42 bbWeight=0.50 PerfScore 4.75
G_M46618_IG08:
mov rdi, r14
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
call [rax]System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
mov rax, r14
;; size=20 bbWeight=1 PerfScore 4.00
G_M46618_IG09:
- add rsp, 24
+ add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M46618_IG10:
mov rdi, 0xD1FFAB1E
mov esi, 0x7FF
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
jmp G_M46618_IG03
;; size=25 bbWeight=0 PerfScore 0.00
G_M46618_IG11:
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M46618_IG12:
+ mov edi, 47
+ mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
+ call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
+ int3
+ ;; size=18 bbWeight=0 PerfScore 0.00
+G_M46618_IG13:
mov edi, 28
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 448, prolog size 19, PerfScore 104.68, instruction count 101, allocated bytes for code 448 (MethodHash=aa2149e5) for method System.IO.TextWriter:WriteAsync(ushort[],int,int):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 511, prolog size 19, PerfScore 121.35, instruction count 115, allocated bytes for code 511 (MethodHash=aa2149e5) for method System.IO.TextWriter:WriteAsync(ushort[],int,int):System.Threading.Tasks.Task:this (FullOpts)
63 (14.06 % of base) - System.IO.TextWriter:WriteLineAsync(ushort[],int,int):System.Threading.Tasks.Task:this
; Assembly listing for method System.IO.TextWriter:WriteLineAsync(ushort[],int,int):System.Threading.Tasks.Task:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 7 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T04] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.IO.TextWriter>
-; V01 arg1 [V01,T05] ( 3, 3 ) ref -> r15 class-hnd single-def <ushort[]>
-; V02 arg2 [V02,T06] ( 3, 3 ) int -> r14 single-def
-; V03 arg3 [V03,T07] ( 3, 3 ) int -> r13 single-def
+; V00 this [V00,T05] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.IO.TextWriter>
+; V01 arg1 [V01,T06] ( 3, 3 ) ref -> r15 class-hnd single-def <ushort[]>
+; V02 arg2 [V02,T07] ( 3, 3 ) int -> r14 single-def
+; V03 arg3 [V03,T08] ( 3, 3 ) int -> r13 single-def
; V04 OutArgs [V04 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T09] ( 2, 4 ) ref -> r12 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
-;* V06 tmp2 [V06,T12] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
+; V05 tmp1 [V05,T10] ( 2, 4 ) ref -> rax class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+; V06 tmp2 [V06,T11] ( 2, 4 ) ref -> r12 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
;* V07 tmp3 [V07 ] ( 0, 0 ) ref -> zero-ref single-def
-; V08 tmp4 [V08,T08] ( 5, 4.50) ref -> r12
-; V09 tmp5 [V09,T00] ( 6, 12 ) ref -> [rbp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" <System.TupleSlim`4[System.IO.TextWriter,ushort[],int,int]>
+; V08 tmp4 [V08,T09] ( 5, 4.50) ref -> [rbp-0x30]
+; V09 tmp5 [V09,T00] ( 6, 12 ) ref -> [rbp-0x38] class-hnd exact spill-single-def "NewObj constructor temp" <System.TupleSlim`4[System.IO.TextWriter,ushort[],int,int]>
;* V10 tmp6 [V10 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-; V11 tmp7 [V11,T03] ( 5, 5 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
-; V12 tmp8 [V12,T11] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.TextWriter+<>c>
+; V11 tmp7 [V11,T04] ( 5, 5 ) ref -> [rbp-0x40] class-hnd exact spill-single-def "NewObj constructor temp" <System.Action`1[System.Object]>
+; V12 tmp8 [V12,T12] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.TextWriter+<>c>
;* V13 tmp9 [V13 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V14 tmp10 [V14,T10] ( 2, 4 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
+; V14 tmp10 [V14,T03] ( 3, 6 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
;* V15 tmp11 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V16 tmp12 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.Task>
; V17 tmp13 [V17,T01] ( 7, 11 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V18 tmp14 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
-; V19 tmp15 [V19,T02] ( 4, 6 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
+; V19 tmp15 [V19,T02] ( 4, 6 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
;* V20 tmp16 [V20,T13] ( 0, 0 ) ref -> zero-ref single-def "field V10._source (fldOffset=0x0)" P-INDEP
;* V21 tmp17 [V21 ] ( 0, 0 ) ref -> zero-ref single-def "field V13._source (fldOffset=0x0)" P-INDEP
;* V22 cse0 [V22,T14] ( 0, 0 ) long -> zero-ref "CSE - moderate"
;
-; Lcl frame size = 24
+; Lcl frame size = 40
G_M64756_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 24
- lea rbp, [rsp+0x40]
+ sub rsp, 40
+ lea rbp, [rsp+0x50]
mov rbx, rdi
mov r15, rsi
mov r14d, edx
mov r13d, ecx
;; size=31 bbWeight=1 PerfScore 7.75
G_M64756_IG02:
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov r12, gword ptr [rdi]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M64756_IG10
- ;; size=19 bbWeight=1 PerfScore 4.25
+ ;; size=32 bbWeight=1 PerfScore 6.50
G_M64756_IG03:
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__68_0
- mov r12, gword ptr [rdi]
- test r12, r12
+ mov rax, gword ptr [rdi]
+ test rax, rax
+ mov gword ptr [rbp-0x30], rax
jne SHORT G_M64756_IG05
- ;; size=18 bbWeight=1 PerfScore 3.50
+ ;; size=22 bbWeight=1 PerfScore 4.50
G_M64756_IG04:
mov rdi, 0xD1FFAB1E ; System.Action`1[System.Object]
call CORINFO_HELP_NEWSFAST
- mov r12, rax
+ mov gword ptr [rbp-0x40], rax
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9
mov rsi, gword ptr [rdi]
test rsi, rsi
je G_M64756_IG11
- lea rdi, bword ptr [r12+0x08]
+ lea rdi, bword ptr [rax+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.IO.TextWriter+<>c:<WriteLineAsync>b__68_0(System.Object):this
- mov qword ptr [r12+0x18], rdi
+ mov rax, gword ptr [rbp-0x40]
+ mov qword ptr [rax+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__68_0
- mov rsi, r12
+ mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
- ;; size=83 bbWeight=0.50 PerfScore 4.62
+ mov rax, gword ptr [rbp-0x40]
+ mov gword ptr [rbp-0x30], rax
+ ;; size=94 bbWeight=0.50 PerfScore 6.50
G_M64756_IG05:
mov rdi, 0xD1FFAB1E ; System.TupleSlim`4[System.IO.TextWriter,ushort[],int,int]
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x30], rax
+ mov gword ptr [rbp-0x38], rax
lea rdi, bword ptr [rax+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
- mov rbx, gword ptr [rbp-0x30]
+ mov rbx, gword ptr [rbp-0x38]
lea rdi, bword ptr [rbx+0x10]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
mov dword ptr [rbx+0x18], r14d
mov dword ptr [rbx+0x1C], r13d
mov rdi, 0xD1FFAB1E ; const ptr
mov r15, gword ptr [rdi]
+ cmp byte ptr [r12], r12b
+ test r15, r15
+ je G_M64756_IG12
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task
call CORINFO_HELP_NEWSFAST
mov r14, rax
- test r12, r12
- je G_M64756_IG12
+ mov r13, gword ptr [rbp-0x30]
+ test r13, r13
+ je G_M64756_IG13
mov gword ptr [rsp], r15
mov rdi, r14
- mov rsi, r12
+ mov rsi, r13
mov rdx, rbx
xor rcx, rcx
mov r8d, 8
mov r9d, 0x2000
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
call [rax]System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
call [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
- mov r13, rax
- test r13, r13
+ mov r12, rax
+ test r12, r12
jne SHORT G_M64756_IG07
- ;; size=154 bbWeight=1 PerfScore 24.25
+ ;; size=171 bbWeight=1 PerfScore 29.50
G_M64756_IG06:
or dword ptr [r14+0x34], 0xD1FFAB1E
jmp SHORT G_M64756_IG08
;; size=10 bbWeight=0.50 PerfScore 2.50
G_M64756_IG07:
mov rdi, 0xD1FFAB1E ; const ptr
- cmp r13, gword ptr [rdi]
+ cmp r12, gword ptr [rdi]
je SHORT G_M64756_IG08
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
call [rax]System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
lea rdi, bword ptr [rax+0x08]
- mov rsi, r13
+ mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
;; size=42 bbWeight=0.50 PerfScore 4.75
G_M64756_IG08:
mov rdi, r14
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
call [rax]System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
mov rax, r14
;; size=20 bbWeight=1 PerfScore 4.00
G_M64756_IG09:
- add rsp, 24
+ add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M64756_IG10:
mov rdi, 0xD1FFAB1E
mov esi, 0x7FF
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
jmp G_M64756_IG03
;; size=25 bbWeight=0 PerfScore 0.00
G_M64756_IG11:
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M64756_IG12:
+ mov edi, 47
+ mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
+ call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
+ int3
+ ;; size=18 bbWeight=0 PerfScore 0.00
+G_M64756_IG13:
mov edi, 28
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 448, prolog size 19, PerfScore 104.68, instruction count 101, allocated bytes for code 448 (MethodHash=a714030b) for method System.IO.TextWriter:WriteLineAsync(ushort[],int,int):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 511, prolog size 19, PerfScore 121.35, instruction count 115, allocated bytes for code 511 (MethodHash=a714030b) for method System.IO.TextWriter:WriteLineAsync(ushort[],int,int):System.Threading.Tasks.Task:this (FullOpts)
46 (0.84 % of base) - System.DateTimeFormat:FormatCustomized[ubyte](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref)
; Assembly listing for method System.DateTimeFormat:FormatCustomized[ubyte](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 108 single block inlinees; 90 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00 ] ( 19, 77 ) struct ( 8) [rbp-0x30] do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
; V02 arg2 [V02,T09] ( 27,131 ) ref -> r13 class-hnd single-def <System.Globalization.DateTimeFormatInfo>
;* V03 arg3 [V03 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.TimeSpan>
; V04 arg4 [V04,T00] ( 99,550 ) byref -> rbx single-def
; V05 loc0 [V05,T14] ( 15, 96 ) ref -> [rbp-0xA0] class-hnd spill-single-def <System.Globalization.Calendar>
; V06 loc1 [V06,T58] ( 4, 35 ) ubyte -> [rbp-0x34] spill-single-def
-; V07 loc2 [V07,T124] ( 2, 17 ) ubyte -> [rbp-0x38] spill-single-def
+; V07 loc2 [V07,T126] ( 2, 17 ) ubyte -> [rbp-0x38] spill-single-def
; V08 loc3 [V08,T168] ( 3, 11 ) ubyte -> [rbp-0x3C]
; V09 loc4 [V09,T07] ( 35,149 ) int -> [rbp-0x40]
; V10 loc5 [V10,T03] ( 51,332 ) int -> [rbp-0x44] ld-addr-op
; V11 loc6 [V11,T155] ( 7, 14 ) int -> rsi
; V12 loc7 [V12,T05] ( 39,270 ) ushort -> [rbp-0x48] spill-single-def
;* V13 loc8 [V13 ] ( 0, 0 ) int -> zero-ref
; V14 loc9 [V14,T15] ( 7, 96 ) int -> [rbp-0x4C] spill-single-def
; V15 loc10 [V15,T08] ( 11,144 ) int -> [rbp-0x50] ld-addr-op spill-single-def
-; V16 loc11 [V16,T33] ( 6, 54 ) long -> rsi
-; V17 loc12 [V17,T30] ( 7, 56 ) int -> rcx
+; V16 loc11 [V16,T34] ( 6, 54 ) long -> rsi
+; V17 loc12 [V17,T31] ( 7, 56 ) int -> rcx
;* V18 loc13 [V18 ] ( 0, 0 ) int -> zero-ref
;* V19 loc14 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.String>
; V20 loc15 [V20,T219] ( 3, 6 ) int -> rax
; V21 loc16 [V21,T220] ( 3, 6 ) int -> rax
; V22 loc17 [V22 ] ( 2, 4 ) ushort -> [rbp-0x54] do-not-enreg[X] addr-exposed ld-addr-op
;# V23 OutArgs [V23 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V24 tmp1 [V24,T16] ( 4, 96 ) ref -> rax class-hnd exact "impAppendStmt" <System.String>
;* V25 tmp2 [V25 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V26 tmp3 [V26 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V27 tmp4 [V27,T51] ( 3, 48 ) int -> rdi "Span.get_Item index"
+; V27 tmp4 [V27,T52] ( 3, 48 ) int -> rdi "Span.get_Item index"
; V28 tmp5 [V28,T198] ( 2, 8 ) int -> rsi "impAppendStmt"
;* V29 tmp6 [V29 ] ( 0, 0 ) byref -> zero-ref
;* V30 tmp7 [V30 ] ( 0, 0 ) byref -> zero-ref
;* V31 tmp8 [V31 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret <System.ReadOnlySpan`1[ubyte]>
; V32 tmp9 [V32,T169] ( 5, 10 ) ref -> rax
; V33 tmp10 [V33,T199] ( 2, 8 ) int -> rsi "impAppendStmt"
;* V34 tmp11 [V34 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V35 tmp12 [V35,T309] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.FormatException>
;* V36 tmp13 [V36 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V37 tmp14 [V37 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V38 tmp15 [V38 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V39 tmp16 [V39 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V40 tmp17 [V40 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V41 tmp18 [V41 ] ( 0, 0 ) byref -> zero-ref
;* V42 tmp19 [V42 ] ( 0, 0 ) ref -> zero-ref
;* V43 tmp20 [V43 ] ( 0, 0 ) int -> zero-ref
;* V44 tmp21 [V44 ] ( 0, 0 ) byref -> zero-ref
;* V45 tmp22 [V45 ] ( 0, 0 ) ref -> zero-ref
;* V46 tmp23 [V46 ] ( 0, 0 ) int -> zero-ref
; V47 tmp24 [V47,T70] ( 3, 32 ) int -> rdx
;* V48 tmp25 [V48 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V49 tmp26 [V49 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V50 tmp27 [V50,T310] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.FormatException>
; V51 tmp28 [V51,T200] ( 2, 8 ) int -> rsi "impAppendStmt"
;* V52 tmp29 [V52 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V53 tmp30 [V53 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
; V54 tmp31 [V54,T311] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.FormatException>
;* V55 tmp32 [V55 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V56 tmp33 [V56 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.DateTime>
-; V57 tmp34 [V57,T34] ( 6, 52 ) int -> rdi "Inline stloc first use temp"
+; V57 tmp34 [V57,T35] ( 6, 52 ) int -> rdi "Inline stloc first use temp"
;* V58 tmp35 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V59 tmp36 [V59 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V60 tmp37 [V60,T125] ( 4, 16 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
+; V60 tmp37 [V60,T127] ( 4, 16 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
;* V61 tmp38 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V62 tmp39 [V62 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V63 tmp40 [V63,T190] ( 2, 8 ) byref -> rcx "Inlining Arg"
; V64 tmp41 [V64,T201] ( 2, 8 ) int -> r8 "Inlining Arg"
; V65 tmp42 [V65,T191] ( 2, 8 ) ref -> [rbp-0xA8] class-hnd exact spill-single-def "impAppendStmt" <System.Text.UTF8Encoding+UTF8EncodingSealed>
;* V66 tmp43 [V66 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V67 tmp44 [V67 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V68 tmp45 [V68 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.Span`1[ubyte]>
; V69 tmp46 [V69,T184] ( 4, 8 ) int -> rdi "Inline stloc first use temp"
;* V70 tmp47 [V70 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
-; V71 tmp48 [V71,T121] ( 5, 20 ) int -> rax "Inlining Arg"
+; V71 tmp48 [V71,T123] ( 5, 20 ) int -> rax "Inlining Arg"
;* V72 tmp49 [V72 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
;* V73 tmp50 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V74 tmp51 [V74 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V75 tmp52 [V75 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V76 tmp53 [V76 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V77 tmp54 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V78 tmp55 [V78 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V79 tmp56 [V79 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V80 tmp57 [V80,T273] ( 2, 4 ) int -> r8 "Inline stloc first use temp"
;* V81 tmp58 [V81 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V82 tmp59 [V82 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V83 tmp60 [V83,T35] ( 6, 52 ) int -> rdi "Inline stloc first use temp"
+; V83 tmp60 [V83,T36] ( 6, 52 ) int -> rdi "Inline stloc first use temp"
;* V84 tmp61 [V84 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V85 tmp62 [V85,T221] ( 3, 6 ) int -> rdx "Inline return value spill temp"
;* V86 tmp63 [V86 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V87 tmp64 [V87,T36] ( 6, 52 ) int -> rdi "Inline stloc first use temp"
+; V87 tmp64 [V87,T37] ( 6, 52 ) int -> rdi "Inline stloc first use temp"
;* V88 tmp65 [V88 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V89 tmp66 [V89,T222] ( 3, 6 ) int -> rdx "Inline return value spill temp"
;* V90 tmp67 [V90 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V91 tmp68 [V91,T37] ( 6, 52 ) int -> rdi "Inline stloc first use temp"
+; V91 tmp68 [V91,T38] ( 6, 52 ) int -> rdi "Inline stloc first use temp"
;* V92 tmp69 [V92 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V93 tmp70 [V93,T223] ( 3, 6 ) int -> rdx "Inline return value spill temp"
;* V94 tmp71 [V94 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V95 tmp72 [V95,T38] ( 6, 52 ) int -> rdi "Inline stloc first use temp"
+; V95 tmp72 [V95,T39] ( 6, 52 ) int -> rdi "Inline stloc first use temp"
;* V96 tmp73 [V96 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V97 tmp74 [V97,T224] ( 3, 6 ) int -> rdx "Inline return value spill temp"
;* V98 tmp75 [V98 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V99 tmp76 [V99,T39] ( 6, 52 ) int -> rdi "Inline stloc first use temp"
+; V99 tmp76 [V99,T40] ( 6, 52 ) int -> rdi "Inline stloc first use temp"
;* V100 tmp77 [V100 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V101 tmp78 [V101 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V102 tmp79 [V102,T126] ( 4, 16 ) ref -> rdx class-hnd exact "Inlining Arg" <System.String>
+; V102 tmp79 [V102,T128] ( 4, 16 ) ref -> rdx class-hnd exact "Inlining Arg" <System.String>
;* V103 tmp80 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V104 tmp81 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V105 tmp82 [V105,T192] ( 2, 8 ) byref -> rcx "Inlining Arg"
; V106 tmp83 [V106,T202] ( 2, 8 ) int -> rdx "Inlining Arg"
;* V107 tmp84 [V107 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V108 tmp85 [V108,T127] ( 4, 16 ) ref -> rdx class-hnd exact "Inlining Arg" <System.String>
+; V108 tmp85 [V108,T129] ( 4, 16 ) ref -> rdx class-hnd exact "Inlining Arg" <System.String>
;* V109 tmp86 [V109 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V110 tmp87 [V110 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V111 tmp88 [V111,T193] ( 2, 8 ) byref -> rcx "Inlining Arg"
; V112 tmp89 [V112,T203] ( 2, 8 ) int -> rdx "Inlining Arg"
; V113 tmp90 [V113,T161] ( 3, 12 ) int -> rax "Inlining Arg"
; V114 tmp91 [V114,T156] ( 3, 12 ) byref -> rcx "Span.get_Item ptrToSpan"
;* V115 tmp92 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V116 tmp93 [V116 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V117 tmp94 [V117,T23] ( 7, 68 ) int -> r8 "Inline stloc first use temp"
+; V117 tmp94 [V117,T24] ( 7, 68 ) int -> r8 "Inline stloc first use temp"
;* V118 tmp95 [V118 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V119 tmp96 [V119 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
-; V120 tmp97 [V120,T119] ( 5, 20 ) ref -> [rbp-0xB0] class-hnd exact spill-single-def "Inlining Arg" <System.Globalization.CultureData>
+; V120 tmp97 [V120,T121] ( 5, 20 ) ref -> [rbp-0xB0] class-hnd exact spill-single-def "Inlining Arg" <System.Globalization.CultureData>
; V121 tmp98 [V121,T194] ( 2, 8 ) ref -> rsi class-hnd exact "dup spill" <System.String>
; V122 tmp99 [V122,T181] ( 4, 8 ) ref -> rsi
; V123 tmp100 [V123,T157] ( 3, 12 ) ref -> [rbp-0xB8] class-hnd exact spill-single-def "dup spill" <System.String>
;* V124 tmp101 [V124 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.String>
;* V125 tmp102 [V125 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
;* V126 tmp103 [V126 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
-; V127 tmp104 [V127,T120] ( 5, 20 ) ref -> [rbp-0xC0] class-hnd exact spill-single-def "Inlining Arg" <System.Globalization.CultureData>
+; V127 tmp104 [V127,T122] ( 5, 20 ) ref -> [rbp-0xC0] class-hnd exact spill-single-def "Inlining Arg" <System.Globalization.CultureData>
; V128 tmp105 [V128,T195] ( 2, 8 ) ref -> rsi class-hnd exact "dup spill" <System.String>
; V129 tmp106 [V129,T182] ( 4, 8 ) ref -> rsi
; V130 tmp107 [V130,T158] ( 3, 12 ) ref -> [rbp-0xC8] class-hnd exact spill-single-def "dup spill" <System.String>
;* V131 tmp108 [V131 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.String>
;* V132 tmp109 [V132 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
-; V133 tmp110 [V133,T128] ( 4, 16 ) ushort -> rax "Inlining Arg"
+; V133 tmp110 [V133,T130] ( 4, 16 ) ushort -> rax "Inlining Arg"
;* V134 tmp111 [V134 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Rune>
;* V135 tmp112 [V135 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V136 tmp113 [V136 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
; V137 tmp114 [V137,T171] ( 5, 10 ) int -> rdi "Inline stloc first use temp"
;* V138 tmp115 [V138 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
; V139 tmp116 [V139,T162] ( 3, 12 ) ubyte -> rsi "Inlining Arg"
; V140 tmp117 [V140,T225] ( 3, 6 ) int -> rax "Inline stloc first use temp"
; V141 tmp118 [V141,T172] ( 5, 10 ) int -> rax "Inline stloc first use temp"
;* V142 tmp119 [V142 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.Span`1[ubyte]>
; V143 tmp120 [V143,T185] ( 4, 8 ) int -> rdi "Inline stloc first use temp"
;* V144 tmp121 [V144 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
;* V145 tmp122 [V145 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
;* V146 tmp123 [V146 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V147 tmp124 [V147 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V148 tmp125 [V148 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V149 tmp126 [V149 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V150 tmp127 [V150 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V151 tmp128 [V151 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V152 tmp129 [V152 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V153 tmp130 [V153 ] ( 1, 2 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V154 tmp131 [V154,T173] ( 5, 10 ) int -> rsi "Inline stloc first use temp"
;* V155 tmp132 [V155 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
;* V156 tmp133 [V156 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V157 tmp134 [V157,T24] ( 7, 68 ) int -> rdi "Inline stloc first use temp"
+; V157 tmp134 [V157,T25] ( 7, 68 ) int -> rdi "Inline stloc first use temp"
;* V158 tmp135 [V158 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V159 tmp136 [V159,T170] ( 5, 10 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
;* V160 tmp137 [V160 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V161 tmp138 [V161 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V162 tmp139 [V162 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V163 tmp140 [V163 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V164 tmp141 [V164,T196] ( 2, 8 ) byref -> rcx "Inlining Arg"
; V165 tmp142 [V165,T204] ( 2, 8 ) int -> r8 "Inlining Arg"
; V166 tmp143 [V166,T197] ( 2, 8 ) ref -> [rbp-0xD0] class-hnd exact spill-single-def "impAppendStmt" <System.Text.UTF8Encoding+UTF8EncodingSealed>
;* V167 tmp144 [V167 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V168 tmp145 [V168 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V169 tmp146 [V169 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.Span`1[ubyte]>
; V170 tmp147 [V170,T186] ( 4, 8 ) int -> rdi "Inline stloc first use temp"
;* V171 tmp148 [V171 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
-; V172 tmp149 [V172,T122] ( 5, 20 ) int -> rax "Inlining Arg"
+; V172 tmp149 [V172,T124] ( 5, 20 ) int -> rax "Inlining Arg"
;* V173 tmp150 [V173 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
;* V174 tmp151 [V174 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V175 tmp152 [V175 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V176 tmp153 [V176 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V177 tmp154 [V177 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V178 tmp155 [V178 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V179 tmp156 [V179 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V180 tmp157 [V180 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V181 tmp158 [V181,T274] ( 2, 4 ) int -> r8 "Inline stloc first use temp"
;* V182 tmp159 [V182 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V183 tmp160 [V183 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V184 tmp161 [V184,T02] ( 7,352 ) int -> rdi "Inline stloc first use temp"
;* V185 tmp162 [V185 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V186 tmp163 [V186 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
; V187 tmp164 [V187,T17] ( 4, 96 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
;* V188 tmp165 [V188 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V189 tmp166 [V189 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V190 tmp167 [V190,T82] ( 2, 32 ) byref -> rcx "Inlining Arg"
; V191 tmp168 [V191,T95] ( 2, 32 ) int -> r8 "Inlining Arg"
-; V192 tmp169 [V192,T26] ( 2, 64 ) ref -> [rbp-0xD8] class-hnd exact spill-single-def "impAppendStmt" <System.Text.UTF8Encoding+UTF8EncodingSealed>
+; V192 tmp169 [V192,T27] ( 2, 64 ) ref -> [rbp-0xD8] class-hnd exact spill-single-def "impAppendStmt" <System.Text.UTF8Encoding+UTF8EncodingSealed>
;* V193 tmp170 [V193 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V194 tmp171 [V194 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V195 tmp172 [V195 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.Span`1[ubyte]>
-; V196 tmp173 [V196,T41] ( 4, 48 ) int -> rdi "Inline stloc first use temp"
+; V196 tmp173 [V196,T42] ( 4, 48 ) int -> rdi "Inline stloc first use temp"
;* V197 tmp174 [V197 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
; V198 tmp175 [V198,T10] ( 5,112 ) int -> rax "Inlining Arg"
;* V199 tmp176 [V199 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
;* V200 tmp177 [V200 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V201 tmp178 [V201 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V202 tmp179 [V202 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V203 tmp180 [V203 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V204 tmp181 [V204 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V205 tmp182 [V205 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V206 tmp183 [V206 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V207 tmp184 [V207,T96] ( 2, 32 ) int -> r8 "Inline stloc first use temp"
;* V208 tmp185 [V208 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V209 tmp186 [V209 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V210 tmp187 [V210,T71] ( 3, 32 ) int -> registers "Inline return value spill temp"
;* V211 tmp188 [V211 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
; V212 tmp189 [V212,T18] ( 4, 96 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
;* V213 tmp190 [V213 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V214 tmp191 [V214 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V215 tmp192 [V215,T83] ( 2, 32 ) byref -> rcx "Inlining Arg"
; V216 tmp193 [V216,T97] ( 2, 32 ) int -> r8 "Inlining Arg"
-; V217 tmp194 [V217,T27] ( 2, 64 ) ref -> [rbp-0xE0] class-hnd exact spill-single-def "impAppendStmt" <System.Text.UTF8Encoding+UTF8EncodingSealed>
+; V217 tmp194 [V217,T28] ( 2, 64 ) ref -> [rbp-0xE0] class-hnd exact spill-single-def "impAppendStmt" <System.Text.UTF8Encoding+UTF8EncodingSealed>
;* V218 tmp195 [V218 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V219 tmp196 [V219 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V220 tmp197 [V220 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.Span`1[ubyte]>
-; V221 tmp198 [V221,T42] ( 4, 48 ) int -> rdi "Inline stloc first use temp"
+; V221 tmp198 [V221,T43] ( 4, 48 ) int -> rdi "Inline stloc first use temp"
;* V222 tmp199 [V222 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
; V223 tmp200 [V223,T11] ( 5,112 ) int -> rax "Inlining Arg"
;* V224 tmp201 [V224 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
;* V225 tmp202 [V225 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V226 tmp203 [V226 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V227 tmp204 [V227 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V228 tmp205 [V228 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V229 tmp206 [V229 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V230 tmp207 [V230 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V231 tmp208 [V231 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V232 tmp209 [V232,T98] ( 2, 32 ) int -> r8 "Inline stloc first use temp"
;* V233 tmp210 [V233 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V234 tmp211 [V234 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V235 tmp212 [V235,T40] ( 5, 48 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
+; V235 tmp212 [V235,T41] ( 5, 48 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
;* V236 tmp213 [V236 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V237 tmp214 [V237 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V238 tmp215 [V238 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V239 tmp216 [V239 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V240 tmp217 [V240,T84] ( 2, 32 ) byref -> rcx "Inlining Arg"
; V241 tmp218 [V241,T99] ( 2, 32 ) int -> r8 "Inlining Arg"
-; V242 tmp219 [V242,T28] ( 2, 64 ) ref -> [rbp-0xE8] class-hnd exact spill-single-def "impAppendStmt" <System.Text.UTF8Encoding+UTF8EncodingSealed>
+; V242 tmp219 [V242,T29] ( 2, 64 ) ref -> [rbp-0xE8] class-hnd exact spill-single-def "impAppendStmt" <System.Text.UTF8Encoding+UTF8EncodingSealed>
;* V243 tmp220 [V243 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V244 tmp221 [V244 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V245 tmp222 [V245 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.Span`1[ubyte]>
-; V246 tmp223 [V246,T43] ( 4, 48 ) int -> rdi "Inline stloc first use temp"
+; V246 tmp223 [V246,T44] ( 4, 48 ) int -> rdi "Inline stloc first use temp"
;* V247 tmp224 [V247 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
; V248 tmp225 [V248,T12] ( 5,112 ) int -> rax "Inlining Arg"
;* V249 tmp226 [V249 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
;* V250 tmp227 [V250 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V251 tmp228 [V251 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V252 tmp229 [V252 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V253 tmp230 [V253 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V254 tmp231 [V254 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V255 tmp232 [V255 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V256 tmp233 [V256 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V257 tmp234 [V257,T100] ( 2, 32 ) int -> r8 "Inline stloc first use temp"
;* V258 tmp235 [V258 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V259 tmp236 [V259 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V260 tmp237 [V260,T59] ( 2, 16 ) ubyte -> rax "Inline return value spill temp"
;* V261 tmp238 [V261,T113] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V262 tmp239 [V262 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Rune>
;* V263 tmp240 [V263 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V264 tmp241 [V264 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V265 tmp242 [V265 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V266 tmp243 [V266 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
;* V267 tmp244 [V267 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V268 tmp245 [V268,T152] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V269 tmp246 [V269,T32] ( 5, 56 ) int -> rax "Inline stloc first use temp"
+; V269 tmp246 [V269,T33] ( 5, 56 ) int -> rax "Inline stloc first use temp"
;* V270 tmp247 [V270 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.Span`1[ubyte]>
-; V271 tmp248 [V271,T44] ( 4, 48 ) int -> rdi "Inline stloc first use temp"
+; V271 tmp248 [V271,T45] ( 4, 48 ) int -> rdi "Inline stloc first use temp"
;* V272 tmp249 [V272 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
;* V273 tmp250 [V273 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
;* V274 tmp251 [V274 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V275 tmp252 [V275 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V276 tmp253 [V276 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V277 tmp254 [V277 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V278 tmp255 [V278 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V279 tmp256 [V279 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V280 tmp257 [V280 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V281 tmp258 [V281 ] ( 1, 16 ) int -> [rbp-0x68] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V282 tmp259 [V282,T141] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V283 tmp260 [V283 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
; V284 tmp261 [V284,T72] ( 3, 32 ) int -> rdx "Inline return value spill temp"
;* V285 tmp262 [V285 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V286 tmp263 [V286,T57] ( 2, 48 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Globalization.CultureInfo>
+; V286 tmp263 [V286,T26] ( 3, 64 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Globalization.CultureInfo>
; V287 tmp264 [V287,T60] ( 3, 32 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
;* V288 tmp265 [V288 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V289 tmp266 [V289 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V290 tmp267 [V290,T130] ( 2, 16 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-; V291 tmp268 [V291,T25] ( 3, 64 ) ref -> rcx class-hnd exact "Inlining Arg" <System.Globalization.CultureInfo>
-; V292 tmp269 [V292,T31] ( 6, 56 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
+; V290 tmp267 [V290,T114] ( 3, 24 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V291 tmp268 [V291,T23] ( 4, 80 ) ref -> rcx class-hnd exact "Inlining Arg" <System.Globalization.CultureInfo>
+; V292 tmp269 [V292,T32] ( 6, 56 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
;* V293 tmp270 [V293 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V294 tmp271 [V294,T206] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V295 tmp272 [V295,T131] ( 2, 16 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V295 tmp272 [V295,T115] ( 3, 24 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V296 tmp273 [V296 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V297 tmp274 [V297 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V298 tmp275 [V298 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V299 tmp276 [V299,T85] ( 2, 32 ) byref -> rcx "Inlining Arg"
; V300 tmp277 [V300,T101] ( 2, 32 ) int -> r8 "Inlining Arg"
-; V301 tmp278 [V301,T29] ( 2, 64 ) ref -> [rbp-0xF0] class-hnd exact spill-single-def "impAppendStmt" <System.Text.UTF8Encoding+UTF8EncodingSealed>
+; V301 tmp278 [V301,T30] ( 2, 64 ) ref -> [rbp-0xF0] class-hnd exact spill-single-def "impAppendStmt" <System.Text.UTF8Encoding+UTF8EncodingSealed>
;* V302 tmp279 [V302 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V303 tmp280 [V303 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V304 tmp281 [V304 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.Span`1[ubyte]>
-; V305 tmp282 [V305,T45] ( 4, 48 ) int -> rdi "Inline stloc first use temp"
+; V305 tmp282 [V305,T46] ( 4, 48 ) int -> rdi "Inline stloc first use temp"
;* V306 tmp283 [V306 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
; V307 tmp284 [V307,T13] ( 5,112 ) int -> rax "Inlining Arg"
;* V308 tmp285 [V308 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
;* V309 tmp286 [V309 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V310 tmp287 [V310 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V311 tmp288 [V311 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V312 tmp289 [V312 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V313 tmp290 [V313 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V314 tmp291 [V314 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V315 tmp292 [V315 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V316 tmp293 [V316,T102] ( 2, 32 ) int -> r8 "Inline stloc first use temp"
;* V317 tmp294 [V317 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V318 tmp295 [V318 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V319 tmp296 [V319,T174] ( 5, 10 ) int -> rsi "Inline stloc first use temp"
;* V320 tmp297 [V320 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
;* V321 tmp298 [V321 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V322 tmp299 [V322,T175] ( 5, 10 ) int -> rsi "Inline stloc first use temp"
;* V323 tmp300 [V323 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
;* V324 tmp301 [V324 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V325 tmp302 [V325,T176] ( 5, 10 ) int -> rsi "Inline return value spill temp"
;* V326 tmp303 [V326 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V327 tmp304 [V327,T187] ( 4, 8 ) int -> rdi "Inline return value spill temp"
;* V328 tmp305 [V328 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V329 tmp306 [V329,T177] ( 5, 10 ) int -> rdi "Inline stloc first use temp"
;* V330 tmp307 [V330 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
; V331 tmp308 [V331,T163] ( 3, 12 ) ubyte -> rsi "Inlining Arg"
;* V332 tmp309 [V332 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Rune>
;* V333 tmp310 [V333 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V334 tmp311 [V334 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
; V335 tmp312 [V335,T178] ( 5, 10 ) int -> rdi "Inline stloc first use temp"
;* V336 tmp313 [V336 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
; V337 tmp314 [V337,T164] ( 3, 12 ) ubyte -> rsi "Inlining Arg"
; V338 tmp315 [V338,T226] ( 3, 6 ) int -> rsi "Inline stloc first use temp"
; V339 tmp316 [V339,T179] ( 5, 10 ) int -> rax "Inline stloc first use temp"
;* V340 tmp317 [V340 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.Span`1[ubyte]>
; V341 tmp318 [V341,T188] ( 4, 8 ) int -> rdi "Inline stloc first use temp"
;* V342 tmp319 [V342 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
;* V343 tmp320 [V343 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
;* V344 tmp321 [V344 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V345 tmp322 [V345 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V346 tmp323 [V346 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V347 tmp324 [V347 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V348 tmp325 [V348 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V349 tmp326 [V349 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V350 tmp327 [V350 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V351 tmp328 [V351 ] ( 1, 2 ) int -> [rbp-0x70] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V352 tmp329 [V352 ] ( 19, 77 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed single-def "field V00._dateData (fldOffset=0x0)" P-DEP
; V353 tmp330 [V353,T04] ( 20,261 ) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
; V354 tmp331 [V354,T01] ( 29,454 ) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
; V355 tmp332 [V355,T180] ( 4, 7 ) long -> r12 single-def "field V03._ticks (fldOffset=0x0)" P-INDEP
-; V356 tmp333 [V356,T46] ( 3, 48 ) byref -> [rbp-0xF8] spill-single-def "field V25._reference (fldOffset=0x0)" P-INDEP
-; V357 tmp334 [V357,T52] ( 3, 48 ) int -> [rbp-0x74] spill-single-def "field V25._length (fldOffset=0x8)" P-INDEP
+; V356 tmp333 [V356,T47] ( 3, 48 ) byref -> [rbp-0xF8] spill-single-def "field V25._reference (fldOffset=0x0)" P-INDEP
+; V357 tmp334 [V357,T53] ( 3, 48 ) int -> [rbp-0x74] spill-single-def "field V25._length (fldOffset=0x8)" P-INDEP
; V358 tmp335 [V358,T183] ( 4, 8 ) byref -> rax "field V31._reference (fldOffset=0x0)" P-INDEP
; V359 tmp336 [V359,T189] ( 4, 8 ) int -> rdx "field V31._length (fldOffset=0x8)" P-INDEP
; V360 tmp337 [V360,T207] ( 3, 6 ) byref -> [rbp-0x100] spill-single-def "field V34._reference (fldOffset=0x0)" P-INDEP
; V361 tmp338 [V361,T227] ( 3, 6 ) int -> [rbp-0x78] spill-single-def "field V34._length (fldOffset=0x8)" P-INDEP
;* V362 tmp339 [V362 ] ( 0, 0 ) byref -> zero-ref "field V37._reference (fldOffset=0x0)" P-INDEP
;* V363 tmp340 [V363 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
;* V364 tmp341 [V364 ] ( 0, 0 ) byref -> zero-ref "field V38._reference (fldOffset=0x0)" P-INDEP
;* V365 tmp342 [V365 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
; V366 tmp343 [V366,T208] ( 3, 6 ) byref -> [rbp-0x108] spill-single-def "field V39._reference (fldOffset=0x0)" P-INDEP
; V367 tmp344 [V367,T228] ( 3, 6 ) int -> [rbp-0x7C] spill-single-def "field V39._length (fldOffset=0x8)" P-INDEP
-; V368 tmp345 [V368,T47] ( 3, 48 ) byref -> [rbp-0x110] spill-single-def "field V40._reference (fldOffset=0x0)" P-INDEP
-; V369 tmp346 [V369,T53] ( 3, 48 ) int -> [rbp-0x80] spill-single-def "field V40._length (fldOffset=0x8)" P-INDEP
-; V370 tmp347 [V370,T48] ( 3, 48 ) byref -> [rbp-0x118] spill-single-def "field V48._reference (fldOffset=0x0)" P-INDEP
-; V371 tmp348 [V371,T54] ( 3, 48 ) int -> [rbp-0x84] spill-single-def "field V48._length (fldOffset=0x8)" P-INDEP
-; V372 tmp349 [V372,T49] ( 3, 48 ) byref -> [rbp-0x120] spill-single-def "field V49._reference (fldOffset=0x0)" P-INDEP
-; V373 tmp350 [V373,T55] ( 3, 48 ) int -> [rbp-0x88] spill-single-def "field V49._length (fldOffset=0x8)" P-INDEP
+; V368 tmp345 [V368,T48] ( 3, 48 ) byref -> [rbp-0x110] spill-single-def "field V40._reference (fldOffset=0x0)" P-INDEP
+; V369 tmp346 [V369,T54] ( 3, 48 ) int -> [rbp-0x80] spill-single-def "field V40._length (fldOffset=0x8)" P-INDEP
+; V370 tmp347 [V370,T49] ( 3, 48 ) byref -> [rbp-0x118] spill-single-def "field V48._reference (fldOffset=0x0)" P-INDEP
+; V371 tmp348 [V371,T55] ( 3, 48 ) int -> [rbp-0x84] spill-single-def "field V48._length (fldOffset=0x8)" P-INDEP
+; V372 tmp349 [V372,T50] ( 3, 48 ) byref -> [rbp-0x120] spill-single-def "field V49._reference (fldOffset=0x0)" P-INDEP
+; V373 tmp350 [V373,T56] ( 3, 48 ) int -> [rbp-0x88] spill-single-def "field V49._length (fldOffset=0x8)" P-INDEP
;* V374 tmp351 [V374 ] ( 0, 0 ) byref -> zero-ref "field V52._reference (fldOffset=0x0)" P-DEP
;* V375 tmp352 [V375 ] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x8)" P-DEP
;* V376 tmp353 [V376 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-DEP
;* V377 tmp354 [V377 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-DEP
; V378 tmp355 [V378,T248] ( 2, 4 ) byref -> rsi "field V55._reference (fldOffset=0x0)" P-INDEP
;* V379 tmp356 [V379,T300] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
; V380 tmp357 [V380,T275] ( 2, 4 ) long -> rdi "field V56._dateData (fldOffset=0x0)" P-INDEP
;* V381 tmp358 [V381,T292] ( 0, 0 ) byref -> zero-ref "field V58._reference (fldOffset=0x0)" P-INDEP
;* V382 tmp359 [V382,T301] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP
; V383 tmp360 [V383,T209] ( 3, 6 ) byref -> registers "field V59._reference (fldOffset=0x0)" P-INDEP
; V384 tmp361 [V384,T229] ( 3, 6 ) int -> registers "field V59._length (fldOffset=0x8)" P-INDEP
; V385 tmp362 [V385,T249] ( 2, 4 ) byref -> rcx "field V61._reference (fldOffset=0x0)" P-INDEP
; V386 tmp363 [V386,T276] ( 2, 4 ) int -> r8 "field V61._length (fldOffset=0x8)" P-INDEP
;* V387 tmp364 [V387 ] ( 0, 0 ) byref -> zero-ref "field V62._reference (fldOffset=0x0)" P-INDEP
;* V388 tmp365 [V388 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP
;* V389 tmp366 [V389 ] ( 0, 0 ) byref -> zero-ref "field V66._reference (fldOffset=0x0)" P-INDEP
;* V390 tmp367 [V390 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
;* V391 tmp368 [V391 ] ( 0, 0 ) byref -> zero-ref "field V67._reference (fldOffset=0x0)" P-INDEP
;* V392 tmp369 [V392 ] ( 0, 0 ) int -> zero-ref "field V67._length (fldOffset=0x8)" P-INDEP
; V393 tmp370 [V393,T210] ( 3, 6 ) byref -> rcx "field V68._reference (fldOffset=0x0)" P-INDEP
; V394 tmp371 [V394,T230] ( 3, 6 ) int -> rax "field V68._length (fldOffset=0x8)" P-INDEP
; V395 tmp372 [V395,T250] ( 2, 4 ) byref -> rcx "field V70._reference (fldOffset=0x0)" P-INDEP
; V396 tmp373 [V396,T277] ( 2, 4 ) int -> rsi "field V70._length (fldOffset=0x8)" P-INDEP
;* V397 tmp374 [V397 ] ( 0, 0 ) byref -> zero-ref "field V72._reference (fldOffset=0x0)" P-DEP
;* V398 tmp375 [V398 ] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-DEP
; V399 tmp376 [V399,T251] ( 2, 4 ) byref -> rcx "field V73._reference (fldOffset=0x0)" P-INDEP
; V400 tmp377 [V400,T278] ( 2, 4 ) int -> rax "field V73._length (fldOffset=0x8)" P-INDEP
; V401 tmp378 [V401,T252] ( 2, 4 ) byref -> rcx "field V77._reference (fldOffset=0x0)" P-INDEP
;* V402 tmp379 [V402 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x8)" P-INDEP
; V403 tmp380 [V403,T253] ( 2, 4 ) byref -> rcx "field V81._reference (fldOffset=0x0)" P-INDEP
; V404 tmp381 [V404,T279] ( 2, 4 ) int -> r8 "field V81._length (fldOffset=0x8)" P-INDEP
;* V405 tmp382 [V405,T293] ( 0, 0 ) byref -> zero-ref "field V84._reference (fldOffset=0x0)" P-INDEP
;* V406 tmp383 [V406,T302] ( 0, 0 ) int -> zero-ref "field V84._length (fldOffset=0x8)" P-INDEP
;* V407 tmp384 [V407,T294] ( 0, 0 ) byref -> zero-ref "field V88._reference (fldOffset=0x0)" P-INDEP
;* V408 tmp385 [V408,T303] ( 0, 0 ) int -> zero-ref "field V88._length (fldOffset=0x8)" P-INDEP
;* V409 tmp386 [V409,T295] ( 0, 0 ) byref -> zero-ref "field V92._reference (fldOffset=0x0)" P-INDEP
;* V410 tmp387 [V410,T304] ( 0, 0 ) int -> zero-ref "field V92._length (fldOffset=0x8)" P-INDEP
;* V411 tmp388 [V411,T296] ( 0, 0 ) byref -> zero-ref "field V96._reference (fldOffset=0x0)" P-INDEP
;* V412 tmp389 [V412,T305] ( 0, 0 ) int -> zero-ref "field V96._length (fldOffset=0x8)" P-INDEP
;* V413 tmp390 [V413,T297] ( 0, 0 ) byref -> zero-ref "field V100._reference (fldOffset=0x0)" P-INDEP
;* V414 tmp391 [V414,T306] ( 0, 0 ) int -> zero-ref "field V100._length (fldOffset=0x8)" P-INDEP
; V415 tmp392 [V415,T211] ( 3, 6 ) byref -> registers "field V101._reference (fldOffset=0x0)" P-INDEP
; V416 tmp393 [V416,T231] ( 3, 6 ) int -> registers "field V101._length (fldOffset=0x8)" P-INDEP
; V417 tmp394 [V417,T254] ( 2, 4 ) byref -> rcx "field V103._reference (fldOffset=0x0)" P-INDEP
; V418 tmp395 [V418,T280] ( 2, 4 ) int -> rdx "field V103._length (fldOffset=0x8)" P-INDEP
;* V419 tmp396 [V419 ] ( 0, 0 ) byref -> zero-ref "field V104._reference (fldOffset=0x0)" P-INDEP
;* V420 tmp397 [V420 ] ( 0, 0 ) int -> zero-ref "field V104._length (fldOffset=0x8)" P-INDEP
; V421 tmp398 [V421,T212] ( 3, 6 ) byref -> registers "field V107._reference (fldOffset=0x0)" P-INDEP
; V422 tmp399 [V422,T232] ( 3, 6 ) int -> registers "field V107._length (fldOffset=0x8)" P-INDEP
; V423 tmp400 [V423,T255] ( 2, 4 ) byref -> rcx "field V109._reference (fldOffset=0x0)" P-INDEP
; V424 tmp401 [V424,T281] ( 2, 4 ) int -> rdx "field V109._length (fldOffset=0x8)" P-INDEP
;* V425 tmp402 [V425 ] ( 0, 0 ) byref -> zero-ref "field V110._reference (fldOffset=0x0)" P-INDEP
;* V426 tmp403 [V426 ] ( 0, 0 ) int -> zero-ref "field V110._length (fldOffset=0x8)" P-INDEP
;* V427 tmp404 [V427,T298] ( 0, 0 ) byref -> zero-ref "field V118._reference (fldOffset=0x0)" P-INDEP
;* V428 tmp405 [V428,T307] ( 0, 0 ) int -> zero-ref "field V118._length (fldOffset=0x8)" P-INDEP
; V429 tmp406 [V429,T233] ( 3, 6 ) int -> [rbp-0x8C] spill-single-def "field V134._value (fldOffset=0x0)" P-INDEP
;* V430 tmp407 [V430 ] ( 0, 0 ) byref -> zero-ref "field V135._reference (fldOffset=0x0)" P-INDEP
;* V431 tmp408 [V431 ] ( 0, 0 ) int -> zero-ref "field V135._length (fldOffset=0x8)" P-INDEP
;* V432 tmp409 [V432 ] ( 0, 0 ) byref -> zero-ref "field V136._reference (fldOffset=0x0)" P-INDEP
;* V433 tmp410 [V433 ] ( 0, 0 ) int -> zero-ref "field V136._length (fldOffset=0x8)" P-INDEP
; V434 tmp411 [V434,T256] ( 2, 4 ) byref -> rax "field V138._reference (fldOffset=0x0)" P-INDEP
; V435 tmp412 [V435,T234] ( 3, 6 ) int -> rcx "field V138._length (fldOffset=0x8)" P-INDEP
; V436 tmp413 [V436,T213] ( 3, 6 ) byref -> rsi "field V142._reference (fldOffset=0x0)" P-INDEP
; V437 tmp414 [V437,T235] ( 3, 6 ) int -> rdx "field V142._length (fldOffset=0x8)" P-INDEP
; V438 tmp415 [V438,T257] ( 2, 4 ) byref -> rsi "field V144._reference (fldOffset=0x0)" P-INDEP
; V439 tmp416 [V439,T282] ( 2, 4 ) int -> rcx "field V144._length (fldOffset=0x8)" P-INDEP
;* V440 tmp417 [V440 ] ( 0, 0 ) byref -> zero-ref "field V145._reference (fldOffset=0x0)" P-DEP
;* V441 tmp418 [V441 ] ( 0, 0 ) int -> zero-ref "field V145._length (fldOffset=0x8)" P-DEP
; V442 tmp419 [V442,T258] ( 2, 4 ) byref -> rsi "field V146._reference (fldOffset=0x0)" P-INDEP
; V443 tmp420 [V443,T283] ( 2, 4 ) int -> rax "field V146._length (fldOffset=0x8)" P-INDEP
;* V444 tmp421 [V444 ] ( 0, 0 ) byref -> zero-ref "field V148._reference (fldOffset=0x0)" P-INDEP
;* V445 tmp422 [V445 ] ( 0, 0 ) int -> zero-ref "field V148._length (fldOffset=0x8)" P-INDEP
; V446 tmp423 [V446,T259] ( 2, 4 ) byref -> rsi "field V149._reference (fldOffset=0x0)" P-INDEP
; V447 tmp424 [V447,T284] ( 2, 4 ) int -> rdx "field V149._length (fldOffset=0x8)" P-INDEP
;* V448 tmp425 [V448 ] ( 0, 0 ) byref -> zero-ref "field V150._reference (fldOffset=0x0)" P-INDEP
;* V449 tmp426 [V449 ] ( 0, 0 ) int -> zero-ref "field V150._length (fldOffset=0x8)" P-INDEP
; V450 tmp427 [V450,T260] ( 2, 4 ) byref -> rdi "field V155._reference (fldOffset=0x0)" P-INDEP
; V451 tmp428 [V451,T236] ( 3, 6 ) int -> rcx "field V155._length (fldOffset=0x8)" P-INDEP
;* V452 tmp429 [V452 ] ( 0, 0 ) byref -> zero-ref "field V156._reference (fldOffset=0x0)" P-INDEP
;* V453 tmp430 [V453 ] ( 0, 0 ) int -> zero-ref "field V156._length (fldOffset=0x8)" P-INDEP
;* V454 tmp431 [V454,T299] ( 0, 0 ) byref -> zero-ref "field V158._reference (fldOffset=0x0)" P-INDEP
;* V455 tmp432 [V455,T308] ( 0, 0 ) int -> zero-ref "field V158._length (fldOffset=0x8)" P-INDEP
; V456 tmp433 [V456,T214] ( 3, 6 ) byref -> registers "field V161._reference (fldOffset=0x0)" P-INDEP
; V457 tmp434 [V457,T237] ( 3, 6 ) int -> registers "field V161._length (fldOffset=0x8)" P-INDEP
; V458 tmp435 [V458,T261] ( 2, 4 ) byref -> rcx "field V162._reference (fldOffset=0x0)" P-INDEP
; V459 tmp436 [V459,T285] ( 2, 4 ) int -> r8 "field V162._length (fldOffset=0x8)" P-INDEP
;* V460 tmp437 [V460 ] ( 0, 0 ) byref -> zero-ref "field V163._reference (fldOffset=0x0)" P-INDEP
;* V461 tmp438 [V461 ] ( 0, 0 ) int -> zero-ref "field V163._length (fldOffset=0x8)" P-INDEP
;* V462 tmp439 [V462 ] ( 0, 0 ) byref -> zero-ref "field V167._reference (fldOffset=0x0)" P-INDEP
;* V463 tmp440 [V463 ] ( 0, 0 ) int -> zero-ref "field V167._length (fldOffset=0x8)" P-INDEP
;* V464 tmp441 [V464 ] ( 0, 0 ) byref -> zero-ref "field V168._reference (fldOffset=0x0)" P-INDEP
;* V465 tmp442 [V465 ] ( 0, 0 ) int -> zero-ref "field V168._length (fldOffset=0x8)" P-INDEP
; V466 tmp443 [V466,T215] ( 3, 6 ) byref -> rcx "field V169._reference (fldOffset=0x0)" P-INDEP
; V467 tmp444 [V467,T238] ( 3, 6 ) int -> rax "field V169._length (fldOffset=0x8)" P-INDEP
; V468 tmp445 [V468,T262] ( 2, 4 ) byref -> rcx "field V171._reference (fldOffset=0x0)" P-INDEP
; V469 tmp446 [V469,T286] ( 2, 4 ) int -> rsi "field V171._length (fldOffset=0x8)" P-INDEP
;* V470 tmp447 [V470 ] ( 0, 0 ) byref -> zero-ref "field V173._reference (fldOffset=0x0)" P-DEP
;* V471 tmp448 [V471 ] ( 0, 0 ) int -> zero-ref "field V173._length (fldOffset=0x8)" P-DEP
; V472 tmp449 [V472,T263] ( 2, 4 ) byref -> rcx "field V174._reference (fldOffset=0x0)" P-INDEP
; V473 tmp450 [V473,T287] ( 2, 4 ) int -> rax "field V174._length (fldOffset=0x8)" P-INDEP
; V474 tmp451 [V474,T264] ( 2, 4 ) byref -> rcx "field V178._reference (fldOffset=0x0)" P-INDEP
;* V475 tmp452 [V475 ] ( 0, 0 ) int -> zero-ref "field V178._length (fldOffset=0x8)" P-INDEP
; V476 tmp453 [V476,T265] ( 2, 4 ) byref -> rcx "field V182._reference (fldOffset=0x0)" P-INDEP
; V477 tmp454 [V477,T288] ( 2, 4 ) int -> r8 "field V182._length (fldOffset=0x8)" P-INDEP
;* V478 tmp455 [V478,T151] ( 0, 0 ) byref -> zero-ref "field V185._reference (fldOffset=0x0)" P-INDEP
;* V479 tmp456 [V479,T153] ( 0, 0 ) int -> zero-ref "field V185._length (fldOffset=0x8)" P-INDEP
; V480 tmp457 [V480,T61] ( 3, 32 ) byref -> registers "field V186._reference (fldOffset=0x0)" P-INDEP
; V481 tmp458 [V481,T73] ( 3, 32 ) int -> registers "field V186._length (fldOffset=0x8)" P-INDEP
; V482 tmp459 [V482,T132] ( 2, 16 ) byref -> rcx "field V188._reference (fldOffset=0x0)" P-INDEP
; V483 tmp460 [V483,T142] ( 2, 16 ) int -> r8 "field V188._length (fldOffset=0x8)" P-INDEP
;* V484 tmp461 [V484 ] ( 0, 0 ) byref -> zero-ref "field V189._reference (fldOffset=0x0)" P-INDEP
;* V485 tmp462 [V485 ] ( 0, 0 ) int -> zero-ref "field V189._length (fldOffset=0x8)" P-INDEP
;* V486 tmp463 [V486 ] ( 0, 0 ) byref -> zero-ref "field V193._reference (fldOffset=0x0)" P-INDEP
;* V487 tmp464 [V487 ] ( 0, 0 ) int -> zero-ref "field V193._length (fldOffset=0x8)" P-INDEP
;* V488 tmp465 [V488 ] ( 0, 0 ) byref -> zero-ref "field V194._reference (fldOffset=0x0)" P-INDEP
;* V489 tmp466 [V489 ] ( 0, 0 ) int -> zero-ref "field V194._length (fldOffset=0x8)" P-INDEP
; V490 tmp467 [V490,T62] ( 3, 32 ) byref -> rcx "field V195._reference (fldOffset=0x0)" P-INDEP
; V491 tmp468 [V491,T74] ( 3, 32 ) int -> rax "field V195._length (fldOffset=0x8)" P-INDEP
-; V492 tmp469 [V492,T114] ( 2, 24 ) byref -> rcx "field V197._reference (fldOffset=0x0)" P-INDEP
+; V492 tmp469 [V492,T116] ( 2, 24 ) byref -> rcx "field V197._reference (fldOffset=0x0)" P-INDEP
; V493 tmp470 [V493,T103] ( 2, 32 ) int -> rsi "field V197._length (fldOffset=0x8)" P-INDEP
;* V494 tmp471 [V494 ] ( 0, 0 ) byref -> zero-ref "field V199._reference (fldOffset=0x0)" P-DEP
;* V495 tmp472 [V495 ] ( 0, 0 ) int -> zero-ref "field V199._length (fldOffset=0x8)" P-DEP
; V496 tmp473 [V496,T133] ( 2, 16 ) byref -> rcx "field V200._reference (fldOffset=0x0)" P-INDEP
; V497 tmp474 [V497,T143] ( 2, 16 ) int -> rax "field V200._length (fldOffset=0x8)" P-INDEP
; V498 tmp475 [V498,T86] ( 2, 32 ) byref -> rcx "field V204._reference (fldOffset=0x0)" P-INDEP
;* V499 tmp476 [V499 ] ( 0, 0 ) int -> zero-ref "field V204._length (fldOffset=0x8)" P-INDEP
; V500 tmp477 [V500,T87] ( 2, 32 ) byref -> rcx "field V208._reference (fldOffset=0x0)" P-INDEP
; V501 tmp478 [V501,T104] ( 2, 32 ) int -> r8 "field V208._length (fldOffset=0x8)" P-INDEP
; V502 tmp479 [V502,T63] ( 3, 32 ) byref -> registers "field V211._reference (fldOffset=0x0)" P-INDEP
; V503 tmp480 [V503,T75] ( 3, 32 ) int -> registers "field V211._length (fldOffset=0x8)" P-INDEP
; V504 tmp481 [V504,T134] ( 2, 16 ) byref -> rcx "field V213._reference (fldOffset=0x0)" P-INDEP
; V505 tmp482 [V505,T144] ( 2, 16 ) int -> r8 "field V213._length (fldOffset=0x8)" P-INDEP
;* V506 tmp483 [V506 ] ( 0, 0 ) byref -> zero-ref "field V214._reference (fldOffset=0x0)" P-INDEP
;* V507 tmp484 [V507 ] ( 0, 0 ) int -> zero-ref "field V214._length (fldOffset=0x8)" P-INDEP
;* V508 tmp485 [V508 ] ( 0, 0 ) byref -> zero-ref "field V218._reference (fldOffset=0x0)" P-INDEP
;* V509 tmp486 [V509 ] ( 0, 0 ) int -> zero-ref "field V218._length (fldOffset=0x8)" P-INDEP
;* V510 tmp487 [V510 ] ( 0, 0 ) byref -> zero-ref "field V219._reference (fldOffset=0x0)" P-INDEP
;* V511 tmp488 [V511 ] ( 0, 0 ) int -> zero-ref "field V219._length (fldOffset=0x8)" P-INDEP
; V512 tmp489 [V512,T64] ( 3, 32 ) byref -> rcx "field V220._reference (fldOffset=0x0)" P-INDEP
; V513 tmp490 [V513,T76] ( 3, 32 ) int -> rax "field V220._length (fldOffset=0x8)" P-INDEP
-; V514 tmp491 [V514,T115] ( 2, 24 ) byref -> rcx "field V222._reference (fldOffset=0x0)" P-INDEP
+; V514 tmp491 [V514,T117] ( 2, 24 ) byref -> rcx "field V222._reference (fldOffset=0x0)" P-INDEP
; V515 tmp492 [V515,T105] ( 2, 32 ) int -> rsi "field V222._length (fldOffset=0x8)" P-INDEP
;* V516 tmp493 [V516 ] ( 0, 0 ) byref -> zero-ref "field V224._reference (fldOffset=0x0)" P-DEP
;* V517 tmp494 [V517 ] ( 0, 0 ) int -> zero-ref "field V224._length (fldOffset=0x8)" P-DEP
; V518 tmp495 [V518,T135] ( 2, 16 ) byref -> rcx "field V225._reference (fldOffset=0x0)" P-INDEP
; V519 tmp496 [V519,T145] ( 2, 16 ) int -> rax "field V225._length (fldOffset=0x8)" P-INDEP
; V520 tmp497 [V520,T88] ( 2, 32 ) byref -> rcx "field V229._reference (fldOffset=0x0)" P-INDEP
;* V521 tmp498 [V521 ] ( 0, 0 ) int -> zero-ref "field V229._length (fldOffset=0x8)" P-INDEP
; V522 tmp499 [V522,T89] ( 2, 32 ) byref -> rcx "field V233._reference (fldOffset=0x0)" P-INDEP
; V523 tmp500 [V523,T106] ( 2, 32 ) int -> r8 "field V233._length (fldOffset=0x8)" P-INDEP
; V524 tmp501 [V524,T65] ( 3, 32 ) byref -> registers "field V237._reference (fldOffset=0x0)" P-INDEP
; V525 tmp502 [V525,T77] ( 3, 32 ) int -> registers "field V237._length (fldOffset=0x8)" P-INDEP
; V526 tmp503 [V526,T136] ( 2, 16 ) byref -> rcx "field V238._reference (fldOffset=0x0)" P-INDEP
; V527 tmp504 [V527,T146] ( 2, 16 ) int -> r8 "field V238._length (fldOffset=0x8)" P-INDEP
;* V528 tmp505 [V528 ] ( 0, 0 ) byref -> zero-ref "field V239._reference (fldOffset=0x0)" P-INDEP
;* V529 tmp506 [V529 ] ( 0, 0 ) int -> zero-ref "field V239._length (fldOffset=0x8)" P-INDEP
;* V530 tmp507 [V530 ] ( 0, 0 ) byref -> zero-ref "field V243._reference (fldOffset=0x0)" P-INDEP
;* V531 tmp508 [V531 ] ( 0, 0 ) int -> zero-ref "field V243._length (fldOffset=0x8)" P-INDEP
;* V532 tmp509 [V532 ] ( 0, 0 ) byref -> zero-ref "field V244._reference (fldOffset=0x0)" P-INDEP
;* V533 tmp510 [V533 ] ( 0, 0 ) int -> zero-ref "field V244._length (fldOffset=0x8)" P-INDEP
; V534 tmp511 [V534,T66] ( 3, 32 ) byref -> rcx "field V245._reference (fldOffset=0x0)" P-INDEP
; V535 tmp512 [V535,T78] ( 3, 32 ) int -> rax "field V245._length (fldOffset=0x8)" P-INDEP
-; V536 tmp513 [V536,T116] ( 2, 24 ) byref -> rcx "field V247._reference (fldOffset=0x0)" P-INDEP
+; V536 tmp513 [V536,T118] ( 2, 24 ) byref -> rcx "field V247._reference (fldOffset=0x0)" P-INDEP
; V537 tmp514 [V537,T107] ( 2, 32 ) int -> rsi "field V247._length (fldOffset=0x8)" P-INDEP
;* V538 tmp515 [V538 ] ( 0, 0 ) byref -> zero-ref "field V249._reference (fldOffset=0x0)" P-DEP
;* V539 tmp516 [V539 ] ( 0, 0 ) int -> zero-ref "field V249._length (fldOffset=0x8)" P-DEP
; V540 tmp517 [V540,T137] ( 2, 16 ) byref -> rcx "field V250._reference (fldOffset=0x0)" P-INDEP
; V541 tmp518 [V541,T147] ( 2, 16 ) int -> rax "field V250._length (fldOffset=0x8)" P-INDEP
; V542 tmp519 [V542,T90] ( 2, 32 ) byref -> rcx "field V254._reference (fldOffset=0x0)" P-INDEP
;* V543 tmp520 [V543 ] ( 0, 0 ) int -> zero-ref "field V254._length (fldOffset=0x8)" P-INDEP
; V544 tmp521 [V544,T91] ( 2, 32 ) byref -> rcx "field V258._reference (fldOffset=0x0)" P-INDEP
; V545 tmp522 [V545,T108] ( 2, 32 ) int -> r8 "field V258._length (fldOffset=0x8)" P-INDEP
;* V546 tmp523 [V546,T154] ( 0, 0 ) int -> zero-ref "field V262._value (fldOffset=0x0)" P-INDEP
;* V547 tmp524 [V547 ] ( 0, 0 ) byref -> zero-ref "field V263._reference (fldOffset=0x0)" P-INDEP
;* V548 tmp525 [V548 ] ( 0, 0 ) int -> zero-ref "field V263._length (fldOffset=0x8)" P-INDEP
;* V549 tmp526 [V549 ] ( 0, 0 ) byref -> zero-ref "field V264._reference (fldOffset=0x0)" P-INDEP
;* V550 tmp527 [V550 ] ( 0, 0 ) int -> zero-ref "field V264._length (fldOffset=0x8)" P-INDEP
;* V551 tmp528 [V551 ] ( 0, 0 ) byref -> zero-ref "field V266._reference (fldOffset=0x0)" P-INDEP
;* V552 tmp529 [V552 ] ( 0, 0 ) int -> zero-ref "field V266._length (fldOffset=0x8)" P-INDEP
; V553 tmp530 [V553,T67] ( 3, 32 ) byref -> rsi "field V270._reference (fldOffset=0x0)" P-INDEP
; V554 tmp531 [V554,T79] ( 3, 32 ) int -> rdx "field V270._length (fldOffset=0x8)" P-INDEP
-; V555 tmp532 [V555,T117] ( 2, 24 ) byref -> rsi "field V272._reference (fldOffset=0x0)" P-INDEP
+; V555 tmp532 [V555,T119] ( 2, 24 ) byref -> rsi "field V272._reference (fldOffset=0x0)" P-INDEP
; V556 tmp533 [V556,T109] ( 2, 32 ) int -> rcx "field V272._length (fldOffset=0x8)" P-INDEP
;* V557 tmp534 [V557 ] ( 0, 0 ) byref -> zero-ref "field V273._reference (fldOffset=0x0)" P-DEP
;* V558 tmp535 [V558 ] ( 0, 0 ) int -> zero-ref "field V273._length (fldOffset=0x8)" P-DEP
; V559 tmp536 [V559,T138] ( 2, 16 ) byref -> rsi "field V274._reference (fldOffset=0x0)" P-INDEP
; V560 tmp537 [V560,T148] ( 2, 16 ) int -> rax "field V274._length (fldOffset=0x8)" P-INDEP
;* V561 tmp538 [V561 ] ( 0, 0 ) byref -> zero-ref "field V276._reference (fldOffset=0x0)" P-INDEP
;* V562 tmp539 [V562 ] ( 0, 0 ) int -> zero-ref "field V276._length (fldOffset=0x8)" P-INDEP
; V563 tmp540 [V563,T92] ( 2, 32 ) byref -> rsi "field V277._reference (fldOffset=0x0)" P-INDEP
; V564 tmp541 [V564,T110] ( 2, 32 ) int -> rdx "field V277._length (fldOffset=0x8)" P-INDEP
;* V565 tmp542 [V565 ] ( 0, 0 ) byref -> zero-ref "field V278._reference (fldOffset=0x0)" P-INDEP
;* V566 tmp543 [V566 ] ( 0, 0 ) int -> zero-ref "field V278._length (fldOffset=0x8)" P-INDEP
; V567 tmp544 [V567,T68] ( 3, 32 ) byref -> registers "field V296._reference (fldOffset=0x0)" P-INDEP
; V568 tmp545 [V568,T80] ( 3, 32 ) int -> registers "field V296._length (fldOffset=0x8)" P-INDEP
; V569 tmp546 [V569,T139] ( 2, 16 ) byref -> rcx "field V297._reference (fldOffset=0x0)" P-INDEP
; V570 tmp547 [V570,T149] ( 2, 16 ) int -> r8 "field V297._length (fldOffset=0x8)" P-INDEP
;* V571 tmp548 [V571 ] ( 0, 0 ) byref -> zero-ref "field V298._reference (fldOffset=0x0)" P-INDEP
;* V572 tmp549 [V572 ] ( 0, 0 ) int -> zero-ref "field V298._length (fldOffset=0x8)" P-INDEP
;* V573 tmp550 [V573 ] ( 0, 0 ) byref -> zero-ref "field V302._reference (fldOffset=0x0)" P-INDEP
;* V574 tmp551 [V574 ] ( 0, 0 ) int -> zero-ref "field V302._length (fldOffset=0x8)" P-INDEP
;* V575 tmp552 [V575 ] ( 0, 0 ) byref -> zero-ref "field V303._reference (fldOffset=0x0)" P-INDEP
;* V576 tmp553 [V576 ] ( 0, 0 ) int -> zero-ref "field V303._length (fldOffset=0x8)" P-INDEP
; V577 tmp554 [V577,T69] ( 3, 32 ) byref -> rcx "field V304._reference (fldOffset=0x0)" P-INDEP
; V578 tmp555 [V578,T81] ( 3, 32 ) int -> rax "field V304._length (fldOffset=0x8)" P-INDEP
-; V579 tmp556 [V579,T118] ( 2, 24 ) byref -> rcx "field V306._reference (fldOffset=0x0)" P-INDEP
+; V579 tmp556 [V579,T120] ( 2, 24 ) byref -> rcx "field V306._reference (fldOffset=0x0)" P-INDEP
; V580 tmp557 [V580,T111] ( 2, 32 ) int -> rsi "field V306._length (fldOffset=0x8)" P-INDEP
;* V581 tmp558 [V581 ] ( 0, 0 ) byref -> zero-ref "field V308._reference (fldOffset=0x0)" P-DEP
;* V582 tmp559 [V582 ] ( 0, 0 ) int -> zero-ref "field V308._length (fldOffset=0x8)" P-DEP
; V583 tmp560 [V583,T140] ( 2, 16 ) byref -> rcx "field V309._reference (fldOffset=0x0)" P-INDEP
; V584 tmp561 [V584,T150] ( 2, 16 ) int -> rax "field V309._length (fldOffset=0x8)" P-INDEP
; V585 tmp562 [V585,T93] ( 2, 32 ) byref -> rcx "field V313._reference (fldOffset=0x0)" P-INDEP
;* V586 tmp563 [V586 ] ( 0, 0 ) int -> zero-ref "field V313._length (fldOffset=0x8)" P-INDEP
; V587 tmp564 [V587,T94] ( 2, 32 ) byref -> rcx "field V317._reference (fldOffset=0x0)" P-INDEP
; V588 tmp565 [V588,T112] ( 2, 32 ) int -> r8 "field V317._length (fldOffset=0x8)" P-INDEP
; V589 tmp566 [V589,T266] ( 2, 4 ) byref -> rdi "field V320._reference (fldOffset=0x0)" P-INDEP
; V590 tmp567 [V590,T239] ( 3, 6 ) int -> rcx "field V320._length (fldOffset=0x8)" P-INDEP
; V591 tmp568 [V591,T216] ( 3, 6 ) byref -> rax "field V321._reference (fldOffset=0x0)" P-INDEP
; V592 tmp569 [V592,T240] ( 3, 6 ) int -> rdx "field V321._length (fldOffset=0x8)" P-INDEP
; V593 tmp570 [V593,T267] ( 2, 4 ) byref -> rdi "field V323._reference (fldOffset=0x0)" P-INDEP
; V594 tmp571 [V594,T241] ( 3, 6 ) int -> rcx "field V323._length (fldOffset=0x8)" P-INDEP
; V595 tmp572 [V595,T217] ( 3, 6 ) byref -> rax "field V324._reference (fldOffset=0x0)" P-INDEP
; V596 tmp573 [V596,T242] ( 3, 6 ) int -> rdx "field V324._length (fldOffset=0x8)" P-INDEP
;* V597 tmp574 [V597 ] ( 0, 0 ) byref -> zero-ref "field V326._reference (fldOffset=0x0)" P-INDEP
;* V598 tmp575 [V598 ] ( 0, 0 ) int -> zero-ref "field V326._length (fldOffset=0x8)" P-INDEP
;* V599 tmp576 [V599 ] ( 0, 0 ) byref -> zero-ref "field V328._reference (fldOffset=0x0)" P-INDEP
;* V600 tmp577 [V600 ] ( 0, 0 ) int -> zero-ref "field V328._length (fldOffset=0x8)" P-INDEP
; V601 tmp578 [V601,T268] ( 2, 4 ) byref -> r8 "field V330._reference (fldOffset=0x0)" P-INDEP
; V602 tmp579 [V602,T243] ( 3, 6 ) int -> r9 "field V330._length (fldOffset=0x8)" P-INDEP
; V603 tmp580 [V603,T244] ( 3, 6 ) int -> [rbp-0x90] spill-single-def "field V332._value (fldOffset=0x0)" P-INDEP
;* V604 tmp581 [V604 ] ( 0, 0 ) byref -> zero-ref "field V333._reference (fldOffset=0x0)" P-INDEP
;* V605 tmp582 [V605 ] ( 0, 0 ) int -> zero-ref "field V333._length (fldOffset=0x8)" P-INDEP
;* V606 tmp583 [V606 ] ( 0, 0 ) byref -> zero-ref "field V334._reference (fldOffset=0x0)" P-INDEP
;* V607 tmp584 [V607 ] ( 0, 0 ) int -> zero-ref "field V334._length (fldOffset=0x8)" P-INDEP
; V608 tmp585 [V608,T269] ( 2, 4 ) byref -> r8 "field V336._reference (fldOffset=0x0)" P-INDEP
; V609 tmp586 [V609,T245] ( 3, 6 ) int -> r9 "field V336._length (fldOffset=0x8)" P-INDEP
; V610 tmp587 [V610,T218] ( 3, 6 ) byref -> rsi "field V340._reference (fldOffset=0x0)" P-INDEP
; V611 tmp588 [V611,T246] ( 3, 6 ) int -> rdx "field V340._length (fldOffset=0x8)" P-INDEP
; V612 tmp589 [V612,T270] ( 2, 4 ) byref -> rsi "field V342._reference (fldOffset=0x0)" P-INDEP
; V613 tmp590 [V613,T289] ( 2, 4 ) int -> rcx "field V342._length (fldOffset=0x8)" P-INDEP
;* V614 tmp591 [V614 ] ( 0, 0 ) byref -> zero-ref "field V343._reference (fldOffset=0x0)" P-DEP
;* V615 tmp592 [V615 ] ( 0, 0 ) int -> zero-ref "field V343._length (fldOffset=0x8)" P-DEP
; V616 tmp593 [V616,T271] ( 2, 4 ) byref -> rsi "field V344._reference (fldOffset=0x0)" P-INDEP
; V617 tmp594 [V617,T290] ( 2, 4 ) int -> rax "field V344._length (fldOffset=0x8)" P-INDEP
;* V618 tmp595 [V618 ] ( 0, 0 ) byref -> zero-ref "field V346._reference (fldOffset=0x0)" P-INDEP
;* V619 tmp596 [V619 ] ( 0, 0 ) int -> zero-ref "field V346._length (fldOffset=0x8)" P-INDEP
; V620 tmp597 [V620,T272] ( 2, 4 ) byref -> rsi "field V347._reference (fldOffset=0x0)" P-INDEP
; V621 tmp598 [V621,T291] ( 2, 4 ) int -> rdx "field V347._length (fldOffset=0x8)" P-INDEP
;* V622 tmp599 [V622 ] ( 0, 0 ) byref -> zero-ref "field V348._reference (fldOffset=0x0)" P-INDEP
;* V623 tmp600 [V623 ] ( 0, 0 ) int -> zero-ref "field V348._length (fldOffset=0x8)" P-INDEP
; V624 tmp601 [V624,T19] ( 3, 96 ) ref -> rdi "argument with side effect"
; V625 tmp602 [V625,T205] ( 2, 8 ) int -> rsi "argument with side effect"
; V626 tmp603 [V626,T312] ( 2, 0 ) ref -> rsi "argument with side effect"
; V627 tmp604 [V627,T313] ( 2, 0 ) ref -> rsi "argument with side effect"
-; V628 tmp605 [V628,T129] ( 4, 16 ) long -> r8 "fgMakeTemp is creating a new local variable"
+; V628 tmp605 [V628,T131] ( 4, 16 ) long -> r8 "fgMakeTemp is creating a new local variable"
; V629 tmp606 [V629,T159] ( 3, 12 ) ref -> rdx "arr expr"
; V630 tmp607 [V630,T160] ( 3, 12 ) ref -> rdx "arr expr"
; V631 tmp608 [V631,T314] ( 2, 0 ) ref -> rsi "argument with side effect"
-; V632 cse0 [V632,T56] ( 3, 48 ) long -> rdx "CSE - conservative"
-; V633 cse1 [V633,T123] ( 4, 19 ) long -> [rbp-0x98] spill-single-def "CSE - conservative"
+; V632 cse0 [V632,T57] ( 3, 48 ) long -> rdx "CSE - conservative"
+; V633 cse1 [V633,T125] ( 4, 19 ) long -> [rbp-0x98] spill-single-def "CSE - conservative"
; V634 cse2 [V634,T247] ( 3, 6 ) int -> rdi "CSE - conservative"
; V635 cse3 [V635,T06] ( 18,204 ) ref -> rdi multi-def "CSE - aggressive"
-; V636 cse4 [V636,T50] ( 3, 48 ) ref -> [rbp-0x128] spill-single-def "CSE - conservative"
+; V636 cse4 [V636,T51] ( 3, 48 ) ref -> [rbp-0x128] spill-single-def "CSE - conservative"
; V637 cse5 [V637,T22] ( 8, 80 ) int -> rdi "CSE - moderate"
; V638 rat0 [V638,T165] ( 3, 12 ) int -> r8 "ReplaceWithLclVar is creating a new local variable"
; V639 rat1 [V639,T166] ( 3, 12 ) long -> rsi "ReplaceWithLclVar is creating a new local variable"
; V640 rat2 [V640,T167] ( 3, 12 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
; V641 rat3 [V641,T20] ( 3, 96 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
; V642 rat4 [V642,T21] ( 3, 96 ) int -> rdx "ReplaceWithLclVar is creating a new local variable"
; TEMP_01 long -> [rbp-0x130]
;
; Lcl frame size = 264
G_M51644_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 264
vzeroupper
lea rbp, [rsp+0x130]
mov qword ptr [rbp-0x30], rdi
mov r14, rsi
mov r15d, edx
mov r13, rcx
mov r12, r8
mov rbx, r9
;; size=47 bbWeight=1 PerfScore 10.00
G_M51644_IG02:
mov rax, gword ptr [r13+0x90]
mov gword ptr [rbp-0xA0], rax
mov rdi, rax
mov rcx, qword ptr [rax]
mov rcx, qword ptr [rcx+0x40]
mov qword ptr [rbp-0x98], rcx
call [rcx+0x38]System.Globalization.Calendar:get_ID():ushort:this
cmp eax, 8
sete al
movzx rax, al
mov dword ptr [rbp-0x34], eax
mov rdi, gword ptr [rbp-0xA0]
mov rcx, qword ptr [rbp-0x98]
call [rcx+0x38]System.Globalization.Calendar:get_ID():ushort:this
cmp eax, 3
sete al
movzx rax, al
mov dword ptr [rbp-0x38], eax
mov dword ptr [rbp-0x3C], 1
xor edx, edx
test r15d, r15d
- jle G_M51644_IG181
+ jle G_M51644_IG185
;; size=93 bbWeight=1 PerfScore 23.75
G_M51644_IG03:
cmp edx, r15d
- jae G_M51644_IG182
+ jae G_M51644_IG186
mov dword ptr [rbp-0x40], edx
mov edi, edx
movzx rsi, word ptr [r14+2*rdi]
mov dword ptr [rbp-0x48], esi
cmp esi, 75
ja G_M51644_IG08
;; size=31 bbWeight=4 PerfScore 27.00
G_M51644_IG04:
cmp esi, 47
ja SHORT G_M51644_IG06
cmp esi, 37
ja SHORT G_M51644_IG05
cmp esi, 34
- je G_M51644_IG165
+ je G_M51644_IG169
cmp esi, 37
- jne G_M51644_IG174
- jmp G_M51644_IG166
+ jne G_M51644_IG178
+ jmp G_M51644_IG170
;; size=33 bbWeight=2 PerfScore 14.00
G_M51644_IG05:
cmp esi, 39
- je G_M51644_IG165
+ je G_M51644_IG169
cmp esi, 47
- jne G_M51644_IG174
+ jne G_M51644_IG178
mov rdi, r13
mov rsi, 0xD1FFAB1E ; code for System.Globalization.DateTimeFormatInfo:DateSeparatorTChar[ubyte]():System.ReadOnlySpan`1[ubyte]:this
call [rsi]System.Globalization.DateTimeFormatInfo:DateSeparatorTChar[ubyte]():System.ReadOnlySpan`1[ubyte]:this
- jmp G_M51644_IG163
+ jmp G_M51644_IG167
;; size=38 bbWeight=2 PerfScore 16.00
G_M51644_IG06:
cmp esi, 70
ja SHORT G_M51644_IG07
cmp esi, 58
- je G_M51644_IG161
+ je G_M51644_IG165
cmp esi, 70
je G_M51644_IG48
- jmp G_M51644_IG174
+ jmp G_M51644_IG178
;; size=28 bbWeight=2 PerfScore 11.50
G_M51644_IG07:
cmp esi, 72
je G_M51644_IG30
cmp esi, 75
- jne G_M51644_IG174
+ jne G_M51644_IG178
mov dword ptr [rbp-0x44], 1
mov rdi, qword ptr [rbp-0x30]
mov rsi, r12
mov rdx, rbx
mov r9, 0xD1FFAB1E ; code for System.DateTimeFormat:FormatCustomizedRoundripTimeZone[ubyte](System.DateTime,System.TimeSpan,byref)
call [r9]System.DateTimeFormat:FormatCustomizedRoundripTimeZone[ubyte](System.DateTime,System.TimeSpan,byref)
- jmp G_M51644_IG180
+ jmp G_M51644_IG184
;; size=53 bbWeight=2 PerfScore 20.50
G_M51644_IG08:
cmp esi, 109
ja SHORT G_M51644_IG11
cmp esi, 92
ja SHORT G_M51644_IG09
cmp esi, 77
je G_M51644_IG92
cmp esi, 92
- jne G_M51644_IG174
- jmp G_M51644_IG169
+ jne G_M51644_IG178
+ jmp G_M51644_IG173
;; size=33 bbWeight=2 PerfScore 14.00
G_M51644_IG09:
lea r8d, [rsi-0x64]
cmp r8d, 4
ja SHORT G_M51644_IG10
mov edi, r8d
lea r8, [reloc @RWD00]
mov r8d, dword ptr [r8+4*rdi]
lea r9, G_M51644_IG02
add r8, r9
jmp r8
;; size=37 bbWeight=2 PerfScore 15.50
G_M51644_IG10:
cmp esi, 109
- jne G_M51644_IG174
+ jne G_M51644_IG178
jmp G_M51644_IG36
;; size=14 bbWeight=2 PerfScore 6.50
G_M51644_IG11:
cmp esi, 116
ja SHORT G_M51644_IG12
cmp esi, 115
je G_M51644_IG42
cmp esi, 116
- jne G_M51644_IG174
+ jne G_M51644_IG178
jmp G_M51644_IG61
;; size=28 bbWeight=2 PerfScore 11.50
G_M51644_IG12:
cmp esi, 121
je G_M51644_IG128
cmp esi, 122
jne SHORT G_M51644_IG13
mov rdi, r14
mov esi, r15d
mov edx, dword ptr [rbp-0x40]
mov ecx, dword ptr [rbp-0x48]
mov r8, 0xD1FFAB1E ; code for System.DateTimeFormat:ParseRepeatPattern(System.ReadOnlySpan`1[ushort],int,ushort):int
call [r8]System.DateTimeFormat:ParseRepeatPattern(System.ReadOnlySpan`1[ushort],int,ushort):int
mov rdi, qword ptr [rbp-0x30]
mov rsi, r12
mov dword ptr [rbp-0x44], eax
mov edx, eax
mov ecx, dword ptr [rbp-0x3C]
mov r8, rbx
mov r9, 0xD1FFAB1E ; code for System.DateTimeFormat:FormatCustomizedTimeZone[ubyte](System.DateTime,System.TimeSpan,int,ubyte,byref)
call [r9]System.DateTimeFormat:FormatCustomizedTimeZone[ubyte](System.DateTime,System.TimeSpan,int,ubyte,byref)
- jmp G_M51644_IG180
+ jmp G_M51644_IG184
;; size=75 bbWeight=2 PerfScore 34.50
G_M51644_IG13:
mov esi, dword ptr [rbp-0x48]
- jmp G_M51644_IG174
+ jmp G_M51644_IG178
align [2 bytes for IG15]
;; size=10 bbWeight=1 PerfScore 3.00
G_M51644_IG14:
mov edx, dword ptr [rbp-0x40]
lea edi, [rdx+0x01]
jmp SHORT G_M51644_IG16
;; size=8 bbWeight=2 PerfScore 7.00
G_M51644_IG15:
inc edi
;; size=2 bbWeight=8 PerfScore 2.00
G_M51644_IG16:
cmp edi, r15d
jae SHORT G_M51644_IG17
mov r8d, edi
movzx r8, word ptr [r14+2*r8]
cmp r8d, esi
je SHORT G_M51644_IG15
;; size=18 bbWeight=16 PerfScore 76.00
G_M51644_IG17:
mov dword ptr [rbp-0x40], edx
sub edi, edx
mov dword ptr [rbp-0x44], edi
mov rdi, gword ptr [rbp-0xA0]
mov rsi, qword ptr [rbp-0x30]
mov r9, qword ptr [rdi]
mov r9, qword ptr [r9+0x58]
call [r9+0x10]System.Globalization.Calendar:GetEra(System.DateTime):int:this
mov esi, eax
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Globalization.DateTimeFormatInfo:GetEraName(int):System.String:this
call [rax]System.Globalization.DateTimeFormatInfo:GetEraName(int):System.String:this
test rax, rax
jne SHORT G_M51644_IG18
xor rcx, rcx
xor r8d, r8d
jmp SHORT G_M51644_IG19
- align [0 bytes for IG23]
- ;; size=59 bbWeight=2 PerfScore 37.50
+ align [14 bytes for IG23]
+ ;; size=73 bbWeight=2 PerfScore 37.50
G_M51644_IG18:
lea rcx, bword ptr [rax+0x0C]
mov r8d, dword ptr [rax+0x08]
mov rax, rcx
mov ecx, r8d
mov r8d, ecx
mov rcx, rax
;; size=20 bbWeight=2 PerfScore 7.00
G_M51644_IG19:
mov rax, rcx
mov bword ptr [rbp-0x100], rax
mov ecx, r8d
mov dword ptr [rbp-0x78], ecx
mov rsi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rsi]
mov gword ptr [rbp-0xA8], rdi
mov rsi, rax
mov edx, ecx
mov r9, 0xD1FFAB1E ; code for System.Text.UTF8Encoding:GetByteCount(System.ReadOnlySpan`1[ushort]):int:this
call [r9]System.Text.UTF8Encoding:GetByteCount(System.ReadOnlySpan`1[ushort]):int:this
mov edi, dword ptr [rbx+0x08]
mov rcx, bword ptr [rbx+0x10]
mov esi, dword ptr [rbx+0x18]
mov edx, edi
mov r8d, eax
add rdx, r8
cmp rdx, rsi
ja SHORT G_M51644_IG20
lea esi, [rdi+rax]
mov dword ptr [rbx+0x08], esi
mov edx, edi
add rcx, rdx
jmp SHORT G_M51644_IG21
;; size=90 bbWeight=2 PerfScore 43.00
G_M51644_IG20:
mov rdi, rbx
mov esi, eax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
call [rax]System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
mov rcx, rax
mov eax, edx
;; size=22 bbWeight=2 PerfScore 8.50
G_M51644_IG21:
mov r8d, eax
mov rsi, bword ptr [rbp-0x100]
mov edx, dword ptr [rbp-0x78]
mov rdi, gword ptr [rbp-0xA8]
mov rax, 0xD1FFAB1E ; code for System.Text.UTF8Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
+ cmp dword ptr [rdi], edi
call [rax]System.Text.UTF8Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
- jmp G_M51644_IG180
- ;; size=37 bbWeight=2 PerfScore 17.00
+ jmp G_M51644_IG184
+ ;; size=39 bbWeight=2 PerfScore 23.00
G_M51644_IG22:
mov edx, dword ptr [rbp-0x40]
lea edi, [rdx+0x01]
jmp SHORT G_M51644_IG24
;; size=8 bbWeight=2 PerfScore 7.00
G_M51644_IG23:
inc edi
;; size=2 bbWeight=8 PerfScore 2.00
G_M51644_IG24:
cmp edi, r15d
jae SHORT G_M51644_IG25
mov r8d, edi
movzx r8, word ptr [r14+2*r8]
cmp r8d, esi
je SHORT G_M51644_IG23
;; size=18 bbWeight=16 PerfScore 76.00
G_M51644_IG25:
mov dword ptr [rbp-0x40], edx
mov r8d, edi
sub r8d, edx
mov dword ptr [rbp-0x44], r8d
lea rdi, [rbp-0x30]
mov rsi, 0xD1FFAB1E ; code for System.DateTime:get_Hour():int:this
call [rsi]System.DateTime:get_Hour():int:this
mov esi, eax
cmp esi, 12
jle SHORT G_M51644_IG26
add esi, -12
jmp SHORT G_M51644_IG27
- align [0 bytes for IG31]
- ;; size=41 bbWeight=2 PerfScore 20.00
+ align [7 bytes for IG31]
+ ;; size=48 bbWeight=2 PerfScore 20.00
G_M51644_IG26:
test esi, esi
jne SHORT G_M51644_IG27
mov esi, 12
;; size=9 bbWeight=2 PerfScore 3.00
G_M51644_IG27:
mov eax, dword ptr [rbp-0x44]
cmp eax, 2
jle SHORT G_M51644_IG28
mov edx, 2
mov dword ptr [rbp-0x44], eax
jmp SHORT G_M51644_IG29
;; size=18 bbWeight=2 PerfScore 11.00
G_M51644_IG28:
mov dword ptr [rbp-0x44], eax
mov edx, eax
;; size=5 bbWeight=2 PerfScore 2.50
G_M51644_IG29:
mov rdi, rbx
mov rcx, 0xD1FFAB1E ; code for System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
call [rcx]System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
- jmp G_M51644_IG180
+ jmp G_M51644_IG184
;; size=20 bbWeight=2 PerfScore 11.00
G_M51644_IG30:
mov edx, dword ptr [rbp-0x40]
lea edi, [rdx+0x01]
jmp SHORT G_M51644_IG32
;; size=8 bbWeight=2 PerfScore 7.00
G_M51644_IG31:
inc edi
;; size=2 bbWeight=8 PerfScore 2.00
G_M51644_IG32:
cmp edi, r15d
jae SHORT G_M51644_IG33
mov r8d, edi
movzx r8, word ptr [r14+2*r8]
cmp r8d, esi
je SHORT G_M51644_IG31
;; size=18 bbWeight=16 PerfScore 76.00
G_M51644_IG33:
mov dword ptr [rbp-0x40], edx
sub edi, edx
mov dword ptr [rbp-0x44], edi
lea rdi, [rbp-0x30]
mov rsi, 0xD1FFAB1E ; code for System.DateTime:get_Hour():int:this
call [rsi]System.DateTime:get_Hour():int:this
mov esi, eax
mov eax, dword ptr [rbp-0x44]
cmp eax, 2
jle SHORT G_M51644_IG34
mov edx, 2
mov dword ptr [rbp-0x44], eax
jmp SHORT G_M51644_IG35
align [0 bytes for IG37]
;; size=44 bbWeight=2 PerfScore 23.50
G_M51644_IG34:
mov dword ptr [rbp-0x44], eax
mov edx, eax
;; size=5 bbWeight=2 PerfScore 2.50
G_M51644_IG35:
mov rdi, rbx
mov rcx, 0xD1FFAB1E ; code for System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
call [rcx]System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
- jmp G_M51644_IG180
+ jmp G_M51644_IG184
;; size=20 bbWeight=2 PerfScore 11.00
G_M51644_IG36:
mov edx, dword ptr [rbp-0x40]
lea edi, [rdx+0x01]
jmp SHORT G_M51644_IG38
;; size=8 bbWeight=2 PerfScore 7.00
G_M51644_IG37:
inc edi
;; size=2 bbWeight=8 PerfScore 2.00
G_M51644_IG38:
cmp edi, r15d
jae SHORT G_M51644_IG39
mov r8d, edi
movzx r8, word ptr [r14+2*r8]
cmp r8d, esi
je SHORT G_M51644_IG37
;; size=18 bbWeight=16 PerfScore 76.00
G_M51644_IG39:
mov dword ptr [rbp-0x40], edx
sub edi, edx
mov dword ptr [rbp-0x44], edi
lea rdi, [rbp-0x30]
mov rsi, 0xD1FFAB1E ; code for System.DateTime:get_Minute():int:this
call [rsi]System.DateTime:get_Minute():int:this
mov esi, eax
mov eax, dword ptr [rbp-0x44]
cmp eax, 2
jle SHORT G_M51644_IG40
mov edx, 2
mov dword ptr [rbp-0x44], eax
jmp SHORT G_M51644_IG41
align [0 bytes for IG43]
;; size=44 bbWeight=2 PerfScore 23.50
G_M51644_IG40:
mov dword ptr [rbp-0x44], eax
mov edx, eax
;; size=5 bbWeight=2 PerfScore 2.50
G_M51644_IG41:
mov rdi, rbx
mov rcx, 0xD1FFAB1E ; code for System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
call [rcx]System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
- jmp G_M51644_IG180
+ jmp G_M51644_IG184
;; size=20 bbWeight=2 PerfScore 11.00
G_M51644_IG42:
mov edx, dword ptr [rbp-0x40]
lea edi, [rdx+0x01]
jmp SHORT G_M51644_IG44
;; size=8 bbWeight=2 PerfScore 7.00
G_M51644_IG43:
inc edi
;; size=2 bbWeight=8 PerfScore 2.00
G_M51644_IG44:
cmp edi, r15d
jae SHORT G_M51644_IG45
mov r8d, edi
movzx r8, word ptr [r14+2*r8]
cmp r8d, esi
je SHORT G_M51644_IG43
;; size=18 bbWeight=16 PerfScore 76.00
G_M51644_IG45:
mov dword ptr [rbp-0x40], edx
sub edi, edx
mov r8d, edi
mov rdi, 0xD1FFAB1E
and rdi, qword ptr [rbp-0x30]
mov rsi, 0xD1FFAB1E
mov rax, rdi
mul rdx:rax, rsi
mov rsi, rdx
shr rsi, 22
mov rdx, 0xD1FFAB1E
mov rax, rsi
mul rdx:rax, rdx
imul rdi, rdx, 60
sub rsi, rdi
cmp r8d, 2
jle SHORT G_M51644_IG46
mov edx, 2
mov dword ptr [rbp-0x44], r8d
jmp SHORT G_M51644_IG47
- align [9 bytes for IG49]
- ;; size=94 bbWeight=2 PerfScore 36.50
+ align [2 bytes for IG49]
+ ;; size=87 bbWeight=2 PerfScore 36.50
G_M51644_IG46:
mov dword ptr [rbp-0x44], r8d
mov edx, r8d
;; size=7 bbWeight=2 PerfScore 2.50
G_M51644_IG47:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
call [rax]System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
- jmp G_M51644_IG180
+ jmp G_M51644_IG184
;; size=20 bbWeight=2 PerfScore 11.00
G_M51644_IG48:
mov edx, dword ptr [rbp-0x40]
lea edi, [rdx+0x01]
jmp SHORT G_M51644_IG50
;; size=8 bbWeight=2 PerfScore 7.00
G_M51644_IG49:
inc edi
mov esi, dword ptr [rbp-0x48]
;; size=5 bbWeight=8 PerfScore 10.00
G_M51644_IG50:
cmp edi, r15d
jae SHORT G_M51644_IG52
mov r8d, edi
movzx r8, word ptr [r14+2*r8]
cmp r8d, esi
je SHORT G_M51644_IG49
;; size=18 bbWeight=16 PerfScore 76.00
G_M51644_IG51:
mov esi, dword ptr [rbp-0x48]
;; size=3 bbWeight=8 PerfScore 8.00
G_M51644_IG52:
mov dword ptr [rbp-0x40], edx
mov r8d, edi
sub r8d, edx
mov edi, r8d
cmp edi, 7
- jg G_M51644_IG183
+ jg G_M51644_IG187
mov r8, 0xD1FFAB1E
and r8, qword ptr [rbp-0x30]
mov r9, 0xD1FFAB1E
mov rax, r9
imul rdx:rax, r8
add rdx, r8
mov rax, rdx
shr rax, 63
sar rdx, 23
add rax, rdx
imul rax, rax, 0xD1FFAB1E
sub r8, rax
mov qword ptr [rbp-0x130], r8
mov dword ptr [rbp-0x44], edi
mov eax, edi
neg eax
add eax, 7
vxorps xmm1, xmm1, xmm1
vcvtsi2sd xmm1, xmm1, eax
vmovsd xmm0, qword ptr [reloc @RWD24]
call System.Math:Pow(double,double):double
vcvttsd2si rcx, xmm0
mov rax, qword ptr [rbp-0x130]
cqo
idiv rdx:rax, rcx
mov rsi, rax
cmp dword ptr [rbp-0x48], 102
jne SHORT G_M51644_IG55
mov rdx, 0xD1FFAB1E ; data for System.DateTimeFormat:fixedNumberFormats
mov rdx, gword ptr [rdx]
mov eax, dword ptr [rbp-0x44]
lea ecx, [rax-0x01]
cmp ecx, dword ptr [rdx+0x08]
- jae G_M51644_IG182
+ jae G_M51644_IG186
mov dword ptr [rbp-0x44], eax
lea ecx, [rax-0x01]
mov rdx, gword ptr [rdx+8*rcx+0x10]
test rdx, rdx
jne SHORT G_M51644_IG53
xor rdx, rdx
xor ecx, ecx
jmp SHORT G_M51644_IG54
align [3 bytes for IG56]
;; size=195 bbWeight=2 PerfScore 239.17
G_M51644_IG53:
lea rcx, bword ptr [rdx+0x0C]
mov edx, dword ptr [rdx+0x08]
mov edi, edx
mov rdx, rcx
mov ecx, edi
;; size=14 bbWeight=2 PerfScore 6.50
G_M51644_IG54:
mov rdi, rbx
mov r8, 0xD1FFAB1E ; code for System.DateTimeFormat:FormatFraction[ubyte](byref,int,System.ReadOnlySpan`1[ushort])
call [r8]System.DateTimeFormat:FormatFraction[ubyte](byref,int,System.ReadOnlySpan`1[ushort])
- jmp G_M51644_IG180
+ jmp G_M51644_IG184
;; size=21 bbWeight=2 PerfScore 11.00
G_M51644_IG55:
mov r8d, dword ptr [rbp-0x44]
mov ecx, r8d
mov dword ptr [rbp-0x44], r8d
test r8d, r8d
jle SHORT G_M51644_IG57
;; size=16 bbWeight=2 PerfScore 7.00
G_M51644_IG56:
mov rdx, 0xD1FFAB1E
mov rax, rdx
imul rdx:rax, rsi
mov rdi, rdx
shr rdi, 63
sar rdx, 2
add rdx, rdi
lea rdi, [rdx+4*rdx]
add rdi, rdi
mov rax, rsi
sub rax, rdi
jne SHORT G_M51644_IG57
mov rsi, rdx
dec ecx
test ecx, ecx
jg SHORT G_M51644_IG56
;; size=54 bbWeight=16 PerfScore 144.00
G_M51644_IG57:
test ecx, ecx
jle SHORT G_M51644_IG60
mov rdx, 0xD1FFAB1E ; data for System.DateTimeFormat:fixedNumberFormats
mov rdx, gword ptr [rdx]
lea edi, [rcx-0x01]
cmp edi, dword ptr [rdx+0x08]
- jae G_M51644_IG182
+ jae G_M51644_IG186
dec ecx
mov rdx, gword ptr [rdx+8*rcx+0x10]
test rdx, rdx
jne SHORT G_M51644_IG58
xor rdx, rdx
xor ecx, ecx
jmp SHORT G_M51644_IG59
- align [13 bytes for IG62]
- ;; size=60 bbWeight=2 PerfScore 28.00
+ align [0 bytes for IG62]
+ ;; size=47 bbWeight=2 PerfScore 28.00
G_M51644_IG58:
lea rcx, bword ptr [rdx+0x0C]
mov edx, dword ptr [rdx+0x08]
mov edi, edx
mov rdx, rcx
mov ecx, edi
;; size=14 bbWeight=2 PerfScore 6.50
G_M51644_IG59:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:FormatFraction[ubyte](byref,int,System.ReadOnlySpan`1[ushort])
call [rax]System.DateTimeFormat:FormatFraction[ubyte](byref,int,System.ReadOnlySpan`1[ushort])
- jmp G_M51644_IG180
+ jmp G_M51644_IG184
;; size=20 bbWeight=2 PerfScore 11.00
G_M51644_IG60:
cmp dword ptr [rbx+0x08], 0
- jle G_M51644_IG180
+ jle G_M51644_IG184
mov edi, dword ptr [rbx+0x08]
dec edi
mov eax, edi
lea rcx, bword ptr [rbx+0x10]
cmp eax, dword ptr [rcx+0x08]
- jae G_M51644_IG182
+ jae G_M51644_IG186
mov rcx, bword ptr [rcx]
cmp byte ptr [rcx+rax], 46
- jne G_M51644_IG180
+ jne G_M51644_IG184
mov dword ptr [rbx+0x08], edi
- jmp G_M51644_IG180
+ jmp G_M51644_IG184
;; size=51 bbWeight=2 PerfScore 40.00
G_M51644_IG61:
mov edx, dword ptr [rbp-0x40]
lea r8d, [rdx+0x01]
jmp SHORT G_M51644_IG63
;; size=9 bbWeight=2 PerfScore 7.00
G_M51644_IG62:
inc r8d
;; size=3 bbWeight=8 PerfScore 2.00
G_M51644_IG63:
cmp r8d, r15d
jae SHORT G_M51644_IG64
cmp r8d, r15d
- jae G_M51644_IG182
+ jae G_M51644_IG186
mov edi, r8d
movzx rdi, word ptr [r14+2*rdi]
cmp edi, esi
je SHORT G_M51644_IG62
;; size=26 bbWeight=16 PerfScore 96.00
G_M51644_IG64:
mov dword ptr [rbp-0x40], edx
sub r8d, edx
mov dword ptr [rbp-0x44], r8d
cmp r8d, 1
jne G_M51644_IG75
lea rdi, [rbp-0x30]
mov rsi, 0xD1FFAB1E ; code for System.DateTime:get_Hour():int:this
call [rsi]System.DateTime:get_Hour():int:this
cmp eax, 12
jl SHORT G_M51644_IG67
cmp gword ptr [r13+0x38], 0
jne SHORT G_M51644_IG66
mov rax, gword ptr [r13+0x08]
mov gword ptr [rbp-0xB0], rax
mov rsi, gword ptr [rax+0x138]
test rsi, rsi
jne SHORT G_M51644_IG65
mov rsi, gword ptr [rax+0x10]
mov rdi, rax
mov edx, 41
xor rcx, rcx
mov r8, 0xD1FFAB1E ; code for System.Globalization.CultureData:IcuGetLocaleInfo(System.String,uint,System.String):System.String:this
call [r8]System.Globalization.CultureData:IcuGetLocaleInfo(System.String,uint,System.String):System.String:this
mov rsi, rax
mov gword ptr [rbp-0xB8], rsi
mov rdi, gword ptr [rbp-0xB0]
lea rdi, bword ptr [rdi+0x138]
call CORINFO_HELP_ASSIGN_REF
mov rsi, gword ptr [rbp-0xB8]
;; size=134 bbWeight=2 PerfScore 59.00
G_M51644_IG65:
lea rdi, bword ptr [r13+0x38]
call CORINFO_HELP_ASSIGN_REF
;; size=9 bbWeight=2 PerfScore 3.00
G_M51644_IG66:
mov rax, gword ptr [r13+0x38]
jmp SHORT G_M51644_IG70
- align [5 bytes for IG80]
- ;; size=11 bbWeight=2 PerfScore 8.00
+ align [2 bytes for IG80]
+ ;; size=8 bbWeight=2 PerfScore 8.00
G_M51644_IG67:
cmp gword ptr [r13+0x30], 0
jne SHORT G_M51644_IG69
mov rax, gword ptr [r13+0x08]
mov gword ptr [rbp-0xC0], rax
mov rsi, gword ptr [rax+0x130]
test rsi, rsi
jne SHORT G_M51644_IG68
mov rsi, gword ptr [rax+0x10]
mov rdi, rax
mov edx, 40
xor rcx, rcx
mov r8, 0xD1FFAB1E ; code for System.Globalization.CultureData:IcuGetLocaleInfo(System.String,uint,System.String):System.String:this
call [r8]System.Globalization.CultureData:IcuGetLocaleInfo(System.String,uint,System.String):System.String:this
mov rsi, rax
mov gword ptr [rbp-0xC8], rsi
mov rdi, gword ptr [rbp-0xC0]
lea rdi, bword ptr [rdi+0x130]
call CORINFO_HELP_ASSIGN_REF
mov rsi, gword ptr [rbp-0xC8]
;; size=93 bbWeight=2 PerfScore 42.00
G_M51644_IG68:
lea rdi, bword ptr [r13+0x30]
call CORINFO_HELP_ASSIGN_REF
;; size=9 bbWeight=2 PerfScore 3.00
G_M51644_IG69:
mov rax, gword ptr [r13+0x30]
;; size=4 bbWeight=2 PerfScore 4.00
G_M51644_IG70:
cmp dword ptr [rax+0x08], 0
- jle G_M51644_IG180
+ jle G_M51644_IG184
cmp dword ptr [rax+0x08], 0
- jbe G_M51644_IG182
+ jbe G_M51644_IG186
movzx rax, word ptr [rax+0x0C]
cmp eax, 127
ja SHORT G_M51644_IG72
movzx rsi, al
mov edi, dword ptr [rbx+0x08]
mov rax, bword ptr [rbx+0x10]
mov ecx, dword ptr [rbx+0x18]
cmp edi, ecx
jae SHORT G_M51644_IG71
cmp edi, ecx
- jae G_M51644_IG182
+ jae G_M51644_IG186
mov ecx, edi
mov byte ptr [rax+rcx], sil
inc edi
mov dword ptr [rbx+0x08], edi
- jmp G_M51644_IG180
+ jmp G_M51644_IG184
;; size=71 bbWeight=2 PerfScore 49.00
G_M51644_IG71:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ValueListBuilder`1[ubyte]:AddWithResize(ubyte):this
call [rax]System.Collections.Generic.ValueListBuilder`1[ubyte]:AddWithResize(ubyte):this
- jmp G_M51644_IG180
+ jmp G_M51644_IG184
;; size=20 bbWeight=2 PerfScore 11.00
G_M51644_IG72:
lea edi, [rax-0xD800]
cmp edi, 0x7FF
- jbe G_M51644_IG186
+ jbe G_M51644_IG190
mov dword ptr [rbp-0x8C], eax
mov edi, eax
mov rcx, 0xD1FFAB1E ; code for System.Text.UnicodeUtility:GetUtf8SequenceLength(uint):int
call [rcx]System.Text.UnicodeUtility:GetUtf8SequenceLength(uint):int
mov edi, dword ptr [rbx+0x08]
mov rsi, bword ptr [rbx+0x10]
mov ecx, dword ptr [rbx+0x18]
mov edx, edi
mov r8d, eax
add rdx, r8
cmp rdx, rcx
ja SHORT G_M51644_IG73
lea ecx, [rdi+rax]
mov dword ptr [rbx+0x08], ecx
mov ecx, edi
add rsi, rcx
mov edx, eax
jmp SHORT G_M51644_IG74
;; size=76 bbWeight=2 PerfScore 37.00
G_M51644_IG73:
mov rdi, rbx
mov esi, eax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
call [rax]System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
mov rsi, rax
;; size=20 bbWeight=2 PerfScore 8.00
G_M51644_IG74:
lea rcx, [rbp-0x60]
mov edi, dword ptr [rbp-0x8C]
mov rax, 0xD1FFAB1E ; code for System.Text.Rune:TryEncodeToUtf8(System.Text.Rune,System.Span`1[ubyte],byref):ubyte
call [rax]System.Text.Rune:TryEncodeToUtf8(System.Text.Rune,System.Span`1[ubyte],byref):ubyte
test eax, eax
- je G_M51644_IG187
- jmp G_M51644_IG180
+ je G_M51644_IG191
+ jmp G_M51644_IG184
;; size=35 bbWeight=2 PerfScore 16.00
G_M51644_IG75:
lea rdi, [rbp-0x30]
mov rsi, 0xD1FFAB1E ; code for System.DateTime:get_Hour():int:this
call [rsi]System.DateTime:get_Hour():int:this
cmp eax, 12
jl SHORT G_M51644_IG76
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Globalization.DateTimeFormatInfo:PMDesignatorTChar[ubyte]():System.ReadOnlySpan`1[ubyte]:this
call [rax]System.Globalization.DateTimeFormatInfo:PMDesignatorTChar[ubyte]():System.ReadOnlySpan`1[ubyte]:this
jmp SHORT G_M51644_IG77
;; size=38 bbWeight=2 PerfScore 21.00
G_M51644_IG76:
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Globalization.DateTimeFormatInfo:AMDesignatorTChar[ubyte]():System.ReadOnlySpan`1[ubyte]:this
call [rax]System.Globalization.DateTimeFormatInfo:AMDesignatorTChar[ubyte]():System.ReadOnlySpan`1[ubyte]:this
;; size=15 bbWeight=2 PerfScore 7.00
G_M51644_IG77:
mov esi, dword ptr [rbx+0x08]
mov rdi, bword ptr [rbx+0x10]
mov ecx, dword ptr [rbx+0x18]
cmp edx, 1
jne SHORT G_M51644_IG78
cmp esi, ecx
jae SHORT G_M51644_IG78
cmp esi, ecx
- jae G_M51644_IG182
+ jae G_M51644_IG186
mov edx, esi
movzx rax, byte ptr [rax]
mov byte ptr [rdi+rdx], al
inc esi
mov dword ptr [rbx+0x08], esi
- jmp G_M51644_IG180
+ jmp G_M51644_IG184
;; size=45 bbWeight=2 PerfScore 32.50
G_M51644_IG78:
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendMultiChar(System.ReadOnlySpan`1[ubyte]):this
call [rax]System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendMultiChar(System.ReadOnlySpan`1[ubyte]):this
- jmp G_M51644_IG180
+ jmp G_M51644_IG184
;; size=23 bbWeight=2 PerfScore 11.50
G_M51644_IG79:
mov edx, dword ptr [rbp-0x40]
lea edi, [rdx+0x01]
jmp SHORT G_M51644_IG81
;; size=8 bbWeight=2 PerfScore 7.00
G_M51644_IG80:
inc edi
;; size=2 bbWeight=8 PerfScore 2.00
G_M51644_IG81:
cmp edi, r15d
jae SHORT G_M51644_IG82
cmp edi, r15d
- jae G_M51644_IG182
+ jae G_M51644_IG186
mov ecx, edi
movzx rcx, word ptr [r14+2*rcx]
cmp ecx, esi
je SHORT G_M51644_IG80
;; size=25 bbWeight=16 PerfScore 96.00
G_M51644_IG82:
mov dword ptr [rbp-0x40], edx
sub edi, edx
mov ecx, edi
mov dword ptr [rbp-0x44], ecx
cmp ecx, 2
jg SHORT G_M51644_IG84
mov rdi, gword ptr [rbp-0xA0]
mov rsi, qword ptr [rbp-0x30]
mov r8, qword ptr [rdi]
mov r8, qword ptr [r8+0x50]
call [r8+0x18]System.Globalization.Calendar:GetDayOfMonth(System.DateTime):int:this
cmp dword ptr [rbp-0x34], 0
je SHORT G_M51644_IG83
mov rdi, rbx
mov esi, eax
mov rax, 0xD1FFAB1E ; code for System.Globalization.HebrewNumber:Append[ubyte](byref,int)
call [rax]System.Globalization.HebrewNumber:Append[ubyte](byref,int)
jmp G_M51644_IG91
- align [9 bytes for IG93]
- ;; size=74 bbWeight=2 PerfScore 43.00
+ align [7 bytes for IG93]
+ ;; size=72 bbWeight=2 PerfScore 43.00
G_M51644_IG83:
mov rdi, rbx
mov esi, eax
mov edx, dword ptr [rbp-0x44]
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
call [rax]System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
jmp G_M51644_IG91
;; size=25 bbWeight=2 PerfScore 13.50
G_M51644_IG84:
mov rdi, gword ptr [rbp-0xA0]
mov rsi, qword ptr [rbp-0x30]
mov r8, qword ptr [rdi]
mov r8, qword ptr [r8+0x50]
call [r8+0x20]System.Globalization.Calendar:GetDayOfWeek(System.DateTime):int:this
cmp dword ptr [rbp-0x44], 3
jne SHORT G_M51644_IG85
mov rdi, r13
mov esi, eax
mov rax, 0xD1FFAB1E ; code for System.Globalization.DateTimeFormatInfo:GetAbbreviatedDayName(int):System.String:this
call [rax]System.Globalization.DateTimeFormatInfo:GetAbbreviatedDayName(int):System.String:this
jmp SHORT G_M51644_IG86
;; size=47 bbWeight=2 PerfScore 35.50
G_M51644_IG85:
mov rdi, r13
mov esi, eax
mov rax, 0xD1FFAB1E ; code for System.Globalization.DateTimeFormatInfo:GetDayName(int):System.String:this
call [rax]System.Globalization.DateTimeFormatInfo:GetDayName(int):System.String:this
;; size=17 bbWeight=2 PerfScore 7.50
G_M51644_IG86:
test rax, rax
jne SHORT G_M51644_IG87
xor rcx, rcx
xor r8d, r8d
jmp SHORT G_M51644_IG88
;; size=12 bbWeight=2 PerfScore 7.50
G_M51644_IG87:
lea rcx, bword ptr [rax+0x0C]
mov r8d, dword ptr [rax+0x08]
mov rax, rcx
mov ecx, r8d
mov r8d, ecx
mov rcx, rax
;; size=20 bbWeight=2 PerfScore 7.00
G_M51644_IG88:
mov rax, rcx
mov bword ptr [rbp-0x108], rax
mov ecx, r8d
mov dword ptr [rbp-0x7C], ecx
mov rsi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rsi]
mov gword ptr [rbp-0xD0], rdi
mov rsi, rax
mov edx, ecx
mov r9, 0xD1FFAB1E ; code for System.Text.UTF8Encoding:GetByteCount(System.ReadOnlySpan`1[ushort]):int:this
call [r9]System.Text.UTF8Encoding:GetByteCount(System.ReadOnlySpan`1[ushort]):int:this
mov edi, dword ptr [rbx+0x08]
mov rcx, bword ptr [rbx+0x10]
mov esi, dword ptr [rbx+0x18]
mov edx, edi
mov r8d, eax
add rdx, r8
cmp rdx, rsi
ja SHORT G_M51644_IG89
lea esi, [rdi+rax]
mov dword ptr [rbx+0x08], esi
mov edx, edi
add rcx, rdx
jmp SHORT G_M51644_IG90
;; size=90 bbWeight=2 PerfScore 43.00
G_M51644_IG89:
mov rdi, rbx
mov esi, eax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
call [rax]System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
mov rcx, rax
mov eax, edx
;; size=22 bbWeight=2 PerfScore 8.50
G_M51644_IG90:
mov r8d, eax
mov rsi, bword ptr [rbp-0x108]
mov edx, dword ptr [rbp-0x7C]
mov rdi, gword ptr [rbp-0xD0]
mov rax, 0xD1FFAB1E ; code for System.Text.UTF8Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
+ cmp dword ptr [rdi], edi
call [rax]System.Text.UTF8Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
- ;; size=32 bbWeight=2 PerfScore 13.00
+ ;; size=34 bbWeight=2 PerfScore 19.00
G_M51644_IG91:
xor ecx, ecx
mov dword ptr [rbp-0x3C], ecx
- jmp G_M51644_IG180
+ jmp G_M51644_IG184
;; size=10 bbWeight=8 PerfScore 26.00
G_M51644_IG92:
mov edx, dword ptr [rbp-0x40]
lea edi, [rdx+0x01]
jmp SHORT G_M51644_IG94
;; size=8 bbWeight=16 PerfScore 56.00
G_M51644_IG93:
inc edi
;; size=2 bbWeight=32 PerfScore 8.00
G_M51644_IG94:
cmp edi, r15d
jae SHORT G_M51644_IG96
;; size=5 bbWeight=128 PerfScore 160.00
G_M51644_IG95:
cmp edi, r15d
- jae G_M51644_IG182
+ jae G_M51644_IG186
mov ecx, edi
movzx rcx, word ptr [r14+2*rcx]
cmp ecx, esi
je SHORT G_M51644_IG93
;; size=20 bbWeight=64 PerfScore 304.00
G_M51644_IG96:
mov dword ptr [rbp-0x40], edx
mov r8d, edi
sub r8d, edx
mov dword ptr [rbp-0x44], r8d
mov rdi, gword ptr [rbp-0xA0]
mov rsi, qword ptr [rbp-0x30]
mov r8, qword ptr [rdi]
mov r8, qword ptr [r8+0x58]
call [r8+0x38]System.Globalization.Calendar:GetMonth(System.DateTime):int:this
mov dword ptr [rbp-0x4C], eax
cmp dword ptr [rbp-0x44], 2
jg SHORT G_M51644_IG98
mov ecx, dword ptr [rbp-0x44]
cmp dword ptr [rbp-0x34], 0
je SHORT G_M51644_IG97
mov dword ptr [rbp-0x44], ecx
mov rdi, rbx
mov esi, eax
mov rax, 0xD1FFAB1E ; code for System.Globalization.HebrewNumber:Append[ubyte](byref,int)
call [rax]System.Globalization.HebrewNumber:Append[ubyte](byref,int)
jmp SHORT G_M51644_IG91
;; size=75 bbWeight=16 PerfScore 420.00
G_M51644_IG97:
mov rdi, rbx
mov esi, eax
mov dword ptr [rbp-0x44], ecx
mov edx, ecx
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
call [rax]System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
jmp G_M51644_IG91
;; size=27 bbWeight=16 PerfScore 112.00
G_M51644_IG98:
mov ecx, dword ptr [rbp-0x44]
cmp dword ptr [rbp-0x34], 0
je G_M51644_IG105
mov rdi, qword ptr [rbp-0x30]
mov esi, eax
mov dword ptr [rbp-0x44], ecx
mov edx, ecx
mov rcx, r13
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:FormatHebrewMonthName(System.DateTime,int,int,System.Globalization.DateTimeFormatInfo):System.String
call [rax]System.DateTimeFormat:FormatHebrewMonthName(System.DateTime,int,int,System.Globalization.DateTimeFormatInfo):System.String
test rax, rax
jne SHORT G_M51644_IG100
;; size=44 bbWeight=16 PerfScore 180.00
G_M51644_IG99:
xor rcx, rcx
xor r8d, r8d
jmp SHORT G_M51644_IG101
;; size=7 bbWeight=8 PerfScore 20.00
G_M51644_IG100:
lea rcx, bword ptr [rax+0x0C]
mov r8d, dword ptr [rax+0x08]
mov rax, rcx
mov ecx, r8d
mov r8d, ecx
mov rcx, rax
;; size=20 bbWeight=8 PerfScore 28.00
G_M51644_IG101:
mov rax, rcx
mov bword ptr [rbp-0x120], rax
mov ecx, r8d
mov dword ptr [rbp-0x88], ecx
mov rsi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rsi]
mov gword ptr [rbp-0xD8], rdi
mov rsi, rax
mov edx, ecx
mov r9, 0xD1FFAB1E ; code for System.Text.UTF8Encoding:GetByteCount(System.ReadOnlySpan`1[ushort]):int:this
call [r9]System.Text.UTF8Encoding:GetByteCount(System.ReadOnlySpan`1[ushort]):int:this
mov edi, dword ptr [rbx+0x08]
mov rcx, bword ptr [rbx+0x10]
mov esi, dword ptr [rbx+0x18]
mov edx, edi
mov r8d, eax
add rdx, r8
cmp rdx, rsi
ja SHORT G_M51644_IG103
;; size=80 bbWeight=16 PerfScore 280.00
G_M51644_IG102:
lea esi, [rdi+rax]
mov dword ptr [rbx+0x08], esi
mov edx, edi
add rcx, rdx
jmp SHORT G_M51644_IG104
;; size=13 bbWeight=8 PerfScore 32.00
G_M51644_IG103:
mov rdi, rbx
mov esi, eax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
call [rax]System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
mov rcx, rax
mov eax, edx
;; size=22 bbWeight=8 PerfScore 34.00
G_M51644_IG104:
mov r8d, eax
mov rsi, bword ptr [rbp-0x120]
mov edx, dword ptr [rbp-0x88]
mov rdi, gword ptr [rbp-0xD8]
mov rax, 0xD1FFAB1E ; code for System.Text.UTF8Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
+ cmp dword ptr [rdi], edi
call [rax]System.Text.UTF8Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
jmp G_M51644_IG91
- ;; size=40 bbWeight=16 PerfScore 136.00
+ ;; size=42 bbWeight=16 PerfScore 184.00
G_M51644_IG105:
cmp dword ptr [r13+0x180], -1
jne SHORT G_M51644_IG107
;; size=10 bbWeight=16 PerfScore 64.00
G_M51644_IG106:
mov dword ptr [rbp-0x44], ecx
mov rdi, r13
mov rdx, 0xD1FFAB1E ; code for System.Globalization.DateTimeFormatInfo:InitializeFormatFlags():int:this
call [rdx]System.Globalization.DateTimeFormatInfo:InitializeFormatFlags():int:this
jmp SHORT G_M51644_IG108
;; size=20 bbWeight=8 PerfScore 52.00
G_M51644_IG107:
mov edi, dword ptr [r13+0x180]
mov dword ptr [rbp-0x44], ecx
mov eax, edi
;; size=12 bbWeight=8 PerfScore 26.00
G_M51644_IG108:
test al, 1
je G_M51644_IG118
mov rdi, r14
mov esi, r15d
mov edx, dword ptr [rbp-0x40]
mov ecx, dword ptr [rbp-0x44]
mov r8d, 100
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:IsUseGenitiveForm(System.ReadOnlySpan`1[ushort],int,int,ushort):ubyte
call [rax]System.DateTimeFormat:IsUseGenitiveForm(System.ReadOnlySpan`1[ushort],int,int,ushort):ubyte
test eax, eax
jne SHORT G_M51644_IG110
;; size=42 bbWeight=16 PerfScore 136.00
G_M51644_IG109:
xor edx, edx
jmp SHORT G_M51644_IG111
;; size=4 bbWeight=8 PerfScore 18.00
G_M51644_IG110:
mov edx, 1
;; size=5 bbWeight=8 PerfScore 2.00
G_M51644_IG111:
xor ecx, ecx
cmp dword ptr [rbp-0x44], 3
sete cl
mov rdi, r13
mov esi, dword ptr [rbp-0x4C]
mov r8, 0xD1FFAB1E ; code for System.Globalization.DateTimeFormatInfo:InternalGetMonthName(int,int,ubyte):System.String:this
call [r8]System.Globalization.DateTimeFormatInfo:InternalGetMonthName(int,int,ubyte):System.String:this
test rax, rax
jne SHORT G_M51644_IG113
;; size=33 bbWeight=16 PerfScore 144.00
G_M51644_IG112:
xor rcx, rcx
xor r8d, r8d
jmp SHORT G_M51644_IG114
;; size=7 bbWeight=8 PerfScore 20.00
G_M51644_IG113:
lea rcx, bword ptr [rax+0x0C]
mov r8d, dword ptr [rax+0x08]
mov rax, rcx
mov ecx, r8d
mov r8d, ecx
mov rcx, rax
;; size=20 bbWeight=8 PerfScore 28.00
G_M51644_IG114:
mov rax, rcx
mov bword ptr [rbp-0x118], rax
mov ecx, r8d
mov dword ptr [rbp-0x84], ecx
mov rsi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rsi]
mov gword ptr [rbp-0xE0], rdi
mov rsi, rax
mov edx, ecx
mov r9, 0xD1FFAB1E ; code for System.Text.UTF8Encoding:GetByteCount(System.ReadOnlySpan`1[ushort]):int:this
call [r9]System.Text.UTF8Encoding:GetByteCount(System.ReadOnlySpan`1[ushort]):int:this
mov edi, dword ptr [rbx+0x08]
mov rcx, bword ptr [rbx+0x10]
mov esi, dword ptr [rbx+0x18]
mov edx, edi
mov r8d, eax
add rdx, r8
cmp rdx, rsi
ja SHORT G_M51644_IG116
;; size=80 bbWeight=16 PerfScore 280.00
G_M51644_IG115:
lea esi, [rdi+rax]
mov dword ptr [rbx+0x08], esi
mov edx, edi
add rcx, rdx
jmp SHORT G_M51644_IG117
;; size=13 bbWeight=8 PerfScore 32.00
G_M51644_IG116:
mov rdi, rbx
mov esi, eax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
call [rax]System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
mov rcx, rax
mov eax, edx
;; size=22 bbWeight=8 PerfScore 34.00
G_M51644_IG117:
mov r8d, eax
mov rsi, bword ptr [rbp-0x118]
mov edx, dword ptr [rbp-0x84]
mov rdi, gword ptr [rbp-0xE0]
mov rax, 0xD1FFAB1E ; code for System.Text.UTF8Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
+ cmp dword ptr [rdi], edi
call [rax]System.Text.UTF8Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
jmp G_M51644_IG91
- ;; size=40 bbWeight=16 PerfScore 136.00
+ ;; size=42 bbWeight=16 PerfScore 184.00
G_M51644_IG118:
cmp dword ptr [rbp-0x44], 3
jne SHORT G_M51644_IG120
;; size=6 bbWeight=16 PerfScore 48.00
G_M51644_IG119:
mov rdi, r13
mov esi, dword ptr [rbp-0x4C]
mov rax, 0xD1FFAB1E ; code for System.Globalization.DateTimeFormatInfo:GetAbbreviatedMonthName(int):System.String:this
call [rax]System.Globalization.DateTimeFormatInfo:GetAbbreviatedMonthName(int):System.String:this
jmp SHORT G_M51644_IG121
;; size=20 bbWeight=8 PerfScore 52.00
G_M51644_IG120:
mov rdi, r13
mov esi, dword ptr [rbp-0x4C]
mov rax, 0xD1FFAB1E ; code for System.Globalization.DateTimeFormatInfo:GetMonthName(int):System.String:this
call [rax]System.Globalization.DateTimeFormatInfo:GetMonthName(int):System.String:this
;; size=18 bbWeight=8 PerfScore 36.00
G_M51644_IG121:
test rax, rax
jne SHORT G_M51644_IG123
;; size=5 bbWeight=16 PerfScore 20.00
G_M51644_IG122:
xor rcx, rcx
xor r8d, r8d
jmp SHORT G_M51644_IG124
;; size=7 bbWeight=8 PerfScore 20.00
G_M51644_IG123:
lea rcx, bword ptr [rax+0x0C]
mov r8d, dword ptr [rax+0x08]
mov rax, rcx
mov ecx, r8d
mov r8d, ecx
mov rcx, rax
;; size=20 bbWeight=8 PerfScore 28.00
G_M51644_IG124:
mov rax, rcx
mov bword ptr [rbp-0x110], rax
mov ecx, r8d
mov dword ptr [rbp-0x80], ecx
mov rsi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rsi]
mov gword ptr [rbp-0xE8], rdi
mov rsi, rax
mov edx, ecx
mov r9, 0xD1FFAB1E ; code for System.Text.UTF8Encoding:GetByteCount(System.ReadOnlySpan`1[ushort]):int:this
call [r9]System.Text.UTF8Encoding:GetByteCount(System.ReadOnlySpan`1[ushort]):int:this
mov edi, dword ptr [rbx+0x08]
mov rcx, bword ptr [rbx+0x10]
mov esi, dword ptr [rbx+0x18]
mov edx, edi
mov r8d, eax
add rdx, r8
cmp rdx, rsi
ja SHORT G_M51644_IG126
;; size=77 bbWeight=16 PerfScore 280.00
G_M51644_IG125:
lea esi, [rdi+rax]
mov dword ptr [rbx+0x08], esi
mov edx, edi
add rcx, rdx
jmp SHORT G_M51644_IG127
;; size=13 bbWeight=8 PerfScore 32.00
G_M51644_IG126:
mov rdi, rbx
mov esi, eax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
call [rax]System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
mov rcx, rax
mov eax, edx
;; size=22 bbWeight=8 PerfScore 34.00
G_M51644_IG127:
mov r8d, eax
mov rsi, bword ptr [rbp-0x110]
mov edx, dword ptr [rbp-0x80]
mov rdi, gword ptr [rbp-0xE8]
mov rax, 0xD1FFAB1E ; code for System.Text.UTF8Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
+ cmp dword ptr [rdi], edi
call [rax]System.Text.UTF8Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
jmp G_M51644_IG91
- ;; size=37 bbWeight=16 PerfScore 136.00
+ ;; size=39 bbWeight=16 PerfScore 184.00
G_M51644_IG128:
mov rdi, gword ptr [rbp-0xA0]
mov rsi, qword ptr [rbp-0x30]
mov rcx, qword ptr [rdi]
mov rcx, qword ptr [rcx+0x60]
call [rcx+0x28]System.Globalization.Calendar:GetYear(System.DateTime):int:this
mov dword ptr [rbp-0x50], eax
mov rdi, r14
mov esi, r15d
mov edx, dword ptr [rbp-0x40]
mov ecx, dword ptr [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:ParseRepeatPattern(System.ReadOnlySpan`1[ushort],int,ushort):int
call [rax]System.DateTimeFormat:ParseRepeatPattern(System.ReadOnlySpan`1[ushort],int,ushort):int
mov dword ptr [rbp-0x44], eax
cmp dword ptr [rbp-0x38], 0
je G_M51644_IG140
mov rdi, 0xD1FFAB1E ; static handle
cmp dword ptr [rdi], 0
jl SHORT G_M51644_IG130
;; size=76 bbWeight=16 PerfScore 384.00
G_M51644_IG129:
mov rdi, 0xD1FFAB1E ; static handle
cmp dword ptr [rdi], 0
jg G_M51644_IG140
mov rdi, 0xD1FFAB1E ; 'Switch.System.Globalization.FormatJapaneseFirstYearAsANumber'
mov rsi, 0xD1FFAB1E ; static handle
mov rdx, 0xD1FFAB1E ; code for System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
call [rdx]System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
test eax, eax
jne G_M51644_IG140
;; size=59 bbWeight=8 PerfScore 74.00
G_M51644_IG130:
mov esi, dword ptr [rbp-0x50]
cmp esi, 1
jne G_M51644_IG137
mov eax, dword ptr [rbp-0x44]
mov edi, eax
add edi, dword ptr [rbp-0x40]
cmp edi, r15d
jge SHORT G_M51644_IG132
;; size=25 bbWeight=16 PerfScore 108.00
G_M51644_IG131:
cmp edi, r15d
- jae G_M51644_IG182
+ jae G_M51644_IG186
mov r8d, edi
cmp word ptr [r14+2*r8], 0x5E74
je SHORT G_M51644_IG133
;; size=21 bbWeight=8 PerfScore 44.00
G_M51644_IG132:
lea r8d, [r15-0x01]
cmp edi, r8d
jge SHORT G_M51644_IG136
cmp edi, r15d
- jae G_M51644_IG182
+ jae G_M51644_IG186
mov r8d, edi
cmp word ptr [r14+2*r8], 39
jne SHORT G_M51644_IG135
inc edi
cmp edi, r15d
- jae G_M51644_IG182
+ jae G_M51644_IG186
cmp word ptr [r14+2*rdi], 0x5E74
jne SHORT G_M51644_IG140
;; size=49 bbWeight=8 PerfScore 102.00
G_M51644_IG133:
mov edi, 0x5143
mov rsi, 0xD1FFAB1E ; code for System.Text.UnicodeUtility:GetUtf8SequenceLength(uint):int
call [rsi]System.Text.UnicodeUtility:GetUtf8SequenceLength(uint):int
mov edi, dword ptr [rbx+0x08]
mov rsi, bword ptr [rbx+0x10]
mov ecx, dword ptr [rbx+0x18]
mov edx, edi
mov r8d, eax
add rdx, r8
cmp rdx, rcx
ja SHORT G_M51644_IG138
;; size=40 bbWeight=16 PerfScore 184.00
G_M51644_IG134:
lea ecx, [rdi+rax]
mov dword ptr [rbx+0x08], ecx
mov ecx, edi
add rsi, rcx
mov edx, eax
jmp SHORT G_M51644_IG139
;; size=15 bbWeight=8 PerfScore 34.00
G_M51644_IG135:
jmp SHORT G_M51644_IG140
;; size=2 bbWeight=4 PerfScore 8.00
G_M51644_IG136:
jmp SHORT G_M51644_IG140
;; size=2 bbWeight=4 PerfScore 8.00
G_M51644_IG137:
jmp SHORT G_M51644_IG140
;; size=2 bbWeight=8 PerfScore 16.00
G_M51644_IG138:
mov rdi, rbx
mov esi, eax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
call [rax]System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
mov rsi, rax
;; size=20 bbWeight=8 PerfScore 32.00
G_M51644_IG139:
lea rcx, [rbp-0x68]
mov edi, 0x5143
mov rax, 0xD1FFAB1E ; code for System.Text.Rune:TryEncodeToUtf8(System.Text.Rune,System.Span`1[ubyte],byref):ubyte
call [rax]System.Text.Rune:TryEncodeToUtf8(System.Text.Rune,System.Span`1[ubyte],byref):ubyte
test eax, eax
- je G_M51644_IG187
+ je G_M51644_IG191
jmp G_M51644_IG91
;; size=34 bbWeight=16 PerfScore 116.00
G_M51644_IG140:
mov rdi, gword ptr [r13+0x90]
mov rdx, qword ptr [rdi]
mov rdx, qword ptr [rdx+0x40]
call [rdx+0x38]System.Globalization.Calendar:get_ID():ushort:this
add eax, -3
cmp eax, 1
ja SHORT G_M51644_IG144
mov eax, dword ptr [rbp-0x44]
cmp eax, 2
jle SHORT G_M51644_IG142
;; size=33 bbWeight=16 PerfScore 204.00
G_M51644_IG141:
mov edx, 2
mov dword ptr [rbp-0x44], eax
jmp SHORT G_M51644_IG143
;; size=10 bbWeight=8 PerfScore 26.00
G_M51644_IG142:
mov dword ptr [rbp-0x44], eax
mov edx, eax
;; size=5 bbWeight=8 PerfScore 10.00
G_M51644_IG143:
mov rdi, rbx
mov esi, dword ptr [rbp-0x50]
mov rcx, 0xD1FFAB1E ; code for System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
call [rcx]System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
jmp G_M51644_IG91
;; size=23 bbWeight=16 PerfScore 104.00
G_M51644_IG144:
mov rdi, gword ptr [rbp-0xA0]
mov rax, qword ptr [rbp-0x98]
call [rax+0x38]System.Globalization.Calendar:get_ID():ushort:this
cmp eax, 8
jne SHORT G_M51644_IG145
mov rdi, rbx
mov esi, dword ptr [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Globalization.HebrewNumber:Append[ubyte](byref,int)
call [rax]System.Globalization.HebrewNumber:Append[ubyte](byref,int)
jmp G_M51644_IG91
;; size=45 bbWeight=16 PerfScore 204.00
G_M51644_IG145:
mov ecx, dword ptr [rbp-0x44]
cmp ecx, 2
jg SHORT G_M51644_IG146
mov edx, 0xD1FFAB1E
mov esi, dword ptr [rbp-0x50]
mov eax, edx
imul edx:eax, esi
mov edi, edx
shr edi, 31
sar edx, 5
add edi, edx
imul edi, edi, 100
sub esi, edi
mov rdi, rbx
mov dword ptr [rbp-0x44], ecx
mov edx, ecx
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
call [rax]System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
jmp G_M51644_IG91
;; size=60 bbWeight=16 PerfScore 276.00
G_M51644_IG146:
cmp ecx, 16
jg SHORT G_M51644_IG147
mov rdi, rbx
mov esi, dword ptr [rbp-0x50]
mov dword ptr [rbp-0x44], ecx
mov edx, ecx
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
call [rax]System.DateTimeFormat:FormatDigits[ubyte](byref,int,int)
jmp G_M51644_IG91
;; size=33 bbWeight=16 PerfScore 144.00
G_M51644_IG147:
mov rdi, 0xD1FFAB1E ; const ptr
mov rax, gword ptr [rdi]
mov gword ptr [rbp-0x128], rax
mov rdi, rax
mov dword ptr [rbp-0x44], ecx
test ecx, ecx
- jge SHORT G_M51644_IG149
+ jge SHORT G_M51644_IG151
;; size=30 bbWeight=16 PerfScore 92.00
G_M51644_IG148:
+ test rdi, rdi
+ je SHORT G_M51644_IG149
mov rdx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rdx]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
+ jmp SHORT G_M51644_IG150
+ ;; size=19 bbWeight=8 PerfScore 52.00
+G_M51644_IG149:
+ mov rdx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rdx]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=8 PerfScore 26.00
+G_M51644_IG150:
mov rdx, gword ptr [rax+0x28]
mov edi, dword ptr [rbp-0x44]
mov esi, -1
mov rax, 0xD1FFAB1E ; code for System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
call [rax]System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
- jmp SHORT G_M51644_IG150
- ;; size=38 bbWeight=8 PerfScore 94.00
-G_M51644_IG149:
+ jmp SHORT G_M51644_IG152
+ ;; size=26 bbWeight=8 PerfScore 68.00
+G_M51644_IG151:
mov ecx, dword ptr [rbp-0x44]
mov dword ptr [rbp-0x44], ecx
mov edi, ecx
mov rdx, 0xD1FFAB1E ; code for System.Number:UInt32ToDecStr(uint):System.String
call [rdx]System.Number:UInt32ToDecStr(uint):System.String
;; size=20 bbWeight=8 PerfScore 44.00
-G_M51644_IG150:
+G_M51644_IG152:
mov rsi, rax
mov rdi, 0xD1FFAB1E ; 'D'
mov rax, 0xD1FFAB1E ; code for System.String:Concat(System.String,System.String):System.String
call [rax]System.String:Concat(System.String,System.String):System.String
mov rcx, gword ptr [rbp-0x128]
test rax, rax
- je SHORT G_M51644_IG152
+ je SHORT G_M51644_IG154
;; size=37 bbWeight=16 PerfScore 96.00
-G_M51644_IG151:
+G_M51644_IG153:
cmp dword ptr [rax+0x08], 0
- je SHORT G_M51644_IG152
+ je SHORT G_M51644_IG154
mov edi, dword ptr [rbp-0x50]
mov rdx, rax
mov esi, -1
mov rax, 0xD1FFAB1E ; code for System.Number:<FormatInt32>g__FormatInt32Slow|41_0(int,int,System.String,System.IFormatProvider):System.String
call [rax]System.Number:<FormatInt32>g__FormatInt32Slow|41_0(int,int,System.String,System.IFormatProvider):System.String
- jmp SHORT G_M51644_IG154
+ jmp SHORT G_M51644_IG158
;; size=31 bbWeight=8 PerfScore 86.00
-G_M51644_IG152:
+G_M51644_IG154:
cmp dword ptr [rbp-0x50], 0
- jge SHORT G_M51644_IG153
+ jge SHORT G_M51644_IG157
+ test rcx, rcx
+ je SHORT G_M51644_IG155
mov rdi, rcx
mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rcx]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|59_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
+ jmp SHORT G_M51644_IG156
+ ;; size=28 bbWeight=8 PerfScore 78.00
+G_M51644_IG155:
+ mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rcx]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ ;; size=12 bbWeight=8 PerfScore 26.00
+G_M51644_IG156:
mov rdx, gword ptr [rax+0x28]
mov edi, dword ptr [rbp-0x50]
mov esi, -1
mov rax, 0xD1FFAB1E ; code for System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
call [rax]System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
- jmp SHORT G_M51644_IG154
- ;; size=47 bbWeight=8 PerfScore 120.00
-G_M51644_IG153:
+ jmp SHORT G_M51644_IG158
+ ;; size=26 bbWeight=8 PerfScore 68.00
+G_M51644_IG157:
mov eax, dword ptr [rbp-0x50]
mov edi, eax
mov rax, 0xD1FFAB1E ; code for System.Number:UInt32ToDecStr(uint):System.String
call [rax]System.Number:UInt32ToDecStr(uint):System.String
;; size=17 bbWeight=8 PerfScore 36.00
-G_M51644_IG154:
+G_M51644_IG158:
test rax, rax
- jne SHORT G_M51644_IG156
+ jne SHORT G_M51644_IG160
;; size=5 bbWeight=16 PerfScore 20.00
-G_M51644_IG155:
+G_M51644_IG159:
xor rcx, rcx
xor r8d, r8d
- jmp SHORT G_M51644_IG157
+ jmp SHORT G_M51644_IG161
;; size=7 bbWeight=8 PerfScore 20.00
-G_M51644_IG156:
+G_M51644_IG160:
lea rcx, bword ptr [rax+0x0C]
mov r8d, dword ptr [rax+0x08]
mov rax, rcx
mov ecx, r8d
mov r8d, ecx
mov rcx, rax
;; size=20 bbWeight=8 PerfScore 28.00
-G_M51644_IG157:
+G_M51644_IG161:
mov rax, rcx
mov bword ptr [rbp-0xF8], rax
mov ecx, r8d
mov dword ptr [rbp-0x74], ecx
mov rsi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rsi]
mov gword ptr [rbp-0xF0], rdi
mov rsi, rax
mov edx, ecx
mov r9, 0xD1FFAB1E ; code for System.Text.UTF8Encoding:GetByteCount(System.ReadOnlySpan`1[ushort]):int:this
call [r9]System.Text.UTF8Encoding:GetByteCount(System.ReadOnlySpan`1[ushort]):int:this
mov edi, dword ptr [rbx+0x08]
mov rcx, bword ptr [rbx+0x10]
mov esi, dword ptr [rbx+0x18]
mov edx, edi
mov r8d, eax
add rdx, r8
cmp rdx, rsi
- ja SHORT G_M51644_IG159
+ ja SHORT G_M51644_IG163
;; size=77 bbWeight=16 PerfScore 280.00
-G_M51644_IG158:
+G_M51644_IG162:
lea esi, [rdi+rax]
mov dword ptr [rbx+0x08], esi
mov edx, edi
add rcx, rdx
- jmp SHORT G_M51644_IG160
+ jmp SHORT G_M51644_IG164
;; size=13 bbWeight=8 PerfScore 32.00
-G_M51644_IG159:
+G_M51644_IG163:
mov rdi, rbx
mov esi, eax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
call [rax]System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
mov rcx, rax
mov eax, edx
;; size=22 bbWeight=8 PerfScore 34.00
-G_M51644_IG160:
+G_M51644_IG164:
mov r8d, eax
mov rsi, bword ptr [rbp-0xF8]
mov edx, dword ptr [rbp-0x74]
mov rdi, gword ptr [rbp-0xF0]
mov rax, 0xD1FFAB1E ; code for System.Text.UTF8Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
+ cmp dword ptr [rdi], edi
call [rax]System.Text.UTF8Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
jmp G_M51644_IG91
- ;; size=37 bbWeight=16 PerfScore 136.00
-G_M51644_IG161:
+ ;; size=39 bbWeight=16 PerfScore 184.00
+G_M51644_IG165:
mov rdi, r13
mov rsi, 0xD1FFAB1E ; code for System.Globalization.DateTimeFormatInfo:TimeSeparatorTChar[ubyte]():System.ReadOnlySpan`1[ubyte]:this
call [rsi]System.Globalization.DateTimeFormatInfo:TimeSeparatorTChar[ubyte]():System.ReadOnlySpan`1[ubyte]:this
mov esi, dword ptr [rbx+0x08]
mov rdi, bword ptr [rbx+0x10]
mov ecx, dword ptr [rbx+0x18]
cmp edx, 1
- jne SHORT G_M51644_IG162
+ jne SHORT G_M51644_IG166
cmp esi, ecx
- jae SHORT G_M51644_IG162
+ jae SHORT G_M51644_IG166
cmp esi, ecx
- jae G_M51644_IG182
+ jae G_M51644_IG186
mov edx, esi
movzx rax, byte ptr [rax]
mov byte ptr [rdi+rdx], al
inc esi
mov dword ptr [rbx+0x08], esi
- jmp G_M51644_IG179
+ jmp G_M51644_IG183
;; size=60 bbWeight=2 PerfScore 39.50
-G_M51644_IG162:
+G_M51644_IG166:
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendMultiChar(System.ReadOnlySpan`1[ubyte]):this
call [rax]System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendMultiChar(System.ReadOnlySpan`1[ubyte]):this
- jmp G_M51644_IG179
+ jmp G_M51644_IG183
;; size=23 bbWeight=2 PerfScore 11.50
-G_M51644_IG163:
+G_M51644_IG167:
mov esi, dword ptr [rbx+0x08]
mov rdi, bword ptr [rbx+0x10]
mov ecx, dword ptr [rbx+0x18]
cmp edx, 1
- jne SHORT G_M51644_IG164
+ jne SHORT G_M51644_IG168
cmp esi, ecx
- jae SHORT G_M51644_IG164
+ jae SHORT G_M51644_IG168
cmp esi, ecx
- jae G_M51644_IG182
+ jae G_M51644_IG186
mov edx, esi
movzx rax, byte ptr [rax]
mov byte ptr [rdi+rdx], al
inc esi
mov dword ptr [rbx+0x08], esi
- jmp G_M51644_IG179
+ jmp G_M51644_IG183
;; size=45 bbWeight=2 PerfScore 32.50
-G_M51644_IG164:
+G_M51644_IG168:
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendMultiChar(System.ReadOnlySpan`1[ubyte]):this
call [rax]System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendMultiChar(System.ReadOnlySpan`1[ubyte]):this
- jmp G_M51644_IG179
+ jmp G_M51644_IG183
;; size=23 bbWeight=2 PerfScore 11.50
-G_M51644_IG165:
+G_M51644_IG169:
mov rdi, r14
mov esi, r15d
mov edx, dword ptr [rbp-0x40]
mov rcx, rbx
mov r8, 0xD1FFAB1E ; code for System.DateTimeFormat:ParseQuoteString[ubyte](System.ReadOnlySpan`1[ushort],int,byref):int
call [r8]System.DateTimeFormat:ParseQuoteString[ubyte](System.ReadOnlySpan`1[ushort],int,byref):int
mov dword ptr [rbp-0x44], eax
- jmp G_M51644_IG180
+ jmp G_M51644_IG184
;; size=33 bbWeight=2 PerfScore 16.00
-G_M51644_IG166:
+G_M51644_IG170:
mov edx, dword ptr [rbp-0x40]
lea esi, [rdx+0x01]
cmp esi, r15d
- jb SHORT G_M51644_IG167
+ jb SHORT G_M51644_IG171
mov esi, -1
- jmp SHORT G_M51644_IG168
+ jmp SHORT G_M51644_IG172
;; size=18 bbWeight=2 PerfScore 10.00
-G_M51644_IG167:
+G_M51644_IG171:
lea esi, [rdx+0x01]
cmp esi, r15d
- jae G_M51644_IG182
+ jae G_M51644_IG186
mov dword ptr [rbp-0x40], edx
lea esi, [rdx+0x01]
movzx rsi, word ptr [r14+2*rsi]
mov edx, dword ptr [rbp-0x40]
;; size=26 bbWeight=2 PerfScore 12.50
-G_M51644_IG168:
+G_M51644_IG172:
test esi, esi
- jl G_M51644_IG184
+ jl G_M51644_IG188
cmp esi, 37
mov dword ptr [rbp-0x40], edx
- je G_M51644_IG184
+ je G_M51644_IG188
movzx rsi, si
mov dword ptr [rbp-0x54], esi
mov rdi, qword ptr [rbp-0x30]
lea rsi, bword ptr [rbp-0x54]
mov edx, 1
mov rcx, r13
mov r8, r12
mov r9, rbx
mov r10, 0xD1FFAB1E ; code for System.DateTimeFormat:FormatCustomized[ubyte](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref)
call [r10]System.DateTimeFormat:FormatCustomized[ubyte](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref)
- jmp SHORT G_M51644_IG173
+ jmp SHORT G_M51644_IG177
;; size=63 bbWeight=2 PerfScore 25.00
-G_M51644_IG169:
+G_M51644_IG173:
mov edx, dword ptr [rbp-0x40]
lea edi, [rdx+0x01]
cmp edi, r15d
- jb SHORT G_M51644_IG170
+ jb SHORT G_M51644_IG174
mov edi, -1
- jmp SHORT G_M51644_IG171
+ jmp SHORT G_M51644_IG175
;; size=18 bbWeight=2 PerfScore 10.00
-G_M51644_IG170:
+G_M51644_IG174:
lea edi, [rdx+0x01]
cmp edi, r15d
- jae G_M51644_IG182
+ jae G_M51644_IG186
mov dword ptr [rbp-0x40], edx
lea edi, [rdx+0x01]
movzx rdi, word ptr [r14+2*rdi]
mov edx, dword ptr [rbp-0x40]
;; size=26 bbWeight=2 PerfScore 12.50
-G_M51644_IG171:
+G_M51644_IG175:
test edi, edi
- jl G_M51644_IG185
+ jl G_M51644_IG189
movzx rsi, dil
mov edi, dword ptr [rbx+0x08]
mov r8, bword ptr [rbx+0x10]
mov r9d, dword ptr [rbx+0x18]
cmp edi, r9d
- jae SHORT G_M51644_IG172
+ jae SHORT G_M51644_IG176
cmp edi, r9d
- jae G_M51644_IG182
+ jae G_M51644_IG186
mov r9d, edi
mov byte ptr [r8+r9], sil
inc edi
mov dword ptr [rbx+0x08], edi
mov dword ptr [rbp-0x40], edx
- jmp SHORT G_M51644_IG173
+ jmp SHORT G_M51644_IG177
;; size=54 bbWeight=2 PerfScore 31.00
-G_M51644_IG172:
+G_M51644_IG176:
mov dword ptr [rbp-0x40], edx
mov rdi, rbx
mov r8, 0xD1FFAB1E ; code for System.Collections.Generic.ValueListBuilder`1[ubyte]:AddWithResize(ubyte):this
call [r8]System.Collections.Generic.ValueListBuilder`1[ubyte]:AddWithResize(ubyte):this
;; size=19 bbWeight=2 PerfScore 9.00
-G_M51644_IG173:
+G_M51644_IG177:
mov eax, 2
mov dword ptr [rbp-0x44], eax
- jmp G_M51644_IG180
+ jmp G_M51644_IG184
;; size=13 bbWeight=2 PerfScore 6.50
-G_M51644_IG174:
+G_M51644_IG178:
cmp esi, 127
- ja SHORT G_M51644_IG176
+ ja SHORT G_M51644_IG180
movzx rsi, sil
mov edi, dword ptr [rbx+0x08]
mov r8, bword ptr [rbx+0x10]
mov r9d, dword ptr [rbx+0x18]
cmp edi, r9d
- jae SHORT G_M51644_IG175
+ jae SHORT G_M51644_IG179
cmp edi, r9d
- jae G_M51644_IG182
+ jae G_M51644_IG186
mov r9d, edi
mov byte ptr [r8+r9], sil
inc edi
mov dword ptr [rbx+0x08], edi
- jmp G_M51644_IG179
+ jmp G_M51644_IG183
;; size=51 bbWeight=2 PerfScore 29.00
-G_M51644_IG175:
+G_M51644_IG179:
mov rdi, rbx
mov r8, 0xD1FFAB1E ; code for System.Collections.Generic.ValueListBuilder`1[ubyte]:AddWithResize(ubyte):this
call [r8]System.Collections.Generic.ValueListBuilder`1[ubyte]:AddWithResize(ubyte):this
- jmp G_M51644_IG179
+ jmp G_M51644_IG183
;; size=21 bbWeight=2 PerfScore 11.00
-G_M51644_IG176:
+G_M51644_IG180:
lea edi, [rsi-0xD800]
cmp edi, 0x7FF
- jbe G_M51644_IG186
+ jbe G_M51644_IG190
mov dword ptr [rbp-0x90], esi
mov edi, esi
mov r8, 0xD1FFAB1E ; code for System.Text.UnicodeUtility:GetUtf8SequenceLength(uint):int
call [r8]System.Text.UnicodeUtility:GetUtf8SequenceLength(uint):int
mov edi, dword ptr [rbx+0x08]
mov rsi, bword ptr [rbx+0x10]
mov ecx, dword ptr [rbx+0x18]
mov edx, edi
mov r8d, eax
add rdx, r8
cmp rdx, rcx
- ja SHORT G_M51644_IG177
+ ja SHORT G_M51644_IG181
lea ecx, [rdi+rax]
mov dword ptr [rbx+0x08], ecx
mov ecx, edi
add rsi, rcx
mov edx, eax
- jmp SHORT G_M51644_IG178
+ jmp SHORT G_M51644_IG182
;; size=77 bbWeight=2 PerfScore 37.00
-G_M51644_IG177:
+G_M51644_IG181:
mov rdi, rbx
mov esi, eax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
call [rax]System.Collections.Generic.ValueListBuilder`1[ubyte]:AppendSpanWithGrow(int):System.Span`1[ubyte]:this
mov rsi, rax
;; size=20 bbWeight=2 PerfScore 8.00
-G_M51644_IG178:
+G_M51644_IG182:
lea rcx, [rbp-0x70]
mov edi, dword ptr [rbp-0x90]
mov rax, 0xD1FFAB1E ; code for System.Text.Rune:TryEncodeToUtf8(System.Text.Rune,System.Span`1[ubyte],byref):ubyte
call [rax]System.Text.Rune:TryEncodeToUtf8(System.Text.Rune,System.Span`1[ubyte],byref):ubyte
test eax, eax
- je G_M51644_IG187
+ je G_M51644_IG191
;; size=30 bbWeight=2 PerfScore 12.00
-G_M51644_IG179:
+G_M51644_IG183:
mov edi, 1
mov dword ptr [rbp-0x44], edi
;; size=8 bbWeight=2 PerfScore 2.50
-G_M51644_IG180:
+G_M51644_IG184:
mov edi, dword ptr [rbp-0x44]
mov edx, edi
add edx, dword ptr [rbp-0x40]
mov ecx, edx
cmp ecx, r15d
mov edx, ecx
jl G_M51644_IG03
;; size=21 bbWeight=4 PerfScore 20.00
-G_M51644_IG181:
+G_M51644_IG185:
add rsp, 264
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
-G_M51644_IG182:
+G_M51644_IG186:
call CORINFO_HELP_RNGCHKFAIL
;; size=5 bbWeight=0 PerfScore 0.00
-G_M51644_IG183:
+G_M51644_IG187:
mov rdi, 0xD1FFAB1E ; System.FormatException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Format_InvalidString():System.String
call [rax]System.SR:get_Format_InvalidString():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.FormatException:.ctor(System.String):this
call [rax]System.FormatException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
;; size=56 bbWeight=0 PerfScore 0.00
-G_M51644_IG184:
+G_M51644_IG188:
mov rdi, 0xD1FFAB1E ; System.FormatException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Format_InvalidString():System.String
call [rax]System.SR:get_Format_InvalidString():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.FormatException:.ctor(System.String):this
call [rax]System.FormatException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
;; size=56 bbWeight=0 PerfScore 0.00
-G_M51644_IG185:
+G_M51644_IG189:
mov rdi, 0xD1FFAB1E ; System.FormatException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Format_InvalidString():System.String
call [rax]System.SR:get_Format_InvalidString():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.FormatException:.ctor(System.String):this
call [rax]System.FormatException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
;; size=56 bbWeight=0 PerfScore 0.00
-G_M51644_IG186:
+G_M51644_IG190:
mov edi, 13
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-G_M51644_IG187:
+G_M51644_IG191:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
int3
;; size=13 bbWeight=0 PerfScore 0.00
RWD00 dd G_M51644_IG79 - G_M51644_IG02
- dd G_M51644_IG174 - G_M51644_IG02
+ dd G_M51644_IG178 - G_M51644_IG02
dd G_M51644_IG48 - G_M51644_IG02
dd G_M51644_IG14 - G_M51644_IG02
dd G_M51644_IG22 - G_M51644_IG02
RWD20 dd 00000000h
RWD24 dq 4024000000000000h ; 10
-; Total bytes of code 5466, prolog size 47, PerfScore 9759.77, instruction count 1426, allocated bytes for code 5466 (MethodHash=c4ca3643) for method System.DateTimeFormat:FormatCustomized[ubyte](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts)
+; Total bytes of code 5512, prolog size 47, PerfScore 10072.37, instruction count 1442, allocated bytes for code 5512 (MethodHash=c4ca3643) for method System.DateTimeFormat:FormatCustomized[ubyte](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts)
46 (10.87 % of base) - System.IO.TextWriter:WriteAsync(System.String):System.Threading.Tasks.Task:this
; Assembly listing for method System.IO.TextWriter:WriteAsync(System.String):System.Threading.Tasks.Task:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 7 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T04] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.IO.TextWriter>
-; V01 arg1 [V01,T05] ( 3, 3 ) ref -> r15 class-hnd single-def <System.String>
+; V00 this [V00,T05] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.IO.TextWriter>
+; V01 arg1 [V01,T06] ( 3, 3 ) ref -> r15 class-hnd single-def <System.String>
; V02 OutArgs [V02 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T07] ( 2, 4 ) ref -> r14 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
-;* V04 tmp2 [V04,T10] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
+; V03 tmp1 [V03,T08] ( 2, 4 ) ref -> r13 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+; V04 tmp2 [V04,T09] ( 2, 4 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
-; V06 tmp4 [V06,T06] ( 5, 4.50) ref -> r14
-; V07 tmp5 [V07,T01] ( 4, 8 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.TupleSlim`2[System.IO.TextWriter,System.String]>
+; V06 tmp4 [V06,T07] ( 5, 4.50) ref -> r13
+; V07 tmp5 [V07,T01] ( 4, 8 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.TupleSlim`2[System.IO.TextWriter,System.String]>
;* V08 tmp6 [V08 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-; V09 tmp7 [V09,T03] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
-; V10 tmp8 [V10,T09] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.TextWriter+<>c>
+; V09 tmp7 [V09,T04] ( 5, 5 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
+; V10 tmp8 [V10,T10] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.TextWriter+<>c>
;* V11 tmp9 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V12 tmp10 [V12,T08] ( 2, 4 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
+; V12 tmp10 [V12,T03] ( 3, 6 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
;* V13 tmp11 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V14 tmp12 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.Task>
; V15 tmp13 [V15,T00] ( 7, 11 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V16 tmp14 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
-; V17 tmp15 [V17,T02] ( 4, 6 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
+; V17 tmp15 [V17,T02] ( 4, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
;* V18 tmp16 [V18,T11] ( 0, 0 ) ref -> zero-ref single-def "field V08._source (fldOffset=0x0)" P-INDEP
;* V19 tmp17 [V19 ] ( 0, 0 ) ref -> zero-ref single-def "field V11._source (fldOffset=0x0)" P-INDEP
;* V20 cse0 [V20,T12] ( 0, 0 ) long -> zero-ref "CSE - moderate"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M7461_IG01:
push rbp
push r15
push r14
push r13
+ push r12
push rbx
- sub rsp, 16
+ push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r15, rsi
- ;; size=23 bbWeight=1 PerfScore 6.25
+ ;; size=22 bbWeight=1 PerfScore 8.00
G_M7461_IG02:
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov r14, gword ptr [rdi]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M7461_IG10
- ;; size=19 bbWeight=1 PerfScore 4.25
+ ;; size=32 bbWeight=1 PerfScore 6.50
G_M7461_IG03:
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__59_0
- mov r14, gword ptr [rdi]
- test r14, r14
+ mov r13, gword ptr [rdi]
+ test r13, r13
jne SHORT G_M7461_IG05
;; size=18 bbWeight=1 PerfScore 3.50
G_M7461_IG04:
mov rdi, 0xD1FFAB1E ; System.Action`1[System.Object]
call CORINFO_HELP_NEWSFAST
- mov r14, rax
+ mov r13, rax
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9
mov rsi, gword ptr [rdi]
test rsi, rsi
je G_M7461_IG11
- lea rdi, bword ptr [r14+0x08]
+ lea rdi, bword ptr [r13+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.IO.TextWriter+<>c:<WriteAsync>b__59_0(System.Object):this
- mov qword ptr [r14+0x18], rdi
+ mov qword ptr [r13+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__59_0
- mov rsi, r14
+ mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
;; size=81 bbWeight=0.50 PerfScore 4.62
G_M7461_IG05:
mov rdi, 0xD1FFAB1E ; System.TupleSlim`2[System.IO.TextWriter,System.String]
call CORINFO_HELP_NEWSFAST
- mov r13, rax
- lea rdi, bword ptr [r13+0x08]
+ mov r12, rax
+ lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
- lea rdi, bword ptr [r13+0x10]
+ lea rdi, bword ptr [r12+0x10]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; const ptr
mov rbx, gword ptr [rdi]
+ cmp byte ptr [r14], r14b
+ test rbx, rbx
+ je G_M7461_IG12
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task
call CORINFO_HELP_NEWSFAST
mov r15, rax
- test r14, r14
- je G_M7461_IG12
+ test r13, r13
+ je G_M7461_IG13
mov gword ptr [rsp], rbx
mov rdi, r15
- mov rsi, r14
- mov rdx, r13
+ mov rsi, r13
+ mov rdx, r12
xor rcx, rcx
mov r8d, 8
mov r9d, 0x2000
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
call [rax]System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
call [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
- mov rbx, rax
- test rbx, rbx
+ mov r14, rax
+ test r14, r14
jne SHORT G_M7461_IG07
- ;; size=141 bbWeight=1 PerfScore 20.50
+ ;; size=155 bbWeight=1 PerfScore 24.75
G_M7461_IG06:
or dword ptr [r15+0x34], 0xD1FFAB1E
jmp SHORT G_M7461_IG08
;; size=10 bbWeight=0.50 PerfScore 2.50
G_M7461_IG07:
mov rdi, 0xD1FFAB1E ; const ptr
- cmp rbx, gword ptr [rdi]
+ cmp r14, gword ptr [rdi]
je SHORT G_M7461_IG08
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
call [rax]System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
lea rdi, bword ptr [rax+0x08]
- mov rsi, rbx
+ mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
;; size=42 bbWeight=0.50 PerfScore 4.75
G_M7461_IG08:
mov rdi, r15
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
call [rax]System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
mov rax, r15
;; size=20 bbWeight=1 PerfScore 4.00
G_M7461_IG09:
- add rsp, 16
+ add rsp, 8
pop rbx
+ pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=1 PerfScore 3.75
+ ;; size=15 bbWeight=1 PerfScore 4.25
G_M7461_IG10:
mov rdi, 0xD1FFAB1E
mov esi, 0x7FF
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
jmp G_M7461_IG03
;; size=25 bbWeight=0 PerfScore 0.00
G_M7461_IG11:
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M7461_IG12:
+ mov edi, 47
+ mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
+ call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
+ int3
+ ;; size=18 bbWeight=0 PerfScore 0.00
+G_M7461_IG13:
mov edi, 28
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 423, prolog size 17, PerfScore 96.43, instruction count 94, allocated bytes for code 423 (MethodHash=5c49e2da) for method System.IO.TextWriter:WriteAsync(System.String):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 469, prolog size 16, PerfScore 109.78, instruction count 105, allocated bytes for code 469 (MethodHash=5c49e2da) for method System.IO.TextWriter:WriteAsync(System.String):System.Threading.Tasks.Task:this (FullOpts)
46 (11.06 % of base) - System.IO.TextWriter:WriteAsync(ushort):System.Threading.Tasks.Task:this
; Assembly listing for method System.IO.TextWriter:WriteAsync(ushort):System.Threading.Tasks.Task:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 7 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T04] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.IO.TextWriter>
-; V01 arg1 [V01,T05] ( 3, 3 ) ushort -> r15 single-def
+; V00 this [V00,T05] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.IO.TextWriter>
+; V01 arg1 [V01,T06] ( 3, 3 ) ushort -> r15 single-def
; V02 OutArgs [V02 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T07] ( 2, 4 ) ref -> r14 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
-;* V04 tmp2 [V04,T10] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
+; V03 tmp1 [V03,T08] ( 2, 4 ) ref -> r13 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+; V04 tmp2 [V04,T09] ( 2, 4 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
-; V06 tmp4 [V06,T06] ( 5, 4.50) ref -> r14
-; V07 tmp5 [V07,T01] ( 4, 8 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.TupleSlim`2[System.IO.TextWriter,ushort]>
+; V06 tmp4 [V06,T07] ( 5, 4.50) ref -> r13
+; V07 tmp5 [V07,T01] ( 4, 8 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.TupleSlim`2[System.IO.TextWriter,ushort]>
;* V08 tmp6 [V08 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-; V09 tmp7 [V09,T03] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
-; V10 tmp8 [V10,T09] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.TextWriter+<>c>
+; V09 tmp7 [V09,T04] ( 5, 5 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
+; V10 tmp8 [V10,T10] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.TextWriter+<>c>
;* V11 tmp9 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V12 tmp10 [V12,T08] ( 2, 4 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
+; V12 tmp10 [V12,T03] ( 3, 6 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
;* V13 tmp11 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V14 tmp12 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.Task>
; V15 tmp13 [V15,T00] ( 7, 11 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V16 tmp14 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
-; V17 tmp15 [V17,T02] ( 4, 6 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
+; V17 tmp15 [V17,T02] ( 4, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
;* V18 tmp16 [V18,T11] ( 0, 0 ) ref -> zero-ref single-def "field V08._source (fldOffset=0x0)" P-INDEP
;* V19 tmp17 [V19 ] ( 0, 0 ) ref -> zero-ref single-def "field V11._source (fldOffset=0x0)" P-INDEP
;* V20 cse0 [V20,T12] ( 0, 0 ) long -> zero-ref "CSE - moderate"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M12796_IG01:
push rbp
push r15
push r14
push r13
+ push r12
push rbx
- sub rsp, 16
+ push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r15d, esi
- ;; size=23 bbWeight=1 PerfScore 6.25
+ ;; size=22 bbWeight=1 PerfScore 8.00
G_M12796_IG02:
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov r14, gword ptr [rdi]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M12796_IG10
- ;; size=19 bbWeight=1 PerfScore 4.25
+ ;; size=32 bbWeight=1 PerfScore 6.50
G_M12796_IG03:
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__58_0
- mov r14, gword ptr [rdi]
- test r14, r14
+ mov r13, gword ptr [rdi]
+ test r13, r13
jne SHORT G_M12796_IG05
;; size=18 bbWeight=1 PerfScore 3.50
G_M12796_IG04:
mov rdi, 0xD1FFAB1E ; System.Action`1[System.Object]
call CORINFO_HELP_NEWSFAST
- mov r14, rax
+ mov r13, rax
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9
mov rsi, gword ptr [rdi]
test rsi, rsi
je G_M12796_IG11
- lea rdi, bword ptr [r14+0x08]
+ lea rdi, bword ptr [r13+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.IO.TextWriter+<>c:<WriteAsync>b__58_0(System.Object):this
- mov qword ptr [r14+0x18], rdi
+ mov qword ptr [r13+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__58_0
- mov rsi, r14
+ mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
;; size=81 bbWeight=0.50 PerfScore 4.62
G_M12796_IG05:
mov rdi, 0xD1FFAB1E ; System.TupleSlim`2[System.IO.TextWriter,ushort]
call CORINFO_HELP_NEWSFAST
- mov r13, rax
- lea rdi, bword ptr [r13+0x08]
+ mov r12, rax
+ lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
- mov word ptr [r13+0x10], r15w
+ mov word ptr [r12+0x10], r15w
mov rdi, 0xD1FFAB1E ; const ptr
mov rbx, gword ptr [rdi]
+ cmp byte ptr [r14], r14b
+ test rbx, rbx
+ je G_M12796_IG12
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task
call CORINFO_HELP_NEWSFAST
mov r15, rax
- test r14, r14
- je G_M12796_IG12
+ test r13, r13
+ je G_M12796_IG13
mov gword ptr [rsp], rbx
mov rdi, r15
- mov rsi, r14
- mov rdx, r13
+ mov rsi, r13
+ mov rdx, r12
xor rcx, rcx
mov r8d, 8
mov r9d, 0x2000
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
call [rax]System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
call [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
- mov rbx, rax
- test rbx, rbx
+ mov r14, rax
+ test r14, r14
jne SHORT G_M12796_IG07
- ;; size=134 bbWeight=1 PerfScore 19.75
+ ;; size=148 bbWeight=1 PerfScore 24.00
G_M12796_IG06:
or dword ptr [r15+0x34], 0xD1FFAB1E
jmp SHORT G_M12796_IG08
;; size=10 bbWeight=0.50 PerfScore 2.50
G_M12796_IG07:
mov rdi, 0xD1FFAB1E ; const ptr
- cmp rbx, gword ptr [rdi]
+ cmp r14, gword ptr [rdi]
je SHORT G_M12796_IG08
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
call [rax]System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
lea rdi, bword ptr [rax+0x08]
- mov rsi, rbx
+ mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
;; size=42 bbWeight=0.50 PerfScore 4.75
G_M12796_IG08:
mov rdi, r15
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
call [rax]System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
mov rax, r15
;; size=20 bbWeight=1 PerfScore 4.00
G_M12796_IG09:
- add rsp, 16
+ add rsp, 8
pop rbx
+ pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=1 PerfScore 3.75
+ ;; size=15 bbWeight=1 PerfScore 4.25
G_M12796_IG10:
mov rdi, 0xD1FFAB1E
mov esi, 0x7FF
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
jmp G_M12796_IG03
;; size=25 bbWeight=0 PerfScore 0.00
G_M12796_IG11:
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M12796_IG12:
+ mov edi, 47
+ mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
+ call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
+ int3
+ ;; size=18 bbWeight=0 PerfScore 0.00
+G_M12796_IG13:
mov edi, 28
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 416, prolog size 17, PerfScore 94.98, instruction count 92, allocated bytes for code 416 (MethodHash=6502ce03) for method System.IO.TextWriter:WriteAsync(ushort):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 462, prolog size 16, PerfScore 108.33, instruction count 103, allocated bytes for code 462 (MethodHash=6502ce03) for method System.IO.TextWriter:WriteAsync(ushort):System.Threading.Tasks.Task:this (FullOpts)
46 (10.87 % of base) - System.IO.TextWriter:WriteLineAsync(System.String):System.Threading.Tasks.Task:this
; Assembly listing for method System.IO.TextWriter:WriteLineAsync(System.String):System.Threading.Tasks.Task:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 7 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T04] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.IO.TextWriter>
-; V01 arg1 [V01,T05] ( 3, 3 ) ref -> r15 class-hnd single-def <System.String>
+; V00 this [V00,T05] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.IO.TextWriter>
+; V01 arg1 [V01,T06] ( 3, 3 ) ref -> r15 class-hnd single-def <System.String>
; V02 OutArgs [V02 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T07] ( 2, 4 ) ref -> r14 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
-;* V04 tmp2 [V04,T10] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
+; V03 tmp1 [V03,T08] ( 2, 4 ) ref -> r13 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+; V04 tmp2 [V04,T09] ( 2, 4 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
-; V06 tmp4 [V06,T06] ( 5, 4.50) ref -> r14
-; V07 tmp5 [V07,T01] ( 4, 8 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.TupleSlim`2[System.IO.TextWriter,System.String]>
+; V06 tmp4 [V06,T07] ( 5, 4.50) ref -> r13
+; V07 tmp5 [V07,T01] ( 4, 8 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.TupleSlim`2[System.IO.TextWriter,System.String]>
;* V08 tmp6 [V08 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-; V09 tmp7 [V09,T03] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
-; V10 tmp8 [V10,T09] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.TextWriter+<>c>
+; V09 tmp7 [V09,T04] ( 5, 5 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
+; V10 tmp8 [V10,T10] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.TextWriter+<>c>
;* V11 tmp9 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V12 tmp10 [V12,T08] ( 2, 4 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
+; V12 tmp10 [V12,T03] ( 3, 6 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
;* V13 tmp11 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V14 tmp12 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.Task>
; V15 tmp13 [V15,T00] ( 7, 11 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V16 tmp14 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
-; V17 tmp15 [V17,T02] ( 4, 6 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
+; V17 tmp15 [V17,T02] ( 4, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
;* V18 tmp16 [V18,T11] ( 0, 0 ) ref -> zero-ref single-def "field V08._source (fldOffset=0x0)" P-INDEP
;* V19 tmp17 [V19 ] ( 0, 0 ) ref -> zero-ref single-def "field V11._source (fldOffset=0x0)" P-INDEP
;* V20 cse0 [V20,T12] ( 0, 0 ) long -> zero-ref "CSE - moderate"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M49035_IG01:
push rbp
push r15
push r14
push r13
+ push r12
push rbx
- sub rsp, 16
+ push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r15, rsi
- ;; size=23 bbWeight=1 PerfScore 6.25
+ ;; size=22 bbWeight=1 PerfScore 8.00
G_M49035_IG02:
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov r14, gword ptr [rdi]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M49035_IG10
- ;; size=19 bbWeight=1 PerfScore 4.25
+ ;; size=32 bbWeight=1 PerfScore 6.50
G_M49035_IG03:
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__65_0
- mov r14, gword ptr [rdi]
- test r14, r14
+ mov r13, gword ptr [rdi]
+ test r13, r13
jne SHORT G_M49035_IG05
;; size=18 bbWeight=1 PerfScore 3.50
G_M49035_IG04:
mov rdi, 0xD1FFAB1E ; System.Action`1[System.Object]
call CORINFO_HELP_NEWSFAST
- mov r14, rax
+ mov r13, rax
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9
mov rsi, gword ptr [rdi]
test rsi, rsi
je G_M49035_IG11
- lea rdi, bword ptr [r14+0x08]
+ lea rdi, bword ptr [r13+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.IO.TextWriter+<>c:<WriteLineAsync>b__65_0(System.Object):this
- mov qword ptr [r14+0x18], rdi
+ mov qword ptr [r13+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__65_0
- mov rsi, r14
+ mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
;; size=81 bbWeight=0.50 PerfScore 4.62
G_M49035_IG05:
mov rdi, 0xD1FFAB1E ; System.TupleSlim`2[System.IO.TextWriter,System.String]
call CORINFO_HELP_NEWSFAST
- mov r13, rax
- lea rdi, bword ptr [r13+0x08]
+ mov r12, rax
+ lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
- lea rdi, bword ptr [r13+0x10]
+ lea rdi, bword ptr [r12+0x10]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; const ptr
mov rbx, gword ptr [rdi]
+ cmp byte ptr [r14], r14b
+ test rbx, rbx
+ je G_M49035_IG12
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task
call CORINFO_HELP_NEWSFAST
mov r15, rax
- test r14, r14
- je G_M49035_IG12
+ test r13, r13
+ je G_M49035_IG13
mov gword ptr [rsp], rbx
mov rdi, r15
- mov rsi, r14
- mov rdx, r13
+ mov rsi, r13
+ mov rdx, r12
xor rcx, rcx
mov r8d, 8
mov r9d, 0x2000
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
call [rax]System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
call [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
- mov rbx, rax
- test rbx, rbx
+ mov r14, rax
+ test r14, r14
jne SHORT G_M49035_IG07
- ;; size=141 bbWeight=1 PerfScore 20.50
+ ;; size=155 bbWeight=1 PerfScore 24.75
G_M49035_IG06:
or dword ptr [r15+0x34], 0xD1FFAB1E
jmp SHORT G_M49035_IG08
;; size=10 bbWeight=0.50 PerfScore 2.50
G_M49035_IG07:
mov rdi, 0xD1FFAB1E ; const ptr
- cmp rbx, gword ptr [rdi]
+ cmp r14, gword ptr [rdi]
je SHORT G_M49035_IG08
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
call [rax]System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
lea rdi, bword ptr [rax+0x08]
- mov rsi, rbx
+ mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
;; size=42 bbWeight=0.50 PerfScore 4.75
G_M49035_IG08:
mov rdi, r15
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
call [rax]System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
mov rax, r15
;; size=20 bbWeight=1 PerfScore 4.00
G_M49035_IG09:
- add rsp, 16
+ add rsp, 8
pop rbx
+ pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=1 PerfScore 3.75
+ ;; size=15 bbWeight=1 PerfScore 4.25
G_M49035_IG10:
mov rdi, 0xD1FFAB1E
mov esi, 0x7FF
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
jmp G_M49035_IG03
;; size=25 bbWeight=0 PerfScore 0.00
G_M49035_IG11:
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M49035_IG12:
+ mov edi, 47
+ mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
+ call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
+ int3
+ ;; size=18 bbWeight=0 PerfScore 0.00
+G_M49035_IG13:
mov edi, 28
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 423, prolog size 17, PerfScore 96.43, instruction count 94, allocated bytes for code 423 (MethodHash=32f84074) for method System.IO.TextWriter:WriteLineAsync(System.String):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 469, prolog size 16, PerfScore 109.78, instruction count 105, allocated bytes for code 469 (MethodHash=32f84074) for method System.IO.TextWriter:WriteLineAsync(System.String):System.Threading.Tasks.Task:this (FullOpts)
46 (11.06 % of base) - System.IO.TextWriter:WriteLineAsync(ushort):System.Threading.Tasks.Task:this
; Assembly listing for method System.IO.TextWriter:WriteLineAsync(ushort):System.Threading.Tasks.Task:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 7 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T04] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.IO.TextWriter>
-; V01 arg1 [V01,T05] ( 3, 3 ) ushort -> r15 single-def
+; V00 this [V00,T05] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.IO.TextWriter>
+; V01 arg1 [V01,T06] ( 3, 3 ) ushort -> r15 single-def
; V02 OutArgs [V02 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T07] ( 2, 4 ) ref -> r14 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
-;* V04 tmp2 [V04,T10] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
+; V03 tmp1 [V03,T08] ( 2, 4 ) ref -> r13 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+; V04 tmp2 [V04,T09] ( 2, 4 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
-; V06 tmp4 [V06,T06] ( 5, 4.50) ref -> r14
-; V07 tmp5 [V07,T01] ( 4, 8 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.TupleSlim`2[System.IO.TextWriter,ushort]>
+; V06 tmp4 [V06,T07] ( 5, 4.50) ref -> r13
+; V07 tmp5 [V07,T01] ( 4, 8 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.TupleSlim`2[System.IO.TextWriter,ushort]>
;* V08 tmp6 [V08 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-; V09 tmp7 [V09,T03] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
-; V10 tmp8 [V10,T09] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.TextWriter+<>c>
+; V09 tmp7 [V09,T04] ( 5, 5 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
+; V10 tmp8 [V10,T10] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.TextWriter+<>c>
;* V11 tmp9 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V12 tmp10 [V12,T08] ( 2, 4 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
+; V12 tmp10 [V12,T03] ( 3, 6 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
;* V13 tmp11 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V14 tmp12 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.Task>
; V15 tmp13 [V15,T00] ( 7, 11 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V16 tmp14 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
-; V17 tmp15 [V17,T02] ( 4, 6 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
+; V17 tmp15 [V17,T02] ( 4, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
;* V18 tmp16 [V18,T11] ( 0, 0 ) ref -> zero-ref single-def "field V08._source (fldOffset=0x0)" P-INDEP
;* V19 tmp17 [V19 ] ( 0, 0 ) ref -> zero-ref single-def "field V11._source (fldOffset=0x0)" P-INDEP
;* V20 cse0 [V20,T12] ( 0, 0 ) long -> zero-ref "CSE - moderate"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M60754_IG01:
push rbp
push r15
push r14
push r13
+ push r12
push rbx
- sub rsp, 16
+ push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r15d, esi
- ;; size=23 bbWeight=1 PerfScore 6.25
+ ;; size=22 bbWeight=1 PerfScore 8.00
G_M60754_IG02:
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov r14, gword ptr [rdi]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M60754_IG10
- ;; size=19 bbWeight=1 PerfScore 4.25
+ ;; size=32 bbWeight=1 PerfScore 6.50
G_M60754_IG03:
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__64_0
- mov r14, gword ptr [rdi]
- test r14, r14
+ mov r13, gword ptr [rdi]
+ test r13, r13
jne SHORT G_M60754_IG05
;; size=18 bbWeight=1 PerfScore 3.50
G_M60754_IG04:
mov rdi, 0xD1FFAB1E ; System.Action`1[System.Object]
call CORINFO_HELP_NEWSFAST
- mov r14, rax
+ mov r13, rax
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9
mov rsi, gword ptr [rdi]
test rsi, rsi
je G_M60754_IG11
- lea rdi, bword ptr [r14+0x08]
+ lea rdi, bword ptr [r13+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.IO.TextWriter+<>c:<WriteLineAsync>b__64_0(System.Object):this
- mov qword ptr [r14+0x18], rdi
+ mov qword ptr [r13+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__64_0
- mov rsi, r14
+ mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
;; size=81 bbWeight=0.50 PerfScore 4.62
G_M60754_IG05:
mov rdi, 0xD1FFAB1E ; System.TupleSlim`2[System.IO.TextWriter,ushort]
call CORINFO_HELP_NEWSFAST
- mov r13, rax
- lea rdi, bword ptr [r13+0x08]
+ mov r12, rax
+ lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
- mov word ptr [r13+0x10], r15w
+ mov word ptr [r12+0x10], r15w
mov rdi, 0xD1FFAB1E ; const ptr
mov rbx, gword ptr [rdi]
+ cmp byte ptr [r14], r14b
+ test rbx, rbx
+ je G_M60754_IG12
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task
call CORINFO_HELP_NEWSFAST
mov r15, rax
- test r14, r14
- je G_M60754_IG12
+ test r13, r13
+ je G_M60754_IG13
mov gword ptr [rsp], rbx
mov rdi, r15
- mov rsi, r14
- mov rdx, r13
+ mov rsi, r13
+ mov rdx, r12
xor rcx, rcx
mov r8d, 8
mov r9d, 0x2000
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
call [rax]System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
call [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
- mov rbx, rax
- test rbx, rbx
+ mov r14, rax
+ test r14, r14
jne SHORT G_M60754_IG07
- ;; size=134 bbWeight=1 PerfScore 19.75
+ ;; size=148 bbWeight=1 PerfScore 24.00
G_M60754_IG06:
or dword ptr [r15+0x34], 0xD1FFAB1E
jmp SHORT G_M60754_IG08
;; size=10 bbWeight=0.50 PerfScore 2.50
G_M60754_IG07:
mov rdi, 0xD1FFAB1E ; const ptr
- cmp rbx, gword ptr [rdi]
+ cmp r14, gword ptr [rdi]
je SHORT G_M60754_IG08
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
call [rax]System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
lea rdi, bword ptr [rax+0x08]
- mov rsi, rbx
+ mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
;; size=42 bbWeight=0.50 PerfScore 4.75
G_M60754_IG08:
mov rdi, r15
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
call [rax]System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
mov rax, r15
;; size=20 bbWeight=1 PerfScore 4.00
G_M60754_IG09:
- add rsp, 16
+ add rsp, 8
pop rbx
+ pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=1 PerfScore 3.75
+ ;; size=15 bbWeight=1 PerfScore 4.25
G_M60754_IG10:
mov rdi, 0xD1FFAB1E
mov esi, 0x7FF
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
jmp G_M60754_IG03
;; size=25 bbWeight=0 PerfScore 0.00
G_M60754_IG11:
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M60754_IG12:
+ mov edi, 47
+ mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
+ call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
+ int3
+ ;; size=18 bbWeight=0 PerfScore 0.00
+G_M60754_IG13:
mov edi, 28
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 416, prolog size 17, PerfScore 94.98, instruction count 92, allocated bytes for code 416 (MethodHash=716812ad) for method System.IO.TextWriter:WriteLineAsync(ushort):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 462, prolog size 16, PerfScore 108.33, instruction count 103, allocated bytes for code 462 (MethodHash=716812ad) for method System.IO.TextWriter:WriteLineAsync(ushort):System.Threading.Tasks.Task:this (FullOpts)
45 (2.98 % of base) - System.Environment:ReadXdgDirectory(System.String,System.String,System.String):System.String
; Assembly listing for method System.Environment:ReadXdgDirectory(System.String,System.String,System.String):System.String (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 58 single block inlinees; 33 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T24] ( 5, 5 ) ref -> [rbp-0x38] class-hnd EH-live single-def <System.String>
; V01 arg1 [V01,T09] ( 6, 39 ) ref -> rbx class-hnd single-def <System.String>
-; V02 arg2 [V02,T29] ( 3, 3 ) ref -> [rbp-0x40] class-hnd EH-live single-def <System.String>
-; V03 loc0 [V03,T30] ( 4, 4 ) ref -> rax class-hnd exact single-def <System.String>
+; V02 arg2 [V02,T30] ( 3, 3 ) ref -> [rbp-0x40] class-hnd EH-live single-def <System.String>
+; V03 loc0 [V03,T31] ( 4, 4 ) ref -> rax class-hnd exact single-def <System.String>
;* V04 loc1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.String>
; V05 loc2 [V05,T15] ( 6, 12 ) ref -> [rbp-0x48] class-hnd exact EH-live spill-single-def <System.IO.StreamReader>
; V06 loc3 [V06,T05] ( 13,181 ) ref -> r15 class-hnd exact <System.String>
; V07 loc4 [V07,T00] ( 38,510 ) int -> r14 ld-addr-op
; V08 loc5 [V08,T18] ( 3, 9 ) ubyte -> r12
;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
; V10 loc7 [V10,T36] ( 3, 3 ) ref -> rax class-hnd exact <System.String>
; V11 loc8 [V11,T41] ( 2, 2 ) ref -> [rbp-0x50] do-not-enreg[Z] must-init class-hnd EH-live <System.String>
;* V12 loc9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Exception>
; V13 OutArgs [V13 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V14 tmp1 [V14,T25] ( 3, 6 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.IO.StreamReader>
; V15 tmp2 [V15,T10] ( 2, 32 ) ref -> r15 class-hnd exact "dup spill" <System.String>
; V16 tmp3 [V16,T37] ( 3, 3 ) ref -> rax
;* V17 tmp4 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Exception>
;* V18 tmp5 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V19 tmp6 [V19,T16] ( 5, 10 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
; V20 tmp7 [V20,T23] ( 8, 7 ) ref -> r15 class-hnd "Inline return value spill temp" <System.String>
;* V21 tmp8 [V21 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V22 tmp9 [V22 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V23 tmp10 [V23 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V24 tmp11 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V25 tmp12 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V26 tmp13 [V26 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V27 tmp14 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V28 tmp15 [V28 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V29 tmp16 [V29,T51] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V30 tmp17 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V31 tmp18 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V32 tmp19 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V33 tmp20 [V33,T32] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
+; V33 tmp20 [V33,T33] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
; V34 tmp21 [V34,T35] ( 2, 4 ) int -> rsi "Inlining Arg"
;* V35 tmp22 [V35 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V36 tmp23 [V36 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V37 tmp24 [V37 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V38 tmp25 [V38,T38] ( 3, 3 ) ref -> r15 class-hnd "Inline return value spill temp" <System.String>
;* V39 tmp26 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V40 tmp27 [V40,T26] ( 3, 6 ) int -> rdx "Span.get_Item index"
+; V40 tmp27 [V40,T27] ( 3, 6 ) int -> rdx "Span.get_Item index"
;* V41 tmp28 [V41,T46] ( 0, 0 ) int -> zero-ref
;* V42 tmp29 [V42 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V43 tmp30 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V44 tmp31 [V44 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V45 tmp32 [V45 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V46 tmp33 [V46 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V47 tmp34 [V47 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V48 tmp35 [V48 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V49 tmp36 [V49 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V50 tmp37 [V50 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V51 tmp38 [V51,T33] ( 2, 4 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Text.UTF8Encoding+UTF8EncodingSealed>
+; V51 tmp38 [V51,T26] ( 3, 6 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Text.UTF8Encoding+UTF8EncodingSealed>
; V52 tmp39 [V52,T17] ( 4, 8 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.IO.FileStream>
;* V53 tmp40 [V53,T58] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V54 tmp41 [V54 ] ( 0, 0 ) ref -> zero-ref single-def
;* V55 tmp42 [V55 ] ( 0, 0 ) ref -> zero-ref single-def
;* V56 tmp43 [V56 ] ( 0, 0 ) int -> zero-ref
;* V57 tmp44 [V57 ] ( 0, 0 ) int -> zero-ref
;* V58 tmp45 [V58 ] ( 0, 0 ) int -> zero-ref
;* V59 tmp46 [V59 ] ( 0, 0 ) int -> zero-ref
;* V60 tmp47 [V60,T49] ( 0, 0 ) ref -> zero-ref single-def
;* V61 tmp48 [V61 ] ( 0, 0 ) ref -> zero-ref single-def
;* V62 tmp49 [V62 ] ( 0, 0 ) int -> zero-ref
;* V63 tmp50 [V63 ] ( 0, 0 ) int -> zero-ref
;* V64 tmp51 [V64 ] ( 0, 0 ) int -> zero-ref
;* V65 tmp52 [V65 ] ( 0, 0 ) int -> zero-ref
;* V66 tmp53 [V66 ] ( 0, 0 ) int -> zero-ref
;* V67 tmp54 [V67 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Nullable`1[int]>
; V68 tmp55 [V68,T42] ( 2, 2 ) ref -> rax class-hnd single-def "Inline return value spill temp" <System.IO.Strategies.FileStreamStrategy>
;* V69 tmp56 [V69 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Nullable`1[int]>
;* V70 tmp57 [V70 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.IO.Strategies.FileStreamStrategy>
; V71 tmp58 [V71,T19] ( 3, 6 ) ref -> [rbp-0x58] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.Strategies.UnixFileStreamStrategy>
; V72 tmp59 [V72,T43] ( 2, 2 ) ref -> rsi class-hnd single-def "Inline return value spill temp" <System.IO.Strategies.FileStreamStrategy>
; V73 tmp60 [V73,T20] ( 4, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.IO.Strategies.BufferedFileStreamStrategy>
; V74 tmp61 [V74,T06] ( 2, 64 ) ubyte -> rax "Inline return value spill temp"
; V75 tmp62 [V75,T01] ( 4,256 ) ushort -> rax "Inlining Arg"
;* V76 tmp63 [V76 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V77 tmp64 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V78 tmp65 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V79 tmp66 [V79 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
; V80 tmp67 [V80,T07] ( 2, 64 ) ubyte -> rax "Inline return value spill temp"
; V81 tmp68 [V81,T02] ( 4,256 ) ushort -> rax "Inlining Arg"
;* V82 tmp69 [V82 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V83 tmp70 [V83 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V84 tmp71 [V84 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V85 tmp72 [V85 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
; V86 tmp73 [V86,T08] ( 2, 64 ) ubyte -> rax "Inline return value spill temp"
; V87 tmp74 [V87,T03] ( 4,256 ) ushort -> rax "Inlining Arg"
;* V88 tmp75 [V88 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V89 tmp76 [V89 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V90 tmp77 [V90 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V91 tmp78 [V91 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V92 tmp79 [V92 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V93 tmp80 [V93,T14] ( 4, 13 ) int -> rdx "Inline return value spill temp"
; V94 tmp81 [V94,T13] ( 2, 16 ) int -> rdx "Inlining Arg"
;* V95 tmp82 [V95 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V96 tmp83 [V96,T12] ( 2, 16 ) byref -> rdi "Inlining Arg"
; V97 tmp84 [V97,T11] ( 4, 16 ) int -> rax "Inline return value spill temp"
;* V98 tmp85 [V98,T22] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V99 tmp86 [V99 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V100 tmp87 [V100 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V101 tmp88 [V101 ] ( 0, 0 ) byref -> zero-ref "field V21._reference (fldOffset=0x0)" P-INDEP
;* V102 tmp89 [V102 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
-; V103 tmp90 [V103,T31] ( 4, 4 ) byref -> rdi "field V22._reference (fldOffset=0x0)" P-INDEP
-; V104 tmp91 [V104,T28] ( 5, 5 ) int -> rsi "field V22._length (fldOffset=0x8)" P-INDEP
+; V103 tmp90 [V103,T32] ( 4, 4 ) byref -> rdi "field V22._reference (fldOffset=0x0)" P-INDEP
+; V104 tmp91 [V104,T29] ( 5, 5 ) int -> rsi "field V22._length (fldOffset=0x8)" P-INDEP
;* V105 tmp92 [V105 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
;* V106 tmp93 [V106 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
;* V107 tmp94 [V107 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
;* V108 tmp95 [V108 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
;* V109 tmp96 [V109,T50] ( 0, 0 ) byref -> zero-ref single-def "field V27._reference (fldOffset=0x0)" P-INDEP
;* V110 tmp97 [V110 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
;* V111 tmp98 [V111 ] ( 0, 0 ) byref -> zero-ref single-def "field V30._reference (fldOffset=0x0)" P-INDEP
;* V112 tmp99 [V112 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
; V113 tmp100 [V113,T44] ( 2, 2 ) byref -> rdi single-def "field V31._reference (fldOffset=0x0)" P-INDEP
; V114 tmp101 [V114,T47] ( 2, 2 ) int -> rsi "field V31._length (fldOffset=0x8)" P-INDEP
;* V115 tmp102 [V115 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
;* V116 tmp103 [V116 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
;* V117 tmp104 [V117 ] ( 0, 0 ) byref -> zero-ref "field V35._reference (fldOffset=0x0)" P-INDEP
;* V118 tmp105 [V118 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
; V119 tmp106 [V119,T39] ( 3, 3 ) byref -> r8 single-def "field V36._reference (fldOffset=0x0)" P-INDEP
;* V120 tmp107 [V120,T52] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
;* V121 tmp108 [V121 ] ( 0, 0 ) byref -> zero-ref single-def "field V39._reference (fldOffset=0x0)" P-INDEP
;* V122 tmp109 [V122 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
;* V123 tmp110 [V123 ] ( 0, 0 ) byref -> zero-ref single-def "field V43._reference (fldOffset=0x0)" P-INDEP
;* V124 tmp111 [V124 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
;* V125 tmp112 [V125 ] ( 0, 0 ) byref -> zero-ref single-def "field V44._reference (fldOffset=0x0)" P-INDEP
;* V126 tmp113 [V126 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP
;* V127 tmp114 [V127 ] ( 0, 0 ) byref -> zero-ref "field V45._reference (fldOffset=0x0)" P-INDEP
;* V128 tmp115 [V128 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
;* V129 tmp116 [V129 ] ( 0, 0 ) byref -> zero-ref "field V48._reference (fldOffset=0x0)" P-INDEP
;* V130 tmp117 [V130 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
; V131 tmp118 [V131,T45] ( 2, 2 ) byref -> rdx single-def "field V49._reference (fldOffset=0x0)" P-INDEP
;* V132 tmp119 [V132,T53] ( 0, 0 ) int -> zero-ref "field V49._length (fldOffset=0x8)" P-INDEP
;* V133 tmp120 [V133 ] ( 0, 0 ) ubyte -> zero-ref "field V67.hasValue (fldOffset=0x0)" P-INDEP
;* V134 tmp121 [V134 ] ( 0, 0 ) int -> zero-ref "field V67.value (fldOffset=0x4)" P-INDEP
;* V135 tmp122 [V135,T54] ( 0, 0 ) ubyte -> zero-ref "field V69.hasValue (fldOffset=0x0)" P-INDEP
;* V136 tmp123 [V136,T55] ( 0, 0 ) int -> zero-ref "field V69.value (fldOffset=0x4)" P-INDEP
;* V137 tmp124 [V137 ] ( 0, 0 ) byref -> zero-ref "field V76._reference (fldOffset=0x0)" P-INDEP
;* V138 tmp125 [V138 ] ( 0, 0 ) int -> zero-ref "field V76._length (fldOffset=0x8)" P-INDEP
;* V139 tmp126 [V139 ] ( 0, 0 ) byref -> zero-ref "field V77._reference (fldOffset=0x0)" P-INDEP
;* V140 tmp127 [V140 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x8)" P-INDEP
;* V141 tmp128 [V141 ] ( 0, 0 ) byref -> zero-ref "field V78._reference (fldOffset=0x0)" P-INDEP
;* V142 tmp129 [V142 ] ( 0, 0 ) int -> zero-ref "field V78._length (fldOffset=0x8)" P-INDEP
;* V143 tmp130 [V143 ] ( 0, 0 ) byref -> zero-ref "field V79._reference (fldOffset=0x0)" P-INDEP
;* V144 tmp131 [V144 ] ( 0, 0 ) int -> zero-ref "field V79._length (fldOffset=0x8)" P-INDEP
;* V145 tmp132 [V145 ] ( 0, 0 ) byref -> zero-ref "field V82._reference (fldOffset=0x0)" P-INDEP
;* V146 tmp133 [V146 ] ( 0, 0 ) int -> zero-ref "field V82._length (fldOffset=0x8)" P-INDEP
;* V147 tmp134 [V147 ] ( 0, 0 ) byref -> zero-ref "field V83._reference (fldOffset=0x0)" P-INDEP
;* V148 tmp135 [V148 ] ( 0, 0 ) int -> zero-ref "field V83._length (fldOffset=0x8)" P-INDEP
;* V149 tmp136 [V149 ] ( 0, 0 ) byref -> zero-ref "field V84._reference (fldOffset=0x0)" P-INDEP
;* V150 tmp137 [V150 ] ( 0, 0 ) int -> zero-ref "field V84._length (fldOffset=0x8)" P-INDEP
;* V151 tmp138 [V151 ] ( 0, 0 ) byref -> zero-ref "field V85._reference (fldOffset=0x0)" P-INDEP
;* V152 tmp139 [V152 ] ( 0, 0 ) int -> zero-ref "field V85._length (fldOffset=0x8)" P-INDEP
;* V153 tmp140 [V153 ] ( 0, 0 ) byref -> zero-ref "field V88._reference (fldOffset=0x0)" P-INDEP
;* V154 tmp141 [V154 ] ( 0, 0 ) int -> zero-ref "field V88._length (fldOffset=0x8)" P-INDEP
;* V155 tmp142 [V155 ] ( 0, 0 ) byref -> zero-ref "field V89._reference (fldOffset=0x0)" P-INDEP
;* V156 tmp143 [V156 ] ( 0, 0 ) int -> zero-ref "field V89._length (fldOffset=0x8)" P-INDEP
;* V157 tmp144 [V157 ] ( 0, 0 ) byref -> zero-ref "field V90._reference (fldOffset=0x0)" P-INDEP
;* V158 tmp145 [V158 ] ( 0, 0 ) int -> zero-ref "field V90._length (fldOffset=0x8)" P-INDEP
;* V159 tmp146 [V159 ] ( 0, 0 ) byref -> zero-ref "field V91._reference (fldOffset=0x0)" P-INDEP
;* V160 tmp147 [V160 ] ( 0, 0 ) int -> zero-ref "field V91._length (fldOffset=0x8)" P-INDEP
; V161 tmp148 [V161,T57] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V162 tmp149 [V162,T27] ( 3, 6 ) struct ( 8) [rbp-0x30] do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
+; V162 tmp149 [V162,T28] ( 3, 6 ) struct ( 8) [rbp-0x30] do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
;* V163 tmp150 [V163,T48] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V164 tmp151 [V164,T34] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V165 PSPSym [V165,T56] ( 1, 1 ) long -> [rbp-0x60] do-not-enreg[V] "PSPSym"
; V166 cse0 [V166,T21] ( 2, 8 ) int -> rdx "CSE - conservative"
; V167 cse1 [V167,T40] ( 2, 2 ) byref -> r8 "CSE - conservative"
; V168 cse2 [V168,T04] ( 13,244 ) int -> r13 "CSE - aggressive"
;
; Lcl frame size = 72
G_M35333_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 72
lea rbp, [rsp+0x70]
xor eax, eax
mov qword ptr [rbp-0x50], rax
mov qword ptr [rbp-0x60], rsp
mov gword ptr [rbp-0x38], rdi
mov gword ptr [rbp-0x40], rdx
mov rbx, rsi
;; size=40 bbWeight=1 PerfScore 11.25
G_M35333_IG02:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Environment:GetEnvironmentVariable(System.String):System.String
call [rax]System.Environment:GetEnvironmentVariable(System.String):System.String
test rax, rax
je SHORT G_M35333_IG04
cmp word ptr [rax+0x0C], 47
jne SHORT G_M35333_IG04
;; size=27 bbWeight=1 PerfScore 8.75
G_M35333_IG03:
add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M35333_IG04:
mov rdi, gword ptr [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Environment:GetXdgConfig(System.String):System.String
call [rax]System.Environment:GetXdgConfig(System.String):System.String
test rax, rax
- je G_M35333_IG49
+ je G_M35333_IG50
cmp dword ptr [rax+0x08], 0
jne SHORT G_M35333_IG05
mov r15, 0xD1FFAB1E ; 'user-dirs.dirs'
jmp SHORT G_M35333_IG07
;; size=43 bbWeight=1 PerfScore 11.75
G_M35333_IG05:
mov r8, 0xD1FFAB1E
lea rdi, bword ptr [rax+0x0C]
mov esi, dword ptr [rax+0x08]
lea edx, [rsi-0x01]
cmp edx, esi
- jae G_M35333_IG48
+ jae G_M35333_IG49
cmp word ptr [rdi+2*rdx], 47
je SHORT G_M35333_IG06
mov rdx, 0xD1FFAB1E
mov ecx, 1
mov r9d, 14
mov rax, 0xD1FFAB1E ; code for System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
call [rax]System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
mov r15, rax
jmp SHORT G_M35333_IG07
;; size=73 bbWeight=1 PerfScore 14.75
G_M35333_IG06:
mov rdx, r8
mov ecx, 14
mov rax, 0xD1FFAB1E ; code for System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
call [rax]System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
mov r15, rax
;; size=23 bbWeight=1 PerfScore 4.00
G_M35333_IG07:
mov rdi, r15
mov esi, 4
mov rax, 0xD1FFAB1E ; code for Interop+Sys:Access(System.String,int):int
call [rax]Interop+Sys:Access(System.String,int):int
test eax, eax
- jne G_M35333_IG44
+ jne G_M35333_IG45
;; size=28 bbWeight=1 PerfScore 5.00
G_M35333_IG08:
mov rdi, 0xD1FFAB1E ; System.IO.StreamReader
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov rdi, 0xD1FFAB1E ; const ptr
mov r13, gword ptr [rdi]
test r15, r15
je G_M35333_IG43
cmp dword ptr [r15+0x08], 0
je G_M35333_IG43
+ test r13, r13
+ je G_M35333_IG44
mov rdi, 0xD1FFAB1E ; System.IO.FileStream
call CORINFO_HELP_NEWFAST
mov r12, rax
xor edi, edi
mov qword ptr [rsp], rdi
mov rdi, r15
mov esi, 3
mov edx, 1
mov ecx, 1
mov r8d, 0x1000
xor r9d, r9d
mov rax, 0xD1FFAB1E ; code for System.IO.Strategies.FileStreamHelpers:ValidateArguments(System.String,int,int,int,int,int,long)
call [rax]System.IO.Strategies.FileStreamHelpers:ValidateArguments(System.String,int,int,int,int,int,long)
mov rdi, 0xD1FFAB1E ; System.IO.Strategies.UnixFileStreamStrategy
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0x58], rax
mov rsi, r15
xor edi, edi
mov qword ptr [rsp], rdi
mov byte ptr [rbp-0x30], 0
- ;; size=146 bbWeight=1 PerfScore 21.25
+ ;; size=155 bbWeight=1 PerfScore 22.50
G_M35333_IG09:
mov dword ptr [rbp-0x2C], edi
mov rdi, rax
mov rdx, qword ptr [rbp-0x30]
mov qword ptr [rsp+0x08], rdx
mov edx, 3
mov ecx, 1
mov r8d, 1
xor r9d, r9d
mov r10, 0xD1FFAB1E ; code for System.IO.Strategies.OSFileStreamStrategy:.ctor(System.String,int,int,int,int,long,System.Nullable`1[int]):this
call [r10]System.IO.Strategies.OSFileStreamStrategy:.ctor(System.String,int,int,int,int,long,System.Nullable`1[int]):this
mov rdi, 0xD1FFAB1E ; System.IO.Strategies.BufferedFileStreamStrategy
call CORINFO_HELP_NEWSFAST
mov r15, rax
lea rdi, bword ptr [r15+0x18]
mov rsi, gword ptr [rbp-0x58]
call CORINFO_HELP_ASSIGN_REF
mov dword ptr [r15+0x28], 0x1000
mov rsi, r15
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.IO.Strategies.FileStreamHelpers:WrapIfDerivedType(System.IO.FileStream,System.IO.Strategies.FileStreamStrategy):System.IO.Strategies.FileStreamStrategy
call [rax]System.IO.Strategies.FileStreamHelpers:WrapIfDerivedType(System.IO.FileStream,System.IO.Strategies.FileStreamStrategy):System.IO.Strategies.FileStreamStrategy
lea rdi, bword ptr [r12+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
mov rdi, r14
mov rsi, r12
mov rdx, r13
mov ecx, 1
mov r8d, 0x400
xor r9d, r9d
mov rax, 0xD1FFAB1E ; code for System.IO.StreamReader:.ctor(System.IO.Stream,System.Text.Encoding,ubyte,int,ubyte):this
call [rax]System.IO.StreamReader:.ctor(System.IO.Stream,System.Text.Encoding,ubyte,int,ubyte):this
mov rdi, r14
mov gword ptr [rbp-0x48], rdi
;; size=159 bbWeight=1 PerfScore 24.00
G_M35333_IG10:
jmp G_M35333_IG24
;; size=5 bbWeight=1 PerfScore 2.00
G_M35333_IG11:
xor r14d, r14d
jmp SHORT G_M35333_IG13
;; size=5 bbWeight=4 PerfScore 9.00
G_M35333_IG12:
inc r14d
;; size=3 bbWeight=16 PerfScore 4.00
G_M35333_IG13:
mov r13d, dword ptr [r15+0x08]
cmp r13d, r14d
mov rdi, gword ptr [rbp-0x48]
jle G_M35333_IG24
mov r8d, r14d
movzx rax, word ptr [r15+2*r8+0x0C]
cmp eax, 256
jae G_M35333_IG28
mov r8d, eax
mov rsi, 0xD1FFAB1E ; static handle
test byte ptr [r8+rsi], 128
jne SHORT G_M35333_IG12
;; size=57 bbWeight=32 PerfScore 392.00
G_M35333_IG14:
mov r8d, dword ptr [rbx+0x08]
mov rdi, r15
mov esi, r14d
mov rdx, rbx
xor ecx, ecx
mov rax, 0xD1FFAB1E ; code for System.String:CompareOrdinal(System.String,int,System.String,int,int):int
call [rax]System.String:CompareOrdinal(System.String,int,System.String,int,int):int
test eax, eax
mov rdi, gword ptr [rbp-0x48]
jne G_M35333_IG24
;; size=39 bbWeight=16 PerfScore 136.00
G_M35333_IG15:
add r14d, dword ptr [rbx+0x08]
;; size=4 bbWeight=4 PerfScore 12.00
G_M35333_IG16:
cmp r13d, r14d
jle SHORT G_M35333_IG17
cmp r14d, r13d
jae G_M35333_IG27
mov eax, r14d
movzx rax, word ptr [r15+2*rax+0x0C]
cmp eax, 256
jae G_M35333_IG31
mov rcx, 0xD1FFAB1E ; static handle
test byte ptr [rax+rcx], 128
jne G_M35333_IG30
;; size=54 bbWeight=32 PerfScore 328.00
G_M35333_IG17:
lea eax, [r13-0x04]
cmp eax, r14d
jle G_M35333_IG24
;; size=13 bbWeight=16 PerfScore 28.00
G_M35333_IG18:
cmp r14d, r13d
jae G_M35333_IG27
mov eax, r14d
cmp word ptr [r15+2*rax+0x0C], 61
jne G_M35333_IG24
;; size=25 bbWeight=4 PerfScore 22.00
G_M35333_IG19:
inc r14d
cmp r13d, r14d
jle SHORT G_M35333_IG20
cmp r14d, r13d
jae G_M35333_IG27
mov eax, r14d
movzx rax, word ptr [r15+2*rax+0x0C]
cmp eax, 256
jae G_M35333_IG33
mov rcx, 0xD1FFAB1E ; static handle
test byte ptr [rax+rcx], 128
jne SHORT G_M35333_IG19
;; size=53 bbWeight=32 PerfScore 336.00
G_M35333_IG20:
lea eax, [r13-0x03]
cmp eax, r14d
jle G_M35333_IG24
;; size=13 bbWeight=16 PerfScore 28.00
G_M35333_IG21:
cmp r14d, r13d
jae G_M35333_IG27
mov esi, r14d
cmp word ptr [r15+2*rsi+0x0C], 34
jne SHORT G_M35333_IG24
inc r14d
xor r12d, r12d
mov rdi, r15
mov esi, r14d
mov rdx, 0xD1FFAB1E ; '$HOME/'
xor ecx, ecx
mov r8d, 6
mov rax, 0xD1FFAB1E ; code for System.String:CompareOrdinal(System.String,int,System.String,int,int):int
call [rax]System.String:CompareOrdinal(System.String,int,System.String,int,int):int
test eax, eax
jne G_M35333_IG35
mov r12d, 1
add r14d, 6
;; size=81 bbWeight=4 PerfScore 49.00
G_M35333_IG22:
mov edx, r13d
sub edx, r14d
cmp r13d, r14d
jb SHORT G_M35333_IG26
movsxd rsi, r14d
lea rdi, bword ptr [r15+2*rsi+0x0C]
mov esi, 34
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [rax]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
test eax, eax
jl G_M35333_IG36
add eax, r14d
mov edx, eax
;; size=49 bbWeight=4 PerfScore 33.00
G_M35333_IG23:
cmp edx, r14d
jg G_M35333_IG37
;; size=9 bbWeight=4 PerfScore 5.00
G_M35333_IG24:
mov rdi, gword ptr [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.IO.StreamReader:ReadLine():System.String:this
call [rax]System.IO.StreamReader:ReadLine():System.String:this
mov r15, rax
test r15, r15
jne G_M35333_IG11
;; size=28 bbWeight=8 PerfScore 46.00
G_M35333_IG25:
jmp G_M35333_IG40
;; size=5 bbWeight=1 PerfScore 2.00
G_M35333_IG26:
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 PerfScore 0.00
G_M35333_IG27:
call CORINFO_HELP_RNGCHKFAIL
;; size=5 bbWeight=0 PerfScore 0.00
G_M35333_IG28:
mov edi, eax
mov rax, 0xD1FFAB1E ; code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
call [rax]System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
test eax, eax
mov rdi, gword ptr [rbp-0x48]
jne G_M35333_IG12
;; size=26 bbWeight=32 PerfScore 184.00
G_M35333_IG29:
jmp G_M35333_IG14
;; size=5 bbWeight=4 PerfScore 8.00
G_M35333_IG30:
inc r14d
jmp G_M35333_IG16
;; size=8 bbWeight=16 PerfScore 36.00
G_M35333_IG31:
mov edi, eax
mov rax, 0xD1FFAB1E ; code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
call [rax]System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
test eax, eax
mov rdi, gword ptr [rbp-0x48]
jne SHORT G_M35333_IG30
;; size=22 bbWeight=32 PerfScore 184.00
G_M35333_IG32:
jmp G_M35333_IG17
;; size=5 bbWeight=4 PerfScore 8.00
G_M35333_IG33:
mov edi, eax
mov rax, 0xD1FFAB1E ; code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
call [rax]System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
test eax, eax
mov rdi, gword ptr [rbp-0x48]
jne G_M35333_IG19
;; size=26 bbWeight=32 PerfScore 184.00
G_M35333_IG34:
jmp G_M35333_IG20
;; size=5 bbWeight=4 PerfScore 8.00
G_M35333_IG35:
cmp r14d, r13d
jae SHORT G_M35333_IG27
mov esi, r14d
cmp word ptr [r15+2*rsi+0x0C], 47
jne G_M35333_IG24
mov rdi, gword ptr [rbp-0x48]
jmp G_M35333_IG22
;; size=30 bbWeight=4 PerfScore 34.00
G_M35333_IG36:
mov edx, eax
jmp G_M35333_IG23
;; size=7 bbWeight=4 PerfScore 9.00
G_M35333_IG37:
sub edx, r14d
mov rdi, r15
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
test r12d, r12d
jne SHORT G_M35333_IG38
jmp SHORT G_M35333_IG39
;; size=28 bbWeight=1 PerfScore 7.25
G_M35333_IG38:
mov rdi, gword ptr [rbp-0x38]
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.IO.Path:Combine(System.String,System.String):System.String
call [rax]System.IO.Path:Combine(System.String,System.String):System.String
;; size=19 bbWeight=1 PerfScore 4.50
G_M35333_IG39:
mov gword ptr [rbp-0x50], rax
jmp SHORT G_M35333_IG41
;; size=6 bbWeight=1 PerfScore 3.00
G_M35333_IG40:
mov rdi, gword ptr [rbp-0x48]
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.IO.StreamReader:Dispose(ubyte):this
call [rax]System.IO.StreamReader:Dispose(ubyte):this
mov rdi, gword ptr [rbp-0x48]
call System.GC:_SuppressFinalize(System.Object)
- jmp SHORT G_M35333_IG44
+ jmp SHORT G_M35333_IG45
;; size=32 bbWeight=1 PerfScore 8.50
G_M35333_IG41:
mov rdi, rsp
- call G_M35333_IG50
+ call G_M35333_IG51
;; size=8 bbWeight=1 PerfScore 1.25
G_M35333_IG42:
- jmp SHORT G_M35333_IG46
+ jmp SHORT G_M35333_IG47
;; size=2 bbWeight=1 PerfScore 2.00
G_M35333_IG43:
mov edi, 0x18FD3
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rsi, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)
call [rax]System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)
int3
;; size=39 bbWeight=0 PerfScore 0.00
G_M35333_IG44:
+ mov edi, 0x1A695
+ mov rsi, 0xD1FFAB1E
+ call CORINFO_HELP_STRCNS
+ mov rdi, rax
+ mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String)
+ call [rax]System.ArgumentNullException:Throw(System.String)
+ int3
+ ;; size=36 bbWeight=0 PerfScore 0.00
+G_M35333_IG45:
mov rdi, gword ptr [rbp-0x38]
mov rsi, gword ptr [rbp-0x40]
mov rax, 0xD1FFAB1E ; code for System.IO.Path:Combine(System.String,System.String):System.String
call [rax]System.IO.Path:Combine(System.String,System.String):System.String
nop
;; size=21 bbWeight=1 PerfScore 5.50
-G_M35333_IG45:
+G_M35333_IG46:
add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M35333_IG46:
+G_M35333_IG47:
mov rax, gword ptr [rbp-0x50]
;; size=4 bbWeight=1 PerfScore 1.00
-G_M35333_IG47:
+G_M35333_IG48:
add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M35333_IG48:
+G_M35333_IG49:
call CORINFO_HELP_RNGCHKFAIL
;; size=5 bbWeight=0 PerfScore 0.00
-G_M35333_IG49:
+G_M35333_IG50:
mov edi, 0x1A851
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String)
call [rax]System.ArgumentNullException:Throw(System.String)
int3
;; size=36 bbWeight=0 PerfScore 0.00
-G_M35333_IG50:
+G_M35333_IG51:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
mov rbp, qword ptr [rdi+0x10]
mov qword ptr [rsp+0x10], rbp
lea rbp, [rbp+0x70]
;; size=27 bbWeight=1 PerfScore 9.75
-G_M35333_IG51:
+G_M35333_IG52:
mov rdi, gword ptr [rbp-0x48]
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.IO.StreamReader:Dispose(ubyte):this
call [rax]System.IO.StreamReader:Dispose(ubyte):this
mov rdi, gword ptr [rbp-0x48]
call System.GC:_SuppressFinalize(System.Object)
nop
;; size=31 bbWeight=1 PerfScore 6.75
-G_M35333_IG52:
+G_M35333_IG53:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M35333_IG53:
+G_M35333_IG54:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
mov rbp, qword ptr [rdi+0x10]
mov qword ptr [rsp+0x10], rbp
lea rbp, [rbp+0x70]
;; size=27 bbWeight=0 PerfScore 0.00
-G_M35333_IG54:
- lea rax, G_M35333_IG44
- ;; size=7 bbWeight=0 PerfScore 0.00
G_M35333_IG55:
+ lea rax, G_M35333_IG45
+ ;; size=7 bbWeight=0 PerfScore 0.00
+G_M35333_IG56:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1508, prolog size 40, PerfScore 2405.05, instruction count 372, allocated bytes for code 1508 (MethodHash=a8cb75fa) for method System.Environment:ReadXdgDirectory(System.String,System.String,System.String):System.String (FullOpts)
+; Total bytes of code 1553, prolog size 40, PerfScore 2410.80, instruction count 381, allocated bytes for code 1553 (MethodHash=a8cb75fa) for method System.Environment:ReadXdgDirectory(System.String,System.String,System.String):System.String (FullOpts)
44 (12.26 % of base) - System.Diagnostics.Tracing.EventPipeEventDispatcher:StartDispatchTask(ulong,System.DateTime,long,long):this
; Assembly listing for method System.Diagnostics.Tracing.EventPipeEventDispatcher:StartDispatchTask(ulong,System.DateTime,long,long):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 9 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 6, 6 ) ref -> rbx this class-hnd single-def <System.Diagnostics.Tracing.EventPipeEventDispatcher>
-; V01 arg1 [V01,T05] ( 3, 3 ) long -> r15 single-def
+; V01 arg1 [V01,T06] ( 3, 3 ) long -> r15 single-def
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.DateTime>
-; V03 arg3 [V03,T06] ( 3, 3 ) long -> r14 single-def
-; V04 arg4 [V04,T07] ( 3, 3 ) long -> r13 single-def
+; V03 arg3 [V03,T07] ( 3, 3 ) long -> r14 single-def
+; V04 arg4 [V04,T08] ( 3, 3 ) long -> r13 single-def
; V05 loc0 [V05,T01] ( 8, 8 ) ref -> [rbp-0x30] class-hnd exact spill-single-def <System.Diagnostics.Tracing.EventPipeEventDispatcher+<>c__DisplayClass12_0>
; V06 OutArgs [V06 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Diagnostics.Tracing.EventPipeEventDispatcher+<>c__DisplayClass12_0>
-; V08 tmp2 [V08,T08] ( 2, 4 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <System.Threading.CancellationTokenSource>
+; V08 tmp2 [V08,T09] ( 2, 4 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <System.Threading.CancellationTokenSource>
; V09 tmp3 [V09,T03] ( 4, 8 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Action>
-;* V10 tmp4 [V10,T11] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
+; V10 tmp4 [V10,T10] ( 2, 4 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
;* V11 tmp5 [V11 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
;* V12 tmp6 [V12 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V13 tmp7 [V13,T09] ( 2, 4 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
+; V13 tmp7 [V13,T05] ( 3, 6 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
;* V14 tmp8 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V15 tmp9 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.Task>
; V16 tmp10 [V16,T00] ( 7, 11 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V17 tmp11 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
; V18 tmp12 [V18,T04] ( 4, 6 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
-; V19 tmp13 [V19,T10] ( 2, 2 ) long -> r12 single-def "field V02._dateData (fldOffset=0x0)" P-INDEP
+; V19 tmp13 [V19,T11] ( 2, 2 ) long -> r12 single-def "field V02._dateData (fldOffset=0x0)" P-INDEP
;* V20 tmp14 [V20,T12] ( 0, 0 ) ref -> zero-ref single-def "field V11._source (fldOffset=0x0)" P-INDEP
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref single-def "field V12._source (fldOffset=0x0)" P-INDEP
;
; Lcl frame size = 24
G_M33225_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
lea rbp, [rsp+0x40]
mov rbx, rdi
mov r15, rsi
mov r12, rdx
mov r14, rcx
mov r13, r8
;; size=34 bbWeight=1 PerfScore 8.00
G_M33225_IG02:
mov rdi, 0xD1FFAB1E ; System.Diagnostics.Tracing.EventPipeEventDispatcher+<>c__DisplayClass12_0
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0x30], rax
lea rdi, bword ptr [rax+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rax, gword ptr [rbp-0x30]
mov qword ptr [rax+0x18], r15
mov qword ptr [rax+0x30], r12
mov qword ptr [rax+0x20], r14
mov qword ptr [rax+0x28], r13
mov rdi, 0xD1FFAB1E ; System.Threading.CancellationTokenSource
call CORINFO_HELP_NEWSFAST
lea rdi, bword ptr [rbx+0x08]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
mov rsi, gword ptr [rbx+0x10]
mov r15, gword ptr [rbp-0x30]
lea rdi, bword ptr [r15+0x10]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Action
call CORINFO_HELP_NEWSFAST
mov r14, rax
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov r13, gword ptr [rdi]
lea rdi, bword ptr [r14+0x08]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventPipeEventDispatcher+<>c__DisplayClass12_0:<StartDispatchTask>b__0():this
mov qword ptr [r14+0x18], rdi
mov rdi, 0xD1FFAB1E ; const ptr
mov r15, gword ptr [rdi]
+ cmp byte ptr [r13], r13b
+ test r15, r15
+ je G_M33225_IG08
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov gword ptr [rsp], r15
mov rdi, r13
mov rsi, r14
xor rcx, rcx
xor rdx, rdx
mov r8d, 2
mov r9d, 0x2000
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
call [rax]System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
call [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
mov r15, rax
- test r15, r15
- jne SHORT G_M33225_IG04
- ;; size=228 bbWeight=1 PerfScore 35.25
+ ;; size=249 bbWeight=1 PerfScore 40.50
G_M33225_IG03:
+ test r15, r15
+ jne SHORT G_M33225_IG05
+ ;; size=5 bbWeight=1 PerfScore 1.25
+G_M33225_IG04:
or dword ptr [r13+0x34], 0xD1FFAB1E
- jmp SHORT G_M33225_IG05
+ jmp SHORT G_M33225_IG06
;; size=10 bbWeight=0.50 PerfScore 2.50
-G_M33225_IG04:
+G_M33225_IG05:
mov rdi, 0xD1FFAB1E ; const ptr
cmp r15, gword ptr [rdi]
- je SHORT G_M33225_IG05
+ je SHORT G_M33225_IG06
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
call [rax]System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
lea rdi, bword ptr [rax+0x08]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
;; size=42 bbWeight=0.50 PerfScore 4.75
-G_M33225_IG05:
+G_M33225_IG06:
mov rdi, r13
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
call [rax]System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
lea rdi, bword ptr [rbx+0x10]
mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
nop
;; size=30 bbWeight=1 PerfScore 5.75
-G_M33225_IG06:
+G_M33225_IG07:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
+G_M33225_IG08:
+ mov edi, 47
+ mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
+ call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
+ int3
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 359, prolog size 19, PerfScore 96.40, instruction count 87, allocated bytes for code 359 (MethodHash=cfcf7e36) for method System.Diagnostics.Tracing.EventPipeEventDispatcher:StartDispatchTask(ulong,System.DateTime,long,long):this (FullOpts)
+; Total bytes of code 403, prolog size 19, PerfScore 107.30, instruction count 96, allocated bytes for code 403 (MethodHash=cfcf7e36) for method System.Diagnostics.Tracing.EventPipeEventDispatcher:StartDispatchTask(ulong,System.DateTime,long,long):this (FullOpts)
44 (7.87 % of base) - System.IO.TextWriter:WriteAsync(System.ReadOnlyMemory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.Task:this
; Assembly listing for method System.IO.TextWriter:WriteAsync(System.ReadOnlyMemory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 10 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 5, 3.50) ref -> rbx this class-hnd single-def <System.IO.TextWriter>
; V01 arg1 [V01,T03] ( 5, 3.50) struct (16) [rbp-0x38] do-not-enreg[SA] multireg-arg single-def <System.ReadOnlyMemory`1[ushort]>
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.Threading.CancellationToken>
; V03 loc0 [V03 ] ( 4, 2 ) struct (16) [rbp-0x48] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[ushort]>
; V04 OutArgs [V04 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T09] ( 2, 2 ) ref -> rsi class-hnd single-def "impAppendStmt" <ushort[]>
-; V06 tmp2 [V06,T12] ( 2, 2 ) int -> rdx "impAppendStmt"
-; V07 tmp3 [V07,T10] ( 2, 2 ) ref -> r14 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
-;* V08 tmp4 [V08,T13] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
+; V05 tmp1 [V05,T10] ( 2, 2 ) ref -> rsi class-hnd single-def "impAppendStmt" <ushort[]>
+; V06 tmp2 [V06,T13] ( 2, 2 ) int -> rdx "impAppendStmt"
+; V07 tmp3 [V07,T11] ( 2, 2 ) ref -> r13 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+; V08 tmp4 [V08,T12] ( 2, 2 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref single-def
-; V10 tmp6 [V10,T08] ( 5, 2.50) ref -> r14
-; V11 tmp7 [V11,T05] ( 4, 4 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.TupleSlim`2[System.IO.TextWriter,System.ReadOnlyMemory`1[ushort]]>
+; V10 tmp6 [V10,T09] ( 5, 2.50) ref -> r13
+; V11 tmp7 [V11,T05] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.TupleSlim`2[System.IO.TextWriter,System.ReadOnlyMemory`1[ushort]]>
;* V12 tmp8 [V12 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-; V13 tmp9 [V13,T04] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
+; V13 tmp9 [V13,T04] ( 5, 5 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
;* V14 tmp10 [V14,T14] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V15 tmp11 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
; V16 tmp12 [V16,T07] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.TextWriter+<>c>
-; V17 tmp13 [V17,T11] ( 2, 2 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
+; V17 tmp13 [V17,T08] ( 3, 3 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
;* V18 tmp14 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V19 tmp15 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.Task>
-; V20 tmp16 [V20,T00] ( 7, 7 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
+; V20 tmp16 [V20,T00] ( 7, 7 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V21 tmp17 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
; V22 tmp18 [V22,T06] ( 4, 4 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
; V23 tmp19 [V23,T02] ( 5, 3.50) ref -> r15 single-def "field V02._source (fldOffset=0x0)" P-INDEP
; V24 tmp20 [V24 ] ( 2, 1 ) ref -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V03._array (fldOffset=0x0)" P-DEP
; V25 tmp21 [V25 ] ( 2, 1 ) int -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V03._offset (fldOffset=0x8)" P-DEP
; V26 tmp22 [V26 ] ( 2, 1 ) int -> [rbp-0x3C] do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0xc)" P-DEP
;* V27 tmp23 [V27 ] ( 0, 0 ) ref -> zero-ref single-def "field V12._source (fldOffset=0x0)" P-INDEP
;* V28 cse0 [V28,T15] ( 0, 0 ) long -> zero-ref "CSE - moderate"
;
; Lcl frame size = 40
G_M7148_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 40
lea rbp, [rsp+0x50]
xor eax, eax
mov qword ptr [rbp-0x48], rax
mov gword ptr [rbp-0x38], rsi
mov qword ptr [rbp-0x30], rdx
mov rbx, rdi
mov r15, rcx
;; size=39 bbWeight=1 PerfScore 10.50
G_M7148_IG02:
test r15, r15
je SHORT G_M7148_IG05
;; size=5 bbWeight=1 PerfScore 1.25
G_M7148_IG03:
cmp dword ptr [r15+0x20], 0
je SHORT G_M7148_IG05
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:FromCanceled(System.Threading.CancellationToken):System.Threading.Tasks.Task
call [rax]System.Threading.Tasks.Task:FromCanceled(System.Threading.CancellationToken):System.Threading.Tasks.Task
nop
;; size=23 bbWeight=0.50 PerfScore 3.88
G_M7148_IG04:
add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M7148_IG05:
mov rdi, gword ptr [rbp-0x38]
mov rsi, qword ptr [rbp-0x30]
lea rdx, [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArray[ushort](System.ReadOnlyMemory`1[ushort],byref):ubyte
call [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArray[ushort](System.ReadOnlyMemory`1[ushort],byref):ubyte
test eax, eax
jne G_M7148_IG11
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov r14, gword ptr [rdi]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M7148_IG13
- ;; size=51 bbWeight=0.50 PerfScore 5.62
+ ;; size=64 bbWeight=0.50 PerfScore 6.75
G_M7148_IG06:
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__63_0
- mov r14, gword ptr [rdi]
- test r14, r14
+ mov r13, gword ptr [rdi]
+ test r13, r13
jne SHORT G_M7148_IG07
mov rdi, 0xD1FFAB1E ; System.Action`1[System.Object]
call CORINFO_HELP_NEWSFAST
- mov r14, rax
+ mov r13, rax
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9
mov rsi, gword ptr [rdi]
test rsi, rsi
je G_M7148_IG14
- lea rdi, bword ptr [r14+0x08]
+ lea rdi, bword ptr [r13+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.IO.TextWriter+<>c:<WriteAsync>b__63_0(System.Object):this
- mov qword ptr [r14+0x18], rdi
+ mov qword ptr [r13+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__63_0
- mov rsi, r14
+ mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
;; size=99 bbWeight=0.50 PerfScore 6.38
G_M7148_IG07:
mov rdi, 0xD1FFAB1E ; System.TupleSlim`2[System.IO.TextWriter,System.ReadOnlyMemory`1[ushort]]
call CORINFO_HELP_NEWSFAST
- mov r13, rax
- lea rdi, bword ptr [r13+0x08]
+ mov r12, rax
+ lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
- lea rdi, bword ptr [r13+0x10]
+ lea rdi, bword ptr [r12+0x10]
lea rsi, bword ptr [rbp-0x38]
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov rdi, 0xD1FFAB1E ; const ptr
mov rbx, gword ptr [rdi]
+ cmp byte ptr [r14], r14b
+ test rbx, rbx
+ je G_M7148_IG15
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task
call CORINFO_HELP_NEWSFAST
- mov r12, rax
- test r14, r14
- je G_M7148_IG15
+ mov r14, rax
+ test r13, r13
+ je G_M7148_IG16
mov gword ptr [rsp], rbx
- mov rdi, r12
- mov rsi, r14
- mov rdx, r13
+ mov rdi, r14
+ mov rsi, r13
+ mov rdx, r12
mov rcx, r15
mov r8d, 8
mov r9d, 0x2000
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
call [rax]System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
call [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
mov r15, rax
test r15, r15
jne SHORT G_M7148_IG08
- or dword ptr [r12+0x34], 0xD1FFAB1E
+ or dword ptr [r14+0x34], 0xD1FFAB1E
jmp SHORT G_M7148_IG09
- ;; size=156 bbWeight=0.50 PerfScore 13.38
+ ;; size=169 bbWeight=0.50 PerfScore 15.50
G_M7148_IG08:
mov rdi, 0xD1FFAB1E ; const ptr
cmp r15, gword ptr [rdi]
je SHORT G_M7148_IG09
- mov rdi, r12
+ mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
call [rax]System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
lea rdi, bword ptr [rax+0x08]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
;; size=42 bbWeight=0.50 PerfScore 4.75
G_M7148_IG09:
- mov rdi, r12
+ mov rdi, r14
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
call [rax]System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
- mov rax, r12
+ mov rax, r14
;; size=20 bbWeight=0.50 PerfScore 2.00
G_M7148_IG10:
add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M7148_IG11:
mov rsi, gword ptr [rbp-0x48]
mov edx, dword ptr [rbp-0x40]
mov rdi, rbx
mov ecx, dword ptr [rbp-0x3C]
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x78]
call [rax]System.IO.TextWriter:WriteAsync(ushort[],int,int):System.Threading.Tasks.Task:this
nop
;; size=23 bbWeight=0.50 PerfScore 5.25
G_M7148_IG12:
add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M7148_IG13:
mov rdi, 0xD1FFAB1E
mov esi, 0x7FF
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
jmp G_M7148_IG06
;; size=25 bbWeight=0 PerfScore 0.00
G_M7148_IG14:
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M7148_IG15:
+ mov edi, 47
+ mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
+ call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
+ int3
+ ;; size=18 bbWeight=0 PerfScore 0.00
+G_M7148_IG16:
mov edi, 28
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 559, prolog size 25, PerfScore 115.28, instruction count 140, allocated bytes for code 559 (MethodHash=53eee413) for method System.IO.TextWriter:WriteAsync(System.ReadOnlyMemory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 603, prolog size 25, PerfScore 122.93, instruction count 149, allocated bytes for code 603 (MethodHash=53eee413) for method System.IO.TextWriter:WriteAsync(System.ReadOnlyMemory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
44 (7.86 % of base) - System.IO.TextWriter:WriteLineAsync(System.ReadOnlyMemory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.Task:this
; Assembly listing for method System.IO.TextWriter:WriteLineAsync(System.ReadOnlyMemory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 10 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 5, 3.50) ref -> rbx this class-hnd single-def <System.IO.TextWriter>
; V01 arg1 [V01,T03] ( 5, 3.50) struct (16) [rbp-0x38] do-not-enreg[SA] multireg-arg single-def <System.ReadOnlyMemory`1[ushort]>
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.Threading.CancellationToken>
; V03 loc0 [V03 ] ( 4, 2 ) struct (16) [rbp-0x48] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[ushort]>
; V04 OutArgs [V04 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T09] ( 2, 2 ) ref -> rsi class-hnd single-def "impAppendStmt" <ushort[]>
-; V06 tmp2 [V06,T12] ( 2, 2 ) int -> rdx "impAppendStmt"
-; V07 tmp3 [V07,T10] ( 2, 2 ) ref -> r14 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
-;* V08 tmp4 [V08,T13] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
+; V05 tmp1 [V05,T10] ( 2, 2 ) ref -> rsi class-hnd single-def "impAppendStmt" <ushort[]>
+; V06 tmp2 [V06,T13] ( 2, 2 ) int -> rdx "impAppendStmt"
+; V07 tmp3 [V07,T11] ( 2, 2 ) ref -> r13 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+; V08 tmp4 [V08,T12] ( 2, 2 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref single-def
-; V10 tmp6 [V10,T08] ( 5, 2.50) ref -> r14
-; V11 tmp7 [V11,T05] ( 4, 4 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.TupleSlim`2[System.IO.TextWriter,System.ReadOnlyMemory`1[ushort]]>
+; V10 tmp6 [V10,T09] ( 5, 2.50) ref -> r13
+; V11 tmp7 [V11,T05] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.TupleSlim`2[System.IO.TextWriter,System.ReadOnlyMemory`1[ushort]]>
;* V12 tmp8 [V12 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-; V13 tmp9 [V13,T04] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
+; V13 tmp9 [V13,T04] ( 5, 5 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
;* V14 tmp10 [V14,T14] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V15 tmp11 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
; V16 tmp12 [V16,T07] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.TextWriter+<>c>
-; V17 tmp13 [V17,T11] ( 2, 2 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
+; V17 tmp13 [V17,T08] ( 3, 3 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
;* V18 tmp14 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V19 tmp15 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.Task>
-; V20 tmp16 [V20,T00] ( 7, 7 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
+; V20 tmp16 [V20,T00] ( 7, 7 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V21 tmp17 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
; V22 tmp18 [V22,T06] ( 4, 4 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
; V23 tmp19 [V23,T02] ( 5, 3.50) ref -> r15 single-def "field V02._source (fldOffset=0x0)" P-INDEP
; V24 tmp20 [V24 ] ( 2, 1 ) ref -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V03._array (fldOffset=0x0)" P-DEP
; V25 tmp21 [V25 ] ( 2, 1 ) int -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V03._offset (fldOffset=0x8)" P-DEP
; V26 tmp22 [V26 ] ( 2, 1 ) int -> [rbp-0x3C] do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0xc)" P-DEP
;* V27 tmp23 [V27 ] ( 0, 0 ) ref -> zero-ref single-def "field V12._source (fldOffset=0x0)" P-INDEP
;* V28 cse0 [V28,T15] ( 0, 0 ) long -> zero-ref "CSE - moderate"
;
; Lcl frame size = 40
G_M28994_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 40
lea rbp, [rsp+0x50]
xor eax, eax
mov qword ptr [rbp-0x48], rax
mov gword ptr [rbp-0x38], rsi
mov qword ptr [rbp-0x30], rdx
mov rbx, rdi
mov r15, rcx
;; size=39 bbWeight=1 PerfScore 10.50
G_M28994_IG02:
test r15, r15
je SHORT G_M28994_IG05
;; size=5 bbWeight=1 PerfScore 1.25
G_M28994_IG03:
cmp dword ptr [r15+0x20], 0
je SHORT G_M28994_IG05
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:FromCanceled(System.Threading.CancellationToken):System.Threading.Tasks.Task
call [rax]System.Threading.Tasks.Task:FromCanceled(System.Threading.CancellationToken):System.Threading.Tasks.Task
nop
;; size=23 bbWeight=0.50 PerfScore 3.88
G_M28994_IG04:
add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M28994_IG05:
mov rdi, gword ptr [rbp-0x38]
mov rsi, qword ptr [rbp-0x30]
lea rdx, [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArray[ushort](System.ReadOnlyMemory`1[ushort],byref):ubyte
call [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArray[ushort](System.ReadOnlyMemory`1[ushort],byref):ubyte
test eax, eax
jne G_M28994_IG11
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov r14, gword ptr [rdi]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M28994_IG13
- ;; size=51 bbWeight=0.50 PerfScore 5.62
+ ;; size=64 bbWeight=0.50 PerfScore 6.75
G_M28994_IG06:
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__69_0
- mov r14, gword ptr [rdi]
- test r14, r14
+ mov r13, gword ptr [rdi]
+ test r13, r13
jne SHORT G_M28994_IG07
mov rdi, 0xD1FFAB1E ; System.Action`1[System.Object]
call CORINFO_HELP_NEWSFAST
- mov r14, rax
+ mov r13, rax
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9
mov rsi, gword ptr [rdi]
test rsi, rsi
je G_M28994_IG14
- lea rdi, bword ptr [r14+0x08]
+ lea rdi, bword ptr [r13+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.IO.TextWriter+<>c:<WriteLineAsync>b__69_0(System.Object):this
- mov qword ptr [r14+0x18], rdi
+ mov qword ptr [r13+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__69_0
- mov rsi, r14
+ mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
;; size=99 bbWeight=0.50 PerfScore 6.38
G_M28994_IG07:
mov rdi, 0xD1FFAB1E ; System.TupleSlim`2[System.IO.TextWriter,System.ReadOnlyMemory`1[ushort]]
call CORINFO_HELP_NEWSFAST
- mov r13, rax
- lea rdi, bword ptr [r13+0x08]
+ mov r12, rax
+ lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
- lea rdi, bword ptr [r13+0x10]
+ lea rdi, bword ptr [r12+0x10]
lea rsi, bword ptr [rbp-0x38]
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov rdi, 0xD1FFAB1E ; const ptr
mov rbx, gword ptr [rdi]
+ cmp byte ptr [r14], r14b
+ test rbx, rbx
+ je G_M28994_IG15
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task
call CORINFO_HELP_NEWSFAST
- mov r12, rax
- test r14, r14
- je G_M28994_IG15
+ mov r14, rax
+ test r13, r13
+ je G_M28994_IG16
mov gword ptr [rsp], rbx
- mov rdi, r12
- mov rsi, r14
- mov rdx, r13
+ mov rdi, r14
+ mov rsi, r13
+ mov rdx, r12
mov rcx, r15
mov r8d, 8
mov r9d, 0x2000
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
call [rax]System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
call [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
mov r15, rax
test r15, r15
jne SHORT G_M28994_IG08
- or dword ptr [r12+0x34], 0xD1FFAB1E
+ or dword ptr [r14+0x34], 0xD1FFAB1E
jmp SHORT G_M28994_IG09
- ;; size=156 bbWeight=0.50 PerfScore 13.38
+ ;; size=169 bbWeight=0.50 PerfScore 15.50
G_M28994_IG08:
mov rdi, 0xD1FFAB1E ; const ptr
cmp r15, gword ptr [rdi]
je SHORT G_M28994_IG09
- mov rdi, r12
+ mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
call [rax]System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
lea rdi, bword ptr [rax+0x08]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
;; size=42 bbWeight=0.50 PerfScore 4.75
G_M28994_IG09:
- mov rdi, r12
+ mov rdi, r14
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
call [rax]System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
- mov rax, r12
+ mov rax, r14
;; size=20 bbWeight=0.50 PerfScore 2.00
G_M28994_IG10:
add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M28994_IG11:
mov rsi, gword ptr [rbp-0x48]
mov edx, dword ptr [rbp-0x40]
mov rdi, rbx
mov ecx, dword ptr [rbp-0x3C]
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x78]
call [rax+0x28]System.IO.TextWriter:WriteLineAsync(ushort[],int,int):System.Threading.Tasks.Task:this
nop
;; size=24 bbWeight=0.50 PerfScore 5.25
G_M28994_IG12:
add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M28994_IG13:
mov rdi, 0xD1FFAB1E
mov esi, 0x7FF
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
jmp G_M28994_IG06
;; size=25 bbWeight=0 PerfScore 0.00
G_M28994_IG14:
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M28994_IG15:
+ mov edi, 47
+ mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
+ call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
+ int3
+ ;; size=18 bbWeight=0 PerfScore 0.00
+G_M28994_IG16:
mov edi, 28
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 560, prolog size 25, PerfScore 115.38, instruction count 140, allocated bytes for code 560 (MethodHash=a7ca8ebd) for method System.IO.TextWriter:WriteLineAsync(System.ReadOnlyMemory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 604, prolog size 25, PerfScore 123.03, instruction count 149, allocated bytes for code 604 (MethodHash=a7ca8ebd) for method System.IO.TextWriter:WriteLineAsync(System.ReadOnlyMemory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
43 (11.38 % of base) - System.IO.TextWriter:FlushAsync():System.Threading.Tasks.Task:this
; Assembly listing for method System.IO.TextWriter:FlushAsync():System.Threading.Tasks.Task:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 5 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T03] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.IO.TextWriter>
+; V00 this [V00,T04] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.IO.TextWriter>
; V01 OutArgs [V01 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T05] ( 2, 4 ) ref -> r15 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
-;* V03 tmp2 [V03,T08] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
+; V02 tmp1 [V02,T06] ( 2, 4 ) ref -> r14 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+; V03 tmp2 [V03,T07] ( 2, 4 ) ref -> r15 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref single-def
-; V05 tmp4 [V05,T04] ( 5, 4.50) ref -> r15
+; V05 tmp4 [V05,T05] ( 5, 4.50) ref -> r14
;* V06 tmp5 [V06 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-; V07 tmp6 [V07,T02] ( 5, 5 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
-; V08 tmp7 [V08,T07] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.TextWriter+<>c>
+; V07 tmp6 [V07,T03] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
+; V08 tmp7 [V08,T08] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.TextWriter+<>c>
;* V09 tmp8 [V09 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V10 tmp9 [V10,T06] ( 2, 4 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
+; V10 tmp9 [V10,T02] ( 3, 6 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V12 tmp11 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.Task>
-; V13 tmp12 [V13,T00] ( 7, 11 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
+; V13 tmp12 [V13,T00] ( 7, 11 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
; V15 tmp14 [V15,T01] ( 4, 6 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
;* V16 tmp15 [V16,T09] ( 0, 0 ) ref -> zero-ref single-def "field V06._source (fldOffset=0x0)" P-INDEP
;* V17 tmp16 [V17 ] ( 0, 0 ) ref -> zero-ref single-def "field V09._source (fldOffset=0x0)" P-INDEP
;* V18 cse0 [V18,T10] ( 0, 0 ) long -> zero-ref "CSE - moderate"
;
; Lcl frame size = 16
G_M52834_IG01:
push rbp
push r15
push r14
push r13
push rbx
sub rsp, 16
lea rbp, [rsp+0x30]
mov rbx, rdi
;; size=20 bbWeight=1 PerfScore 6.00
G_M52834_IG02:
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov r15, gword ptr [rdi]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M52834_IG10
- ;; size=19 bbWeight=1 PerfScore 4.25
+ ;; size=32 bbWeight=1 PerfScore 6.50
G_M52834_IG03:
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__71_0
- mov r15, gword ptr [rdi]
- test r15, r15
+ mov r14, gword ptr [rdi]
+ test r14, r14
jne SHORT G_M52834_IG05
;; size=18 bbWeight=1 PerfScore 3.50
G_M52834_IG04:
mov rdi, 0xD1FFAB1E ; System.Action`1[System.Object]
call CORINFO_HELP_NEWSFAST
- mov r15, rax
+ mov r14, rax
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9
mov rsi, gword ptr [rdi]
test rsi, rsi
je G_M52834_IG11
- lea rdi, bword ptr [r15+0x08]
+ lea rdi, bword ptr [r14+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.IO.TextWriter+<>c:<FlushAsync>b__71_0(System.Object):this
- mov qword ptr [r15+0x18], rdi
+ mov qword ptr [r14+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for System.IO.TextWriter+<>c:<>9__71_0
- mov rsi, r15
+ mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
;; size=81 bbWeight=0.50 PerfScore 4.62
G_M52834_IG05:
mov rdi, 0xD1FFAB1E ; const ptr
- mov r14, gword ptr [rdi]
+ mov r13, gword ptr [rdi]
+ cmp byte ptr [r15], r15b
+ test r13, r13
+ je G_M52834_IG12
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task
call CORINFO_HELP_NEWSFAST
- mov r13, rax
- test r15, r15
- je G_M52834_IG12
- mov gword ptr [rsp], r14
- mov rdi, r13
- mov rsi, r15
+ mov r15, rax
+ test r14, r14
+ je G_M52834_IG13
+ mov gword ptr [rsp], r13
+ mov rdi, r15
+ mov rsi, r14
mov rdx, rbx
xor rcx, rcx
mov r8d, 8
mov r9d, 0x2000
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
call [rax]System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
call [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
mov rbx, rax
test rbx, rbx
jne SHORT G_M52834_IG07
- ;; size=99 bbWeight=1 PerfScore 15.50
+ ;; size=111 bbWeight=1 PerfScore 19.75
G_M52834_IG06:
- or dword ptr [r13+0x34], 0xD1FFAB1E
+ or dword ptr [r15+0x34], 0xD1FFAB1E
jmp SHORT G_M52834_IG08
;; size=10 bbWeight=0.50 PerfScore 2.50
G_M52834_IG07:
mov rdi, 0xD1FFAB1E ; const ptr
cmp rbx, gword ptr [rdi]
je SHORT G_M52834_IG08
- mov rdi, r13
+ mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
call [rax]System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
lea rdi, bword ptr [rax+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
;; size=42 bbWeight=0.50 PerfScore 4.75
G_M52834_IG08:
- mov rdi, r13
+ mov rdi, r15
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
call [rax]System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
- mov rax, r13
+ mov rax, r15
;; size=20 bbWeight=1 PerfScore 4.00
G_M52834_IG09:
add rsp, 16
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=13 bbWeight=1 PerfScore 3.75
G_M52834_IG10:
mov rdi, 0xD1FFAB1E
mov esi, 0x7FF
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
jmp G_M52834_IG03
;; size=25 bbWeight=0 PerfScore 0.00
G_M52834_IG11:
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M52834_IG12:
+ mov edi, 47
+ mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
+ call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
+ int3
+ ;; size=18 bbWeight=0 PerfScore 0.00
+G_M52834_IG13:
mov edi, 28
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 378, prolog size 17, PerfScore 86.68, instruction count 84, allocated bytes for code 378 (MethodHash=9517319d) for method System.IO.TextWriter:FlushAsync():System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 421, prolog size 17, PerfScore 97.48, instruction count 93, allocated bytes for code 421 (MethodHash=9517319d) for method System.IO.TextWriter:FlushAsync():System.Threading.Tasks.Task:this (FullOpts)
43 (10.31 % of base) - System.Threading.Tasks.Task:ThrowAsync(System.Exception,System.Threading.SynchronizationContext)
; Assembly listing for method System.Threading.Tasks.Task:ThrowAsync(System.Exception,System.Threading.SynchronizationContext) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 4, 3 ) ref -> [rbp-0x18] class-hnd EH-live single-def <System.Exception>
+; V00 arg0 [V00,T05] ( 4, 3 ) ref -> [rbp-0x18] class-hnd EH-live single-def <System.Exception>
; V01 arg1 [V01,T02] ( 5, 5 ) ref -> rbx class-hnd single-def <System.Threading.SynchronizationContext>
; V02 loc0 [V02,T10] ( 4, 3 ) ref -> [rbp-0x20] do-not-enreg[M] class-hnd EH-live <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Exception>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T06] ( 2, 4 ) ref -> rdi class-hnd exact single-def "dup spill" <System.Threading.WaitCallback>
-; V06 tmp2 [V06,T04] ( 4, 4 ) ref -> rdi
+; V05 tmp1 [V05,T08] ( 2, 4 ) ref -> rdi class-hnd exact single-def "dup spill" <System.Threading.WaitCallback>
+; V06 tmp2 [V06,T06] ( 4, 4 ) ref -> rdi
; V07 tmp3 [V07,T00] ( 5, 10 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Threading.WaitCallback>
-; V08 tmp4 [V08,T07] ( 2, 4 ) ref -> rsi class-hnd exact single-def "dup spill" <System.Threading.SendOrPostCallback>
+; V08 tmp4 [V08,T09] ( 2, 4 ) ref -> rsi class-hnd exact single-def "dup spill" <System.Threading.SendOrPostCallback>
;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref single-def
-; V10 tmp6 [V10,T05] ( 4, 4 ) ref -> rsi
+; V10 tmp6 [V10,T07] ( 4, 4 ) ref -> rsi
; V11 tmp7 [V11,T01] ( 5, 10 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Threading.SendOrPostCallback>
; V12 tmp8 [V12,T14] ( 2, 0 ) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
; V13 tmp9 [V13,T12] ( 4, 0 ) ref -> r15 class-hnd exact single-def "dup spill" <System.Exception[]>
; V14 tmp10 [V14,T13] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
-; V15 tmp11 [V15,T08] ( 2, 4 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Task+<>c>
-; V16 tmp12 [V16,T09] ( 2, 4 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Task+<>c>
+; V15 tmp11 [V15,T03] ( 3, 6 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Task+<>c>
+; V16 tmp12 [V16,T04] ( 3, 6 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Task+<>c>
; V17 PSPSym [V17,T11] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"
;
; Lcl frame size = 32
G_M13169_IG01:
push rbp
push r15
push rbx
sub rsp, 32
lea rbp, [rsp+0x30]
mov qword ptr [rbp-0x30], rsp
mov gword ptr [rbp-0x18], rdi
mov rbx, rsi
;; size=24 bbWeight=1 PerfScore 6.00
G_M13169_IG02:
mov rax, 0xD1FFAB1E ; code for System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo
call [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo
mov gword ptr [rbp-0x20], rax
test rbx, rbx
- je SHORT G_M13169_IG05
- ;; size=21 bbWeight=1 PerfScore 5.50
+ je G_M13169_IG06
+ ;; size=25 bbWeight=1 PerfScore 5.50
G_M13169_IG03:
mov rdi, 0xD1FFAB1E ; data for System.Threading.Tasks.Task+<>c:<>9__128_0
mov rsi, gword ptr [rdi]
test rsi, rsi
jne SHORT G_M13169_IG04
mov rdi, 0xD1FFAB1E ; System.Threading.SendOrPostCallback
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
+ test rsi, rsi
+ je SHORT G_M13169_IG05
lea rdi, bword ptr [r15+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Threading.Tasks.Task+<>c:<ThrowAsync>b__128_0(System.Object):this
mov qword ptr [r15+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for System.Threading.Tasks.Task+<>c:<>9__128_0
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
mov rsi, r15
- ;; size=93 bbWeight=1 PerfScore 11.75
+ ;; size=98 bbWeight=1 PerfScore 13.00
G_M13169_IG04:
mov rdi, rbx
mov rdx, gword ptr [rbp-0x20]
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x40]
call [rax+0x28]System.Threading.SynchronizationContext:Post(System.Threading.SendOrPostCallback,System.Object):this
- jmp SHORT G_M13169_IG07
- ;; size=19 bbWeight=1 PerfScore 10.25
+ jmp G_M13169_IG08
+ ;; size=22 bbWeight=1 PerfScore 10.25
G_M13169_IG05:
+ mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
+ call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
+ int3
+ ;; size=13 bbWeight=0 PerfScore 0.00
+G_M13169_IG06:
mov rdi, 0xD1FFAB1E ; data for System.Threading.Tasks.Task+<>c:<>9__128_1
mov rdi, gword ptr [rdi]
test rdi, rdi
- jne SHORT G_M13169_IG06
+ jne SHORT G_M13169_IG07
mov rdi, 0xD1FFAB1E ; System.Threading.WaitCallback
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
+ test rsi, rsi
+ je SHORT G_M13169_IG10
lea rdi, bword ptr [rbx+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Threading.Tasks.Task+<>c:<ThrowAsync>b__128_1(System.Object):this
mov qword ptr [rbx+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for System.Threading.Tasks.Task+<>c:<>9__128_1
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, rbx
- ;; size=93 bbWeight=1 PerfScore 11.75
-G_M13169_IG06:
+ ;; size=98 bbWeight=1 PerfScore 13.00
+G_M13169_IG07:
mov rsi, gword ptr [rbp-0x20]
mov rax, 0xD1FFAB1E ; code for System.Threading.ThreadPool:QueueUserWorkItem(System.Threading.WaitCallback,System.Object):ubyte
call [rax]System.Threading.ThreadPool:QueueUserWorkItem(System.Threading.WaitCallback,System.Object):ubyte
;; size=16 bbWeight=1 PerfScore 4.25
-G_M13169_IG07:
+G_M13169_IG08:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M13169_IG08:
+G_M13169_IG09:
add rsp, 32
pop rbx
pop r15
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 2.75
-G_M13169_IG09:
+G_M13169_IG10:
+ mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
+ call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
+ int3
+ ;; size=13 bbWeight=0 PerfScore 0.00
+G_M13169_IG11:
push rbp
push r15
push rbx
sub rsp, 16
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x30]
;; size=19 bbWeight=0 PerfScore 0.00
-G_M13169_IG10:
+G_M13169_IG12:
mov rbx, rsi
mov rdi, 0xD1FFAB1E ; System.Exception[]
mov esi, 2
call CORINFO_HELP_NEWARR_1_OBJ
mov r15, rax
lea rdi, bword ptr [r15+0x10]
mov rsi, gword ptr [rbp-0x18]
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r15+0x18]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.AggregateException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rdi, rbx
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.AggregateException:.ctor(System.Exception[]):this
call [rax]System.AggregateException:.ctor(System.Exception[]):this
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo
call [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo
mov gword ptr [rbp-0x20], rax
- lea rax, G_M13169_IG05
+ lea rax, G_M13169_IG06
;; size=113 bbWeight=0 PerfScore 0.00
-G_M13169_IG11:
+G_M13169_IG13:
add rsp, 16
pop rbx
pop r15
pop rbp
ret
;; size=9 bbWeight=0 PerfScore 0.00
-; Total bytes of code 417, prolog size 24, PerfScore 94.20, instruction count 97, allocated bytes for code 417 (MethodHash=7c9bcc8e) for method System.Threading.Tasks.Task:ThrowAsync(System.Exception,System.Threading.SynchronizationContext) (FullOpts)
+; Total bytes of code 460, prolog size 24, PerfScore 101.00, instruction count 107, allocated bytes for code 460 (MethodHash=7c9bcc8e) for method System.Threading.Tasks.Task:ThrowAsync(System.Exception,System.Threading.SynchronizationContext) (FullOpts)
42 (10.94 % of base) - System.IO.Stream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this
; Assembly listing for method System.IO.Stream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T03] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.IO.Stream>
+; V00 this [V00,T04] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.IO.Stream>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Threading.CancellationToken>
; V02 OutArgs [V02 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T05] ( 2, 4 ) ref -> r14 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
-;* V04 tmp2 [V04,T09] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
+; V03 tmp1 [V03,T06] ( 2, 4 ) ref -> r13 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+; V04 tmp2 [V04,T07] ( 2, 4 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
-; V06 tmp4 [V06,T04] ( 5, 4.50) ref -> r14
-; V07 tmp5 [V07,T02] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
-; V08 tmp6 [V08,T08] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.Stream+<>c>
-; V09 tmp7 [V09,T06] ( 2, 4 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
+; V06 tmp4 [V06,T05] ( 5, 4.50) ref -> r13
+; V07 tmp5 [V07,T03] ( 5, 5 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
+; V08 tmp6 [V08,T09] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.Stream+<>c>
+; V09 tmp7 [V09,T02] ( 3, 6 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
;* V10 tmp8 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V11 tmp9 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.Task>
-; V12 tmp10 [V12,T00] ( 7, 11 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
+; V12 tmp10 [V12,T00] ( 7, 11 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V13 tmp11 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
; V14 tmp12 [V14,T01] ( 4, 6 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
-; V15 tmp13 [V15,T07] ( 2, 2 ) ref -> r15 single-def "field V01._source (fldOffset=0x0)" P-INDEP
+; V15 tmp13 [V15,T08] ( 2, 2 ) ref -> r15 single-def "field V01._source (fldOffset=0x0)" P-INDEP
;* V16 cse0 [V16,T10] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 8
G_M48555_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r15, rsi
;; size=22 bbWeight=1 PerfScore 8.00
G_M48555_IG02:
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov r14, gword ptr [rdi]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M48555_IG10
- ;; size=19 bbWeight=1 PerfScore 4.25
+ ;; size=32 bbWeight=1 PerfScore 6.50
G_M48555_IG03:
mov rdi, 0xD1FFAB1E ; data for System.IO.Stream+<>c:<>9__35_0
- mov r14, gword ptr [rdi]
- test r14, r14
+ mov r13, gword ptr [rdi]
+ test r13, r13
jne SHORT G_M48555_IG05
;; size=18 bbWeight=1 PerfScore 3.50
G_M48555_IG04:
mov rdi, 0xD1FFAB1E ; System.Action`1[System.Object]
call CORINFO_HELP_NEWSFAST
- mov r14, rax
+ mov r13, rax
mov rdi, 0xD1FFAB1E ; data for System.IO.Stream+<>c:<>9
mov rsi, gword ptr [rdi]
test rsi, rsi
je G_M48555_IG11
- lea rdi, bword ptr [r14+0x08]
+ lea rdi, bword ptr [r13+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.IO.Stream+<>c:<FlushAsync>b__35_0(System.Object):this
- mov qword ptr [r14+0x18], rdi
+ mov qword ptr [r13+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for System.IO.Stream+<>c:<>9__35_0
- mov rsi, r14
+ mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
;; size=81 bbWeight=0.50 PerfScore 4.62
G_M48555_IG05:
mov rdi, 0xD1FFAB1E ; const ptr
- mov r13, gword ptr [rdi]
+ mov r12, gword ptr [rdi]
+ cmp byte ptr [r14], r14b
+ test r12, r12
+ je G_M48555_IG12
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task
call CORINFO_HELP_NEWSFAST
- mov r12, rax
- test r14, r14
- je G_M48555_IG12
- mov gword ptr [rsp], r13
- mov rdi, r12
- mov rsi, r14
+ mov r14, rax
+ test r13, r13
+ je G_M48555_IG13
+ mov gword ptr [rsp], r12
+ mov rdi, r14
+ mov rsi, r13
mov rdx, rbx
mov rcx, r15
mov r8d, 8
mov r9d, 0x2000
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
call [rax]System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
call [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
mov rbx, rax
test rbx, rbx
jne SHORT G_M48555_IG07
- ;; size=100 bbWeight=1 PerfScore 15.50
+ ;; size=112 bbWeight=1 PerfScore 19.75
G_M48555_IG06:
- or dword ptr [r12+0x34], 0xD1FFAB1E
+ or dword ptr [r14+0x34], 0xD1FFAB1E
jmp SHORT G_M48555_IG08
- ;; size=11 bbWeight=0.50 PerfScore 2.50
+ ;; size=10 bbWeight=0.50 PerfScore 2.50
G_M48555_IG07:
mov rdi, 0xD1FFAB1E ; const ptr
cmp rbx, gword ptr [rdi]
je SHORT G_M48555_IG08
- mov rdi, r12
+ mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
call [rax]System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
lea rdi, bword ptr [rax+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
;; size=42 bbWeight=0.50 PerfScore 4.75
G_M48555_IG08:
- mov rdi, r12
+ mov rdi, r14
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
call [rax]System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this
- mov rax, r12
+ mov rax, r14
;; size=20 bbWeight=1 PerfScore 4.00
G_M48555_IG09:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M48555_IG10:
mov rdi, 0xD1FFAB1E
mov esi, 0x7E5
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
jmp G_M48555_IG03
;; size=25 bbWeight=0 PerfScore 0.00
G_M48555_IG11:
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M48555_IG12:
+ mov edi, 47
+ mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
+ call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
+ int3
+ ;; size=18 bbWeight=0 PerfScore 0.00
+G_M48555_IG13:
mov edi, 28
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 384, prolog size 16, PerfScore 89.78, instruction count 87, allocated bytes for code 384 (MethodHash=46d94254) for method System.IO.Stream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 426, prolog size 16, PerfScore 100.48, instruction count 96, allocated bytes for code 426 (MethodHash=46d94254) for method System.IO.Stream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
41 (1.42 % of base) - System.Reflection.AssemblyNameFormatter:ComputeDisplayName(System.String,System.Version,System.String,ubyte[],int,int):System.String
; Assembly listing for method System.Reflection.AssemblyNameFormatter:ComputeDisplayName(System.String,System.Version,System.String,ubyte[],int,int):System.String (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 70 single block inlinees; 93 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T34] ( 3, 3 ) ref -> rsi class-hnd single-def <System.String>
; V01 arg1 [V01,T31] ( 7, 5 ) ref -> r15 class-hnd single-def <System.Version>
; V02 arg2 [V02,T32] ( 7, 5 ) ref -> r14 class-hnd <System.String>
; V03 arg3 [V03,T30] ( 8, 5.50) ref -> rbx class-hnd single-def <ubyte[]>
; V04 arg4 [V04,T35] ( 3, 3 ) int -> r13 single-def
; V05 arg5 [V05,T36] ( 3, 3 ) int -> r12 single-def
; V06 loc0 [V06 ] (123, 64 ) struct (32) [rbp-0x48] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Text.ValueStringBuilder>
;* V07 loc1 [V07 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[ushort]>
-; V08 loc2 [V08,T106] ( 3, 1.50) ushort -> [rbp-0x4C] spill-single-def
-; V09 loc3 [V09,T107] ( 3, 1.50) ushort -> [rbp-0x50] spill-single-def
-; V10 loc4 [V10,T108] ( 3, 1.50) ushort -> [rbp-0x54] spill-single-def
-; V11 loc5 [V11,T109] ( 3, 1.50) ushort -> r15
+; V08 loc2 [V08,T110] ( 3, 1.50) ushort -> [rbp-0x4C] spill-single-def
+; V09 loc3 [V09,T111] ( 3, 1.50) ushort -> [rbp-0x50] spill-single-def
+; V10 loc4 [V10,T112] ( 3, 1.50) ushort -> [rbp-0x54] spill-single-def
+; V11 loc5 [V11,T113] ( 3, 1.50) ushort -> r15
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V13 tmp1 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V14 tmp2 [V14 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ubyte]>
;* V15 tmp3 [V15 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V16 tmp4 [V16,T139] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
; V17 tmp5 [V17,T46] ( 2, 4 ) long -> rdi "Inlining Arg"
;* V18 tmp6 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V19 tmp7 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V20 tmp8 [V20,T55] ( 5, 2.50) int -> [rbp-0x58] spill-single-def "Inline stloc first use temp"
;* V21 tmp9 [V21 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
;* V22 tmp10 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V23 tmp11 [V23,T73] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
; V24 tmp12 [V24,T86] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V25 tmp13 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V26 tmp14 [V26 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V27 tmp15 [V27,T74] ( 2, 2 ) byref -> rcx single-def "Inlining Arg"
; V28 tmp16 [V28 ] ( 3, 3 ) ushort -> [rbp-0x5C] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V29 tmp17 [V29 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-; V30 tmp18 [V30,T116] ( 2, 1 ) byref -> rdi single-def
+; V30 tmp18 [V30,T120] ( 2, 1 ) byref -> rdi single-def
; V31 tmp19 [V31 ] ( 3, 1.50) int -> [rbp-0x68] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V32 tmp20 [V32 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.Span`1[ushort]>
;* V33 tmp21 [V33 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V34 tmp22 [V34,T38] ( 4, 4 ) int -> rax "Inlining Arg"
;* V35 tmp23 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V36 tmp24 [V36,T48] ( 3, 3 ) byref -> rcx single-def "Inlining Arg"
; V37 tmp25 [V37,T87] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V38 tmp26 [V38 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V39 tmp27 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V40 tmp28 [V40,T127] ( 2, 1 ) ubyte -> rdi "Inline return value spill temp"
;* V41 tmp29 [V41 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V42 tmp30 [V42,T39] ( 4, 4 ) int -> rdi "Inlining Arg"
-; V43 tmp31 [V43,T110] ( 3, 1.50) ubyte -> rdi "Inline return value spill temp"
+; V43 tmp31 [V43,T114] ( 3, 1.50) ubyte -> rdi "Inline return value spill temp"
; V44 tmp32 [V44,T66] ( 4, 2 ) int -> rax "Inline stloc first use temp"
;* V45 tmp33 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
; V46 tmp34 [V46 ] ( 3, 1.50) byref -> [rbp-0x70] must-init pinned "Inline stloc first use temp"
;* V47 tmp35 [V47 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V48 tmp36 [V48 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V49 tmp37 [V49 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[long]>
;* V50 tmp38 [V50 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
;* V51 tmp39 [V51 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V52 tmp40 [V52 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V53 tmp41 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
;* V54 tmp42 [V54 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V55 tmp43 [V55 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V56 tmp44 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V57 tmp45 [V57 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
; V58 tmp46 [V58,T00] ( 10, 38 ) int -> registers "Inlining Arg"
; V59 tmp47 [V59,T05] ( 6, 27 ) long -> rax "Inlining Arg"
;* V60 tmp48 [V60 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V61 tmp49 [V61 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
;* V62 tmp50 [V62 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V63 tmp51 [V63,T12] ( 3, 12 ) int -> rdx "Inline stloc first use temp"
+; V63 tmp51 [V63,T16] ( 3, 12 ) int -> rdx "Inline stloc first use temp"
;* V64 tmp52 [V64 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
;* V65 tmp53 [V65 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V66 tmp54 [V66 ] ( 0, 0 ) long -> zero-ref
;* V67 tmp55 [V67 ] ( 0, 0 ) long -> zero-ref
-; V68 tmp56 [V68,T22] ( 2, 8 ) ref -> rsi
+; V68 tmp56 [V68,T12] ( 3, 12 ) ref -> rsi
;* V69 tmp57 [V69 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V70 tmp58 [V70 ] ( 0, 0 ) long -> zero-ref
; V71 tmp59 [V71,T128] ( 2, 1 ) long -> rax
-; V72 tmp60 [V72,T117] ( 2, 1 ) ref -> rcx single-def
+; V72 tmp60 [V72,T104] ( 3, 1.50) ref -> rcx single-def
;* V73 tmp61 [V73 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V74 tmp62 [V74 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V75 tmp63 [V75,T52] ( 5, 2.50) ref -> rax class-hnd single-def "Inline return value spill temp" <System.String>
; V76 tmp64 [V76,T88] ( 2, 2 ) int -> rdi "Inlining Arg"
;* V77 tmp65 [V77 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V78 tmp66 [V78,T56] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
; V79 tmp67 [V79,T67] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
;* V80 tmp68 [V80 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V81 tmp69 [V81 ] ( 3, 3 ) ushort -> [rbp-0x74] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V82 tmp70 [V82 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-; V83 tmp71 [V83,T118] ( 2, 1 ) byref -> rdi single-def
+; V83 tmp71 [V83,T121] ( 2, 1 ) byref -> rdi single-def
; V84 tmp72 [V84 ] ( 3, 1.50) int -> [rbp-0x80] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V85 tmp73 [V85 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.Span`1[ushort]>
;* V86 tmp74 [V86 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V87 tmp75 [V87,T40] ( 4, 4 ) int -> rax "Inlining Arg"
;* V88 tmp76 [V88 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V89 tmp77 [V89,T49] ( 3, 3 ) byref -> rcx single-def "Inlining Arg"
; V90 tmp78 [V90,T89] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V91 tmp79 [V91 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V92 tmp80 [V92 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V93 tmp81 [V93,T129] ( 2, 1 ) ubyte -> rdi "Inline return value spill temp"
;* V94 tmp82 [V94 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V95 tmp83 [V95,T41] ( 4, 4 ) int -> rdi "Inlining Arg"
-; V96 tmp84 [V96,T111] ( 3, 1.50) ubyte -> rdi "Inline return value spill temp"
+; V96 tmp84 [V96,T115] ( 3, 1.50) ubyte -> rdi "Inline return value spill temp"
; V97 tmp85 [V97,T68] ( 4, 2 ) int -> rax "Inline stloc first use temp"
;* V98 tmp86 [V98 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
; V99 tmp87 [V99 ] ( 3, 1.50) byref -> [rbp-0x88] must-init pinned "Inline stloc first use temp"
;* V100 tmp88 [V100 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V101 tmp89 [V101 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V102 tmp90 [V102 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[long]>
;* V103 tmp91 [V103 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
;* V104 tmp92 [V104 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V105 tmp93 [V105 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V106 tmp94 [V106 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
;* V107 tmp95 [V107 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V108 tmp96 [V108 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V109 tmp97 [V109 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V110 tmp98 [V110 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
; V111 tmp99 [V111,T01] ( 10, 38 ) int -> registers "Inlining Arg"
; V112 tmp100 [V112,T06] ( 6, 27 ) long -> rax "Inlining Arg"
;* V113 tmp101 [V113 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V114 tmp102 [V114 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
;* V115 tmp103 [V115 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V116 tmp104 [V116,T13] ( 3, 12 ) int -> rdx "Inline stloc first use temp"
+; V116 tmp104 [V116,T17] ( 3, 12 ) int -> rdx "Inline stloc first use temp"
;* V117 tmp105 [V117 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
;* V118 tmp106 [V118 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V119 tmp107 [V119 ] ( 0, 0 ) long -> zero-ref
;* V120 tmp108 [V120 ] ( 0, 0 ) long -> zero-ref
-; V121 tmp109 [V121,T23] ( 2, 8 ) ref -> rsi
+; V121 tmp109 [V121,T13] ( 3, 12 ) ref -> rsi
;* V122 tmp110 [V122 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V123 tmp111 [V123 ] ( 0, 0 ) long -> zero-ref
; V124 tmp112 [V124,T130] ( 2, 1 ) long -> rax
-; V125 tmp113 [V125,T119] ( 2, 1 ) ref -> rdi single-def
+; V125 tmp113 [V125,T105] ( 3, 1.50) ref -> rdi single-def
;* V126 tmp114 [V126 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V127 tmp115 [V127 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V128 tmp116 [V128,T53] ( 5, 2.50) ref -> rax class-hnd single-def "Inline return value spill temp" <System.String>
; V129 tmp117 [V129,T90] ( 2, 2 ) int -> rdi "Inlining Arg"
;* V130 tmp118 [V130 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V131 tmp119 [V131,T57] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
; V132 tmp120 [V132,T69] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
;* V133 tmp121 [V133 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V134 tmp122 [V134 ] ( 3, 3 ) ushort -> [rbp-0x8C] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V135 tmp123 [V135 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-; V136 tmp124 [V136,T120] ( 2, 1 ) byref -> rdi single-def
+; V136 tmp124 [V136,T122] ( 2, 1 ) byref -> rdi single-def
; V137 tmp125 [V137 ] ( 3, 1.50) int -> [rbp-0x98] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V138 tmp126 [V138 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.Span`1[ushort]>
;* V139 tmp127 [V139 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V140 tmp128 [V140,T42] ( 4, 4 ) int -> rax "Inlining Arg"
;* V141 tmp129 [V141 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V142 tmp130 [V142,T50] ( 3, 3 ) byref -> rcx single-def "Inlining Arg"
; V143 tmp131 [V143,T91] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V144 tmp132 [V144 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V145 tmp133 [V145 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V146 tmp134 [V146,T131] ( 2, 1 ) ubyte -> rdi "Inline return value spill temp"
;* V147 tmp135 [V147 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V148 tmp136 [V148,T43] ( 4, 4 ) int -> rdi "Inlining Arg"
-; V149 tmp137 [V149,T112] ( 3, 1.50) ubyte -> rdi "Inline return value spill temp"
+; V149 tmp137 [V149,T116] ( 3, 1.50) ubyte -> rdi "Inline return value spill temp"
; V150 tmp138 [V150,T70] ( 4, 2 ) int -> rax "Inline stloc first use temp"
;* V151 tmp139 [V151 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
; V152 tmp140 [V152 ] ( 3, 1.50) byref -> [rbp-0xA0] must-init pinned "Inline stloc first use temp"
;* V153 tmp141 [V153 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V154 tmp142 [V154 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V155 tmp143 [V155 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[long]>
;* V156 tmp144 [V156 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
;* V157 tmp145 [V157 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V158 tmp146 [V158 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V159 tmp147 [V159 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
;* V160 tmp148 [V160 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V161 tmp149 [V161 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V162 tmp150 [V162 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V163 tmp151 [V163 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
; V164 tmp152 [V164,T02] ( 10, 38 ) int -> registers "Inlining Arg"
; V165 tmp153 [V165,T07] ( 6, 27 ) long -> rax "Inlining Arg"
;* V166 tmp154 [V166 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V167 tmp155 [V167 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
;* V168 tmp156 [V168 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V169 tmp157 [V169,T14] ( 3, 12 ) int -> rdx "Inline stloc first use temp"
+; V169 tmp157 [V169,T18] ( 3, 12 ) int -> rdx "Inline stloc first use temp"
;* V170 tmp158 [V170 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
;* V171 tmp159 [V171 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V172 tmp160 [V172 ] ( 0, 0 ) long -> zero-ref
;* V173 tmp161 [V173 ] ( 0, 0 ) long -> zero-ref
-; V174 tmp162 [V174,T24] ( 2, 8 ) ref -> rsi
+; V174 tmp162 [V174,T14] ( 3, 12 ) ref -> rsi
;* V175 tmp163 [V175 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V176 tmp164 [V176 ] ( 0, 0 ) long -> zero-ref
; V177 tmp165 [V177,T132] ( 2, 1 ) long -> rax
-; V178 tmp166 [V178,T121] ( 2, 1 ) ref -> rdi single-def
+; V178 tmp166 [V178,T106] ( 3, 1.50) ref -> rdi single-def
;* V179 tmp167 [V179 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V180 tmp168 [V180 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V181 tmp169 [V181,T54] ( 5, 2.50) ref -> rax class-hnd single-def "Inline return value spill temp" <System.String>
; V182 tmp170 [V182,T92] ( 2, 2 ) int -> rdi "Inlining Arg"
;* V183 tmp171 [V183 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V184 tmp172 [V184,T58] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
; V185 tmp173 [V185,T71] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
;* V186 tmp174 [V186 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V187 tmp175 [V187 ] ( 3, 3 ) ushort -> [rbp-0xA4] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V188 tmp176 [V188 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-; V189 tmp177 [V189,T122] ( 2, 1 ) byref -> rdi single-def
+; V189 tmp177 [V189,T123] ( 2, 1 ) byref -> rdi single-def
; V190 tmp178 [V190 ] ( 3, 1.50) int -> [rbp-0xB0] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V191 tmp179 [V191 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.Span`1[ushort]>
;* V192 tmp180 [V192 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V193 tmp181 [V193,T44] ( 4, 4 ) int -> rax "Inlining Arg"
;* V194 tmp182 [V194 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V195 tmp183 [V195,T51] ( 3, 3 ) byref -> rcx single-def "Inlining Arg"
; V196 tmp184 [V196,T93] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V197 tmp185 [V197 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V198 tmp186 [V198 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V199 tmp187 [V199,T133] ( 2, 1 ) ubyte -> rdi "Inline return value spill temp"
;* V200 tmp188 [V200 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V201 tmp189 [V201,T45] ( 4, 4 ) int -> rdi "Inlining Arg"
-; V202 tmp190 [V202,T113] ( 3, 1.50) ubyte -> rdi "Inline return value spill temp"
+; V202 tmp190 [V202,T117] ( 3, 1.50) ubyte -> rdi "Inline return value spill temp"
; V203 tmp191 [V203,T72] ( 4, 2 ) int -> rax "Inline stloc first use temp"
;* V204 tmp192 [V204 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
; V205 tmp193 [V205 ] ( 3, 1.50) byref -> [rbp-0xB8] must-init pinned "Inline stloc first use temp"
;* V206 tmp194 [V206 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V207 tmp195 [V207 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V208 tmp196 [V208 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[long]>
;* V209 tmp197 [V209 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
;* V210 tmp198 [V210 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V211 tmp199 [V211 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V212 tmp200 [V212 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
;* V213 tmp201 [V213 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V214 tmp202 [V214 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V215 tmp203 [V215 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V216 tmp204 [V216 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
; V217 tmp205 [V217,T03] ( 10, 38 ) int -> registers "Inlining Arg"
; V218 tmp206 [V218,T08] ( 6, 27 ) long -> rax "Inlining Arg"
;* V219 tmp207 [V219 ] ( 0, 0 ) long -> zero-ref "dup spill"
;* V220 tmp208 [V220 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
;* V221 tmp209 [V221 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V222 tmp210 [V222,T15] ( 3, 12 ) int -> rdx "Inline stloc first use temp"
+; V222 tmp210 [V222,T19] ( 3, 12 ) int -> rdx "Inline stloc first use temp"
;* V223 tmp211 [V223 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
;* V224 tmp212 [V224 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V225 tmp213 [V225 ] ( 0, 0 ) long -> zero-ref
;* V226 tmp214 [V226 ] ( 0, 0 ) long -> zero-ref
-; V227 tmp215 [V227,T25] ( 2, 8 ) ref -> rsi
+; V227 tmp215 [V227,T15] ( 3, 12 ) ref -> rsi
;* V228 tmp216 [V228 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V229 tmp217 [V229 ] ( 0, 0 ) long -> zero-ref
; V230 tmp218 [V230,T134] ( 2, 1 ) long -> rax
-; V231 tmp219 [V231,T123] ( 2, 1 ) ref -> rdi single-def
+; V231 tmp219 [V231,T107] ( 3, 1.50) ref -> rdi single-def
;* V232 tmp220 [V232 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V233 tmp221 [V233 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V234 tmp222 [V234,T47] ( 6, 3 ) ref -> rax class-hnd single-def "Inline return value spill temp" <System.String>
; V235 tmp223 [V235,T94] ( 2, 2 ) int -> rdi "Inlining Arg"
;* V236 tmp224 [V236 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V237 tmp225 [V237,T59] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
;* V238 tmp226 [V238 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V239 tmp227 [V239,T60] ( 5, 2.50) int -> r15 "Inline stloc first use temp"
;* V240 tmp228 [V240 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
;* V241 tmp229 [V241 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V242 tmp230 [V242,T75] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
; V243 tmp231 [V243,T95] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V244 tmp232 [V244 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V245 tmp233 [V245 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V246 tmp234 [V246,T76] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
;* V247 tmp235 [V247 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V248 tmp236 [V248,T61] ( 5, 2.50) int -> r15 "Inline stloc first use temp"
;* V249 tmp237 [V249 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
;* V250 tmp238 [V250 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V251 tmp239 [V251,T77] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
; V252 tmp240 [V252,T96] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V253 tmp241 [V253 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V254 tmp242 [V254 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V255 tmp243 [V255,T78] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
;* V256 tmp244 [V256 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V257 tmp245 [V257,T62] ( 5, 2.50) int -> rbx "Inline stloc first use temp"
;* V258 tmp246 [V258 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
;* V259 tmp247 [V259 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V260 tmp248 [V260,T79] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
; V261 tmp249 [V261,T97] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V262 tmp250 [V262 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V263 tmp251 [V263 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V264 tmp252 [V264,T80] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
;* V265 tmp253 [V265 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
; V266 tmp254 [V266,T63] ( 5, 2.50) int -> [rbp-0xBC] spill-single-def "Inline stloc first use temp"
; V267 tmp255 [V267,T33] ( 6, 6 ) int -> rbx "Inlining Arg"
;* V268 tmp256 [V268 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V269 tmp257 [V269 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V270 tmp258 [V270 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V271 tmp259 [V271,T09] ( 7, 24.50) int -> rdi "Inline stloc first use temp"
; V272 tmp260 [V272,T10] ( 3, 24 ) ubyte -> rsi "Inlining Arg"
-; V273 tmp261 [V273,T16] ( 3, 12 ) int -> rsi "Inline stloc first use temp"
-; V274 tmp262 [V274,T17] ( 3, 12 ) int -> rsi "Inline stloc first use temp"
+; V273 tmp261 [V273,T20] ( 3, 12 ) int -> rsi "Inline stloc first use temp"
+; V274 tmp262 [V274,T21] ( 3, 12 ) int -> rsi "Inline stloc first use temp"
;* V275 tmp263 [V275 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
; V276 tmp264 [V276,T04] ( 4, 32 ) int -> rcx "Inlining Arg"
;* V277 tmp265 [V277 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V278 tmp266 [V278,T64] ( 5, 2.50) int -> rbx "Inline stloc first use temp"
;* V279 tmp267 [V279 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
;* V280 tmp268 [V280 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V281 tmp269 [V281,T81] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
; V282 tmp270 [V282,T98] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V283 tmp271 [V283 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V284 tmp272 [V284 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V285 tmp273 [V285,T82] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
;* V286 tmp274 [V286 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V287 tmp275 [V287,T65] ( 5, 2.50) int -> rbx "Inline stloc first use temp"
;* V288 tmp276 [V288 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
;* V289 tmp277 [V289 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V290 tmp278 [V290,T83] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
; V291 tmp279 [V291,T99] ( 2, 2 ) int -> rax "Inlining Arg"
;* V292 tmp280 [V292 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V293 tmp281 [V293 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V294 tmp282 [V294,T84] ( 2, 2 ) byref -> rax single-def "Inlining Arg"
;* V295 tmp283 [V295 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP
;* V296 tmp284 [V296 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
; V297 tmp285 [V297,T85] ( 2, 2 ) byref -> rdi single-def "field V13._reference (fldOffset=0x0)" P-INDEP
;* V298 tmp286 [V298,T138] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
;* V299 tmp287 [V299 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
;* V300 tmp288 [V300 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
-; V301 tmp289 [V301,T20] ( 3, 8.50) byref -> rbx single-def "field V15._reference (fldOffset=0x0)" P-INDEP
-; V302 tmp290 [V302,T21] ( 3, 8.50) int -> rax "field V15._length (fldOffset=0x8)" P-INDEP
+; V301 tmp289 [V301,T24] ( 3, 8.50) byref -> rbx single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+; V302 tmp290 [V302,T25] ( 3, 8.50) int -> rax "field V15._length (fldOffset=0x8)" P-INDEP
;* V303 tmp291 [V303 ] ( 0, 0 ) byref -> zero-ref "field V21._reference (fldOffset=0x0)" P-INDEP
;* V304 tmp292 [V304 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
;* V305 tmp293 [V305 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
;* V306 tmp294 [V306 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
;* V307 tmp295 [V307 ] ( 0, 0 ) byref -> zero-ref single-def "field V25._reference (fldOffset=0x0)" P-INDEP
;* V308 tmp296 [V308 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
;* V309 tmp297 [V309 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
;* V310 tmp298 [V310 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
;* V311 tmp299 [V311 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
;* V312 tmp300 [V312 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
;* V313 tmp301 [V313 ] ( 0, 0 ) byref -> zero-ref single-def "field V35._reference (fldOffset=0x0)" P-INDEP
;* V314 tmp302 [V314 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
;* V315 tmp303 [V315 ] ( 0, 0 ) byref -> zero-ref "field V38._reference (fldOffset=0x0)" P-INDEP
;* V316 tmp304 [V316 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
;* V317 tmp305 [V317 ] ( 0, 0 ) byref -> zero-ref single-def "field V39._reference (fldOffset=0x0)" P-INDEP
;* V318 tmp306 [V318 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
;* V319 tmp307 [V319 ] ( 0, 0 ) byref -> zero-ref single-def "field V41._reference (fldOffset=0x0)" P-INDEP
;* V320 tmp308 [V320 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
;* V321 tmp309 [V321 ] ( 0, 0 ) byref -> zero-ref single-def "field V45._reference (fldOffset=0x0)" P-INDEP
;* V322 tmp310 [V322 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
;* V323 tmp311 [V323 ] ( 0, 0 ) byref -> zero-ref single-def "field V49._reference (fldOffset=0x0)" P-INDEP
;* V324 tmp312 [V324 ] ( 0, 0 ) int -> zero-ref "field V49._length (fldOffset=0x8)" P-INDEP
;* V325 tmp313 [V325 ] ( 0, 0 ) byref -> zero-ref "field V50._reference (fldOffset=0x0)" P-INDEP
;* V326 tmp314 [V326 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
;* V327 tmp315 [V327 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP
;* V328 tmp316 [V328 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
;* V329 tmp317 [V329 ] ( 0, 0 ) byref -> zero-ref single-def "field V56._reference (fldOffset=0x0)" P-INDEP
;* V330 tmp318 [V330 ] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP
;* V331 tmp319 [V331 ] ( 0, 0 ) int -> zero-ref "field V61.Item1 (fldOffset=0x0)" P-INDEP
;* V332 tmp320 [V332 ] ( 0, 0 ) int -> zero-ref "field V61.Item2 (fldOffset=0x4)" P-INDEP
;* V333 tmp321 [V333 ] ( 0, 0 ) int -> zero-ref "field V64.Item1 (fldOffset=0x0)" P-INDEP
; V334 tmp322 [V334,T26] ( 2, 8 ) int -> rdi "field V64.Item2 (fldOffset=0x4)" P-INDEP
; V335 tmp323 [V335,T124] ( 2, 1 ) byref -> rsi single-def "field V80._reference (fldOffset=0x0)" P-INDEP
; V336 tmp324 [V336,T135] ( 2, 1 ) int -> rcx "field V80._length (fldOffset=0x8)" P-INDEP
;* V337 tmp325 [V337 ] ( 0, 0 ) byref -> zero-ref single-def "field V85._reference (fldOffset=0x0)" P-INDEP
;* V338 tmp326 [V338 ] ( 0, 0 ) int -> zero-ref "field V85._length (fldOffset=0x8)" P-INDEP
;* V339 tmp327 [V339 ] ( 0, 0 ) byref -> zero-ref single-def "field V86._reference (fldOffset=0x0)" P-INDEP
;* V340 tmp328 [V340 ] ( 0, 0 ) int -> zero-ref "field V86._length (fldOffset=0x8)" P-INDEP
;* V341 tmp329 [V341 ] ( 0, 0 ) byref -> zero-ref single-def "field V88._reference (fldOffset=0x0)" P-INDEP
;* V342 tmp330 [V342 ] ( 0, 0 ) int -> zero-ref "field V88._length (fldOffset=0x8)" P-INDEP
;* V343 tmp331 [V343 ] ( 0, 0 ) byref -> zero-ref "field V91._reference (fldOffset=0x0)" P-INDEP
;* V344 tmp332 [V344 ] ( 0, 0 ) int -> zero-ref "field V91._length (fldOffset=0x8)" P-INDEP
;* V345 tmp333 [V345 ] ( 0, 0 ) byref -> zero-ref single-def "field V92._reference (fldOffset=0x0)" P-INDEP
;* V346 tmp334 [V346 ] ( 0, 0 ) int -> zero-ref "field V92._length (fldOffset=0x8)" P-INDEP
;* V347 tmp335 [V347 ] ( 0, 0 ) byref -> zero-ref single-def "field V94._reference (fldOffset=0x0)" P-INDEP
;* V348 tmp336 [V348 ] ( 0, 0 ) int -> zero-ref "field V94._length (fldOffset=0x8)" P-INDEP
;* V349 tmp337 [V349 ] ( 0, 0 ) byref -> zero-ref single-def "field V98._reference (fldOffset=0x0)" P-INDEP
;* V350 tmp338 [V350 ] ( 0, 0 ) int -> zero-ref "field V98._length (fldOffset=0x8)" P-INDEP
;* V351 tmp339 [V351 ] ( 0, 0 ) byref -> zero-ref single-def "field V102._reference (fldOffset=0x0)" P-INDEP
;* V352 tmp340 [V352 ] ( 0, 0 ) int -> zero-ref "field V102._length (fldOffset=0x8)" P-INDEP
;* V353 tmp341 [V353 ] ( 0, 0 ) byref -> zero-ref "field V103._reference (fldOffset=0x0)" P-INDEP
;* V354 tmp342 [V354 ] ( 0, 0 ) int -> zero-ref "field V103._length (fldOffset=0x8)" P-INDEP
;* V355 tmp343 [V355 ] ( 0, 0 ) byref -> zero-ref single-def "field V106._reference (fldOffset=0x0)" P-INDEP
;* V356 tmp344 [V356 ] ( 0, 0 ) int -> zero-ref "field V106._length (fldOffset=0x8)" P-INDEP
;* V357 tmp345 [V357 ] ( 0, 0 ) byref -> zero-ref single-def "field V109._reference (fldOffset=0x0)" P-INDEP
;* V358 tmp346 [V358 ] ( 0, 0 ) int -> zero-ref "field V109._length (fldOffset=0x8)" P-INDEP
;* V359 tmp347 [V359 ] ( 0, 0 ) int -> zero-ref "field V114.Item1 (fldOffset=0x0)" P-INDEP
;* V360 tmp348 [V360 ] ( 0, 0 ) int -> zero-ref "field V114.Item2 (fldOffset=0x4)" P-INDEP
;* V361 tmp349 [V361 ] ( 0, 0 ) int -> zero-ref "field V117.Item1 (fldOffset=0x0)" P-INDEP
; V362 tmp350 [V362,T27] ( 2, 8 ) int -> rdi "field V117.Item2 (fldOffset=0x4)" P-INDEP
; V363 tmp351 [V363,T125] ( 2, 1 ) byref -> rsi single-def "field V133._reference (fldOffset=0x0)" P-INDEP
; V364 tmp352 [V364,T136] ( 2, 1 ) int -> rcx "field V133._length (fldOffset=0x8)" P-INDEP
;* V365 tmp353 [V365 ] ( 0, 0 ) byref -> zero-ref single-def "field V138._reference (fldOffset=0x0)" P-INDEP
;* V366 tmp354 [V366 ] ( 0, 0 ) int -> zero-ref "field V138._length (fldOffset=0x8)" P-INDEP
;* V367 tmp355 [V367 ] ( 0, 0 ) byref -> zero-ref single-def "field V139._reference (fldOffset=0x0)" P-INDEP
;* V368 tmp356 [V368 ] ( 0, 0 ) int -> zero-ref "field V139._length (fldOffset=0x8)" P-INDEP
;* V369 tmp357 [V369 ] ( 0, 0 ) byref -> zero-ref single-def "field V141._reference (fldOffset=0x0)" P-INDEP
;* V370 tmp358 [V370 ] ( 0, 0 ) int -> zero-ref "field V141._length (fldOffset=0x8)" P-INDEP
;* V371 tmp359 [V371 ] ( 0, 0 ) byref -> zero-ref "field V144._reference (fldOffset=0x0)" P-INDEP
;* V372 tmp360 [V372 ] ( 0, 0 ) int -> zero-ref "field V144._length (fldOffset=0x8)" P-INDEP
;* V373 tmp361 [V373 ] ( 0, 0 ) byref -> zero-ref single-def "field V145._reference (fldOffset=0x0)" P-INDEP
;* V374 tmp362 [V374 ] ( 0, 0 ) int -> zero-ref "field V145._length (fldOffset=0x8)" P-INDEP
;* V375 tmp363 [V375 ] ( 0, 0 ) byref -> zero-ref single-def "field V147._reference (fldOffset=0x0)" P-INDEP
;* V376 tmp364 [V376 ] ( 0, 0 ) int -> zero-ref "field V147._length (fldOffset=0x8)" P-INDEP
;* V377 tmp365 [V377 ] ( 0, 0 ) byref -> zero-ref single-def "field V151._reference (fldOffset=0x0)" P-INDEP
;* V378 tmp366 [V378 ] ( 0, 0 ) int -> zero-ref "field V151._length (fldOffset=0x8)" P-INDEP
;* V379 tmp367 [V379 ] ( 0, 0 ) byref -> zero-ref single-def "field V155._reference (fldOffset=0x0)" P-INDEP
;* V380 tmp368 [V380 ] ( 0, 0 ) int -> zero-ref "field V155._length (fldOffset=0x8)" P-INDEP
;* V381 tmp369 [V381 ] ( 0, 0 ) byref -> zero-ref "field V156._reference (fldOffset=0x0)" P-INDEP
;* V382 tmp370 [V382 ] ( 0, 0 ) int -> zero-ref "field V156._length (fldOffset=0x8)" P-INDEP
;* V383 tmp371 [V383 ] ( 0, 0 ) byref -> zero-ref single-def "field V159._reference (fldOffset=0x0)" P-INDEP
;* V384 tmp372 [V384 ] ( 0, 0 ) int -> zero-ref "field V159._length (fldOffset=0x8)" P-INDEP
;* V385 tmp373 [V385 ] ( 0, 0 ) byref -> zero-ref single-def "field V162._reference (fldOffset=0x0)" P-INDEP
;* V386 tmp374 [V386 ] ( 0, 0 ) int -> zero-ref "field V162._length (fldOffset=0x8)" P-INDEP
;* V387 tmp375 [V387 ] ( 0, 0 ) int -> zero-ref "field V167.Item1 (fldOffset=0x0)" P-INDEP
;* V388 tmp376 [V388 ] ( 0, 0 ) int -> zero-ref "field V167.Item2 (fldOffset=0x4)" P-INDEP
;* V389 tmp377 [V389 ] ( 0, 0 ) int -> zero-ref "field V170.Item1 (fldOffset=0x0)" P-INDEP
; V390 tmp378 [V390,T28] ( 2, 8 ) int -> rdi "field V170.Item2 (fldOffset=0x4)" P-INDEP
; V391 tmp379 [V391,T126] ( 2, 1 ) byref -> rsi single-def "field V186._reference (fldOffset=0x0)" P-INDEP
; V392 tmp380 [V392,T137] ( 2, 1 ) int -> rax "field V186._length (fldOffset=0x8)" P-INDEP
;* V393 tmp381 [V393 ] ( 0, 0 ) byref -> zero-ref single-def "field V191._reference (fldOffset=0x0)" P-INDEP
;* V394 tmp382 [V394 ] ( 0, 0 ) int -> zero-ref "field V191._length (fldOffset=0x8)" P-INDEP
;* V395 tmp383 [V395 ] ( 0, 0 ) byref -> zero-ref single-def "field V192._reference (fldOffset=0x0)" P-INDEP
;* V396 tmp384 [V396 ] ( 0, 0 ) int -> zero-ref "field V192._length (fldOffset=0x8)" P-INDEP
;* V397 tmp385 [V397 ] ( 0, 0 ) byref -> zero-ref single-def "field V194._reference (fldOffset=0x0)" P-INDEP
;* V398 tmp386 [V398 ] ( 0, 0 ) int -> zero-ref "field V194._length (fldOffset=0x8)" P-INDEP
;* V399 tmp387 [V399 ] ( 0, 0 ) byref -> zero-ref "field V197._reference (fldOffset=0x0)" P-INDEP
;* V400 tmp388 [V400 ] ( 0, 0 ) int -> zero-ref "field V197._length (fldOffset=0x8)" P-INDEP
;* V401 tmp389 [V401 ] ( 0, 0 ) byref -> zero-ref single-def "field V198._reference (fldOffset=0x0)" P-INDEP
;* V402 tmp390 [V402 ] ( 0, 0 ) int -> zero-ref "field V198._length (fldOffset=0x8)" P-INDEP
;* V403 tmp391 [V403 ] ( 0, 0 ) byref -> zero-ref single-def "field V200._reference (fldOffset=0x0)" P-INDEP
;* V404 tmp392 [V404 ] ( 0, 0 ) int -> zero-ref "field V200._length (fldOffset=0x8)" P-INDEP
;* V405 tmp393 [V405 ] ( 0, 0 ) byref -> zero-ref single-def "field V204._reference (fldOffset=0x0)" P-INDEP
;* V406 tmp394 [V406 ] ( 0, 0 ) int -> zero-ref "field V204._length (fldOffset=0x8)" P-INDEP
;* V407 tmp395 [V407 ] ( 0, 0 ) byref -> zero-ref single-def "field V208._reference (fldOffset=0x0)" P-INDEP
;* V408 tmp396 [V408 ] ( 0, 0 ) int -> zero-ref "field V208._length (fldOffset=0x8)" P-INDEP
;* V409 tmp397 [V409 ] ( 0, 0 ) byref -> zero-ref "field V209._reference (fldOffset=0x0)" P-INDEP
;* V410 tmp398 [V410 ] ( 0, 0 ) int -> zero-ref "field V209._length (fldOffset=0x8)" P-INDEP
;* V411 tmp399 [V411 ] ( 0, 0 ) byref -> zero-ref single-def "field V212._reference (fldOffset=0x0)" P-INDEP
;* V412 tmp400 [V412 ] ( 0, 0 ) int -> zero-ref "field V212._length (fldOffset=0x8)" P-INDEP
;* V413 tmp401 [V413 ] ( 0, 0 ) byref -> zero-ref single-def "field V215._reference (fldOffset=0x0)" P-INDEP
;* V414 tmp402 [V414 ] ( 0, 0 ) int -> zero-ref "field V215._length (fldOffset=0x8)" P-INDEP
;* V415 tmp403 [V415 ] ( 0, 0 ) int -> zero-ref "field V220.Item1 (fldOffset=0x0)" P-INDEP
;* V416 tmp404 [V416 ] ( 0, 0 ) int -> zero-ref "field V220.Item2 (fldOffset=0x4)" P-INDEP
;* V417 tmp405 [V417 ] ( 0, 0 ) int -> zero-ref "field V223.Item1 (fldOffset=0x0)" P-INDEP
; V418 tmp406 [V418,T29] ( 2, 8 ) int -> rdi "field V223.Item2 (fldOffset=0x4)" P-INDEP
;* V419 tmp407 [V419 ] ( 0, 0 ) byref -> zero-ref "field V240._reference (fldOffset=0x0)" P-INDEP
;* V420 tmp408 [V420 ] ( 0, 0 ) int -> zero-ref "field V240._length (fldOffset=0x8)" P-INDEP
;* V421 tmp409 [V421 ] ( 0, 0 ) byref -> zero-ref single-def "field V241._reference (fldOffset=0x0)" P-INDEP
;* V422 tmp410 [V422 ] ( 0, 0 ) int -> zero-ref "field V241._length (fldOffset=0x8)" P-INDEP
;* V423 tmp411 [V423 ] ( 0, 0 ) byref -> zero-ref single-def "field V244._reference (fldOffset=0x0)" P-INDEP
;* V424 tmp412 [V424 ] ( 0, 0 ) int -> zero-ref "field V244._length (fldOffset=0x8)" P-INDEP
;* V425 tmp413 [V425 ] ( 0, 0 ) byref -> zero-ref "field V249._reference (fldOffset=0x0)" P-INDEP
;* V426 tmp414 [V426 ] ( 0, 0 ) int -> zero-ref "field V249._length (fldOffset=0x8)" P-INDEP
;* V427 tmp415 [V427 ] ( 0, 0 ) byref -> zero-ref single-def "field V250._reference (fldOffset=0x0)" P-INDEP
;* V428 tmp416 [V428 ] ( 0, 0 ) int -> zero-ref "field V250._length (fldOffset=0x8)" P-INDEP
;* V429 tmp417 [V429 ] ( 0, 0 ) byref -> zero-ref single-def "field V253._reference (fldOffset=0x0)" P-INDEP
;* V430 tmp418 [V430 ] ( 0, 0 ) int -> zero-ref "field V253._length (fldOffset=0x8)" P-INDEP
;* V431 tmp419 [V431 ] ( 0, 0 ) byref -> zero-ref "field V258._reference (fldOffset=0x0)" P-INDEP
;* V432 tmp420 [V432 ] ( 0, 0 ) int -> zero-ref "field V258._length (fldOffset=0x8)" P-INDEP
;* V433 tmp421 [V433 ] ( 0, 0 ) byref -> zero-ref single-def "field V259._reference (fldOffset=0x0)" P-INDEP
;* V434 tmp422 [V434 ] ( 0, 0 ) int -> zero-ref "field V259._length (fldOffset=0x8)" P-INDEP
;* V435 tmp423 [V435 ] ( 0, 0 ) byref -> zero-ref single-def "field V262._reference (fldOffset=0x0)" P-INDEP
;* V436 tmp424 [V436 ] ( 0, 0 ) int -> zero-ref "field V262._length (fldOffset=0x8)" P-INDEP
-; V437 tmp425 [V437,T104] ( 3, 1.50) byref -> r15 single-def "field V265._reference (fldOffset=0x0)" P-INDEP
-; V438 tmp426 [V438,T114] ( 3, 1.50) int -> r14 "field V265._length (fldOffset=0x8)" P-INDEP
-; V439 tmp427 [V439,T105] ( 3, 1.50) byref -> rdx single-def "field V268._reference (fldOffset=0x0)" P-INDEP
-; V440 tmp428 [V440,T115] ( 3, 1.50) int -> rcx "field V268._length (fldOffset=0x8)" P-INDEP
+; V437 tmp425 [V437,T108] ( 3, 1.50) byref -> r15 single-def "field V265._reference (fldOffset=0x0)" P-INDEP
+; V438 tmp426 [V438,T118] ( 3, 1.50) int -> r14 "field V265._length (fldOffset=0x8)" P-INDEP
+; V439 tmp427 [V439,T109] ( 3, 1.50) byref -> rdx single-def "field V268._reference (fldOffset=0x0)" P-INDEP
+; V440 tmp428 [V440,T119] ( 3, 1.50) int -> rcx "field V268._length (fldOffset=0x8)" P-INDEP
; V441 tmp429 [V441,T37] ( 2, 4.50) byref -> r9 single-def "field V270._reference (fldOffset=0x0)" P-INDEP
-; V442 tmp430 [V442,T19] ( 5, 9.50) int -> r10 "field V270._length (fldOffset=0x8)" P-INDEP
+; V442 tmp430 [V442,T23] ( 5, 9.50) int -> r10 "field V270._length (fldOffset=0x8)" P-INDEP
;* V443 tmp431 [V443 ] ( 0, 0 ) byref -> zero-ref "field V275._reference (fldOffset=0x0)" P-INDEP
;* V444 tmp432 [V444 ] ( 0, 0 ) int -> zero-ref "field V275._length (fldOffset=0x8)" P-INDEP
;* V445 tmp433 [V445 ] ( 0, 0 ) byref -> zero-ref "field V279._reference (fldOffset=0x0)" P-INDEP
;* V446 tmp434 [V446 ] ( 0, 0 ) int -> zero-ref "field V279._length (fldOffset=0x8)" P-INDEP
;* V447 tmp435 [V447 ] ( 0, 0 ) byref -> zero-ref single-def "field V280._reference (fldOffset=0x0)" P-INDEP
;* V448 tmp436 [V448 ] ( 0, 0 ) int -> zero-ref "field V280._length (fldOffset=0x8)" P-INDEP
;* V449 tmp437 [V449 ] ( 0, 0 ) byref -> zero-ref single-def "field V283._reference (fldOffset=0x0)" P-INDEP
;* V450 tmp438 [V450 ] ( 0, 0 ) int -> zero-ref "field V283._length (fldOffset=0x8)" P-INDEP
;* V451 tmp439 [V451 ] ( 0, 0 ) byref -> zero-ref "field V288._reference (fldOffset=0x0)" P-INDEP
;* V452 tmp440 [V452 ] ( 0, 0 ) int -> zero-ref "field V288._length (fldOffset=0x8)" P-INDEP
;* V453 tmp441 [V453 ] ( 0, 0 ) byref -> zero-ref single-def "field V289._reference (fldOffset=0x0)" P-INDEP
;* V454 tmp442 [V454 ] ( 0, 0 ) int -> zero-ref "field V289._length (fldOffset=0x8)" P-INDEP
;* V455 tmp443 [V455 ] ( 0, 0 ) byref -> zero-ref single-def "field V292._reference (fldOffset=0x0)" P-INDEP
;* V456 tmp444 [V456 ] ( 0, 0 ) int -> zero-ref "field V292._length (fldOffset=0x8)" P-INDEP
; V457 tmp445 [V457,T100] ( 2, 2 ) long -> rcx "Cast away GC"
; V458 tmp446 [V458,T101] ( 2, 2 ) long -> rcx "Cast away GC"
; V459 tmp447 [V459,T102] ( 2, 2 ) long -> rcx "Cast away GC"
; V460 tmp448 [V460,T103] ( 2, 2 ) long -> rcx "Cast away GC"
; V461 GsCookie [V461 ] ( 1, 1 ) long -> [rbp-0xC8] do-not-enreg[X] addr-exposed "GSSecurityCookie"
; V462 cse0 [V462,T11] ( 16, 22 ) ref -> rcx hoist multi-def "CSE - moderate"
-; V463 cse1 [V463,T18] ( 3, 12 ) int -> rdx "CSE - moderate"
+; V463 cse1 [V463,T22] ( 3, 12 ) int -> rdx "CSE - moderate"
;
; Lcl frame size = 168
G_M51890_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 168
vzeroupper
lea rbp, [rsp+0xD0]
xor eax, eax
mov qword ptr [rbp-0xB8], rax
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0xB0], ymm8
vmovdqu ymmword ptr [rbp-0x90], ymm8
vmovdqu ymmword ptr [rbp-0x70], ymm8
vmovdqu ymmword ptr [rbp-0x50], ymm8
mov qword ptr [rbp-0x30], rax
mov qword ptr [rbp-0xC8], 0xD1FFAB1E
mov r15, rsi
mov r14, rdx
mov rbx, rcx
mov r13d, r8d
mov r12d, r9d
mov rsi, rdi
;; size=101 bbWeight=1 PerfScore 20.83
G_M51890_IG02:
test dword ptr [rsp], esp
sub rsp, 512
lea rdi, [rsp]
mov bword ptr [rbp-0x38], rdi
mov dword ptr [rbp-0x30], 256
xor edi, edi
mov dword ptr [rbp-0x40], edi
lea rdi, [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String)
call [rax]System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String)
test r15, r15
je G_M51890_IG58
;; size=55 bbWeight=1 PerfScore 12.00
G_M51890_IG03:
movzx rax, word ptr [r15+0x08]
mov dword ptr [rbp-0x4C], eax
cmp eax, 0xFFFF
je G_M51890_IG58
mov ecx, dword ptr [rbp-0x40]
mov dword ptr [rbp-0x58], ecx
mov edi, dword ptr [rbp-0x30]
add edi, -10
cmp ecx, edi
jle SHORT G_M51890_IG04
lea rdi, [rbp-0x48]
mov esi, 10
mov rdx, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
call [rdx]System.Text.ValueStringBuilder:Grow(int):this
;; size=56 bbWeight=0.50 PerfScore 6.38
G_M51890_IG04:
mov ecx, dword ptr [rbp-0x58]
cmp ecx, dword ptr [rbp-0x30]
ja G_M51890_IG80
mov rdi, bword ptr [rbp-0x38]
mov edx, ecx
lea rdi, bword ptr [rdi+2*rdx]
mov edx, dword ptr [rbp-0x30]
sub edx, ecx
cmp edx, 10
jb G_M51890_IG81
mov rcx, 0xD1FFAB1E
vmovdqu xmm0, xmmword ptr [rcx]
vmovdqu xmm1, xmmword ptr [rcx+0x04]
vmovdqu xmmword ptr [rdi], xmm0
vmovdqu xmmword ptr [rdi+0x04], xmm1
mov edi, dword ptr [rbp-0x40]
add edi, 10
mov dword ptr [rbp-0x40], edi
mov eax, dword ptr [rbp-0x4C]
mov word ptr [rbp-0x5C], ax
lea rdi, bword ptr [rbp-0x5C]
mov eax, dword ptr [rbp-0x40]
cmp eax, dword ptr [rbp-0x30]
ja G_M51890_IG80
mov rcx, bword ptr [rbp-0x38]
mov edx, eax
lea rcx, bword ptr [rcx+2*rdx]
mov edx, dword ptr [rbp-0x30]
sub edx, eax
movzx rdi, word ptr [rdi]
mov eax, edi
mov esi, edi
or esi, 1
lzcnt esi, esi
xor esi, 31
mov r8, 0xD1FFAB1E ; static handle
add rax, qword ptr [r8+8*rsi]
sar rax, 32
cmp eax, edx
jg G_M51890_IG12
mov dword ptr [rbp-0x68], eax
mov bword ptr [rbp-0x70], rcx
cdqe
lea rax, [rcx+2*rax]
cmp edi, 10
jb SHORT G_M51890_IG10
+ ;; NOP compensation instructions of 4 bytes.
cmp edi, 100
jb SHORT G_M51890_IG09
+ ;; NOP compensation instructions of 4 bytes.
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rcx]
jmp SHORT G_M51890_IG05
- align [0 bytes for IG05]
- ;; size=192 bbWeight=0.50 PerfScore 25.88
+ align [4 bytes for IG05]
+ ;; size=204 bbWeight=0.50 PerfScore 25.88
G_M51890_IG05:
add rax, -4
mov edx, edi
imul rdx, rdx, 0xD1FFAB1E
shr rdx, 37
imul esi, edx, 100
sub edi, esi
mov rsi, rcx
+ cmp byte ptr [rsi], sil
shl edi, 2
mov edi, dword ptr [rsi+rdi+0x10]
mov dword ptr [rax], edi
cmp edx, 100
jae SHORT G_M51890_IG08
- ;; size=39 bbWeight=4 PerfScore 41.00
+ ;; size=42 bbWeight=4 PerfScore 53.00
G_M51890_IG06:
cmp edx, 10
jb SHORT G_M51890_IG07
add rax, -4
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rcx]
+ cmp byte ptr [rcx], cl
shl edx, 2
mov edi, edx
mov edi, dword ptr [rcx+rdi+0x10]
mov dword ptr [rax], edi
jmp SHORT G_M51890_IG11
- ;; size=35 bbWeight=0.50 PerfScore 4.75
+ ;; size=37 bbWeight=0.50 PerfScore 6.25
G_M51890_IG07:
mov edi, edx
jmp SHORT G_M51890_IG10
- align [0 bytes for IG19]
- ;; size=4 bbWeight=0.25 PerfScore 0.56
+ align [2 bytes for IG19]
+ ;; size=6 bbWeight=0.25 PerfScore 0.56
G_M51890_IG08:
mov edi, edx
jmp SHORT G_M51890_IG05
;; size=4 bbWeight=2 PerfScore 4.50
G_M51890_IG09:
mov edx, edi
jmp SHORT G_M51890_IG06
;; size=4 bbWeight=0.25 PerfScore 0.56
G_M51890_IG10:
add edi, 48
mov word ptr [rax-0x02], di
;; size=7 bbWeight=0.50 PerfScore 0.62
G_M51890_IG11:
xor edi, edi
mov bword ptr [rbp-0x70], rdi
mov edi, 1
jmp SHORT G_M51890_IG13
;; size=13 bbWeight=0.50 PerfScore 1.75
G_M51890_IG12:
xor edi, edi
mov dword ptr [rbp-0x68], edi
;; size=5 bbWeight=0.50 PerfScore 0.62
G_M51890_IG13:
xor rax, rax
mov bword ptr [rbp-0x70], rax
test edi, edi
je SHORT G_M51890_IG14
mov edi, dword ptr [rbp-0x40]
add edi, dword ptr [rbp-0x68]
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M51890_IG16
;; size=21 bbWeight=0.50 PerfScore 4.25
G_M51890_IG14:
movzx rdi, word ptr [rbp-0x5C]
mov rax, 0xD1FFAB1E ; code for System.Number:UInt32ToDecStr(uint):System.String
call [rax]System.Number:UInt32ToDecStr(uint):System.String
test rax, rax
je SHORT G_M51890_IG16
mov edi, dword ptr [rbp-0x40]
cmp dword ptr [rax+0x08], 1
jne SHORT G_M51890_IG15
cmp edi, dword ptr [rbp-0x30]
jae SHORT G_M51890_IG15
cmp edi, dword ptr [rbp-0x30]
jae G_M51890_IG78
mov rsi, bword ptr [rbp-0x38]
mov ecx, edi
movzx rax, word ptr [rax+0x0C]
mov word ptr [rsi+2*rcx], ax
inc edi
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M51890_IG16
;; size=65 bbWeight=0.50 PerfScore 12.00
G_M51890_IG15:
lea rdi, [rbp-0x48]
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:AppendSlow(System.String):this
call [rax]System.Text.ValueStringBuilder:AppendSlow(System.String):this
;; size=19 bbWeight=0.50 PerfScore 2.00
G_M51890_IG16:
movzx rax, word ptr [r15+0x0C]
mov dword ptr [rbp-0x50], eax
cmp eax, 0xFFFF
je G_M51890_IG58
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov ecx, dword ptr [rbp-0x30]
cmp edi, ecx
jae SHORT G_M51890_IG17
mov ecx, edi
mov word ptr [rsi+2*rcx], 46
inc edi
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M51890_IG18
;; size=48 bbWeight=0.50 PerfScore 6.50
G_M51890_IG17:
lea rdi, [rbp-0x48]
mov esi, 46
mov rcx, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rcx]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=0.50 PerfScore 2.00
G_M51890_IG18:
mov eax, dword ptr [rbp-0x50]
mov word ptr [rbp-0x74], ax
lea rdi, bword ptr [rbp-0x74]
mov eax, dword ptr [rbp-0x40]
cmp eax, dword ptr [rbp-0x30]
ja G_M51890_IG80
mov rcx, bword ptr [rbp-0x38]
mov edx, eax
lea rcx, bword ptr [rcx+2*rdx]
mov edx, dword ptr [rbp-0x30]
sub edx, eax
movzx rdi, word ptr [rdi]
mov eax, edi
mov esi, edi
or esi, 1
lzcnt esi, esi
xor esi, 31
mov r8, 0xD1FFAB1E ; static handle
add rax, qword ptr [r8+8*rsi]
sar rax, 32
cmp eax, edx
jg G_M51890_IG26
mov dword ptr [rbp-0x80], eax
mov bword ptr [rbp-0x88], rcx
cdqe
lea rax, [rcx+2*rax]
cmp edi, 10
jb SHORT G_M51890_IG24
+ ;; NOP compensation instructions of 4 bytes.
cmp edi, 100
jb SHORT G_M51890_IG23
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rcx]
- ;; size=120 bbWeight=0.50 PerfScore 13.50
+ ;; size=124 bbWeight=0.50 PerfScore 13.50
G_M51890_IG19:
add rax, -4
mov edx, edi
imul rdx, rdx, 0xD1FFAB1E
shr rdx, 37
imul esi, edx, 100
sub edi, esi
mov rsi, rcx
+ cmp byte ptr [rsi], sil
shl edi, 2
mov edi, dword ptr [rsi+rdi+0x10]
mov dword ptr [rax], edi
cmp edx, 100
jae SHORT G_M51890_IG22
- ;; size=39 bbWeight=4 PerfScore 41.00
+ ;; size=42 bbWeight=4 PerfScore 53.00
G_M51890_IG20:
cmp edx, 10
jb SHORT G_M51890_IG21
add rax, -4
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rcx]
mov rdi, rcx
+ cmp byte ptr [rdi], dil
shl edx, 2
mov ecx, edx
mov edi, dword ptr [rdi+rcx+0x10]
mov dword ptr [rax], edi
jmp SHORT G_M51890_IG25
- ;; size=38 bbWeight=0.50 PerfScore 4.88
+ ;; size=41 bbWeight=0.50 PerfScore 6.38
G_M51890_IG21:
mov edi, edx
jmp SHORT G_M51890_IG24
align [0 bytes for IG33]
;; size=4 bbWeight=0.25 PerfScore 0.56
G_M51890_IG22:
mov edi, edx
jmp SHORT G_M51890_IG19
;; size=4 bbWeight=2 PerfScore 4.50
G_M51890_IG23:
mov edx, edi
jmp SHORT G_M51890_IG20
;; size=4 bbWeight=0.25 PerfScore 0.56
G_M51890_IG24:
add edi, 48
mov word ptr [rax-0x02], di
;; size=7 bbWeight=0.50 PerfScore 0.62
G_M51890_IG25:
xor edi, edi
mov bword ptr [rbp-0x88], rdi
mov edi, 1
jmp SHORT G_M51890_IG27
;; size=16 bbWeight=0.50 PerfScore 1.75
G_M51890_IG26:
xor edi, edi
mov dword ptr [rbp-0x80], edi
;; size=5 bbWeight=0.50 PerfScore 0.62
G_M51890_IG27:
xor rax, rax
mov bword ptr [rbp-0x88], rax
test edi, edi
je SHORT G_M51890_IG28
mov edi, dword ptr [rbp-0x40]
add edi, dword ptr [rbp-0x80]
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M51890_IG30
;; size=24 bbWeight=0.50 PerfScore 4.25
G_M51890_IG28:
movzx rdi, word ptr [rbp-0x74]
mov rax, 0xD1FFAB1E ; code for System.Number:UInt32ToDecStr(uint):System.String
call [rax]System.Number:UInt32ToDecStr(uint):System.String
test rax, rax
je SHORT G_M51890_IG30
mov edi, dword ptr [rbp-0x40]
cmp dword ptr [rax+0x08], 1
jne SHORT G_M51890_IG29
cmp edi, dword ptr [rbp-0x30]
jae SHORT G_M51890_IG29
cmp edi, dword ptr [rbp-0x30]
jae G_M51890_IG78
mov rsi, bword ptr [rbp-0x38]
mov ecx, edi
movzx rax, word ptr [rax+0x0C]
mov word ptr [rsi+2*rcx], ax
inc edi
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M51890_IG30
;; size=65 bbWeight=0.50 PerfScore 12.00
G_M51890_IG29:
lea rdi, [rbp-0x48]
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:AppendSlow(System.String):this
call [rax]System.Text.ValueStringBuilder:AppendSlow(System.String):this
;; size=19 bbWeight=0.50 PerfScore 2.00
G_M51890_IG30:
movzx rax, word ptr [r15+0x10]
mov dword ptr [rbp-0x54], eax
cmp eax, 0xFFFF
je G_M51890_IG58
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov ecx, dword ptr [rbp-0x30]
cmp edi, ecx
jae SHORT G_M51890_IG31
mov ecx, edi
mov word ptr [rsi+2*rcx], 46
inc edi
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M51890_IG32
;; size=48 bbWeight=0.50 PerfScore 6.50
G_M51890_IG31:
lea rdi, [rbp-0x48]
mov esi, 46
mov rcx, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rcx]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=0.50 PerfScore 2.00
G_M51890_IG32:
mov eax, dword ptr [rbp-0x54]
mov word ptr [rbp-0x8C], ax
lea rdi, bword ptr [rbp-0x8C]
mov eax, dword ptr [rbp-0x40]
cmp eax, dword ptr [rbp-0x30]
ja G_M51890_IG80
mov rcx, bword ptr [rbp-0x38]
mov edx, eax
lea rcx, bword ptr [rcx+2*rdx]
mov edx, dword ptr [rbp-0x30]
sub edx, eax
movzx rdi, word ptr [rdi]
mov eax, edi
mov esi, edi
or esi, 1
lzcnt esi, esi
xor esi, 31
mov r8, 0xD1FFAB1E ; static handle
add rax, qword ptr [r8+8*rsi]
sar rax, 32
cmp eax, edx
jg G_M51890_IG40
mov dword ptr [rbp-0x98], eax
mov bword ptr [rbp-0xA0], rcx
cdqe
lea rax, [rcx+2*rax]
cmp edi, 10
jb SHORT G_M51890_IG38
cmp edi, 100
jb SHORT G_M51890_IG37
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rcx]
;; size=129 bbWeight=0.50 PerfScore 13.50
G_M51890_IG33:
add rax, -4
mov edx, edi
imul rdx, rdx, 0xD1FFAB1E
shr rdx, 37
imul esi, edx, 100
sub edi, esi
mov rsi, rcx
+ cmp byte ptr [rsi], sil
shl edi, 2
mov edi, dword ptr [rsi+rdi+0x10]
mov dword ptr [rax], edi
cmp edx, 100
jae SHORT G_M51890_IG36
- ;; size=39 bbWeight=4 PerfScore 41.00
+ ;; size=42 bbWeight=4 PerfScore 53.00
G_M51890_IG34:
cmp edx, 10
jb SHORT G_M51890_IG35
add rax, -4
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rcx]
mov rdi, rcx
+ cmp byte ptr [rdi], dil
shl edx, 2
mov ecx, edx
mov edi, dword ptr [rdi+rcx+0x10]
mov dword ptr [rax], edi
jmp SHORT G_M51890_IG39
- ;; size=38 bbWeight=0.50 PerfScore 4.88
+ ;; size=41 bbWeight=0.50 PerfScore 6.38
G_M51890_IG35:
mov edi, edx
jmp SHORT G_M51890_IG38
align [0 bytes for IG47]
;; size=4 bbWeight=0.25 PerfScore 0.56
G_M51890_IG36:
mov edi, edx
jmp SHORT G_M51890_IG33
;; size=4 bbWeight=2 PerfScore 4.50
G_M51890_IG37:
mov edx, edi
jmp SHORT G_M51890_IG34
;; size=4 bbWeight=0.25 PerfScore 0.56
G_M51890_IG38:
add edi, 48
mov word ptr [rax-0x02], di
;; size=7 bbWeight=0.50 PerfScore 0.62
G_M51890_IG39:
xor edi, edi
mov bword ptr [rbp-0xA0], rdi
mov edi, 1
jmp SHORT G_M51890_IG41
;; size=16 bbWeight=0.50 PerfScore 1.75
G_M51890_IG40:
xor edi, edi
mov dword ptr [rbp-0x98], edi
;; size=8 bbWeight=0.50 PerfScore 0.62
G_M51890_IG41:
xor rax, rax
mov bword ptr [rbp-0xA0], rax
test edi, edi
je SHORT G_M51890_IG42
mov edi, dword ptr [rbp-0x40]
add edi, dword ptr [rbp-0x98]
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M51890_IG44
;; size=27 bbWeight=0.50 PerfScore 4.25
G_M51890_IG42:
movzx rdi, word ptr [rbp-0x8C]
mov rax, 0xD1FFAB1E ; code for System.Number:UInt32ToDecStr(uint):System.String
call [rax]System.Number:UInt32ToDecStr(uint):System.String
test rax, rax
je SHORT G_M51890_IG44
mov edi, dword ptr [rbp-0x40]
cmp dword ptr [rax+0x08], 1
jne SHORT G_M51890_IG43
cmp edi, dword ptr [rbp-0x30]
jae SHORT G_M51890_IG43
cmp edi, dword ptr [rbp-0x30]
jae G_M51890_IG78
mov rsi, bword ptr [rbp-0x38]
mov ecx, edi
movzx rax, word ptr [rax+0x0C]
mov word ptr [rsi+2*rcx], ax
inc edi
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M51890_IG44
;; size=68 bbWeight=0.50 PerfScore 12.00
G_M51890_IG43:
lea rdi, [rbp-0x48]
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:AppendSlow(System.String):this
call [rax]System.Text.ValueStringBuilder:AppendSlow(System.String):this
;; size=19 bbWeight=0.50 PerfScore 2.00
G_M51890_IG44:
movzx r15, word ptr [r15+0x14]
cmp r15d, 0xFFFF
je G_M51890_IG58
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
jae SHORT G_M51890_IG45
mov eax, edi
mov word ptr [rsi+2*rax], 46
inc edi
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M51890_IG46
;; size=47 bbWeight=0.50 PerfScore 6.00
G_M51890_IG45:
lea rdi, [rbp-0x48]
mov esi, 46
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
;; size=21 bbWeight=0.50 PerfScore 2.00
G_M51890_IG46:
mov word ptr [rbp-0xA4], r15w
lea rdi, bword ptr [rbp-0xA4]
mov eax, dword ptr [rbp-0x40]
cmp eax, dword ptr [rbp-0x30]
ja G_M51890_IG80
mov rcx, bword ptr [rbp-0x38]
mov edx, eax
lea rcx, bword ptr [rcx+2*rdx]
mov edx, dword ptr [rbp-0x30]
sub edx, eax
movzx rdi, word ptr [rdi]
mov eax, edi
mov esi, edi
or esi, 1
lzcnt esi, esi
xor esi, 31
mov r8, 0xD1FFAB1E ; static handle
add rax, qword ptr [r8+8*rsi]
sar rax, 32
cmp eax, edx
jg G_M51890_IG54
mov dword ptr [rbp-0xB0], eax
mov bword ptr [rbp-0xB8], rcx
cdqe
lea rax, [rcx+2*rax]
cmp edi, 10
jb SHORT G_M51890_IG52
cmp edi, 100
jb SHORT G_M51890_IG51
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rcx]
;; size=127 bbWeight=0.50 PerfScore 13.00
G_M51890_IG47:
add rax, -4
mov edx, edi
imul rdx, rdx, 0xD1FFAB1E
shr rdx, 37
imul esi, edx, 100
sub edi, esi
mov rsi, rcx
+ cmp byte ptr [rsi], sil
shl edi, 2
mov edi, dword ptr [rsi+rdi+0x10]
mov dword ptr [rax], edi
cmp edx, 100
jae SHORT G_M51890_IG50
- ;; size=39 bbWeight=4 PerfScore 41.00
+ ;; size=42 bbWeight=4 PerfScore 53.00
G_M51890_IG48:
cmp edx, 10
jb SHORT G_M51890_IG49
add rax, -4
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rcx]
mov rdi, rcx
+ cmp byte ptr [rdi], dil
shl edx, 2
mov ecx, edx
mov edi, dword ptr [rdi+rcx+0x10]
mov dword ptr [rax], edi
jmp SHORT G_M51890_IG53
- ;; size=38 bbWeight=0.50 PerfScore 4.88
+ ;; size=41 bbWeight=0.50 PerfScore 6.38
G_M51890_IG49:
mov edi, edx
jmp SHORT G_M51890_IG52
align [0 bytes for IG68]
;; size=4 bbWeight=0.25 PerfScore 0.56
G_M51890_IG50:
mov edi, edx
jmp SHORT G_M51890_IG47
;; size=4 bbWeight=2 PerfScore 4.50
G_M51890_IG51:
mov edx, edi
jmp SHORT G_M51890_IG48
;; size=4 bbWeight=0.25 PerfScore 0.56
G_M51890_IG52:
add edi, 48
mov word ptr [rax-0x02], di
;; size=7 bbWeight=0.50 PerfScore 0.62
G_M51890_IG53:
xor edi, edi
mov bword ptr [rbp-0xB8], rdi
mov edi, 1
jmp SHORT G_M51890_IG55
;; size=16 bbWeight=0.50 PerfScore 1.75
G_M51890_IG54:
xor edi, edi
mov dword ptr [rbp-0xB0], edi
;; size=8 bbWeight=0.50 PerfScore 0.62
G_M51890_IG55:
xor rax, rax
mov bword ptr [rbp-0xB8], rax
test edi, edi
je SHORT G_M51890_IG56
mov edi, dword ptr [rbp-0x40]
add edi, dword ptr [rbp-0xB0]
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M51890_IG58
;; size=27 bbWeight=0.50 PerfScore 4.25
G_M51890_IG56:
movzx rdi, word ptr [rbp-0xA4]
mov rax, 0xD1FFAB1E ; code for System.Number:UInt32ToDecStr(uint):System.String
call [rax]System.Number:UInt32ToDecStr(uint):System.String
test rax, rax
je SHORT G_M51890_IG58
mov edi, dword ptr [rbp-0x40]
cmp dword ptr [rax+0x08], 1
jne SHORT G_M51890_IG57
cmp edi, dword ptr [rbp-0x30]
jae SHORT G_M51890_IG57
cmp edi, dword ptr [rbp-0x30]
jae G_M51890_IG78
mov rsi, bword ptr [rbp-0x38]
mov ecx, edi
cmp dword ptr [rax+0x08], 0
jbe G_M51890_IG78
movzx rax, word ptr [rax+0x0C]
mov word ptr [rsi+2*rcx], ax
inc edi
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M51890_IG58
;; size=78 bbWeight=0.50 PerfScore 14.00
G_M51890_IG57:
lea rdi, [rbp-0x48]
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:AppendSlow(System.String):this
call [rax]System.Text.ValueStringBuilder:AppendSlow(System.String):this
;; size=19 bbWeight=0.50 PerfScore 2.00
G_M51890_IG58:
test r14, r14
je G_M51890_IG61
;; size=9 bbWeight=1 PerfScore 1.25
G_M51890_IG59:
mov rdi, 0xD1FFAB1E ; 'neutral'
cmp dword ptr [r14+0x08], 0
cmove r14, rdi
mov r15d, dword ptr [rbp-0x40]
mov edi, dword ptr [rbp-0x30]
add edi, -10
cmp r15d, edi
jle SHORT G_M51890_IG60
lea rdi, [rbp-0x48]
mov esi, 10
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
call [rax]System.Text.ValueStringBuilder:Grow(int):this
;; size=55 bbWeight=0.50 PerfScore 5.50
G_M51890_IG60:
cmp r15d, dword ptr [rbp-0x30]
ja G_M51890_IG80
mov rdi, bword ptr [rbp-0x38]
mov esi, r15d
lea rdi, bword ptr [rdi+2*rsi]
mov esi, dword ptr [rbp-0x30]
sub esi, r15d
cmp esi, 10
jb G_M51890_IG81
mov rsi, 0xD1FFAB1E
vmovdqu xmm0, xmmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x04]
vmovdqu xmmword ptr [rdi], xmm0
vmovdqu xmmword ptr [rdi+0x04], xmm1
mov edi, dword ptr [rbp-0x40]
add edi, 10
mov dword ptr [rbp-0x40], edi
lea rdi, [rbp-0x48]
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String)
call [rax]System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String)
;; size=92 bbWeight=0.50 PerfScore 12.88
G_M51890_IG61:
test rbx, rbx
je G_M51890_IG69
;; size=9 bbWeight=1 PerfScore 1.25
G_M51890_IG62:
cmp dword ptr [rbx+0x08], 8
jg G_M51890_IG79
mov r15d, dword ptr [rbp-0x40]
mov edi, dword ptr [rbp-0x30]
add edi, -17
cmp r15d, edi
jle SHORT G_M51890_IG63
lea rdi, [rbp-0x48]
mov esi, 17
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
call [rax]System.Text.ValueStringBuilder:Grow(int):this
;; size=46 bbWeight=0.50 PerfScore 5.75
G_M51890_IG63:
cmp r15d, dword ptr [rbp-0x30]
ja G_M51890_IG80
mov rdi, bword ptr [rbp-0x38]
mov esi, r15d
lea rdi, bword ptr [rdi+2*rsi]
mov esi, dword ptr [rbp-0x30]
sub esi, r15d
cmp esi, 17
jb G_M51890_IG81
mov rsi, 0xD1FFAB1E
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x12]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu xmmword ptr [rdi+0x12], xmm1
mov edi, dword ptr [rbp-0x40]
add edi, 17
mov dword ptr [rbp-0x40], edi
cmp dword ptr [rbx+0x08], 0
jne SHORT G_M51890_IG65
mov ebx, dword ptr [rbp-0x40]
mov edi, dword ptr [rbp-0x30]
add edi, -4
cmp ebx, edi
jle SHORT G_M51890_IG64
lea rdi, [rbp-0x48]
mov esi, 4
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
call [rax]System.Text.ValueStringBuilder:Grow(int):this
;; size=113 bbWeight=0.50 PerfScore 17.12
G_M51890_IG64:
cmp ebx, dword ptr [rbp-0x30]
ja G_M51890_IG80
mov rdi, bword ptr [rbp-0x38]
mov esi, ebx
lea rdi, bword ptr [rdi+2*rsi]
mov esi, dword ptr [rbp-0x30]
sub esi, ebx
cmp esi, 4
jb G_M51890_IG81
mov rsi, 0xD1FFAB1E
mov rax, qword ptr [rsi]
mov qword ptr [rdi], rax
mov edi, dword ptr [rbp-0x40]
add edi, 4
mov dword ptr [rbp-0x40], edi
jmp G_M51890_IG69
;; size=63 bbWeight=0.50 PerfScore 7.38
G_M51890_IG65:
lea r15, bword ptr [rbx+0x10]
mov r14d, dword ptr [rbx+0x08]
mov ebx, dword ptr [rbx+0x08]
add ebx, ebx
mov eax, dword ptr [rbp-0x40]
mov dword ptr [rbp-0xBC], eax
mov edi, dword ptr [rbp-0x30]
sub edi, ebx
cmp edi, eax
jge SHORT G_M51890_IG66
lea rdi, [rbp-0x48]
mov esi, ebx
mov rcx, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
call [rcx]System.Text.ValueStringBuilder:Grow(int):this
;; size=49 bbWeight=0.50 PerfScore 6.62
G_M51890_IG66:
mov eax, dword ptr [rbp-0xBC]
lea edi, [rax+rbx]
mov dword ptr [rbp-0x40], edi
mov edi, eax
mov esi, ebx
add rdi, rsi
mov esi, dword ptr [rbp-0x30]
cmp rdi, rsi
ja G_M51890_IG80
mov rdi, bword ptr [rbp-0x38]
mov esi, eax
lea rdx, bword ptr [rdi+2*rsi]
mov ecx, ebx
mov rbx, rdx
mov eax, ecx
mov r9, r15
mov r10d, r14d
cmp r10d, 4
jl SHORT G_M51890_IG67
mov rdi, r15
mov esi, r14d
mov r8d, 0x2020
mov rax, 0xD1FFAB1E ; code for System.HexConverter:EncodeToUtf16_Vector128(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],uint)
call [rax]System.HexConverter:EncodeToUtf16_Vector128(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],uint)
jmp SHORT G_M51890_IG69
;; size=86 bbWeight=0.50 PerfScore 7.88
G_M51890_IG67:
xor edi, edi
test r10d, r10d
jle SHORT G_M51890_IG69
;; size=7 bbWeight=0.50 PerfScore 0.75
G_M51890_IG68:
cmp edi, r10d
jae G_M51890_IG78
mov esi, edi
movzx rsi, byte ptr [r9+rsi]
lea ecx, [rdi+rdi]
mov edx, esi
and edx, 240
shl edx, 4
and esi, 15
lea esi, [rdx+rsi-0x8989]
mov edx, esi
neg edx
and edx, 0x7070
shr edx, 4
lea esi, [rdx+rsi+0xB9B9]
or esi, 0x2020
lea edx, [rcx+0x01]
cmp edx, eax
jae G_M51890_IG78
movzx r8, sil
mov word ptr [rbx+2*rdx], r8w
cmp ecx, eax
jae G_M51890_IG78
shr esi, 8
mov word ptr [rbx+2*rcx], si
inc edi
cmp edi, r10d
jl SHORT G_M51890_IG68
;; size=108 bbWeight=4 PerfScore 64.00
G_M51890_IG69:
test r13d, 256
je SHORT G_M51890_IG72
;; size=9 bbWeight=1 PerfScore 1.25
G_M51890_IG70:
mov ebx, dword ptr [rbp-0x40]
mov edi, dword ptr [rbp-0x30]
add edi, -18
cmp ebx, edi
jle SHORT G_M51890_IG71
lea rdi, [rbp-0x48]
mov esi, 18
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
call [rax]System.Text.ValueStringBuilder:Grow(int):this
;; size=34 bbWeight=0.50 PerfScore 3.75
G_M51890_IG71:
cmp ebx, dword ptr [rbp-0x30]
ja G_M51890_IG80
mov rdi, bword ptr [rbp-0x38]
mov esi, ebx
lea rdi, bword ptr [rdi+2*rsi]
mov esi, dword ptr [rbp-0x30]
sub esi, ebx
cmp esi, 18
jb G_M51890_IG81
mov rsi, 0xD1FFAB1E
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x14]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu xmmword ptr [rdi+0x14], xmm1
mov edi, dword ptr [rbp-0x40]
add edi, 18
mov dword ptr [rbp-0x40], edi
;; size=70 bbWeight=0.50 PerfScore 11.38
G_M51890_IG72:
cmp r12d, 1
jne SHORT G_M51890_IG75
;; size=6 bbWeight=1 PerfScore 1.25
G_M51890_IG73:
mov ebx, dword ptr [rbp-0x40]
mov edi, dword ptr [rbp-0x30]
add edi, -28
cmp ebx, edi
jle SHORT G_M51890_IG74
lea rdi, [rbp-0x48]
mov esi, 28
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
call [rax]System.Text.ValueStringBuilder:Grow(int):this
;; size=34 bbWeight=0.50 PerfScore 3.75
G_M51890_IG74:
cmp ebx, dword ptr [rbp-0x30]
ja G_M51890_IG80
mov rdi, bword ptr [rbp-0x38]
mov eax, ebx
lea rdi, bword ptr [rdi+2*rax]
mov eax, dword ptr [rbp-0x30]
sub eax, ebx
cmp eax, 28
jb G_M51890_IG81
mov rax, 0xD1FFAB1E
vmovdqu ymm0, ymmword ptr [rax]
vmovdqu ymm1, ymmword ptr [rax+0x18]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu ymmword ptr [rdi+0x18], ymm1
mov edi, dword ptr [rbp-0x40]
add edi, 28
mov dword ptr [rbp-0x40], edi
;; size=70 bbWeight=0.50 PerfScore 11.88
G_M51890_IG75:
lea rdi, [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:ToString():System.String:this
call [rax]System.Text.ValueStringBuilder:ToString():System.String:this
cmp qword ptr [rbp-0xC8], 0xD1FFAB1E
je SHORT G_M51890_IG76
call CORINFO_HELP_FAIL_FAST
;; size=34 bbWeight=1 PerfScore 7.75
G_M51890_IG76:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M51890_IG77:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.50
G_M51890_IG78:
call CORINFO_HELP_RNGCHKFAIL
;; size=5 bbWeight=0 PerfScore 0.00
G_M51890_IG79:
mov rdi, 0xD1FFAB1E ; System.ArgumentException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor():this
call [rax]System.ArgumentException:.ctor():this
mov rdi, rbx
call CORINFO_HELP_THROW
;; size=41 bbWeight=0 PerfScore 0.00
G_M51890_IG80:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M51890_IG81:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2887, prolog size 101, PerfScore 888.58, instruction count 775, allocated bytes for code 2895 (MethodHash=77e6354d) for method System.Reflection.AssemblyNameFormatter:ComputeDisplayName(System.String,System.Version,System.String,ubyte[],int,int):System.String (FullOpts)
+; Total bytes of code 2928, prolog size 101, PerfScore 946.68, instruction count 783, allocated bytes for code 2936 (MethodHash=77e6354d) for method System.Reflection.AssemblyNameFormatter:ComputeDisplayName(System.String,System.Version,System.String,ubyte[],int,int):System.String (FullOpts)