-44 (-2.87 % of base) - System.Numerics.BigInteger:RotateLeft(System.Numerics.BigInteger,int):System.Numerics.BigInteger
; Assembly listing for method System.Numerics.BigInteger:RotateLeft(System.Numerics.BigInteger,int):System.Numerics.BigInteger (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 11 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret ld-addr-op single-def <System.Numerics.BigInteger>
; V01 arg1 [V01,T12] ( 10, 7.50) int -> rdx
;* V02 loc0 [V02 ] ( 0, 0 ) int -> zero-ref
;* V03 loc1 [V03 ] ( 0, 0 ) int -> zero-ref
-; V04 loc2 [V04,T26] ( 4, 2.50) int -> r13
-; V05 loc3 [V05,T16] ( 7, 3.50) ref -> r12 class-hnd <uint[]>
+; V04 loc2 [V04,T25] ( 4, 2.50) int -> r13
+; V05 loc3 [V05,T17] ( 7, 3.50) ref -> r12 class-hnd <uint[]>
;* V06 loc4 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc5 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Span`1[uint]>
-; V08 loc6 [V08,T23] ( 5, 2.50) ubyte -> [rbp-0x2C]
+; V08 loc6 [V08,T24] ( 5, 2.50) ubyte -> [rbp-0x2C]
;* V09 loc7 [V09 ] ( 0, 0 ) int -> zero-ref
-; V10 loc8 [V10,T17] ( 7, 3.50) ref -> r15 class-hnd <uint[]>
+; V10 loc8 [V10,T18] ( 7, 3.50) ref -> r15 class-hnd <uint[]>
;* V11 loc9 [V11 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op <System.Span`1[uint]>
;* V12 loc10 [V12 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[uint]>
; V13 loc11 [V13,T01] ( 11, 37 ) int -> rdi
; V14 loc12 [V14,T02] ( 11, 37 ) int -> rsi
-; V15 loc13 [V15,T39] ( 3, 1.50) int -> rdi
+; V15 loc13 [V15,T38] ( 3, 1.50) int -> rdi
; V16 loc14 [V16,T03] ( 11, 37 ) int -> rsi
; V17 loc15 [V17,T00] ( 14, 38.50) int -> rax
; V18 loc16 [V18,T08] ( 6, 17 ) int -> rcx
; V19 loc17 [V19,T09] ( 3, 12 ) int -> r10
; V20 loc18 [V20,T10] ( 3, 12 ) int -> r10
;# V21 OutArgs [V21 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V22 tmp1 [V22,T28] ( 3, 2 ) int -> [rbp-0x30]
+; V22 tmp1 [V22,T27] ( 3, 2 ) int -> [rbp-0x30]
;* V23 tmp2 [V23 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[int,int]>
;* V24 tmp3 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <uint[]>
;* V25 tmp4 [V25 ] ( 0, 0 ) ref -> zero-ref single-def
-; V26 tmp5 [V26,T19] ( 6, 3 ) int -> [rbp-0x34]
-; V27 tmp6 [V27,T29] ( 2, 2 ) ref -> r12 class-hnd single-def "dup spill" <uint[]>
-; V28 tmp7 [V28,T30] ( 2, 2 ) ref -> r15 class-hnd single-def "dup spill" <uint[]>
+; V26 tmp5 [V26,T20] ( 6, 3 ) int -> [rbp-0x34]
+; V27 tmp6 [V27,T28] ( 2, 2 ) ref -> r12 class-hnd single-def "dup spill" <uint[]>
+; V28 tmp7 [V28,T29] ( 2, 2 ) ref -> r15 class-hnd single-def "dup spill" <uint[]>
; V29 tmp8 [V29 ] ( 4, 4 ) struct (16) [rbp-0x48] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.BigInteger>
;* V30 tmp9 [V30 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[uint]>
;* V31 tmp10 [V31 ] ( 0, 0 ) struct (16) zero-ref <System.Numerics.BigInteger>
;* V32 tmp11 [V32 ] ( 0, 0 ) struct (16) zero-ref multireg-ret <System.Numerics.BigInteger>
-; V33 tmp12 [V33,T21] ( 3, 3 ) int -> rdi "Span.get_Item index"
-; V34 tmp13 [V34,T22] ( 3, 3 ) int -> rcx "Span.get_Item index"
+; V33 tmp12 [V33,T22] ( 3, 3 ) int -> rdi "Span.get_Item index"
+; V34 tmp13 [V34,T23] ( 3, 3 ) int -> rcx "Span.get_Item index"
;* V35 tmp14 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
;* V36 tmp15 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
;* V37 tmp16 [V37 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "Return value temp for multireg return" <System.Numerics.BigInteger>
-; V38 tmp17 [V38,T24] ( 5, 2.50) int -> r14 "Inline stloc first use temp"
-;* V39 tmp18 [V39 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
-;* V40 tmp19 [V40 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V41 tmp20 [V41,T35] ( 2, 2 ) long -> rdi "Inlining Arg"
-;* V42 tmp21 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
-;* V43 tmp22 [V43 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
-;* V44 tmp23 [V44 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V45 tmp24 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
-;* V46 tmp25 [V46 ] ( 0, 0 ) byref -> zero-ref
-;* V47 tmp26 [V47 ] ( 0, 0 ) byref -> zero-ref single-def
-; V48 tmp27 [V48,T51] ( 2, 1 ) int -> rdx
-;* V49 tmp28 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <uint[]>
-;* V50 tmp29 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
-;* V51 tmp30 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
-;* V52 tmp31 [V52 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[uint]>
-;* V53 tmp32 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
-;* V54 tmp33 [V54 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V38 tmp17 [V38,T16] ( 5, 5 ) int -> r14 "dup spill"
+; V39 tmp18 [V39,T50] ( 2, 1 ) int -> rdi "Inline stloc first use temp"
+;* V40 tmp19 [V40 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
+;* V41 tmp20 [V41 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V42 tmp21 [V42,T34] ( 2, 2 ) long -> rdi "Inlining Arg"
+;* V43 tmp22 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
+;* V44 tmp23 [V44 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
+;* V45 tmp24 [V45 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V46 tmp25 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
+;* V47 tmp26 [V47 ] ( 0, 0 ) byref -> zero-ref
+;* V48 tmp27 [V48 ] ( 0, 0 ) byref -> zero-ref single-def
+; V49 tmp28 [V49,T51] ( 2, 1 ) int -> rdx
+;* V50 tmp29 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <uint[]>
+;* V51 tmp30 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
+;* V52 tmp31 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
+;* V53 tmp32 [V53 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[uint]>
+;* V54 tmp33 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
;* V55 tmp34 [V55 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V56 tmp35 [V56 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V57 tmp36 [V57,T36] ( 2, 2 ) long -> rdi "Inlining Arg"
-;* V58 tmp37 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
+;* V56 tmp35 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V57 tmp36 [V57 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V58 tmp37 [V58,T35] ( 2, 2 ) long -> rdi "Inlining Arg"
;* V59 tmp38 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
-;* V60 tmp39 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V61 tmp40 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
-;* V62 tmp41 [V62 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
-;* V63 tmp42 [V63 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-;* V64 tmp43 [V64 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V65 tmp44 [V65,T14] ( 11, 6.50) ref -> rbx single-def "field V00._bits (fldOffset=0x0)" P-INDEP
-; V66 tmp45 [V66,T15] ( 8, 4.50) int -> r15 single-def "field V00._sign (fldOffset=0x8)" P-INDEP
-; V67 tmp46 [V67,T07] ( 8, 18 ) byref -> [rbp-0x80] spill-single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-; V68 tmp47 [V68,T04] ( 19, 30.50) int -> [rbp-0x4C] spill-single-def "field V07._length (fldOffset=0x8)" P-INDEP
-; V69 tmp48 [V69,T06] ( 9, 18.50) byref -> [rbp-0x88] spill-single-def "field V11._reference (fldOffset=0x0)" P-INDEP
-; V70 tmp49 [V70,T05] ( 11, 26.50) int -> [rbp-0x50] spill-single-def "field V11._length (fldOffset=0x8)" P-INDEP
-; V71 tmp50 [V71,T18] ( 6, 3 ) byref -> rdi "field V12._reference (fldOffset=0x0)" P-INDEP
-; V72 tmp51 [V72,T20] ( 6, 3 ) int -> rcx "field V12._length (fldOffset=0x8)" P-INDEP
-;* V73 tmp52 [V73 ] ( 0, 0 ) int -> zero-ref "field V23.Item1 (fldOffset=0x0)" P-INDEP
-;* V74 tmp53 [V74 ] ( 0, 0 ) int -> zero-ref "field V23.Item2 (fldOffset=0x4)" P-INDEP
-; V75 tmp54 [V75 ] ( 3, 2.50) ref -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V29._bits (fldOffset=0x0)" P-DEP
-; V76 tmp55 [V76 ] ( 3, 2.50) int -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V29._sign (fldOffset=0x8)" P-DEP
-;* V77 tmp56 [V77 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
-;* V78 tmp57 [V78 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
-; V79 tmp58 [V79,T43] ( 2, 1 ) ref -> r14 single-def "field V31._bits (fldOffset=0x0)" P-INDEP
-; V80 tmp59 [V80,T52] ( 2, 1 ) int -> r13 "field V31._sign (fldOffset=0x8)" P-INDEP
-; V81 tmp60 [V81,T44] ( 2, 1 ) ref -> r14 single-def "field V32._bits (fldOffset=0x0)" P-INDEP
-; V82 tmp61 [V82,T53] ( 2, 1 ) int -> r13 "field V32._sign (fldOffset=0x8)" P-INDEP
-; V83 tmp62 [V83,T45] ( 2, 1 ) byref -> rdi single-def "field V35._reference (fldOffset=0x0)" P-INDEP
-;* V84 tmp63 [V84,T59] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
-; V85 tmp64 [V85,T46] ( 2, 1 ) byref -> rdi single-def "field V36._reference (fldOffset=0x0)" P-INDEP
-;* V86 tmp65 [V86,T60] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
-; V87 tmp66 [V87,T47] ( 2, 1 ) ref -> rdi "field V37._bits (fldOffset=0x0)" P-INDEP
-; V88 tmp67 [V88,T54] ( 2, 1 ) int -> rsi "field V37._sign (fldOffset=0x8)" P-INDEP
-;* V89 tmp68 [V89 ] ( 0, 0 ) int -> zero-ref "field V39.Item1 (fldOffset=0x0)" P-INDEP
-; V90 tmp69 [V90,T55] ( 2, 1 ) int -> r13 "field V39.Item2 (fldOffset=0x4)" P-INDEP
-; V91 tmp70 [V91,T37] ( 3, 1.50) byref -> rdi "field V42._reference (fldOffset=0x0)" P-INDEP
-; V92 tmp71 [V92,T40] ( 3, 1.50) int -> rcx "field V42._length (fldOffset=0x8)" P-INDEP
-; V93 tmp72 [V93,T27] ( 4, 2 ) byref -> rdi single-def "field V43._reference (fldOffset=0x0)" P-INDEP
-; V94 tmp73 [V94,T25] ( 5, 2.50) int -> [rbp-0x54] spill-single-def "field V43._length (fldOffset=0x8)" P-INDEP
-;* V95 tmp74 [V95 ] ( 0, 0 ) byref -> zero-ref single-def "field V45._reference (fldOffset=0x0)" P-INDEP
-;* V96 tmp75 [V96 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
-; V97 tmp76 [V97,T48] ( 2, 1 ) byref -> rsi "field V50._reference (fldOffset=0x0)" P-INDEP
-; V98 tmp77 [V98,T41] ( 3, 1.50) int -> rdx "field V50._length (fldOffset=0x8)" P-INDEP
-;* V99 tmp78 [V99 ] ( 0, 0 ) byref -> zero-ref single-def "field V51._reference (fldOffset=0x0)" P-INDEP
-;* V100 tmp79 [V100 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
-;* V101 tmp80 [V101 ] ( 0, 0 ) byref -> zero-ref single-def "field V52._reference (fldOffset=0x0)" P-INDEP
-;* V102 tmp81 [V102 ] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x8)" P-INDEP
-;* V103 tmp82 [V103 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V104 tmp83 [V104 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-; V105 tmp84 [V105,T38] ( 3, 1.50) byref -> rdi "field V58._reference (fldOffset=0x0)" P-INDEP
-; V106 tmp85 [V106,T42] ( 3, 1.50) int -> rcx "field V58._length (fldOffset=0x8)" P-INDEP
-; V107 tmp86 [V107,T49] ( 2, 1 ) byref -> rax single-def "field V59._reference (fldOffset=0x0)" P-INDEP
-;* V108 tmp87 [V108,T61] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
-;* V109 tmp88 [V109 ] ( 0, 0 ) byref -> zero-ref single-def "field V61._reference (fldOffset=0x0)" P-INDEP
-;* V110 tmp89 [V110 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
-; V111 tmp90 [V111,T50] ( 2, 1 ) byref -> rsi single-def "field V62._reference (fldOffset=0x0)" P-INDEP
-; V112 tmp91 [V112,T56] ( 2, 1 ) int -> rdx "field V62._length (fldOffset=0x8)" P-INDEP
-; V113 tmp92 [V113,T31] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
-; V114 tmp93 [V114,T32] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
-; V115 tmp94 [V115,T33] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
-; V116 tmp95 [V116,T34] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
-; V117 tmp96 [V117,T57] ( 2, 1 ) struct (16) [rbp-0x68] do-not-enreg[SR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.Numerics.BigInteger>
-; V118 tmp97 [V118,T58] ( 2, 1 ) struct (16) [rbp-0x78] do-not-enreg[SR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.Numerics.BigInteger>
-; V119 GsCookie [V119 ] ( 1, 1 ) long -> [rbp-0x90] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V120 cse0 [V120,T13] ( 3, 9 ) int -> r13 hoist "CSE #08: moderate"
-; V121 cse1 [V121,T11] ( 6, 10 ) int -> rdi multi-def "CSE #07: moderate"
+;* V60 tmp39 [V60 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
+;* V61 tmp40 [V61 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V62 tmp41 [V62 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
+;* V63 tmp42 [V63 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
+;* V64 tmp43 [V64 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V65 tmp44 [V65 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V66 tmp45 [V66,T14] ( 11, 6.50) ref -> rbx single-def "field V00._bits (fldOffset=0x0)" P-INDEP
+; V67 tmp46 [V67,T15] ( 8, 4.50) int -> r15 single-def "field V00._sign (fldOffset=0x8)" P-INDEP
+; V68 tmp47 [V68,T07] ( 8, 18 ) byref -> [rbp-0x78] spill-single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+; V69 tmp48 [V69,T04] ( 22, 32 ) int -> [rbp-0x4C] spill-single-def "field V07._length (fldOffset=0x8)" P-INDEP
+; V70 tmp49 [V70,T06] ( 9, 18.50) byref -> [rbp-0x80] spill-single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+; V71 tmp50 [V71,T05] ( 11, 26.50) int -> [rbp-0x50] spill-single-def "field V11._length (fldOffset=0x8)" P-INDEP
+; V72 tmp51 [V72,T19] ( 6, 3 ) byref -> rdi "field V12._reference (fldOffset=0x0)" P-INDEP
+; V73 tmp52 [V73,T21] ( 6, 3 ) int -> rcx "field V12._length (fldOffset=0x8)" P-INDEP
+;* V74 tmp53 [V74 ] ( 0, 0 ) int -> zero-ref "field V23.Item1 (fldOffset=0x0)" P-INDEP
+;* V75 tmp54 [V75 ] ( 0, 0 ) int -> zero-ref "field V23.Item2 (fldOffset=0x4)" P-INDEP
+; V76 tmp55 [V76 ] ( 3, 2.50) ref -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V29._bits (fldOffset=0x0)" P-DEP
+; V77 tmp56 [V77 ] ( 3, 2.50) int -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V29._sign (fldOffset=0x8)" P-DEP
+;* V78 tmp57 [V78 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
+;* V79 tmp58 [V79 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
+; V80 tmp59 [V80,T42] ( 2, 1 ) ref -> r14 single-def "field V31._bits (fldOffset=0x0)" P-INDEP
+; V81 tmp60 [V81,T52] ( 2, 1 ) int -> r13 "field V31._sign (fldOffset=0x8)" P-INDEP
+; V82 tmp61 [V82,T43] ( 2, 1 ) ref -> r14 single-def "field V32._bits (fldOffset=0x0)" P-INDEP
+; V83 tmp62 [V83,T53] ( 2, 1 ) int -> r13 "field V32._sign (fldOffset=0x8)" P-INDEP
+; V84 tmp63 [V84,T44] ( 2, 1 ) byref -> rdi single-def "field V35._reference (fldOffset=0x0)" P-INDEP
+;* V85 tmp64 [V85,T60] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
+; V86 tmp65 [V86,T45] ( 2, 1 ) byref -> rdi single-def "field V36._reference (fldOffset=0x0)" P-INDEP
+;* V87 tmp66 [V87,T61] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
+; V88 tmp67 [V88,T46] ( 2, 1 ) ref -> rdi "field V37._bits (fldOffset=0x0)" P-INDEP
+; V89 tmp68 [V89,T54] ( 2, 1 ) int -> rsi "field V37._sign (fldOffset=0x8)" P-INDEP
+;* V90 tmp69 [V90 ] ( 0, 0 ) int -> zero-ref "field V40.Item1 (fldOffset=0x0)" P-INDEP
+; V91 tmp70 [V91,T55] ( 2, 1 ) int -> r13 "field V40.Item2 (fldOffset=0x4)" P-INDEP
+; V92 tmp71 [V92,T36] ( 3, 1.50) byref -> rdi "field V43._reference (fldOffset=0x0)" P-INDEP
+; V93 tmp72 [V93,T39] ( 3, 1.50) int -> rcx "field V43._length (fldOffset=0x8)" P-INDEP
+; V94 tmp73 [V94,T26] ( 4, 2 ) byref -> rdi single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+; V95 tmp74 [V95,T56] ( 2, 1 ) int -> r8 "field V44._length (fldOffset=0x8)" P-INDEP
+;* V96 tmp75 [V96 ] ( 0, 0 ) byref -> zero-ref single-def "field V46._reference (fldOffset=0x0)" P-INDEP
+;* V97 tmp76 [V97 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP
+; V98 tmp77 [V98,T47] ( 2, 1 ) byref -> rsi "field V51._reference (fldOffset=0x0)" P-INDEP
+; V99 tmp78 [V99,T40] ( 3, 1.50) int -> rdx "field V51._length (fldOffset=0x8)" P-INDEP
+;* V100 tmp79 [V100 ] ( 0, 0 ) byref -> zero-ref single-def "field V52._reference (fldOffset=0x0)" P-INDEP
+;* V101 tmp80 [V101 ] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x8)" P-INDEP
+;* V102 tmp81 [V102 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V103 tmp82 [V103 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
+;* V104 tmp83 [V104 ] ( 0, 0 ) byref -> zero-ref single-def "field V54._reference (fldOffset=0x0)" P-INDEP
+;* V105 tmp84 [V105 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
+; V106 tmp85 [V106,T37] ( 3, 1.50) byref -> rdi "field V59._reference (fldOffset=0x0)" P-INDEP
+; V107 tmp86 [V107,T41] ( 3, 1.50) int -> rcx "field V59._length (fldOffset=0x8)" P-INDEP
+; V108 tmp87 [V108,T48] ( 2, 1 ) byref -> rax single-def "field V60._reference (fldOffset=0x0)" P-INDEP
+;* V109 tmp88 [V109,T62] ( 0, 0 ) int -> zero-ref "field V60._length (fldOffset=0x8)" P-INDEP
+;* V110 tmp89 [V110 ] ( 0, 0 ) byref -> zero-ref single-def "field V62._reference (fldOffset=0x0)" P-INDEP
+;* V111 tmp90 [V111 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP
+; V112 tmp91 [V112,T49] ( 2, 1 ) byref -> rsi single-def "field V63._reference (fldOffset=0x0)" P-INDEP
+; V113 tmp92 [V113,T57] ( 2, 1 ) int -> rdx "field V63._length (fldOffset=0x8)" P-INDEP
+; V114 tmp93 [V114,T30] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
+; V115 tmp94 [V115,T31] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
+; V116 tmp95 [V116,T32] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
+; V117 tmp96 [V117,T33] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
+; V118 tmp97 [V118,T58] ( 2, 1 ) struct (16) [rbp-0x60] do-not-enreg[SR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.Numerics.BigInteger>
+; V119 tmp98 [V119,T59] ( 2, 1 ) struct (16) [rbp-0x70] do-not-enreg[SR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.Numerics.BigInteger>
+; V120 GsCookie [V120 ] ( 1, 1 ) long -> [rbp-0x88] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V121 cse0 [V121,T13] ( 3, 9 ) int -> r13 hoist "CSE #08: moderate"
+; V122 cse1 [V122,T11] ( 6, 10 ) int -> rdi multi-def "CSE #07: moderate"
;
; Lcl frame size = 104
G_M13137_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 104
lea rbp, [rsp+0x90]
- xor eax, eax
- mov qword ptr [rbp-0x78], rax
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x70], ymm8
vmovdqa xmmword ptr [rbp-0x50], xmm8
+ xor eax, eax
mov qword ptr [rbp-0x40], rax
- mov qword ptr [rbp-0x90], 0xD1FFAB1E
+ mov qword ptr [rbp-0x88], 0xD1FFAB1E
mov rbx, rdi
mov r15d, esi
- ;; size=64 bbWeight=1 PerfScore 14.83
+ ;; size=60 bbWeight=1 PerfScore 13.83
G_M13137_IG02:
test rbx, rbx
je SHORT G_M13137_IG04
;; size=5 bbWeight=1 PerfScore 1.25
G_M13137_IG03:
mov eax, dword ptr [rbx+0x08]
shl eax, 2
mov dword ptr [rbp-0x30], eax
jmp SHORT G_M13137_IG05
- align [1 bytes for IG31]
- ;; size=12 bbWeight=0.50 PerfScore 2.75
+ align [0 bytes for IG31]
+ ;; size=11 bbWeight=0.50 PerfScore 2.75
G_M13137_IG04:
mov dword ptr [rbp-0x30], 4
;; size=7 bbWeight=0.50 PerfScore 0.50
G_M13137_IG05:
movsxd rax, edx
movsxd rdi, dword ptr [rbp-0x30]
shl rdi, 3
cqo
idiv rdx:rax, rdi
test edx, edx
jne SHORT G_M13137_IG09
;; size=20 bbWeight=1 PerfScore 73.50
G_M13137_IG06:
mov rax, rbx
mov rdx, r15
- cmp qword ptr [rbp-0x90], 0xD1FFAB1E
+ cmp qword ptr [rbp-0x88], 0xD1FFAB1E
je SHORT G_M13137_IG07
call CORINFO_HELP_FAIL_FAST
;; size=24 bbWeight=0.50 PerfScore 2.25
G_M13137_IG07:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M13137_IG08:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M13137_IG09:
cmp edx, 0xD1FFAB1E
jne SHORT G_M13137_IG12
mov rdi, rbx
mov esi, r15d
mov edx, 0xD1FFAB1E
mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:RotateRight(System.Numerics.BigInteger,int):System.Numerics.BigInteger
call [rax]System.Numerics.BigInteger:RotateRight(System.Numerics.BigInteger,int):System.Numerics.BigInteger
mov rdi, rax
mov esi, edx
mov edx, 1
mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:RotateRight(System.Numerics.BigInteger,int):System.Numerics.BigInteger
call [rax]System.Numerics.BigInteger:RotateRight(System.Numerics.BigInteger,int):System.Numerics.BigInteger
- mov gword ptr [rbp-0x78], rax
- mov qword ptr [rbp-0x70], rdx
- mov rax, gword ptr [rbp-0x78]
- mov rdx, qword ptr [rbp-0x70]
- cmp qword ptr [rbp-0x90], 0xD1FFAB1E
+ mov gword ptr [rbp-0x70], rax
+ mov qword ptr [rbp-0x68], rdx
+ mov rax, gword ptr [rbp-0x70]
+ mov rdx, qword ptr [rbp-0x68]
+ cmp qword ptr [rbp-0x88], 0xD1FFAB1E
je SHORT G_M13137_IG10
call CORINFO_HELP_FAIL_FAST
;; size=87 bbWeight=0.50 PerfScore 8.62
G_M13137_IG10:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M13137_IG11:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M13137_IG12:
test edx, edx
jge SHORT G_M13137_IG15
mov rdi, rbx
mov esi, r15d
neg edx
mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:RotateRight(System.Numerics.BigInteger,int):System.Numerics.BigInteger
call [rax]System.Numerics.BigInteger:RotateRight(System.Numerics.BigInteger,int):System.Numerics.BigInteger
- mov gword ptr [rbp-0x68], rax
- mov qword ptr [rbp-0x60], rdx
- mov rax, gword ptr [rbp-0x68]
- mov rdx, qword ptr [rbp-0x60]
- cmp qword ptr [rbp-0x90], 0xD1FFAB1E
+ mov gword ptr [rbp-0x60], rax
+ mov qword ptr [rbp-0x58], rdx
+ mov rax, gword ptr [rbp-0x60]
+ mov rdx, qword ptr [rbp-0x58]
+ cmp qword ptr [rbp-0x88], 0xD1FFAB1E
je SHORT G_M13137_IG13
call CORINFO_HELP_FAIL_FAST
;; size=58 bbWeight=0.50 PerfScore 6.62
G_M13137_IG13:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M13137_IG14:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M13137_IG15:
mov r14d, edx
shr r14d, 5
mov edi, r14d
shl edi, 5
sub edx, edi
mov r13d, edx
xor r12, r12
test rbx, rbx
jne SHORT G_M13137_IG16
mov eax, 1
jmp SHORT G_M13137_IG17
;; size=33 bbWeight=0.50 PerfScore 2.88
G_M13137_IG16:
mov eax, dword ptr [rbx+0x08]
;; size=3 bbWeight=0.50 PerfScore 1.00
G_M13137_IG17:
cmp eax, 64
jg SHORT G_M13137_IG18
test dword ptr [rsp], esp
sub rsp, 256
lea rdi, [rsp]
mov ecx, 64
jmp SHORT G_M13137_IG22
;; size=26 bbWeight=0.50 PerfScore 3.62
G_M13137_IG18:
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M13137_IG54
;; size=19 bbWeight=0.50 PerfScore 2.12
G_M13137_IG19:
mov rdi, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rdi, gword ptr [rdi]
mov dword ptr [rbp-0x34], eax
mov esi, eax
mov rcx, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[uint]:Rent(int):uint[]:this
cmp dword ptr [rdi], edi
call [rcx]System.Buffers.SharedArrayPool`1[uint]:Rent(int):uint[]:this
mov r12, rax
test r12, r12
jne SHORT G_M13137_IG20
xor rdi, rdi
xor ecx, ecx
jmp SHORT G_M13137_IG21
;; size=46 bbWeight=0.50 PerfScore 6.88
G_M13137_IG20:
lea rdi, bword ptr [r12+0x10]
mov ecx, dword ptr [r12+0x08]
;; size=10 bbWeight=0.50 PerfScore 1.25
G_M13137_IG21:
mov eax, dword ptr [rbp-0x34]
;; size=3 bbWeight=0.50 PerfScore 0.50
G_M13137_IG22:
cmp eax, ecx
ja G_M13137_IG59
- mov dword ptr [rbp-0x54], eax
- mov bword ptr [rbp-0x80], rdi
- mov dword ptr [rbp-0x4C], eax
+ mov r8d, eax
+ mov bword ptr [rbp-0x78], rdi
+ mov dword ptr [rbp-0x4C], r8d
test rbx, rbx
jne SHORT G_M13137_IG23
- mov r9d, dword ptr [rbp-0x4C]
- test eax, eax
+ test r8d, r8d
je G_M13137_IG60
mov edx, r15d
neg edx
test r15d, r15d
cmovge edx, r15d
mov dword ptr [rdi], edx
jmp SHORT G_M13137_IG24
- ;; size=51 bbWeight=0.50 PerfScore 5.88
+ ;; size=49 bbWeight=0.50 PerfScore 5.00
G_M13137_IG23:
- mov r9d, dword ptr [rbp-0x4C]
lea rsi, bword ptr [rbx+0x10]
mov edx, dword ptr [rbx+0x08]
- cmp edx, eax
+ cmp edx, r8d
ja G_M13137_IG55
shl rdx, 2
- mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
- call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
- mov eax, dword ptr [rbp-0x54]
- mov r9d, dword ptr [rbp-0x4C]
- ;; size=42 bbWeight=0.50 PerfScore 5.25
+ mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+ call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+ mov r8d, dword ptr [rbp-0x4C]
+ ;; size=36 bbWeight=0.50 PerfScore 4.25
G_M13137_IG24:
mov ebx, r15d
shr ebx, 31
xor r15, r15
- cmp eax, 64
+ cmp r8d, 64
jg SHORT G_M13137_IG25
test dword ptr [rsp], esp
sub rsp, 256
lea rdi, [rsp]
mov ecx, 64
jmp SHORT G_M13137_IG29
- ;; size=35 bbWeight=0.50 PerfScore 4.12
+ ;; size=36 bbWeight=0.50 PerfScore 4.12
G_M13137_IG25:
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M13137_IG56
;; size=19 bbWeight=0.50 PerfScore 2.12
G_M13137_IG26:
mov rdi, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rdi, gword ptr [rdi]
- mov esi, r9d
+ mov esi, r8d
mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[uint]:Rent(int):uint[]:this
cmp dword ptr [rdi], edi
call [rax]System.Buffers.SharedArrayPool`1[uint]:Rent(int):uint[]:this
mov r15, rax
test r15, r15
jne SHORT G_M13137_IG27
xor rdi, rdi
xor ecx, ecx
jmp SHORT G_M13137_IG28
;; size=44 bbWeight=0.50 PerfScore 6.38
G_M13137_IG27:
lea rdi, bword ptr [r15+0x10]
mov ecx, dword ptr [r15+0x08]
;; size=8 bbWeight=0.50 PerfScore 1.25
G_M13137_IG28:
- mov r9d, dword ptr [rbp-0x4C]
+ mov r8d, dword ptr [rbp-0x4C]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M13137_IG29:
- cmp r9d, ecx
+ cmp r8d, ecx
ja G_M13137_IG59
mov rax, rdi
- mov bword ptr [rbp-0x88], rax
- mov dword ptr [rbp-0x50], r9d
- mov edi, r9d
+ mov bword ptr [rbp-0x80], rax
+ mov dword ptr [rbp-0x50], r8d
+ mov edi, r8d
lea rsi, [4*rdi]
- mov rdi, bword ptr [rbp-0x88]
+ mov rdi, bword ptr [rbp-0x80]
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:ClearWithoutReferences(byref,ulong)
call [rax]System.SpanHelpers:ClearWithoutReferences(byref,ulong)
mov dword ptr [rbp-0x2C], ebx
test ebx, ebx
je SHORT G_M13137_IG30
- mov rdi, bword ptr [rbp-0x80]
+ mov rdi, bword ptr [rbp-0x78]
mov esi, dword ptr [rbp-0x4C]
mov rax, 0xD1FFAB1E ; code for System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])
call [rax]System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])
- ;; size=79 bbWeight=0.50 PerfScore 8.00
+ ;; size=73 bbWeight=0.50 PerfScore 8.00
G_M13137_IG30:
test r13d, r13d
jne G_M13137_IG36
xor edi, edi
mov r13d, dword ptr [rbp-0x4C]
mov esi, r13d
sub esi, r14d
;; size=21 bbWeight=0.50 PerfScore 1.50
G_M13137_IG31:
cmp edi, r13d
jae G_M13137_IG60
mov eax, edi
mov r14d, dword ptr [rbp-0x50]
cmp esi, r14d
jae G_M13137_IG60
mov ecx, esi
- mov rdx, bword ptr [rbp-0x80]
+ mov rdx, bword ptr [rbp-0x78]
mov ecx, dword ptr [rdx+4*rcx]
- mov r8, bword ptr [rbp-0x88]
+ mov r8, bword ptr [rbp-0x80]
mov dword ptr [r8+4*rax], ecx
inc edi
inc esi
cmp esi, r14d
jl SHORT G_M13137_IG31
- ;; size=53 bbWeight=4 PerfScore 43.00
+ ;; size=50 bbWeight=4 PerfScore 43.00
G_M13137_IG32:
xor esi, esi
cmp edi, r13d
jge SHORT G_M13137_IG35
- align [4 bytes for IG33]
- ;; size=11 bbWeight=0.50 PerfScore 0.88
+ align [0 bytes for IG33]
+ ;; size=7 bbWeight=0.50 PerfScore 0.75
G_M13137_IG33:
cmp edi, r13d
jae G_M13137_IG60
mov eax, edi
mov r14d, dword ptr [rbp-0x50]
cmp esi, r14d
jae G_M13137_IG60
mov ecx, esi
- mov rdx, bword ptr [rbp-0x80]
+ mov rdx, bword ptr [rbp-0x78]
mov ecx, dword ptr [rdx+4*rcx]
- mov r8, bword ptr [rbp-0x88]
+ mov r8, bword ptr [rbp-0x80]
mov dword ptr [r8+4*rax], ecx
inc edi
inc esi
cmp edi, r13d
jge G_M13137_IG43
- ;; size=57 bbWeight=4 PerfScore 43.00
+ ;; size=54 bbWeight=4 PerfScore 43.00
G_M13137_IG34:
jmp SHORT G_M13137_IG33
;; size=2 bbWeight=2 PerfScore 4.00
G_M13137_IG35:
- mov r8, bword ptr [rbp-0x88]
+ mov r8, bword ptr [rbp-0x80]
mov r14d, dword ptr [rbp-0x50]
jmp G_M13137_IG43
- align [3 bytes for IG39]
- ;; size=19 bbWeight=0.25 PerfScore 1.00
+ align [2 bytes for IG39]
+ ;; size=15 bbWeight=0.25 PerfScore 1.00
G_M13137_IG36:
mov edi, r13d
neg edi
add edi, 32
xor esi, esi
xor eax, eax
test r14d, r14d
jne SHORT G_M13137_IG37
mov r14d, dword ptr [rbp-0x4C]
lea ecx, [r14-0x01]
cmp ecx, r14d
jae G_M13137_IG60
- mov rdx, bword ptr [rbp-0x80]
+ mov rdx, bword ptr [rbp-0x78]
mov ecx, dword ptr [rdx+4*rcx]
and edi, 31
shrx ecx, ecx, edi
jmp SHORT G_M13137_IG38
;; size=51 bbWeight=0.50 PerfScore 5.50
G_M13137_IG37:
mov r9d, dword ptr [rbp-0x4C]
mov eax, r9d
sub eax, r14d
lea ecx, [rax-0x01]
cmp ecx, r9d
jae G_M13137_IG60
lea ecx, [rax-0x01]
- mov rdx, bword ptr [rbp-0x80]
+ mov rdx, bword ptr [rbp-0x78]
mov ecx, dword ptr [rdx+4*rcx]
and edi, 31
shrx ecx, ecx, edi
mov r14d, r9d
;; size=43 bbWeight=0.50 PerfScore 3.88
G_M13137_IG38:
and r13d, 31
;; size=4 bbWeight=1 PerfScore 0.25
G_M13137_IG39:
mov r9d, dword ptr [rbp-0x50]
cmp eax, r9d
jae G_M13137_IG60
mov r10d, eax
mov r10d, dword ptr [rdx+4*r10]
cmp esi, r14d
jae G_M13137_IG60
mov r11d, esi
shlx ebx, r10d, r13d
or ecx, ebx
- mov r8, bword ptr [rbp-0x88]
+ mov r8, bword ptr [rbp-0x80]
mov dword ptr [r8+4*r11], ecx
shrx ecx, r10d, edi
inc esi
inc eax
cmp eax, r9d
jl SHORT G_M13137_IG39
- ;; size=64 bbWeight=4 PerfScore 44.00
+ ;; size=61 bbWeight=4 PerfScore 44.00
G_M13137_IG40:
xor eax, eax
cmp esi, r14d
jge SHORT G_M13137_IG45
align [0 bytes for IG41]
;; size=7 bbWeight=0.50 PerfScore 0.75
G_M13137_IG41:
mov r9d, dword ptr [rbp-0x50]
cmp eax, r9d
jae G_M13137_IG60
mov r10d, eax
mov r10d, dword ptr [rdx+4*r10]
cmp esi, r14d
jae G_M13137_IG60
mov r11d, esi
shlx ebx, r10d, r13d
or ebx, ecx
- mov r8, bword ptr [rbp-0x88]
+ mov r8, bword ptr [rbp-0x80]
mov dword ptr [r8+4*r11], ebx
shrx ecx, r10d, edi
inc esi
inc eax
cmp esi, r14d
jl SHORT G_M13137_IG44
- ;; size=64 bbWeight=4 PerfScore 44.00
+ ;; size=61 bbWeight=4 PerfScore 44.00
G_M13137_IG42:
mov r14d, r9d
;; size=3 bbWeight=2 PerfScore 0.50
G_M13137_IG43:
mov ebx, dword ptr [rbp-0x2C]
test ebx, ebx
je SHORT G_M13137_IG46
lea edi, [r14-0x01]
cmp edi, r14d
jae G_M13137_IG60
cmp dword ptr [r8+4*rdi], 0
jge SHORT G_M13137_IG46
mov rdi, r8
mov esi, r14d
mov rax, 0xD1FFAB1E ; code for System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])
call [rax]System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])
jmp SHORT G_M13137_IG47
;; size=47 bbWeight=0.50 PerfScore 6.88
G_M13137_IG44:
jmp SHORT G_M13137_IG41
;; size=2 bbWeight=2 PerfScore 4.00
G_M13137_IG45:
- mov r8, bword ptr [rbp-0x88]
+ mov r8, bword ptr [rbp-0x80]
mov r14d, dword ptr [rbp-0x50]
jmp SHORT G_M13137_IG43
- ;; size=13 bbWeight=0.25 PerfScore 1.00
+ ;; size=10 bbWeight=0.25 PerfScore 1.00
G_M13137_IG46:
xor ebx, ebx
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M13137_IG47:
- mov r8, bword ptr [rbp-0x88]
+ mov r8, bword ptr [rbp-0x80]
mov rsi, r8
mov edx, r14d
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [rbp-0x48], xmm0
lea rdi, [rbp-0x48]
mov ecx, ebx
mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:.ctor(System.ReadOnlySpan`1[uint],ubyte):this
call [rax]System.Numerics.BigInteger:.ctor(System.ReadOnlySpan`1[uint],ubyte):this
mov r14, gword ptr [rbp-0x48]
mov r13d, dword ptr [rbp-0x40]
test r12, r12
je SHORT G_M13137_IG49
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M13137_IG57
- ;; size=72 bbWeight=0.50 PerfScore 7.17
+ ;; size=69 bbWeight=0.50 PerfScore 7.17
G_M13137_IG48:
mov rdi, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rdi, gword ptr [rdi]
mov rsi, r12
xor edx, edx
mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[uint]:Return(uint[],ubyte):this
cmp dword ptr [rdi], edi
call [rax]System.Buffers.SharedArrayPool`1[uint]:Return(uint[],ubyte):this
;; size=32 bbWeight=0.50 PerfScore 4.50
G_M13137_IG49:
test r15, r15
je SHORT G_M13137_IG51
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M13137_IG58
;; size=24 bbWeight=0.50 PerfScore 2.75
G_M13137_IG50:
mov rdi, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rdi, gword ptr [rdi]
mov rsi, r15
xor edx, edx
mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[uint]:Return(uint[],ubyte):this
cmp dword ptr [rdi], edi
call [rax]System.Buffers.SharedArrayPool`1[uint]:Return(uint[],ubyte):this
;; size=32 bbWeight=0.50 PerfScore 4.50
G_M13137_IG51:
mov rax, r14
mov rdx, r13
- cmp qword ptr [rbp-0x90], 0xD1FFAB1E
+ cmp qword ptr [rbp-0x88], 0xD1FFAB1E
je SHORT G_M13137_IG52
call CORINFO_HELP_FAIL_FAST
;; size=24 bbWeight=0.50 PerfScore 2.25
G_M13137_IG52:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M13137_IG53:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M13137_IG54:
mov dword ptr [rbp-0x34], eax
mov rdi, 0xD1FFAB1E ; System.Buffers.ArrayPool`1[uint]
call CORINFO_HELP_GET_GCSTATIC_BASE
mov eax, dword ptr [rbp-0x34]
jmp G_M13137_IG19
;; size=26 bbWeight=0 PerfScore 0.00
G_M13137_IG55:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M13137_IG56:
mov rdi, 0xD1FFAB1E ; System.Buffers.ArrayPool`1[uint]
call CORINFO_HELP_GET_GCSTATIC_BASE
- mov r9d, dword ptr [rbp-0x4C]
+ mov r8d, dword ptr [rbp-0x4C]
jmp G_M13137_IG26
;; size=24 bbWeight=0 PerfScore 0.00
G_M13137_IG57:
mov rdi, 0xD1FFAB1E ; System.Buffers.ArrayPool`1[uint]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M13137_IG48
;; size=20 bbWeight=0 PerfScore 0.00
G_M13137_IG58:
mov rdi, 0xD1FFAB1E ; System.Buffers.ArrayPool`1[uint]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M13137_IG50
;; size=20 bbWeight=0 PerfScore 0.00
G_M13137_IG59:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M13137_IG60:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1532, prolog size 64, PerfScore 397.00, instruction count 409, allocated bytes for code 1536 (MethodHash=ed26ccae) for method System.Numerics.BigInteger:RotateLeft(System.Numerics.BigInteger,int):System.Numerics.BigInteger (FullOpts)
+; Total bytes of code 1488, prolog size 60, PerfScore 394.00, instruction count 405, allocated bytes for code 1492 (MethodHash=ed26ccae) for method System.Numerics.BigInteger:RotateLeft(System.Numerics.BigInteger,int):System.Numerics.BigInteger (FullOpts)
-44 (-2.89 % of base) - System.Numerics.BigInteger:RotateRight(System.Numerics.BigInteger,int):System.Numerics.BigInteger
; Assembly listing for method System.Numerics.BigInteger:RotateRight(System.Numerics.BigInteger,int):System.Numerics.BigInteger (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 11 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret ld-addr-op single-def <System.Numerics.BigInteger>
; V01 arg1 [V01,T12] ( 10, 7.50) int -> rdx
;* V02 loc0 [V02 ] ( 0, 0 ) int -> zero-ref
;* V03 loc1 [V03 ] ( 0, 0 ) int -> zero-ref
; V04 loc2 [V04,T25] ( 4, 2.50) int -> r13
-; V05 loc3 [V05,T16] ( 7, 3.50) ref -> r12 class-hnd <uint[]>
+; V05 loc3 [V05,T17] ( 7, 3.50) ref -> r12 class-hnd <uint[]>
;* V06 loc4 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc5 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Span`1[uint]>
-; V08 loc6 [V08,T23] ( 5, 2.50) ubyte -> [rbp-0x2C]
+; V08 loc6 [V08,T24] ( 5, 2.50) ubyte -> [rbp-0x2C]
;* V09 loc7 [V09 ] ( 0, 0 ) int -> zero-ref
-; V10 loc8 [V10,T17] ( 7, 3.50) ref -> r15 class-hnd <uint[]>
+; V10 loc8 [V10,T18] ( 7, 3.50) ref -> r15 class-hnd <uint[]>
;* V11 loc9 [V11 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op <System.Span`1[uint]>
;* V12 loc10 [V12 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[uint]>
; V13 loc11 [V13,T01] ( 11, 37 ) int -> rdi
; V14 loc12 [V14,T02] ( 11, 37 ) int -> r14
-; V15 loc13 [V15,T39] ( 3, 1.50) int -> rdi
+; V15 loc13 [V15,T38] ( 3, 1.50) int -> rdi
; V16 loc14 [V16,T03] ( 11, 37 ) int -> rsi
; V17 loc15 [V17,T00] ( 14, 38.50) int -> rax
; V18 loc16 [V18,T08] ( 6, 17 ) int -> r9
; V19 loc17 [V19,T09] ( 3, 12 ) int -> r10
; V20 loc18 [V20,T10] ( 3, 12 ) int -> r10
;# V21 OutArgs [V21 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V22 tmp1 [V22,T28] ( 3, 2 ) int -> [rbp-0x30]
+; V22 tmp1 [V22,T27] ( 3, 2 ) int -> [rbp-0x30]
;* V23 tmp2 [V23 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[int,int]>
;* V24 tmp3 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <uint[]>
;* V25 tmp4 [V25 ] ( 0, 0 ) ref -> zero-ref single-def
-; V26 tmp5 [V26,T19] ( 6, 3 ) int -> [rbp-0x34]
-; V27 tmp6 [V27,T29] ( 2, 2 ) ref -> r12 class-hnd single-def "dup spill" <uint[]>
-; V28 tmp7 [V28,T30] ( 2, 2 ) ref -> r15 class-hnd single-def "dup spill" <uint[]>
+; V26 tmp5 [V26,T20] ( 6, 3 ) int -> [rbp-0x34]
+; V27 tmp6 [V27,T28] ( 2, 2 ) ref -> r12 class-hnd single-def "dup spill" <uint[]>
+; V28 tmp7 [V28,T29] ( 2, 2 ) ref -> r15 class-hnd single-def "dup spill" <uint[]>
; V29 tmp8 [V29 ] ( 4, 4 ) struct (16) [rbp-0x48] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.BigInteger>
;* V30 tmp9 [V30 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[uint]>
;* V31 tmp10 [V31 ] ( 0, 0 ) struct (16) zero-ref <System.Numerics.BigInteger>
;* V32 tmp11 [V32 ] ( 0, 0 ) struct (16) zero-ref multireg-ret <System.Numerics.BigInteger>
-; V33 tmp12 [V33,T21] ( 3, 3 ) int -> rdi "Span.get_Item index"
-; V34 tmp13 [V34,T22] ( 3, 3 ) int -> r9 "Span.get_Item index"
+; V33 tmp12 [V33,T22] ( 3, 3 ) int -> rdi "Span.get_Item index"
+; V34 tmp13 [V34,T23] ( 3, 3 ) int -> r9 "Span.get_Item index"
;* V35 tmp14 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
;* V36 tmp15 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
;* V37 tmp16 [V37 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "Return value temp for multireg return" <System.Numerics.BigInteger>
-; V38 tmp17 [V38,T27] ( 4, 2 ) int -> r14 "Inline stloc first use temp"
-;* V39 tmp18 [V39 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
-;* V40 tmp19 [V40 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V41 tmp20 [V41,T35] ( 2, 2 ) long -> rdi "Inlining Arg"
-;* V42 tmp21 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
-;* V43 tmp22 [V43 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
-;* V44 tmp23 [V44 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V45 tmp24 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
-;* V46 tmp25 [V46 ] ( 0, 0 ) byref -> zero-ref
-;* V47 tmp26 [V47 ] ( 0, 0 ) byref -> zero-ref single-def
-; V48 tmp27 [V48,T51] ( 2, 1 ) int -> rdx
-;* V49 tmp28 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <uint[]>
-;* V50 tmp29 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
-;* V51 tmp30 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
-;* V52 tmp31 [V52 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[uint]>
-;* V53 tmp32 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
-;* V54 tmp33 [V54 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V38 tmp17 [V38,T16] ( 4, 4 ) int -> r14 "dup spill"
+; V39 tmp18 [V39,T50] ( 2, 1 ) int -> rdi "Inline stloc first use temp"
+;* V40 tmp19 [V40 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
+;* V41 tmp20 [V41 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V42 tmp21 [V42,T34] ( 2, 2 ) long -> rdi "Inlining Arg"
+;* V43 tmp22 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
+;* V44 tmp23 [V44 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
+;* V45 tmp24 [V45 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V46 tmp25 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
+;* V47 tmp26 [V47 ] ( 0, 0 ) byref -> zero-ref
+;* V48 tmp27 [V48 ] ( 0, 0 ) byref -> zero-ref single-def
+; V49 tmp28 [V49,T51] ( 2, 1 ) int -> rdx
+;* V50 tmp29 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <uint[]>
+;* V51 tmp30 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
+;* V52 tmp31 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
+;* V53 tmp32 [V53 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[uint]>
+;* V54 tmp33 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
;* V55 tmp34 [V55 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V56 tmp35 [V56 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V57 tmp36 [V57,T36] ( 2, 2 ) long -> rdi "Inlining Arg"
-;* V58 tmp37 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
+;* V56 tmp35 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V57 tmp36 [V57 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V58 tmp37 [V58,T35] ( 2, 2 ) long -> rdi "Inlining Arg"
;* V59 tmp38 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
-;* V60 tmp39 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V61 tmp40 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
-;* V62 tmp41 [V62 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
-;* V63 tmp42 [V63 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-;* V64 tmp43 [V64 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V65 tmp44 [V65,T14] ( 11, 6.50) ref -> rbx single-def "field V00._bits (fldOffset=0x0)" P-INDEP
-; V66 tmp45 [V66,T15] ( 8, 4.50) int -> r15 single-def "field V00._sign (fldOffset=0x8)" P-INDEP
-; V67 tmp46 [V67,T07] ( 8, 18 ) byref -> [rbp-0x80] spill-single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-; V68 tmp47 [V68,T04] ( 17, 29.50) int -> [rbp-0x4C] spill-single-def "field V07._length (fldOffset=0x8)" P-INDEP
-; V69 tmp48 [V69,T06] ( 9, 18.50) byref -> [rbp-0x88] spill-single-def "field V11._reference (fldOffset=0x0)" P-INDEP
-; V70 tmp49 [V70,T05] ( 11, 26.50) int -> [rbp-0x50] spill-single-def "field V11._length (fldOffset=0x8)" P-INDEP
-; V71 tmp50 [V71,T18] ( 6, 3 ) byref -> rdi "field V12._reference (fldOffset=0x0)" P-INDEP
-; V72 tmp51 [V72,T20] ( 6, 3 ) int -> rcx "field V12._length (fldOffset=0x8)" P-INDEP
-;* V73 tmp52 [V73 ] ( 0, 0 ) int -> zero-ref "field V23.Item1 (fldOffset=0x0)" P-INDEP
-;* V74 tmp53 [V74 ] ( 0, 0 ) int -> zero-ref "field V23.Item2 (fldOffset=0x4)" P-INDEP
-; V75 tmp54 [V75 ] ( 3, 2.50) ref -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V29._bits (fldOffset=0x0)" P-DEP
-; V76 tmp55 [V76 ] ( 3, 2.50) int -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V29._sign (fldOffset=0x8)" P-DEP
-;* V77 tmp56 [V77 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
-;* V78 tmp57 [V78 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
-; V79 tmp58 [V79,T43] ( 2, 1 ) ref -> r13 single-def "field V31._bits (fldOffset=0x0)" P-INDEP
-; V80 tmp59 [V80,T52] ( 2, 1 ) int -> rbx "field V31._sign (fldOffset=0x8)" P-INDEP
-; V81 tmp60 [V81,T44] ( 2, 1 ) ref -> r13 single-def "field V32._bits (fldOffset=0x0)" P-INDEP
-; V82 tmp61 [V82,T53] ( 2, 1 ) int -> rbx "field V32._sign (fldOffset=0x8)" P-INDEP
-; V83 tmp62 [V83,T45] ( 2, 1 ) byref -> rdi single-def "field V35._reference (fldOffset=0x0)" P-INDEP
-;* V84 tmp63 [V84,T59] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
-; V85 tmp64 [V85,T46] ( 2, 1 ) byref -> rdi single-def "field V36._reference (fldOffset=0x0)" P-INDEP
-;* V86 tmp65 [V86,T60] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
-; V87 tmp66 [V87,T47] ( 2, 1 ) ref -> rdi "field V37._bits (fldOffset=0x0)" P-INDEP
-; V88 tmp67 [V88,T54] ( 2, 1 ) int -> rsi "field V37._sign (fldOffset=0x8)" P-INDEP
-;* V89 tmp68 [V89 ] ( 0, 0 ) int -> zero-ref "field V39.Item1 (fldOffset=0x0)" P-INDEP
-; V90 tmp69 [V90,T55] ( 2, 1 ) int -> r13 "field V39.Item2 (fldOffset=0x4)" P-INDEP
-; V91 tmp70 [V91,T37] ( 3, 1.50) byref -> rdi "field V42._reference (fldOffset=0x0)" P-INDEP
-; V92 tmp71 [V92,T40] ( 3, 1.50) int -> rcx "field V42._length (fldOffset=0x8)" P-INDEP
-; V93 tmp72 [V93,T26] ( 4, 2 ) byref -> rdi single-def "field V43._reference (fldOffset=0x0)" P-INDEP
-; V94 tmp73 [V94,T24] ( 5, 2.50) int -> [rbp-0x54] spill-single-def "field V43._length (fldOffset=0x8)" P-INDEP
-;* V95 tmp74 [V95 ] ( 0, 0 ) byref -> zero-ref single-def "field V45._reference (fldOffset=0x0)" P-INDEP
-;* V96 tmp75 [V96 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
-; V97 tmp76 [V97,T48] ( 2, 1 ) byref -> rsi "field V50._reference (fldOffset=0x0)" P-INDEP
-; V98 tmp77 [V98,T41] ( 3, 1.50) int -> rdx "field V50._length (fldOffset=0x8)" P-INDEP
-;* V99 tmp78 [V99 ] ( 0, 0 ) byref -> zero-ref single-def "field V51._reference (fldOffset=0x0)" P-INDEP
-;* V100 tmp79 [V100 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
-;* V101 tmp80 [V101 ] ( 0, 0 ) byref -> zero-ref single-def "field V52._reference (fldOffset=0x0)" P-INDEP
-;* V102 tmp81 [V102 ] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x8)" P-INDEP
-;* V103 tmp82 [V103 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V104 tmp83 [V104 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-; V105 tmp84 [V105,T38] ( 3, 1.50) byref -> rdi "field V58._reference (fldOffset=0x0)" P-INDEP
-; V106 tmp85 [V106,T42] ( 3, 1.50) int -> rcx "field V58._length (fldOffset=0x8)" P-INDEP
-; V107 tmp86 [V107,T49] ( 2, 1 ) byref -> rax single-def "field V59._reference (fldOffset=0x0)" P-INDEP
-;* V108 tmp87 [V108,T61] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
-;* V109 tmp88 [V109 ] ( 0, 0 ) byref -> zero-ref single-def "field V61._reference (fldOffset=0x0)" P-INDEP
-;* V110 tmp89 [V110 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
-; V111 tmp90 [V111,T50] ( 2, 1 ) byref -> rsi single-def "field V62._reference (fldOffset=0x0)" P-INDEP
-; V112 tmp91 [V112,T56] ( 2, 1 ) int -> rdx "field V62._length (fldOffset=0x8)" P-INDEP
-; V113 tmp92 [V113,T31] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
-; V114 tmp93 [V114,T32] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
-; V115 tmp94 [V115,T33] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
-; V116 tmp95 [V116,T34] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
-; V117 tmp96 [V117,T57] ( 2, 1 ) struct (16) [rbp-0x68] do-not-enreg[SR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.Numerics.BigInteger>
-; V118 tmp97 [V118,T58] ( 2, 1 ) struct (16) [rbp-0x78] do-not-enreg[SR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.Numerics.BigInteger>
-; V119 GsCookie [V119 ] ( 1, 1 ) long -> [rbp-0x90] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V120 cse0 [V120,T13] ( 3, 9 ) int -> r13 hoist "CSE #07: moderate"
-; V121 cse1 [V121,T11] ( 6, 10 ) int -> rdi multi-def "CSE #06: moderate"
+;* V60 tmp39 [V60 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
+;* V61 tmp40 [V61 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V62 tmp41 [V62 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
+;* V63 tmp42 [V63 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
+;* V64 tmp43 [V64 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V65 tmp44 [V65 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V66 tmp45 [V66,T14] ( 11, 6.50) ref -> rbx single-def "field V00._bits (fldOffset=0x0)" P-INDEP
+; V67 tmp46 [V67,T15] ( 8, 4.50) int -> r15 single-def "field V00._sign (fldOffset=0x8)" P-INDEP
+; V68 tmp47 [V68,T07] ( 8, 18 ) byref -> [rbp-0x78] spill-single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+; V69 tmp48 [V69,T04] ( 20, 31 ) int -> [rbp-0x4C] spill-single-def "field V07._length (fldOffset=0x8)" P-INDEP
+; V70 tmp49 [V70,T06] ( 9, 18.50) byref -> [rbp-0x80] spill-single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+; V71 tmp50 [V71,T05] ( 11, 26.50) int -> [rbp-0x50] spill-single-def "field V11._length (fldOffset=0x8)" P-INDEP
+; V72 tmp51 [V72,T19] ( 6, 3 ) byref -> rdi "field V12._reference (fldOffset=0x0)" P-INDEP
+; V73 tmp52 [V73,T21] ( 6, 3 ) int -> rcx "field V12._length (fldOffset=0x8)" P-INDEP
+;* V74 tmp53 [V74 ] ( 0, 0 ) int -> zero-ref "field V23.Item1 (fldOffset=0x0)" P-INDEP
+;* V75 tmp54 [V75 ] ( 0, 0 ) int -> zero-ref "field V23.Item2 (fldOffset=0x4)" P-INDEP
+; V76 tmp55 [V76 ] ( 3, 2.50) ref -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V29._bits (fldOffset=0x0)" P-DEP
+; V77 tmp56 [V77 ] ( 3, 2.50) int -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V29._sign (fldOffset=0x8)" P-DEP
+;* V78 tmp57 [V78 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
+;* V79 tmp58 [V79 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
+; V80 tmp59 [V80,T42] ( 2, 1 ) ref -> r13 single-def "field V31._bits (fldOffset=0x0)" P-INDEP
+; V81 tmp60 [V81,T52] ( 2, 1 ) int -> rbx "field V31._sign (fldOffset=0x8)" P-INDEP
+; V82 tmp61 [V82,T43] ( 2, 1 ) ref -> r13 single-def "field V32._bits (fldOffset=0x0)" P-INDEP
+; V83 tmp62 [V83,T53] ( 2, 1 ) int -> rbx "field V32._sign (fldOffset=0x8)" P-INDEP
+; V84 tmp63 [V84,T44] ( 2, 1 ) byref -> rdi single-def "field V35._reference (fldOffset=0x0)" P-INDEP
+;* V85 tmp64 [V85,T60] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
+; V86 tmp65 [V86,T45] ( 2, 1 ) byref -> rdi single-def "field V36._reference (fldOffset=0x0)" P-INDEP
+;* V87 tmp66 [V87,T61] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
+; V88 tmp67 [V88,T46] ( 2, 1 ) ref -> rdi "field V37._bits (fldOffset=0x0)" P-INDEP
+; V89 tmp68 [V89,T54] ( 2, 1 ) int -> rsi "field V37._sign (fldOffset=0x8)" P-INDEP
+;* V90 tmp69 [V90 ] ( 0, 0 ) int -> zero-ref "field V40.Item1 (fldOffset=0x0)" P-INDEP
+; V91 tmp70 [V91,T55] ( 2, 1 ) int -> r13 "field V40.Item2 (fldOffset=0x4)" P-INDEP
+; V92 tmp71 [V92,T36] ( 3, 1.50) byref -> rdi "field V43._reference (fldOffset=0x0)" P-INDEP
+; V93 tmp72 [V93,T39] ( 3, 1.50) int -> rcx "field V43._length (fldOffset=0x8)" P-INDEP
+; V94 tmp73 [V94,T26] ( 4, 2 ) byref -> rdi single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+; V95 tmp74 [V95,T56] ( 2, 1 ) int -> r8 "field V44._length (fldOffset=0x8)" P-INDEP
+;* V96 tmp75 [V96 ] ( 0, 0 ) byref -> zero-ref single-def "field V46._reference (fldOffset=0x0)" P-INDEP
+;* V97 tmp76 [V97 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP
+; V98 tmp77 [V98,T47] ( 2, 1 ) byref -> rsi "field V51._reference (fldOffset=0x0)" P-INDEP
+; V99 tmp78 [V99,T40] ( 3, 1.50) int -> rdx "field V51._length (fldOffset=0x8)" P-INDEP
+;* V100 tmp79 [V100 ] ( 0, 0 ) byref -> zero-ref single-def "field V52._reference (fldOffset=0x0)" P-INDEP
+;* V101 tmp80 [V101 ] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x8)" P-INDEP
+;* V102 tmp81 [V102 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V103 tmp82 [V103 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
+;* V104 tmp83 [V104 ] ( 0, 0 ) byref -> zero-ref single-def "field V54._reference (fldOffset=0x0)" P-INDEP
+;* V105 tmp84 [V105 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
+; V106 tmp85 [V106,T37] ( 3, 1.50) byref -> rdi "field V59._reference (fldOffset=0x0)" P-INDEP
+; V107 tmp86 [V107,T41] ( 3, 1.50) int -> rcx "field V59._length (fldOffset=0x8)" P-INDEP
+; V108 tmp87 [V108,T48] ( 2, 1 ) byref -> rax single-def "field V60._reference (fldOffset=0x0)" P-INDEP
+;* V109 tmp88 [V109,T62] ( 0, 0 ) int -> zero-ref "field V60._length (fldOffset=0x8)" P-INDEP
+;* V110 tmp89 [V110 ] ( 0, 0 ) byref -> zero-ref single-def "field V62._reference (fldOffset=0x0)" P-INDEP
+;* V111 tmp90 [V111 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP
+; V112 tmp91 [V112,T49] ( 2, 1 ) byref -> rsi single-def "field V63._reference (fldOffset=0x0)" P-INDEP
+; V113 tmp92 [V113,T57] ( 2, 1 ) int -> rdx "field V63._length (fldOffset=0x8)" P-INDEP
+; V114 tmp93 [V114,T30] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
+; V115 tmp94 [V115,T31] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
+; V116 tmp95 [V116,T32] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
+; V117 tmp96 [V117,T33] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
+; V118 tmp97 [V118,T58] ( 2, 1 ) struct (16) [rbp-0x60] do-not-enreg[SR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.Numerics.BigInteger>
+; V119 tmp98 [V119,T59] ( 2, 1 ) struct (16) [rbp-0x70] do-not-enreg[SR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.Numerics.BigInteger>
+; V120 GsCookie [V120 ] ( 1, 1 ) long -> [rbp-0x88] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V121 cse0 [V121,T13] ( 3, 9 ) int -> r13 hoist "CSE #07: moderate"
+; V122 cse1 [V122,T11] ( 6, 10 ) int -> rdi multi-def "CSE #06: moderate"
;
; Lcl frame size = 104
G_M39498_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 104
lea rbp, [rsp+0x90]
- xor eax, eax
- mov qword ptr [rbp-0x78], rax
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x70], ymm8
vmovdqa xmmword ptr [rbp-0x50], xmm8
+ xor eax, eax
mov qword ptr [rbp-0x40], rax
- mov qword ptr [rbp-0x90], 0xD1FFAB1E
+ mov qword ptr [rbp-0x88], 0xD1FFAB1E
mov rbx, rdi
mov r15d, esi
- ;; size=64 bbWeight=1 PerfScore 14.83
+ ;; size=60 bbWeight=1 PerfScore 13.83
G_M39498_IG02:
test rbx, rbx
je SHORT G_M39498_IG04
;; size=5 bbWeight=1 PerfScore 1.25
G_M39498_IG03:
mov eax, dword ptr [rbx+0x08]
shl eax, 2
mov dword ptr [rbp-0x30], eax
jmp SHORT G_M39498_IG05
align [0 bytes for IG31]
;; size=11 bbWeight=0.50 PerfScore 2.75
G_M39498_IG04:
mov dword ptr [rbp-0x30], 4
;; size=7 bbWeight=0.50 PerfScore 0.50
G_M39498_IG05:
movsxd rax, edx
movsxd rdi, dword ptr [rbp-0x30]
shl rdi, 3
cqo
idiv rdx:rax, rdi
test edx, edx
jne SHORT G_M39498_IG09
;; size=20 bbWeight=1 PerfScore 73.50
G_M39498_IG06:
mov rax, rbx
mov rdx, r15
- cmp qword ptr [rbp-0x90], 0xD1FFAB1E
+ cmp qword ptr [rbp-0x88], 0xD1FFAB1E
je SHORT G_M39498_IG07
call CORINFO_HELP_FAIL_FAST
;; size=24 bbWeight=0.50 PerfScore 2.25
G_M39498_IG07:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M39498_IG08:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M39498_IG09:
cmp edx, 0xD1FFAB1E
jne SHORT G_M39498_IG12
mov rdi, rbx
mov esi, r15d
mov edx, 0xD1FFAB1E
mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:RotateLeft(System.Numerics.BigInteger,int):System.Numerics.BigInteger
call [rax]System.Numerics.BigInteger:RotateLeft(System.Numerics.BigInteger,int):System.Numerics.BigInteger
mov rdi, rax
mov esi, edx
mov edx, 1
mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:RotateLeft(System.Numerics.BigInteger,int):System.Numerics.BigInteger
call [rax]System.Numerics.BigInteger:RotateLeft(System.Numerics.BigInteger,int):System.Numerics.BigInteger
- mov gword ptr [rbp-0x78], rax
- mov qword ptr [rbp-0x70], rdx
- mov rax, gword ptr [rbp-0x78]
- mov rdx, qword ptr [rbp-0x70]
- cmp qword ptr [rbp-0x90], 0xD1FFAB1E
+ mov gword ptr [rbp-0x70], rax
+ mov qword ptr [rbp-0x68], rdx
+ mov rax, gword ptr [rbp-0x70]
+ mov rdx, qword ptr [rbp-0x68]
+ cmp qword ptr [rbp-0x88], 0xD1FFAB1E
je SHORT G_M39498_IG10
call CORINFO_HELP_FAIL_FAST
;; size=87 bbWeight=0.50 PerfScore 8.62
G_M39498_IG10:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M39498_IG11:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M39498_IG12:
test edx, edx
jge SHORT G_M39498_IG15
mov rdi, rbx
mov esi, r15d
neg edx
mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:RotateLeft(System.Numerics.BigInteger,int):System.Numerics.BigInteger
call [rax]System.Numerics.BigInteger:RotateLeft(System.Numerics.BigInteger,int):System.Numerics.BigInteger
- mov gword ptr [rbp-0x68], rax
- mov qword ptr [rbp-0x60], rdx
- mov rax, gword ptr [rbp-0x68]
- mov rdx, qword ptr [rbp-0x60]
- cmp qword ptr [rbp-0x90], 0xD1FFAB1E
+ mov gword ptr [rbp-0x60], rax
+ mov qword ptr [rbp-0x58], rdx
+ mov rax, gword ptr [rbp-0x60]
+ mov rdx, qword ptr [rbp-0x58]
+ cmp qword ptr [rbp-0x88], 0xD1FFAB1E
je SHORT G_M39498_IG13
call CORINFO_HELP_FAIL_FAST
;; size=58 bbWeight=0.50 PerfScore 6.62
G_M39498_IG13:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M39498_IG14:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M39498_IG15:
mov r14d, edx
shr r14d, 5
mov edi, r14d
shl edi, 5
sub edx, edi
mov r13d, edx
xor r12, r12
test rbx, rbx
jne SHORT G_M39498_IG16
mov eax, 1
jmp SHORT G_M39498_IG17
;; size=33 bbWeight=0.50 PerfScore 2.88
G_M39498_IG16:
mov eax, dword ptr [rbx+0x08]
;; size=3 bbWeight=0.50 PerfScore 1.00
G_M39498_IG17:
cmp eax, 64
jg SHORT G_M39498_IG18
test dword ptr [rsp], esp
sub rsp, 256
lea rdi, [rsp]
mov ecx, 64
jmp SHORT G_M39498_IG22
;; size=26 bbWeight=0.50 PerfScore 3.62
G_M39498_IG18:
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M39498_IG53
;; size=19 bbWeight=0.50 PerfScore 2.12
G_M39498_IG19:
mov rdi, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rdi, gword ptr [rdi]
mov dword ptr [rbp-0x34], eax
mov esi, eax
mov rcx, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[uint]:Rent(int):uint[]:this
cmp dword ptr [rdi], edi
call [rcx]System.Buffers.SharedArrayPool`1[uint]:Rent(int):uint[]:this
mov r12, rax
test r12, r12
jne SHORT G_M39498_IG20
xor rdi, rdi
xor ecx, ecx
jmp SHORT G_M39498_IG21
;; size=46 bbWeight=0.50 PerfScore 6.88
G_M39498_IG20:
lea rdi, bword ptr [r12+0x10]
mov ecx, dword ptr [r12+0x08]
;; size=10 bbWeight=0.50 PerfScore 1.25
G_M39498_IG21:
mov eax, dword ptr [rbp-0x34]
;; size=3 bbWeight=0.50 PerfScore 0.50
G_M39498_IG22:
cmp eax, ecx
ja G_M39498_IG58
- mov dword ptr [rbp-0x54], eax
- mov bword ptr [rbp-0x80], rdi
- mov dword ptr [rbp-0x4C], eax
+ mov r8d, eax
+ mov bword ptr [rbp-0x78], rdi
+ mov dword ptr [rbp-0x4C], r8d
test rbx, rbx
jne SHORT G_M39498_IG23
- mov r9d, dword ptr [rbp-0x4C]
- test eax, eax
+ test r8d, r8d
je G_M39498_IG59
mov edx, r15d
neg edx
test r15d, r15d
cmovge edx, r15d
mov dword ptr [rdi], edx
jmp SHORT G_M39498_IG24
- ;; size=51 bbWeight=0.50 PerfScore 5.88
+ ;; size=49 bbWeight=0.50 PerfScore 5.00
G_M39498_IG23:
- mov r9d, dword ptr [rbp-0x4C]
lea rsi, bword ptr [rbx+0x10]
mov edx, dword ptr [rbx+0x08]
- cmp edx, eax
+ cmp edx, r8d
ja G_M39498_IG54
shl rdx, 2
- mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
- call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
- mov eax, dword ptr [rbp-0x54]
- mov r9d, dword ptr [rbp-0x4C]
- ;; size=42 bbWeight=0.50 PerfScore 5.25
+ mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+ call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+ mov r8d, dword ptr [rbp-0x4C]
+ ;; size=36 bbWeight=0.50 PerfScore 4.25
G_M39498_IG24:
mov ebx, r15d
shr ebx, 31
xor r15, r15
- cmp eax, 64
+ cmp r8d, 64
jg SHORT G_M39498_IG25
test dword ptr [rsp], esp
sub rsp, 256
lea rdi, [rsp]
mov ecx, 64
jmp SHORT G_M39498_IG29
- ;; size=35 bbWeight=0.50 PerfScore 4.12
+ ;; size=36 bbWeight=0.50 PerfScore 4.12
G_M39498_IG25:
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M39498_IG55
;; size=19 bbWeight=0.50 PerfScore 2.12
G_M39498_IG26:
mov rdi, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rdi, gword ptr [rdi]
- mov esi, r9d
+ mov esi, r8d
mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[uint]:Rent(int):uint[]:this
cmp dword ptr [rdi], edi
call [rax]System.Buffers.SharedArrayPool`1[uint]:Rent(int):uint[]:this
mov r15, rax
test r15, r15
jne SHORT G_M39498_IG27
xor rdi, rdi
xor ecx, ecx
jmp SHORT G_M39498_IG28
;; size=44 bbWeight=0.50 PerfScore 6.38
G_M39498_IG27:
lea rdi, bword ptr [r15+0x10]
mov ecx, dword ptr [r15+0x08]
;; size=8 bbWeight=0.50 PerfScore 1.25
G_M39498_IG28:
- mov r9d, dword ptr [rbp-0x4C]
+ mov r8d, dword ptr [rbp-0x4C]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M39498_IG29:
- cmp r9d, ecx
+ cmp r8d, ecx
ja G_M39498_IG58
mov rax, rdi
- mov bword ptr [rbp-0x88], rax
- mov dword ptr [rbp-0x50], r9d
- mov edi, r9d
+ mov bword ptr [rbp-0x80], rax
+ mov dword ptr [rbp-0x50], r8d
+ mov edi, r8d
lea rsi, [4*rdi]
- mov rdi, bword ptr [rbp-0x88]
+ mov rdi, bword ptr [rbp-0x80]
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:ClearWithoutReferences(byref,ulong)
call [rax]System.SpanHelpers:ClearWithoutReferences(byref,ulong)
mov dword ptr [rbp-0x2C], ebx
test ebx, ebx
je SHORT G_M39498_IG30
- mov rdi, bword ptr [rbp-0x80]
+ mov rdi, bword ptr [rbp-0x78]
mov esi, dword ptr [rbp-0x4C]
mov rax, 0xD1FFAB1E ; code for System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])
call [rax]System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])
- ;; size=79 bbWeight=0.50 PerfScore 8.00
+ ;; size=73 bbWeight=0.50 PerfScore 8.00
G_M39498_IG30:
test r13d, r13d
jne G_M39498_IG36
xor edi, edi
;; size=11 bbWeight=0.50 PerfScore 0.75
G_M39498_IG31:
mov r13d, dword ptr [rbp-0x4C]
cmp edi, r13d
jae G_M39498_IG59
mov esi, edi
mov edx, dword ptr [rbp-0x50]
cmp r14d, edx
jae G_M39498_IG59
mov eax, r14d
- mov rcx, bword ptr [rbp-0x80]
+ mov rcx, bword ptr [rbp-0x78]
mov eax, dword ptr [rcx+4*rax]
- mov r8, bword ptr [rbp-0x88]
+ mov r8, bword ptr [rbp-0x80]
mov dword ptr [r8+4*rsi], eax
inc edi
inc r14d
cmp r14d, edx
jl SHORT G_M39498_IG31
- ;; size=58 bbWeight=4 PerfScore 47.00
+ ;; size=55 bbWeight=4 PerfScore 47.00
G_M39498_IG32:
xor r14d, r14d
mov r13d, dword ptr [rbp-0x4C]
cmp edi, r13d
jge SHORT G_M39498_IG35
- align [5 bytes for IG33]
- ;; size=17 bbWeight=0.50 PerfScore 1.38
+ align [0 bytes for IG33]
+ ;; size=12 bbWeight=0.50 PerfScore 1.25
G_M39498_IG33:
cmp edi, r13d
jae G_M39498_IG59
mov esi, edi
mov edx, dword ptr [rbp-0x50]
cmp r14d, edx
jae G_M39498_IG59
mov eax, r14d
- mov rcx, bword ptr [rbp-0x80]
+ mov rcx, bword ptr [rbp-0x78]
mov eax, dword ptr [rcx+4*rax]
- mov r8, bword ptr [rbp-0x88]
+ mov r8, bword ptr [rbp-0x80]
mov dword ptr [r8+4*rsi], eax
inc edi
inc r14d
cmp edi, r13d
jge G_M39498_IG42
- ;; size=58 bbWeight=4 PerfScore 43.00
+ ;; size=55 bbWeight=4 PerfScore 43.00
G_M39498_IG34:
jmp SHORT G_M39498_IG33
;; size=2 bbWeight=2 PerfScore 4.00
G_M39498_IG35:
mov edx, dword ptr [rbp-0x50]
- mov r8, bword ptr [rbp-0x88]
+ mov r8, bword ptr [rbp-0x80]
jmp G_M39498_IG42
- align [8 bytes for IG39]
- ;; size=23 bbWeight=0.25 PerfScore 1.00
+ align [7 bytes for IG39]
+ ;; size=19 bbWeight=0.25 PerfScore 1.00
G_M39498_IG36:
mov edi, r13d
neg edi
add edi, 32
xor esi, esi
mov eax, r14d
test eax, eax
jne SHORT G_M39498_IG37
mov r14d, dword ptr [rbp-0x4C]
lea r9d, [r14-0x01]
cmp r9d, r14d
jae G_M39498_IG59
- mov rcx, bword ptr [rbp-0x80]
+ mov rcx, bword ptr [rbp-0x78]
mov r9d, dword ptr [rcx+4*r9]
and edi, 31
shlx r9d, r9d, edi
jmp SHORT G_M39498_IG38
;; size=52 bbWeight=0.50 PerfScore 5.50
G_M39498_IG37:
lea r9d, [rax-0x01]
mov r14d, dword ptr [rbp-0x4C]
cmp r9d, r14d
jae G_M39498_IG59
lea r9d, [rax-0x01]
- mov rcx, bword ptr [rbp-0x80]
+ mov rcx, bword ptr [rbp-0x78]
mov r9d, dword ptr [rcx+4*r9]
and edi, 31
shlx r9d, r9d, edi
;; size=37 bbWeight=0.50 PerfScore 3.50
G_M39498_IG38:
and r13d, 31
;; size=4 bbWeight=1 PerfScore 0.25
G_M39498_IG39:
mov edx, dword ptr [rbp-0x50]
cmp eax, edx
jae G_M39498_IG59
mov r10d, eax
mov r10d, dword ptr [rcx+4*r10]
cmp esi, r14d
jae G_M39498_IG59
mov r11d, esi
shrx ebx, r10d, r13d
or r9d, ebx
- mov r8, bword ptr [rbp-0x88]
+ mov r8, bword ptr [rbp-0x80]
mov dword ptr [r8+4*r11], r9d
shlx r9d, r10d, edi
inc esi
inc eax
cmp eax, edx
jl SHORT G_M39498_IG39
- ;; size=62 bbWeight=4 PerfScore 44.00
+ ;; size=59 bbWeight=4 PerfScore 44.00
G_M39498_IG40:
xor eax, eax
cmp esi, r14d
jge SHORT G_M39498_IG44
align [0 bytes for IG41]
;; size=7 bbWeight=0.50 PerfScore 0.75
G_M39498_IG41:
mov edx, dword ptr [rbp-0x50]
cmp eax, edx
jae G_M39498_IG59
mov r10d, eax
mov r10d, dword ptr [rcx+4*r10]
cmp esi, r14d
jae G_M39498_IG59
mov r11d, esi
shrx ebx, r10d, r13d
or ebx, r9d
- mov r8, bword ptr [rbp-0x88]
+ mov r8, bword ptr [rbp-0x80]
mov dword ptr [r8+4*r11], ebx
shlx r9d, r10d, edi
inc esi
inc eax
cmp esi, r14d
jl SHORT G_M39498_IG43
- ;; size=63 bbWeight=4 PerfScore 44.00
+ ;; size=60 bbWeight=4 PerfScore 44.00
G_M39498_IG42:
mov ebx, dword ptr [rbp-0x2C]
test ebx, ebx
je SHORT G_M39498_IG45
lea edi, [rdx-0x01]
cmp edi, edx
jae G_M39498_IG59
cmp dword ptr [r8+4*rdi], 0
jge SHORT G_M39498_IG45
mov rdi, r8
mov esi, edx
mov rax, 0xD1FFAB1E ; code for System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])
call [rax]System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])
jmp SHORT G_M39498_IG46
;; size=44 bbWeight=0.50 PerfScore 6.88
G_M39498_IG43:
jmp SHORT G_M39498_IG41
;; size=2 bbWeight=2 PerfScore 4.00
G_M39498_IG44:
mov edx, dword ptr [rbp-0x50]
- mov r8, bword ptr [rbp-0x88]
+ mov r8, bword ptr [rbp-0x80]
jmp SHORT G_M39498_IG42
- ;; size=12 bbWeight=0.25 PerfScore 1.00
+ ;; size=9 bbWeight=0.25 PerfScore 1.00
G_M39498_IG45:
xor ebx, ebx
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M39498_IG46:
- mov r8, bword ptr [rbp-0x88]
+ mov r8, bword ptr [rbp-0x80]
mov rsi, r8
mov edx, dword ptr [rbp-0x50]
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [rbp-0x48], xmm0
lea rdi, [rbp-0x48]
mov ecx, ebx
mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:.ctor(System.ReadOnlySpan`1[uint],ubyte):this
call [rax]System.Numerics.BigInteger:.ctor(System.ReadOnlySpan`1[uint],ubyte):this
mov r13, gword ptr [rbp-0x48]
mov ebx, dword ptr [rbp-0x40]
test r12, r12
je SHORT G_M39498_IG48
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M39498_IG56
- ;; size=71 bbWeight=0.50 PerfScore 7.54
+ ;; size=68 bbWeight=0.50 PerfScore 7.54
G_M39498_IG47:
mov rdi, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rdi, gword ptr [rdi]
mov rsi, r12
xor edx, edx
mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[uint]:Return(uint[],ubyte):this
cmp dword ptr [rdi], edi
call [rax]System.Buffers.SharedArrayPool`1[uint]:Return(uint[],ubyte):this
;; size=32 bbWeight=0.50 PerfScore 4.50
G_M39498_IG48:
test r15, r15
je SHORT G_M39498_IG50
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M39498_IG57
;; size=24 bbWeight=0.50 PerfScore 2.75
G_M39498_IG49:
mov rdi, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rdi, gword ptr [rdi]
mov rsi, r15
xor edx, edx
mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[uint]:Return(uint[],ubyte):this
cmp dword ptr [rdi], edi
call [rax]System.Buffers.SharedArrayPool`1[uint]:Return(uint[],ubyte):this
;; size=32 bbWeight=0.50 PerfScore 4.50
G_M39498_IG50:
mov rax, r13
mov rdx, rbx
- cmp qword ptr [rbp-0x90], 0xD1FFAB1E
+ cmp qword ptr [rbp-0x88], 0xD1FFAB1E
je SHORT G_M39498_IG51
call CORINFO_HELP_FAIL_FAST
;; size=24 bbWeight=0.50 PerfScore 2.25
G_M39498_IG51:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M39498_IG52:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M39498_IG53:
mov dword ptr [rbp-0x34], eax
mov rdi, 0xD1FFAB1E ; System.Buffers.ArrayPool`1[uint]
call CORINFO_HELP_GET_GCSTATIC_BASE
mov eax, dword ptr [rbp-0x34]
jmp G_M39498_IG19
;; size=26 bbWeight=0 PerfScore 0.00
G_M39498_IG54:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M39498_IG55:
mov rdi, 0xD1FFAB1E ; System.Buffers.ArrayPool`1[uint]
call CORINFO_HELP_GET_GCSTATIC_BASE
- mov r9d, dword ptr [rbp-0x4C]
+ mov r8d, dword ptr [rbp-0x4C]
jmp G_M39498_IG26
;; size=24 bbWeight=0 PerfScore 0.00
G_M39498_IG56:
mov rdi, 0xD1FFAB1E ; System.Buffers.ArrayPool`1[uint]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M39498_IG47
;; size=20 bbWeight=0 PerfScore 0.00
G_M39498_IG57:
mov rdi, 0xD1FFAB1E ; System.Buffers.ArrayPool`1[uint]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M39498_IG49
;; size=20 bbWeight=0 PerfScore 0.00
G_M39498_IG58:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M39498_IG59:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1521, prolog size 64, PerfScore 400.25, instruction count 404, allocated bytes for code 1525 (MethodHash=512165b5) for method System.Numerics.BigInteger:RotateRight(System.Numerics.BigInteger,int):System.Numerics.BigInteger (FullOpts)
+; Total bytes of code 1477, prolog size 60, PerfScore 397.25, instruction count 400, allocated bytes for code 1477 (MethodHash=512165b5) for method System.Numerics.BigInteger:RotateRight(System.Numerics.BigInteger,int):System.Numerics.BigInteger (FullOpts)
-42 (-2.27 % of base) - System.Net.Http.Headers.ContentRangeHeaderValue:ToString():System.String:this
; Assembly listing for method System.Net.Http.Headers.ContentRangeHeaderValue:ToString():System.String:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 47 single block inlinees; 55 inlinees without PGO data
+; 0 inlinees with PGO data; 46 single block inlinees; 52 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T10] ( 8, 6.50) ref -> rbx this class-hnd single-def <System.Net.Http.Headers.ContentRangeHeaderValue>
+; V00 this [V00,T09] ( 8, 6.50) ref -> rbx this class-hnd single-def <System.Net.Http.Headers.ContentRangeHeaderValue>
; V01 loc0 [V01 ] ( 71, 40.50) struct (32) [rbp-0x48] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Text.ValueStringBuilder>
;* V02 loc1 [V02 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[ushort]>
; V03 OutArgs [V03 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V05 tmp2 [V05,T29] ( 2, 4 ) long -> rdi "Inlining Arg"
-; V06 tmp3 [V06,T17] ( 5, 7 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
-; V07 tmp4 [V07,T37] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
-; V08 tmp5 [V08,T31] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
+; V05 tmp2 [V05,T33] ( 2, 4 ) long -> rdi "Inlining Arg"
+; V06 tmp3 [V06,T20] ( 5, 7 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
+; V07 tmp4 [V07,T40] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
+; V08 tmp5 [V08,T34] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
;* V09 tmp6 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V10 tmp7 [V10,T20] ( 5, 5 ) long -> rdi ld-addr-op "Inlining Arg"
+; V10 tmp7 [V10,T24] ( 5, 5 ) long -> rdi ld-addr-op "Inlining Arg"
;* V11 tmp8 [V11 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
;* V12 tmp9 [V12 ] ( 0, 0 ) byref -> zero-ref
; V13 tmp10 [V13 ] ( 3, 1.50) int -> [rbp-0x50] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V14 tmp11 [V14 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.Span`1[ushort]>
;* V15 tmp12 [V15 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V16 tmp13 [V16,T26] ( 4, 4 ) int -> r15 "Inlining Arg"
+; V16 tmp13 [V16,T30] ( 4, 4 ) int -> r15 "Inlining Arg"
;* V17 tmp14 [V17 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V18 tmp15 [V18,T21] ( 3, 3 ) byref -> rax single-def "Inlining Arg"
-; V19 tmp16 [V19,T33] ( 2, 2 ) int -> rdx "Inlining Arg"
+; V18 tmp15 [V18,T25] ( 3, 3 ) byref -> rax single-def "Inlining Arg"
+; V19 tmp16 [V19,T36] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V20 tmp17 [V20 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V21 tmp18 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V22 tmp19 [V22,T87] ( 2, 1 ) ubyte -> rcx "Inline return value spill temp"
+; V22 tmp19 [V22,T89] ( 2, 1 ) ubyte -> rcx "Inline return value spill temp"
;* V23 tmp20 [V23 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V24 tmp21 [V24 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V25 tmp22 [V25 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V26 tmp23 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V27 tmp24 [V27 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V28 tmp25 [V28 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V29 tmp26 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V30 tmp27 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V31 tmp28 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
;* V32 tmp29 [V32 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V33 tmp30 [V33 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V34 tmp31 [V34,T63] ( 3, 1.50) ubyte -> rcx "Inline return value spill temp"
-; V35 tmp32 [V35,T41] ( 4, 2 ) int -> rcx "Inline stloc first use temp"
+; V34 tmp31 [V34,T65] ( 3, 1.50) ubyte -> rcx "Inline return value spill temp"
+; V35 tmp32 [V35,T44] ( 4, 2 ) int -> rcx "Inline stloc first use temp"
;* V36 tmp33 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
; V37 tmp34 [V37 ] ( 3, 1.50) byref -> [rbp-0x58] must-init pinned "Inline stloc first use temp"
;* V38 tmp35 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V39 tmp36 [V39 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V40 tmp37 [V40,T64] ( 3, 1.50) int -> rcx "Inline stloc first use temp"
+; V40 tmp37 [V40,T66] ( 3, 1.50) int -> rcx "Inline stloc first use temp"
;* V41 tmp38 [V41 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
;* V42 tmp39 [V42 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V43 tmp40 [V43 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
;* V44 tmp41 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V45 tmp42 [V45 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V46 tmp43 [V46 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V47 tmp44 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
;* V48 tmp45 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V49 tmp46 [V49 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
; V50 tmp47 [V50,T00] ( 9, 37 ) long -> registers "Inlining Arg"
; V51 tmp48 [V51,T03] ( 8, 29 ) long -> rcx "Inlining Arg"
-; V52 tmp49 [V52,T51] ( 2, 2 ) long -> rax "dup spill"
+; V52 tmp49 [V52,T53] ( 2, 2 ) long -> rax "dup spill"
;* V53 tmp50 [V53 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-; V54 tmp51 [V54,T06] ( 3, 12 ) long -> rdx "Inline stloc first use temp"
-;* V55 tmp52 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
-;* V56 tmp53 [V56 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V57 tmp54 [V57 ] ( 0, 0 ) long -> zero-ref
+; V54 tmp51 [V54,T06] ( 3, 24 ) long -> rdx "dup spill"
+; V55 tmp52 [V55,T13] ( 2, 8 ) long -> rax "Inline stloc first use temp"
+;* V56 tmp53 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
+;* V57 tmp54 [V57 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V58 tmp55 [V58 ] ( 0, 0 ) long -> zero-ref
-; V59 tmp56 [V59,T11] ( 2, 8 ) ref -> rdx
-;* V60 tmp57 [V60 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V61 tmp58 [V61 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V62 tmp59 [V62 ] ( 0, 0 ) long -> zero-ref
+;* V59 tmp56 [V59 ] ( 0, 0 ) long -> zero-ref
+; V60 tmp57 [V60,T10] ( 2, 8 ) ref -> rdx
+;* V61 tmp58 [V61 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V62 tmp59 [V62 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V63 tmp60 [V63 ] ( 0, 0 ) long -> zero-ref
-; V64 tmp61 [V64,T75] ( 2, 1 ) ref -> rax single-def
-;* V65 tmp62 [V65 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V66 tmp63 [V66 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V67 tmp64 [V67 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V68 tmp65 [V68,T36] ( 5, 2.50) ref -> rax class-hnd "Inline return value spill temp" <System.String>
-;* V69 tmp66 [V69 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V70 tmp67 [V70 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V71 tmp68 [V71 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-; V72 tmp69 [V72,T38] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
-; V73 tmp70 [V73,T42] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
-;* V74 tmp71 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V75 tmp72 [V75,T09] ( 9, 9 ) long -> r15 ld-addr-op "Inlining Arg"
-;* V76 tmp73 [V76 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-;* V77 tmp74 [V77 ] ( 0, 0 ) byref -> zero-ref
-; V78 tmp75 [V78 ] ( 4, 2 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;* V79 tmp76 [V79 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.Span`1[ushort]>
-;* V80 tmp77 [V80 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V81 tmp78 [V81,T27] ( 4, 4 ) int -> rax "Inlining Arg"
-;* V82 tmp79 [V82 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V83 tmp80 [V83,T22] ( 4, 4 ) byref -> r14 single-def "Inlining Arg"
-; V84 tmp81 [V84,T34] ( 3, 3 ) int -> rcx "Inlining Arg"
-;* V85 tmp82 [V85 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V86 tmp83 [V86 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V87 tmp84 [V87,T65] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
-;* V88 tmp85 [V88 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V89 tmp86 [V89 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V90 tmp87 [V90 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V91 tmp88 [V91,T76] ( 2, 1 ) ref -> rax class-hnd single-def "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-;* V92 tmp89 [V92 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V93 tmp90 [V93 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V94 tmp91 [V94,T23] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
-;* V95 tmp92 [V95 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V96 tmp93 [V96 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V97 tmp94 [V97,T47] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
-; V98 tmp95 [V98,T52] ( 2, 2 ) int -> rcx "Inlining Arg"
-; V99 tmp96 [V99,T66] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
-; V100 tmp97 [V100,T43] ( 4, 2 ) int -> rax "Inline stloc first use temp"
-;* V101 tmp98 [V101 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-; V102 tmp99 [V102 ] ( 3, 1.50) byref -> [rbp-0x68] must-init pinned "Inline stloc first use temp"
-;* V103 tmp100 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V104 tmp101 [V104 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V105 tmp102 [V105,T67] ( 3, 1.50) int -> rax "Inline stloc first use temp"
-;* V106 tmp103 [V106 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
-;* V107 tmp104 [V107 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V108 tmp105 [V108 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
-;* V109 tmp106 [V109 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V110 tmp107 [V110 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V111 tmp108 [V111 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V112 tmp109 [V112 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
-;* V113 tmp110 [V113 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V114 tmp111 [V114 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
-; V115 tmp112 [V115,T01] ( 9, 37 ) long -> registers "Inlining Arg"
-; V116 tmp113 [V116,T04] ( 8, 29 ) long -> r8 "Inlining Arg"
-; V117 tmp114 [V117,T53] ( 2, 2 ) long -> r8 "dup spill"
-;* V118 tmp115 [V118 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-; V119 tmp116 [V119,T07] ( 3, 12 ) long -> rdx "Inline stloc first use temp"
-;* V120 tmp117 [V120 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
-;* V121 tmp118 [V121 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V122 tmp119 [V122 ] ( 0, 0 ) long -> zero-ref
-;* V123 tmp120 [V123 ] ( 0, 0 ) long -> zero-ref
-; V124 tmp121 [V124,T12] ( 2, 8 ) ref -> rcx
-;* V125 tmp122 [V125 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V126 tmp123 [V126 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V127 tmp124 [V127 ] ( 0, 0 ) long -> zero-ref
-;* V128 tmp125 [V128 ] ( 0, 0 ) long -> zero-ref
-; V129 tmp126 [V129,T77] ( 2, 1 ) ref -> rdx single-def
-;* V130 tmp127 [V130 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V131 tmp128 [V131 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V132 tmp129 [V132 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V133 tmp130 [V133,T30] ( 6, 3 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
+;* V64 tmp61 [V64 ] ( 0, 0 ) long -> zero-ref
+; V65 tmp62 [V65,T77] ( 2, 1 ) ref -> rax single-def
+;* V66 tmp63 [V66 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V67 tmp64 [V67 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V68 tmp65 [V68 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V69 tmp66 [V69,T39] ( 5, 2.50) ref -> rax class-hnd "Inline return value spill temp" <System.String>
+;* V70 tmp67 [V70 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V71 tmp68 [V71 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V72 tmp69 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V73 tmp70 [V73,T41] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
+; V74 tmp71 [V74,T45] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
+;* V75 tmp72 [V75 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
+; V76 tmp73 [V76,T19] ( 7, 7 ) long -> r15 ld-addr-op "Inlining Arg"
+;* V77 tmp74 [V77 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
+;* V78 tmp75 [V78 ] ( 0, 0 ) byref -> zero-ref
+; V79 tmp76 [V79 ] ( 4, 2 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;* V80 tmp77 [V80 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.Span`1[ushort]>
+;* V81 tmp78 [V81 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+; V82 tmp79 [V82,T31] ( 4, 4 ) int -> rax "Inlining Arg"
+;* V83 tmp80 [V83 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V84 tmp81 [V84,T26] ( 4, 4 ) byref -> r14 single-def "Inlining Arg"
+; V85 tmp82 [V85,T37] ( 3, 3 ) int -> rcx "Inlining Arg"
+;* V86 tmp83 [V86 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V87 tmp84 [V87 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V88 tmp85 [V88,T67] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
+;* V89 tmp86 [V89 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V90 tmp87 [V90 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V91 tmp88 [V91 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+; V92 tmp89 [V92,T78] ( 2, 1 ) ref -> rax class-hnd single-def "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+;* V93 tmp90 [V93 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V94 tmp91 [V94 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+; V95 tmp92 [V95,T27] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
+;* V96 tmp93 [V96 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V97 tmp94 [V97 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V98 tmp95 [V98,T50] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
+; V99 tmp96 [V99,T54] ( 2, 2 ) int -> rcx "Inlining Arg"
+; V100 tmp97 [V100,T68] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
+; V101 tmp98 [V101,T46] ( 4, 2 ) int -> rax "Inline stloc first use temp"
+;* V102 tmp99 [V102 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+; V103 tmp100 [V103 ] ( 3, 1.50) byref -> [rbp-0x68] must-init pinned "Inline stloc first use temp"
+;* V104 tmp101 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V105 tmp102 [V105 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+; V106 tmp103 [V106,T69] ( 3, 1.50) int -> rax "Inline stloc first use temp"
+;* V107 tmp104 [V107 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
+;* V108 tmp105 [V108 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V109 tmp106 [V109 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
+;* V110 tmp107 [V110 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V111 tmp108 [V111 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V112 tmp109 [V112 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V113 tmp110 [V113 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
+;* V114 tmp111 [V114 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V115 tmp112 [V115 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+; V116 tmp113 [V116,T01] ( 9, 37 ) long -> registers "Inlining Arg"
+; V117 tmp114 [V117,T04] ( 8, 29 ) long -> r8 "Inlining Arg"
+; V118 tmp115 [V118,T55] ( 2, 2 ) long -> r8 "dup spill"
+;* V119 tmp116 [V119 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
+; V120 tmp117 [V120,T07] ( 3, 24 ) long -> rdx "dup spill"
+; V121 tmp118 [V121,T14] ( 2, 8 ) long -> rcx "Inline stloc first use temp"
+;* V122 tmp119 [V122 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
+;* V123 tmp120 [V123 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V124 tmp121 [V124 ] ( 0, 0 ) long -> zero-ref
+;* V125 tmp122 [V125 ] ( 0, 0 ) long -> zero-ref
+; V126 tmp123 [V126,T11] ( 2, 8 ) ref -> rcx
+;* V127 tmp124 [V127 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V128 tmp125 [V128 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V129 tmp126 [V129 ] ( 0, 0 ) long -> zero-ref
+;* V130 tmp127 [V130 ] ( 0, 0 ) long -> zero-ref
+; V131 tmp128 [V131,T79] ( 2, 1 ) ref -> rdx single-def
+;* V132 tmp129 [V132 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V133 tmp130 [V133 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V134 tmp131 [V134 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V135 tmp132 [V135 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V136 tmp133 [V136 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-; V137 tmp134 [V137,T39] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
-; V138 tmp135 [V138,T44] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
-;* V139 tmp136 [V139 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V140 tmp137 [V140,T32] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
-;* V141 tmp138 [V141 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V142 tmp139 [V142 ] ( 3, 3 ) long -> [rbp-0x70] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-;* V143 tmp140 [V143 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-;* V144 tmp141 [V144,T96] ( 0, 0 ) byref -> zero-ref single-def
-; V145 tmp142 [V145 ] ( 4, 2 ) int -> [rbp-0x78] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;* V146 tmp143 [V146 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.Span`1[ushort]>
-;* V147 tmp144 [V147 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V148 tmp145 [V148,T28] ( 4, 4 ) int -> rbx "Inlining Arg"
-;* V149 tmp146 [V149 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V150 tmp147 [V150,T24] ( 4, 4 ) byref -> r15 single-def "Inlining Arg"
-; V151 tmp148 [V151,T35] ( 3, 3 ) int -> rax "Inlining Arg"
-;* V152 tmp149 [V152 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V153 tmp150 [V153 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V154 tmp151 [V154,T68] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
-;* V155 tmp152 [V155 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V156 tmp153 [V156,T18] ( 6, 6 ) long -> r13 "Inlining Arg"
-;* V157 tmp154 [V157 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V158 tmp155 [V158,T78] ( 2, 1 ) ref -> rax class-hnd single-def "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-;* V159 tmp156 [V159 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V160 tmp157 [V160 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V161 tmp158 [V161,T25] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
-;* V162 tmp159 [V162 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V163 tmp160 [V163 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V164 tmp161 [V164,T48] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
-; V165 tmp162 [V165,T54] ( 2, 2 ) int -> rcx "Inlining Arg"
-; V166 tmp163 [V166,T69] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
-; V167 tmp164 [V167,T45] ( 4, 2 ) int -> rdx "Inline stloc first use temp"
-;* V168 tmp165 [V168 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-; V169 tmp166 [V169 ] ( 3, 1.50) byref -> [rbp-0x80] must-init pinned "Inline stloc first use temp"
-;* V170 tmp167 [V170 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V171 tmp168 [V171 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V172 tmp169 [V172,T70] ( 3, 1.50) int -> rdx "Inline stloc first use temp"
-;* V173 tmp170 [V173 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
-;* V174 tmp171 [V174 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V175 tmp172 [V175 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
-;* V176 tmp173 [V176 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V177 tmp174 [V177 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V178 tmp175 [V178 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V179 tmp176 [V179 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
-;* V180 tmp177 [V180 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V181 tmp178 [V181 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
-; V182 tmp179 [V182,T02] ( 9, 37 ) long -> registers "Inlining Arg"
-; V183 tmp180 [V183,T05] ( 8, 29 ) long -> r8 "Inlining Arg"
-; V184 tmp181 [V184,T55] ( 2, 2 ) long -> r8 "dup spill"
-;* V185 tmp182 [V185 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-; V186 tmp183 [V186,T08] ( 3, 12 ) long -> rdx "Inline stloc first use temp"
+; V135 tmp132 [V135,T22] ( 5, 5 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V136 tmp133 [V136,T42] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
+; V137 tmp134 [V137,T47] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
+;* V138 tmp135 [V138 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
+; V139 tmp136 [V139,T35] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
+;* V140 tmp137 [V140 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
+; V141 tmp138 [V141 ] ( 3, 3 ) long -> [rbp-0x70] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V142 tmp139 [V142 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
+;* V143 tmp140 [V143,T98] ( 0, 0 ) byref -> zero-ref single-def
+; V144 tmp141 [V144 ] ( 4, 2 ) int -> [rbp-0x78] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;* V145 tmp142 [V145 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.Span`1[ushort]>
+;* V146 tmp143 [V146 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+; V147 tmp144 [V147,T32] ( 4, 4 ) int -> rbx "Inlining Arg"
+;* V148 tmp145 [V148 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V149 tmp146 [V149,T28] ( 4, 4 ) byref -> r15 single-def "Inlining Arg"
+; V150 tmp147 [V150,T38] ( 3, 3 ) int -> rax "Inlining Arg"
+;* V151 tmp148 [V151 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V152 tmp149 [V152 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V153 tmp150 [V153,T70] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
+;* V154 tmp151 [V154 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+; V155 tmp152 [V155,T21] ( 6, 6 ) long -> r13 "Inlining Arg"
+;* V156 tmp153 [V156 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+; V157 tmp154 [V157,T80] ( 2, 1 ) ref -> rax class-hnd single-def "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+;* V158 tmp155 [V158 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V159 tmp156 [V159 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+; V160 tmp157 [V160,T29] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
+;* V161 tmp158 [V161 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V162 tmp159 [V162 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V163 tmp160 [V163,T51] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
+; V164 tmp161 [V164,T56] ( 2, 2 ) int -> rcx "Inlining Arg"
+; V165 tmp162 [V165,T71] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
+; V166 tmp163 [V166,T48] ( 4, 2 ) int -> rdx "Inline stloc first use temp"
+;* V167 tmp164 [V167 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+; V168 tmp165 [V168 ] ( 3, 1.50) byref -> [rbp-0x80] must-init pinned "Inline stloc first use temp"
+;* V169 tmp166 [V169 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V170 tmp167 [V170 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+; V171 tmp168 [V171,T72] ( 3, 1.50) int -> rdx "Inline stloc first use temp"
+;* V172 tmp169 [V172 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
+;* V173 tmp170 [V173 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V174 tmp171 [V174 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
+;* V175 tmp172 [V175 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V176 tmp173 [V176 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V177 tmp174 [V177 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V178 tmp175 [V178 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
+;* V179 tmp176 [V179 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V180 tmp177 [V180 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+; V181 tmp178 [V181,T02] ( 9, 37 ) long -> registers "Inlining Arg"
+; V182 tmp179 [V182,T05] ( 8, 29 ) long -> r8 "Inlining Arg"
+; V183 tmp180 [V183,T57] ( 2, 2 ) long -> r8 "dup spill"
+;* V184 tmp181 [V184 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
+; V185 tmp182 [V185,T08] ( 3, 24 ) long -> rdx "dup spill"
+; V186 tmp183 [V186,T15] ( 2, 8 ) long -> r9 "Inline stloc first use temp"
;* V187 tmp184 [V187 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
;* V188 tmp185 [V188 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V189 tmp186 [V189 ] ( 0, 0 ) long -> zero-ref
;* V190 tmp187 [V190 ] ( 0, 0 ) long -> zero-ref
-; V191 tmp188 [V191,T13] ( 2, 8 ) ref -> rdx
+; V191 tmp188 [V191,T12] ( 2, 8 ) ref -> rdx
;* V192 tmp189 [V192 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V193 tmp190 [V193 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V194 tmp191 [V194 ] ( 0, 0 ) long -> zero-ref
;* V195 tmp192 [V195 ] ( 0, 0 ) long -> zero-ref
-; V196 tmp193 [V196,T79] ( 2, 1 ) ref -> r9 single-def
+; V196 tmp193 [V196,T81] ( 2, 1 ) ref -> r9 single-def
;* V197 tmp194 [V197 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V198 tmp195 [V198 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V199 tmp196 [V199 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V200 tmp197 [V200,T19] ( 5, 5 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
-; V201 tmp198 [V201,T40] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
-; V202 tmp199 [V202,T46] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
+; V200 tmp197 [V200,T23] ( 5, 5 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V201 tmp198 [V201,T43] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
+; V202 tmp199 [V202,T49] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
;* V203 tmp200 [V203 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
;* V204 tmp201 [V204 ] ( 0, 0 ) byref -> zero-ref single-def "field V02._reference (fldOffset=0x0)" P-INDEP
;* V205 tmp202 [V205 ] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
-; V206 tmp203 [V206,T49] ( 2, 2 ) byref -> rdi single-def "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V207 tmp204 [V207,T95] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
-; V208 tmp205 [V208,T73] ( 2, 1.50) byref -> rsi single-def "field V09._reference (fldOffset=0x0)" P-INDEP
-; V209 tmp206 [V209,T56] ( 2, 2 ) int -> rax "field V09._length (fldOffset=0x8)" P-INDEP
+; V206 tmp203 [V206,T52] ( 2, 2 ) byref -> rdi single-def "field V04._reference (fldOffset=0x0)" P-INDEP
+;* V207 tmp204 [V207,T97] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
+; V208 tmp205 [V208,T75] ( 2, 1.50) byref -> rsi single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+; V209 tmp206 [V209,T58] ( 2, 2 ) int -> rax "field V09._length (fldOffset=0x8)" P-INDEP
;* V210 tmp207 [V210 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
;* V211 tmp208 [V211 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
;* V212 tmp209 [V212 ] ( 0, 0 ) byref -> zero-ref single-def "field V15._reference (fldOffset=0x0)" P-INDEP
;* V213 tmp210 [V213 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
-;* V214 tmp211 [V214,T97] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-;* V215 tmp212 [V215,T98] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
+;* V214 tmp211 [V214,T99] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+;* V215 tmp212 [V215,T100] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
;* V216 tmp213 [V216 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP
;* V217 tmp214 [V217 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
;* V218 tmp215 [V218 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
;* V219 tmp216 [V219 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
;* V220 tmp217 [V220 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
;* V221 tmp218 [V221 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
;* V222 tmp219 [V222 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
;* V223 tmp220 [V223 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
;* V224 tmp221 [V224 ] ( 0, 0 ) byref -> zero-ref "field V27._reference (fldOffset=0x0)" P-INDEP
;* V225 tmp222 [V225 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
;* V226 tmp223 [V226 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP
;* V227 tmp224 [V227 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
;* V228 tmp225 [V228 ] ( 0, 0 ) byref -> zero-ref single-def "field V30._reference (fldOffset=0x0)" P-INDEP
;* V229 tmp226 [V229 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
;* V230 tmp227 [V230 ] ( 0, 0 ) byref -> zero-ref single-def "field V31._reference (fldOffset=0x0)" P-INDEP
;* V231 tmp228 [V231 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
;* V232 tmp229 [V232 ] ( 0, 0 ) byref -> zero-ref single-def "field V36._reference (fldOffset=0x0)" P-INDEP
;* V233 tmp230 [V233 ] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
;* V234 tmp231 [V234 ] ( 0, 0 ) byref -> zero-ref single-def "field V38._reference (fldOffset=0x0)" P-INDEP
;* V235 tmp232 [V235 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
;* V236 tmp233 [V236 ] ( 0, 0 ) byref -> zero-ref single-def "field V41._reference (fldOffset=0x0)" P-INDEP
;* V237 tmp234 [V237 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
;* V238 tmp235 [V238 ] ( 0, 0 ) byref -> zero-ref single-def "field V44._reference (fldOffset=0x0)" P-INDEP
;* V239 tmp236 [V239 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP
;* V240 tmp237 [V240 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
;* V241 tmp238 [V241 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
;* V242 tmp239 [V242 ] ( 0, 0 ) byref -> zero-ref single-def "field V48._reference (fldOffset=0x0)" P-INDEP
;* V243 tmp240 [V243 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
;* V244 tmp241 [V244 ] ( 0, 0 ) long -> zero-ref "field V53.Item1 (fldOffset=0x0)" P-INDEP
;* V245 tmp242 [V245 ] ( 0, 0 ) long -> zero-ref "field V53.Item2 (fldOffset=0x8)" P-INDEP
-;* V246 tmp243 [V246 ] ( 0, 0 ) long -> zero-ref "field V55.Item1 (fldOffset=0x0)" P-INDEP
-; V247 tmp244 [V247,T14] ( 2, 8 ) long -> rsi "field V55.Item2 (fldOffset=0x8)" P-INDEP
-; V248 tmp245 [V248,T80] ( 2, 1 ) byref -> rsi single-def "field V74._reference (fldOffset=0x0)" P-INDEP
-; V249 tmp246 [V249,T88] ( 2, 1 ) int -> rax "field V74._length (fldOffset=0x8)" P-INDEP
-;* V250 tmp247 [V250 ] ( 0, 0 ) byref -> zero-ref single-def "field V79._reference (fldOffset=0x0)" P-INDEP
-;* V251 tmp248 [V251 ] ( 0, 0 ) int -> zero-ref "field V79._length (fldOffset=0x8)" P-INDEP
-;* V252 tmp249 [V252 ] ( 0, 0 ) byref -> zero-ref single-def "field V80._reference (fldOffset=0x0)" P-INDEP
-;* V253 tmp250 [V253 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-INDEP
-; V254 tmp251 [V254,T81] ( 2, 1 ) byref -> r13 single-def "field V82._reference (fldOffset=0x0)" P-INDEP
-; V255 tmp252 [V255,T89] ( 2, 1 ) int -> r12 "field V82._length (fldOffset=0x8)" P-INDEP
-;* V256 tmp253 [V256 ] ( 0, 0 ) byref -> zero-ref "field V85._reference (fldOffset=0x0)" P-INDEP
-;* V257 tmp254 [V257 ] ( 0, 0 ) int -> zero-ref "field V85._length (fldOffset=0x8)" P-INDEP
-;* V258 tmp255 [V258 ] ( 0, 0 ) byref -> zero-ref single-def "field V86._reference (fldOffset=0x0)" P-INDEP
-;* V259 tmp256 [V259 ] ( 0, 0 ) int -> zero-ref "field V86._length (fldOffset=0x8)" P-INDEP
-;* V260 tmp257 [V260 ] ( 0, 0 ) byref -> zero-ref single-def "field V88._reference (fldOffset=0x0)" P-INDEP
-;* V261 tmp258 [V261 ] ( 0, 0 ) int -> zero-ref "field V88._length (fldOffset=0x8)" P-INDEP
-;* V262 tmp259 [V262 ] ( 0, 0 ) byref -> zero-ref "field V90._reference (fldOffset=0x0)" P-INDEP
-;* V263 tmp260 [V263 ] ( 0, 0 ) int -> zero-ref "field V90._length (fldOffset=0x8)" P-INDEP
-;* V264 tmp261 [V264 ] ( 0, 0 ) byref -> zero-ref "field V92._reference (fldOffset=0x0)" P-INDEP
-;* V265 tmp262 [V265 ] ( 0, 0 ) int -> zero-ref "field V92._length (fldOffset=0x8)" P-INDEP
-; V266 tmp263 [V266,T61] ( 3, 1.50) byref -> rdx "field V93._reference (fldOffset=0x0)" P-INDEP
-; V267 tmp264 [V267,T71] ( 3, 1.50) int -> rcx "field V93._length (fldOffset=0x8)" P-INDEP
-; V268 tmp265 [V268,T82] ( 2, 1 ) byref -> rdx single-def "field V95._reference (fldOffset=0x0)" P-INDEP
-; V269 tmp266 [V269,T90] ( 2, 1 ) int -> rcx "field V95._length (fldOffset=0x8)" P-INDEP
-;* V270 tmp267 [V270 ] ( 0, 0 ) byref -> zero-ref single-def "field V96._reference (fldOffset=0x0)" P-INDEP
-;* V271 tmp268 [V271 ] ( 0, 0 ) int -> zero-ref "field V96._length (fldOffset=0x8)" P-INDEP
-;* V272 tmp269 [V272 ] ( 0, 0 ) byref -> zero-ref single-def "field V101._reference (fldOffset=0x0)" P-INDEP
-;* V273 tmp270 [V273 ] ( 0, 0 ) int -> zero-ref "field V101._length (fldOffset=0x8)" P-INDEP
-;* V274 tmp271 [V274 ] ( 0, 0 ) byref -> zero-ref single-def "field V103._reference (fldOffset=0x0)" P-INDEP
-;* V275 tmp272 [V275 ] ( 0, 0 ) int -> zero-ref "field V103._length (fldOffset=0x8)" P-INDEP
-;* V276 tmp273 [V276 ] ( 0, 0 ) byref -> zero-ref single-def "field V106._reference (fldOffset=0x0)" P-INDEP
-;* V277 tmp274 [V277 ] ( 0, 0 ) int -> zero-ref "field V106._length (fldOffset=0x8)" P-INDEP
-;* V278 tmp275 [V278 ] ( 0, 0 ) byref -> zero-ref single-def "field V109._reference (fldOffset=0x0)" P-INDEP
-;* V279 tmp276 [V279 ] ( 0, 0 ) int -> zero-ref "field V109._length (fldOffset=0x8)" P-INDEP
-;* V280 tmp277 [V280 ] ( 0, 0 ) byref -> zero-ref single-def "field V112._reference (fldOffset=0x0)" P-INDEP
-;* V281 tmp278 [V281 ] ( 0, 0 ) int -> zero-ref "field V112._length (fldOffset=0x8)" P-INDEP
-;* V282 tmp279 [V282 ] ( 0, 0 ) byref -> zero-ref single-def "field V113._reference (fldOffset=0x0)" P-INDEP
-;* V283 tmp280 [V283 ] ( 0, 0 ) int -> zero-ref "field V113._length (fldOffset=0x8)" P-INDEP
-;* V284 tmp281 [V284 ] ( 0, 0 ) long -> zero-ref "field V118.Item1 (fldOffset=0x0)" P-INDEP
-;* V285 tmp282 [V285 ] ( 0, 0 ) long -> zero-ref "field V118.Item2 (fldOffset=0x8)" P-INDEP
-;* V286 tmp283 [V286 ] ( 0, 0 ) long -> zero-ref "field V120.Item1 (fldOffset=0x0)" P-INDEP
-; V287 tmp284 [V287,T15] ( 2, 8 ) long -> r9 "field V120.Item2 (fldOffset=0x8)" P-INDEP
-; V288 tmp285 [V288,T83] ( 2, 1 ) byref -> rsi single-def "field V139._reference (fldOffset=0x0)" P-INDEP
-; V289 tmp286 [V289,T91] ( 2, 1 ) int -> rax "field V139._length (fldOffset=0x8)" P-INDEP
-; V290 tmp287 [V290,T74] ( 2, 1.50) byref -> rsi single-def "field V141._reference (fldOffset=0x0)" P-INDEP
-; V291 tmp288 [V291,T57] ( 2, 2 ) int -> rax "field V141._length (fldOffset=0x8)" P-INDEP
-;* V292 tmp289 [V292 ] ( 0, 0 ) byref -> zero-ref single-def "field V146._reference (fldOffset=0x0)" P-INDEP
-;* V293 tmp290 [V293 ] ( 0, 0 ) int -> zero-ref "field V146._length (fldOffset=0x8)" P-INDEP
-;* V294 tmp291 [V294 ] ( 0, 0 ) byref -> zero-ref single-def "field V147._reference (fldOffset=0x0)" P-INDEP
-;* V295 tmp292 [V295 ] ( 0, 0 ) int -> zero-ref "field V147._length (fldOffset=0x8)" P-INDEP
-; V296 tmp293 [V296,T84] ( 2, 1 ) byref -> rbx single-def "field V149._reference (fldOffset=0x0)" P-INDEP
-; V297 tmp294 [V297,T92] ( 2, 1 ) int -> r14 "field V149._length (fldOffset=0x8)" P-INDEP
-;* V298 tmp295 [V298 ] ( 0, 0 ) byref -> zero-ref "field V152._reference (fldOffset=0x0)" P-INDEP
-;* V299 tmp296 [V299 ] ( 0, 0 ) int -> zero-ref "field V152._length (fldOffset=0x8)" P-INDEP
-;* V300 tmp297 [V300 ] ( 0, 0 ) byref -> zero-ref single-def "field V153._reference (fldOffset=0x0)" P-INDEP
-;* V301 tmp298 [V301 ] ( 0, 0 ) int -> zero-ref "field V153._length (fldOffset=0x8)" P-INDEP
-;* V302 tmp299 [V302 ] ( 0, 0 ) byref -> zero-ref single-def "field V155._reference (fldOffset=0x0)" P-INDEP
-;* V303 tmp300 [V303 ] ( 0, 0 ) int -> zero-ref "field V155._length (fldOffset=0x8)" P-INDEP
-;* V304 tmp301 [V304 ] ( 0, 0 ) byref -> zero-ref "field V157._reference (fldOffset=0x0)" P-INDEP
-;* V305 tmp302 [V305 ] ( 0, 0 ) int -> zero-ref "field V157._length (fldOffset=0x8)" P-INDEP
-;* V306 tmp303 [V306 ] ( 0, 0 ) byref -> zero-ref "field V159._reference (fldOffset=0x0)" P-INDEP
-;* V307 tmp304 [V307 ] ( 0, 0 ) int -> zero-ref "field V159._length (fldOffset=0x8)" P-INDEP
-; V308 tmp305 [V308,T62] ( 3, 1.50) byref -> rdx "field V160._reference (fldOffset=0x0)" P-INDEP
-; V309 tmp306 [V309,T72] ( 3, 1.50) int -> rcx "field V160._length (fldOffset=0x8)" P-INDEP
-; V310 tmp307 [V310,T85] ( 2, 1 ) byref -> rdx single-def "field V162._reference (fldOffset=0x0)" P-INDEP
-; V311 tmp308 [V311,T93] ( 2, 1 ) int -> rcx "field V162._length (fldOffset=0x8)" P-INDEP
-;* V312 tmp309 [V312 ] ( 0, 0 ) byref -> zero-ref single-def "field V163._reference (fldOffset=0x0)" P-INDEP
-;* V313 tmp310 [V313 ] ( 0, 0 ) int -> zero-ref "field V163._length (fldOffset=0x8)" P-INDEP
-;* V314 tmp311 [V314 ] ( 0, 0 ) byref -> zero-ref single-def "field V168._reference (fldOffset=0x0)" P-INDEP
-;* V315 tmp312 [V315 ] ( 0, 0 ) int -> zero-ref "field V168._length (fldOffset=0x8)" P-INDEP
-;* V316 tmp313 [V316 ] ( 0, 0 ) byref -> zero-ref single-def "field V170._reference (fldOffset=0x0)" P-INDEP
-;* V317 tmp314 [V317 ] ( 0, 0 ) int -> zero-ref "field V170._length (fldOffset=0x8)" P-INDEP
-;* V318 tmp315 [V318 ] ( 0, 0 ) byref -> zero-ref single-def "field V173._reference (fldOffset=0x0)" P-INDEP
-;* V319 tmp316 [V319 ] ( 0, 0 ) int -> zero-ref "field V173._length (fldOffset=0x8)" P-INDEP
-;* V320 tmp317 [V320 ] ( 0, 0 ) byref -> zero-ref single-def "field V176._reference (fldOffset=0x0)" P-INDEP
-;* V321 tmp318 [V321 ] ( 0, 0 ) int -> zero-ref "field V176._length (fldOffset=0x8)" P-INDEP
-;* V322 tmp319 [V322 ] ( 0, 0 ) byref -> zero-ref single-def "field V179._reference (fldOffset=0x0)" P-INDEP
-;* V323 tmp320 [V323 ] ( 0, 0 ) int -> zero-ref "field V179._length (fldOffset=0x8)" P-INDEP
-;* V324 tmp321 [V324 ] ( 0, 0 ) byref -> zero-ref single-def "field V180._reference (fldOffset=0x0)" P-INDEP
-;* V325 tmp322 [V325 ] ( 0, 0 ) int -> zero-ref "field V180._length (fldOffset=0x8)" P-INDEP
-;* V326 tmp323 [V326 ] ( 0, 0 ) long -> zero-ref "field V185.Item1 (fldOffset=0x0)" P-INDEP
-;* V327 tmp324 [V327 ] ( 0, 0 ) long -> zero-ref "field V185.Item2 (fldOffset=0x8)" P-INDEP
+;* V246 tmp243 [V246 ] ( 0, 0 ) long -> zero-ref "field V56.Item1 (fldOffset=0x0)" P-INDEP
+; V247 tmp244 [V247,T16] ( 2, 8 ) long -> rsi "field V56.Item2 (fldOffset=0x8)" P-INDEP
+; V248 tmp245 [V248,T82] ( 2, 1 ) byref -> rsi single-def "field V75._reference (fldOffset=0x0)" P-INDEP
+; V249 tmp246 [V249,T90] ( 2, 1 ) int -> rax "field V75._length (fldOffset=0x8)" P-INDEP
+;* V250 tmp247 [V250 ] ( 0, 0 ) byref -> zero-ref single-def "field V80._reference (fldOffset=0x0)" P-INDEP
+;* V251 tmp248 [V251 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-INDEP
+;* V252 tmp249 [V252 ] ( 0, 0 ) byref -> zero-ref single-def "field V81._reference (fldOffset=0x0)" P-INDEP
+;* V253 tmp250 [V253 ] ( 0, 0 ) int -> zero-ref "field V81._length (fldOffset=0x8)" P-INDEP
+; V254 tmp251 [V254,T83] ( 2, 1 ) byref -> r13 single-def "field V83._reference (fldOffset=0x0)" P-INDEP
+; V255 tmp252 [V255,T91] ( 2, 1 ) int -> r12 "field V83._length (fldOffset=0x8)" P-INDEP
+;* V256 tmp253 [V256 ] ( 0, 0 ) byref -> zero-ref "field V86._reference (fldOffset=0x0)" P-INDEP
+;* V257 tmp254 [V257 ] ( 0, 0 ) int -> zero-ref "field V86._length (fldOffset=0x8)" P-INDEP
+;* V258 tmp255 [V258 ] ( 0, 0 ) byref -> zero-ref single-def "field V87._reference (fldOffset=0x0)" P-INDEP
+;* V259 tmp256 [V259 ] ( 0, 0 ) int -> zero-ref "field V87._length (fldOffset=0x8)" P-INDEP
+;* V260 tmp257 [V260 ] ( 0, 0 ) byref -> zero-ref single-def "field V89._reference (fldOffset=0x0)" P-INDEP
+;* V261 tmp258 [V261 ] ( 0, 0 ) int -> zero-ref "field V89._length (fldOffset=0x8)" P-INDEP
+;* V262 tmp259 [V262 ] ( 0, 0 ) byref -> zero-ref "field V91._reference (fldOffset=0x0)" P-INDEP
+;* V263 tmp260 [V263 ] ( 0, 0 ) int -> zero-ref "field V91._length (fldOffset=0x8)" P-INDEP
+;* V264 tmp261 [V264 ] ( 0, 0 ) byref -> zero-ref "field V93._reference (fldOffset=0x0)" P-INDEP
+;* V265 tmp262 [V265 ] ( 0, 0 ) int -> zero-ref "field V93._length (fldOffset=0x8)" P-INDEP
+; V266 tmp263 [V266,T63] ( 3, 1.50) byref -> rdx "field V94._reference (fldOffset=0x0)" P-INDEP
+; V267 tmp264 [V267,T73] ( 3, 1.50) int -> rcx "field V94._length (fldOffset=0x8)" P-INDEP
+; V268 tmp265 [V268,T84] ( 2, 1 ) byref -> rdx single-def "field V96._reference (fldOffset=0x0)" P-INDEP
+; V269 tmp266 [V269,T92] ( 2, 1 ) int -> rcx "field V96._length (fldOffset=0x8)" P-INDEP
+;* V270 tmp267 [V270 ] ( 0, 0 ) byref -> zero-ref single-def "field V97._reference (fldOffset=0x0)" P-INDEP
+;* V271 tmp268 [V271 ] ( 0, 0 ) int -> zero-ref "field V97._length (fldOffset=0x8)" P-INDEP
+;* V272 tmp269 [V272 ] ( 0, 0 ) byref -> zero-ref single-def "field V102._reference (fldOffset=0x0)" P-INDEP
+;* V273 tmp270 [V273 ] ( 0, 0 ) int -> zero-ref "field V102._length (fldOffset=0x8)" P-INDEP
+;* V274 tmp271 [V274 ] ( 0, 0 ) byref -> zero-ref single-def "field V104._reference (fldOffset=0x0)" P-INDEP
+;* V275 tmp272 [V275 ] ( 0, 0 ) int -> zero-ref "field V104._length (fldOffset=0x8)" P-INDEP
+;* V276 tmp273 [V276 ] ( 0, 0 ) byref -> zero-ref single-def "field V107._reference (fldOffset=0x0)" P-INDEP
+;* V277 tmp274 [V277 ] ( 0, 0 ) int -> zero-ref "field V107._length (fldOffset=0x8)" P-INDEP
+;* V278 tmp275 [V278 ] ( 0, 0 ) byref -> zero-ref single-def "field V110._reference (fldOffset=0x0)" P-INDEP
+;* V279 tmp276 [V279 ] ( 0, 0 ) int -> zero-ref "field V110._length (fldOffset=0x8)" P-INDEP
+;* V280 tmp277 [V280 ] ( 0, 0 ) byref -> zero-ref single-def "field V113._reference (fldOffset=0x0)" P-INDEP
+;* V281 tmp278 [V281 ] ( 0, 0 ) int -> zero-ref "field V113._length (fldOffset=0x8)" P-INDEP
+;* V282 tmp279 [V282 ] ( 0, 0 ) byref -> zero-ref single-def "field V114._reference (fldOffset=0x0)" P-INDEP
+;* V283 tmp280 [V283 ] ( 0, 0 ) int -> zero-ref "field V114._length (fldOffset=0x8)" P-INDEP
+;* V284 tmp281 [V284 ] ( 0, 0 ) long -> zero-ref "field V119.Item1 (fldOffset=0x0)" P-INDEP
+;* V285 tmp282 [V285 ] ( 0, 0 ) long -> zero-ref "field V119.Item2 (fldOffset=0x8)" P-INDEP
+;* V286 tmp283 [V286 ] ( 0, 0 ) long -> zero-ref "field V122.Item1 (fldOffset=0x0)" P-INDEP
+; V287 tmp284 [V287,T17] ( 2, 8 ) long -> r9 "field V122.Item2 (fldOffset=0x8)" P-INDEP
+; V288 tmp285 [V288,T85] ( 2, 1 ) byref -> rsi single-def "field V138._reference (fldOffset=0x0)" P-INDEP
+; V289 tmp286 [V289,T93] ( 2, 1 ) int -> rax "field V138._length (fldOffset=0x8)" P-INDEP
+; V290 tmp287 [V290,T76] ( 2, 1.50) byref -> rsi single-def "field V140._reference (fldOffset=0x0)" P-INDEP
+; V291 tmp288 [V291,T59] ( 2, 2 ) int -> rax "field V140._length (fldOffset=0x8)" P-INDEP
+;* V292 tmp289 [V292 ] ( 0, 0 ) byref -> zero-ref single-def "field V145._reference (fldOffset=0x0)" P-INDEP
+;* V293 tmp290 [V293 ] ( 0, 0 ) int -> zero-ref "field V145._length (fldOffset=0x8)" P-INDEP
+;* V294 tmp291 [V294 ] ( 0, 0 ) byref -> zero-ref single-def "field V146._reference (fldOffset=0x0)" P-INDEP
+;* V295 tmp292 [V295 ] ( 0, 0 ) int -> zero-ref "field V146._length (fldOffset=0x8)" P-INDEP
+; V296 tmp293 [V296,T86] ( 2, 1 ) byref -> rbx single-def "field V148._reference (fldOffset=0x0)" P-INDEP
+; V297 tmp294 [V297,T94] ( 2, 1 ) int -> r14 "field V148._length (fldOffset=0x8)" P-INDEP
+;* V298 tmp295 [V298 ] ( 0, 0 ) byref -> zero-ref "field V151._reference (fldOffset=0x0)" P-INDEP
+;* V299 tmp296 [V299 ] ( 0, 0 ) int -> zero-ref "field V151._length (fldOffset=0x8)" P-INDEP
+;* V300 tmp297 [V300 ] ( 0, 0 ) byref -> zero-ref single-def "field V152._reference (fldOffset=0x0)" P-INDEP
+;* V301 tmp298 [V301 ] ( 0, 0 ) int -> zero-ref "field V152._length (fldOffset=0x8)" P-INDEP
+;* V302 tmp299 [V302 ] ( 0, 0 ) byref -> zero-ref single-def "field V154._reference (fldOffset=0x0)" P-INDEP
+;* V303 tmp300 [V303 ] ( 0, 0 ) int -> zero-ref "field V154._length (fldOffset=0x8)" P-INDEP
+;* V304 tmp301 [V304 ] ( 0, 0 ) byref -> zero-ref "field V156._reference (fldOffset=0x0)" P-INDEP
+;* V305 tmp302 [V305 ] ( 0, 0 ) int -> zero-ref "field V156._length (fldOffset=0x8)" P-INDEP
+;* V306 tmp303 [V306 ] ( 0, 0 ) byref -> zero-ref "field V158._reference (fldOffset=0x0)" P-INDEP
+;* V307 tmp304 [V307 ] ( 0, 0 ) int -> zero-ref "field V158._length (fldOffset=0x8)" P-INDEP
+; V308 tmp305 [V308,T64] ( 3, 1.50) byref -> rdx "field V159._reference (fldOffset=0x0)" P-INDEP
+; V309 tmp306 [V309,T74] ( 3, 1.50) int -> rcx "field V159._length (fldOffset=0x8)" P-INDEP
+; V310 tmp307 [V310,T87] ( 2, 1 ) byref -> rdx single-def "field V161._reference (fldOffset=0x0)" P-INDEP
+; V311 tmp308 [V311,T95] ( 2, 1 ) int -> rcx "field V161._length (fldOffset=0x8)" P-INDEP
+;* V312 tmp309 [V312 ] ( 0, 0 ) byref -> zero-ref single-def "field V162._reference (fldOffset=0x0)" P-INDEP
+;* V313 tmp310 [V313 ] ( 0, 0 ) int -> zero-ref "field V162._length (fldOffset=0x8)" P-INDEP
+;* V314 tmp311 [V314 ] ( 0, 0 ) byref -> zero-ref single-def "field V167._reference (fldOffset=0x0)" P-INDEP
+;* V315 tmp312 [V315 ] ( 0, 0 ) int -> zero-ref "field V167._length (fldOffset=0x8)" P-INDEP
+;* V316 tmp313 [V316 ] ( 0, 0 ) byref -> zero-ref single-def "field V169._reference (fldOffset=0x0)" P-INDEP
+;* V317 tmp314 [V317 ] ( 0, 0 ) int -> zero-ref "field V169._length (fldOffset=0x8)" P-INDEP
+;* V318 tmp315 [V318 ] ( 0, 0 ) byref -> zero-ref single-def "field V172._reference (fldOffset=0x0)" P-INDEP
+;* V319 tmp316 [V319 ] ( 0, 0 ) int -> zero-ref "field V172._length (fldOffset=0x8)" P-INDEP
+;* V320 tmp317 [V320 ] ( 0, 0 ) byref -> zero-ref single-def "field V175._reference (fldOffset=0x0)" P-INDEP
+;* V321 tmp318 [V321 ] ( 0, 0 ) int -> zero-ref "field V175._length (fldOffset=0x8)" P-INDEP
+;* V322 tmp319 [V322 ] ( 0, 0 ) byref -> zero-ref single-def "field V178._reference (fldOffset=0x0)" P-INDEP
+;* V323 tmp320 [V323 ] ( 0, 0 ) int -> zero-ref "field V178._length (fldOffset=0x8)" P-INDEP
+;* V324 tmp321 [V324 ] ( 0, 0 ) byref -> zero-ref single-def "field V179._reference (fldOffset=0x0)" P-INDEP
+;* V325 tmp322 [V325 ] ( 0, 0 ) int -> zero-ref "field V179._length (fldOffset=0x8)" P-INDEP
+;* V326 tmp323 [V326 ] ( 0, 0 ) long -> zero-ref "field V184.Item1 (fldOffset=0x0)" P-INDEP
+;* V327 tmp324 [V327 ] ( 0, 0 ) long -> zero-ref "field V184.Item2 (fldOffset=0x8)" P-INDEP
;* V328 tmp325 [V328 ] ( 0, 0 ) long -> zero-ref "field V187.Item1 (fldOffset=0x0)" P-INDEP
-; V329 tmp326 [V329,T16] ( 2, 8 ) long -> r13 "field V187.Item2 (fldOffset=0x8)" P-INDEP
-; V330 tmp327 [V330,T86] ( 2, 1 ) byref -> rsi single-def "field V203._reference (fldOffset=0x0)" P-INDEP
-; V331 tmp328 [V331,T94] ( 2, 1 ) int -> rax "field V203._length (fldOffset=0x8)" P-INDEP
-; V332 tmp329 [V332,T58] ( 2, 2 ) long -> rax "Cast away GC"
+; V329 tmp326 [V329,T18] ( 2, 8 ) long -> r13 "field V187.Item2 (fldOffset=0x8)" P-INDEP
+; V330 tmp327 [V330,T88] ( 2, 1 ) byref -> rsi single-def "field V203._reference (fldOffset=0x0)" P-INDEP
+; V331 tmp328 [V331,T96] ( 2, 1 ) int -> rax "field V203._length (fldOffset=0x8)" P-INDEP
+; V332 tmp329 [V332,T60] ( 2, 2 ) long -> rax "Cast away GC"
;* V333 tmp330 [V333 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V334 tmp331 [V334,T59] ( 2, 2 ) long -> r14 "Cast away GC"
-; V335 tmp332 [V335,T50] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
-; V336 tmp333 [V336,T60] ( 2, 2 ) long -> r15 "Cast away GC"
-; V337 GsCookie [V337 ] ( 1, 1 ) long -> [rbp-0x88] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V334 tmp331 [V334,T61] ( 2, 2 ) long -> r14 "Cast away GC"
+; V335 tmp332 [V335,T62] ( 2, 2 ) long -> r15 "Cast away GC"
+; V336 GsCookie [V336 ] ( 1, 1 ) long -> [rbp-0x88] do-not-enreg[X] addr-exposed "GSSecurityCookie"
;
; Lcl frame size = 120
G_M16251_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 120
lea rbp, [rsp+0xA0]
vxorps xmm8, xmm8, xmm8
vmovdqu32 zmmword ptr [rbp-0x80], zmm8
vmovdqa xmmword ptr [rbp-0x40], xmm8
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov qword ptr [rbp-0x88], 0xD1FFAB1E
mov rbx, rdi
;; size=59 bbWeight=1 PerfScore 13.58
G_M16251_IG02:
test dword ptr [rsp], esp
sub rsp, 512
lea rdi, [rsp+0x10]
mov bword ptr [rbp-0x38], rdi
mov dword ptr [rbp-0x30], 256
xor edi, edi
mov dword ptr [rbp-0x40], edi
mov rsi, gword ptr [rbx+0x08]
test rsi, rsi
je SHORT G_M16251_IG05
;; size=40 bbWeight=1 PerfScore 10.25
G_M16251_IG03:
mov edi, dword ptr [rbp-0x40]
cmp dword ptr [rsi+0x08], 1
jne SHORT G_M16251_IG04
cmp edi, dword ptr [rbp-0x30]
jae SHORT G_M16251_IG04
cmp edi, dword ptr [rbp-0x30]
- jae G_M16251_IG68
+ jae G_M16251_IG66
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_M16251_IG05
align [0 bytes for IG13]
;; size=44 bbWeight=0.50 PerfScore 9.25
G_M16251_IG04:
lea rdi, [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:AppendSlow(System.String):this
call [rax]System.Text.ValueStringBuilder:AppendSlow(System.String):this
;; size=16 bbWeight=0.50 PerfScore 1.88
G_M16251_IG05:
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
jae SHORT G_M16251_IG07
;; size=14 bbWeight=1 PerfScore 4.25
G_M16251_IG06:
mov eax, edi
mov word ptr [rsi+2*rax], 32
inc edi
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M16251_IG08
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M16251_IG07:
lea rdi, [rbp-0x48]
mov esi, 32
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_M16251_IG08:
cmp qword ptr [rbx+0x10], 0
jl SHORT G_M16251_IG10
;; size=7 bbWeight=1 PerfScore 4.00
G_M16251_IG09:
mov rdi, qword ptr [rbx+0x10]
mov r15d, dword ptr [rbp-0x40]
cmp r15d, dword ptr [rbp-0x30]
jbe SHORT G_M16251_IG12
- jmp G_M16251_IG67
+ jmp G_M16251_IG65
;; size=19 bbWeight=0.50 PerfScore 4.00
G_M16251_IG10:
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
jae SHORT G_M16251_IG11
mov eax, edi
mov word ptr [rsi+2*rax], 42
inc edi
mov dword ptr [rbp-0x40], edi
- jmp G_M16251_IG42
+ jmp G_M16251_IG40
;; size=32 bbWeight=0.50 PerfScore 4.38
G_M16251_IG11:
lea rdi, [rbp-0x48]
mov esi, 42
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
- jmp G_M16251_IG42
+ jmp G_M16251_IG40
;; size=26 bbWeight=0.50 PerfScore 3.00
G_M16251_IG12:
mov rax, bword ptr [rbp-0x38]
mov edx, r15d
lea rax, bword ptr [rax+2*rdx]
mov edx, dword ptr [rbp-0x30]
sub edx, r15d
mov rcx, rdi
or rcx, 1
lzcnt rcx, rcx
xor ecx, 63
movsxd rcx, ecx
mov rsi, 0xD1FFAB1E ; static handle
movzx rcx, byte ptr [rcx+rsi]
mov esi, ecx
mov r8, 0xD1FFAB1E ; static handle
cmp rdi, qword ptr [r8+8*rsi]
setb sil
movzx rsi, sil
sub ecx, esi
cmp ecx, edx
jg G_M16251_IG16
mov dword ptr [rbp-0x50], ecx
mov bword ptr [rbp-0x58], rax
movsxd rdx, ecx
lea rcx, [rax+2*rdx]
mov rsi, rdi
cmp rsi, 10
jb SHORT G_M16251_IG18
jmp SHORT G_M16251_IG14
;; size=108 bbWeight=0.50 PerfScore 10.38
G_M16251_IG13:
add rcx, -4
mov rdx, 0xD1FFAB1E
mov rax, rsi
shr rax, 2
mul rdx:rax, rdx
shr rdx, 2
imul rax, rdx, 100
sub rsi, rax
mov rax, rdx
mov rdx, 0xD1FFAB1E ; const ptr
mov rdx, gword ptr [rdx]
shl esi, 2
mov edx, dword ptr [rdx+rsi+0x10]
mov dword ptr [rcx], edx
mov rsi, rax
;; size=63 bbWeight=4 PerfScore 53.00
G_M16251_IG14:
cmp rsi, 100
jae SHORT G_M16251_IG13
;; size=6 bbWeight=4 PerfScore 5.00
G_M16251_IG15:
cmp rsi, 10
jb SHORT G_M16251_IG18
add rcx, -4
mov rax, 0xD1FFAB1E ; const ptr
mov rax, gword ptr [rax]
shl esi, 2
mov edx, esi
mov eax, dword ptr [rax+rdx+0x10]
mov dword ptr [rcx], eax
jmp SHORT G_M16251_IG19
align [0 bytes for IG27]
;; size=36 bbWeight=0.50 PerfScore 4.75
G_M16251_IG16:
xor ecx, ecx
mov dword ptr [rbp-0x50], ecx
;; size=5 bbWeight=0.50 PerfScore 0.62
G_M16251_IG17:
jmp SHORT G_M16251_IG20
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M16251_IG18:
lea rax, [rcx-0x02]
lea ecx, [rsi+0x30]
mov word ptr [rax], cx
;; size=10 bbWeight=0.50 PerfScore 1.00
G_M16251_IG19:
xor eax, eax
mov bword ptr [rbp-0x58], rax
mov ecx, 1
;; size=11 bbWeight=0.50 PerfScore 0.75
G_M16251_IG20:
xor rax, rax
mov bword ptr [rbp-0x58], rax
test ecx, ecx
je SHORT G_M16251_IG21
mov edi, dword ptr [rbp-0x40]
add edi, dword ptr [rbp-0x50]
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M16251_IG23
;; size=21 bbWeight=0.50 PerfScore 4.25
G_M16251_IG21:
mov rax, 0xD1FFAB1E ; code for System.Number:UInt64ToDecStr(ulong):System.String
call [rax]System.Number:UInt64ToDecStr(ulong):System.String
test rax, rax
je SHORT G_M16251_IG23
mov edi, dword ptr [rbp-0x40]
cmp dword ptr [rax+0x08], 1
jne SHORT G_M16251_IG22
cmp edi, dword ptr [rbp-0x30]
jae SHORT G_M16251_IG22
cmp edi, dword ptr [rbp-0x30]
- jae G_M16251_IG68
+ jae G_M16251_IG66
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_M16251_IG23
;; size=61 bbWeight=0.50 PerfScore 11.50
G_M16251_IG22:
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_M16251_IG23:
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
jae SHORT G_M16251_IG24
mov eax, edi
mov word ptr [rsi+2*rax], 45
inc edi
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M16251_IG25
;; size=29 bbWeight=0.50 PerfScore 4.38
G_M16251_IG24:
lea rdi, [rbp-0x48]
mov esi, 45
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_M16251_IG25:
mov r15, qword ptr [rbx+0x18]
mov eax, dword ptr [rbp-0x40]
cmp eax, dword ptr [rbp-0x30]
- ja G_M16251_IG67
+ ja G_M16251_IG65
mov rcx, bword ptr [rbp-0x38]
mov edx, eax
lea r14, bword ptr [rcx+2*rdx]
mov ecx, dword ptr [rbp-0x30]
sub ecx, eax
mov r13, r14
mov r12d, ecx
test r15, r15
jge SHORT G_M16251_IG26
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
mov r8, gword ptr [rax+0x28]
test r8, r8
jne G_M16251_IG35
xor rdx, rdx
xor ecx, ecx
jmp G_M16251_IG36
;; size=76 bbWeight=0.50 PerfScore 9.88
G_M16251_IG26:
mov rax, r15
or rax, 1
lzcnt rax, rax
xor eax, 63
cdqe
mov rdx, 0xD1FFAB1E ; static handle
movzx rax, byte ptr [rax+rdx]
mov edx, eax
mov r8, 0xD1FFAB1E ; static handle
cmp r15, qword ptr [r8+8*rdx]
setb dl
movzx rdx, dl
sub eax, edx
cmp eax, ecx
jg G_M16251_IG30
mov dword ptr [rbp-0x60], eax
mov bword ptr [rbp-0x68], r14
cdqe
lea r8, [r14+2*rax]
mov r9, r15
cmp r9, 10
jb SHORT G_M16251_IG32
jmp SHORT G_M16251_IG28
;; size=87 bbWeight=0.50 PerfScore 8.88
G_M16251_IG27:
add r8, -4
mov rdx, 0xD1FFAB1E
mov rax, r9
shr rax, 2
mul rdx:rax, rdx
shr rdx, 2
imul rcx, rdx, 100
sub r9, rcx
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rcx]
shl r9d, 2
mov r9d, dword ptr [rcx+r9+0x10]
mov dword ptr [r8], r9d
mov r9, rdx
;; size=63 bbWeight=4 PerfScore 52.00
G_M16251_IG28:
cmp r9, 100
jae SHORT G_M16251_IG27
;; size=6 bbWeight=4 PerfScore 5.00
G_M16251_IG29:
cmp r9, 10
jb SHORT G_M16251_IG32
add r8, -4
mov rdx, 0xD1FFAB1E ; const ptr
mov rdx, gword ptr [rdx]
shl r9d, 2
mov r9d, dword ptr [rdx+r9+0x10]
mov dword ptr [r8], r9d
jmp SHORT G_M16251_IG33
- align [0 bytes for IG51]
+ align [0 bytes for IG49]
;; size=37 bbWeight=0.50 PerfScore 4.62
G_M16251_IG30:
xor r8d, r8d
mov dword ptr [rbp-0x60], r8d
;; size=7 bbWeight=0.50 PerfScore 0.62
G_M16251_IG31:
jmp SHORT G_M16251_IG34
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M16251_IG32:
add r8, -2
add r9d, 48
mov word ptr [r8], r9w
;; size=12 bbWeight=0.50 PerfScore 0.75
G_M16251_IG33:
xor r8d, r8d
mov bword ptr [rbp-0x68], r8
mov r8d, 1
;; size=13 bbWeight=0.50 PerfScore 0.75
G_M16251_IG34:
xor r9, r9
mov bword ptr [rbp-0x68], r9
jmp SHORT G_M16251_IG37
;; size=9 bbWeight=0.50 PerfScore 1.62
G_M16251_IG35:
lea rdx, bword ptr [r8+0x0C]
mov ecx, dword ptr [r8+0x08]
;; size=8 bbWeight=0.50 PerfScore 1.25
G_M16251_IG36:
lea r8, [rbp-0x60]
mov qword ptr [rsp], r8
mov r8, r13
mov r9d, r12d
mov rdi, r15
mov esi, -1
mov rax, 0xD1FFAB1E ; code for System.Number:TryNegativeInt64ToDecStr[ushort](long,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte
call [rax]System.Number:TryNegativeInt64ToDecStr[ushort](long,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte
mov r8d, eax
;; size=37 bbWeight=0.50 PerfScore 3.00
G_M16251_IG37:
test r8d, r8d
je SHORT G_M16251_IG38
- mov eax, dword ptr [rbp-0x40]
- add eax, dword ptr [rbp-0x60]
- mov dword ptr [rbp-0x40], eax
- jmp G_M16251_IG42
- ;; size=19 bbWeight=0.50 PerfScore 3.62
-G_M16251_IG38:
- test r15, r15
- jge SHORT G_M16251_IG39
- mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
- call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
- mov rdx, gword ptr [rax+0x28]
- mov rdi, r15
- mov esi, -1
- mov rax, 0xD1FFAB1E ; code for System.Number:NegativeInt64ToDecStr(long,int,System.String):System.String
- call [rax]System.Number:NegativeInt64ToDecStr(long,int,System.String):System.String
+ mov edi, dword ptr [rbp-0x40]
+ add edi, dword ptr [rbp-0x60]
+ mov dword ptr [rbp-0x40], edi
jmp SHORT G_M16251_IG40
- ;; size=43 bbWeight=0.50 PerfScore 6.12
-G_M16251_IG39:
+ ;; size=16 bbWeight=0.50 PerfScore 3.62
+G_M16251_IG38:
mov rdi, r15
- mov rax, 0xD1FFAB1E ; code for System.Number:UInt64ToDecStr(ulong):System.String
- call [rax]System.Number:UInt64ToDecStr(ulong):System.String
- ;; size=15 bbWeight=0.50 PerfScore 1.75
-G_M16251_IG40:
+ xor rsi, rsi
+ xor rdx, rdx
+ mov rax, 0xD1FFAB1E ; code for System.Number:FormatInt64(long,System.String,System.IFormatProvider):System.String
+ call [rax]System.Number:FormatInt64(long,System.String,System.IFormatProvider):System.String
test rax, rax
- je SHORT G_M16251_IG42
+ je SHORT G_M16251_IG40
mov edi, dword ptr [rbp-0x40]
cmp dword ptr [rax+0x08], 1
- jne SHORT G_M16251_IG41
+ jne SHORT G_M16251_IG39
cmp edi, dword ptr [rbp-0x30]
- jae SHORT G_M16251_IG41
+ jae SHORT G_M16251_IG39
cmp edi, dword ptr [rbp-0x30]
- jae G_M16251_IG68
+ jae G_M16251_IG66
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_M16251_IG42
- ;; size=49 bbWeight=0.50 PerfScore 9.88
-G_M16251_IG41:
+ jmp SHORT G_M16251_IG40
+ ;; size=68 bbWeight=0.50 PerfScore 11.88
+G_M16251_IG39:
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_M16251_IG42:
+G_M16251_IG40:
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M16251_IG44
+ jae SHORT G_M16251_IG42
;; size=14 bbWeight=1 PerfScore 4.25
-G_M16251_IG43:
+G_M16251_IG41:
mov eax, edi
mov word ptr [rsi+2*rax], 47
inc edi
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M16251_IG45
+ jmp SHORT G_M16251_IG43
;; size=15 bbWeight=0.50 PerfScore 2.25
-G_M16251_IG44:
+G_M16251_IG42:
lea rdi, [rbp-0x48]
mov esi, 47
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_M16251_IG45:
+G_M16251_IG43:
cmp qword ptr [rbx+0x20], 0
- jl SHORT G_M16251_IG47
+ jl SHORT G_M16251_IG45
;; size=7 bbWeight=1 PerfScore 4.00
-G_M16251_IG46:
+G_M16251_IG44:
mov rdi, qword ptr [rbx+0x20]
mov qword ptr [rbp-0x70], rdi
mov ebx, dword ptr [rbp-0x40]
cmp ebx, dword ptr [rbp-0x30]
- jbe SHORT G_M16251_IG49
- jmp G_M16251_IG67
+ jbe SHORT G_M16251_IG47
+ jmp G_M16251_IG65
;; size=21 bbWeight=0.50 PerfScore 4.50
-G_M16251_IG47:
+G_M16251_IG45:
mov edi, dword ptr [rbp-0x40]
mov rsi, bword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x30]
cmp edi, eax
- jae SHORT G_M16251_IG48
+ jae SHORT G_M16251_IG46
mov eax, edi
mov word ptr [rsi+2*rax], 42
inc edi
mov dword ptr [rbp-0x40], edi
- jmp G_M16251_IG64
+ jmp G_M16251_IG62
;; size=32 bbWeight=0.50 PerfScore 4.38
-G_M16251_IG48:
+G_M16251_IG46:
lea rdi, [rbp-0x48]
mov esi, 42
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this
- jmp G_M16251_IG64
+ jmp G_M16251_IG62
;; size=26 bbWeight=0.50 PerfScore 3.00
-G_M16251_IG49:
+G_M16251_IG47:
mov rax, bword ptr [rbp-0x38]
mov ecx, ebx
lea r15, bword ptr [rax+2*rcx]
mov eax, dword ptr [rbp-0x30]
sub eax, ebx
mov rbx, r15
mov r14d, eax
mov r13, qword ptr [rbp-0x70]
test r13, r13
- jge SHORT G_M16251_IG50
+ jge SHORT G_M16251_IG48
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
mov r8, gword ptr [rax+0x28]
test r8, r8
- jne G_M16251_IG59
+ jne G_M16251_IG57
xor rdx, rdx
xor ecx, ecx
- jmp G_M16251_IG60
+ jmp G_M16251_IG58
;; size=64 bbWeight=0.50 PerfScore 7.38
-G_M16251_IG50:
+G_M16251_IG48:
mov rdx, r13
or rdx, 1
lzcnt rdx, rdx
xor edx, 63
movsxd rdx, edx
mov r8, 0xD1FFAB1E ; static handle
movzx rdx, byte ptr [rdx+r8]
mov ecx, edx
mov r8, 0xD1FFAB1E ; static handle
cmp r13, qword ptr [r8+8*rcx]
setb r8b
movzx r8, r8b
sub edx, r8d
cmp edx, eax
- jg G_M16251_IG54
+ jg G_M16251_IG52
mov dword ptr [rbp-0x78], edx
mov bword ptr [rbp-0x80], r15
movsxd rax, edx
lea r8, [r15+2*rax]
cmp r13, 10
- jb G_M16251_IG56
- jmp SHORT G_M16251_IG52
+ jb G_M16251_IG54
+ jmp SHORT G_M16251_IG50
;; size=94 bbWeight=0.50 PerfScore 8.75
-G_M16251_IG51:
+G_M16251_IG49:
add r8, -4
mov rdx, 0xD1FFAB1E
mov rax, r13
shr rax, 2
mul rdx:rax, rdx
shr rdx, 2
imul r9, rdx, 100
sub r13, r9
mov r9, rdx
mov rdx, 0xD1FFAB1E ; const ptr
mov rdx, gword ptr [rdx]
shl r13d, 2
mov ecx, r13d
mov edx, dword ptr [rdx+rcx+0x10]
mov dword ptr [r8], edx
mov r13, r9
;; size=68 bbWeight=4 PerfScore 54.00
-G_M16251_IG52:
+G_M16251_IG50:
cmp r13, 100
- jae SHORT G_M16251_IG51
+ jae SHORT G_M16251_IG49
;; size=6 bbWeight=4 PerfScore 5.00
-G_M16251_IG53:
+G_M16251_IG51:
cmp r13, 10
- jb SHORT G_M16251_IG56
+ jb SHORT G_M16251_IG54
add r8, -4
mov r9, 0xD1FFAB1E ; const ptr
mov r9, gword ptr [r9]
lea edx, [4*r13]
mov r9d, dword ptr [r9+rdx+0x10]
mov dword ptr [r8], r9d
- jmp SHORT G_M16251_IG57
+ jmp SHORT G_M16251_IG55
;; size=41 bbWeight=0.50 PerfScore 4.62
-G_M16251_IG54:
+G_M16251_IG52:
xor r8d, r8d
mov dword ptr [rbp-0x78], r8d
;; size=7 bbWeight=0.50 PerfScore 0.62
-G_M16251_IG55:
- jmp SHORT G_M16251_IG58
+G_M16251_IG53:
+ jmp SHORT G_M16251_IG56
;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M16251_IG56:
+G_M16251_IG54:
add r8, -2
lea r9d, [r13+0x30]
mov word ptr [r8], r9w
;; size=12 bbWeight=0.50 PerfScore 0.88
-G_M16251_IG57:
+G_M16251_IG55:
xor r8d, r8d
mov bword ptr [rbp-0x80], r8
mov r8d, 1
;; size=13 bbWeight=0.50 PerfScore 0.75
-G_M16251_IG58:
+G_M16251_IG56:
xor r9, r9
mov bword ptr [rbp-0x80], r9
- jmp SHORT G_M16251_IG61
+ jmp SHORT G_M16251_IG59
;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M16251_IG59:
+G_M16251_IG57:
lea rdx, bword ptr [r8+0x0C]
mov ecx, dword ptr [r8+0x08]
;; size=8 bbWeight=0.50 PerfScore 1.25
-G_M16251_IG60:
+G_M16251_IG58:
lea r8, [rbp-0x78]
mov qword ptr [rsp], r8
mov r8, rbx
mov r9d, r14d
mov rdi, r13
mov esi, -1
mov rax, 0xD1FFAB1E ; code for System.Number:TryNegativeInt64ToDecStr[ushort](long,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte
call [rax]System.Number:TryNegativeInt64ToDecStr[ushort](long,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte
mov r8d, eax
;; size=37 bbWeight=0.50 PerfScore 3.00
-G_M16251_IG61:
+G_M16251_IG59:
test r8d, r8d
- je SHORT G_M16251_IG62
+ je SHORT G_M16251_IG60
mov edi, dword ptr [rbp-0x40]
add edi, dword ptr [rbp-0x78]
mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M16251_IG64
+ jmp SHORT G_M16251_IG62
;; size=16 bbWeight=0.50 PerfScore 3.62
-G_M16251_IG62:
+G_M16251_IG60:
mov rdi, qword ptr [rbp-0x70]
xor rsi, rsi
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Number:FormatInt64(long,System.String,System.IFormatProvider):System.String
call [rax]System.Number:FormatInt64(long,System.String,System.IFormatProvider):System.String
test rax, rax
- je SHORT G_M16251_IG64
+ je SHORT G_M16251_IG62
mov edi, dword ptr [rbp-0x40]
cmp dword ptr [rax+0x08], 1
- jne SHORT G_M16251_IG63
+ jne SHORT G_M16251_IG61
cmp edi, dword ptr [rbp-0x30]
- jae SHORT G_M16251_IG63
+ jae SHORT G_M16251_IG61
cmp edi, dword ptr [rbp-0x30]
- jae SHORT G_M16251_IG68
+ jae SHORT G_M16251_IG66
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_M16251_IG64
+ jmp SHORT G_M16251_IG62
;; size=65 bbWeight=0.50 PerfScore 12.25
-G_M16251_IG63:
+G_M16251_IG61:
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_M16251_IG64:
+G_M16251_IG62:
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-0x88], 0xD1FFAB1E
- je SHORT G_M16251_IG65
+ je SHORT G_M16251_IG63
call CORINFO_HELP_FAIL_FAST
;; size=34 bbWeight=1 PerfScore 7.75
-G_M16251_IG65:
+G_M16251_IG63:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M16251_IG66:
+G_M16251_IG64:
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_M16251_IG67:
+G_M16251_IG65:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M16251_IG68:
+G_M16251_IG66:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1853, prolog size 59, PerfScore 415.83, instruction count 498, allocated bytes for code 1861 (MethodHash=3a13c084) for method System.Net.Http.Headers.ContentRangeHeaderValue:ToString():System.String:this (FullOpts)
+; Total bytes of code 1811, prolog size 59, PerfScore 409.96, instruction count 490, allocated bytes for code 1819 (MethodHash=3a13c084) for method System.Net.Http.Headers.ContentRangeHeaderValue:ToString():System.String:this (FullOpts)
-16 (-1.02 % of base) - System.Numerics.BigInteger:op_RightShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger
; Assembly listing for method System.Numerics.BigInteger:op_RightShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 14 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret ld-addr-op single-def <System.Numerics.BigInteger>
; V01 arg1 [V01,T10] ( 9, 6 ) int -> rbx single-def
; V02 loc0 [V02,T02] ( 9, 18 ) int -> r13
; V03 loc1 [V03,T15] ( 6, 6 ) int -> r12
; V04 loc2 [V04 ] ( 3, 1.50) struct (16) [rbp-0x38] do-not-enreg[XSR] multireg-ret must-init addr-exposed ld-addr-op <System.Numerics.BigInteger>
; V05 loc3 [V05,T18] ( 7, 3.50) ref -> [rbp-0x78] class-hnd <uint[]>
;* V06 loc4 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc5 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Span`1[uint]>
; V08 loc6 [V08,T16] ( 5, 6 ) ubyte -> r15
; V09 loc7 [V09,T29] ( 4, 2 ) ubyte -> [rbp-0x3C]
; V10 loc8 [V10,T19] ( 7, 3.50) ref -> [rbp-0x80] class-hnd <uint[]>
; V11 loc9 [V11,T21] ( 5, 2.50) int -> [rbp-0x40] spill-single-def
;* V12 loc10 [V12 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op <System.Span`1[uint]>
;* V13 loc11 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Span`1[uint]>
; V14 loc12 [V14,T51] ( 2, 1 ) int -> rdi
; V15 loc13 [V15,T13] ( 3, 6.50) int -> rdi
; V16 loc14 [V16,T14] ( 3, 6.50) int -> rsi
; V17 loc15 [V17,T52] ( 2, 1 ) int -> r10
-; V18 loc16 [V18,T04] ( 4, 12 ) int -> r11
+; V18 loc16 [V18,T05] ( 4, 12 ) int -> r11
;# V19 OutArgs [V19 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V20 tmp1 [V20 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[int,int]>
;* V21 tmp2 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <uint[]>
;* V22 tmp3 [V22 ] ( 0, 0 ) ref -> zero-ref single-def
; V23 tmp4 [V23,T22] ( 6, 3 ) int -> [rbp-0x44]
-; V24 tmp5 [V24,T30] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" <uint[]>
-; V25 tmp6 [V25,T31] ( 2, 2 ) ref -> rbx class-hnd single-def "dup spill" <uint[]>
+; V24 tmp5 [V24,T31] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" <uint[]>
+; V25 tmp6 [V25,T32] ( 2, 2 ) ref -> rbx class-hnd single-def "dup spill" <uint[]>
;* V26 tmp7 [V26 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[uint]>
; V27 tmp8 [V27,T24] ( 3, 3 ) int -> rdi "Span.get_Item index"
;* V28 tmp9 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
-; V29 tmp10 [V29,T40] ( 3, 1.50) int -> rdi
+; V29 tmp10 [V29,T41] ( 3, 1.50) int -> rdi
; V30 tmp11 [V30,T25] ( 3, 3 ) int -> rdi "Span.get_Item index"
;* V31 tmp12 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
;* V32 tmp13 [V32 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "Return value temp for multireg return" <System.Numerics.BigInteger>
-; V33 tmp14 [V33,T41] ( 3, 1.50) int -> r13 "Inline stloc first use temp"
-;* V34 tmp15 [V34 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
-;* V35 tmp16 [V35 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V36 tmp17 [V36,T36] ( 2, 2 ) long -> rdi "Inlining Arg"
-;* V37 tmp18 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
-;* V38 tmp19 [V38 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
-;* V39 tmp20 [V39 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V40 tmp21 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
-;* V41 tmp22 [V41 ] ( 0, 0 ) byref -> zero-ref
-;* V42 tmp23 [V42 ] ( 0, 0 ) byref -> zero-ref single-def
-; V43 tmp24 [V43,T53] ( 2, 1 ) int -> rdx
-;* V44 tmp25 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <uint[]>
-;* V45 tmp26 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
-;* V46 tmp27 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
-;* V47 tmp28 [V47 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[uint]>
-;* V48 tmp29 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
-;* V49 tmp30 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V33 tmp14 [V33,T26] ( 3, 3 ) int -> r13 "dup spill"
+; V34 tmp15 [V34,T53] ( 2, 1 ) int -> rdi "Inline stloc first use temp"
+;* V35 tmp16 [V35 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
+;* V36 tmp17 [V36 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V37 tmp18 [V37,T37] ( 2, 2 ) long -> rdi "Inlining Arg"
+;* V38 tmp19 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
+;* V39 tmp20 [V39 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
+;* V40 tmp21 [V40 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V41 tmp22 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
+;* V42 tmp23 [V42 ] ( 0, 0 ) byref -> zero-ref
+;* V43 tmp24 [V43 ] ( 0, 0 ) byref -> zero-ref single-def
+; V44 tmp25 [V44,T54] ( 2, 1 ) int -> rcx
+;* V45 tmp26 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <uint[]>
+;* V46 tmp27 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
+;* V47 tmp28 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
+;* V48 tmp29 [V48 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[uint]>
+;* V49 tmp30 [V49 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
;* V50 tmp31 [V50 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V51 tmp32 [V51 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V52 tmp33 [V52,T54] ( 2, 1 ) int -> rcx "Inline return value spill temp"
-; V53 tmp34 [V53,T26] ( 3, 3 ) int -> rcx "Inlining Arg"
-; V54 tmp35 [V54,T37] ( 2, 2 ) long -> rdi "Inlining Arg"
-;* V55 tmp36 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
+;* V51 tmp32 [V51 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V52 tmp33 [V52 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V53 tmp34 [V53,T55] ( 2, 1 ) int -> rcx "Inline return value spill temp"
+; V54 tmp35 [V54,T27] ( 3, 3 ) int -> rcx "Inlining Arg"
+; V55 tmp36 [V55,T38] ( 2, 2 ) long -> rdi "Inlining Arg"
;* V56 tmp37 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
-;* V57 tmp38 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V58 tmp39 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
-;* V59 tmp40 [V59 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
-;* V60 tmp41 [V60 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-;* V61 tmp42 [V61 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V62 tmp43 [V62,T11] ( 9, 5 ) ref -> r15 single-def "field V00._bits (fldOffset=0x0)" P-INDEP
-; V63 tmp44 [V63,T12] ( 8, 4.50) int -> r14 single-def "field V00._sign (fldOffset=0x8)" P-INDEP
-; V64 tmp45 [V64 ] ( 3, 1.50) ref -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V04._bits (fldOffset=0x0)" P-DEP
-; V65 tmp46 [V65 ] ( 3, 1.50) int -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V04._sign (fldOffset=0x8)" P-DEP
-; V66 tmp47 [V66,T09] ( 5, 9.50) byref -> [rbp-0x88] spill-single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-; V67 tmp48 [V67,T06] ( 9, 11.50) int -> [rbp-0x48] spill-single-def "field V07._length (fldOffset=0x8)" P-INDEP
-; V68 tmp49 [V68,T08] ( 8, 10.50) byref -> [rbp-0x90] spill-single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-; V69 tmp50 [V69,T07] ( 9, 11 ) int -> [rbp-0x4C] spill-single-def "field V12._length (fldOffset=0x8)" P-INDEP
-; V70 tmp51 [V70,T20] ( 6, 3 ) byref -> rdi "field V13._reference (fldOffset=0x0)" P-INDEP
-; V71 tmp52 [V71,T23] ( 6, 3 ) int -> rdx "field V13._length (fldOffset=0x8)" P-INDEP
-;* V72 tmp53 [V72 ] ( 0, 0 ) int -> zero-ref "field V20.Item1 (fldOffset=0x0)" P-INDEP
-;* V73 tmp54 [V73 ] ( 0, 0 ) int -> zero-ref "field V20.Item2 (fldOffset=0x4)" P-INDEP
-;* V74 tmp55 [V74 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
-;* V75 tmp56 [V75 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
-; V76 tmp57 [V76,T45] ( 2, 1 ) byref -> rdi single-def "field V28._reference (fldOffset=0x0)" P-INDEP
-;* V77 tmp58 [V77,T60] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
-; V78 tmp59 [V78,T46] ( 2, 1 ) byref -> rdi single-def "field V31._reference (fldOffset=0x0)" P-INDEP
-;* V79 tmp60 [V79,T61] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
-; V80 tmp61 [V80,T47] ( 2, 1 ) ref -> rdi "field V32._bits (fldOffset=0x0)" P-INDEP
-; V81 tmp62 [V81,T55] ( 2, 1 ) int -> rsi "field V32._sign (fldOffset=0x8)" P-INDEP
-;* V82 tmp63 [V82 ] ( 0, 0 ) int -> zero-ref "field V34.Item1 (fldOffset=0x0)" P-INDEP
-; V83 tmp64 [V83,T56] ( 2, 1 ) int -> r12 "field V34.Item2 (fldOffset=0x4)" P-INDEP
-; V84 tmp65 [V84,T38] ( 3, 1.50) byref -> rdi "field V37._reference (fldOffset=0x0)" P-INDEP
-; V85 tmp66 [V85,T42] ( 3, 1.50) int -> rdx "field V37._length (fldOffset=0x8)" P-INDEP
-; V86 tmp67 [V86,T28] ( 4, 2 ) byref -> rdi single-def "field V38._reference (fldOffset=0x0)" P-INDEP
-; V87 tmp68 [V87,T27] ( 5, 2.50) int -> [rbp-0x50] spill-single-def "field V38._length (fldOffset=0x8)" P-INDEP
-;* V88 tmp69 [V88 ] ( 0, 0 ) byref -> zero-ref single-def "field V40._reference (fldOffset=0x0)" P-INDEP
-;* V89 tmp70 [V89 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
-; V90 tmp71 [V90,T48] ( 2, 1 ) byref -> rsi "field V45._reference (fldOffset=0x0)" P-INDEP
-; V91 tmp72 [V91,T43] ( 3, 1.50) int -> rdx "field V45._length (fldOffset=0x8)" P-INDEP
-;* V92 tmp73 [V92 ] ( 0, 0 ) byref -> zero-ref single-def "field V46._reference (fldOffset=0x0)" P-INDEP
-;* V93 tmp74 [V93 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP
-;* V94 tmp75 [V94 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
-;* V95 tmp76 [V95 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
-;* V96 tmp77 [V96 ] ( 0, 0 ) byref -> zero-ref single-def "field V48._reference (fldOffset=0x0)" P-INDEP
-;* V97 tmp78 [V97 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
-; V98 tmp79 [V98,T39] ( 3, 1.50) byref -> rdi "field V55._reference (fldOffset=0x0)" P-INDEP
-; V99 tmp80 [V99,T44] ( 3, 1.50) int -> rdx "field V55._length (fldOffset=0x8)" P-INDEP
-; V100 tmp81 [V100,T49] ( 2, 1 ) byref -> rdx single-def "field V56._reference (fldOffset=0x0)" P-INDEP
-;* V101 tmp82 [V101,T62] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP
-;* V102 tmp83 [V102 ] ( 0, 0 ) byref -> zero-ref single-def "field V58._reference (fldOffset=0x0)" P-INDEP
-;* V103 tmp84 [V103 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP
-; V104 tmp85 [V104,T50] ( 2, 1 ) byref -> rsi single-def "field V59._reference (fldOffset=0x0)" P-INDEP
-; V105 tmp86 [V105,T57] ( 2, 1 ) int -> rdx "field V59._length (fldOffset=0x8)" P-INDEP
-; V106 tmp87 [V106,T32] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
+;* V57 tmp38 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
+;* V58 tmp39 [V58 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V59 tmp40 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
+;* V60 tmp41 [V60 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
+;* V61 tmp42 [V61 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V62 tmp43 [V62 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V63 tmp44 [V63,T11] ( 9, 5 ) ref -> r15 single-def "field V00._bits (fldOffset=0x0)" P-INDEP
+; V64 tmp45 [V64,T12] ( 8, 4.50) int -> r14 single-def "field V00._sign (fldOffset=0x8)" P-INDEP
+; V65 tmp46 [V65 ] ( 3, 1.50) ref -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V04._bits (fldOffset=0x0)" P-DEP
+; V66 tmp47 [V66 ] ( 3, 1.50) int -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V04._sign (fldOffset=0x8)" P-DEP
+; V67 tmp48 [V67,T09] ( 5, 9.50) byref -> [rbp-0x88] spill-single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+; V68 tmp49 [V68,T03] ( 10, 12 ) int -> [rbp-0x48] spill-single-def "field V07._length (fldOffset=0x8)" P-INDEP
+; V69 tmp50 [V69,T08] ( 8, 10.50) byref -> [rbp-0x90] spill-single-def "field V12._reference (fldOffset=0x0)" P-INDEP
+; V70 tmp51 [V70,T07] ( 9, 11 ) int -> [rbp-0x4C] spill-single-def "field V12._length (fldOffset=0x8)" P-INDEP
+; V71 tmp52 [V71,T20] ( 6, 3 ) byref -> rdi "field V13._reference (fldOffset=0x0)" P-INDEP
+; V72 tmp53 [V72,T23] ( 6, 3 ) int -> rdx "field V13._length (fldOffset=0x8)" P-INDEP
+;* V73 tmp54 [V73 ] ( 0, 0 ) int -> zero-ref "field V20.Item1 (fldOffset=0x0)" P-INDEP
+;* V74 tmp55 [V74 ] ( 0, 0 ) int -> zero-ref "field V20.Item2 (fldOffset=0x4)" P-INDEP
+;* V75 tmp56 [V75 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V76 tmp57 [V76 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
+; V77 tmp58 [V77,T45] ( 2, 1 ) byref -> rdi single-def "field V28._reference (fldOffset=0x0)" P-INDEP
+;* V78 tmp59 [V78,T61] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
+; V79 tmp60 [V79,T46] ( 2, 1 ) byref -> rdi single-def "field V31._reference (fldOffset=0x0)" P-INDEP
+;* V80 tmp61 [V80,T62] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
+; V81 tmp62 [V81,T47] ( 2, 1 ) ref -> rdi "field V32._bits (fldOffset=0x0)" P-INDEP
+; V82 tmp63 [V82,T56] ( 2, 1 ) int -> rsi "field V32._sign (fldOffset=0x8)" P-INDEP
+;* V83 tmp64 [V83 ] ( 0, 0 ) int -> zero-ref "field V35.Item1 (fldOffset=0x0)" P-INDEP
+; V84 tmp65 [V84,T57] ( 2, 1 ) int -> r12 "field V35.Item2 (fldOffset=0x4)" P-INDEP
+; V85 tmp66 [V85,T39] ( 3, 1.50) byref -> rdi "field V38._reference (fldOffset=0x0)" P-INDEP
+; V86 tmp67 [V86,T42] ( 3, 1.50) int -> rdx "field V38._length (fldOffset=0x8)" P-INDEP
+; V87 tmp68 [V87,T28] ( 4, 2 ) byref -> rdi single-def "field V39._reference (fldOffset=0x0)" P-INDEP
+; V88 tmp69 [V88,T30] ( 4, 2 ) int -> rcx "field V39._length (fldOffset=0x8)" P-INDEP
+;* V89 tmp70 [V89 ] ( 0, 0 ) byref -> zero-ref single-def "field V41._reference (fldOffset=0x0)" P-INDEP
+;* V90 tmp71 [V90 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
+; V91 tmp72 [V91,T48] ( 2, 1 ) byref -> rsi "field V46._reference (fldOffset=0x0)" P-INDEP
+; V92 tmp73 [V92,T43] ( 3, 1.50) int -> rdx "field V46._length (fldOffset=0x8)" P-INDEP
+;* V93 tmp74 [V93 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
+;* V94 tmp75 [V94 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
+;* V95 tmp76 [V95 ] ( 0, 0 ) byref -> zero-ref single-def "field V48._reference (fldOffset=0x0)" P-INDEP
+;* V96 tmp77 [V96 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
+;* V97 tmp78 [V97 ] ( 0, 0 ) byref -> zero-ref single-def "field V49._reference (fldOffset=0x0)" P-INDEP
+;* V98 tmp79 [V98 ] ( 0, 0 ) int -> zero-ref "field V49._length (fldOffset=0x8)" P-INDEP
+; V99 tmp80 [V99,T40] ( 3, 1.50) byref -> rdi "field V56._reference (fldOffset=0x0)" P-INDEP
+; V100 tmp81 [V100,T44] ( 3, 1.50) int -> rdx "field V56._length (fldOffset=0x8)" P-INDEP
+; V101 tmp82 [V101,T49] ( 2, 1 ) byref -> rdx single-def "field V57._reference (fldOffset=0x0)" P-INDEP
+;* V102 tmp83 [V102,T63] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
+;* V103 tmp84 [V103 ] ( 0, 0 ) byref -> zero-ref single-def "field V59._reference (fldOffset=0x0)" P-INDEP
+;* V104 tmp85 [V104 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
+; V105 tmp86 [V105,T50] ( 2, 1 ) byref -> rsi single-def "field V60._reference (fldOffset=0x0)" P-INDEP
+; V106 tmp87 [V106,T58] ( 2, 1 ) int -> rdx "field V60._length (fldOffset=0x8)" P-INDEP
; V107 tmp88 [V107,T33] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
; V108 tmp89 [V108,T34] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
; V109 tmp90 [V109,T35] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
-; V110 tmp91 [V110,T58] ( 2, 1 ) struct (16) [rbp-0x60] do-not-enreg[SR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.Numerics.BigInteger>
-; V111 tmp92 [V111,T59] ( 2, 1 ) struct (16) [rbp-0x70] do-not-enreg[SR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.Numerics.BigInteger>
-; V112 GsCookie [V112 ] ( 1, 1 ) long -> [rbp-0x98] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V113 cse0 [V113,T05] ( 3, 12 ) int -> rsi "CSE #06: aggressive"
-; V114 cse1 [V114,T03] ( 6, 12 ) int -> registers multi-def "CSE #07: aggressive"
-; V115 cse2 [V115,T17] ( 7, 5 ) int -> registers multi-def "CSE #05: moderate"
-; V116 rat0 [V116,T00] ( 10, 27 ) long -> r10 "Widened IV V17"
-; V117 rat1 [V117,T01] ( 8, 25 ) long -> rdi "Widened IV V14"
+; V110 tmp91 [V110,T36] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
+; V111 tmp92 [V111,T59] ( 2, 1 ) struct (16) [rbp-0x60] do-not-enreg[SR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.Numerics.BigInteger>
+; V112 tmp93 [V112,T60] ( 2, 1 ) struct (16) [rbp-0x70] do-not-enreg[SR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.Numerics.BigInteger>
+; V113 GsCookie [V113 ] ( 1, 1 ) long -> [rbp-0x98] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V114 cse0 [V114,T06] ( 3, 12 ) int -> rsi "CSE #06: aggressive"
+; V115 cse1 [V115,T04] ( 6, 12 ) int -> registers multi-def "CSE #07: aggressive"
+; V116 cse2 [V116,T17] ( 7, 5 ) int -> registers multi-def "CSE #05: moderate"
+; V117 rat0 [V117,T00] ( 10, 27 ) long -> r10 "Widened IV V17"
+; V118 rat1 [V118,T01] ( 8, 25 ) long -> rdi "Widened IV V14"
;
; Lcl frame size = 120
G_M60723_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 120
lea rbp, [rsp+0xA0]
vxorps xmm8, xmm8, xmm8
vmovdqu32 zmmword ptr [rbp-0x70], zmm8
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov qword ptr [rbp-0x98], 0xD1FFAB1E
mov r15, rdi
mov r14d, esi
mov ebx, edx
;; size=62 bbWeight=1 PerfScore 12.08
G_M60723_IG02:
test ebx, ebx
jne SHORT G_M60723_IG06
;; size=4 bbWeight=1 PerfScore 1.25
G_M60723_IG03:
mov rax, r15
mov rdx, r14
cmp qword ptr [rbp-0x98], 0xD1FFAB1E
je SHORT G_M60723_IG04
call CORINFO_HELP_FAIL_FAST
;; size=24 bbWeight=0.50 PerfScore 2.25
G_M60723_IG04:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M60723_IG05:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M60723_IG06:
cmp ebx, 0xD1FFAB1E
jne SHORT G_M60723_IG09
mov rdi, r15
mov esi, r14d
mov edx, 0xD1FFAB1E
mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger
call [rax]System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger
mov rdi, rax
mov esi, edx
mov edx, 1
mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger
call [rax]System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger
mov gword ptr [rbp-0x70], rax
mov qword ptr [rbp-0x68], rdx
mov rax, gword ptr [rbp-0x70]
mov rdx, qword ptr [rbp-0x68]
cmp qword ptr [rbp-0x98], 0xD1FFAB1E
je SHORT G_M60723_IG07
call CORINFO_HELP_FAIL_FAST
;; size=87 bbWeight=0.50 PerfScore 8.62
G_M60723_IG07:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M60723_IG08:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M60723_IG09:
test ebx, ebx
jge SHORT G_M60723_IG12
mov rdi, r15
mov esi, r14d
mov edx, ebx
neg edx
mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger
call [rax]System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger
mov gword ptr [rbp-0x60], rax
mov qword ptr [rbp-0x58], rdx
mov rax, gword ptr [rbp-0x60]
mov rdx, qword ptr [rbp-0x58]
cmp qword ptr [rbp-0x98], 0xD1FFAB1E
je SHORT G_M60723_IG10
call CORINFO_HELP_FAIL_FAST
;; size=60 bbWeight=0.50 PerfScore 6.75
G_M60723_IG10:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M60723_IG11:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M60723_IG12:
mov r13d, ebx
shr r13d, 5
mov edi, r13d
shl edi, 5
mov r12d, ebx
sub r12d, edi
xor rax, rax
test r15, r15
jne SHORT G_M60723_IG13
mov ecx, 1
jmp SHORT G_M60723_IG14
- align [7 bytes for IG33]
- ;; size=40 bbWeight=0.50 PerfScore 2.88
+ align [5 bytes for IG33]
+ ;; size=38 bbWeight=0.50 PerfScore 2.88
G_M60723_IG13:
mov ecx, dword ptr [r15+0x08]
;; size=4 bbWeight=0.50 PerfScore 1.00
G_M60723_IG14:
cmp ecx, 64
jg SHORT G_M60723_IG15
test dword ptr [rsp], esp
sub rsp, 256
lea rdi, [rsp]
mov edx, 64
jmp SHORT G_M60723_IG19
;; size=26 bbWeight=0.50 PerfScore 3.62
G_M60723_IG15:
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M60723_IG54
;; size=19 bbWeight=0.50 PerfScore 2.12
G_M60723_IG16:
mov rdi, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rdi, gword ptr [rdi]
mov dword ptr [rbp-0x44], ecx
mov esi, ecx
mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[uint]:Rent(int):uint[]:this
cmp dword ptr [rdi], edi
call [rax]System.Buffers.SharedArrayPool`1[uint]:Rent(int):uint[]:this
test rax, rax
jne SHORT G_M60723_IG17
xor rdi, rdi
xor edx, edx
jmp SHORT G_M60723_IG18
;; size=43 bbWeight=0.50 PerfScore 6.75
G_M60723_IG17:
lea rdi, bword ptr [rax+0x10]
mov gword ptr [rbp-0x78], rax
mov edx, dword ptr [rax+0x08]
mov rax, gword ptr [rbp-0x78]
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M60723_IG18:
mov ecx, dword ptr [rbp-0x44]
;; size=3 bbWeight=0.50 PerfScore 0.50
G_M60723_IG19:
cmp ecx, edx
ja G_M60723_IG59
- mov dword ptr [rbp-0x50], ecx
mov bword ptr [rbp-0x88], rdi
mov dword ptr [rbp-0x48], ecx
test r15, r15
jne SHORT G_M60723_IG20
mov r8, bword ptr [rbp-0x88]
- mov r9d, dword ptr [rbp-0x48]
test ecx, ecx
je G_M60723_IG60
- mov edx, r14d
- neg edx
+ mov ecx, r14d
+ neg ecx
test r14d, r14d
- cmovge edx, r14d
- mov dword ptr [rdi], edx
+ cmovge ecx, r14d
+ mov dword ptr [rdi], ecx
jmp SHORT G_M60723_IG21
- ;; size=61 bbWeight=0.50 PerfScore 6.38
+ ;; size=54 bbWeight=0.50 PerfScore 5.38
G_M60723_IG20:
mov r8, bword ptr [rbp-0x88]
- mov r9d, dword ptr [rbp-0x48]
lea rsi, bword ptr [r15+0x10]
mov edx, dword ptr [r15+0x08]
cmp edx, ecx
ja G_M60723_IG55
mov gword ptr [rbp-0x78], rax
shl rdx, 2
- mov r10, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
- call [r10]System.SpanHelpers:Memmove(byref,byref,ulong)
+ mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+ call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
mov rax, gword ptr [rbp-0x78]
- mov ecx, dword ptr [rbp-0x50]
mov r8, bword ptr [rbp-0x88]
- mov r9d, dword ptr [rbp-0x48]
- ;; size=66 bbWeight=0.50 PerfScore 7.25
+ ;; size=54 bbWeight=0.50 PerfScore 5.75
G_M60723_IG21:
mov r15d, r14d
shr r15d, 31
xor r14d, r14d
test r15d, r15d
je G_M60723_IG27
movsxd rdi, ebx
- movsxd rsi, ecx
+ mov r9d, dword ptr [rbp-0x48]
+ movsxd rsi, r9d
shl rsi, 5
cmp rdi, rsi
jl SHORT G_M60723_IG24
mov rdi, 0xD1FFAB1E ; box for System.Numerics.BigInteger:s_bnMinusOneInt
mov rdi, gword ptr [rdi]
- ;; size=47 bbWeight=0.50 PerfScore 3.38
+ ;; size=51 bbWeight=0.50 PerfScore 3.88
G_M60723_IG22:
vmovdqu xmm0, xmmword ptr [rdi+0x08]
vmovdqu xmmword ptr [rbp-0x38], xmm0
;; size=10 bbWeight=0.50 PerfScore 2.50
G_M60723_IG23:
jmp G_M60723_IG49
;; size=5 bbWeight=0.50 PerfScore 1.00
G_M60723_IG24:
mov gword ptr [rbp-0x78], rax
mov rdi, r8
mov esi, r9d
mov rcx, 0xD1FFAB1E ; code for System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])
call [rcx]System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])
test r12d, r12d
jne SHORT G_M60723_IG25
mov ebx, dword ptr [rbp-0x48]
lea edi, [rbx-0x01]
cmp edi, ebx
jae G_M60723_IG60
mov r14, bword ptr [rbp-0x88]
cmp dword ptr [r14+4*rdi], 0
sete dil
movzx rdi, dil
jmp SHORT G_M60723_IG26
;; size=63 bbWeight=0.50 PerfScore 8.00
G_M60723_IG25:
xor edi, edi
mov ebx, dword ptr [rbp-0x48]
;; size=5 bbWeight=0.50 PerfScore 0.62
G_M60723_IG26:
movzx rdi, dil
mov eax, edi
- mov r9d, ebx
mov r14d, eax
mov rax, gword ptr [rbp-0x78]
mov r8, bword ptr [rbp-0x88]
- ;; size=23 bbWeight=0.50 PerfScore 1.50
+ ;; size=20 bbWeight=0.50 PerfScore 1.38
G_M60723_IG27:
xor rbx, rbx
+ mov r9d, dword ptr [rbp-0x48]
mov ecx, r9d
sub ecx, r13d
xor edi, edi
test ecx, ecx
cmovl ecx, edi
mov dword ptr [rbp-0x3C], r14d
test r14d, r14d
setne dl
movzx rdx, dl
add ecx, edx
mov dword ptr [rbp-0x40], ecx
cmp ecx, 64
ja SHORT G_M60723_IG28
test dword ptr [rsp], esp
sub rsp, 256
lea rdi, [rsp]
mov edx, 64
jmp SHORT G_M60723_IG32
- ;; size=59 bbWeight=0.50 PerfScore 6.25
+ ;; size=63 bbWeight=0.50 PerfScore 6.75
G_M60723_IG28:
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
mov gword ptr [rbp-0x78], rax
je G_M60723_IG56
;; size=23 bbWeight=0.50 PerfScore 2.62
G_M60723_IG29:
mov rdi, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rdi, gword ptr [rdi]
mov esi, ecx
mov rdx, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[uint]:Rent(int):uint[]:this
cmp dword ptr [rdi], edi
call [rdx]System.Buffers.SharedArrayPool`1[uint]:Rent(int):uint[]:this
mov rbx, rax
test rbx, rbx
jne SHORT G_M60723_IG30
xor rdi, rdi
xor edx, edx
jmp SHORT G_M60723_IG31
;; size=43 bbWeight=0.50 PerfScore 6.38
G_M60723_IG30:
lea rdi, bword ptr [rbx+0x10]
mov gword ptr [rbp-0x80], rbx
mov edx, dword ptr [rbx+0x08]
mov rbx, gword ptr [rbp-0x80]
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M60723_IG31:
mov rax, gword ptr [rbp-0x78]
mov ecx, dword ptr [rbp-0x40]
mov r8, bword ptr [rbp-0x88]
;; size=14 bbWeight=0.50 PerfScore 1.50
G_M60723_IG32:
cmp ecx, edx
mov gword ptr [rbp-0x78], rax
ja G_M60723_IG59
mov rdx, rdi
mov bword ptr [rbp-0x90], rdx
mov edx, ecx
mov dword ptr [rbp-0x4C], edx
mov edi, edx
lea rsi, [4*rdi]
mov rdi, bword ptr [rbp-0x90]
mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:ClearWithoutReferences(byref,ulong)
call [rcx]System.SpanHelpers:ClearWithoutReferences(byref,ulong)
test r12d, r12d
jne SHORT G_M60723_IG36
mov r12d, dword ptr [rbp-0x48]
lea edi, [r12-0x01]
cmp edi, r13d
jl SHORT G_M60723_IG35
;; size=75 bbWeight=0.50 PerfScore 6.88
G_M60723_IG33:
mov esi, edi
sub esi, r13d
mov edx, dword ptr [rbp-0x4C]
cmp esi, edx
jae G_M60723_IG60
cmp edi, r12d
jae G_M60723_IG60
mov rax, bword ptr [rbp-0x88]
mov ecx, dword ptr [rax+4*rdi]
mov r8, bword ptr [rbp-0x90]
mov dword ptr [r8+4*rsi], ecx
dec edi
cmp edi, r13d
jl G_M60723_IG43
;; size=57 bbWeight=4 PerfScore 42.00
G_M60723_IG34:
jmp SHORT G_M60723_IG33
;; size=2 bbWeight=2 PerfScore 4.00
G_M60723_IG35:
mov edx, dword ptr [rbp-0x4C]
mov r8, bword ptr [rbp-0x90]
jmp G_M60723_IG43
align [0 bytes for IG37]
;; size=15 bbWeight=0.25 PerfScore 1.00
G_M60723_IG36:
mov edi, r12d
neg edi
add edi, 32
xor esi, esi
mov ecx, dword ptr [rbp-0x48]
lea r9d, [rcx-0x01]
mov r10d, r9d
cmp r10d, r13d
jl SHORT G_M60723_IG40
;; size=25 bbWeight=0.50 PerfScore 2.00
G_M60723_IG37:
cmp r10d, ecx
jae G_M60723_IG60
mov rax, bword ptr [rbp-0x88]
mov r11d, dword ptr [rax+4*r10]
test r15d, r15d
je SHORT G_M60723_IG39
;; size=25 bbWeight=4 PerfScore 22.00
G_M60723_IG38:
cmp r10d, r9d
mov gword ptr [rbp-0x80], rbx
jne SHORT G_M60723_IG41
mov esi, r10d
sub esi, r13d
mov edx, dword ptr [rbp-0x4C]
cmp esi, edx
jae G_M60723_IG60
shrx r14d, r11d, r12d
mov ebx, -1
shlx ebx, ebx, edi
or ebx, r14d
mov r8, bword ptr [rbp-0x90]
mov dword ptr [r8+4*rsi], ebx
jmp SHORT G_M60723_IG42
;; size=57 bbWeight=2 PerfScore 21.00
G_M60723_IG39:
mov gword ptr [rbp-0x80], rbx
jmp SHORT G_M60723_IG41
;; size=6 bbWeight=2 PerfScore 6.00
G_M60723_IG40:
mov edx, dword ptr [rbp-0x4C]
mov r8, bword ptr [rbp-0x90]
jmp SHORT G_M60723_IG43
;; size=12 bbWeight=0.25 PerfScore 1.00
G_M60723_IG41:
mov r14d, r10d
sub r14d, r13d
mov edx, dword ptr [rbp-0x4C]
cmp r14d, edx
jae G_M60723_IG60
shrx ebx, r11d, r12d
or esi, ebx
mov r8, bword ptr [rbp-0x90]
mov dword ptr [r8+4*r14], esi
;; size=36 bbWeight=2 PerfScore 11.00
G_M60723_IG42:
shlx esi, r11d, edi
dec r10d
cmp r10d, r13d
mov rbx, gword ptr [rbp-0x80]
jge SHORT G_M60723_IG47
;; size=17 bbWeight=4 PerfScore 12.00
G_M60723_IG43:
test r15d, r15d
je SHORT G_M60723_IG45
cmp dword ptr [rbp-0x3C], 0
je SHORT G_M60723_IG44
lea edi, [rdx-0x01]
cmp edi, edx
jae G_M60723_IG60
mov dword ptr [r8+4*rdi], -1
;; size=30 bbWeight=0.50 PerfScore 3.50
G_M60723_IG44:
mov rdi, r8
mov esi, edx
mov rax, 0xD1FFAB1E ; code for System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])
call [rax]System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])
mov edx, dword ptr [rbp-0x4C]
mov r8, bword ptr [rbp-0x90]
;; size=27 bbWeight=0.50 PerfScore 2.88
G_M60723_IG45:
mov rsi, r8
lea rdi, [rbp-0x38]
mov ecx, r15d
mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:.ctor(System.ReadOnlySpan`1[uint],ubyte):this
call [rax]System.Numerics.BigInteger:.ctor(System.ReadOnlySpan`1[uint],ubyte):this
test rbx, rbx
je SHORT G_M60723_IG46
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
jne SHORT G_M60723_IG48
jmp G_M60723_IG57
;; size=47 bbWeight=0.50 PerfScore 5.88
G_M60723_IG46:
mov rax, gword ptr [rbp-0x78]
jmp SHORT G_M60723_IG49
;; size=6 bbWeight=0.25 PerfScore 0.75
G_M60723_IG47:
jmp G_M60723_IG37
;; size=5 bbWeight=2 PerfScore 4.00
G_M60723_IG48:
mov rdi, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rdi, gword ptr [rdi]
mov rsi, rbx
xor edx, edx
mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[uint]:Return(uint[],ubyte):this
cmp dword ptr [rdi], edi
call [rax]System.Buffers.SharedArrayPool`1[uint]:Return(uint[],ubyte):this
mov rax, gword ptr [rbp-0x78]
;; size=36 bbWeight=0.50 PerfScore 5.00
G_M60723_IG49:
test rax, rax
je SHORT G_M60723_IG51
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M60723_IG58
;; size=24 bbWeight=0.50 PerfScore 2.75
G_M60723_IG50:
mov rdi, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rdi, gword ptr [rdi]
mov rsi, rax
xor edx, edx
mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[uint]:Return(uint[],ubyte):this
cmp dword ptr [rdi], edi
call [rax]System.Buffers.SharedArrayPool`1[uint]:Return(uint[],ubyte):this
;; size=32 bbWeight=0.50 PerfScore 4.50
G_M60723_IG51:
mov rax, gword ptr [rbp-0x38]
mov rdx, qword ptr [rbp-0x30]
cmp qword ptr [rbp-0x98], 0xD1FFAB1E
je SHORT G_M60723_IG52
call CORINFO_HELP_FAIL_FAST
;; size=26 bbWeight=0.50 PerfScore 3.00
G_M60723_IG52:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M60723_IG53:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M60723_IG54:
mov dword ptr [rbp-0x44], ecx
mov rdi, 0xD1FFAB1E ; System.Buffers.ArrayPool`1[uint]
call CORINFO_HELP_GET_GCSTATIC_BASE
mov ecx, dword ptr [rbp-0x44]
jmp G_M60723_IG16
;; size=26 bbWeight=0 PerfScore 0.00
G_M60723_IG55:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M60723_IG56:
mov rdi, 0xD1FFAB1E ; System.Buffers.ArrayPool`1[uint]
call CORINFO_HELP_GET_GCSTATIC_BASE
mov ecx, dword ptr [rbp-0x40]
jmp G_M60723_IG29
;; size=23 bbWeight=0 PerfScore 0.00
G_M60723_IG57:
mov rdi, 0xD1FFAB1E ; System.Buffers.ArrayPool`1[uint]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M60723_IG48
;; size=20 bbWeight=0 PerfScore 0.00
G_M60723_IG58:
mov gword ptr [rbp-0x78], rax
mov rdi, 0xD1FFAB1E ; System.Buffers.ArrayPool`1[uint]
call CORINFO_HELP_GET_GCSTATIC_BASE
mov rax, gword ptr [rbp-0x78]
jmp G_M60723_IG50
;; size=28 bbWeight=0 PerfScore 0.00
G_M60723_IG59:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M60723_IG60:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1574, prolog size 62, PerfScore 270.33, instruction count 409, allocated bytes for code 1574 (MethodHash=874c12cc) for method System.Numerics.BigInteger:op_RightShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger (FullOpts)
+; Total bytes of code 1558, prolog size 62, PerfScore 268.71, instruction count 405, allocated bytes for code 1558 (MethodHash=874c12cc) for method System.Numerics.BigInteger:op_RightShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger (FullOpts)
-15 (-0.53 % 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 AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 81 single block inlinees; 77 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T34] ( 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
+; V00 arg0 [V00,T37] ( 6, 4.50) struct (24) [rbp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.TimeZoneInfo+TransitionTime>
+; V01 arg1 [V01,T00] ( 91, 57.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,T100] ( 2, 2 ) int -> rdi
+; V05 tmp3 [V05,T103] ( 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,T57] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
+; V11 tmp9 [V11,T60] ( 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,T58] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
+; V13 tmp11 [V13,T61] ( 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,T59] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
+; V15 tmp13 [V15,T50] ( 3, 4 ) ushort -> rsi "Inlining Arg"
+; V16 tmp14 [V16,T62] ( 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 ] ( 0, 0 ) struct ( 8) zero-ref 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 ] ( 0, 0 ) byref -> zero-ref
; V21 tmp19 [V21 ] ( 2, 1.50) int -> [rbp-0x30] 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,T32] ( 3, 5 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Globalization.DateTimeFormatInfo>
+; V23 tmp21 [V23,T35] ( 3, 5 ) ref -> r13 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,T16] ( 4, 8 ) int -> r9 "Inlining Arg"
-; V26 tmp24 [V26,T29] ( 3, 6 ) byref -> r8 single-def "Inlining Arg"
+; V26 tmp24 [V26,T32] ( 3, 6 ) byref -> r8 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 -> rsi single-def "Inlining Arg"
-; V29 tmp27 [V29,T49] ( 2, 4 ) int -> rdx "Inlining Arg"
+; V28 tmp26 [V28,T51] ( 2, 4 ) byref -> rsi 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,T31] ( 5, 5 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
-; V38 tmp36 [V38,T79] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
-; V39 tmp37 [V39,T62] ( 3, 3 ) byref -> rsi single-def "Span.get_Item ptrToSpan"
-; V40 tmp38 [V40,T60] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
+; V37 tmp35 [V37,T34] ( 5, 5 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V38 tmp36 [V38,T82] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
+; V39 tmp37 [V39,T65] ( 3, 3 ) byref -> rsi single-def "Span.get_Item ptrToSpan"
+; V40 tmp38 [V40,T63] ( 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,T13] ( 9, 11 ) int -> r14 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 ] ( 0, 0 ) byref -> zero-ref
; V45 tmp43 [V45 ] ( 4, 2 ) int -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V46 tmp44 [V46 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ushort]>
-; V47 tmp45 [V47,T46] ( 3, 4 ) ref -> [rbp-0x98] class-hnd exact spill-single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V47 tmp45 [V47,T49] ( 3, 4 ) 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,T17] ( 4, 8 ) int -> rcx "Inlining Arg"
-; V50 tmp48 [V50,T30] ( 3, 6 ) byref -> rdi single-def "Inlining Arg"
+; V49 tmp47 [V49,T17] ( 4, 8 ) int -> rax "Inlining Arg"
+; V50 tmp48 [V50,T33] ( 3, 6 ) byref -> rdi single-def "Inlining Arg"
;* V51 tmp49 [V51 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V52 tmp50 [V52,T28] ( 4, 6 ) byref -> rsi single-def "Inlining Arg"
-; V53 tmp51 [V53,T33] ( 3, 5 ) int -> rdx "Inlining Arg"
+; V52 tmp50 [V52,T31] ( 4, 6 ) byref -> rdx single-def "Inlining Arg"
+; V53 tmp51 [V53,T36] ( 3, 5 ) int -> rcx "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,T93] ( 3, 2 ) ubyte -> r8 "Inline return value spill temp"
+; V56 tmp54 [V56,T96] ( 3, 2 ) ubyte -> r8 "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 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V59 tmp57 [V59 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V60 tmp58 [V60,T145] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V60 tmp58 [V60,T148] ( 2, 1 ) 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 multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V63 tmp61 [V63,T35] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
+; V63 tmp61 [V63,T38] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
;* V64 tmp62 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V65 tmp63 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V66 tmp64 [V66,T94] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
-; V67 tmp65 [V67,T101] ( 2, 2 ) int -> rcx "Inlining Arg"
-; V68 tmp66 [V68,T123] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
-; V69 tmp67 [V69,T88] ( 4, 2 ) int -> r8 "Inline stloc first use temp"
+; V66 tmp64 [V66,T97] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
+; V67 tmp65 [V67,T104] ( 2, 2 ) int -> rcx "Inlining Arg"
+; V68 tmp66 [V68,T126] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
+; V69 tmp67 [V69,T91] ( 4, 2 ) int -> r8 "Inline stloc first use temp"
;* V70 tmp68 [V70 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
; V71 tmp69 [V71 ] ( 3, 1.50) byref -> [rbp-0x40] must-init pinned "Inline stloc first use temp"
;* V72 tmp70 [V72 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[long]>
;* V73 tmp71 [V73 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V74 tmp72 [V74 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V75 tmp73 [V75 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
;* V76 tmp74 [V76 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V77 tmp75 [V77 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V78 tmp76 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V79 tmp77 [V79 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
; V80 tmp78 [V80,T01] ( 9, 37 ) int -> registers "Inlining Arg"
; V81 tmp79 [V81,T05] ( 8, 29 ) long -> r8 "Inlining Arg"
-; V82 tmp80 [V82,T102] ( 2, 2 ) long -> r8 "dup spill"
+; V82 tmp80 [V82,T105] ( 2, 2 ) long -> r8 "dup spill"
;* V83 tmp81 [V83 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
-; V84 tmp82 [V84,T09] ( 3, 12 ) int -> rdx "Inline stloc first use temp"
-;* V85 tmp83 [V85 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
-;* V86 tmp84 [V86 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V87 tmp85 [V87 ] ( 0, 0 ) long -> zero-ref
+; V84 tmp82 [V84,T09] ( 3, 24 ) int -> rdx "dup spill"
+; V85 tmp83 [V85,T22] ( 2, 8 ) int -> rcx "Inline stloc first use temp"
+;* V86 tmp84 [V86 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
+;* V87 tmp85 [V87 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V88 tmp86 [V88 ] ( 0, 0 ) long -> zero-ref
-; V89 tmp87 [V89,T18] ( 2, 8 ) ref -> rcx
-;* V90 tmp88 [V90 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V91 tmp89 [V91 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V92 tmp90 [V92 ] ( 0, 0 ) long -> zero-ref
+;* V89 tmp87 [V89 ] ( 0, 0 ) long -> zero-ref
+; V90 tmp88 [V90,T18] ( 2, 8 ) ref -> rcx
+;* V91 tmp89 [V91 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V92 tmp90 [V92 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V93 tmp91 [V93 ] ( 0, 0 ) long -> zero-ref
-; V94 tmp92 [V94,T146] ( 2, 1 ) ref -> rdx single-def
-;* V95 tmp93 [V95 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V96 tmp94 [V96 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V97 tmp95 [V97,T54] ( 6, 3 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
-;* V98 tmp96 [V98 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V99 tmp97 [V99 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V100 tmp98 [V100,T147] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-; V101 tmp99 [V101,T80] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
-; V102 tmp100 [V102,T63] ( 3, 3 ) byref -> rsi single-def "Span.get_Item ptrToSpan"
-; V103 tmp101 [V103,T61] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
-;* V104 tmp102 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V105 tmp103 [V105,T14] ( 9, 9 ) int -> r15 ld-addr-op "Inlining Arg"
-;* V106 tmp104 [V106 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-;* V107 tmp105 [V107 ] ( 0, 0 ) byref -> zero-ref
-; V108 tmp106 [V108 ] ( 4, 2 ) int -> [rbp-0x48] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;* V109 tmp107 [V109 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ushort]>
-; V110 tmp108 [V110,T64] ( 3, 3 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-;* V111 tmp109 [V111 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V112 tmp110 [V112,T42] ( 4, 4 ) int -> r14 "Inlining Arg"
-; V113 tmp111 [V113,T65] ( 3, 3 ) byref -> rax single-def "Inlining Arg"
-;* V114 tmp112 [V114 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V115 tmp113 [V115,T36] ( 4, 4 ) byref -> rax single-def "Inlining Arg"
-; V116 tmp114 [V116,T73] ( 3, 3 ) int -> rcx "Inlining Arg"
-;* V117 tmp115 [V117 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V118 tmp116 [V118 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V119 tmp117 [V119,T124] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
-;* V120 tmp118 [V120 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V121 tmp119 [V121 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V122 tmp120 [V122 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V123 tmp121 [V123,T148] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-;* V124 tmp122 [V124 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V125 tmp123 [V125 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V126 tmp124 [V126,T37] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
-;* V127 tmp125 [V127 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V128 tmp126 [V128 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V129 tmp127 [V129,T95] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
-; V130 tmp128 [V130,T103] ( 2, 2 ) int -> rcx "Inlining Arg"
-; V131 tmp129 [V131,T125] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
-; V132 tmp130 [V132,T89] ( 4, 2 ) int -> r8 "Inline stloc first use temp"
-;* V133 tmp131 [V133 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-; V134 tmp132 [V134 ] ( 3, 1.50) byref -> [rbp-0x50] must-init pinned "Inline stloc first use temp"
-;* V135 tmp133 [V135 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[long]>
-;* V136 tmp134 [V136 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-;* V137 tmp135 [V137 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V138 tmp136 [V138 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
-;* V139 tmp137 [V139 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V140 tmp138 [V140 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V141 tmp139 [V141 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V142 tmp140 [V142 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
-; V143 tmp141 [V143,T02] ( 9, 37 ) int -> registers "Inlining Arg"
-; V144 tmp142 [V144,T06] ( 8, 29 ) long -> r8 "Inlining Arg"
-; V145 tmp143 [V145,T104] ( 2, 2 ) long -> r8 "dup spill"
-;* V146 tmp144 [V146 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
-; V147 tmp145 [V147,T10] ( 3, 12 ) int -> rdx "Inline stloc first use temp"
-;* V148 tmp146 [V148 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
-;* V149 tmp147 [V149 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V150 tmp148 [V150 ] ( 0, 0 ) long -> zero-ref
-;* V151 tmp149 [V151 ] ( 0, 0 ) long -> zero-ref
-; V152 tmp150 [V152,T19] ( 2, 8 ) ref -> rcx
-;* V153 tmp151 [V153 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V154 tmp152 [V154 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V155 tmp153 [V155 ] ( 0, 0 ) long -> zero-ref
-;* V156 tmp154 [V156 ] ( 0, 0 ) long -> zero-ref
-; V157 tmp155 [V157,T149] ( 2, 1 ) ref -> rdx single-def
-;* V158 tmp156 [V158 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V159 tmp157 [V159 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V160 tmp158 [V160,T55] ( 6, 3 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
+;* V94 tmp92 [V94 ] ( 0, 0 ) long -> zero-ref
+; V95 tmp93 [V95,T149] ( 2, 1 ) ref -> rdx single-def
+;* V96 tmp94 [V96 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V97 tmp95 [V97 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V98 tmp96 [V98,T57] ( 6, 3 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
+;* V99 tmp97 [V99 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V100 tmp98 [V100 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V101 tmp99 [V101,T150] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V102 tmp100 [V102,T83] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
+; V103 tmp101 [V103,T66] ( 3, 3 ) byref -> rsi single-def "Span.get_Item ptrToSpan"
+; V104 tmp102 [V104,T64] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
+;* V105 tmp103 [V105 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
+; V106 tmp104 [V106,T14] ( 9, 9 ) int -> r15 ld-addr-op "Inlining Arg"
+;* V107 tmp105 [V107 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
+;* V108 tmp106 [V108 ] ( 0, 0 ) byref -> zero-ref
+; V109 tmp107 [V109 ] ( 4, 2 ) int -> [rbp-0x48] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;* V110 tmp108 [V110 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ushort]>
+; V111 tmp109 [V111,T67] ( 3, 3 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+;* V112 tmp110 [V112 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+; V113 tmp111 [V113,T45] ( 4, 4 ) int -> r12 "Inlining Arg"
+; V114 tmp112 [V114,T68] ( 3, 3 ) byref -> r14 single-def "Inlining Arg"
+;* V115 tmp113 [V115 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V116 tmp114 [V116,T39] ( 4, 4 ) byref -> r14 single-def "Inlining Arg"
+; V117 tmp115 [V117,T76] ( 3, 3 ) int -> rax "Inlining Arg"
+;* V118 tmp116 [V118 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V119 tmp117 [V119 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V120 tmp118 [V120,T127] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
+;* V121 tmp119 [V121 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V122 tmp120 [V122 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V123 tmp121 [V123 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+; V124 tmp122 [V124,T151] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+;* V125 tmp123 [V125 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V126 tmp124 [V126 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+; V127 tmp125 [V127,T40] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
+;* V128 tmp126 [V128 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V129 tmp127 [V129 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V130 tmp128 [V130,T98] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
+; V131 tmp129 [V131,T106] ( 2, 2 ) int -> rcx "Inlining Arg"
+; V132 tmp130 [V132,T128] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
+; V133 tmp131 [V133,T92] ( 4, 2 ) int -> r8 "Inline stloc first use temp"
+;* V134 tmp132 [V134 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+; V135 tmp133 [V135 ] ( 3, 1.50) byref -> [rbp-0x50] must-init pinned "Inline stloc first use temp"
+;* V136 tmp134 [V136 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[long]>
+;* V137 tmp135 [V137 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V138 tmp136 [V138 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V139 tmp137 [V139 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
+;* V140 tmp138 [V140 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V141 tmp139 [V141 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V142 tmp140 [V142 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V143 tmp141 [V143 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+; V144 tmp142 [V144,T02] ( 9, 37 ) int -> registers "Inlining Arg"
+; V145 tmp143 [V145,T06] ( 8, 29 ) long -> r8 "Inlining Arg"
+; V146 tmp144 [V146,T107] ( 2, 2 ) long -> r8 "dup spill"
+;* V147 tmp145 [V147 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
+; V148 tmp146 [V148,T10] ( 3, 24 ) int -> rdx "dup spill"
+; V149 tmp147 [V149,T23] ( 2, 8 ) int -> rcx "Inline stloc first use temp"
+;* V150 tmp148 [V150 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
+;* V151 tmp149 [V151 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V152 tmp150 [V152 ] ( 0, 0 ) long -> zero-ref
+;* V153 tmp151 [V153 ] ( 0, 0 ) long -> zero-ref
+; V154 tmp152 [V154,T19] ( 2, 8 ) ref -> rcx
+;* V155 tmp153 [V155 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V156 tmp154 [V156 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V157 tmp155 [V157 ] ( 0, 0 ) long -> zero-ref
+;* V158 tmp156 [V158 ] ( 0, 0 ) long -> zero-ref
+; V159 tmp157 [V159,T152] ( 2, 1 ) ref -> rdx single-def
+;* V160 tmp158 [V160 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V161 tmp159 [V161 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V162 tmp160 [V162 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V163 tmp161 [V163,T150] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-; V164 tmp162 [V164,T81] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
-; V165 tmp163 [V165,T66] ( 3, 3 ) byref -> rsi single-def "Span.get_Item ptrToSpan"
-; V166 tmp164 [V166,T90] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
-;* V167 tmp165 [V167 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V168 tmp166 [V168,T15] ( 9, 9 ) int -> r14 ld-addr-op "Inlining Arg"
-;* V169 tmp167 [V169 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-;* V170 tmp168 [V170 ] ( 0, 0 ) byref -> zero-ref
-; V171 tmp169 [V171 ] ( 4, 2 ) int -> [rbp-0x58] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;* V172 tmp170 [V172 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ushort]>
-; V173 tmp171 [V173,T67] ( 3, 3 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-;* V174 tmp172 [V174 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V175 tmp173 [V175,T43] ( 4, 4 ) int -> rax "Inlining Arg"
-; V176 tmp174 [V176,T68] ( 3, 3 ) byref -> rdi single-def "Inlining Arg"
-;* V177 tmp175 [V177 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V178 tmp176 [V178,T38] ( 4, 4 ) byref -> rdx single-def "Inlining Arg"
-; V179 tmp177 [V179,T74] ( 3, 3 ) int -> rcx "Inlining Arg"
-;* V180 tmp178 [V180 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V181 tmp179 [V181 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V182 tmp180 [V182,T126] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
-;* V183 tmp181 [V183 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V184 tmp182 [V184 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V185 tmp183 [V185 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V186 tmp184 [V186,T151] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-;* V187 tmp185 [V187 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V188 tmp186 [V188 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V189 tmp187 [V189,T39] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
-;* V190 tmp188 [V190 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V191 tmp189 [V191 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V192 tmp190 [V192,T96] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
-; V193 tmp191 [V193,T105] ( 2, 2 ) int -> rcx "Inlining Arg"
-; V194 tmp192 [V194,T127] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
-; V195 tmp193 [V195,T91] ( 4, 2 ) int -> r8 "Inline stloc first use temp"
-;* V196 tmp194 [V196 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-; V197 tmp195 [V197 ] ( 3, 1.50) byref -> [rbp-0x60] must-init pinned "Inline stloc first use temp"
-;* V198 tmp196 [V198 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[long]>
-;* V199 tmp197 [V199 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-;* V200 tmp198 [V200 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V201 tmp199 [V201 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
-;* V202 tmp200 [V202 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V203 tmp201 [V203 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V204 tmp202 [V204 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V205 tmp203 [V205 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
-; V206 tmp204 [V206,T03] ( 9, 37 ) int -> registers "Inlining Arg"
-; V207 tmp205 [V207,T07] ( 8, 29 ) long -> r8 "Inlining Arg"
-; V208 tmp206 [V208,T106] ( 2, 2 ) long -> r8 "dup spill"
-;* V209 tmp207 [V209 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
-; V210 tmp208 [V210,T11] ( 3, 12 ) int -> rdx "Inline stloc first use temp"
-;* V211 tmp209 [V211 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
-;* V212 tmp210 [V212 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V213 tmp211 [V213 ] ( 0, 0 ) long -> zero-ref
-;* V214 tmp212 [V214 ] ( 0, 0 ) long -> zero-ref
-; V215 tmp213 [V215,T20] ( 2, 8 ) ref -> rcx
-;* V216 tmp214 [V216 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V217 tmp215 [V217 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V218 tmp216 [V218 ] ( 0, 0 ) long -> zero-ref
-;* V219 tmp217 [V219 ] ( 0, 0 ) long -> zero-ref
-; V220 tmp218 [V220,T152] ( 2, 1 ) ref -> rdx single-def
-;* V221 tmp219 [V221 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V222 tmp220 [V222 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V223 tmp221 [V223,T50] ( 7, 3.50) ref -> rax class-hnd "Inline return value spill temp" <System.String>
-;* V224 tmp222 [V224 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V225 tmp223 [V225 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V226 tmp224 [V226,T153] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-; V227 tmp225 [V227,T82] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
-; V228 tmp226 [V228,T69] ( 3, 3 ) byref -> rsi single-def "Span.get_Item ptrToSpan"
-; V229 tmp227 [V229,T83] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
-;* V230 tmp228 [V230 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V231 tmp229 [V231 ] ( 3, 3 ) int -> [rbp-0x64] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-;* V232 tmp230 [V232 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-;* V233 tmp231 [V233,T177] ( 0, 0 ) byref -> zero-ref single-def
-; V234 tmp232 [V234 ] ( 4, 2 ) int -> [rbp-0x70] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;* V235 tmp233 [V235 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ushort]>
-; V236 tmp234 [V236,T70] ( 3, 3 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-;* V237 tmp235 [V237 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V238 tmp236 [V238,T44] ( 4, 4 ) int -> rax "Inlining Arg"
-; V239 tmp237 [V239,T71] ( 3, 3 ) byref -> rdi single-def "Inlining Arg"
-;* V240 tmp238 [V240 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V241 tmp239 [V241,T40] ( 4, 4 ) byref -> r14 single-def "Inlining Arg"
-; V242 tmp240 [V242,T75] ( 3, 3 ) int -> rcx "Inlining Arg"
-;* V243 tmp241 [V243 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V244 tmp242 [V244 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V245 tmp243 [V245,T128] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
-;* V246 tmp244 [V246 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V247 tmp245 [V247,T27] ( 6, 6 ) int -> [rbp-0x74] spill-single-def "Inlining Arg"
-;* V248 tmp246 [V248 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V249 tmp247 [V249,T154] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-;* V250 tmp248 [V250 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V251 tmp249 [V251 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V252 tmp250 [V252,T41] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
-;* V253 tmp251 [V253 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V254 tmp252 [V254 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V255 tmp253 [V255,T97] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
-; V256 tmp254 [V256,T107] ( 2, 2 ) int -> rcx "Inlining Arg"
-; V257 tmp255 [V257,T129] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
-; V258 tmp256 [V258,T92] ( 4, 2 ) int -> r8 "Inline stloc first use temp"
-;* V259 tmp257 [V259 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-; V260 tmp258 [V260 ] ( 3, 1.50) byref -> [rbp-0x80] must-init pinned "Inline stloc first use temp"
-;* V261 tmp259 [V261 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[long]>
-;* V262 tmp260 [V262 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-;* V263 tmp261 [V263 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V264 tmp262 [V264 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
-;* V265 tmp263 [V265 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V266 tmp264 [V266 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V267 tmp265 [V267 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V268 tmp266 [V268 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
-; V269 tmp267 [V269,T04] ( 9, 37 ) int -> registers "Inlining Arg"
-; V270 tmp268 [V270,T08] ( 8, 29 ) long -> r8 "Inlining Arg"
-; V271 tmp269 [V271,T108] ( 2, 2 ) long -> r8 "dup spill"
-;* V272 tmp270 [V272 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
-; V273 tmp271 [V273,T12] ( 3, 12 ) int -> r9 "Inline stloc first use temp"
-;* V274 tmp272 [V274 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
-;* V275 tmp273 [V275 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V276 tmp274 [V276 ] ( 0, 0 ) long -> zero-ref
-;* V277 tmp275 [V277 ] ( 0, 0 ) long -> zero-ref
-; V278 tmp276 [V278,T21] ( 2, 8 ) ref -> rcx
+; V162 tmp160 [V162,T58] ( 6, 3 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
+;* V163 tmp161 [V163 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V164 tmp162 [V164 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V165 tmp163 [V165,T153] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V166 tmp164 [V166,T84] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
+; V167 tmp165 [V167,T69] ( 3, 3 ) byref -> rsi single-def "Span.get_Item ptrToSpan"
+; V168 tmp166 [V168,T93] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
+;* V169 tmp167 [V169 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
+; V170 tmp168 [V170,T15] ( 9, 9 ) int -> r14 ld-addr-op "Inlining Arg"
+;* V171 tmp169 [V171 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
+;* V172 tmp170 [V172 ] ( 0, 0 ) byref -> zero-ref
+; V173 tmp171 [V173 ] ( 4, 2 ) int -> [rbp-0x58] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;* V174 tmp172 [V174 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ushort]>
+; V175 tmp173 [V175,T70] ( 3, 3 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+;* V176 tmp174 [V176 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+; V177 tmp175 [V177,T46] ( 4, 4 ) int -> rcx "Inlining Arg"
+; V178 tmp176 [V178,T71] ( 3, 3 ) byref -> rdi single-def "Inlining Arg"
+;* V179 tmp177 [V179 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V180 tmp178 [V180,T41] ( 4, 4 ) byref -> r15 single-def "Inlining Arg"
+; V181 tmp179 [V181,T77] ( 3, 3 ) int -> rax "Inlining Arg"
+;* V182 tmp180 [V182 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V183 tmp181 [V183 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V184 tmp182 [V184,T129] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
+;* V185 tmp183 [V185 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V186 tmp184 [V186 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V187 tmp185 [V187 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+; V188 tmp186 [V188,T154] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+;* V189 tmp187 [V189 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V190 tmp188 [V190 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+; V191 tmp189 [V191,T42] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
+;* V192 tmp190 [V192 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V193 tmp191 [V193 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V194 tmp192 [V194,T99] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
+; V195 tmp193 [V195,T108] ( 2, 2 ) int -> rcx "Inlining Arg"
+; V196 tmp194 [V196,T130] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
+; V197 tmp195 [V197,T94] ( 4, 2 ) int -> r8 "Inline stloc first use temp"
+;* V198 tmp196 [V198 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+; V199 tmp197 [V199 ] ( 3, 1.50) byref -> [rbp-0x60] must-init pinned "Inline stloc first use temp"
+;* V200 tmp198 [V200 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[long]>
+;* V201 tmp199 [V201 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V202 tmp200 [V202 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V203 tmp201 [V203 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
+;* V204 tmp202 [V204 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V205 tmp203 [V205 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V206 tmp204 [V206 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V207 tmp205 [V207 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+; V208 tmp206 [V208,T03] ( 9, 37 ) int -> registers "Inlining Arg"
+; V209 tmp207 [V209,T07] ( 8, 29 ) long -> r8 "Inlining Arg"
+; V210 tmp208 [V210,T109] ( 2, 2 ) long -> r8 "dup spill"
+;* V211 tmp209 [V211 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
+; V212 tmp210 [V212,T11] ( 3, 24 ) int -> rdx "dup spill"
+; V213 tmp211 [V213,T24] ( 2, 8 ) int -> rcx "Inline stloc first use temp"
+;* V214 tmp212 [V214 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
+;* V215 tmp213 [V215 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V216 tmp214 [V216 ] ( 0, 0 ) long -> zero-ref
+;* V217 tmp215 [V217 ] ( 0, 0 ) long -> zero-ref
+; V218 tmp216 [V218,T20] ( 2, 8 ) ref -> rcx
+;* V219 tmp217 [V219 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V220 tmp218 [V220 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V221 tmp219 [V221 ] ( 0, 0 ) long -> zero-ref
+;* V222 tmp220 [V222 ] ( 0, 0 ) long -> zero-ref
+; V223 tmp221 [V223,T155] ( 2, 1 ) ref -> rdx single-def
+;* V224 tmp222 [V224 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V225 tmp223 [V225 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V226 tmp224 [V226,T53] ( 7, 3.50) ref -> rax class-hnd "Inline return value spill temp" <System.String>
+;* V227 tmp225 [V227 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V228 tmp226 [V228 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V229 tmp227 [V229,T156] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V230 tmp228 [V230,T85] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
+; V231 tmp229 [V231,T72] ( 3, 3 ) byref -> rsi single-def "Span.get_Item ptrToSpan"
+; V232 tmp230 [V232,T86] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
+;* V233 tmp231 [V233 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
+; V234 tmp232 [V234 ] ( 3, 3 ) int -> [rbp-0x64] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V235 tmp233 [V235 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
+;* V236 tmp234 [V236,T180] ( 0, 0 ) byref -> zero-ref single-def
+; V237 tmp235 [V237 ] ( 4, 2 ) int -> [rbp-0x70] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;* V238 tmp236 [V238 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ushort]>
+; V239 tmp237 [V239,T73] ( 3, 3 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+;* V240 tmp238 [V240 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+; V241 tmp239 [V241,T47] ( 4, 4 ) int -> rax "Inlining Arg"
+; V242 tmp240 [V242,T74] ( 3, 3 ) byref -> rdi single-def "Inlining Arg"
+;* V243 tmp241 [V243 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V244 tmp242 [V244,T43] ( 4, 4 ) byref -> r14 single-def "Inlining Arg"
+; V245 tmp243 [V245,T78] ( 3, 3 ) int -> rcx "Inlining Arg"
+;* V246 tmp244 [V246 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V247 tmp245 [V247 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V248 tmp246 [V248,T131] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
+;* V249 tmp247 [V249 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+; V250 tmp248 [V250,T30] ( 6, 6 ) int -> [rbp-0x74] spill-single-def "Inlining Arg"
+;* V251 tmp249 [V251 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+; V252 tmp250 [V252,T157] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+;* V253 tmp251 [V253 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V254 tmp252 [V254 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+; V255 tmp253 [V255,T44] ( 4, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
+;* V256 tmp254 [V256 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V257 tmp255 [V257 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V258 tmp256 [V258,T100] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
+; V259 tmp257 [V259,T110] ( 2, 2 ) int -> rcx "Inlining Arg"
+; V260 tmp258 [V260,T132] ( 3, 1.50) ubyte -> r8 "Inline return value spill temp"
+; V261 tmp259 [V261,T95] ( 4, 2 ) int -> r8 "Inline stloc first use temp"
+;* V262 tmp260 [V262 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+; V263 tmp261 [V263 ] ( 3, 1.50) byref -> [rbp-0x80] must-init pinned "Inline stloc first use temp"
+;* V264 tmp262 [V264 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[long]>
+;* V265 tmp263 [V265 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V266 tmp264 [V266 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V267 tmp265 [V267 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
+;* V268 tmp266 [V268 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V269 tmp267 [V269 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V270 tmp268 [V270 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V271 tmp269 [V271 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+; V272 tmp270 [V272,T04] ( 9, 37 ) int -> registers "Inlining Arg"
+; V273 tmp271 [V273,T08] ( 8, 29 ) long -> r8 "Inlining Arg"
+; V274 tmp272 [V274,T111] ( 2, 2 ) long -> r8 "dup spill"
+;* V275 tmp273 [V275 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
+; V276 tmp274 [V276,T12] ( 3, 24 ) int -> r9 "dup spill"
+; V277 tmp275 [V277,T25] ( 2, 8 ) int -> rdx "Inline stloc first use temp"
+;* V278 tmp276 [V278 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
;* V279 tmp277 [V279 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V280 tmp278 [V280 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V280 tmp278 [V280 ] ( 0, 0 ) long -> zero-ref
;* V281 tmp279 [V281 ] ( 0, 0 ) long -> zero-ref
-;* V282 tmp280 [V282 ] ( 0, 0 ) long -> zero-ref
-; V283 tmp281 [V283,T155] ( 2, 1 ) ref -> r9 single-def
+; V282 tmp280 [V282,T21] ( 2, 8 ) ref -> rdx
+;* V283 tmp281 [V283 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V284 tmp282 [V284 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V285 tmp283 [V285 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V286 tmp284 [V286,T51] ( 7, 3.50) ref -> rax class-hnd "Inline return value spill temp" <System.String>
-; V287 tmp285 [V287,T45] ( 4, 4 ) int -> r14 "Inlining Arg"
-;* V288 tmp286 [V288 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V289 tmp287 [V289,T156] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-; V290 tmp288 [V290,T84] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
-; V291 tmp289 [V291,T72] ( 3, 3 ) byref -> r12 single-def "Span.get_Item ptrToSpan"
-; V292 tmp290 [V292,T85] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
-;* V293 tmp291 [V293 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V294 tmp292 [V294,T53] ( 5, 3.50) int -> rdi "Inline stloc first use temp"
-;* V295 tmp293 [V295 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-;* V296 tmp294 [V296 ] ( 0, 0 ) long -> zero-ref "field V06._dateData (fldOffset=0x0)" P-INDEP
-; V297 tmp295 [V297,T137] ( 2, 1.50) byref -> rsi single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-; V298 tmp296 [V298,T109] ( 2, 2 ) int -> rax "field V12._length (fldOffset=0x8)" P-INDEP
-; V299 tmp297 [V299,T138] ( 2, 1.50) byref -> rax single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-; V300 tmp298 [V300,T110] ( 2, 2 ) int -> rcx "field V14._length (fldOffset=0x8)" P-INDEP
-; V301 tmp299 [V301,T139] ( 2, 1.50) byref -> rsi single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-; V302 tmp300 [V302,T111] ( 2, 2 ) int -> rax "field V17._length (fldOffset=0x8)" P-INDEP
-; V303 tmp301 [V303,T86] ( 3, 2.50) long -> r14 "field V18._dateData (fldOffset=0x0)" P-INDEP
-;* V304 tmp302 [V304 ] ( 0, 0 ) long -> zero-ref "field V19._dateData (fldOffset=0x0)" P-INDEP
-;* V305 tmp303 [V305 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
-;* V306 tmp304 [V306 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
-;* V307 tmp305 [V307 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP
-;* V308 tmp306 [V308 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
-; V309 tmp307 [V309,T98] ( 2, 2 ) byref -> rsi single-def "field V27._reference (fldOffset=0x0)" P-INDEP
-; V310 tmp308 [V310,T112] ( 2, 2 ) int -> rdx "field V27._length (fldOffset=0x8)" P-INDEP
-;* V311 tmp309 [V311 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
-;* V312 tmp310 [V312 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
-; V313 tmp311 [V313,T99] ( 2, 2 ) byref -> r8 single-def "field V31._reference (fldOffset=0x0)" P-INDEP
-;* V314 tmp312 [V314,T175] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
-;* V315 tmp313 [V315 ] ( 0, 0 ) long -> zero-ref "field V33._dateData (fldOffset=0x0)" P-INDEP
-;* V316 tmp314 [V316,T176] ( 0, 0 ) long -> zero-ref "field V34._ticks (fldOffset=0x0)" P-INDEP
-;* V317 tmp315 [V317 ] ( 0, 0 ) long -> zero-ref "field V35._dateData (fldOffset=0x0)" P-INDEP
-;* V318 tmp316 [V318,T178] ( 0, 0 ) long -> zero-ref "field V36._ticks (fldOffset=0x0)" P-INDEP
-; V319 tmp317 [V319,T140] ( 2, 1.50) byref -> rsi single-def "field V41._reference (fldOffset=0x0)" P-INDEP
-; V320 tmp318 [V320,T113] ( 2, 2 ) int -> rax "field V41._length (fldOffset=0x8)" P-INDEP
-;* V321 tmp319 [V321 ] ( 0, 0 ) byref -> zero-ref single-def "field V46._reference (fldOffset=0x0)" P-INDEP
-;* V322 tmp320 [V322 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP
-;* V323 tmp321 [V323 ] ( 0, 0 ) byref -> zero-ref single-def "field V48._reference (fldOffset=0x0)" P-INDEP
-;* V324 tmp322 [V324 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
-; V325 tmp323 [V325,T141] ( 2, 1.50) byref -> [rbp-0xA0] spill-single-def "field V51._reference (fldOffset=0x0)" P-INDEP
-; V326 tmp324 [V326,T144] ( 2, 1.50) int -> [rbp-0x84] spill-single-def "field V51._length (fldOffset=0x8)" P-INDEP
-;* V327 tmp325 [V327 ] ( 0, 0 ) byref -> zero-ref "field V54._reference (fldOffset=0x0)" P-INDEP
-;* V328 tmp326 [V328 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
-;* V329 tmp327 [V329 ] ( 0, 0 ) byref -> zero-ref single-def "field V55._reference (fldOffset=0x0)" P-INDEP
-;* V330 tmp328 [V330 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
-;* V331 tmp329 [V331 ] ( 0, 0 ) byref -> zero-ref single-def "field V57._reference (fldOffset=0x0)" P-INDEP
-;* V332 tmp330 [V332 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
-;* V333 tmp331 [V333 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
-;* V334 tmp332 [V334 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
-;* V335 tmp333 [V335 ] ( 0, 0 ) byref -> zero-ref "field V61._reference (fldOffset=0x0)" P-INDEP
-;* V336 tmp334 [V336 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
-; V337 tmp335 [V337,T119] ( 3, 1.50) byref -> rdx "field V62._reference (fldOffset=0x0)" P-INDEP
-; V338 tmp336 [V338,T130] ( 3, 1.50) int -> rcx "field V62._length (fldOffset=0x8)" P-INDEP
-; V339 tmp337 [V339,T157] ( 2, 1 ) byref -> rdx single-def "field V64._reference (fldOffset=0x0)" P-INDEP
-; V340 tmp338 [V340,T167] ( 2, 1 ) int -> rcx "field V64._length (fldOffset=0x8)" P-INDEP
-;* V341 tmp339 [V341 ] ( 0, 0 ) byref -> zero-ref single-def "field V65._reference (fldOffset=0x0)" P-INDEP
-;* V342 tmp340 [V342 ] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP
-;* V343 tmp341 [V343 ] ( 0, 0 ) byref -> zero-ref single-def "field V70._reference (fldOffset=0x0)" P-INDEP
-;* V344 tmp342 [V344 ] ( 0, 0 ) int -> zero-ref "field V70._length (fldOffset=0x8)" P-INDEP
-;* V345 tmp343 [V345 ] ( 0, 0 ) byref -> zero-ref single-def "field V72._reference (fldOffset=0x0)" P-INDEP
-;* V346 tmp344 [V346 ] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-INDEP
-;* V347 tmp345 [V347 ] ( 0, 0 ) byref -> zero-ref single-def "field V75._reference (fldOffset=0x0)" P-INDEP
-;* V348 tmp346 [V348 ] ( 0, 0 ) int -> zero-ref "field V75._length (fldOffset=0x8)" P-INDEP
-;* V349 tmp347 [V349 ] ( 0, 0 ) byref -> zero-ref single-def "field V78._reference (fldOffset=0x0)" P-INDEP
-;* V350 tmp348 [V350 ] ( 0, 0 ) int -> zero-ref "field V78._length (fldOffset=0x8)" P-INDEP
-;* V351 tmp349 [V351 ] ( 0, 0 ) int -> zero-ref "field V83.Item1 (fldOffset=0x0)" P-INDEP
-;* V352 tmp350 [V352 ] ( 0, 0 ) int -> zero-ref "field V83.Item2 (fldOffset=0x4)" P-INDEP
-;* V353 tmp351 [V353 ] ( 0, 0 ) int -> zero-ref "field V85.Item1 (fldOffset=0x0)" P-INDEP
-; V354 tmp352 [V354,T22] ( 2, 8 ) int -> r9 "field V85.Item2 (fldOffset=0x4)" P-INDEP
-; V355 tmp353 [V355,T142] ( 2, 1.50) byref -> rsi single-def "field V104._reference (fldOffset=0x0)" P-INDEP
-; V356 tmp354 [V356,T114] ( 2, 2 ) int -> rax "field V104._length (fldOffset=0x8)" P-INDEP
-;* V357 tmp355 [V357 ] ( 0, 0 ) byref -> zero-ref single-def "field V109._reference (fldOffset=0x0)" P-INDEP
-;* V358 tmp356 [V358 ] ( 0, 0 ) int -> zero-ref "field V109._length (fldOffset=0x8)" P-INDEP
-;* V359 tmp357 [V359 ] ( 0, 0 ) byref -> zero-ref single-def "field V111._reference (fldOffset=0x0)" P-INDEP
-;* V360 tmp358 [V360 ] ( 0, 0 ) int -> zero-ref "field V111._length (fldOffset=0x8)" P-INDEP
-; V361 tmp359 [V361,T158] ( 2, 1 ) byref -> r14 single-def "field V114._reference (fldOffset=0x0)" P-INDEP
-; V362 tmp360 [V362,T168] ( 2, 1 ) int -> [rbp-0x88] spill-single-def "field V114._length (fldOffset=0x8)" P-INDEP
-;* V363 tmp361 [V363 ] ( 0, 0 ) byref -> zero-ref "field V117._reference (fldOffset=0x0)" P-INDEP
-;* V364 tmp362 [V364 ] ( 0, 0 ) int -> zero-ref "field V117._length (fldOffset=0x8)" P-INDEP
-;* V365 tmp363 [V365 ] ( 0, 0 ) byref -> zero-ref single-def "field V118._reference (fldOffset=0x0)" P-INDEP
-;* V366 tmp364 [V366 ] ( 0, 0 ) int -> zero-ref "field V118._length (fldOffset=0x8)" P-INDEP
-;* V367 tmp365 [V367 ] ( 0, 0 ) byref -> zero-ref single-def "field V120._reference (fldOffset=0x0)" P-INDEP
-;* V368 tmp366 [V368 ] ( 0, 0 ) int -> zero-ref "field V120._length (fldOffset=0x8)" P-INDEP
-;* V369 tmp367 [V369 ] ( 0, 0 ) byref -> zero-ref "field V122._reference (fldOffset=0x0)" P-INDEP
-;* V370 tmp368 [V370 ] ( 0, 0 ) int -> zero-ref "field V122._length (fldOffset=0x8)" P-INDEP
-;* V371 tmp369 [V371 ] ( 0, 0 ) byref -> zero-ref "field V124._reference (fldOffset=0x0)" P-INDEP
-;* V372 tmp370 [V372 ] ( 0, 0 ) int -> zero-ref "field V124._length (fldOffset=0x8)" P-INDEP
-; V373 tmp371 [V373,T120] ( 3, 1.50) byref -> rdx "field V125._reference (fldOffset=0x0)" P-INDEP
-; V374 tmp372 [V374,T131] ( 3, 1.50) int -> rcx "field V125._length (fldOffset=0x8)" P-INDEP
-; V375 tmp373 [V375,T159] ( 2, 1 ) byref -> rdx single-def "field V127._reference (fldOffset=0x0)" P-INDEP
-; V376 tmp374 [V376,T169] ( 2, 1 ) int -> rcx "field V127._length (fldOffset=0x8)" P-INDEP
-;* V377 tmp375 [V377 ] ( 0, 0 ) byref -> zero-ref single-def "field V128._reference (fldOffset=0x0)" P-INDEP
-;* V378 tmp376 [V378 ] ( 0, 0 ) int -> zero-ref "field V128._length (fldOffset=0x8)" P-INDEP
-;* V379 tmp377 [V379 ] ( 0, 0 ) byref -> zero-ref single-def "field V133._reference (fldOffset=0x0)" P-INDEP
-;* V380 tmp378 [V380 ] ( 0, 0 ) int -> zero-ref "field V133._length (fldOffset=0x8)" P-INDEP
-;* V381 tmp379 [V381 ] ( 0, 0 ) byref -> zero-ref single-def "field V135._reference (fldOffset=0x0)" P-INDEP
-;* V382 tmp380 [V382 ] ( 0, 0 ) int -> zero-ref "field V135._length (fldOffset=0x8)" P-INDEP
-;* V383 tmp381 [V383 ] ( 0, 0 ) byref -> zero-ref single-def "field V138._reference (fldOffset=0x0)" P-INDEP
-;* V384 tmp382 [V384 ] ( 0, 0 ) int -> zero-ref "field V138._length (fldOffset=0x8)" P-INDEP
-;* V385 tmp383 [V385 ] ( 0, 0 ) byref -> zero-ref single-def "field V141._reference (fldOffset=0x0)" P-INDEP
-;* V386 tmp384 [V386 ] ( 0, 0 ) int -> zero-ref "field V141._length (fldOffset=0x8)" P-INDEP
-;* V387 tmp385 [V387 ] ( 0, 0 ) int -> zero-ref "field V146.Item1 (fldOffset=0x0)" P-INDEP
-;* V388 tmp386 [V388 ] ( 0, 0 ) int -> zero-ref "field V146.Item2 (fldOffset=0x4)" P-INDEP
-;* V389 tmp387 [V389 ] ( 0, 0 ) int -> zero-ref "field V148.Item1 (fldOffset=0x0)" P-INDEP
-; V390 tmp388 [V390,T23] ( 2, 8 ) int -> r9 "field V148.Item2 (fldOffset=0x4)" P-INDEP
-; V391 tmp389 [V391,T160] ( 2, 1 ) byref -> rsi single-def "field V167._reference (fldOffset=0x0)" P-INDEP
-; V392 tmp390 [V392,T170] ( 2, 1 ) int -> rax "field V167._length (fldOffset=0x8)" P-INDEP
-;* V393 tmp391 [V393 ] ( 0, 0 ) byref -> zero-ref single-def "field V172._reference (fldOffset=0x0)" P-INDEP
-;* V394 tmp392 [V394 ] ( 0, 0 ) int -> zero-ref "field V172._length (fldOffset=0x8)" P-INDEP
-;* V395 tmp393 [V395 ] ( 0, 0 ) byref -> zero-ref single-def "field V174._reference (fldOffset=0x0)" P-INDEP
-;* V396 tmp394 [V396 ] ( 0, 0 ) int -> zero-ref "field V174._length (fldOffset=0x8)" P-INDEP
-; V397 tmp395 [V397,T161] ( 2, 1 ) byref -> [rbp-0xA8] spill-single-def "field V177._reference (fldOffset=0x0)" P-INDEP
-; V398 tmp396 [V398,T171] ( 2, 1 ) int -> [rbp-0x8C] spill-single-def "field V177._length (fldOffset=0x8)" P-INDEP
-;* V399 tmp397 [V399 ] ( 0, 0 ) byref -> zero-ref "field V180._reference (fldOffset=0x0)" P-INDEP
-;* V400 tmp398 [V400 ] ( 0, 0 ) int -> zero-ref "field V180._length (fldOffset=0x8)" P-INDEP
-;* V401 tmp399 [V401 ] ( 0, 0 ) byref -> zero-ref single-def "field V181._reference (fldOffset=0x0)" P-INDEP
-;* V402 tmp400 [V402 ] ( 0, 0 ) int -> zero-ref "field V181._length (fldOffset=0x8)" P-INDEP
-;* V403 tmp401 [V403 ] ( 0, 0 ) byref -> zero-ref single-def "field V183._reference (fldOffset=0x0)" P-INDEP
-;* V404 tmp402 [V404 ] ( 0, 0 ) int -> zero-ref "field V183._length (fldOffset=0x8)" P-INDEP
-;* V405 tmp403 [V405 ] ( 0, 0 ) byref -> zero-ref "field V185._reference (fldOffset=0x0)" P-INDEP
-;* V406 tmp404 [V406 ] ( 0, 0 ) int -> zero-ref "field V185._length (fldOffset=0x8)" P-INDEP
-;* V407 tmp405 [V407 ] ( 0, 0 ) byref -> zero-ref "field V187._reference (fldOffset=0x0)" P-INDEP
-;* V408 tmp406 [V408 ] ( 0, 0 ) int -> zero-ref "field V187._length (fldOffset=0x8)" P-INDEP
-; V409 tmp407 [V409,T121] ( 3, 1.50) byref -> rdx "field V188._reference (fldOffset=0x0)" P-INDEP
-; V410 tmp408 [V410,T132] ( 3, 1.50) int -> rcx "field V188._length (fldOffset=0x8)" P-INDEP
-; V411 tmp409 [V411,T162] ( 2, 1 ) byref -> rdx single-def "field V190._reference (fldOffset=0x0)" P-INDEP
-; V412 tmp410 [V412,T172] ( 2, 1 ) int -> rcx "field V190._length (fldOffset=0x8)" P-INDEP
-;* V413 tmp411 [V413 ] ( 0, 0 ) byref -> zero-ref single-def "field V191._reference (fldOffset=0x0)" P-INDEP
-;* V414 tmp412 [V414 ] ( 0, 0 ) int -> zero-ref "field V191._length (fldOffset=0x8)" P-INDEP
-;* V415 tmp413 [V415 ] ( 0, 0 ) byref -> zero-ref single-def "field V196._reference (fldOffset=0x0)" P-INDEP
-;* V416 tmp414 [V416 ] ( 0, 0 ) int -> zero-ref "field V196._length (fldOffset=0x8)" P-INDEP
-;* V417 tmp415 [V417 ] ( 0, 0 ) byref -> zero-ref single-def "field V198._reference (fldOffset=0x0)" P-INDEP
-;* V418 tmp416 [V418 ] ( 0, 0 ) int -> zero-ref "field V198._length (fldOffset=0x8)" P-INDEP
-;* V419 tmp417 [V419 ] ( 0, 0 ) byref -> zero-ref single-def "field V201._reference (fldOffset=0x0)" P-INDEP
-;* V420 tmp418 [V420 ] ( 0, 0 ) int -> zero-ref "field V201._length (fldOffset=0x8)" P-INDEP
-;* V421 tmp419 [V421 ] ( 0, 0 ) byref -> zero-ref single-def "field V204._reference (fldOffset=0x0)" P-INDEP
-;* V422 tmp420 [V422 ] ( 0, 0 ) int -> zero-ref "field V204._length (fldOffset=0x8)" P-INDEP
-;* V423 tmp421 [V423 ] ( 0, 0 ) int -> zero-ref "field V209.Item1 (fldOffset=0x0)" P-INDEP
-;* V424 tmp422 [V424 ] ( 0, 0 ) int -> zero-ref "field V209.Item2 (fldOffset=0x4)" P-INDEP
-;* V425 tmp423 [V425 ] ( 0, 0 ) int -> zero-ref "field V211.Item1 (fldOffset=0x0)" P-INDEP
-; V426 tmp424 [V426,T24] ( 2, 8 ) int -> r9 "field V211.Item2 (fldOffset=0x4)" P-INDEP
-; V427 tmp425 [V427,T163] ( 2, 1 ) byref -> rsi single-def "field V230._reference (fldOffset=0x0)" P-INDEP
-; V428 tmp426 [V428,T133] ( 3, 1.50) int -> rax "field V230._length (fldOffset=0x8)" P-INDEP
-;* V429 tmp427 [V429 ] ( 0, 0 ) byref -> zero-ref single-def "field V235._reference (fldOffset=0x0)" P-INDEP
-;* V430 tmp428 [V430 ] ( 0, 0 ) int -> zero-ref "field V235._length (fldOffset=0x8)" P-INDEP
-;* V431 tmp429 [V431 ] ( 0, 0 ) byref -> zero-ref single-def "field V237._reference (fldOffset=0x0)" P-INDEP
-;* V432 tmp430 [V432 ] ( 0, 0 ) int -> zero-ref "field V237._length (fldOffset=0x8)" P-INDEP
-; V433 tmp431 [V433,T164] ( 2, 1 ) byref -> r13 single-def "field V240._reference (fldOffset=0x0)" P-INDEP
-; V434 tmp432 [V434,T173] ( 2, 1 ) int -> [rbp-0x90] spill-single-def "field V240._length (fldOffset=0x8)" P-INDEP
-;* V435 tmp433 [V435 ] ( 0, 0 ) byref -> zero-ref "field V243._reference (fldOffset=0x0)" P-INDEP
-;* V436 tmp434 [V436 ] ( 0, 0 ) int -> zero-ref "field V243._length (fldOffset=0x8)" P-INDEP
-;* V437 tmp435 [V437 ] ( 0, 0 ) byref -> zero-ref single-def "field V244._reference (fldOffset=0x0)" P-INDEP
-;* V438 tmp436 [V438 ] ( 0, 0 ) int -> zero-ref "field V244._length (fldOffset=0x8)" P-INDEP
-;* V439 tmp437 [V439 ] ( 0, 0 ) byref -> zero-ref single-def "field V246._reference (fldOffset=0x0)" P-INDEP
+;* V285 tmp283 [V285 ] ( 0, 0 ) long -> zero-ref
+;* V286 tmp284 [V286 ] ( 0, 0 ) long -> zero-ref
+; V287 tmp285 [V287,T158] ( 2, 1 ) ref -> r9 single-def
+;* V288 tmp286 [V288 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V289 tmp287 [V289 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V290 tmp288 [V290,T54] ( 7, 3.50) ref -> rax class-hnd "Inline return value spill temp" <System.String>
+; V291 tmp289 [V291,T48] ( 4, 4 ) int -> r14 "Inlining Arg"
+;* V292 tmp290 [V292 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V293 tmp291 [V293,T159] ( 2, 1 ) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V294 tmp292 [V294,T87] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
+; V295 tmp293 [V295,T75] ( 3, 3 ) byref -> rsi single-def "Span.get_Item ptrToSpan"
+; V296 tmp294 [V296,T88] ( 5, 2.50) int -> rdi "Inline stloc first use temp"
+;* V297 tmp295 [V297 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
+; V298 tmp296 [V298,T56] ( 5, 3.50) int -> rdi "Inline stloc first use temp"
+;* V299 tmp297 [V299 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
+;* V300 tmp298 [V300 ] ( 0, 0 ) long -> zero-ref "field V06._dateData (fldOffset=0x0)" P-INDEP
+; V301 tmp299 [V301,T140] ( 2, 1.50) byref -> rsi single-def "field V12._reference (fldOffset=0x0)" P-INDEP
+; V302 tmp300 [V302,T112] ( 2, 2 ) int -> rax "field V12._length (fldOffset=0x8)" P-INDEP
+; V303 tmp301 [V303,T141] ( 2, 1.50) byref -> rax single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+; V304 tmp302 [V304,T113] ( 2, 2 ) int -> rcx "field V14._length (fldOffset=0x8)" P-INDEP
+; V305 tmp303 [V305,T142] ( 2, 1.50) byref -> rsi single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+; V306 tmp304 [V306,T114] ( 2, 2 ) int -> rax "field V17._length (fldOffset=0x8)" P-INDEP
+; V307 tmp305 [V307,T89] ( 3, 2.50) long -> r14 "field V18._dateData (fldOffset=0x0)" P-INDEP
+;* V308 tmp306 [V308 ] ( 0, 0 ) long -> zero-ref "field V19._dateData (fldOffset=0x0)" P-INDEP
+;* V309 tmp307 [V309 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
+;* V310 tmp308 [V310 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
+;* V311 tmp309 [V311 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP
+;* V312 tmp310 [V312 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
+; V313 tmp311 [V313,T101] ( 2, 2 ) byref -> rsi single-def "field V27._reference (fldOffset=0x0)" P-INDEP
+; V314 tmp312 [V314,T115] ( 2, 2 ) int -> rdx "field V27._length (fldOffset=0x8)" P-INDEP
+;* V315 tmp313 [V315 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
+;* V316 tmp314 [V316 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
+; V317 tmp315 [V317,T102] ( 2, 2 ) byref -> r8 single-def "field V31._reference (fldOffset=0x0)" P-INDEP
+;* V318 tmp316 [V318,T178] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
+;* V319 tmp317 [V319 ] ( 0, 0 ) long -> zero-ref "field V33._dateData (fldOffset=0x0)" P-INDEP
+;* V320 tmp318 [V320,T179] ( 0, 0 ) long -> zero-ref "field V34._ticks (fldOffset=0x0)" P-INDEP
+;* V321 tmp319 [V321 ] ( 0, 0 ) long -> zero-ref "field V35._dateData (fldOffset=0x0)" P-INDEP
+;* V322 tmp320 [V322,T181] ( 0, 0 ) long -> zero-ref "field V36._ticks (fldOffset=0x0)" P-INDEP
+; V323 tmp321 [V323,T143] ( 2, 1.50) byref -> rsi single-def "field V41._reference (fldOffset=0x0)" P-INDEP
+; V324 tmp322 [V324,T116] ( 2, 2 ) int -> rax "field V41._length (fldOffset=0x8)" P-INDEP
+;* V325 tmp323 [V325 ] ( 0, 0 ) byref -> zero-ref single-def "field V46._reference (fldOffset=0x0)" P-INDEP
+;* V326 tmp324 [V326 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP
+;* V327 tmp325 [V327 ] ( 0, 0 ) byref -> zero-ref single-def "field V48._reference (fldOffset=0x0)" P-INDEP
+;* V328 tmp326 [V328 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
+; V329 tmp327 [V329,T144] ( 2, 1.50) byref -> [rbp-0x98] spill-single-def "field V51._reference (fldOffset=0x0)" P-INDEP
+; V330 tmp328 [V330,T147] ( 2, 1.50) int -> [rbp-0x84] spill-single-def "field V51._length (fldOffset=0x8)" P-INDEP
+;* V331 tmp329 [V331 ] ( 0, 0 ) byref -> zero-ref "field V54._reference (fldOffset=0x0)" P-INDEP
+;* V332 tmp330 [V332 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
+;* V333 tmp331 [V333 ] ( 0, 0 ) byref -> zero-ref single-def "field V55._reference (fldOffset=0x0)" P-INDEP
+;* V334 tmp332 [V334 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
+;* V335 tmp333 [V335 ] ( 0, 0 ) byref -> zero-ref single-def "field V57._reference (fldOffset=0x0)" P-INDEP
+;* V336 tmp334 [V336 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
+;* V337 tmp335 [V337 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
+;* V338 tmp336 [V338 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
+;* V339 tmp337 [V339 ] ( 0, 0 ) byref -> zero-ref "field V61._reference (fldOffset=0x0)" P-INDEP
+;* V340 tmp338 [V340 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
+; V341 tmp339 [V341,T122] ( 3, 1.50) byref -> rdx "field V62._reference (fldOffset=0x0)" P-INDEP
+; V342 tmp340 [V342,T133] ( 3, 1.50) int -> rcx "field V62._length (fldOffset=0x8)" P-INDEP
+; V343 tmp341 [V343,T160] ( 2, 1 ) byref -> rdx single-def "field V64._reference (fldOffset=0x0)" P-INDEP
+; V344 tmp342 [V344,T170] ( 2, 1 ) int -> rcx "field V64._length (fldOffset=0x8)" P-INDEP
+;* V345 tmp343 [V345 ] ( 0, 0 ) byref -> zero-ref single-def "field V65._reference (fldOffset=0x0)" P-INDEP
+;* V346 tmp344 [V346 ] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP
+;* V347 tmp345 [V347 ] ( 0, 0 ) byref -> zero-ref single-def "field V70._reference (fldOffset=0x0)" P-INDEP
+;* V348 tmp346 [V348 ] ( 0, 0 ) int -> zero-ref "field V70._length (fldOffset=0x8)" P-INDEP
+;* V349 tmp347 [V349 ] ( 0, 0 ) byref -> zero-ref single-def "field V72._reference (fldOffset=0x0)" P-INDEP
+;* V350 tmp348 [V350 ] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-INDEP
+;* V351 tmp349 [V351 ] ( 0, 0 ) byref -> zero-ref single-def "field V75._reference (fldOffset=0x0)" P-INDEP
+;* V352 tmp350 [V352 ] ( 0, 0 ) int -> zero-ref "field V75._length (fldOffset=0x8)" P-INDEP
+;* V353 tmp351 [V353 ] ( 0, 0 ) byref -> zero-ref single-def "field V78._reference (fldOffset=0x0)" P-INDEP
+;* V354 tmp352 [V354 ] ( 0, 0 ) int -> zero-ref "field V78._length (fldOffset=0x8)" P-INDEP
+;* V355 tmp353 [V355 ] ( 0, 0 ) int -> zero-ref "field V83.Item1 (fldOffset=0x0)" P-INDEP
+;* V356 tmp354 [V356 ] ( 0, 0 ) int -> zero-ref "field V83.Item2 (fldOffset=0x4)" P-INDEP
+;* V357 tmp355 [V357 ] ( 0, 0 ) int -> zero-ref "field V86.Item1 (fldOffset=0x0)" P-INDEP
+; V358 tmp356 [V358,T26] ( 2, 8 ) int -> r9 "field V86.Item2 (fldOffset=0x4)" P-INDEP
+; V359 tmp357 [V359,T145] ( 2, 1.50) byref -> rsi single-def "field V105._reference (fldOffset=0x0)" P-INDEP
+; V360 tmp358 [V360,T117] ( 2, 2 ) int -> rax "field V105._length (fldOffset=0x8)" P-INDEP
+;* V361 tmp359 [V361 ] ( 0, 0 ) byref -> zero-ref single-def "field V110._reference (fldOffset=0x0)" P-INDEP
+;* V362 tmp360 [V362 ] ( 0, 0 ) int -> zero-ref "field V110._length (fldOffset=0x8)" P-INDEP
+;* V363 tmp361 [V363 ] ( 0, 0 ) byref -> zero-ref single-def "field V112._reference (fldOffset=0x0)" P-INDEP
+;* V364 tmp362 [V364 ] ( 0, 0 ) int -> zero-ref "field V112._length (fldOffset=0x8)" P-INDEP
+; V365 tmp363 [V365,T161] ( 2, 1 ) byref -> r12 single-def "field V115._reference (fldOffset=0x0)" P-INDEP
+; V366 tmp364 [V366,T171] ( 2, 1 ) int -> [rbp-0x88] spill-single-def "field V115._length (fldOffset=0x8)" P-INDEP
+;* V367 tmp365 [V367 ] ( 0, 0 ) byref -> zero-ref "field V118._reference (fldOffset=0x0)" P-INDEP
+;* V368 tmp366 [V368 ] ( 0, 0 ) int -> zero-ref "field V118._length (fldOffset=0x8)" P-INDEP
+;* V369 tmp367 [V369 ] ( 0, 0 ) byref -> zero-ref single-def "field V119._reference (fldOffset=0x0)" P-INDEP
+;* V370 tmp368 [V370 ] ( 0, 0 ) int -> zero-ref "field V119._length (fldOffset=0x8)" P-INDEP
+;* V371 tmp369 [V371 ] ( 0, 0 ) byref -> zero-ref single-def "field V121._reference (fldOffset=0x0)" P-INDEP
+;* V372 tmp370 [V372 ] ( 0, 0 ) int -> zero-ref "field V121._length (fldOffset=0x8)" P-INDEP
+;* V373 tmp371 [V373 ] ( 0, 0 ) byref -> zero-ref "field V123._reference (fldOffset=0x0)" P-INDEP
+;* V374 tmp372 [V374 ] ( 0, 0 ) int -> zero-ref "field V123._length (fldOffset=0x8)" P-INDEP
+;* V375 tmp373 [V375 ] ( 0, 0 ) byref -> zero-ref "field V125._reference (fldOffset=0x0)" P-INDEP
+;* V376 tmp374 [V376 ] ( 0, 0 ) int -> zero-ref "field V125._length (fldOffset=0x8)" P-INDEP
+; V377 tmp375 [V377,T123] ( 3, 1.50) byref -> rdx "field V126._reference (fldOffset=0x0)" P-INDEP
+; V378 tmp376 [V378,T134] ( 3, 1.50) int -> rcx "field V126._length (fldOffset=0x8)" P-INDEP
+; V379 tmp377 [V379,T162] ( 2, 1 ) byref -> rdx single-def "field V128._reference (fldOffset=0x0)" P-INDEP
+; V380 tmp378 [V380,T172] ( 2, 1 ) int -> rcx "field V128._length (fldOffset=0x8)" P-INDEP
+;* V381 tmp379 [V381 ] ( 0, 0 ) byref -> zero-ref single-def "field V129._reference (fldOffset=0x0)" P-INDEP
+;* V382 tmp380 [V382 ] ( 0, 0 ) int -> zero-ref "field V129._length (fldOffset=0x8)" P-INDEP
+;* V383 tmp381 [V383 ] ( 0, 0 ) byref -> zero-ref single-def "field V134._reference (fldOffset=0x0)" P-INDEP
+;* V384 tmp382 [V384 ] ( 0, 0 ) int -> zero-ref "field V134._length (fldOffset=0x8)" P-INDEP
+;* V385 tmp383 [V385 ] ( 0, 0 ) byref -> zero-ref single-def "field V136._reference (fldOffset=0x0)" P-INDEP
+;* V386 tmp384 [V386 ] ( 0, 0 ) int -> zero-ref "field V136._length (fldOffset=0x8)" P-INDEP
+;* V387 tmp385 [V387 ] ( 0, 0 ) byref -> zero-ref single-def "field V139._reference (fldOffset=0x0)" P-INDEP
+;* V388 tmp386 [V388 ] ( 0, 0 ) int -> zero-ref "field V139._length (fldOffset=0x8)" P-INDEP
+;* V389 tmp387 [V389 ] ( 0, 0 ) byref -> zero-ref single-def "field V142._reference (fldOffset=0x0)" P-INDEP
+;* V390 tmp388 [V390 ] ( 0, 0 ) int -> zero-ref "field V142._length (fldOffset=0x8)" P-INDEP
+;* V391 tmp389 [V391 ] ( 0, 0 ) int -> zero-ref "field V147.Item1 (fldOffset=0x0)" P-INDEP
+;* V392 tmp390 [V392 ] ( 0, 0 ) int -> zero-ref "field V147.Item2 (fldOffset=0x4)" P-INDEP
+;* V393 tmp391 [V393 ] ( 0, 0 ) int -> zero-ref "field V150.Item1 (fldOffset=0x0)" P-INDEP
+; V394 tmp392 [V394,T27] ( 2, 8 ) int -> r9 "field V150.Item2 (fldOffset=0x4)" P-INDEP
+; V395 tmp393 [V395,T163] ( 2, 1 ) byref -> rsi single-def "field V169._reference (fldOffset=0x0)" P-INDEP
+; V396 tmp394 [V396,T173] ( 2, 1 ) int -> rax "field V169._length (fldOffset=0x8)" P-INDEP
+;* V397 tmp395 [V397 ] ( 0, 0 ) byref -> zero-ref single-def "field V174._reference (fldOffset=0x0)" P-INDEP
+;* V398 tmp396 [V398 ] ( 0, 0 ) int -> zero-ref "field V174._length (fldOffset=0x8)" P-INDEP
+;* V399 tmp397 [V399 ] ( 0, 0 ) byref -> zero-ref single-def "field V176._reference (fldOffset=0x0)" P-INDEP
+;* V400 tmp398 [V400 ] ( 0, 0 ) int -> zero-ref "field V176._length (fldOffset=0x8)" P-INDEP
+; V401 tmp399 [V401,T164] ( 2, 1 ) byref -> [rbp-0xA0] spill-single-def "field V179._reference (fldOffset=0x0)" P-INDEP
+; V402 tmp400 [V402,T174] ( 2, 1 ) int -> [rbp-0x8C] spill-single-def "field V179._length (fldOffset=0x8)" P-INDEP
+;* V403 tmp401 [V403 ] ( 0, 0 ) byref -> zero-ref "field V182._reference (fldOffset=0x0)" P-INDEP
+;* V404 tmp402 [V404 ] ( 0, 0 ) int -> zero-ref "field V182._length (fldOffset=0x8)" P-INDEP
+;* V405 tmp403 [V405 ] ( 0, 0 ) byref -> zero-ref single-def "field V183._reference (fldOffset=0x0)" P-INDEP
+;* V406 tmp404 [V406 ] ( 0, 0 ) int -> zero-ref "field V183._length (fldOffset=0x8)" P-INDEP
+;* V407 tmp405 [V407 ] ( 0, 0 ) byref -> zero-ref single-def "field V185._reference (fldOffset=0x0)" P-INDEP
+;* V408 tmp406 [V408 ] ( 0, 0 ) int -> zero-ref "field V185._length (fldOffset=0x8)" P-INDEP
+;* V409 tmp407 [V409 ] ( 0, 0 ) byref -> zero-ref "field V187._reference (fldOffset=0x0)" P-INDEP
+;* V410 tmp408 [V410 ] ( 0, 0 ) int -> zero-ref "field V187._length (fldOffset=0x8)" P-INDEP
+;* V411 tmp409 [V411 ] ( 0, 0 ) byref -> zero-ref "field V189._reference (fldOffset=0x0)" P-INDEP
+;* V412 tmp410 [V412 ] ( 0, 0 ) int -> zero-ref "field V189._length (fldOffset=0x8)" P-INDEP
+; V413 tmp411 [V413,T124] ( 3, 1.50) byref -> rdx "field V190._reference (fldOffset=0x0)" P-INDEP
+; V414 tmp412 [V414,T135] ( 3, 1.50) int -> rcx "field V190._length (fldOffset=0x8)" P-INDEP
+; V415 tmp413 [V415,T165] ( 2, 1 ) byref -> rdx single-def "field V192._reference (fldOffset=0x0)" P-INDEP
+; V416 tmp414 [V416,T175] ( 2, 1 ) int -> rcx "field V192._length (fldOffset=0x8)" P-INDEP
+;* V417 tmp415 [V417 ] ( 0, 0 ) byref -> zero-ref single-def "field V193._reference (fldOffset=0x0)" P-INDEP
+;* V418 tmp416 [V418 ] ( 0, 0 ) int -> zero-ref "field V193._length (fldOffset=0x8)" P-INDEP
+;* V419 tmp417 [V419 ] ( 0, 0 ) byref -> zero-ref single-def "field V198._reference (fldOffset=0x0)" P-INDEP
+;* V420 tmp418 [V420 ] ( 0, 0 ) int -> zero-ref "field V198._length (fldOffset=0x8)" P-INDEP
+;* V421 tmp419 [V421 ] ( 0, 0 ) byref -> zero-ref single-def "field V200._reference (fldOffset=0x0)" P-INDEP
+;* V422 tmp420 [V422 ] ( 0, 0 ) int -> zero-ref "field V200._length (fldOffset=0x8)" P-INDEP
+;* V423 tmp421 [V423 ] ( 0, 0 ) byref -> zero-ref single-def "field V203._reference (fldOffset=0x0)" P-INDEP
+;* V424 tmp422 [V424 ] ( 0, 0 ) int -> zero-ref "field V203._length (fldOffset=0x8)" P-INDEP
+;* V425 tmp423 [V425 ] ( 0, 0 ) byref -> zero-ref single-def "field V206._reference (fldOffset=0x0)" P-INDEP
+;* V426 tmp424 [V426 ] ( 0, 0 ) int -> zero-ref "field V206._length (fldOffset=0x8)" P-INDEP
+;* V427 tmp425 [V427 ] ( 0, 0 ) int -> zero-ref "field V211.Item1 (fldOffset=0x0)" P-INDEP
+;* V428 tmp426 [V428 ] ( 0, 0 ) int -> zero-ref "field V211.Item2 (fldOffset=0x4)" P-INDEP
+;* V429 tmp427 [V429 ] ( 0, 0 ) int -> zero-ref "field V214.Item1 (fldOffset=0x0)" P-INDEP
+; V430 tmp428 [V430,T28] ( 2, 8 ) int -> r9 "field V214.Item2 (fldOffset=0x4)" P-INDEP
+; V431 tmp429 [V431,T166] ( 2, 1 ) byref -> rsi single-def "field V233._reference (fldOffset=0x0)" P-INDEP
+; V432 tmp430 [V432,T136] ( 3, 1.50) int -> rax "field V233._length (fldOffset=0x8)" P-INDEP
+;* V433 tmp431 [V433 ] ( 0, 0 ) byref -> zero-ref single-def "field V238._reference (fldOffset=0x0)" P-INDEP
+;* V434 tmp432 [V434 ] ( 0, 0 ) int -> zero-ref "field V238._length (fldOffset=0x8)" P-INDEP
+;* V435 tmp433 [V435 ] ( 0, 0 ) byref -> zero-ref single-def "field V240._reference (fldOffset=0x0)" P-INDEP
+;* V436 tmp434 [V436 ] ( 0, 0 ) int -> zero-ref "field V240._length (fldOffset=0x8)" P-INDEP
+; V437 tmp435 [V437,T167] ( 2, 1 ) byref -> r13 single-def "field V243._reference (fldOffset=0x0)" P-INDEP
+; V438 tmp436 [V438,T176] ( 2, 1 ) int -> r12 "field V243._length (fldOffset=0x8)" P-INDEP
+;* V439 tmp437 [V439 ] ( 0, 0 ) byref -> zero-ref "field V246._reference (fldOffset=0x0)" P-INDEP
;* V440 tmp438 [V440 ] ( 0, 0 ) int -> zero-ref "field V246._length (fldOffset=0x8)" P-INDEP
-;* V441 tmp439 [V441 ] ( 0, 0 ) byref -> zero-ref "field V248._reference (fldOffset=0x0)" P-INDEP
-;* V442 tmp440 [V442 ] ( 0, 0 ) int -> zero-ref "field V248._length (fldOffset=0x8)" P-INDEP
-;* V443 tmp441 [V443 ] ( 0, 0 ) byref -> zero-ref "field V250._reference (fldOffset=0x0)" P-INDEP
-;* V444 tmp442 [V444 ] ( 0, 0 ) int -> zero-ref "field V250._length (fldOffset=0x8)" P-INDEP
-; V445 tmp443 [V445,T122] ( 3, 1.50) byref -> rdx "field V251._reference (fldOffset=0x0)" P-INDEP
-; V446 tmp444 [V446,T134] ( 3, 1.50) int -> rcx "field V251._length (fldOffset=0x8)" P-INDEP
-; V447 tmp445 [V447,T165] ( 2, 1 ) byref -> rdx single-def "field V253._reference (fldOffset=0x0)" P-INDEP
-; V448 tmp446 [V448,T174] ( 2, 1 ) int -> rcx "field V253._length (fldOffset=0x8)" P-INDEP
-;* V449 tmp447 [V449 ] ( 0, 0 ) byref -> zero-ref single-def "field V254._reference (fldOffset=0x0)" P-INDEP
-;* V450 tmp448 [V450 ] ( 0, 0 ) int -> zero-ref "field V254._length (fldOffset=0x8)" P-INDEP
-;* V451 tmp449 [V451 ] ( 0, 0 ) byref -> zero-ref single-def "field V259._reference (fldOffset=0x0)" P-INDEP
-;* V452 tmp450 [V452 ] ( 0, 0 ) int -> zero-ref "field V259._length (fldOffset=0x8)" P-INDEP
-;* V453 tmp451 [V453 ] ( 0, 0 ) byref -> zero-ref single-def "field V261._reference (fldOffset=0x0)" P-INDEP
-;* V454 tmp452 [V454 ] ( 0, 0 ) int -> zero-ref "field V261._length (fldOffset=0x8)" P-INDEP
-;* V455 tmp453 [V455 ] ( 0, 0 ) byref -> zero-ref single-def "field V264._reference (fldOffset=0x0)" P-INDEP
-;* V456 tmp454 [V456 ] ( 0, 0 ) int -> zero-ref "field V264._length (fldOffset=0x8)" P-INDEP
-;* V457 tmp455 [V457 ] ( 0, 0 ) byref -> zero-ref single-def "field V267._reference (fldOffset=0x0)" P-INDEP
-;* V458 tmp456 [V458 ] ( 0, 0 ) int -> zero-ref "field V267._length (fldOffset=0x8)" P-INDEP
-;* V459 tmp457 [V459 ] ( 0, 0 ) int -> zero-ref "field V272.Item1 (fldOffset=0x0)" P-INDEP
-;* V460 tmp458 [V460 ] ( 0, 0 ) int -> zero-ref "field V272.Item2 (fldOffset=0x4)" P-INDEP
-;* V461 tmp459 [V461 ] ( 0, 0 ) int -> zero-ref "field V274.Item1 (fldOffset=0x0)" P-INDEP
-; V462 tmp460 [V462,T25] ( 2, 8 ) int -> rdx "field V274.Item2 (fldOffset=0x4)" P-INDEP
-; V463 tmp461 [V463,T166] ( 2, 1 ) byref -> rax single-def "field V293._reference (fldOffset=0x0)" P-INDEP
-; V464 tmp462 [V464,T135] ( 3, 1.50) int -> rcx "field V293._length (fldOffset=0x8)" P-INDEP
-; V465 tmp463 [V465,T143] ( 2, 1.50) byref -> rsi single-def "field V295._reference (fldOffset=0x0)" P-INDEP
-; V466 tmp464 [V466,T87] ( 3, 2.50) int -> rax "field V295._length (fldOffset=0x8)" P-INDEP
-; V467 tmp465 [V467,T76] ( 3, 3 ) ubyte -> r15 "V00.[016..017)"
-; V468 tmp466 [V468,T115] ( 2, 2 ) long -> rsi "Cast away GC"
-; V469 tmp467 [V469,T116] ( 2, 2 ) long -> rdx "Cast away GC"
-; V470 tmp468 [V470,T117] ( 2, 2 ) long -> rax "Cast away GC"
-; V471 tmp469 [V471,T118] ( 2, 2 ) long -> r14 "Cast away GC"
-; V472 cse0 [V472,T52] ( 5, 3.50) ref -> r13 "CSE #09: conservative"
-; V473 cse1 [V473,T77] ( 3, 3 ) int -> rdx "CSE #01: conservative"
-; V474 cse2 [V474,T78] ( 3, 3 ) int -> rdx "CSE #05: conservative"
-; V475 cse3 [V475,T56] ( 6, 3 ) int -> rcx multi-def "CSE #10: conservative"
-; V476 cse4 [V476,T136] ( 3, 1.50) int -> rcx "CSE #22: conservative"
-; V477 cse5 [V477,T26] ( 11, 7 ) byref -> r12 "CSE #03: moderate"
+;* V441 tmp439 [V441 ] ( 0, 0 ) byref -> zero-ref single-def "field V247._reference (fldOffset=0x0)" P-INDEP
+;* V442 tmp440 [V442 ] ( 0, 0 ) int -> zero-ref "field V247._length (fldOffset=0x8)" P-INDEP
+;* V443 tmp441 [V443 ] ( 0, 0 ) byref -> zero-ref single-def "field V249._reference (fldOffset=0x0)" P-INDEP
+;* V444 tmp442 [V444 ] ( 0, 0 ) int -> zero-ref "field V249._length (fldOffset=0x8)" P-INDEP
+;* V445 tmp443 [V445 ] ( 0, 0 ) byref -> zero-ref "field V251._reference (fldOffset=0x0)" P-INDEP
+;* V446 tmp444 [V446 ] ( 0, 0 ) int -> zero-ref "field V251._length (fldOffset=0x8)" P-INDEP
+;* V447 tmp445 [V447 ] ( 0, 0 ) byref -> zero-ref "field V253._reference (fldOffset=0x0)" P-INDEP
+;* V448 tmp446 [V448 ] ( 0, 0 ) int -> zero-ref "field V253._length (fldOffset=0x8)" P-INDEP
+; V449 tmp447 [V449,T125] ( 3, 1.50) byref -> rdx "field V254._reference (fldOffset=0x0)" P-INDEP
+; V450 tmp448 [V450,T137] ( 3, 1.50) int -> rcx "field V254._length (fldOffset=0x8)" P-INDEP
+; V451 tmp449 [V451,T168] ( 2, 1 ) byref -> rdx single-def "field V256._reference (fldOffset=0x0)" P-INDEP
+; V452 tmp450 [V452,T177] ( 2, 1 ) int -> rcx "field V256._length (fldOffset=0x8)" P-INDEP
+;* V453 tmp451 [V453 ] ( 0, 0 ) byref -> zero-ref single-def "field V257._reference (fldOffset=0x0)" P-INDEP
+;* V454 tmp452 [V454 ] ( 0, 0 ) int -> zero-ref "field V257._length (fldOffset=0x8)" P-INDEP
+;* V455 tmp453 [V455 ] ( 0, 0 ) byref -> zero-ref single-def "field V262._reference (fldOffset=0x0)" P-INDEP
+;* V456 tmp454 [V456 ] ( 0, 0 ) int -> zero-ref "field V262._length (fldOffset=0x8)" P-INDEP
+;* V457 tmp455 [V457 ] ( 0, 0 ) byref -> zero-ref single-def "field V264._reference (fldOffset=0x0)" P-INDEP
+;* V458 tmp456 [V458 ] ( 0, 0 ) int -> zero-ref "field V264._length (fldOffset=0x8)" P-INDEP
+;* V459 tmp457 [V459 ] ( 0, 0 ) byref -> zero-ref single-def "field V267._reference (fldOffset=0x0)" P-INDEP
+;* V460 tmp458 [V460 ] ( 0, 0 ) int -> zero-ref "field V267._length (fldOffset=0x8)" P-INDEP
+;* V461 tmp459 [V461 ] ( 0, 0 ) byref -> zero-ref single-def "field V270._reference (fldOffset=0x0)" P-INDEP
+;* V462 tmp460 [V462 ] ( 0, 0 ) int -> zero-ref "field V270._length (fldOffset=0x8)" P-INDEP
+;* V463 tmp461 [V463 ] ( 0, 0 ) int -> zero-ref "field V275.Item1 (fldOffset=0x0)" P-INDEP
+;* V464 tmp462 [V464 ] ( 0, 0 ) int -> zero-ref "field V275.Item2 (fldOffset=0x4)" P-INDEP
+;* V465 tmp463 [V465 ] ( 0, 0 ) int -> zero-ref "field V278.Item1 (fldOffset=0x0)" P-INDEP
+; V466 tmp464 [V466,T29] ( 2, 8 ) int -> rax "field V278.Item2 (fldOffset=0x4)" P-INDEP
+; V467 tmp465 [V467,T169] ( 2, 1 ) byref -> rax single-def "field V297._reference (fldOffset=0x0)" P-INDEP
+; V468 tmp466 [V468,T138] ( 3, 1.50) int -> rcx "field V297._length (fldOffset=0x8)" P-INDEP
+; V469 tmp467 [V469,T146] ( 2, 1.50) byref -> rsi single-def "field V299._reference (fldOffset=0x0)" P-INDEP
+; V470 tmp468 [V470,T90] ( 3, 2.50) int -> rax "field V299._length (fldOffset=0x8)" P-INDEP
+; V471 tmp469 [V471,T79] ( 3, 3 ) ubyte -> r15 "V00.[016..017)"
+; V472 tmp470 [V472,T118] ( 2, 2 ) long -> rdx "Cast away GC"
+; V473 tmp471 [V473,T119] ( 2, 2 ) long -> r15 "Cast away GC"
+; V474 tmp472 [V474,T120] ( 2, 2 ) long -> r14 "Cast away GC"
+; V475 tmp473 [V475,T121] ( 2, 2 ) long -> r14 "Cast away GC"
+; V476 cse0 [V476,T55] ( 5, 3.50) ref -> r13 "CSE #09: conservative"
+; V477 cse1 [V477,T80] ( 3, 3 ) int -> rdx "CSE #01: conservative"
+; V478 cse2 [V478,T81] ( 3, 3 ) int -> rcx "CSE #05: conservative"
+; V479 cse3 [V479,T59] ( 6, 3 ) int -> rax multi-def "CSE #10: conservative"
+; V480 cse4 [V480,T139] ( 3, 1.50) int -> rcx "CSE #22: conservative"
;
-; Lcl frame size = 152
+; Lcl frame size = 136
G_M63296_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 152
- lea rbp, [rsp+0xC0]
+ sub rsp, 136
+ lea rbp, [rsp+0xB0]
vxorps xmm8, xmm8, xmm8
vmovdqu32 zmmword ptr [rbp-0x80], zmm8
xor eax, eax
mov qword ptr [rbp-0x40], rax
mov rbx, rdi
;; size=46 bbWeight=1 PerfScore 10.58
G_M63296_IG02:
mov edi, dword ptr [rbx+0x08]
mov rsi, bword ptr [rbx+0x10]
mov eax, dword ptr [rbx+0x18]
movzx r15, byte ptr [rbp+0x20]
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 [1 bytes for IG21]
- ;; size=16 bbWeight=0.50 PerfScore 2.25
+ align [0 bytes for IG21]
+ ;; size=15 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 r14, qword ptr [rbp+0x10]
mov r8, 0xD1FFAB1E ; const ptr
mov r13, gword ptr [r8]
- lea r12, bword ptr [rbx+0x10]
- mov r8, r12
+ lea r8, bword ptr [rbx+0x10]
mov r9d, dword ptr [rbx+0x08]
mov edx, dword ptr [r8+0x08]
cmp r9d, edx
ja G_M63296_IG103
mov r8, bword ptr [r8]
mov esi, r9d
lea rsi, bword ptr [r8+2*rsi]
sub edx, r9d
mov r8, 0xD1FFAB1E
mov gword ptr [rsp], r13
mov r9, 0xD1FFAB1E
mov qword ptr [rsp+0x08], r9
mov r9d, 12
lea rcx, [rbp-0x30]
mov rdi, r14
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=112 bbWeight=1 PerfScore 20.25
+ ;; size=109 bbWeight=1 PerfScore 20.00
G_M63296_IG12:
mov edi, dword ptr [rbp-0x30]
add dword ptr [rbx+0x08], edi
jmp SHORT G_M63296_IG15
;; size=8 bbWeight=0.50 PerfScore 3.00
G_M63296_IG13:
mov rdi, r14
mov rcx, 0xD1FFAB1E
mov rdx, r13
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, r12
+ lea rsi, bword ptr [rbx+0x10]
cmp edi, dword ptr [rsi+0x08]
jae G_M63296_IG104
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=89 bbWeight=0.50 PerfScore 14.12
+ ;; size=90 bbWeight=0.50 PerfScore 14.25
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 r14, byte ptr [rbp+0x18]
mov rdi, 0xD1FFAB1E ; const ptr
mov r13, gword ptr [rdi]
- mov rax, r13
- mov gword ptr [rbp-0x98], rax
- mov rdi, r12
- mov ecx, dword ptr [rbx+0x08]
- mov edx, dword ptr [rdi+0x08]
- cmp ecx, edx
+ mov r12, r13
+ lea rdi, bword ptr [rbx+0x10]
+ mov eax, dword ptr [rbx+0x08]
+ mov ecx, dword ptr [rdi+0x08]
+ cmp eax, ecx
ja G_M63296_IG103
mov rdi, bword ptr [rdi]
- mov esi, ecx
- lea rsi, bword ptr [rdi+2*rsi]
- sub edx, ecx
- mov bword ptr [rbp-0xA0], rsi
- mov dword ptr [rbp-0x84], edx
+ mov edx, eax
+ lea rdx, bword ptr [rdi+2*rdx]
+ sub ecx, eax
+ mov bword ptr [rbp-0x98], rdx
+ mov dword ptr [rbp-0x84], ecx
test r14d, r14d
jge SHORT G_M63296_IG20
- ;; size=74 bbWeight=1 PerfScore 16.25
+ ;; size=68 bbWeight=1 PerfScore 15.50
G_M63296_IG19:
- mov rdi, rax
- mov rdx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- call [rdx]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
+ mov rdi, r12
+ mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
+ call [rcx]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
mov r8, gword ptr [rax+0x28]
test r8, r8
jne G_M63296_IG29
xor rdx, rdx
xor ecx, ecx
jmp G_M63296_IG30
;; size=37 bbWeight=0.50 PerfScore 4.62
G_M63296_IG20:
mov r8d, r14d
- mov ecx, r14d
- or ecx, 1
- xor r9d, r9d
- lzcnt r9d, ecx
+ mov r9d, r14d
+ or r9d, 1
+ lzcnt r9d, r9d
xor r9d, 31
- mov rcx, 0xD1FFAB1E ; static handle
- add r8, qword ptr [rcx+8*r9]
+ mov rdi, 0xD1FFAB1E ; static handle
+ add r8, qword ptr [rdi+8*r9]
sar r8, 32
- cmp r8d, edx
+ cmp r8d, ecx
jg SHORT G_M63296_IG24
;; NOP compensation instructions of 4 bytes.
mov dword ptr [rbp-0x38], r8d
- mov bword ptr [rbp-0x40], rsi
+ mov bword ptr [rbp-0x40], rdx
movsxd r8, r8d
- lea r8, [rsi+2*r8]
+ lea r8, [rdx+2*r8]
mov r9d, r14d
cmp r9d, 10
jb SHORT G_M63296_IG26
jmp SHORT G_M63296_IG22
- ;; size=74 bbWeight=0.50 PerfScore 7.25
+ ;; size=72 bbWeight=0.50 PerfScore 7.12
G_M63296_IG21:
add r8, -4
mov edx, r9d
imul rdx, rdx, 0xD1FFAB1E
shr rdx, 37
imul ecx, edx, 100
sub r9d, ecx
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rcx]
shl r9d, 2
mov r9d, dword ptr [rcx+r9+0x10]
mov dword ptr [r8], r9d
mov r9d, edx
;; size=52 bbWeight=4 PerfScore 45.00
G_M63296_IG22:
cmp r9d, 100
jae SHORT G_M63296_IG21
;; size=6 bbWeight=4 PerfScore 5.00
G_M63296_IG23:
cmp r9d, 10
jb SHORT G_M63296_IG26
add r8, -4
mov rdx, 0xD1FFAB1E ; const ptr
mov rdx, gword ptr [rdx]
shl r9d, 2
mov r9d, dword ptr [rdx+r9+0x10]
mov dword ptr [r8], r9d
jmp SHORT G_M63296_IG27
align [0 bytes for IG44]
;; size=37 bbWeight=0.50 PerfScore 4.62
G_M63296_IG24:
xor r8d, r8d
mov dword ptr [rbp-0x38], r8d
;; size=7 bbWeight=0.50 PerfScore 0.62
G_M63296_IG25:
jmp SHORT G_M63296_IG28
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M63296_IG26:
add r8, -2
add r9d, 48
mov word ptr [r8], r9w
;; size=12 bbWeight=0.50 PerfScore 0.75
G_M63296_IG27:
xor r8d, r8d
mov bword ptr [rbp-0x40], r8
mov r8d, 1
;; size=13 bbWeight=0.50 PerfScore 0.75
G_M63296_IG28:
xor r9, r9
mov bword ptr [rbp-0x40], r9
jmp SHORT G_M63296_IG31
;; size=9 bbWeight=0.50 PerfScore 1.62
G_M63296_IG29:
- mov rax, gword ptr [rbp-0x98]
lea rdx, bword ptr [r8+0x0C]
mov ecx, dword ptr [r8+0x08]
- ;; size=15 bbWeight=0.50 PerfScore 1.75
+ ;; size=8 bbWeight=0.50 PerfScore 1.25
G_M63296_IG30:
lea r8, [rbp-0x38]
mov qword ptr [rsp], r8
- mov r8, bword ptr [rbp-0xA0]
+ mov r8, bword ptr [rbp-0x98]
mov r9d, dword ptr [rbp-0x84]
mov edi, r14d
mov esi, -1
- mov r10, 0xD1FFAB1E ; code for System.Number:TryNegativeInt32ToDecStr[ushort](int,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte
- call [r10]System.Number:TryNegativeInt32ToDecStr[ushort](int,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte
+ 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
mov r8d, eax
- mov rax, gword ptr [rbp-0x98]
- ;; size=53 bbWeight=0.50 PerfScore 4.25
+ ;; size=45 bbWeight=0.50 PerfScore 3.75
G_M63296_IG31:
test r8d, r8d
je SHORT G_M63296_IG33
;; size=5 bbWeight=1 PerfScore 1.25
G_M63296_IG32:
- mov eax, dword ptr [rbp-0x38]
- add dword ptr [rbx+0x08], eax
+ mov edi, dword ptr [rbp-0x38]
+ add dword ptr [rbx+0x08], edi
jmp G_M63296_IG37
;; size=11 bbWeight=0.50 PerfScore 3.00
G_M63296_IG33:
test r14d, r14d
jge SHORT G_M63296_IG34
- mov rdi, rax
+ mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
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_IG35
;; size=46 bbWeight=0.50 PerfScore 6.25
G_M63296_IG34:
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_IG35:
test rax, rax
je SHORT G_M63296_IG37
mov edi, dword ptr [rbx+0x08]
cmp dword ptr [rax+0x08], 1
jne SHORT G_M63296_IG36
cmp edi, dword ptr [rbx+0x18]
jae SHORT G_M63296_IG36
- mov rsi, r12
+ lea rsi, bword ptr [rbx+0x10]
cmp edi, dword ptr [rsi+0x08]
jae G_M63296_IG104
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_IG37
- ;; size=51 bbWeight=0.50 PerfScore 12.00
+ ;; size=52 bbWeight=0.50 PerfScore 12.12
G_M63296_IG36:
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_IG37:
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_IG39
;; size=14 bbWeight=1 PerfScore 7.25
G_M63296_IG38:
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbx+0x08], edi
jmp SHORT G_M63296_IG40
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M63296_IG39:
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_IG40:
test r15d, r15d
je SHORT G_M63296_IG42
;; size=5 bbWeight=1 PerfScore 1.25
G_M63296_IG41:
movzx r15, byte ptr [rbp+0x1A]
- mov rax, r12
- mov r14d, dword ptr [rbx+0x08]
- mov ecx, dword ptr [rax+0x08]
- cmp r14d, ecx
+ lea r14, bword ptr [rbx+0x10]
+ mov r12d, dword ptr [rbx+0x08]
+ mov eax, dword ptr [r14+0x08]
+ cmp r12d, eax
jbe G_M63296_IG79
jmp G_M63296_IG103
- ;; size=29 bbWeight=0.50 PerfScore 4.25
+ ;; size=31 bbWeight=0.50 PerfScore 4.38
G_M63296_IG42:
movzx r14, byte ptr [rbp+0x19]
- mov r15, r13
- mov rdi, r12
- mov eax, dword ptr [rbx+0x08]
- mov ecx, dword ptr [rdi+0x08]
- cmp eax, ecx
+ mov r12, r13
+ lea rdi, bword ptr [rbx+0x10]
+ mov ecx, dword ptr [rbx+0x08]
+ mov eax, dword ptr [rdi+0x08]
+ cmp ecx, eax
ja G_M63296_IG103
mov rdi, bword ptr [rdi]
- mov edx, eax
- lea rdx, bword ptr [rdi+2*rdx]
- sub ecx, eax
- mov bword ptr [rbp-0xA8], rdx
- mov dword ptr [rbp-0x8C], ecx
+ mov edx, ecx
+ lea r15, bword ptr [rdi+2*rdx]
+ sub eax, ecx
+ mov bword ptr [rbp-0xA0], r15
+ mov dword ptr [rbp-0x8C], eax
test r14d, r14d
jge SHORT G_M63296_IG43
- mov rdi, r15
- mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- call [rcx]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
+ mov rdi, r12
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
mov r8, gword ptr [rax+0x28]
test r8, r8
jne G_M63296_IG52
xor rdx, rdx
xor ecx, ecx
jmp G_M63296_IG53
- ;; size=91 bbWeight=0.50 PerfScore 11.12
+ ;; size=92 bbWeight=0.50 PerfScore 11.25
G_M63296_IG43:
mov r8d, r14d
- mov r9d, r14d
- or r9d, 1
- lzcnt r9d, r9d
- xor r9d, 31
- mov rdi, 0xD1FFAB1E ; static handle
- add r8, qword ptr [rdi+8*r9]
+ mov edx, r14d
+ or edx, 1
+ xor ecx, ecx
+ lzcnt ecx, edx
+ xor ecx, 31
+ mov r9d, ecx
+ mov rdx, 0xD1FFAB1E ; static handle
+ add r8, qword ptr [rdx+8*r9]
sar r8, 32
- cmp r8d, ecx
- jg SHORT G_M63296_IG47
- ;; NOP compensation instructions of 4 bytes.
+ cmp r8d, eax
+ jg G_M63296_IG47
mov dword ptr [rbp-0x58], r8d
- mov bword ptr [rbp-0x60], rdx
+ mov bword ptr [rbp-0x60], r15
movsxd r8, r8d
- lea r8, [rdx+2*r8]
+ lea r8, [r15+2*r8]
mov r9d, r14d
cmp r9d, 10
jb SHORT G_M63296_IG49
jmp SHORT G_M63296_IG45
- ;; size=72 bbWeight=0.50 PerfScore 7.12
+ ;; size=74 bbWeight=0.50 PerfScore 7.38
G_M63296_IG44:
add r8, -4
mov edx, r9d
imul rdx, rdx, 0xD1FFAB1E
shr rdx, 37
imul ecx, edx, 100
sub r9d, ecx
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rcx]
shl r9d, 2
mov r9d, dword ptr [rcx+r9+0x10]
mov dword ptr [r8], r9d
mov r9d, edx
;; size=52 bbWeight=4 PerfScore 45.00
G_M63296_IG45:
cmp r9d, 100
jae SHORT G_M63296_IG44
;; size=6 bbWeight=4 PerfScore 5.00
G_M63296_IG46:
cmp r9d, 10
jb SHORT G_M63296_IG49
add r8, -4
mov rdx, 0xD1FFAB1E ; const ptr
mov rdx, gword ptr [rdx]
shl r9d, 2
mov r9d, dword ptr [rdx+r9+0x10]
mov dword ptr [r8], r9d
jmp SHORT G_M63296_IG50
- align [2 bytes for IG63]
- ;; size=39 bbWeight=0.50 PerfScore 4.62
+ align [6 bytes for IG63]
+ ;; size=43 bbWeight=0.50 PerfScore 4.62
G_M63296_IG47:
xor r8d, r8d
mov dword ptr [rbp-0x58], r8d
;; size=7 bbWeight=0.50 PerfScore 0.62
G_M63296_IG48:
jmp SHORT G_M63296_IG51
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M63296_IG49:
add r8, -2
add r9d, 48
mov word ptr [r8], r9w
;; size=12 bbWeight=0.50 PerfScore 0.75
G_M63296_IG50:
xor r8d, r8d
mov bword ptr [rbp-0x60], r8
mov r8d, 1
;; size=13 bbWeight=0.50 PerfScore 0.75
G_M63296_IG51:
xor r9, r9
mov bword ptr [rbp-0x60], r9
jmp SHORT G_M63296_IG54
;; size=9 bbWeight=0.50 PerfScore 1.62
G_M63296_IG52:
lea rdx, bword ptr [r8+0x0C]
mov ecx, dword ptr [r8+0x08]
;; size=8 bbWeight=0.50 PerfScore 1.25
G_M63296_IG53:
lea r8, [rbp-0x58]
mov qword ptr [rsp], r8
- mov r8, bword ptr [rbp-0xA8]
+ mov r8, bword ptr [rbp-0xA0]
mov r9d, dword ptr [rbp-0x8C]
mov edi, r14d
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
mov r8d, eax
;; size=45 bbWeight=0.50 PerfScore 3.75
G_M63296_IG54:
test r8d, r8d
je SHORT G_M63296_IG55
mov edi, dword ptr [rbp-0x58]
add dword ptr [rbx+0x08], edi
jmp G_M63296_IG59
;; size=16 bbWeight=0.50 PerfScore 3.62
G_M63296_IG55:
test r14d, r14d
jge SHORT G_M63296_IG56
- mov rdi, r15
+ mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
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_IG57
;; size=46 bbWeight=0.50 PerfScore 6.25
G_M63296_IG56:
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_IG57:
test rax, rax
je SHORT G_M63296_IG59
mov edi, dword ptr [rbx+0x08]
cmp dword ptr [rax+0x08], 1
jne SHORT G_M63296_IG58
cmp edi, dword ptr [rbx+0x18]
jae SHORT G_M63296_IG58
- mov rsi, r12
+ lea rsi, bword ptr [rbx+0x10]
cmp edi, dword ptr [rsi+0x08]
jae G_M63296_IG104
mov rsi, bword ptr [rsi]
mov ecx, edi
cmp dword ptr [rax+0x08], 0
jbe G_M63296_IG104
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_IG59
- ;; size=61 bbWeight=0.50 PerfScore 14.00
+ ;; size=62 bbWeight=0.50 PerfScore 14.12
G_M63296_IG58:
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_IG59:
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_IG60
cmp edi, eax
jae G_M63296_IG104
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbx+0x08], edi
jmp SHORT G_M63296_IG61
;; size=37 bbWeight=0.50 PerfScore 6.50
G_M63296_IG60:
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_IG61:
mov edi, dword ptr [rbp+0x1C]
mov dword ptr [rbp-0x64], edi
mov r15, r13
- mov rdi, r12
+ lea rdi, bword ptr [rbx+0x10]
mov eax, dword ptr [rbx+0x08]
mov ecx, dword ptr [rdi+0x08]
cmp eax, ecx
ja G_M63296_IG103
mov rdi, bword ptr [rdi]
mov edx, eax
lea r14, bword ptr [rdi+2*rdx]
sub ecx, eax
mov r13, r14
- mov dword ptr [rbp-0x90], ecx
- mov edx, dword ptr [rbp-0x64]
- mov dword ptr [rbp-0x74], edx
- test edx, edx
+ mov r12d, ecx
+ mov eax, dword ptr [rbp-0x64]
+ mov dword ptr [rbp-0x74], eax
+ test eax, eax
jge SHORT G_M63296_IG62
mov rdi, r15
mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rcx]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
mov r8, gword ptr [rax+0x28]
test r8, r8
jne G_M63296_IG71
xor rdx, rdx
xor ecx, ecx
jmp G_M63296_IG72
- ;; size=93 bbWeight=0.50 PerfScore 12.25
+ ;; size=91 bbWeight=0.50 PerfScore 12.00
G_M63296_IG62:
- mov edx, dword ptr [rbp-0x74]
- mov r8d, edx
- mov r9d, edx
- or r9d, 1
- lzcnt r9d, r9d
+ mov eax, dword ptr [rbp-0x74]
+ mov r8d, eax
+ mov edx, eax
+ or edx, 1
+ xor r9d, r9d
+ lzcnt r9d, edx
xor r9d, 31
- mov rdi, 0xD1FFAB1E ; static handle
- add r8, qword ptr [rdi+8*r9]
+ mov rdx, 0xD1FFAB1E ; static handle
+ add r8, qword ptr [rdx+8*r9]
sar r8, 32
cmp r8d, ecx
jg SHORT G_M63296_IG66
;; NOP compensation instructions of 4 bytes.
mov dword ptr [rbp-0x70], r8d
mov bword ptr [rbp-0x80], r14
movsxd r8, r8d
lea r8, [r14+2*r8]
- cmp edx, 10
+ cmp eax, 10
jb SHORT G_M63296_IG68
jmp SHORT G_M63296_IG64
- ;; size=71 bbWeight=0.50 PerfScore 7.50
+ ;; size=72 bbWeight=0.50 PerfScore 7.62
G_M63296_IG63:
add r8, -4
- mov r9d, edx
+ mov r9d, eax
imul r9, r9, 0xD1FFAB1E
shr r9, 37
- imul ecx, r9d, 100
- sub edx, ecx
- mov rcx, 0xD1FFAB1E ; const ptr
- mov rcx, gword ptr [rcx]
- shl edx, 2
- mov edx, dword ptr [rcx+rdx+0x10]
+ imul edx, r9d, 100
+ sub eax, edx
+ mov rdx, 0xD1FFAB1E ; const ptr
+ mov rdx, gword ptr [rdx]
+ shl eax, 2
+ mov ecx, eax
+ mov edx, dword ptr [rdx+rcx+0x10]
mov dword ptr [r8], edx
- mov edx, r9d
- ;; size=50 bbWeight=4 PerfScore 45.00
+ mov eax, r9d
+ ;; size=52 bbWeight=4 PerfScore 46.00
G_M63296_IG64:
- cmp edx, 100
+ cmp eax, 100
jae SHORT G_M63296_IG63
;; size=5 bbWeight=4 PerfScore 5.00
G_M63296_IG65:
- cmp edx, 10
+ cmp eax, 10
jb SHORT G_M63296_IG68
add r8, -4
mov r9, 0xD1FFAB1E ; const ptr
mov r9, gword ptr [r9]
- shl edx, 2
+ shl eax, 2
+ mov edx, eax
mov r9d, dword ptr [r9+rdx+0x10]
mov dword ptr [r8], r9d
jmp SHORT G_M63296_IG69
- align [8 bytes for IG81]
- ;; size=43 bbWeight=0.50 PerfScore 4.62
+ align [7 bytes for IG81]
+ ;; size=44 bbWeight=0.50 PerfScore 4.75
G_M63296_IG66:
xor r8d, r8d
mov dword ptr [rbp-0x70], r8d
;; size=7 bbWeight=0.50 PerfScore 0.62
G_M63296_IG67:
jmp SHORT G_M63296_IG70
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M63296_IG68:
add r8, -2
- lea r9d, [rdx+0x30]
+ lea r9d, [rax+0x30]
mov word ptr [r8], r9w
;; size=12 bbWeight=0.50 PerfScore 0.88
G_M63296_IG69:
xor r8d, r8d
mov bword ptr [rbp-0x80], r8
mov r8d, 1
;; size=13 bbWeight=0.50 PerfScore 0.75
G_M63296_IG70:
xor r9, r9
mov bword ptr [rbp-0x80], r9
jmp SHORT G_M63296_IG73
;; size=9 bbWeight=0.50 PerfScore 1.62
G_M63296_IG71:
lea rdx, bword ptr [r8+0x0C]
mov ecx, dword ptr [r8+0x08]
;; size=8 bbWeight=0.50 PerfScore 1.25
G_M63296_IG72:
lea r8, [rbp-0x70]
mov qword ptr [rsp], r8
mov r8, r13
- mov r9d, dword ptr [rbp-0x90]
+ mov r9d, r12d
mov edi, dword ptr [rbp-0x74]
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
mov r8d, eax
- ;; size=41 bbWeight=0.50 PerfScore 3.75
+ ;; size=37 bbWeight=0.50 PerfScore 3.38
G_M63296_IG73:
test r8d, r8d
je SHORT G_M63296_IG74
mov edi, dword ptr [rbp-0x70]
add dword ptr [rbx+0x08], edi
jmp G_M63296_IG78
;; size=16 bbWeight=0.50 PerfScore 3.62
G_M63296_IG74:
mov r14d, dword ptr [rbp-0x64]
test r14d, r14d
jge SHORT G_M63296_IG75
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
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_IG76
;; size=50 bbWeight=0.50 PerfScore 6.75
G_M63296_IG75:
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_IG76:
test rax, rax
je SHORT G_M63296_IG78
mov edi, dword ptr [rbx+0x08]
cmp dword ptr [rax+0x08], 1
jne SHORT G_M63296_IG77
cmp edi, dword ptr [rbx+0x18]
jae SHORT G_M63296_IG77
- cmp edi, dword ptr [r12+0x08]
+ lea rsi, bword ptr [rbx+0x10]
+ cmp edi, dword ptr [rsi+0x08]
jae G_M63296_IG104
- mov rsi, bword ptr [r12]
+ mov rsi, bword ptr [rsi]
mov ecx, edi
cmp dword ptr [rax+0x08], 0
jbe G_M63296_IG104
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_IG78
- ;; size=61 bbWeight=0.50 PerfScore 13.88
+ ;; size=62 bbWeight=0.50 PerfScore 14.12
G_M63296_IG77:
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_IG78:
mov edi, dword ptr [rbx+0x08]
mov rax, bword ptr [rbx+0x10]
mov ecx, dword ptr [rbx+0x18]
cmp edi, ecx
jae G_M63296_IG97
cmp edi, ecx
jae G_M63296_IG104
mov ecx, edi
mov word ptr [rax+2*rcx], 59
inc edi
mov dword ptr [rbx+0x08], edi
jmp G_M63296_IG98
;; size=44 bbWeight=0.50 PerfScore 6.50
G_M63296_IG79:
- mov rdi, bword ptr [rax]
- mov eax, r14d
- lea rax, bword ptr [rdi+2*rax]
- sub ecx, r14d
- mov r14, rax
- mov dword ptr [rbp-0x88], ecx
+ mov rdi, bword ptr [r14]
+ mov ecx, r12d
+ lea r14, bword ptr [rdi+2*rcx]
+ sub eax, r12d
+ mov r12, r14
+ mov dword ptr [rbp-0x88], eax
test r15d, r15d
jge SHORT G_M63296_IG80
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
mov r8, gword ptr [rax+0x28]
test r8, r8
jne G_M63296_IG89
xor rdx, rdx
xor ecx, ecx
jmp G_M63296_IG90
;; size=64 bbWeight=0.50 PerfScore 7.38
G_M63296_IG80:
mov r8d, r15d
mov edx, r15d
or edx, 1
- xor r9d, r9d
- lzcnt r9d, edx
- xor r9d, 31
+ xor ecx, ecx
+ lzcnt ecx, edx
+ xor ecx, 31
+ mov r9d, ecx
mov rdx, 0xD1FFAB1E ; static handle
add r8, qword ptr [rdx+8*r9]
sar r8, 32
- cmp r8d, ecx
+ cmp r8d, eax
jg SHORT G_M63296_IG84
mov dword ptr [rbp-0x48], r8d
- mov bword ptr [rbp-0x50], rax
+ mov bword ptr [rbp-0x50], r14
movsxd r8, r8d
- lea r8, [rax+2*r8]
+ lea r8, [r14+2*r8]
mov r9d, r15d
cmp r9d, 10
jb SHORT G_M63296_IG86
jmp SHORT G_M63296_IG82
- ;; size=70 bbWeight=0.50 PerfScore 7.25
+ ;; size=70 bbWeight=0.50 PerfScore 7.38
G_M63296_IG81:
add r8, -4
mov edx, r9d
imul rdx, rdx, 0xD1FFAB1E
shr rdx, 37
imul ecx, edx, 100
sub r9d, ecx
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rcx]
shl r9d, 2
mov r9d, dword ptr [rcx+r9+0x10]
mov dword ptr [r8], r9d
mov r9d, edx
;; size=52 bbWeight=4 PerfScore 45.00
G_M63296_IG82:
cmp r9d, 100
jae SHORT G_M63296_IG81
;; size=6 bbWeight=4 PerfScore 5.00
G_M63296_IG83:
cmp r9d, 10
jb SHORT G_M63296_IG86
add r8, -4
mov rdx, 0xD1FFAB1E ; const ptr
mov rdx, gword ptr [rdx]
shl r9d, 2
mov r9d, dword ptr [rdx+r9+0x10]
mov dword ptr [r8], r9d
jmp SHORT G_M63296_IG87
;; size=37 bbWeight=0.50 PerfScore 4.62
G_M63296_IG84:
xor r8d, r8d
mov dword ptr [rbp-0x48], r8d
;; size=7 bbWeight=0.50 PerfScore 0.62
G_M63296_IG85:
jmp SHORT G_M63296_IG88
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M63296_IG86:
add r8, -2
add r9d, 48
mov word ptr [r8], r9w
;; size=12 bbWeight=0.50 PerfScore 0.75
G_M63296_IG87:
xor r8d, r8d
mov bword ptr [rbp-0x50], r8
mov r8d, 1
;; size=13 bbWeight=0.50 PerfScore 0.75
G_M63296_IG88:
xor r9, r9
mov bword ptr [rbp-0x50], r9
jmp SHORT G_M63296_IG91
;; size=9 bbWeight=0.50 PerfScore 1.62
G_M63296_IG89:
lea rdx, bword ptr [r8+0x0C]
mov ecx, dword ptr [r8+0x08]
;; size=8 bbWeight=0.50 PerfScore 1.25
G_M63296_IG90:
lea r8, [rbp-0x48]
mov qword ptr [rsp], r8
- mov r8, r14
+ mov r8, r12
mov r9d, dword ptr [rbp-0x88]
mov edi, r15d
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
mov r8d, eax
;; size=41 bbWeight=0.50 PerfScore 3.38
G_M63296_IG91:
test r8d, r8d
je SHORT G_M63296_IG92
mov edi, dword ptr [rbp-0x48]
add dword ptr [rbx+0x08], edi
jmp G_M63296_IG96
;; size=16 bbWeight=0.50 PerfScore 3.62
G_M63296_IG92:
test r15d, r15d
jge SHORT G_M63296_IG93
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
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_IG94
;; size=46 bbWeight=0.50 PerfScore 6.25
G_M63296_IG93:
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_IG94:
test rax, rax
je SHORT G_M63296_IG96
mov edi, dword ptr [rbx+0x08]
cmp dword ptr [rax+0x08], 1
jne SHORT G_M63296_IG95
cmp edi, dword ptr [rbx+0x18]
jae SHORT G_M63296_IG95
- mov rsi, r12
+ lea rsi, bword ptr [rbx+0x10]
cmp edi, dword ptr [rsi+0x08]
jae G_M63296_IG104
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_IG96
- ;; size=51 bbWeight=0.50 PerfScore 12.00
+ ;; size=52 bbWeight=0.50 PerfScore 12.12
G_M63296_IG95:
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_IG96:
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_IG97
mov eax, edi
mov word ptr [rsi+2*rax], 59
inc edi
mov dword ptr [rbx+0x08], edi
jmp SHORT G_M63296_IG98
;; size=29 bbWeight=0.50 PerfScore 5.88
G_M63296_IG97:
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_IG98:
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_IG100
;; size=14 bbWeight=1 PerfScore 7.25
G_M63296_IG99:
cmp edi, eax
jae SHORT G_M63296_IG104
mov eax, edi
mov word ptr [rsi+2*rax], 93
inc edi
mov dword ptr [rbx+0x08], edi
jmp SHORT G_M63296_IG101
;; size=19 bbWeight=0.50 PerfScore 2.88
G_M63296_IG100:
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_IG101:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M63296_IG102:
- add rsp, 152
+ add rsp, 136
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
G_M63296_IG103:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M63296_IG104:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2841, prolog size 46, PerfScore 599.46, instruction count 746, allocated bytes for code 2841 (MethodHash=a16208bf) for method System.TimeZoneInfo+StringSerializer:SerializeTransitionTime(System.TimeZoneInfo+TransitionTime,byref) (FullOpts)
+; Total bytes of code 2826, prolog size 46, PerfScore 599.33, instruction count 748, allocated bytes for code 2826 (MethodHash=a16208bf) for method System.TimeZoneInfo+StringSerializer:SerializeTransitionTime(System.TimeZoneInfo+TransitionTime,byref) (FullOpts)
-8 (-1.27 % of base) - System.Number:FormatExponent[ubyte](byref,System.Globalization.NumberFormatInfo,int,ushort,int,ubyte)
; Assembly listing for method System.Number:FormatExponent[ubyte](byref,System.Globalization.NumberFormatInfo,int,ushort,int,ubyte) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 11 single block inlinees; 11 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T06] ( 22, 15 ) byref -> rbx single-def
-; V01 arg1 [V01,T10] ( 8, 5 ) ref -> r15 class-hnd single-def <System.Globalization.NumberFormatInfo>
-; V02 arg2 [V02,T11] ( 6, 5 ) int -> r14
-; V03 arg3 [V03,T13] ( 3, 3 ) ushort -> rcx single-def
-; V04 arg4 [V04,T14] ( 3, 3 ) int -> r13 single-def
-; V05 arg5 [V05,T15] ( 3, 2.50) ubyte -> r12 single-def
-; V06 loc0 [V06,T35] ( 2, 2 ) long -> rdx
+; V00 arg0 [V00,T08] ( 22, 15 ) byref -> rbx single-def
+; V01 arg1 [V01,T12] ( 8, 5 ) ref -> r15 class-hnd single-def <System.Globalization.NumberFormatInfo>
+; V02 arg2 [V02,T13] ( 6, 5 ) int -> r14
+; V03 arg3 [V03,T15] ( 3, 3 ) ushort -> rcx single-def
+; V04 arg4 [V04,T16] ( 3, 3 ) int -> r13 single-def
+; V05 arg5 [V05,T17] ( 3, 2.50) ubyte -> r12 single-def
+; V06 loc0 [V06,T25] ( 3, 3 ) long -> rdx
;* V07 loc1 [V07 ] ( 0, 0 ) long -> zero-ref
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V09 tmp1 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V10 tmp2 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V11 tmp3 [V11 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V12 tmp4 [V12,T20] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
+; V12 tmp4 [V12,T22] ( 4, 3 ) int -> rdi "Inline stloc first use temp"
;* V13 tmp5 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
-; V14 tmp6 [V14,T17] ( 3, 4 ) ubyte -> rsi "Inlining Arg"
+; V14 tmp6 [V14,T19] ( 3, 4 ) ubyte -> rsi "Inlining Arg"
;* V15 tmp7 [V15 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
-; V16 tmp8 [V16,T33] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" <ubyte[]>
-; V17 tmp9 [V17,T18] ( 6, 3 ) ref -> rax
-; V18 tmp10 [V18,T21] ( 3, 3 ) ref -> r12 class-hnd single-def "dup spill" <ubyte[]>
+; V16 tmp8 [V16,T35] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" <ubyte[]>
+; V17 tmp9 [V17,T20] ( 6, 3 ) ref -> rax
+; V18 tmp10 [V18,T23] ( 3, 3 ) ref -> r12 class-hnd single-def "dup spill" <ubyte[]>
;* V19 tmp11 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ubyte[]>
;* V20 tmp12 [V20 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-; V21 tmp13 [V21,T28] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
+; V21 tmp13 [V21,T30] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
;* V22 tmp14 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
;* V23 tmp15 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V24 tmp16 [V24 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
-; V25 tmp17 [V25,T34] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" <ubyte[]>
-; V26 tmp18 [V26,T19] ( 6, 3 ) ref -> rax
-; V27 tmp19 [V27,T22] ( 3, 3 ) ref -> r12 class-hnd single-def "dup spill" <ubyte[]>
+; V25 tmp17 [V25,T36] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" <ubyte[]>
+; V26 tmp18 [V26,T21] ( 6, 3 ) ref -> rax
+; V27 tmp19 [V27,T24] ( 3, 3 ) ref -> r12 class-hnd single-def "dup spill" <ubyte[]>
;* V28 tmp20 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ubyte[]>
;* V29 tmp21 [V29 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-; V30 tmp22 [V30,T29] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
+; V30 tmp22 [V30,T31] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
;* V31 tmp23 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
;* V32 tmp24 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V33 tmp25 [V33,T00] ( 10,148 ) int -> registers "Inlining Arg"
; V34 tmp26 [V34,T01] ( 9,126 ) long -> rsi "Inlining Arg"
; V35 tmp27 [V35,T02] ( 6, 98 ) int -> r13 "Inlining Arg"
;* V36 tmp28 [V36 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
;* V37 tmp29 [V37 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V38 tmp30 [V38 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
-; V39 tmp31 [V39,T03] ( 2, 64 ) long -> rsi "dup spill"
-; V40 tmp32 [V40,T07] ( 3, 12 ) int -> rax "Inline stloc first use temp"
-;* V41 tmp33 [V41 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
-;* V42 tmp34 [V42 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V43 tmp35 [V43 ] ( 0, 0 ) long -> zero-ref
+; V39 tmp31 [V39,T04] ( 2, 64 ) long -> rsi "dup spill"
+; V40 tmp32 [V40,T07] ( 3, 24 ) int -> rax "dup spill"
+; V41 tmp33 [V41,T10] ( 2, 8 ) int -> rcx "Inline stloc first use temp"
+;* V42 tmp34 [V42 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
+;* V43 tmp35 [V43 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V44 tmp36 [V44 ] ( 0, 0 ) long -> zero-ref
-; V45 tmp37 [V45,T08] ( 2, 8 ) ref -> rcx
-;* V46 tmp38 [V46 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V47 tmp39 [V47,T04] ( 3, 48 ) int -> rdi "Inline stloc first use temp"
-;* V48 tmp40 [V48 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
-;* V49 tmp41 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V50 tmp42 [V50 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V51 tmp43 [V51,T12] ( 3, 6 ) int -> rdx "Inlining Arg"
-; V52 tmp44 [V52,T24] ( 4, 2.50) int -> rdi "Inline stloc first use temp"
-;* V53 tmp45 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
-;* V54 tmp46 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V55 tmp47 [V55,T32] ( 3, 2 ) byref -> rsi single-def "field V09._reference (fldOffset=0x0)" P-INDEP
-; V56 tmp48 [V56,T25] ( 3, 2.50) int -> rdx "field V09._length (fldOffset=0x8)" P-INDEP
-;* V57 tmp49 [V57 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
-;* V58 tmp50 [V58 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
-;* V59 tmp51 [V59 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
-;* V60 tmp52 [V60 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-; V61 tmp53 [V61,T37] ( 2, 1.50) byref -> rax single-def "field V13._reference (fldOffset=0x0)" P-INDEP
-; V62 tmp54 [V62,T36] ( 2, 2 ) int -> rcx "field V13._length (fldOffset=0x8)" P-INDEP
-;* V63 tmp55 [V63 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
-;* V64 tmp56 [V64 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
-; V65 tmp57 [V65,T26] ( 4, 2 ) byref -> rsi "field V20._reference (fldOffset=0x0)" P-INDEP
-; V66 tmp58 [V66,T30] ( 4, 2 ) int -> rdx "field V20._length (fldOffset=0x8)" P-INDEP
-; V67 tmp59 [V67,T40] ( 2, 1 ) byref -> rax single-def "field V22._reference (fldOffset=0x0)" P-INDEP
-; V68 tmp60 [V68,T42] ( 2, 1 ) int -> rcx "field V22._length (fldOffset=0x8)" P-INDEP
-;* V69 tmp61 [V69 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
-;* V70 tmp62 [V70 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
-;* V71 tmp63 [V71 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
-;* V72 tmp64 [V72 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
-; V73 tmp65 [V73,T27] ( 4, 2 ) byref -> rsi "field V29._reference (fldOffset=0x0)" P-INDEP
-; V74 tmp66 [V74,T31] ( 4, 2 ) int -> rdx "field V29._length (fldOffset=0x8)" P-INDEP
-; V75 tmp67 [V75,T41] ( 2, 1 ) byref -> rax single-def "field V31._reference (fldOffset=0x0)" P-INDEP
-; V76 tmp68 [V76,T43] ( 2, 1 ) int -> rcx "field V31._length (fldOffset=0x8)" P-INDEP
-;* V77 tmp69 [V77 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
-;* V78 tmp70 [V78 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
-;* V79 tmp71 [V79 ] ( 0, 0 ) int -> zero-ref "field V36.Item1 (fldOffset=0x0)" P-INDEP
-;* V80 tmp72 [V80 ] ( 0, 0 ) int -> zero-ref "field V36.Item2 (fldOffset=0x4)" P-INDEP
-;* V81 tmp73 [V81 ] ( 0, 0 ) int -> zero-ref "field V38.Item1 (fldOffset=0x0)" P-INDEP
-;* V82 tmp74 [V82 ] ( 0, 0 ) int -> zero-ref "field V38.Item2 (fldOffset=0x4)" P-INDEP
-;* V83 tmp75 [V83 ] ( 0, 0 ) int -> zero-ref "field V41.Item1 (fldOffset=0x0)" P-INDEP
-; V84 tmp76 [V84,T09] ( 2, 8 ) int -> r14 "field V41.Item2 (fldOffset=0x4)" P-INDEP
-;* V85 tmp77 [V85 ] ( 0, 0 ) int -> zero-ref "field V48.Item1 (fldOffset=0x0)" P-INDEP
-; V86 tmp78 [V86,T05] ( 2, 32 ) int -> r8 "field V48.Item2 (fldOffset=0x4)" P-INDEP
-; V87 tmp79 [V87,T38] ( 2, 1.50) byref -> rax single-def "field V53._reference (fldOffset=0x0)" P-INDEP
-; V88 tmp80 [V88,T39] ( 2, 1.50) int -> rcx "field V53._length (fldOffset=0x8)" P-INDEP
-;* V89 tmp81 [V89 ] ( 0, 0 ) byref -> zero-ref single-def "field V54._reference (fldOffset=0x0)" P-INDEP
-;* V90 tmp82 [V90 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
-; V91 GsCookie [V91 ] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V92 cse0 [V92,T16] ( 2, 4.25) ref -> rdi hoist "CSE #02: moderate"
-; V93 cse1 [V93,T23] ( 3, 3 ) long -> rdx "CSE #03: moderate"
+;* V45 tmp37 [V45 ] ( 0, 0 ) long -> zero-ref
+; V46 tmp38 [V46,T09] ( 2, 8 ) ref -> rcx
+;* V47 tmp39 [V47 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V48 tmp40 [V48,T03] ( 3, 96 ) int -> rdi "dup spill"
+; V49 tmp41 [V49,T05] ( 2, 32 ) int -> rcx "Inline stloc first use temp"
+;* V50 tmp42 [V50 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
+;* V51 tmp43 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V52 tmp44 [V52 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V53 tmp45 [V53,T14] ( 3, 6 ) int -> rdx "Inlining Arg"
+; V54 tmp46 [V54,T26] ( 4, 2.50) int -> rdi "Inline stloc first use temp"
+;* V55 tmp47 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
+;* V56 tmp48 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+; V57 tmp49 [V57,T34] ( 3, 2 ) byref -> rsi single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+; V58 tmp50 [V58,T27] ( 3, 2.50) int -> rdx "field V09._length (fldOffset=0x8)" P-INDEP
+;* V59 tmp51 [V59 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
+;* V60 tmp52 [V60 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
+;* V61 tmp53 [V61 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V62 tmp54 [V62 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
+; V63 tmp55 [V63,T38] ( 2, 1.50) byref -> rax single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+; V64 tmp56 [V64,T37] ( 2, 2 ) int -> rcx "field V13._length (fldOffset=0x8)" P-INDEP
+;* V65 tmp57 [V65 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V66 tmp58 [V66 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
+; V67 tmp59 [V67,T28] ( 4, 2 ) byref -> rsi "field V20._reference (fldOffset=0x0)" P-INDEP
+; V68 tmp60 [V68,T32] ( 4, 2 ) int -> rdx "field V20._length (fldOffset=0x8)" P-INDEP
+; V69 tmp61 [V69,T41] ( 2, 1 ) byref -> rax single-def "field V22._reference (fldOffset=0x0)" P-INDEP
+; V70 tmp62 [V70,T43] ( 2, 1 ) int -> rcx "field V22._length (fldOffset=0x8)" P-INDEP
+;* V71 tmp63 [V71 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
+;* V72 tmp64 [V72 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
+;* V73 tmp65 [V73 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
+;* V74 tmp66 [V74 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
+; V75 tmp67 [V75,T29] ( 4, 2 ) byref -> rsi "field V29._reference (fldOffset=0x0)" P-INDEP
+; V76 tmp68 [V76,T33] ( 4, 2 ) int -> rdx "field V29._length (fldOffset=0x8)" P-INDEP
+; V77 tmp69 [V77,T42] ( 2, 1 ) byref -> rax single-def "field V31._reference (fldOffset=0x0)" P-INDEP
+; V78 tmp70 [V78,T44] ( 2, 1 ) int -> rcx "field V31._length (fldOffset=0x8)" P-INDEP
+;* V79 tmp71 [V79 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
+;* V80 tmp72 [V80 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
+;* V81 tmp73 [V81 ] ( 0, 0 ) int -> zero-ref "field V36.Item1 (fldOffset=0x0)" P-INDEP
+;* V82 tmp74 [V82 ] ( 0, 0 ) int -> zero-ref "field V36.Item2 (fldOffset=0x4)" P-INDEP
+;* V83 tmp75 [V83 ] ( 0, 0 ) int -> zero-ref "field V38.Item1 (fldOffset=0x0)" P-INDEP
+;* V84 tmp76 [V84 ] ( 0, 0 ) int -> zero-ref "field V38.Item2 (fldOffset=0x4)" P-INDEP
+;* V85 tmp77 [V85 ] ( 0, 0 ) int -> zero-ref "field V42.Item1 (fldOffset=0x0)" P-INDEP
+; V86 tmp78 [V86,T11] ( 2, 8 ) int -> r14 "field V42.Item2 (fldOffset=0x4)" P-INDEP
+;* V87 tmp79 [V87 ] ( 0, 0 ) int -> zero-ref "field V50.Item1 (fldOffset=0x0)" P-INDEP
+; V88 tmp80 [V88,T06] ( 2, 32 ) int -> r8 "field V50.Item2 (fldOffset=0x4)" P-INDEP
+; V89 tmp81 [V89,T39] ( 2, 1.50) byref -> rax single-def "field V55._reference (fldOffset=0x0)" P-INDEP
+; V90 tmp82 [V90,T40] ( 2, 1.50) int -> rcx "field V55._length (fldOffset=0x8)" P-INDEP
+;* V91 tmp83 [V91 ] ( 0, 0 ) byref -> zero-ref single-def "field V56._reference (fldOffset=0x0)" P-INDEP
+;* V92 tmp84 [V92 ] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP
+; V93 GsCookie [V93 ] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V94 cse0 [V94,T18] ( 2, 4.25) ref -> rdi hoist "CSE #02: moderate"
;
; Lcl frame size = 8
G_M37424_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov qword ptr [rbp-0x30], 0xD1FFAB1E
mov rbx, rdi
mov r15, rsi
mov r14d, edx
mov r13d, r8d
mov r12d, r9d
;; size=39 bbWeight=1 PerfScore 9.75
G_M37424_IG02:
movzx rsi, cl
mov edi, dword ptr [rbx+0x08]
mov rax, bword ptr [rbx+0x10]
mov ecx, dword ptr [rbx+0x18]
cmp edi, ecx
jae SHORT G_M37424_IG04
;; size=18 bbWeight=1 PerfScore 7.50
G_M37424_IG03:
mov ecx, edi
mov byte ptr [rax+rcx], sil
inc edi
mov dword ptr [rbx+0x08], edi
jmp SHORT G_M37424_IG05
- align [6 bytes for IG19]
- ;; size=19 bbWeight=0.50 PerfScore 2.25
+ align [0 bytes for IG19]
+ ;; size=13 bbWeight=0.50 PerfScore 2.25
G_M37424_IG04:
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
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M37424_IG05:
test r14d, r14d
jge SHORT G_M37424_IG08
;; size=5 bbWeight=1 PerfScore 1.25
G_M37424_IG06:
mov rax, gword ptr [r15+0x98]
test rax, rax
jne SHORT G_M37424_IG07
mov rsi, gword ptr [r15+0x28]
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
mov rax, 0xD1FFAB1E ; code for System.Text.UTF8Encoding+UTF8EncodingSealed:GetBytes(System.String):ubyte[]:this
call [rax]System.Text.UTF8Encoding+UTF8EncodingSealed:GetBytes(System.String):ubyte[]:this
mov r12, rax
lea rdi, bword ptr [r15+0x98]
mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
mov rax, r12
;; size=62 bbWeight=0.50 PerfScore 6.50
G_M37424_IG07:
test rax, rax
jne G_M37424_IG13
xor rsi, rsi
xor edx, edx
jmp G_M37424_IG14
;; size=18 bbWeight=0.50 PerfScore 1.88
G_M37424_IG08:
test r12b, r12b
je G_M37424_IG17
mov rax, gword ptr [r15+0x90]
test rax, rax
jne SHORT G_M37424_IG09
mov rsi, gword ptr [r15+0x20]
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
mov rax, 0xD1FFAB1E ; code for System.Text.UTF8Encoding+UTF8EncodingSealed:GetBytes(System.String):ubyte[]:this
call [rax]System.Text.UTF8Encoding+UTF8EncodingSealed:GetBytes(System.String):ubyte[]:this
mov r12, rax
lea rdi, bword ptr [r15+0x90]
mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
mov rax, r12
;; size=71 bbWeight=0.50 PerfScore 7.12
G_M37424_IG09:
test rax, rax
jne SHORT G_M37424_IG10
xor rsi, rsi
xor edx, edx
jmp SHORT G_M37424_IG11
;; size=11 bbWeight=0.50 PerfScore 1.88
G_M37424_IG10:
lea rsi, bword ptr [rax+0x10]
mov edx, dword ptr [rax+0x08]
;; size=7 bbWeight=0.50 PerfScore 1.25
G_M37424_IG11:
mov edi, dword ptr [rbx+0x08]
mov rax, bword ptr [rbx+0x10]
mov ecx, dword ptr [rbx+0x18]
cmp edx, 1
jne SHORT G_M37424_IG12
cmp edi, ecx
jae SHORT G_M37424_IG12
mov edx, edi
movzx rsi, byte ptr [rsi]
mov byte ptr [rax+rdx], sil
inc edi
mov dword ptr [rbx+0x08], edi
jmp SHORT G_M37424_IG17
;; size=36 bbWeight=0.50 PerfScore 7.50
G_M37424_IG12:
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 SHORT G_M37424_IG17
;; size=17 bbWeight=0.50 PerfScore 2.75
G_M37424_IG13:
lea rsi, bword ptr [rax+0x10]
mov edx, dword ptr [rax+0x08]
;; size=7 bbWeight=0.50 PerfScore 1.25
G_M37424_IG14:
mov edi, dword ptr [rbx+0x08]
mov rax, bword ptr [rbx+0x10]
mov ecx, dword ptr [rbx+0x18]
cmp edx, 1
jne SHORT G_M37424_IG15
cmp edi, ecx
jae SHORT G_M37424_IG15
mov edx, edi
movzx rsi, byte ptr [rsi]
mov byte ptr [rax+rdx], sil
inc edi
mov dword ptr [rbx+0x08], edi
jmp SHORT G_M37424_IG16
;; size=36 bbWeight=0.50 PerfScore 7.50
G_M37424_IG15:
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
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M37424_IG16:
neg r14d
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M37424_IG17:
test dword ptr [rsp], esp
sub rsp, 16
lea rdx, [rsp]
- add rdx, 10
- mov rsi, rdx
+ lea rsi, [rdx+0x0A]
cmp r14d, 100
jb SHORT G_M37424_IG21
- ;; size=24 bbWeight=1 PerfScore 5.50
+ ;; size=21 bbWeight=1 PerfScore 5.50
G_M37424_IG18:
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
;; size=13 bbWeight=0.25 PerfScore 0.56
G_M37424_IG19:
add rsi, -2
add r13d, -2
mov eax, r14d
imul rax, rax, 0xD1FFAB1E
shr rax, 37
imul ecx, eax, 100
sub r14d, ecx
mov rcx, rdi
add r14d, r14d
mov r8d, r14d
mov cx, word ptr [rcx+r8+0x10]
mov word ptr [rsi], cx
cmp eax, 100
jb SHORT G_M37424_IG23
;; size=51 bbWeight=4 PerfScore 42.00
G_M37424_IG20:
mov r14d, eax
jmp SHORT G_M37424_IG19
;; size=5 bbWeight=2 PerfScore 4.50
G_M37424_IG21:
mov eax, r14d
jmp SHORT G_M37424_IG23
- align [3 bytes for IG22]
- ;; size=8 bbWeight=0.50 PerfScore 1.12
+ align [0 bytes for IG22]
+ ;; size=5 bbWeight=0.50 PerfScore 1.12
G_M37424_IG22:
dec r13d
mov edi, 0xD1FFAB1E
mov ecx, eax
imul rdi, rcx
shr rdi, 35
lea ecx, [rdi+4*rdi]
add ecx, ecx
mov r8d, eax
sub r8d, ecx
mov eax, edi
dec rsi
add r8d, 48
mov byte ptr [rsi], r8b
;; size=41 bbWeight=16 PerfScore 100.00
G_M37424_IG23:
test eax, eax
jne SHORT G_M37424_IG22
;; size=4 bbWeight=8 PerfScore 10.00
G_M37424_IG24:
test r13d, r13d
jg SHORT G_M37424_IG22
;; size=5 bbWeight=8 PerfScore 10.00
G_M37424_IG25:
+ add rdx, 10
sub rdx, rsi
test edx, edx
jl SHORT G_M37424_IG31
mov edi, dword ptr [rbx+0x08]
mov rax, bword ptr [rbx+0x10]
mov ecx, dword ptr [rbx+0x18]
cmp edx, 1
jne SHORT G_M37424_IG27
- ;; size=22 bbWeight=1 PerfScore 8.75
+ ;; size=26 bbWeight=1 PerfScore 9.00
G_M37424_IG26:
cmp edi, ecx
jae SHORT G_M37424_IG27
mov edx, edi
movzx rsi, byte ptr [rsi]
mov byte ptr [rax+rdx], sil
inc edi
mov dword ptr [rbx+0x08], edi
jmp SHORT G_M37424_IG28
;; size=21 bbWeight=0.50 PerfScore 3.88
G_M37424_IG27:
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
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M37424_IG28:
cmp qword ptr [rbp-0x30], 0xD1FFAB1E
je SHORT G_M37424_IG29
call CORINFO_HELP_FAIL_FAST
;; size=15 bbWeight=1 PerfScore 4.00
G_M37424_IG29:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M37424_IG30:
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_M37424_IG31:
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 632, prolog size 39, PerfScore 258.81, instruction count 186, allocated bytes for code 632 (MethodHash=2d536dcf) for method System.Number:FormatExponent[ubyte](byref,System.Globalization.NumberFormatInfo,int,ushort,int,ubyte) (FullOpts)
+; Total bytes of code 624, prolog size 39, PerfScore 259.06, instruction count 186, allocated bytes for code 624 (MethodHash=2d536dcf) for method System.Number:FormatExponent[ubyte](byref,System.Globalization.NumberFormatInfo,int,ushort,int,ubyte) (FullOpts)