306 (8.57 % of base) - System.Text.RegularExpressions.RegexPrefixAnalyzer:g__FindPrefixesCore|0_1(System.Text.RegularExpressions.RegexNode,System.Collections.Generic.List`1[System.Text.StringBuilder],ubyte):ubyte
; Assembly listing for method System.Text.RegularExpressions.RegexPrefixAnalyzer:<FindPrefixes>g__FindPrefixesCore|0_1(System.Text.RegularExpressions.RegexNode,System.Collections.Generic.List`1[System.Text.StringBuilder],ubyte):ubyte (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 72 single block inlinees; 44 inlinees without PGO data
+; 0 inlinees with PGO data; 72 single block inlinees; 34 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T132] ( 3, 3 ) ref -> rdi class-hnd single-def <System.Text.RegularExpressions.RegexNode>
-; V01 arg1 [V01,T133] ( 3, 3 ) ref -> rsi class-hnd single-def <System.Collections.Generic.List`1[System.Text.StringBuilder]>
-; V02 arg2 [V02,T68] ( 8, 15.50) ubyte -> rbx single-def
+; V00 arg0 [V00,T103] ( 3, 3 ) ref -> rdi class-hnd single-def <System.Text.RegularExpressions.RegexNode>
+; V01 arg1 [V01,T104] ( 3, 3 ) ref -> rsi class-hnd single-def <System.Collections.Generic.List`1[System.Text.StringBuilder]>
+; V02 arg2 [V02,T51] ( 8, 15.50) ubyte -> rbx single-def
;* V03 loc0 [V03 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op <System.Span`1[ushort]>
;* V04 loc1 [V04 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[ushort]>
;* V05 loc2 [V05 ] ( 0, 0 ) ubyte -> zero-ref
-; V06 loc3 [V06,T157] ( 3, 3 ) int -> rbx
-;* V07 loc4 [V07 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
-;* V08 loc5 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact ptr <System.Text.StringBuilder>
-;* V09 loc6 [V09 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
-;* V10 loc7 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact ptr <System.Text.StringBuilder>
-; V11 loc8 [V11,T62] ( 4, 21 ) ref -> r14 class-hnd exact single-def <System.String>
-;* V12 loc9 [V12,T189] ( 0, 0 ) int -> zero-ref ptr
-; V13 loc10 [V13,T42] ( 4, 24 ) ushort -> r13
-;* V14 loc11 [V14 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
-;* V15 loc12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact ptr <System.Text.StringBuilder>
-; V16 loc13 [V16,T171] ( 3, 1.50) int -> rax
-; V17 loc14 [V17,T57] ( 5, 23 ) int -> r12
-; V18 loc15 [V18,T33] ( 5, 25 ) int -> rbx
+; V06 loc3 [V06,T105] ( 3, 5 ) int -> rbx
+; V07 loc4 [V07 ] ( 7, 10.50) struct (24) [rbp-0x68] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
+; V08 loc5 [V08,T82] ( 2, 8 ) ref -> rdi class-hnd exact <System.Text.StringBuilder>
+; V09 loc6 [V09 ] ( 7, 10.50) struct (24) [rbp-0x80] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
+; V10 loc7 [V10,T71] ( 3, 10 ) ref -> rdi class-hnd exact <System.Text.StringBuilder>
+; V11 loc8 [V11,T72] ( 4, 9 ) ref -> r14 class-hnd exact single-def <System.String>
+;* V12 loc9 [V12,T160] ( 0, 0 ) int -> zero-ref ptr
+; V13 loc10 [V13,T33] ( 4, 24 ) ushort -> rbx
+; V14 loc11 [V14 ] ( 7, 52 ) struct (24) [rbp-0x98] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
+; V15 loc12 [V15,T09] ( 6, 72 ) ref -> rdi class-hnd exact <System.Text.StringBuilder>
+; V16 loc13 [V16,T139] ( 3, 1.50) int -> rax
+; V17 loc14 [V17,T25] ( 5, 25 ) int -> r12
+; V18 loc15 [V18,T26] ( 5, 25 ) int -> rbx
;* V19 loc16 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Span`1[ushort]>
-;* V20 loc17 [V20,T190] ( 0, 0 ) int -> zero-ref ptr
-; V21 loc18 [V21,T65] ( 2, 20 ) ushort -> [rbp-0x54] spill-single-def ptr
-;* V22 loc19 [V22,T148] ( 0, 0 ) int -> zero-ref ptr
+;* V20 loc17 [V20,T161] ( 0, 0 ) int -> zero-ref ptr
+; V21 loc18 [V21,T48] ( 2, 20 ) ushort -> [rbp-0x9C] spill-single-def ptr
+;* V22 loc19 [V22,T118] ( 0, 0 ) int -> zero-ref ptr
;* V23 loc20 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact ptr <System.Text.StringBuilder>
-;* V24 loc21 [V24,T191] ( 0, 0 ) int -> zero-ref ptr
-;* V25 loc22 [V25 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
-;* V26 loc23 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact ptr <System.Text.StringBuilder>
-; V27 loc24 [V27,T134] ( 3, 5 ) int -> r13
-;* V28 loc25 [V28,T192] ( 0, 0 ) int -> zero-ref ptr
-; V29 loc26 [V29,T128] ( 4, 5.50) int -> r13
-; V30 loc27 [V30,T80] ( 4, 12.50) int -> r12
-; V31 loc28 [V31,T129] ( 4, 5.50) int -> r13
-; V32 loc29 [V32,T25] ( 11, 41.50) ref -> r12 class-hnd <System.Collections.Generic.List`1[System.Text.StringBuilder]>
-; V33 loc30 [V33,T28] ( 17, 36.50) ref -> [rbp-0x98] class-hnd ptr <System.Collections.Generic.List`1[System.Text.StringBuilder]>
+;* V24 loc21 [V24,T162] ( 0, 0 ) int -> zero-ref ptr
+; V25 loc22 [V25 ] ( 7, 10.50) struct (24) [rbp-0xB8] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
+; V26 loc23 [V26,T83] ( 2, 8 ) ref -> rdi class-hnd exact <System.Text.StringBuilder>
+; V27 loc24 [V27,T106] ( 3, 5 ) int -> r13
+;* V28 loc25 [V28,T163] ( 0, 0 ) int -> zero-ref ptr
+; V29 loc26 [V29,T99] ( 4, 5.50) int -> r13
+; V30 loc27 [V30,T60] ( 4, 12.50) int -> r12
+; V31 loc28 [V31,T100] ( 4, 5.50) int -> r13
+; V32 loc29 [V32,T23] ( 11, 29.50) ref -> r12 class-hnd <System.Collections.Generic.List`1[System.Text.StringBuilder]>
+; V33 loc30 [V33,T22] ( 17, 36.50) ref -> [rbp-0x118] class-hnd ptr <System.Collections.Generic.List`1[System.Text.StringBuilder]>
;* V34 loc31 [V34 ] ( 0, 0 ) int -> zero-ref
;* V35 loc32 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Span`1[System.Text.StringBuilder]>
;* V36 loc33 [V36 ] ( 0, 0 ) int -> zero-ref
-;* V37 loc34 [V37,T193] ( 0, 0 ) int -> zero-ref ptr
-;* V38 loc35 [V38 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
-;* V39 loc36 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact ptr <System.Text.StringBuilder>
-;* V40 loc37 [V40,T194] ( 0, 0 ) ubyte -> zero-ref ptr
-; V41 loc38 [V41,T34] ( 5, 25 ) int -> rbx
-;* V42 loc39 [V42,T195] ( 0, 0 ) int -> zero-ref ptr
-; V43 loc40 [V43,T24] ( 5, 44 ) ref -> r13 class-hnd exact <System.Text.StringBuilder>
-;* V44 loc41 [V44,T149] ( 0, 0 ) int -> zero-ref ptr
+;* V37 loc34 [V37,T164] ( 0, 0 ) int -> zero-ref ptr
+; V38 loc35 [V38 ] ( 7, 52 ) struct (24) [rbp-0xD0] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
+; V39 loc36 [V39,T16] ( 3, 48 ) ref -> rdi class-hnd exact <System.Text.StringBuilder>
+;* V40 loc37 [V40,T165] ( 0, 0 ) ubyte -> zero-ref ptr
+; V41 loc38 [V41,T27] ( 5, 25 ) int -> rbx
+;* V42 loc39 [V42,T166] ( 0, 0 ) int -> zero-ref ptr
+; V43 loc40 [V43,T17] ( 5, 44 ) ref -> r13 class-hnd exact <System.Text.StringBuilder>
+;* V44 loc41 [V44,T119] ( 0, 0 ) int -> zero-ref ptr
;* V45 loc42 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact ptr <System.Text.StringBuilder>
-;* V46 loc43 [V46,T196] ( 0, 0 ) int -> zero-ref ptr
+;* V46 loc43 [V46,T167] ( 0, 0 ) int -> zero-ref ptr
;# V47 OutArgs [V47 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V48 tmp1 [V48,T164] ( 2, 2 ) ref -> rsi class-hnd single-def "dup spill" <System.Predicate`1[System.Text.StringBuilder]>
+; V48 tmp1 [V48,T132] ( 2, 2 ) ref -> rsi class-hnd single-def "dup spill" <System.Predicate`1[System.Text.StringBuilder]>
;* V49 tmp2 [V49 ] ( 0, 0 ) ref -> zero-ref single-def ptr
-; V50 tmp3 [V50,T162] ( 4, 2 ) ref -> rsi
+; V50 tmp3 [V50,T130] ( 4, 2 ) ref -> rsi
; V51 tmp4 [V51 ] ( 1, 0.50) struct (32) [rbp-0x50] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
;* V52 tmp5 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V53 tmp6 [V53,T116] ( 6, 6 ) ref -> [rbp-0xA0] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Collections.Generic.List`1[System.Text.StringBuilder]>
-; V54 tmp7 [V54,T144] ( 4, 4 ) ref -> [rbp-0xA8] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Text.StringBuilder>
+; V53 tmp6 [V53,T87] ( 6, 6 ) ref -> [rbp-0x120] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Collections.Generic.List`1[System.Text.StringBuilder]>
+; V54 tmp7 [V54,T113] ( 4, 4 ) ref -> [rbp-0x128] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Text.StringBuilder>
;* V55 tmp8 [V55 ] ( 0, 0 ) byref -> zero-ref single-def ptr "impAppendStmt"
-; V56 tmp9 [V56,T63] ( 5, 20 ) ref -> [rbp-0xB0] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Text.StringBuilder>
-; V57 tmp10 [V57,T41] ( 6, 24 ) ref -> [rbp-0xB8] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Collections.Generic.List`1[System.Text.StringBuilder]>
-; V58 tmp11 [V58,T70] ( 4, 16 ) ref -> [rbp-0xC0] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Text.StringBuilder>
+; V56 tmp9 [V56,T46] ( 5, 20 ) ref -> [rbp-0x130] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Text.StringBuilder>
+; V57 tmp10 [V57,T31] ( 6, 24 ) ref -> [rbp-0x138] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Collections.Generic.List`1[System.Text.StringBuilder]>
+; V58 tmp11 [V58,T54] ( 4, 16 ) ref -> [rbp-0x140] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Text.StringBuilder>
;* V59 tmp12 [V59 ] ( 0, 0 ) byref -> zero-ref ptr "impAppendStmt"
-; V60 tmp13 [V60,T01] ( 5,128 ) ref -> [rbp-0xC8] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Text.StringBuilder>
-; V61 tmp14 [V61,T64] ( 3, 20 ) ref -> rdi class-hnd exact "impAppendStmt" <System.Text.StringBuilder>
-; V62 tmp15 [V62,T172] ( 3, 1.50) int -> r12
-; V63 tmp16 [V63,T02] ( 5,128 ) ref -> [rbp-0xD0] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Text.StringBuilder>
-; V64 tmp17 [V64,T173] ( 3, 1.50) int -> rbx
-; V65 tmp18 [V65,T130] ( 5, 5 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Predicate`1[System.Text.StringBuilder]>
-; V66 tmp19 [V66,T153] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.RegexPrefixAnalyzer+<>c>
-; V67 tmp20 [V67,T102] ( 3, 8 ) ref -> r14 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
-; V68 tmp21 [V68,T58] ( 4, 22 ) ref -> rax "ISINST eval op1"
+; V60 tmp13 [V60,T01] ( 5,128 ) ref -> [rbp-0x148] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Text.StringBuilder>
+; V61 tmp14 [V61,T47] ( 3, 20 ) ref -> rdi class-hnd exact "impAppendStmt" <System.Text.StringBuilder>
+; V62 tmp15 [V62,T140] ( 3, 1.50) int -> r12
+; V63 tmp16 [V63,T02] ( 5,128 ) ref -> [rbp-0x150] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Text.StringBuilder>
+; V64 tmp17 [V64,T141] ( 3, 1.50) int -> rbx
+; V65 tmp18 [V65,T101] ( 5, 5 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Predicate`1[System.Text.StringBuilder]>
+; V66 tmp19 [V66,T122] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.RegexPrefixAnalyzer+<>c>
+; V67 tmp20 [V67,T78] ( 3, 8 ) ref -> r14 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V68 tmp21 [V68,T42] ( 4, 22 ) ref -> rax "ISINST eval op1"
;* V69 tmp22 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Text.RegularExpressions.RegexNode>
-; V70 tmp23 [V70,T124] ( 2, 4 ) ref -> rax class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V71 tmp24 [V71,T82] ( 3, 12 ) ref -> r14 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]>
-; V72 tmp25 [V72,T180] ( 2, 1 ) int -> rbx "Inline return value spill temp"
-; V73 tmp26 [V73,T158] ( 3, 3 ) int -> rbx "Inlining Arg"
+; V70 tmp23 [V70,T95] ( 2, 4 ) ref -> rax class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
+; V71 tmp24 [V71,T61] ( 3, 12 ) ref -> r14 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]>
+; V72 tmp25 [V72,T148] ( 2, 1 ) int -> rbx "Inline return value spill temp"
+; V73 tmp26 [V73,T126] ( 3, 3 ) int -> rbx "Inlining Arg"
;* V74 tmp27 [V74 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
-;* V75 tmp28 [V75,T107] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V76 tmp29 [V76 ] ( 0, 0 ) ref -> zero-ref class-hnd ptr "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Text.StringBuilder]>
+;* V75 tmp28 [V75 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
+; V76 tmp29 [V76,T32] ( 4, 24 ) ref -> rsi class-hnd exact "Inlining Arg" <System.String>
;* V77 tmp30 [V77 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
-; V78 tmp31 [V78,T71] ( 4, 16 ) ref -> rsi class-hnd exact "Inlining Arg" <System.String>
-;* V79 tmp32 [V79,T108] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V80 tmp33 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd ptr "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Text.StringBuilder]>
-;* V81 tmp34 [V81 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
-;* V82 tmp35 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
-; V83 tmp36 [V83,T51] ( 3, 24 ) int -> rcx "Inline stloc first use temp"
-; V84 tmp37 [V84,T43] ( 3, 24 ) ref -> rdx class-hnd "Inline stloc first use temp" <ushort[]>
-;* V85 tmp38 [V85,T30] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V86 tmp39 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd ptr "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Text.StringBuilder]>
-;* V87 tmp40 [V87 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V88 tmp41 [V88,T181] ( 2, 1 ) int -> r12 "Inline return value spill temp"
-; V89 tmp42 [V89,T159] ( 3, 3 ) int -> r12 "Inlining Arg"
-; V90 tmp43 [V90,T160] ( 3, 3 ) int -> rax "Inlining Arg"
-;* V91 tmp44 [V91 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;* V92 tmp45 [V92 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V93 tmp46 [V93,T19] ( 5, 48 ) ref -> [rbp-0xD8] class-hnd ptr "Inline return value spill temp" <System.Text.StringBuilder>
-; V94 tmp47 [V94,T04] ( 5,112 ) ref -> rsi class-hnd "Inlining Arg" <System.__Canon>
-; V95 tmp48 [V95,T26] ( 3, 40 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Text.StringBuilder[]>
-; V96 tmp49 [V96,T21] ( 4, 48 ) int -> rsi "Inline stloc first use temp"
-;* V97 tmp50 [V97 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
-;* V98 tmp51 [V98,T109] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V99 tmp52 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd ptr "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Text.StringBuilder]>
-; V100 tmp53 [V100,T103] ( 3, 8 ) ref -> rdi class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
-; V101 tmp54 [V101,T59] ( 4, 22 ) ref -> rdi "ISINST eval op1"
-;* V102 tmp55 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Text.RegularExpressions.RegexNode>
-; V103 tmp56 [V103,T125] ( 2, 4 ) ref -> rdi class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V104 tmp57 [V104,T83] ( 3, 12 ) ref -> rax class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]>
-; V105 tmp58 [V105,T182] ( 2, 1 ) int -> r13 "Inline return value spill temp"
-; V106 tmp59 [V106,T161] ( 3, 3 ) int -> r13 "Inlining Arg"
-; V107 tmp60 [V107,T104] ( 3, 8 ) ref -> rdi class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
-; V108 tmp61 [V108,T60] ( 4, 22 ) ref -> rdi "ISINST eval op1"
-;* V109 tmp62 [V109 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Text.RegularExpressions.RegexNode>
-; V110 tmp63 [V110,T126] ( 2, 4 ) ref -> rdi class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V111 tmp64 [V111,T84] ( 3, 12 ) ref -> rax class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]>
-;* V112 tmp65 [V112 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[System.Text.StringBuilder]>
-;* V113 tmp66 [V113 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[System.Text.StringBuilder]>
-; V114 tmp67 [V114,T174] ( 3, 1.50) int -> rcx "Inline stloc first use temp"
-; V115 tmp68 [V115,T165] ( 3, 1.50) ref -> rdx class-hnd single-def "Inline stloc first use temp" <System.Text.StringBuilder[]>
-;* V116 tmp69 [V116 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[System.Text.StringBuilder]>
-;* V117 tmp70 [V117 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V118 tmp71 [V118,T105] ( 3, 8 ) ref -> rdi class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
-; V119 tmp72 [V119,T61] ( 4, 22 ) ref -> rdi "ISINST eval op1"
-;* V120 tmp73 [V120 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Text.RegularExpressions.RegexNode>
-; V121 tmp74 [V121,T127] ( 2, 4 ) ref -> rdi class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V122 tmp75 [V122,T85] ( 3, 12 ) ref -> rdx class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]>
-;* V123 tmp76 [V123 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
-;* V124 tmp77 [V124,T31] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V125 tmp78 [V125 ] ( 0, 0 ) ref -> zero-ref class-hnd ptr "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Text.StringBuilder]>
-;* V126 tmp79 [V126 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[System.Text.StringBuilder]>
-;* V127 tmp80 [V127 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[System.Text.StringBuilder]>
-; V128 tmp81 [V128,T120] ( 3, 6 ) int -> rcx "Inline stloc first use temp"
-; V129 tmp82 [V129,T117] ( 3, 6 ) ref -> rdx class-hnd "Inline stloc first use temp" <System.Text.StringBuilder[]>
-;* V130 tmp83 [V130 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[System.Text.StringBuilder]>
-;* V131 tmp84 [V131 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V132 tmp85 [V132,T121] ( 3, 6 ) int -> rdx "Inline stloc first use temp"
-; V133 tmp86 [V133,T118] ( 3, 6 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Text.StringBuilder[]>
-; V134 tmp87 [V134,T101] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
-; V135 tmp88 [V135,T154] ( 3, 3 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.__Canon>
-; V136 tmp89 [V136,T183] ( 2, 1 ) int -> rdx "Inline stloc first use temp"
-; V137 tmp90 [V137,T15] ( 6, 56 ) ref -> [rbp-0xE0] class-hnd ptr "Inline return value spill temp" <System.Text.StringBuilder>
-; V138 tmp91 [V138,T05] ( 5,112 ) ref -> rsi class-hnd "Inlining Arg" <System.__Canon>
-;* V139 tmp92 [V139 ] ( 0, 0 ) ref -> zero-ref class-hnd ptr "Inline return value spill temp" <System.Text.StringBuilder>
-; V140 tmp93 [V140,T27] ( 3, 40 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Text.StringBuilder[]>
-; V141 tmp94 [V141,T22] ( 4, 48 ) int -> rsi "Inline stloc first use temp"
-;* V142 tmp95 [V142 ] ( 0, 0 ) ref -> zero-ref class-hnd ptr "Inline return value spill temp" <System.Text.StringBuilder>
-; V143 tmp96 [V143,T32] ( 5, 28 ) ref -> rsi class-hnd "Inlining Arg" <System.__Canon>
-; V144 tmp97 [V144,T131] ( 5, 5 ) int -> rbx "Single return block return value"
-; V145 tmp98 [V145,T100] ( 6, 8 ) byref -> r13 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
-;* V146 tmp99 [V146,T197] ( 0, 0 ) int -> zero-ref ptr "field V03._length (fldOffset=0x8)" P-INDEP
-;* V147 tmp100 [V147 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V148 tmp101 [V148 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
-; V149 tmp102 [V149,T77] ( 4, 12.50) ref -> r15 single-def "field V07._list (fldOffset=0x0)" P-INDEP
-; V150 tmp103 [V150,T94] ( 2, 6 ) ref -> rdi "field V07._current (fldOffset=0x8)" P-INDEP
-; V151 tmp104 [V151,T35] ( 6, 20.50) int -> r12 "field V07._index (fldOffset=0x10)" P-INDEP
-; V152 tmp105 [V152,T141] ( 2, 4.50) int -> r13 "field V07._version (fldOffset=0x14)" P-INDEP
-; V153 tmp106 [V153,T78] ( 4, 12.50) ref -> r15 single-def "field V09._list (fldOffset=0x0)" P-INDEP
-; V154 tmp107 [V154,T81] ( 3, 8 ) ref -> rdi "field V09._current (fldOffset=0x8)" P-INDEP
-; V155 tmp108 [V155,T36] ( 6, 20.50) int -> r13 "field V09._index (fldOffset=0x10)" P-INDEP
-; V156 tmp109 [V156,T142] ( 2, 4.50) int -> rbx "field V09._version (fldOffset=0x14)" P-INDEP
-;* V157 tmp110 [V157,T147] ( 0, 0 ) ref -> zero-ref ptr "field V14._list (fldOffset=0x0)" P-INDEP
-; V158 tmp111 [V158,T14] ( 5, 48 ) ref -> rsi "field V14._current (fldOffset=0x8)" P-INDEP
-; V159 tmp112 [V159,T06] ( 6, 84 ) int -> [rbp-0x58] ptr "field V14._index (fldOffset=0x10)" P-INDEP
-; V160 tmp113 [V160,T29] ( 2, 36 ) int -> r12 "field V14._version (fldOffset=0x14)" P-INDEP
-; V161 tmp114 [V161,T140] ( 2, 4.50) byref -> [rbp-0xE8] spill-single-def ptr "field V19._reference (fldOffset=0x0)" P-INDEP
-; V162 tmp115 [V162,T135] ( 3, 5 ) int -> [rbp-0x5C] spill-single-def ptr "field V19._length (fldOffset=0x8)" P-INDEP
-; V163 tmp116 [V163,T79] ( 4, 12.50) ref -> r15 single-def "field V25._list (fldOffset=0x0)" P-INDEP
-; V164 tmp117 [V164,T95] ( 2, 6 ) ref -> rdi "field V25._current (fldOffset=0x8)" P-INDEP
-; V165 tmp118 [V165,T37] ( 6, 20.50) int -> [rbp-0x60] ptr "field V25._index (fldOffset=0x10)" P-INDEP
-; V166 tmp119 [V166,T143] ( 2, 4.50) int -> rbx "field V25._version (fldOffset=0x14)" P-INDEP
-;* V167 tmp120 [V167 ] ( 0, 0 ) byref -> zero-ref ptr "field V35._reference (fldOffset=0x0)" P-INDEP
-;* V168 tmp121 [V168 ] ( 0, 0 ) int -> zero-ref ptr "field V35._length (fldOffset=0x8)" P-INDEP
-; V169 tmp122 [V169,T17] ( 3, 52 ) ref -> rdi "field V38._list (fldOffset=0x0)" P-INDEP
-; V170 tmp123 [V170,T20] ( 3, 32 ) ref -> rdx "field V38._current (fldOffset=0x8)" P-INDEP
-; V171 tmp124 [V171,T03] ( 6,100 ) int -> rcx "field V38._index (fldOffset=0x10)" P-INDEP
-;* V172 tmp125 [V172,T150] ( 0, 0 ) int -> zero-ref ptr "field V38._version (fldOffset=0x14)" P-INDEP
-; V173 tmp126 [V173,T177] ( 2, 1 ) byref -> r13 single-def "field V52._reference (fldOffset=0x0)" P-INDEP
-;* V174 tmp127 [V174,T198] ( 0, 0 ) int -> zero-ref ptr "field V52._length (fldOffset=0x8)" P-INDEP
-; V175 tmp128 [V175,T166] ( 3, 1.50) ref -> r15 single-def "field V74._list (fldOffset=0x0)" P-INDEP
-;* V176 tmp129 [V176 ] ( 0, 0 ) ref -> zero-ref single-def "field V74._current (fldOffset=0x8)" P-INDEP
-;* V177 tmp130 [V177,T199] ( 0, 0 ) int -> zero-ref ptr "field V74._index (fldOffset=0x10)" P-INDEP
-; V178 tmp131 [V178,T184] ( 2, 1 ) int -> r13 "field V74._version (fldOffset=0x14)" P-INDEP
-; V179 tmp132 [V179,T167] ( 3, 1.50) ref -> r15 single-def "field V77._list (fldOffset=0x0)" P-INDEP
-;* V180 tmp133 [V180 ] ( 0, 0 ) ref -> zero-ref single-def "field V77._current (fldOffset=0x8)" P-INDEP
-;* V181 tmp134 [V181,T200] ( 0, 0 ) int -> zero-ref ptr "field V77._index (fldOffset=0x10)" P-INDEP
-; V182 tmp135 [V182,T185] ( 2, 1 ) int -> rbx "field V77._version (fldOffset=0x14)" P-INDEP
-; V183 tmp136 [V183,T106] ( 2, 8 ) ref -> rdi "field V81._list (fldOffset=0x0)" P-INDEP
-;* V184 tmp137 [V184 ] ( 0, 0 ) ref -> zero-ref "field V81._current (fldOffset=0x8)" P-INDEP
-;* V185 tmp138 [V185,T151] ( 0, 0 ) int -> zero-ref ptr "field V81._index (fldOffset=0x10)" P-INDEP
-; V186 tmp139 [V186,T110] ( 2, 8 ) int -> r12 "field V81._version (fldOffset=0x14)" P-INDEP
-; V187 tmp140 [V187,T178] ( 2, 1 ) byref -> rcx single-def "field V91._reference (fldOffset=0x0)" P-INDEP
-; V188 tmp141 [V188,T186] ( 2, 1 ) int -> rax "field V91._length (fldOffset=0x8)" P-INDEP
-; V189 tmp142 [V189,T168] ( 3, 1.50) ref -> r15 single-def "field V97._list (fldOffset=0x0)" P-INDEP
-;* V190 tmp143 [V190 ] ( 0, 0 ) ref -> zero-ref single-def "field V97._current (fldOffset=0x8)" P-INDEP
-;* V191 tmp144 [V191,T201] ( 0, 0 ) int -> zero-ref ptr "field V97._index (fldOffset=0x10)" P-INDEP
-; V192 tmp145 [V192,T187] ( 2, 1 ) int -> rbx "field V97._version (fldOffset=0x14)" P-INDEP
-;* V193 tmp146 [V193 ] ( 0, 0 ) byref -> zero-ref "field V112._reference (fldOffset=0x0)" P-INDEP
-;* V194 tmp147 [V194 ] ( 0, 0 ) int -> zero-ref "field V112._length (fldOffset=0x8)" P-INDEP
-; V195 tmp148 [V195,T169] ( 2, 1 ) byref -> [rbp-0xF0] spill-single-def ptr "field V113._reference (fldOffset=0x0)" P-INDEP
-; V196 tmp149 [V196,T175] ( 2, 1 ) int -> [rbp-0x64] spill-single-def ptr "field V113._length (fldOffset=0x8)" P-INDEP
-; V197 tmp150 [V197,T179] ( 2, 1 ) byref -> rdx single-def "field V116._reference (fldOffset=0x0)" P-INDEP
-; V198 tmp151 [V198,T188] ( 2, 1 ) int -> rcx "field V116._length (fldOffset=0x8)" P-INDEP
-; V199 tmp152 [V199,T86] ( 3, 12 ) ref -> rdi "field V123._list (fldOffset=0x0)" P-INDEP
-;* V200 tmp153 [V200 ] ( 0, 0 ) ref -> zero-ref "field V123._current (fldOffset=0x8)" P-INDEP
-;* V201 tmp154 [V201,T152] ( 0, 0 ) int -> zero-ref ptr "field V123._index (fldOffset=0x10)" P-INDEP
-;* V202 tmp155 [V202,T111] ( 0, 0 ) int -> zero-ref ptr "field V123._version (fldOffset=0x14)" P-INDEP
-;* V203 tmp156 [V203 ] ( 0, 0 ) byref -> zero-ref "field V126._reference (fldOffset=0x0)" P-INDEP
-;* V204 tmp157 [V204 ] ( 0, 0 ) int -> zero-ref "field V126._length (fldOffset=0x8)" P-INDEP
-; V205 tmp158 [V205,T119] ( 2, 4 ) byref -> [rbp-0xF8] spill-single-def ptr "field V127._reference (fldOffset=0x0)" P-INDEP
-; V206 tmp159 [V206,T122] ( 2, 4 ) int -> [rbp-0x68] spill-single-def ptr "field V127._length (fldOffset=0x8)" P-INDEP
-; V207 tmp160 [V207,T145] ( 2, 4 ) byref -> rdx "field V130._reference (fldOffset=0x0)" P-INDEP
-; V208 tmp161 [V208,T146] ( 2, 4 ) int -> rcx "field V130._length (fldOffset=0x8)" P-INDEP
-; V209 tmp162 [V209,T87] ( 3, 12 ) ref -> rdi "arr expr"
-; V210 tmp163 [V210,T88] ( 3, 12 ) ref -> rdx "arr expr"
-; V211 tmp164 [V211,T89] ( 3, 12 ) ref -> rdx "arr expr"
-; V212 tmp165 [V212,T09] ( 3, 96 ) ref -> rsi "arr expr"
-; V213 tmp166 [V213,T44] ( 3, 24 ) ref -> rdx "arr expr"
-; V214 tmp167 [V214,T155] ( 3, 3 ) ref -> rsi single-def "arr expr"
-; V215 tmp168 [V215,T45] ( 3, 24 ) ref -> rdi "arr expr"
-; V216 tmp169 [V216,T10] ( 3, 96 ) ref -> rcx "arr expr"
-; V217 tmp170 [V217,T46] ( 3, 24 ) ref -> rdi "arr expr"
-; V218 tmp171 [V218,T72] ( 2, 16 ) ref -> rdi "argument with side effect"
-; V219 tmp172 [V219,T90] ( 3, 12 ) ref -> rdx "arr expr"
-; V220 tmp173 [V220,T11] ( 3, 96 ) ref -> rdx "arr expr"
-; V221 tmp174 [V221,T156] ( 3, 3 ) ref -> rsi single-def "arr expr"
-; V222 tmp175 [V222,T47] ( 3, 24 ) ref -> rdi "arr expr"
-; V223 tmp176 [V223,T12] ( 3, 96 ) ref -> rcx "arr expr"
-; V224 tmp177 [V224,T48] ( 3, 24 ) ref -> rcx "arr expr"
-; V225 tmp178 [V225,T49] ( 3, 24 ) ref -> rcx "arr expr"
-; V226 tmp179 [V226,T50] ( 3, 24 ) ref -> rsi "arr expr"
-; V227 GsCookie [V227 ] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V228 tmp181 [V228,T18] ( 31, 53 ) ref -> r14 "shadowVar"
-; V229 tmp182 [V229,T00] ( 38,322.50) ref -> r15 single-def "shadowVar"
-;* V230 cse0 [V230,T202] ( 0, 0 ) long -> zero-ref "CSE #01: conservative"
-; V231 cse1 [V231,T52] ( 3, 24 ) int -> rcx "CSE #17: conservative"
-; V232 cse2 [V232,T53] ( 3, 24 ) int -> rcx "CSE #36: conservative"
-; V233 cse3 [V233,T54] ( 3, 24 ) int -> rcx "CSE #39: conservative"
-; V234 cse4 [V234,T123] ( 3, 6 ) int -> rcx "CSE #43: conservative"
-;* V235 cse5 [V235,T112] ( 0, 0 ) int -> zero-ref "CSE #28: moderate"
-; V236 cse6 [V236,T23] ( 2, 32 ) int -> rsi "CSE #12: moderate"
-; V237 cse7 [V237,T13] ( 2, 64 ) int -> rdx "CSE #29: moderate"
-; V238 cse8 [V238,T55] ( 3, 24 ) int -> rax "CSE #10: conservative"
-; V239 cse9 [V239,T113] ( 2, 8 ) int -> rsi "CSE #04: conservative"
-; V240 cse10 [V240,T91] ( 2, 8 ) int -> rsi "CSE #05: conservative"
-; V241 cse11 [V241,T114] ( 2, 8 ) int -> rdx "CSE #07: conservative"
-; V242 cse12 [V242,T92] ( 2, 8 ) int -> rdx "CSE #08: conservative"
-; V243 cse13 [V243,T115] ( 2, 8 ) int -> rdi "CSE #19: conservative"
-; V244 cse14 [V244,T93] ( 2, 8 ) int -> rdi "CSE #20: conservative"
-; V245 cse15 [V245,T163] ( 4, 2 ) int -> rdx "CSE #32: conservative"
-; V246 cse16 [V246,T176] ( 3, 1.50) int -> r13 "CSE #23: conservative"
-; V247 cse17 [V247,T170] ( 3, 1.50) ref -> rdi "CSE #33: conservative"
-; V248 rat0 [V248,T66] ( 7, 18.50) long -> r12 "Widened IV V28"
-; V249 rat1 [V249,T67] ( 7, 18.50) long -> [rbp-0x70] "Widened IV V37"
-; V250 rat2 [V250,T38] ( 7, 24.50) long -> r14 "Widened IV V42"
-; V251 rat3 [V251,T07] ( 7,100 ) long -> [rbp-0x78] "Widened IV V44"
-; V252 rat4 [V252,T39] ( 7, 24.50) long -> r14 "Widened IV V46"
-; V253 rat5 [V253,T16] ( 5, 52.50) long -> rbx "Widened IV V12"
-; V254 rat6 [V254,T69] ( 5, 16.50) long -> [rbp-0x80] "Widened IV V20"
-; V255 rat7 [V255,T08] ( 7,100 ) long -> [rbp-0x88] "Widened IV V22"
-; V256 rat8 [V256,T40] ( 7, 24.50) long -> [rbp-0x90] "Widened IV V24"
-; V257 rat9 [V257,T96] ( 3, 9 ) ref -> rsi "Spilling to split statement for tree"
-; V258 rat10 [V258,T73] ( 5, 15 ) ref -> r14 "replacement local"
-; V259 rat11 [V259,T136] ( 3, 5 ) long -> rdi "CSE for expectedClsNode"
-; V260 rat12 [V260,T97] ( 3, 9 ) ref -> rsi "Spilling to split statement for tree"
-; V261 rat13 [V261,T74] ( 5, 15 ) ref -> rax "replacement local"
-; V262 rat14 [V262,T137] ( 3, 5 ) long -> rdi "CSE for expectedClsNode"
-; V263 rat15 [V263,T98] ( 3, 9 ) ref -> rsi "Spilling to split statement for tree"
-; V264 rat16 [V264,T75] ( 5, 15 ) ref -> rax "replacement local"
-; V265 rat17 [V265,T138] ( 3, 5 ) long -> rdi "CSE for expectedClsNode"
-; V266 rat18 [V266,T99] ( 3, 9 ) ref -> rsi "Spilling to split statement for tree"
-; V267 rat19 [V267,T76] ( 5, 15 ) ref -> rdx "replacement local"
-; V268 rat20 [V268,T139] ( 3, 5 ) long -> rdi "CSE for expectedClsNode"
-; V269 rat21 [V269,T56] ( 3, 23.82) int -> rsi "ReplaceWithLclVar is creating a new local variable"
+;* V78 tmp31 [V78 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
+; V79 tmp32 [V79,T21] ( 3, 40 ) int -> rsi "Inline stloc first use temp"
+; V80 tmp33 [V80,T18] ( 3, 40 ) ref -> rax class-hnd "Inline stloc first use temp" <ushort[]>
+;* V81 tmp34 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
+; V82 tmp35 [V82,T149] ( 2, 1 ) int -> r12 "Inline return value spill temp"
+; V83 tmp36 [V83,T127] ( 3, 3 ) int -> r12 "Inlining Arg"
+; V84 tmp37 [V84,T128] ( 3, 3 ) int -> rax "Inlining Arg"
+;* V85 tmp38 [V85 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+;* V86 tmp39 [V86 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V87 tmp40 [V87,T13] ( 5, 48 ) ref -> [rbp-0x158] class-hnd ptr "Inline return value spill temp" <System.Text.StringBuilder>
+; V88 tmp41 [V88,T03] ( 5,112 ) ref -> rsi class-hnd "Inlining Arg" <System.__Canon>
+; V89 tmp42 [V89,T19] ( 3, 40 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Text.StringBuilder[]>
+; V90 tmp43 [V90,T14] ( 4, 48 ) int -> rsi "Inline stloc first use temp"
+;* V91 tmp44 [V91 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
+; V92 tmp45 [V92,T79] ( 3, 8 ) ref -> rdi class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V93 tmp46 [V93,T43] ( 4, 22 ) ref -> rdi "ISINST eval op1"
+;* V94 tmp47 [V94 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Text.RegularExpressions.RegexNode>
+; V95 tmp48 [V95,T96] ( 2, 4 ) ref -> rdi class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
+; V96 tmp49 [V96,T62] ( 3, 12 ) ref -> rax class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]>
+; V97 tmp50 [V97,T150] ( 2, 1 ) int -> r13 "Inline return value spill temp"
+; V98 tmp51 [V98,T129] ( 3, 3 ) int -> r13 "Inlining Arg"
+; V99 tmp52 [V99,T80] ( 3, 8 ) ref -> rdi class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V100 tmp53 [V100,T44] ( 4, 22 ) ref -> rdi "ISINST eval op1"
+;* V101 tmp54 [V101 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Text.RegularExpressions.RegexNode>
+; V102 tmp55 [V102,T97] ( 2, 4 ) ref -> rdi class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
+; V103 tmp56 [V103,T63] ( 3, 12 ) ref -> rax class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]>
+;* V104 tmp57 [V104 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[System.Text.StringBuilder]>
+;* V105 tmp58 [V105 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[System.Text.StringBuilder]>
+; V106 tmp59 [V106,T142] ( 3, 1.50) int -> rcx "Inline stloc first use temp"
+; V107 tmp60 [V107,T133] ( 3, 1.50) ref -> rdx class-hnd single-def "Inline stloc first use temp" <System.Text.StringBuilder[]>
+;* V108 tmp61 [V108 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[System.Text.StringBuilder]>
+;* V109 tmp62 [V109 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V110 tmp63 [V110,T81] ( 3, 8 ) ref -> rdi class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V111 tmp64 [V111,T45] ( 4, 22 ) ref -> rdi "ISINST eval op1"
+;* V112 tmp65 [V112 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Text.RegularExpressions.RegexNode>
+; V113 tmp66 [V113,T98] ( 2, 4 ) ref -> rdi class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
+; V114 tmp67 [V114,T64] ( 3, 12 ) ref -> rdx class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]>
+;* V115 tmp68 [V115 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]>
+;* V116 tmp69 [V116 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[System.Text.StringBuilder]>
+;* V117 tmp70 [V117 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[System.Text.StringBuilder]>
+; V118 tmp71 [V118,T91] ( 3, 6 ) int -> rcx "Inline stloc first use temp"
+; V119 tmp72 [V119,T88] ( 3, 6 ) ref -> rdx class-hnd "Inline stloc first use temp" <System.Text.StringBuilder[]>
+;* V120 tmp73 [V120 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[System.Text.StringBuilder]>
+;* V121 tmp74 [V121 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V122 tmp75 [V122,T92] ( 3, 6 ) int -> rdx "Inline stloc first use temp"
+; V123 tmp76 [V123,T89] ( 3, 6 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Text.StringBuilder[]>
+; V124 tmp77 [V124,T77] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
+; V125 tmp78 [V125,T123] ( 3, 3 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.__Canon>
+; V126 tmp79 [V126,T151] ( 2, 1 ) int -> rdx "Inline stloc first use temp"
+; V127 tmp80 [V127,T11] ( 6, 56 ) ref -> [rbp-0x160] class-hnd ptr "Inline return value spill temp" <System.Text.StringBuilder>
+; V128 tmp81 [V128,T04] ( 5,112 ) ref -> rsi class-hnd "Inlining Arg" <System.__Canon>
+;* V129 tmp82 [V129 ] ( 0, 0 ) ref -> zero-ref class-hnd ptr "Inline return value spill temp" <System.Text.StringBuilder>
+; V130 tmp83 [V130,T20] ( 3, 40 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Text.StringBuilder[]>
+; V131 tmp84 [V131,T15] ( 4, 48 ) int -> rsi "Inline stloc first use temp"
+;* V132 tmp85 [V132 ] ( 0, 0 ) ref -> zero-ref class-hnd ptr "Inline return value spill temp" <System.Text.StringBuilder>
+; V133 tmp86 [V133,T24] ( 5, 28 ) ref -> rsi class-hnd "Inlining Arg" <System.__Canon>
+; V134 tmp87 [V134,T102] ( 5, 5 ) int -> rbx "Single return block return value"
+; V135 tmp88 [V135,T70] ( 6, 10 ) byref -> r13 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+;* V136 tmp89 [V136,T168] ( 0, 0 ) int -> zero-ref ptr "field V03._length (fldOffset=0x8)" P-INDEP
+;* V137 tmp90 [V137 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
+;* V138 tmp91 [V138 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
+; V139 tmp92 [V139 ] ( 3, 5 ) ref -> [rbp-0x68] do-not-enreg[X] addr-exposed ptr "field V07._list (fldOffset=0x0)" P-DEP
+; V140 tmp93 [V140 ] ( 4, 9 ) ref -> [rbp-0x60] do-not-enreg[X] addr-exposed ptr "field V07._current (fldOffset=0x8)" P-DEP
+; V141 tmp94 [V141 ] ( 3, 5 ) int -> [rbp-0x58] do-not-enreg[X] addr-exposed "field V07._index (fldOffset=0x10)" P-DEP
+; V142 tmp95 [V142 ] ( 3, 5 ) int -> [rbp-0x54] do-not-enreg[X] addr-exposed ptr "field V07._version (fldOffset=0x14)" P-DEP
+; V143 tmp96 [V143 ] ( 3, 5 ) ref -> [rbp-0x80] do-not-enreg[X] addr-exposed ptr "field V09._list (fldOffset=0x0)" P-DEP
+; V144 tmp97 [V144 ] ( 4, 9 ) ref -> [rbp-0x78] do-not-enreg[X] addr-exposed ptr "field V09._current (fldOffset=0x8)" P-DEP
+; V145 tmp98 [V145 ] ( 3, 5 ) int -> [rbp-0x70] do-not-enreg[X] addr-exposed "field V09._index (fldOffset=0x10)" P-DEP
+; V146 tmp99 [V146 ] ( 3, 5 ) int -> [rbp-0x6C] do-not-enreg[X] addr-exposed ptr "field V09._version (fldOffset=0x14)" P-DEP
+; V147 tmp100 [V147 ] ( 3, 24 ) ref -> [rbp-0x98] do-not-enreg[X] addr-exposed ptr "field V14._list (fldOffset=0x0)" P-DEP
+; V148 tmp101 [V148 ] ( 4, 40 ) ref -> [rbp-0x90] do-not-enreg[X] addr-exposed ptr "field V14._current (fldOffset=0x8)" P-DEP
+; V149 tmp102 [V149 ] ( 3, 24 ) int -> [rbp-0x88] do-not-enreg[X] addr-exposed "field V14._index (fldOffset=0x10)" P-DEP
+; V150 tmp103 [V150 ] ( 3, 24 ) int -> [rbp-0x84] do-not-enreg[X] addr-exposed ptr "field V14._version (fldOffset=0x14)" P-DEP
+; V151 tmp104 [V151,T112] ( 2, 4.50) byref -> [rbp-0x168] spill-single-def ptr "field V19._reference (fldOffset=0x0)" P-INDEP
+; V152 tmp105 [V152,T107] ( 3, 5 ) int -> [rbp-0xD4] spill-single-def ptr "field V19._length (fldOffset=0x8)" P-INDEP
+; V153 tmp106 [V153 ] ( 3, 5 ) ref -> [rbp-0xB8] do-not-enreg[X] addr-exposed ptr "field V25._list (fldOffset=0x0)" P-DEP
+; V154 tmp107 [V154 ] ( 4, 9 ) ref -> [rbp-0xB0] do-not-enreg[X] addr-exposed ptr "field V25._current (fldOffset=0x8)" P-DEP
+; V155 tmp108 [V155 ] ( 3, 5 ) int -> [rbp-0xA8] do-not-enreg[X] addr-exposed "field V25._index (fldOffset=0x10)" P-DEP
+; V156 tmp109 [V156 ] ( 3, 5 ) int -> [rbp-0xA4] do-not-enreg[X] addr-exposed ptr "field V25._version (fldOffset=0x14)" P-DEP
+;* V157 tmp110 [V157 ] ( 0, 0 ) byref -> zero-ref ptr "field V35._reference (fldOffset=0x0)" P-INDEP
+;* V158 tmp111 [V158 ] ( 0, 0 ) int -> zero-ref ptr "field V35._length (fldOffset=0x8)" P-INDEP
+; V159 tmp112 [V159 ] ( 3, 24 ) ref -> [rbp-0xD0] do-not-enreg[X] addr-exposed ptr "field V38._list (fldOffset=0x0)" P-DEP
+; V160 tmp113 [V160 ] ( 4, 40 ) ref -> [rbp-0xC8] do-not-enreg[X] addr-exposed ptr "field V38._current (fldOffset=0x8)" P-DEP
+; V161 tmp114 [V161 ] ( 3, 24 ) int -> [rbp-0xC0] do-not-enreg[X] addr-exposed "field V38._index (fldOffset=0x10)" P-DEP
+; V162 tmp115 [V162 ] ( 3, 24 ) int -> [rbp-0xBC] do-not-enreg[X] addr-exposed ptr "field V38._version (fldOffset=0x14)" P-DEP
+; V163 tmp116 [V163,T145] ( 2, 1 ) byref -> r13 single-def "field V52._reference (fldOffset=0x0)" P-INDEP
+;* V164 tmp117 [V164,T169] ( 0, 0 ) int -> zero-ref ptr "field V52._length (fldOffset=0x8)" P-INDEP
+; V165 tmp118 [V165,T134] ( 3, 1.50) ref -> r15 single-def "field V74._list (fldOffset=0x0)" P-INDEP
+;* V166 tmp119 [V166,T157] ( 0, 0 ) ref -> zero-ref single-def ptr "field V74._current (fldOffset=0x8)" P-INDEP
+;* V167 tmp120 [V167,T170] ( 0, 0 ) int -> zero-ref "field V74._index (fldOffset=0x10)" P-INDEP
+; V168 tmp121 [V168,T152] ( 2, 1 ) int -> rdi "field V74._version (fldOffset=0x14)" P-INDEP
+; V169 tmp122 [V169,T135] ( 3, 1.50) ref -> rdi single-def "field V75._list (fldOffset=0x0)" P-INDEP
+;* V170 tmp123 [V170,T158] ( 0, 0 ) ref -> zero-ref single-def ptr "field V75._current (fldOffset=0x8)" P-INDEP
+;* V171 tmp124 [V171,T171] ( 0, 0 ) int -> zero-ref "field V75._index (fldOffset=0x10)" P-INDEP
+; V172 tmp125 [V172,T153] ( 2, 1 ) int -> rsi "field V75._version (fldOffset=0x14)" P-INDEP
+; V173 tmp126 [V173,T84] ( 2, 8 ) ref -> rdi "field V77._list (fldOffset=0x0)" P-INDEP
+;* V174 tmp127 [V174,T116] ( 0, 0 ) ref -> zero-ref ptr "field V77._current (fldOffset=0x8)" P-INDEP
+;* V175 tmp128 [V175,T120] ( 0, 0 ) int -> zero-ref "field V77._index (fldOffset=0x10)" P-INDEP
+; V176 tmp129 [V176,T85] ( 2, 8 ) int -> rdi "field V77._version (fldOffset=0x14)" P-INDEP
+; V177 tmp130 [V177,T146] ( 2, 1 ) byref -> rcx single-def "field V85._reference (fldOffset=0x0)" P-INDEP
+; V178 tmp131 [V178,T154] ( 2, 1 ) int -> rax "field V85._length (fldOffset=0x8)" P-INDEP
+; V179 tmp132 [V179,T136] ( 3, 1.50) ref -> rdi single-def "field V91._list (fldOffset=0x0)" P-INDEP
+;* V180 tmp133 [V180,T159] ( 0, 0 ) ref -> zero-ref single-def ptr "field V91._current (fldOffset=0x8)" P-INDEP
+;* V181 tmp134 [V181,T172] ( 0, 0 ) int -> zero-ref "field V91._index (fldOffset=0x10)" P-INDEP
+; V182 tmp135 [V182,T155] ( 2, 1 ) int -> rsi "field V91._version (fldOffset=0x14)" P-INDEP
+;* V183 tmp136 [V183 ] ( 0, 0 ) byref -> zero-ref "field V104._reference (fldOffset=0x0)" P-INDEP
+;* V184 tmp137 [V184 ] ( 0, 0 ) int -> zero-ref "field V104._length (fldOffset=0x8)" P-INDEP
+; V185 tmp138 [V185,T137] ( 2, 1 ) byref -> [rbp-0x170] spill-single-def ptr "field V105._reference (fldOffset=0x0)" P-INDEP
+; V186 tmp139 [V186,T143] ( 2, 1 ) int -> [rbp-0xD8] spill-single-def ptr "field V105._length (fldOffset=0x8)" P-INDEP
+; V187 tmp140 [V187,T147] ( 2, 1 ) byref -> rdx single-def "field V108._reference (fldOffset=0x0)" P-INDEP
+; V188 tmp141 [V188,T156] ( 2, 1 ) int -> rcx "field V108._length (fldOffset=0x8)" P-INDEP
+; V189 tmp142 [V189,T65] ( 3, 12 ) ref -> rdi "field V115._list (fldOffset=0x0)" P-INDEP
+;* V190 tmp143 [V190,T117] ( 0, 0 ) ref -> zero-ref ptr "field V115._current (fldOffset=0x8)" P-INDEP
+;* V191 tmp144 [V191,T121] ( 0, 0 ) int -> zero-ref "field V115._index (fldOffset=0x10)" P-INDEP
+; V192 tmp145 [V192,T86] ( 2, 8 ) int -> rsi "field V115._version (fldOffset=0x14)" P-INDEP
+;* V193 tmp146 [V193 ] ( 0, 0 ) byref -> zero-ref "field V116._reference (fldOffset=0x0)" P-INDEP
+;* V194 tmp147 [V194 ] ( 0, 0 ) int -> zero-ref "field V116._length (fldOffset=0x8)" P-INDEP
+; V195 tmp148 [V195,T90] ( 2, 4 ) byref -> [rbp-0x178] spill-single-def ptr "field V117._reference (fldOffset=0x0)" P-INDEP
+; V196 tmp149 [V196,T93] ( 2, 4 ) int -> [rbp-0xDC] spill-single-def ptr "field V117._length (fldOffset=0x8)" P-INDEP
+; V197 tmp150 [V197,T114] ( 2, 4 ) byref -> rdx "field V120._reference (fldOffset=0x0)" P-INDEP
+; V198 tmp151 [V198,T115] ( 2, 4 ) int -> rcx "field V120._length (fldOffset=0x8)" P-INDEP
+; V199 tmp152 [V199,T66] ( 3, 12 ) ref -> rdi "arr expr"
+; V200 tmp153 [V200,T67] ( 3, 12 ) ref -> rdx "arr expr"
+; V201 tmp154 [V201,T68] ( 3, 12 ) ref -> rdx "arr expr"
+; V202 tmp155 [V202,T69] ( 3, 12 ) ref -> rdx "arr expr"
+; V203 tmp156 [V203,T124] ( 3, 3 ) ref -> rsi single-def "arr expr"
+; V204 tmp157 [V204,T34] ( 3, 24 ) ref -> rdi "arr expr"
+; V205 tmp158 [V205,T07] ( 3, 96 ) ref -> rcx "arr expr"
+; V206 tmp159 [V206,T125] ( 3, 3 ) ref -> rsi single-def "arr expr"
+; V207 tmp160 [V207,T08] ( 3, 96 ) ref -> rcx "arr expr"
+; V208 tmp161 [V208,T35] ( 3, 24 ) ref -> rdi "arr expr"
+; V209 tmp162 [V209,T55] ( 2, 16 ) ref -> rdi "argument with side effect"
+; V210 tmp163 [V210,T36] ( 3, 24 ) ref -> rcx "arr expr"
+; V211 tmp164 [V211,T37] ( 3, 24 ) ref -> rcx "arr expr"
+; V212 GsCookie [V212 ] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V213 tmp166 [V213,T12] ( 31, 50 ) ref -> r14 "shadowVar"
+; V214 tmp167 [V214,T00] ( 36,262.50) ref -> r15 single-def "shadowVar"
+;* V215 cse0 [V215,T173] ( 0, 0 ) long -> zero-ref "CSE #01: conservative"
+; V216 cse1 [V216,T38] ( 3, 24 ) int -> rcx "CSE #12: conservative"
+; V217 cse2 [V217,T39] ( 3, 24 ) int -> rcx "CSE #27: conservative"
+; V218 cse3 [V218,T40] ( 3, 24 ) int -> rcx "CSE #30: conservative"
+; V219 cse4 [V219,T94] ( 3, 6 ) int -> rcx "CSE #34: conservative"
+; V220 cse5 [V220,T131] ( 4, 2 ) int -> rdx "CSE #23: conservative"
+; V221 cse6 [V221,T144] ( 3, 1.50) int -> r13 "CSE #16: conservative"
+; V222 cse7 [V222,T138] ( 3, 1.50) ref -> rdi "CSE #24: conservative"
+; V223 cse8 [V223,T10] ( 15, 63 ) long -> [rbp-0xE8] multi-def "CSE #04: moderate"
+; V224 rat0 [V224,T49] ( 7, 18.50) long -> r12 "Widened IV V28"
+; V225 rat1 [V225,T50] ( 7, 18.50) long -> [rbp-0xF0] "Widened IV V37"
+; V226 rat2 [V226,T28] ( 7, 24.50) long -> r14 "Widened IV V42"
+; V227 rat3 [V227,T05] ( 7,100 ) long -> [rbp-0xF8] "Widened IV V44"
+; V228 rat4 [V228,T29] ( 7, 24.50) long -> r14 "Widened IV V46"
+; V229 rat5 [V229,T52] ( 5, 16.50) long -> r13 "Widened IV V12"
+; V230 rat6 [V230,T53] ( 5, 16.50) long -> [rbp-0x100] "Widened IV V20"
+; V231 rat7 [V231,T06] ( 7,100 ) long -> [rbp-0x108] "Widened IV V22"
+; V232 rat8 [V232,T30] ( 7, 24.50) long -> [rbp-0x110] "Widened IV V24"
+; V233 rat9 [V233,T73] ( 3, 9 ) ref -> rsi "Spilling to split statement for tree"
+; V234 rat10 [V234,T56] ( 5, 15 ) ref -> r14 "replacement local"
+; V235 rat11 [V235,T108] ( 3, 5 ) long -> rdi "CSE for expectedClsNode"
+; V236 rat12 [V236,T74] ( 3, 9 ) ref -> rsi "Spilling to split statement for tree"
+; V237 rat13 [V237,T57] ( 5, 15 ) ref -> rax "replacement local"
+; V238 rat14 [V238,T109] ( 3, 5 ) long -> rdi "CSE for expectedClsNode"
+; V239 rat15 [V239,T75] ( 3, 9 ) ref -> rsi "Spilling to split statement for tree"
+; V240 rat16 [V240,T58] ( 5, 15 ) ref -> rax "replacement local"
+; V241 rat17 [V241,T110] ( 3, 5 ) long -> rdi "CSE for expectedClsNode"
+; V242 rat18 [V242,T76] ( 3, 9 ) ref -> rsi "Spilling to split statement for tree"
+; V243 rat19 [V243,T59] ( 5, 15 ) ref -> rdx "replacement local"
+; V244 rat20 [V244,T111] ( 3, 5 ) long -> rdi "CSE for expectedClsNode"
+; V245 rat21 [V245,T41] ( 3, 23.82) int -> rsi "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 216
+; Lcl frame size = 344
G_M12455_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 216
- lea rbp, [rsp+0x100]
+ sub rsp, 344
+ lea rbp, [rsp+0x180]
+ vxorps xmm8, xmm8, xmm8
+ vmovdqu ymmword ptr [rbp-0xD0], ymm8
+ vmovdqu ymmword ptr [rbp-0xB0], ymm8
+ vmovdqu ymmword ptr [rbp-0x90], ymm8
+ vmovdqu ymmword ptr [rbp-0x70], ymm8
mov qword ptr [rbp-0x30], 0xD1FFAB1E
mov ebx, edx
- ;; size=35 bbWeight=1 PerfScore 8.00
+ ;; size=69 bbWeight=1 PerfScore 16.33
G_M12455_IG02:
mov r15, rsi
mov r14, rdi
call System.Runtime.CompilerServices.RuntimeHelpers:TryEnsureSufficientExecutionStack():ubyte
test eax, eax
je G_M12455_IG119
;; size=19 bbWeight=1 PerfScore 2.75
G_M12455_IG03:
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M12455_IG123
;; size=19 bbWeight=0.50 PerfScore 2.12
G_M12455_IG04:
mov rdi, 0xD1FFAB1E ; data for System.Text.RegularExpressions.RegexPrefixAnalyzer+<>c:<>9__0_2
mov rsi, gword ptr [rdi]
test rsi, rsi
jne SHORT G_M12455_IG05
mov rdi, 0xD1FFAB1E ; System.Predicate`1[System.Text.StringBuilder]
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdi, 0xD1FFAB1E ; data for System.Text.RegularExpressions.RegexPrefixAnalyzer+<>c:<>9
mov rsi, gword ptr [rdi]
test rsi, rsi
je G_M12455_IG124
lea rdi, bword ptr [r13+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexPrefixAnalyzer+<>c:<FindPrefixes>b__0_2(System.Text.StringBuilder):ubyte:this
mov qword ptr [r13+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for System.Text.RegularExpressions.RegexPrefixAnalyzer+<>c:<>9__0_2
mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
mov rsi, r13
;; size=102 bbWeight=0.50 PerfScore 6.50
G_M12455_IG05:
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:TrueForAll(System.Predicate`1[System.__Canon]):ubyte:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.List`1[System.__Canon]:TrueForAll(System.Predicate`1[System.__Canon]):ubyte:this
test eax, eax
je G_M12455_IG119
test byte ptr [r14+0x28], 64
jne G_M12455_IG119
lea r13, [rbp-0x50]
;; size=40 bbWeight=0.50 PerfScore 6.12
G_M12455_IG06:
movzx rsi, byte ptr [r14+0x2E]
add esi, -3
cmp esi, 43
ja G_M12455_IG119
;; size=17 bbWeight=4 PerfScore 14.00
G_M12455_IG07:
mov esi, esi
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rsi]
lea rax, G_M12455_IG02
add rdi, rax
jmp rdi
;; size=24 bbWeight=3.91 PerfScore 23.47
G_M12455_IG08:
mov rax, gword ptr [r14+0x08]
test rax, rax
je SHORT G_M12455_IG11
;; size=9 bbWeight=4 PerfScore 13.00
G_M12455_IG09:
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rax], rsi
jne SHORT G_M12455_IG11
;; size=15 bbWeight=1 PerfScore 4.25
G_M12455_IG10:
jmp SHORT G_M12455_IG15
;; size=2 bbWeight=2 PerfScore 4.00
G_M12455_IG11:
mov rsi, gword ptr [r14+0x08]
mov r14, rsi
test r14, r14
je SHORT G_M12455_IG14
;; size=12 bbWeight=2 PerfScore 7.00
G_M12455_IG12:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]
cmp qword ptr [r14], rdi
je SHORT G_M12455_IG14
;; size=15 bbWeight=1 PerfScore 4.25
G_M12455_IG13:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
mov r14, rax
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M12455_IG14:
cmp dword ptr [r14+0x10], 0
- je G_M12455_IG128
+ je G_M12455_IG127
mov rdi, gword ptr [r14+0x08]
cmp dword ptr [rdi+0x08], 0
jbe G_M12455_IG122
mov r14, gword ptr [rdi+0x10]
jmp SHORT G_M12455_IG16
;; size=31 bbWeight=2 PerfScore 28.00
G_M12455_IG15:
mov r14, rax
;; size=3 bbWeight=2 PerfScore 0.50
G_M12455_IG16:
jmp G_M12455_IG06
;; size=5 bbWeight=4 PerfScore 8.00
G_M12455_IG17:
test bl, bl
je SHORT G_M12455_IG18
movzx rdi, word ptr [r14+0x2C]
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte
call [rax]System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte
test eax, eax
jne G_M12455_IG119
;; size=29 bbWeight=0.50 PerfScore 3.88
G_M12455_IG18:
cmp byte ptr [r14+0x2E], 9
je SHORT G_M12455_IG19
mov ebx, dword ptr [r14+0x20]
- mov esi, 8
+ mov edi, 8
cmp ebx, 8
- cmovg ebx, esi
+ cmovg ebx, edi
jmp SHORT G_M12455_IG20
- align [0 bytes for IG86]
;; size=24 bbWeight=0.50 PerfScore 4.38
G_M12455_IG19:
mov ebx, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M12455_IG20:
- mov r13d, dword ptr [r15+0x14]
- xor r12d, r12d
- jmp SHORT G_M12455_IG22
- ;; size=9 bbWeight=0.50 PerfScore 2.12
+ mov edi, dword ptr [r15+0x14]
+ mov gword ptr [rbp-0x68], r15
+ xor rsi, rsi
+ mov gword ptr [rbp-0x60], rsi
+ ;; size=14 bbWeight=0.50 PerfScore 2.12
G_M12455_IG21:
+ mov dword ptr [rbp-0x58], esi
+ mov dword ptr [rbp-0x54], edi
+ lea rdi, [rbp-0x68]
+ mov r15, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M12455_IG23
+ ;; size=39 bbWeight=0.50 PerfScore 3.75
+G_M12455_IG22:
+ mov rdi, gword ptr [rbp-0x60]
movzx rsi, word ptr [r14+0x2C]
mov edx, ebx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(ushort,int):System.Text.StringBuilder:this
cmp dword ptr [rdi], edi
call [rax]System.Text.StringBuilder:Append(ushort,int):System.Text.StringBuilder:this
- ;; size=21 bbWeight=2 PerfScore 17.00
-G_M12455_IG22:
- mov esi, dword ptr [r15+0x14]
- cmp r13d, esi
- jne G_M12455_IG126
- mov esi, dword ptr [r15+0x10]
- cmp r12d, esi
- jae SHORT G_M12455_IG23
- mov rsi, gword ptr [r15+0x08]
- cmp r12d, dword ptr [rsi+0x08]
- jae G_M12455_IG122
- mov edi, r12d
- mov rdi, gword ptr [rsi+8*rdi+0x10]
- inc r12d
- jmp SHORT G_M12455_IG21
- ;; size=49 bbWeight=4 PerfScore 68.00
+ lea rdi, [rbp-0x68]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M12455_IG22
+ ;; size=48 bbWeight=4 PerfScore 59.00
G_M12455_IG23:
cmp byte ptr [r14+0x2E], 9
- je G_M12455_IG63
- ;; size=11 bbWeight=4 PerfScore 16.00
-G_M12455_IG24:
+ je G_M12455_IG64
cmp ebx, dword ptr [r14+0x24]
sete bl
movzx rbx, bl
jmp G_M12455_IG98
- ;; size=15 bbWeight=0.50 PerfScore 3.12
-G_M12455_IG25:
+ ;; size=26 bbWeight=0.50 PerfScore 5.12
+G_M12455_IG24:
test bl, bl
- jne SHORT G_M12455_IG28
- mov ebx, dword ptr [r15+0x14]
- xor r13d, r13d
- jmp SHORT G_M12455_IG27
- ;; size=13 bbWeight=0.50 PerfScore 2.75
+ jne SHORT G_M12455_IG29
+ mov rdi, r15
+ mov esi, dword ptr [rdi+0x14]
+ mov gword ptr [rbp-0x80], rdi
+ xor rdi, rdi
+ mov gword ptr [rbp-0x78], rdi
+ ;; size=20 bbWeight=0.50 PerfScore 2.88
+G_M12455_IG25:
+ mov dword ptr [rbp-0x70], edi
+ mov dword ptr [rbp-0x6C], esi
+ lea rdi, [rbp-0x80]
+ mov r15, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je G_M12455_IG64
+ ;; size=43 bbWeight=0.50 PerfScore 3.75
G_M12455_IG26:
+ mov rdi, gword ptr [rbp-0x78]
mov rsi, gword ptr [r14+0x10]
cmp byte ptr [rdi], dil
test rsi, rsi
- je SHORT G_M12455_IG27
+ je SHORT G_M12455_IG28
+ ;; size=16 bbWeight=4 PerfScore 29.00
+G_M12455_IG27:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
- ;; size=31 bbWeight=2 PerfScore 23.50
-G_M12455_IG27:
- mov edx, dword ptr [r15+0x14]
- cmp ebx, edx
- jne G_M12455_IG126
- mov edx, dword ptr [r15+0x10]
- cmp r13d, edx
- jae G_M12455_IG63
- mov rdx, gword ptr [r15+0x08]
- cmp r13d, dword ptr [rdx+0x08]
- jae G_M12455_IG122
- mov esi, r13d
- mov rdi, gword ptr [rdx+8*rsi+0x10]
- inc r13d
- jmp SHORT G_M12455_IG26
- ;; size=52 bbWeight=4 PerfScore 68.00
+ ;; size=19 bbWeight=2 PerfScore 11.00
G_M12455_IG28:
+ lea rdi, [rbp-0x80]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M12455_IG26
+ jmp G_M12455_IG64
+ ;; size=28 bbWeight=4 PerfScore 29.00
+G_M12455_IG29:
mov r14, gword ptr [r14+0x10]
- xor ebx, ebx
+ xor r13d, r13d
cmp dword ptr [r14+0x08], 0
- jle G_M12455_IG63
- ;; size=17 bbWeight=0.50 PerfScore 3.12
-G_M12455_IG29:
- movzx r13, word ptr [r14+2*rbx+0x0C]
- mov edi, r13d
+ jle G_M12455_IG64
+ ;; size=18 bbWeight=0.50 PerfScore 3.12
+G_M12455_IG30:
+ movzx rbx, word ptr [r14+2*r13+0x0C]
+ mov edi, ebx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte
call [rax]System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte
test eax, eax
jne G_M12455_IG119
mov rdi, r15
- mov r12d, dword ptr [rdi+0x14]
- xor edi, edi
- jmp SHORT G_M12455_IG32
- ;; size=40 bbWeight=4 PerfScore 45.00
-G_M12455_IG30:
- mov eax, dword ptr [rsi+0x18]
- mov ecx, eax
- mov rdx, gword ptr [rsi+0x08]
- cmp dword ptr [rdx+0x08], ecx
- jbe SHORT G_M12455_IG31
- mov word ptr [rdx+2*rcx+0x10], r13w
- inc eax
- mov dword ptr [rsi+0x18], eax
- mov edi, dword ptr [rbp-0x58]
- jmp SHORT G_M12455_IG32
- ;; size=30 bbWeight=8 PerfScore 108.00
+ mov edi, dword ptr [rdi+0x14]
+ mov gword ptr [rbp-0x98], r15
+ xor rsi, rsi
+ mov gword ptr [rbp-0x90], rsi
+ ;; size=50 bbWeight=4 PerfScore 45.00
G_M12455_IG31:
- mov rdi, rsi
- mov esi, r13d
- mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(ushort):this
- call [rax]System.Text.StringBuilder:AppendWithExpansion(ushort):this
- mov edi, dword ptr [rbp-0x58]
- ;; size=21 bbWeight=8 PerfScore 38.00
+ mov dword ptr [rbp-0x88], esi
+ mov dword ptr [rbp-0x84], edi
+ lea rdi, [rbp-0x98]
+ mov rsi, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]
+ mov r12, rsi
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M12455_IG36
+ ;; size=48 bbWeight=4 PerfScore 30.00
G_M12455_IG32:
- cmp r12d, dword ptr [r15+0x14]
- jne G_M12455_IG126
- ;; size=10 bbWeight=32 PerfScore 128.00
+ mov rdi, gword ptr [rbp-0x90]
+ mov esi, dword ptr [rdi+0x18]
+ mov rax, gword ptr [rdi+0x08]
+ cmp dword ptr [rax+0x08], esi
+ jbe SHORT G_M12455_IG34
+ ;; size=19 bbWeight=16 PerfScore 144.00
G_M12455_IG33:
- mov esi, dword ptr [r15+0x10]
- cmp edi, esi
- jae SHORT G_M12455_IG34
- mov rsi, gword ptr [r15+0x08]
- cmp edi, dword ptr [rsi+0x08]
- jae G_M12455_IG122
- mov eax, edi
- mov rsi, gword ptr [rsi+8*rax+0x10]
- inc edi
- mov dword ptr [rbp-0x58], edi
- jmp SHORT G_M12455_IG30
- ;; size=35 bbWeight=16 PerfScore 236.00
+ mov esi, esi
+ mov word ptr [rax+2*rsi+0x10], bx
+ inc dword ptr [rdi+0x18]
+ jmp SHORT G_M12455_IG35
+ ;; size=12 bbWeight=8 PerfScore 50.00
G_M12455_IG34:
- inc ebx
- cmp dword ptr [r14+0x08], ebx
- jg G_M12455_IG29
- jmp G_M12455_IG63
- ;; size=17 bbWeight=16 PerfScore 100.00
+ mov esi, ebx
+ mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(ushort):this
+ call [rax]System.Text.StringBuilder:AppendWithExpansion(ushort):this
+ ;; size=14 bbWeight=8 PerfScore 28.00
G_M12455_IG35:
+ lea rdi, [rbp-0x98]
+ mov rsi, r12
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M12455_IG32
+ ;; size=26 bbWeight=16 PerfScore 84.00
+G_M12455_IG36:
+ inc r13d
+ cmp dword ptr [r14+0x08], r13d
+ jg G_M12455_IG30
+ jmp G_M12455_IG64
+ ;; size=18 bbWeight=4 PerfScore 25.00
+G_M12455_IG37:
mov rsi, gword ptr [r14+0x10]
cmp dword ptr [rsi+0x08], 0
jbe G_M12455_IG122
cmp word ptr [rsi+0x0C], 1
je G_M12455_IG119
mov rsi, r13
mov edx, 16
mov rdi, gword ptr [r14+0x10]
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:GetSetChars(System.String,System.Span`1[ushort]):int
call [rax]System.Text.RegularExpressions.RegexCharClass:GetSetChars(System.String,System.Span`1[ushort]):int
test eax, eax
je G_M12455_IG119
cmp byte ptr [r14+0x2E], 11
- je SHORT G_M12455_IG36
+ je SHORT G_M12455_IG38
mov r12d, dword ptr [r14+0x20]
mov edi, 8
cmp r12d, 8
cmovg r12d, edi
- jmp SHORT G_M12455_IG37
+ jmp SHORT G_M12455_IG39
;; size=83 bbWeight=0.50 PerfScore 12.88
-G_M12455_IG36:
+G_M12455_IG38:
mov r12d, 1
;; size=6 bbWeight=0.50 PerfScore 0.12
-G_M12455_IG37:
+G_M12455_IG39:
test bl, bl
- jne G_M12455_IG49
+ jne G_M12455_IG51
mov ebx, dword ptr [r15+0x10]
dec eax
mov edi, eax
inc rdi
cmp rdi, 16
ja G_M12455_IG125
lea rcx, bword ptr [r13+0x02]
- mov bword ptr [rbp-0xE8], rcx
- mov dword ptr [rbp-0x5C], eax
+ mov bword ptr [rbp-0x168], rcx
+ mov dword ptr [rbp-0xD4], eax
xor edx, edx
test eax, eax
- jle G_M12455_IG47
- ;; size=53 bbWeight=0.50 PerfScore 4.62
-G_M12455_IG38:
- mov qword ptr [rbp-0x80], rdx
+ jle G_M12455_IG49
+ ;; size=56 bbWeight=0.50 PerfScore 4.62
+G_M12455_IG40:
+ mov qword ptr [rbp-0x100], rdx
movzx rsi, word ptr [rcx+2*rdx]
- mov dword ptr [rbp-0x54], esi
+ mov dword ptr [rbp-0x9C], esi
xor r8d, r8d
- mov qword ptr [rbp-0x88], r8
+ mov qword ptr [rbp-0x108], r8
test ebx, ebx
- jle G_M12455_IG46
- ;; size=29 bbWeight=4 PerfScore 26.00
-G_M12455_IG39:
+ jle G_M12455_IG48
+ ;; size=35 bbWeight=4 PerfScore 26.00
+G_M12455_IG41:
mov rdi, 0xD1FFAB1E ; System.Text.StringBuilder
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xD0], rax
+ mov gword ptr [rbp-0x150], rax
mov dword ptr [rax+0x20], 0xD1FFAB1E
mov rdi, 0xD1FFAB1E ; ushort[]
mov esi, 16
call CORINFO_HELP_NEWARR_1_VC
- mov rcx, gword ptr [rbp-0xD0]
+ mov rcx, gword ptr [rbp-0x150]
lea rdi, bword ptr [rcx+0x08]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
- mov rax, qword ptr [rbp-0x88]
+ mov rax, qword ptr [rbp-0x108]
cmp eax, dword ptr [r15+0x10]
- jae G_M12455_IG128
+ jae G_M12455_IG127
mov rcx, gword ptr [r15+0x08]
cmp eax, dword ptr [rcx+0x08]
jae G_M12455_IG122
- mov qword ptr [rbp-0x88], rax
+ mov qword ptr [rbp-0x108], rax
mov rsi, gword ptr [rcx+8*rax+0x10]
test rsi, rsi
- je SHORT G_M12455_IG41
+ je SHORT G_M12455_IG43
;; size=115 bbWeight=16 PerfScore 364.00
-G_M12455_IG40:
+G_M12455_IG42:
mov ecx, dword ptr [rsi+0x1C]
add ecx, dword ptr [rsi+0x18]
- je SHORT G_M12455_IG41
- mov rdi, gword ptr [rbp-0xD0]
+ je SHORT G_M12455_IG43
+ mov rdi, gword ptr [rbp-0x150]
xor edx, edx
mov r8, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendCore(System.Text.StringBuilder,int,int):System.Text.StringBuilder:this
call [r8]System.Text.StringBuilder:AppendCore(System.Text.StringBuilder,int,int):System.Text.StringBuilder:this
- jmp SHORT G_M12455_IG42
+ jmp SHORT G_M12455_IG44
;; size=32 bbWeight=8 PerfScore 100.00
-G_M12455_IG41:
- mov rdi, gword ptr [rbp-0xD0]
+G_M12455_IG43:
+ mov rdi, gword ptr [rbp-0x150]
mov rcx, rdi
mov rax, rcx
;; size=13 bbWeight=8 PerfScore 12.00
-G_M12455_IG42:
- mov gword ptr [rbp-0xD8], rax
+G_M12455_IG44:
+ mov gword ptr [rbp-0x158], rax
mov rdi, rax
- mov esi, dword ptr [rbp-0x54]
+ mov esi, dword ptr [rbp-0x9C]
mov edx, r12d
mov rcx, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(ushort,int):System.Text.StringBuilder:this
cmp dword ptr [rdi], edi
call [rcx]System.Text.StringBuilder:Append(ushort,int):System.Text.StringBuilder:this
inc dword ptr [r15+0x14]
mov rdi, gword ptr [r15+0x08]
mov esi, dword ptr [r15+0x10]
cmp dword ptr [rdi+0x08], esi
- jbe SHORT G_M12455_IG44
- ;; size=47 bbWeight=16 PerfScore 316.00
-G_M12455_IG43:
+ jbe SHORT G_M12455_IG46
+ ;; size=50 bbWeight=16 PerfScore 316.00
+G_M12455_IG45:
lea eax, [rsi+0x01]
mov dword ptr [r15+0x10], eax
mov esi, esi
lea rdi, bword ptr [rdi+8*rsi+0x10]
- mov rsi, gword ptr [rbp-0xD8]
+ mov rsi, gword ptr [rbp-0x158]
call CORINFO_HELP_ASSIGN_REF
- jmp SHORT G_M12455_IG45
+ jmp SHORT G_M12455_IG47
;; size=28 bbWeight=8 PerfScore 54.00
-G_M12455_IG44:
+G_M12455_IG46:
mov rdi, r15
- mov rsi, gword ptr [rbp-0xD8]
+ mov rsi, gword ptr [rbp-0x158]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
;; size=22 bbWeight=8 PerfScore 36.00
-G_M12455_IG45:
- mov rdi, qword ptr [rbp-0x88]
+G_M12455_IG47:
+ mov rdi, qword ptr [rbp-0x108]
inc edi
cmp edi, ebx
- mov qword ptr [rbp-0x88], rdi
- jl G_M12455_IG39
+ mov qword ptr [rbp-0x108], rdi
+ jl G_M12455_IG41
;; size=24 bbWeight=16 PerfScore 56.00
-G_M12455_IG46:
- mov rdi, qword ptr [rbp-0x80]
+G_M12455_IG48:
+ mov rdi, qword ptr [rbp-0x100]
inc edi
- mov esi, dword ptr [rbp-0x5C]
+ mov esi, dword ptr [rbp-0xD4]
cmp edi, esi
mov rdx, rdi
- mov rcx, bword ptr [rbp-0xE8]
- jl G_M12455_IG38
- ;; size=27 bbWeight=4 PerfScore 19.00
-G_M12455_IG47:
+ mov rcx, bword ptr [rbp-0x168]
+ jl G_M12455_IG40
+ ;; size=33 bbWeight=4 PerfScore 19.00
+G_M12455_IG49:
xor eax, eax
test ebx, ebx
- jle G_M12455_IG52
+ jle G_M12455_IG54
;; size=10 bbWeight=0.50 PerfScore 0.75
-G_M12455_IG48:
+G_M12455_IG50:
cmp eax, dword ptr [r15+0x10]
- jae G_M12455_IG128
+ jae G_M12455_IG127
mov rdi, gword ptr [r15+0x08]
cmp eax, dword ptr [rdi+0x08]
jae G_M12455_IG122
- mov qword ptr [rbp-0x90], rax
+ mov qword ptr [rbp-0x110], rax
mov rdi, gword ptr [rdi+8*rax+0x10]
movzx rsi, word ptr [r13]
mov edx, r12d
mov rcx, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(ushort,int):System.Text.StringBuilder:this
cmp dword ptr [rdi], edi
call [rcx]System.Text.StringBuilder:Append(ushort,int):System.Text.StringBuilder:this
- mov rsi, qword ptr [rbp-0x90]
+ mov rsi, qword ptr [rbp-0x110]
inc esi
cmp esi, ebx
mov rax, rsi
- jl SHORT G_M12455_IG48
- jmp SHORT G_M12455_IG52
- ;; size=75 bbWeight=4 PerfScore 105.00
-G_M12455_IG49:
+ jl SHORT G_M12455_IG50
+ jmp G_M12455_IG54
+ ;; size=78 bbWeight=4 PerfScore 105.00
+G_M12455_IG51:
mov rsi, r13
mov edx, 16
mov rdi, gword ptr [r14+0x10]
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:SetContainsAsciiOrdinalIgnoreCaseCharacter(System.String,System.Span`1[ushort]):ubyte
call [rax]System.Text.RegularExpressions.RegexCharClass:SetContainsAsciiOrdinalIgnoreCaseCharacter(System.String,System.Span`1[ushort]):ubyte
test eax, eax
je G_M12455_IG119
- mov ebx, dword ptr [r15+0x14]
- xor esi, esi
- jmp SHORT G_M12455_IG51
- ;; size=40 bbWeight=0.50 PerfScore 5.62
-G_M12455_IG50:
+ mov rdi, r15
+ mov esi, dword ptr [rdi+0x14]
+ mov gword ptr [rbp-0xB8], rdi
+ xor rdi, rdi
+ mov gword ptr [rbp-0xB0], rdi
+ ;; size=54 bbWeight=0.50 PerfScore 5.75
+G_M12455_IG52:
+ mov dword ptr [rbp-0xA8], edi
+ mov dword ptr [rbp-0xA4], esi
+ lea rdi, [rbp-0xB8]
+ mov rsi, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]
+ mov r15, rsi
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M12455_IG54
+ ;; size=48 bbWeight=0.50 PerfScore 3.75
+G_M12455_IG53:
+ mov rdi, gword ptr [rbp-0xB0]
movzx rsi, word ptr [r13+0x02]
mov edx, r12d
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(ushort,int):System.Text.StringBuilder:this
cmp dword ptr [rdi], edi
call [rax]System.Text.StringBuilder:Append(ushort,int):System.Text.StringBuilder:this
- mov esi, dword ptr [rbp-0x60]
- ;; size=25 bbWeight=2 PerfScore 19.00
-G_M12455_IG51:
- mov edi, dword ptr [r15+0x14]
- cmp ebx, edi
- jne G_M12455_IG126
- mov edi, dword ptr [r15+0x10]
- cmp esi, edi
- jae SHORT G_M12455_IG52
- mov rdi, gword ptr [r15+0x08]
- cmp esi, dword ptr [rdi+0x08]
- jae G_M12455_IG122
- mov edx, esi
- mov rdi, gword ptr [rdi+8*rdx+0x10]
- inc esi
- mov dword ptr [rbp-0x60], esi
- jmp SHORT G_M12455_IG50
- ;; size=47 bbWeight=4 PerfScore 72.00
-G_M12455_IG52:
+ lea rdi, [rbp-0xB8]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M12455_IG53
+ ;; size=55 bbWeight=4 PerfScore 59.00
+G_M12455_IG54:
cmp byte ptr [r14+0x2E], 11
- je G_M12455_IG63
- ;; size=11 bbWeight=4 PerfScore 16.00
-G_M12455_IG53:
+ je G_M12455_IG64
cmp r12d, dword ptr [r14+0x24]
sete bl
movzx rbx, bl
jmp G_M12455_IG98
- ;; size=15 bbWeight=0.50 PerfScore 3.12
-G_M12455_IG54:
+ ;; size=26 bbWeight=0.50 PerfScore 5.12
+G_M12455_IG55:
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ChildCount():int:this
call [rax]System.Text.RegularExpressions.RegexNode:ChildCount():int:this
mov r13d, eax
xor r12d, r12d
test r13d, r13d
- jle G_M12455_IG63
+ jle G_M12455_IG64
;; size=30 bbWeight=0.50 PerfScore 2.62
-G_M12455_IG55:
+G_M12455_IG56:
mov rdi, gword ptr [r14+0x08]
test rdi, rdi
- je SHORT G_M12455_IG58
+ je SHORT G_M12455_IG59
;; size=9 bbWeight=4 PerfScore 13.00
-G_M12455_IG56:
+G_M12455_IG57:
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rdi], rsi
- jne SHORT G_M12455_IG58
+ jne SHORT G_M12455_IG59
;; size=15 bbWeight=1 PerfScore 4.25
-G_M12455_IG57:
- jmp SHORT G_M12455_IG62
- ;; size=2 bbWeight=2 PerfScore 4.00
G_M12455_IG58:
+ jmp SHORT G_M12455_IG63
+ ;; size=2 bbWeight=2 PerfScore 4.00
+G_M12455_IG59:
mov rsi, gword ptr [r14+0x08]
mov rax, rsi
test rax, rax
- je SHORT G_M12455_IG61
+ je SHORT G_M12455_IG62
;; size=12 bbWeight=2 PerfScore 7.00
-G_M12455_IG59:
+G_M12455_IG60:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]
cmp qword ptr [rax], rdi
- je SHORT G_M12455_IG61
+ je SHORT G_M12455_IG62
;; size=15 bbWeight=1 PerfScore 4.25
-G_M12455_IG60:
+G_M12455_IG61:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M12455_IG61:
+G_M12455_IG62:
cmp r12d, dword ptr [rax+0x10]
- jae G_M12455_IG128
+ jae G_M12455_IG127
mov rdx, gword ptr [rax+0x08]
cmp r12d, dword ptr [rdx+0x08]
jae G_M12455_IG122
mov rdi, gword ptr [rdx+8*r12+0x10]
;; size=29 bbWeight=2 PerfScore 24.00
-G_M12455_IG62:
+G_M12455_IG63:
movzx rdx, bl
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexPrefixAnalyzer:<FindPrefixes>g__FindPrefixesCore|0_1(System.Text.RegularExpressions.RegexNode,System.Collections.Generic.List`1[System.Text.StringBuilder],ubyte):ubyte
call [rax]System.Text.RegularExpressions.RegexPrefixAnalyzer:<FindPrefixes>g__FindPrefixesCore|0_1(System.Text.RegularExpressions.RegexNode,System.Collections.Generic.List`1[System.Text.StringBuilder],ubyte):ubyte
test eax, eax
je G_M12455_IG119
inc r12d
cmp r12d, r13d
- jl SHORT G_M12455_IG55
+ jl SHORT G_M12455_IG56
;; size=34 bbWeight=4 PerfScore 26.00
-G_M12455_IG63:
+G_M12455_IG64:
mov eax, 1
cmp qword ptr [rbp-0x30], 0xD1FFAB1E
- je SHORT G_M12455_IG64
+ je SHORT G_M12455_IG65
call CORINFO_HELP_FAIL_FAST
;; size=20 bbWeight=0.50 PerfScore 2.12
-G_M12455_IG64:
+G_M12455_IG65:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M12455_IG65:
- add rsp, 216
+G_M12455_IG66:
+ add rsp, 344
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
-G_M12455_IG66:
+G_M12455_IG67:
mov r13d, dword ptr [r14+0x20]
test r13d, r13d
jle G_M12455_IG119
mov esi, 8
cmp r13d, 8
cmovg r13d, esi
xor r12d, r12d
test r13d, r13d
- jle G_M12455_IG75
+ jle G_M12455_IG76
;; size=38 bbWeight=0.50 PerfScore 2.75
-G_M12455_IG67:
+G_M12455_IG68:
mov rdi, gword ptr [r14+0x08]
test rdi, rdi
- je SHORT G_M12455_IG70
+ je SHORT G_M12455_IG71
;; size=9 bbWeight=4 PerfScore 13.00
-G_M12455_IG68:
+G_M12455_IG69:
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rdi], rsi
- jne SHORT G_M12455_IG70
+ jne SHORT G_M12455_IG71
;; size=15 bbWeight=1 PerfScore 4.25
-G_M12455_IG69:
- jmp SHORT G_M12455_IG74
- ;; size=2 bbWeight=2 PerfScore 4.00
G_M12455_IG70:
+ jmp SHORT G_M12455_IG75
+ ;; size=2 bbWeight=2 PerfScore 4.00
+G_M12455_IG71:
mov rsi, gword ptr [r14+0x08]
mov rax, rsi
test rax, rax
- je SHORT G_M12455_IG73
+ je SHORT G_M12455_IG74
;; size=12 bbWeight=2 PerfScore 7.00
-G_M12455_IG71:
+G_M12455_IG72:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]
cmp qword ptr [rax], rdi
- je SHORT G_M12455_IG73
+ je SHORT G_M12455_IG74
;; size=15 bbWeight=1 PerfScore 4.25
-G_M12455_IG72:
+G_M12455_IG73:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M12455_IG73:
+G_M12455_IG74:
cmp dword ptr [rax+0x10], 0
- je G_M12455_IG128
+ je G_M12455_IG127
mov rdx, gword ptr [rax+0x08]
cmp dword ptr [rdx+0x08], 0
jbe G_M12455_IG122
mov rdi, gword ptr [rdx+0x10]
;; size=28 bbWeight=2 PerfScore 24.00
-G_M12455_IG74:
+G_M12455_IG75:
movzx rdx, bl
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexPrefixAnalyzer:<FindPrefixes>g__FindPrefixesCore|0_1(System.Text.RegularExpressions.RegexNode,System.Collections.Generic.List`1[System.Text.StringBuilder],ubyte):ubyte
call [rax]System.Text.RegularExpressions.RegexPrefixAnalyzer:<FindPrefixes>g__FindPrefixesCore|0_1(System.Text.RegularExpressions.RegexNode,System.Collections.Generic.List`1[System.Text.StringBuilder],ubyte):ubyte
test eax, eax
je G_M12455_IG119
inc r12d
cmp r12d, r13d
- jl SHORT G_M12455_IG67
+ jl SHORT G_M12455_IG68
;; size=34 bbWeight=4 PerfScore 26.00
-G_M12455_IG75:
+G_M12455_IG76:
cmp r13d, dword ptr [r14+0x24]
sete bl
movzx rbx, bl
jmp G_M12455_IG98
;; size=15 bbWeight=0.50 PerfScore 3.12
-G_M12455_IG76:
+G_M12455_IG77:
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ChildCount():int:this
call [rax]System.Text.RegularExpressions.RegexNode:ChildCount():int:this
mov r13d, eax
cmp r13d, 16
jg G_M12455_IG119
xor r12, r12
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Text.StringBuilder]
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xA0], rax
+ mov gword ptr [rbp-0x120], rax
mov rdi, rax
mov esi, 1
mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this
call [rcx]System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this
- mov rsi, gword ptr [rbp-0xA0]
+ mov rsi, gword ptr [rbp-0x120]
mov rdi, 0xD1FFAB1E ; System.Runtime.InteropServices.CollectionsMarshal:SetCount[System.Text.StringBuilder](System.Collections.Generic.List`1[System.Text.StringBuilder],int)
mov edx, 1
mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.CollectionsMarshal:SetCount[System.__Canon](System.Collections.Generic.List`1[System.__Canon],int)
call [rax]System.Runtime.InteropServices.CollectionsMarshal:SetCount[System.__Canon](System.Collections.Generic.List`1[System.__Canon],int)
- mov rax, gword ptr [rbp-0xA0]
+ mov rax, gword ptr [rbp-0x120]
mov ecx, dword ptr [rax+0x10]
mov rdx, gword ptr [rax+0x08]
cmp dword ptr [rdx+0x08], ecx
- jb G_M12455_IG127
+ jb G_M12455_IG126
add rdx, 16
- mov bword ptr [rbp-0xF0], rdx
- mov dword ptr [rbp-0x64], ecx
+ mov bword ptr [rbp-0x170], rdx
+ mov dword ptr [rbp-0xD8], ecx
mov rdi, 0xD1FFAB1E ; System.Text.StringBuilder
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xA8], rax
- cmp dword ptr [rbp-0x64], 0
+ mov gword ptr [rbp-0x128], rax
+ cmp dword ptr [rbp-0xD8], 0
jbe G_M12455_IG122
mov dword ptr [rax+0x20], 0xD1FFAB1E
mov rdi, 0xD1FFAB1E ; ushort[]
mov esi, 16
call CORINFO_HELP_NEWARR_1_VC
- mov rcx, gword ptr [rbp-0xA8]
+ mov rcx, gword ptr [rbp-0x128]
lea rdi, bword ptr [rcx+0x08]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
- mov rdi, bword ptr [rbp-0xF0]
- mov rsi, gword ptr [rbp-0xA8]
+ mov rdi, bword ptr [rbp-0x170]
+ mov rsi, gword ptr [rbp-0x128]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0xA0]
- mov gword ptr [rbp-0x98], rax
+ mov rax, gword ptr [rbp-0x120]
+ mov gword ptr [rbp-0x118], rax
xor ecx, ecx
- ;; size=257 bbWeight=0.50 PerfScore 21.50
-G_M12455_IG77:
- mov qword ptr [rbp-0x70], rcx
+ ;; size=263 bbWeight=0.50 PerfScore 21.50
+G_M12455_IG78:
+ mov qword ptr [rbp-0xF0], rcx
test r13d, r13d
- mov rax, gword ptr [rbp-0x98]
+ mov rax, gword ptr [rbp-0x118]
jle G_M12455_IG96
- ;; size=20 bbWeight=0.50 PerfScore 1.62
-G_M12455_IG78:
+ ;; size=23 bbWeight=0.50 PerfScore 1.62
+G_M12455_IG79:
mov rdi, gword ptr [r14+0x08]
test rdi, rdi
- je SHORT G_M12455_IG81
+ je SHORT G_M12455_IG82
;; size=9 bbWeight=4 PerfScore 13.00
-G_M12455_IG79:
+G_M12455_IG80:
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rdi], rsi
- jne SHORT G_M12455_IG81
+ jne SHORT G_M12455_IG82
;; size=15 bbWeight=1 PerfScore 4.25
-G_M12455_IG80:
- jmp SHORT G_M12455_IG85
- ;; size=2 bbWeight=2 PerfScore 4.00
G_M12455_IG81:
+ jmp SHORT G_M12455_IG86
+ ;; size=2 bbWeight=2 PerfScore 4.00
+G_M12455_IG82:
mov rsi, gword ptr [r14+0x08]
mov rdx, rsi
test rdx, rdx
- je SHORT G_M12455_IG84
+ je SHORT G_M12455_IG85
;; size=12 bbWeight=2 PerfScore 7.00
-G_M12455_IG82:
+G_M12455_IG83:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]
cmp qword ptr [rdx], rdi
- je SHORT G_M12455_IG84
+ je SHORT G_M12455_IG85
;; size=15 bbWeight=1 PerfScore 4.25
-G_M12455_IG83:
- mov gword ptr [rbp-0x98], rax
+G_M12455_IG84:
+ mov gword ptr [rbp-0x118], rax
mov rdx, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
call [rdx]CORINFO_HELP_CHKCASTCLASS_SPECIAL
mov rdx, rax
- mov rax, gword ptr [rbp-0x98]
+ mov rax, gword ptr [rbp-0x118]
;; size=29 bbWeight=0.50 PerfScore 2.75
-G_M12455_IG84:
- mov rcx, qword ptr [rbp-0x70]
+G_M12455_IG85:
+ mov rcx, qword ptr [rbp-0xF0]
cmp ecx, dword ptr [rdx+0x10]
- jae G_M12455_IG128
+ jae G_M12455_IG127
mov rdx, gword ptr [rdx+0x08]
cmp ecx, dword ptr [rdx+0x08]
jae G_M12455_IG122
- mov qword ptr [rbp-0x70], rcx
+ mov qword ptr [rbp-0xF0], rcx
mov rdi, gword ptr [rdx+8*rcx+0x10]
- ;; size=35 bbWeight=2 PerfScore 28.00
-G_M12455_IG85:
+ ;; size=41 bbWeight=2 PerfScore 28.00
+G_M12455_IG86:
movzx rdx, bl
- mov gword ptr [rbp-0x98], rax
+ mov gword ptr [rbp-0x118], rax
mov rsi, rax
mov r8, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexPrefixAnalyzer:<FindPrefixes>g__FindPrefixesCore|0_1(System.Text.RegularExpressions.RegexNode,System.Collections.Generic.List`1[System.Text.StringBuilder],ubyte):ubyte
call [r8]System.Text.RegularExpressions.RegexPrefixAnalyzer:<FindPrefixes>g__FindPrefixesCore|0_1(System.Text.RegularExpressions.RegexNode,System.Collections.Generic.List`1[System.Text.StringBuilder],ubyte):ubyte
- mov rax, gword ptr [rbp-0x98]
+ mov rax, gword ptr [rbp-0x118]
mov rdi, rax
- mov ecx, dword ptr [rdi+0x14]
- xor ecx, ecx
- jmp SHORT G_M12455_IG87
- ;; size=43 bbWeight=4 PerfScore 41.00
-G_M12455_IG86:
- mov esi, dword ptr [rdx+0x1C]
- add esi, dword ptr [rdx+0x18]
- je G_M12455_IG97
- ;; size=12 bbWeight=8 PerfScore 48.00
+ mov esi, dword ptr [rdi+0x14]
+ mov gword ptr [rbp-0xD0], rdi
+ xor rdi, rdi
+ mov gword ptr [rbp-0xC8], rdi
+ ;; size=55 bbWeight=4 PerfScore 41.00
G_M12455_IG87:
- mov edx, dword ptr [rdi+0x10]
- cmp ecx, edx
- jae SHORT G_M12455_IG89
- ;; size=7 bbWeight=32 PerfScore 104.00
+ mov dword ptr [rbp-0xC0], edi
+ mov dword ptr [rbp-0xBC], esi
+ lea rdi, [rbp-0xD0]
+ mov rsi, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Text.StringBuilder]
+ mov rcx, rsi
+ mov qword ptr [rbp-0xE8], rcx
+ mov rsi, rcx
+ mov rdx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rdx]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M12455_IG89
+ ;; size=58 bbWeight=4 PerfScore 35.00
G_M12455_IG88:
- mov rdx, gword ptr [rdi+0x08]
- cmp ecx, dword ptr [rdx+0x08]
- jae G_M12455_IG122
- mov esi, ecx
- mov rdx, gword ptr [rdx+8*rsi+0x10]
- inc ecx
- jmp SHORT G_M12455_IG86
- ;; size=24 bbWeight=16 PerfScore 168.00
+ mov rdi, gword ptr [rbp-0xC8]
+ mov esi, dword ptr [rdi+0x1C]
+ add esi, dword ptr [rdi+0x18]
+ je G_M12455_IG97
+ lea rdi, [rbp-0xD0]
+ mov rsi, qword ptr [rbp-0xE8]
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M12455_IG88
+ ;; size=49 bbWeight=16 PerfScore 208.00
G_M12455_IG89:
test r12, r12
jne G_M12455_IG91
- ;; size=9 bbWeight=16 PerfScore 20.00
+ ;; size=9 bbWeight=4 PerfScore 5.00
G_M12455_IG90:
- mov r12, rax
+ mov r12, gword ptr [rbp-0x118]
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Text.StringBuilder]
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xB8], rax
+ mov gword ptr [rbp-0x138], rax
mov rdi, rax
mov esi, 1
mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this
call [rcx]System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this
- mov rsi, gword ptr [rbp-0xB8]
+ mov rsi, gword ptr [rbp-0x138]
mov rdi, 0xD1FFAB1E ; System.Runtime.InteropServices.CollectionsMarshal:SetCount[System.Text.StringBuilder](System.Collections.Generic.List`1[System.Text.StringBuilder],int)
mov edx, 1
mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.CollectionsMarshal:SetCount[System.__Canon](System.Collections.Generic.List`1[System.__Canon],int)
call [rax]System.Runtime.InteropServices.CollectionsMarshal:SetCount[System.__Canon](System.Collections.Generic.List`1[System.__Canon],int)
- mov rax, gword ptr [rbp-0xB8]
+ mov rax, gword ptr [rbp-0x138]
mov ecx, dword ptr [rax+0x10]
mov rdx, gword ptr [rax+0x08]
cmp dword ptr [rdx+0x08], ecx
- jb G_M12455_IG127
+ jb G_M12455_IG126
add rdx, 16
- mov bword ptr [rbp-0xF8], rdx
- mov dword ptr [rbp-0x68], ecx
+ mov bword ptr [rbp-0x178], rdx
+ mov dword ptr [rbp-0xDC], ecx
mov rdi, 0xD1FFAB1E ; System.Text.StringBuilder
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xC0], rax
- cmp dword ptr [rbp-0x68], 0
+ mov gword ptr [rbp-0x140], rax
+ cmp dword ptr [rbp-0xDC], 0
jbe G_M12455_IG122
mov dword ptr [rax+0x20], 0xD1FFAB1E
mov rdi, 0xD1FFAB1E ; ushort[]
mov esi, 16
call CORINFO_HELP_NEWARR_1_VC
- mov rcx, gword ptr [rbp-0xC0]
+ mov rcx, gword ptr [rbp-0x140]
lea rdi, bword ptr [rcx+0x08]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
- mov rdi, bword ptr [rbp-0xF8]
- mov rsi, gword ptr [rbp-0xC0]
+ mov rdi, bword ptr [rbp-0x178]
+ mov rsi, gword ptr [rbp-0x140]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0xB8]
+ mov rdi, gword ptr [rbp-0x138]
+ mov rax, rdi
jmp G_M12455_IG95
- ;; size=225 bbWeight=2 PerfScore 77.50
+ ;; size=238 bbWeight=2 PerfScore 79.50
G_M12455_IG91:
+ mov rax, gword ptr [rbp-0x118]
mov rdi, r12
- mov gword ptr [rbp-0x98], rax
+ mov gword ptr [rbp-0x118], rax
mov rsi, rax
mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.__Canon]):this
call [rcx]System.Collections.Generic.List`1[System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.__Canon]):this
- mov rax, gword ptr [rbp-0x98]
+ mov rax, gword ptr [rbp-0x118]
inc dword ptr [rax+0x14]
mov edx, dword ptr [rax+0x10]
xor edi, edi
mov dword ptr [rax+0x10], edi
test edx, edx
jle G_M12455_IG93
- mov gword ptr [rbp-0x98], rax
+ mov gword ptr [rbp-0x118], rax
mov rdi, gword ptr [rax+0x08]
xor esi, esi
mov rcx, 0xD1FFAB1E ; code for System.Array:Clear(System.Array,int,int)
call [rcx]System.Array:Clear(System.Array,int,int)
- ;; size=76 bbWeight=2 PerfScore 39.50
+ ;; size=83 bbWeight=2 PerfScore 41.50
G_M12455_IG92:
mov rdi, 0xD1FFAB1E ; System.Text.StringBuilder
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xB0], rax
+ mov gword ptr [rbp-0x130], rax
mov dword ptr [rax+0x20], 0xD1FFAB1E
mov rdi, 0xD1FFAB1E ; ushort[]
mov esi, 16
call CORINFO_HELP_NEWARR_1_VC
- mov rcx, gword ptr [rbp-0xB0]
+ mov rcx, gword ptr [rbp-0x130]
lea rdi, bword ptr [rcx+0x08]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x98]
+ mov rax, gword ptr [rbp-0x118]
inc dword ptr [rax+0x14]
mov rdi, gword ptr [rax+0x08]
mov esi, dword ptr [rax+0x10]
cmp dword ptr [rdi+0x08], esi
jbe SHORT G_M12455_IG94
lea ecx, [rsi+0x01]
- mov gword ptr [rbp-0x98], rax
+ mov gword ptr [rbp-0x118], rax
mov dword ptr [rax+0x10], ecx
lea rdi, bword ptr [rdi+8*rsi+0x10]
- mov rsi, gword ptr [rbp-0xB0]
+ mov rsi, gword ptr [rbp-0x130]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x98]
+ mov rax, gword ptr [rbp-0x118]
jmp SHORT G_M12455_IG95
;; size=129 bbWeight=2 PerfScore 56.00
G_M12455_IG93:
- mov gword ptr [rbp-0x98], rax
+ mov gword ptr [rbp-0x118], rax
jmp G_M12455_IG92
;; size=12 bbWeight=1 PerfScore 3.00
G_M12455_IG94:
- mov gword ptr [rbp-0x98], rax
+ mov gword ptr [rbp-0x118], rax
mov rdi, rax
- mov rsi, gword ptr [rbp-0xB0]
+ mov rsi, gword ptr [rbp-0x130]
mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
call [rcx]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
- mov rax, gword ptr [rbp-0x98]
+ mov rax, gword ptr [rbp-0x118]
;; size=36 bbWeight=2 PerfScore 13.00
G_M12455_IG95:
- mov rdi, qword ptr [rbp-0x70]
+ mov rdi, qword ptr [rbp-0xF0]
inc edi
cmp edi, r13d
- mov qword ptr [rbp-0x70], rdi
- jl G_M12455_IG78
- ;; size=19 bbWeight=4 PerfScore 14.00
+ mov qword ptr [rbp-0xF0], rdi
+ jl G_M12455_IG79
+ ;; size=25 bbWeight=4 PerfScore 14.00
G_M12455_IG96:
mov edx, dword ptr [r15+0x10]
cmp edx, 1
jne SHORT G_M12455_IG103
jmp SHORT G_M12455_IG101
;; size=11 bbWeight=0.50 PerfScore 2.62
G_M12455_IG97:
xor ebx, ebx
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M12455_IG98:
movzx rax, bl
cmp qword ptr [rbp-0x30], 0xD1FFAB1E
je SHORT G_M12455_IG99
call CORINFO_HELP_FAIL_FAST
;; size=18 bbWeight=0.50 PerfScore 2.12
G_M12455_IG99:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M12455_IG100:
- add rsp, 216
+ add rsp, 344
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
G_M12455_IG101:
mov rdi, gword ptr [r15+0x08]
mov rsi, rdi
cmp dword ptr [rsi+0x08], 0
jbe G_M12455_IG122
mov rsi, gword ptr [rsi+0x10]
mov eax, dword ptr [rsi+0x1C]
add eax, dword ptr [rsi+0x18]
jne SHORT G_M12455_IG103
inc dword ptr [r15+0x14]
xor esi, esi
mov dword ptr [r15+0x10], esi
;; size=39 bbWeight=0.50 PerfScore 9.25
G_M12455_IG102:
mov rax, 0xD1FFAB1E ; code for System.Array:Clear(System.Array,int,int)
call [rax]System.Array:Clear(System.Array,int,int)
mov rdi, r15
mov rsi, r12
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.__Canon]):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.__Canon]):this
jmp G_M12455_IG119
;; size=35 bbWeight=0.50 PerfScore 4.50
G_M12455_IG103:
mov ebx, edx
mov r14d, 1
cmp dword ptr [r12+0x10], 1
jle G_M12455_IG115
;; size=20 bbWeight=0.50 PerfScore 2.25
G_M12455_IG104:
cmp r14d, dword ptr [r12+0x10]
- jae G_M12455_IG128
+ jae G_M12455_IG127
mov rdi, gword ptr [r12+0x08]
cmp r14d, dword ptr [rdi+0x08]
jae G_M12455_IG122
mov r13, gword ptr [rdi+8*r14+0x10]
xor eax, eax
- mov qword ptr [rbp-0x78], rax
+ mov qword ptr [rbp-0xF8], rax
test ebx, ebx
jle G_M12455_IG114
- ;; size=45 bbWeight=4 PerfScore 58.00
+ ;; size=48 bbWeight=4 PerfScore 58.00
G_M12455_IG105:
mov rdi, 0xD1FFAB1E ; System.Text.StringBuilder
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xC8], rax
+ mov gword ptr [rbp-0x148], rax
mov dword ptr [rax+0x20], 0xD1FFAB1E
mov rdi, 0xD1FFAB1E ; ushort[]
mov esi, 16
call CORINFO_HELP_NEWARR_1_VC
- mov rcx, gword ptr [rbp-0xC8]
+ mov rcx, gword ptr [rbp-0x148]
lea rdi, bword ptr [rcx+0x08]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
- mov rax, qword ptr [rbp-0x78]
+ mov rax, qword ptr [rbp-0xF8]
cmp eax, dword ptr [r15+0x10]
- jae G_M12455_IG128
+ jae G_M12455_IG127
mov rcx, gword ptr [r15+0x08]
cmp eax, dword ptr [rcx+0x08]
jae G_M12455_IG122
- mov qword ptr [rbp-0x78], rax
+ mov qword ptr [rbp-0xF8], rax
mov rsi, gword ptr [rcx+8*rax+0x10]
test rsi, rsi
je SHORT G_M12455_IG107
- ;; size=109 bbWeight=16 PerfScore 364.00
+ ;; size=115 bbWeight=16 PerfScore 364.00
G_M12455_IG106:
mov ecx, dword ptr [rsi+0x1C]
add ecx, dword ptr [rsi+0x18]
je SHORT G_M12455_IG107
- mov rdi, gword ptr [rbp-0xC8]
+ mov rdi, gword ptr [rbp-0x148]
xor edx, edx
mov r8, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendCore(System.Text.StringBuilder,int,int):System.Text.StringBuilder:this
call [r8]System.Text.StringBuilder:AppendCore(System.Text.StringBuilder,int,int):System.Text.StringBuilder:this
jmp SHORT G_M12455_IG108
;; size=32 bbWeight=8 PerfScore 100.00
G_M12455_IG107:
- mov rcx, gword ptr [rbp-0xC8]
+ mov rcx, gword ptr [rbp-0x148]
mov r8, rcx
mov rax, r8
;; size=13 bbWeight=8 PerfScore 12.00
G_M12455_IG108:
cmp byte ptr [rax], al
test r13, r13
je SHORT G_M12455_IG110
;; size=7 bbWeight=16 PerfScore 68.00
G_M12455_IG109:
mov ecx, dword ptr [r13+0x1C]
add ecx, dword ptr [r13+0x18]
je SHORT G_M12455_IG110
- mov gword ptr [rbp-0xE0], rax
+ mov gword ptr [rbp-0x160], rax
mov rdi, rax
mov rsi, r13
xor edx, edx
mov r8, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendCore(System.Text.StringBuilder,int,int):System.Text.StringBuilder:this
call [r8]System.Text.StringBuilder:AppendCore(System.Text.StringBuilder,int,int):System.Text.StringBuilder:this
- mov rax, gword ptr [rbp-0xE0]
+ mov rax, gword ptr [rbp-0x160]
;; size=45 bbWeight=8 PerfScore 96.00
G_M12455_IG110:
inc dword ptr [r15+0x14]
mov rdi, gword ptr [r15+0x08]
mov esi, dword ptr [r15+0x10]
cmp dword ptr [rdi+0x08], esi
jbe SHORT G_M12455_IG112
;; size=17 bbWeight=16 PerfScore 176.00
G_M12455_IG111:
lea ecx, [rsi+0x01]
mov dword ptr [r15+0x10], ecx
mov esi, esi
lea rdi, bword ptr [rdi+8*rsi+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
jmp SHORT G_M12455_IG113
;; size=24 bbWeight=8 PerfScore 48.00
G_M12455_IG112:
mov rdi, r15
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
;; size=18 bbWeight=8 PerfScore 30.00
G_M12455_IG113:
- mov rcx, qword ptr [rbp-0x78]
+ mov rcx, qword ptr [rbp-0xF8]
inc ecx
cmp ecx, ebx
- mov qword ptr [rbp-0x78], rcx
+ mov qword ptr [rbp-0xF8], rcx
jl G_M12455_IG105
- ;; size=18 bbWeight=16 PerfScore 56.00
+ ;; size=24 bbWeight=16 PerfScore 56.00
G_M12455_IG114:
inc r14d
cmp r14d, dword ptr [r12+0x10]
jl G_M12455_IG104
;; size=14 bbWeight=4 PerfScore 17.00
G_M12455_IG115:
xor r14d, r14d
test ebx, ebx
jle SHORT G_M12455_IG119
;; size=7 bbWeight=0.50 PerfScore 0.75
G_M12455_IG116:
cmp r14d, dword ptr [r15+0x10]
- jae G_M12455_IG128
+ jae G_M12455_IG127
mov rcx, gword ptr [r15+0x08]
cmp r14d, dword ptr [rcx+0x08]
jae SHORT G_M12455_IG122
mov rdi, gword ptr [rcx+8*r14+0x10]
cmp dword ptr [r12+0x10], 0
- je G_M12455_IG128
+ je G_M12455_IG127
mov rcx, gword ptr [r12+0x08]
cmp dword ptr [rcx+0x08], 0
jbe SHORT G_M12455_IG122
mov rsi, gword ptr [rcx+0x10]
cmp byte ptr [rdi], dil
test rsi, rsi
je SHORT G_M12455_IG118
;; size=60 bbWeight=4 PerfScore 113.00
G_M12455_IG117:
mov ecx, dword ptr [rsi+0x1C]
add ecx, dword ptr [rsi+0x18]
je SHORT G_M12455_IG118
xor edx, edx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendCore(System.Text.StringBuilder,int,int):System.Text.StringBuilder:this
call [rax]System.Text.StringBuilder:AppendCore(System.Text.StringBuilder,int,int):System.Text.StringBuilder:this
;; size=22 bbWeight=2 PerfScore 19.00
G_M12455_IG118:
inc r14d
cmp r14d, ebx
jl SHORT G_M12455_IG116
;; size=8 bbWeight=4 PerfScore 6.00
G_M12455_IG119:
xor eax, eax
cmp qword ptr [rbp-0x30], 0xD1FFAB1E
je SHORT G_M12455_IG120
call CORINFO_HELP_FAIL_FAST
;; size=17 bbWeight=0.50 PerfScore 2.12
G_M12455_IG120:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M12455_IG121:
- add rsp, 216
+ add rsp, 344
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
G_M12455_IG122:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
G_M12455_IG123:
mov rdi, 0xD1FFAB1E
mov esi, 69
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
jmp G_M12455_IG04
;; size=25 bbWeight=0 PerfScore 0.00
G_M12455_IG124:
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M12455_IG125:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M12455_IG126:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
-G_M12455_IG127:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_ConcurrentOperationsNotSupported()
call [rax]System.ThrowHelper:ThrowInvalidOperationException_ConcurrentOperationsNotSupported()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M12455_IG128:
+G_M12455_IG127:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
RWD00 dd G_M12455_IG17 - G_M12455_IG02
dd G_M12455_IG119 - G_M12455_IG02
- dd G_M12455_IG35 - G_M12455_IG02
+ dd G_M12455_IG37 - G_M12455_IG02
dd G_M12455_IG17 - G_M12455_IG02
dd G_M12455_IG119 - G_M12455_IG02
- dd G_M12455_IG35 - G_M12455_IG02
+ dd G_M12455_IG37 - G_M12455_IG02
dd G_M12455_IG17 - G_M12455_IG02
dd G_M12455_IG119 - G_M12455_IG02
- dd G_M12455_IG35 - G_M12455_IG02
- dd G_M12455_IG25 - G_M12455_IG02
+ dd G_M12455_IG37 - G_M12455_IG02
+ dd G_M12455_IG24 - G_M12455_IG02
dd G_M12455_IG119 - G_M12455_IG02
- dd G_M12455_IG63 - G_M12455_IG02
- dd G_M12455_IG63 - G_M12455_IG02
- dd G_M12455_IG63 - G_M12455_IG02
- dd G_M12455_IG63 - G_M12455_IG02
- dd G_M12455_IG63 - G_M12455_IG02
- dd G_M12455_IG63 - G_M12455_IG02
- dd G_M12455_IG63 - G_M12455_IG02
- dd G_M12455_IG63 - G_M12455_IG02
+ dd G_M12455_IG64 - G_M12455_IG02
+ dd G_M12455_IG64 - G_M12455_IG02
+ dd G_M12455_IG64 - G_M12455_IG02
+ dd G_M12455_IG64 - G_M12455_IG02
+ dd G_M12455_IG64 - G_M12455_IG02
+ dd G_M12455_IG64 - G_M12455_IG02
+ dd G_M12455_IG64 - G_M12455_IG02
+ dd G_M12455_IG64 - G_M12455_IG02
dd G_M12455_IG119 - G_M12455_IG02
- dd G_M12455_IG63 - G_M12455_IG02
- dd G_M12455_IG76 - G_M12455_IG02
- dd G_M12455_IG54 - G_M12455_IG02
- dd G_M12455_IG66 - G_M12455_IG02
- dd G_M12455_IG66 - G_M12455_IG02
+ dd G_M12455_IG64 - G_M12455_IG02
+ dd G_M12455_IG77 - G_M12455_IG02
+ dd G_M12455_IG55 - G_M12455_IG02
+ dd G_M12455_IG67 - G_M12455_IG02
+ dd G_M12455_IG67 - G_M12455_IG02
dd G_M12455_IG08 - G_M12455_IG02
dd G_M12455_IG119 - G_M12455_IG02
- dd G_M12455_IG63 - G_M12455_IG02
- dd G_M12455_IG63 - G_M12455_IG02
+ dd G_M12455_IG64 - G_M12455_IG02
+ dd G_M12455_IG64 - G_M12455_IG02
dd G_M12455_IG08 - G_M12455_IG02
dd G_M12455_IG119 - G_M12455_IG02
dd G_M12455_IG119 - G_M12455_IG02
dd G_M12455_IG119 - G_M12455_IG02
dd G_M12455_IG119 - G_M12455_IG02
dd G_M12455_IG119 - G_M12455_IG02
dd G_M12455_IG119 - G_M12455_IG02
dd G_M12455_IG119 - G_M12455_IG02
dd G_M12455_IG119 - G_M12455_IG02
- dd G_M12455_IG63 - G_M12455_IG02
- dd G_M12455_IG63 - G_M12455_IG02
+ dd G_M12455_IG64 - G_M12455_IG02
+ dd G_M12455_IG64 - G_M12455_IG02
dd G_M12455_IG17 - G_M12455_IG02
dd G_M12455_IG119 - G_M12455_IG02
- dd G_M12455_IG35 - G_M12455_IG02
- dd G_M12455_IG63 - G_M12455_IG02
+ dd G_M12455_IG37 - G_M12455_IG02
+ dd G_M12455_IG64 - G_M12455_IG02
-; Total bytes of code 3572, prolog size 35, PerfScore 4265.59, instruction count 836, allocated bytes for code 3572 (MethodHash=cb55cf58) for method System.Text.RegularExpressions.RegexPrefixAnalyzer:<FindPrefixes>g__FindPrefixesCore|0_1(System.Text.RegularExpressions.RegexNode,System.Collections.Generic.List`1[System.Text.StringBuilder],ubyte):ubyte (FullOpts)
+; Total bytes of code 3878, prolog size 69, PerfScore 3839.93, instruction count 861, allocated bytes for code 3878 (MethodHash=cb55cf58) for method System.Text.RegularExpressions.RegexPrefixAnalyzer:<FindPrefixes>g__FindPrefixesCore|0_1(System.Text.RegularExpressions.RegexNode,System.Collections.Generic.List`1[System.Text.StringBuilder],ubyte):ubyte (FullOpts)
138 (4.24 % of base) - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:AdjustCallArgumentsForParams(Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.Expr,byref):this
; Assembly listing for method Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:AdjustCallArgumentsForParams(Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.Expr,byref):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
-; fully interruptible
+; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 127 single block inlinees; 15 inlinees without PGO data
+; 0 inlinees with PGO data; 127 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T27] ( 7, 12 ) byref -> r14 this single-def
-; V01 arg1 [V01,T73] ( 3, 3 ) ref -> rsi class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V02 arg2 [V02,T08] ( 12, 48 ) ref -> rbx class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V03 arg3 [V03,T20] ( 13, 16 ) ref -> r15 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol>
-; V04 arg4 [V04,T41] ( 6, 8.50) ref -> r13 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
-; V05 arg5 [V05,T44] ( 7, 6 ) ref -> r12 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-; V06 arg6 [V06,T61] ( 5, 6 ) byref -> [rbp+0x10] single-def
+; V00 this [V00,T23] ( 7, 12 ) byref -> r14 this single-def
+; V01 arg1 [V01,T69] ( 3, 3 ) ref -> rsi class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V02 arg2 [V02,T06] ( 12, 34 ) ref -> rbx class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V03 arg3 [V03,T16] ( 13, 16 ) ref -> r15 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol>
+; V04 arg4 [V04,T37] ( 6, 8.50) ref -> r13 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
+; V05 arg5 [V05,T40] ( 7, 6 ) ref -> r12 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+; V06 arg6 [V06,T57] ( 5, 6 ) byref -> [rbp+0x10] single-def
; V07 loc0 [V07 ] ( 4, 5 ) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-; V08 loc1 [V08,T101] ( 2, 3 ) ref -> [rbp-0x60] class-hnd spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol>
-; V09 loc2 [V09,T21] ( 10, 17.50) int -> [rbp-0x34]
-; V10 loc3 [V10,T74] ( 3, 19 ) ref -> [rbp-0x68] class-hnd exact spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
-;* V11 loc4 [V11,T114] ( 0, 0 ) int -> zero-ref
-; V12 loc5 [V12,T71] ( 4, 5.50) int -> [rbp-0x38] spill-single-def
-; V13 loc6 [V13,T94] ( 3, 3.50) ubyte -> [rbp-0x3C]
-; V14 loc7 [V14,T14] ( 12, 26.50) ref -> [rbp-0x70] class-hnd exact spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionIterator>
-; V15 loc8 [V15,T95] ( 6, 2.75) ref -> rbx class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-;* V16 loc9 [V16,T115] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CSharp.RuntimeBinder.Semantics.ArrayType>
-; V17 loc10 [V17,T43] ( 5, 8.50) ref -> r15 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V18 loc11 [V18,T102] ( 5, 2.50) ref -> r13 class-hnd exact single-def <Microsoft.CSharp.RuntimeBinder.Semantics.ExprArrayInit>
-; V19 loc12 [V19,T28] ( 7, 14 ) ref -> [rbp-0x78] class-hnd spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-; V20 loc13 [V20,T13] ( 11, 28 ) ref -> [rbp-0x80] class-hnd spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-; V21 loc14 [V21,T45] ( 4, 8 ) ref -> rdi class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-;* V22 loc15 [V22,T103] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CSharp.RuntimeBinder.Semantics.ExprNamedArgumentSpecification>
-; V23 loc16 [V23,T15] ( 6, 52 ) int -> [rbp-0x40]
+; V08 loc1 [V08,T96] ( 2, 3 ) ref -> [rbp-0x80] class-hnd spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol>
+; V09 loc2 [V09,T17] ( 10, 17.50) int -> [rbp-0x34]
+; V10 loc3 [V10,T70] ( 3, 5 ) ref -> [rbp-0x88] class-hnd exact spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
+;* V11 loc4 [V11,T109] ( 0, 0 ) int -> zero-ref
+; V12 loc5 [V12,T67] ( 4, 5.50) int -> [rbp-0x38] spill-single-def
+; V13 loc6 [V13,T89] ( 3, 3.50) ubyte -> [rbp-0x3C]
+; V14 loc7 [V14,T10] ( 12, 26.50) ref -> [rbp-0x90] class-hnd exact spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionIterator>
+; V15 loc8 [V15,T90] ( 6, 2.75) ref -> rbx class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+;* V16 loc9 [V16,T110] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CSharp.RuntimeBinder.Semantics.ArrayType>
+; V17 loc10 [V17,T39] ( 5, 8.50) ref -> r15 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V18 loc11 [V18,T97] ( 5, 2.50) ref -> r13 class-hnd exact single-def <Microsoft.CSharp.RuntimeBinder.Semantics.ExprArrayInit>
+; V19 loc12 [V19,T24] ( 7, 14 ) ref -> [rbp-0x98] class-hnd spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+; V20 loc13 [V20,T05] ( 11, 36 ) ref -> [rbp-0xA0] class-hnd spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+; V21 loc14 [V21,T41] ( 4, 8 ) ref -> rdi class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+;* V22 loc15 [V22,T98] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CSharp.RuntimeBinder.Semantics.ExprNamedArgumentSpecification>
+; V23 loc16 [V23,T04] ( 6, 40 ) int -> [rbp-0x40]
;* V24 loc17 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-;* V25 loc18 [V25 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Syntax.Name]>
-;* V26 loc19 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CSharp.RuntimeBinder.Syntax.Name>
-; V27 loc20 [V27,T77] ( 2, 4 ) ref -> [rbp-0x88] class-hnd exact spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.ArrayType>
+; V25 loc18 [V25 ] ( 7, 42 ) struct (24) [rbp-0x58] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Syntax.Name]>
+; V26 loc19 [V26,T09] ( 2, 32 ) ref -> rdi class-hnd exact <Microsoft.CSharp.RuntimeBinder.Syntax.Name>
+; V27 loc20 [V27,T73] ( 2, 4 ) ref -> [rbp-0xA8] class-hnd exact spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.ArrayType>
;* V28 loc21 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CSharp.RuntimeBinder.Semantics.ExprArrayInit>
;* V29 loc22 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V30 loc23 [V30 ] ( 3, 3 ) ref -> [rbp-0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-; V31 loc24 [V31 ] ( 2, 2.50) ref -> [rbp-0x50] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-; V32 loc25 [V32,T72] ( 4, 5 ) int -> rbx
-; V33 loc26 [V33,T16] ( 11, 21 ) ref -> r12 class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-;* V34 loc27 [V34,T93] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CSharp.RuntimeBinder.Semantics.ExprNamedArgumentSpecification>
+; V30 loc23 [V30 ] ( 3, 3 ) ref -> [rbp-0x60] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+; V31 loc24 [V31 ] ( 2, 2.50) ref -> [rbp-0x68] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+; V32 loc25 [V32,T68] ( 4, 5 ) int -> rbx
+; V33 loc26 [V33,T11] ( 11, 21 ) ref -> r12 class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+;* V34 loc27 [V34,T88] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CSharp.RuntimeBinder.Semantics.ExprNamedArgumentSpecification>
;# V35 OutArgs [V35 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V36 tmp1 [V36,T63] ( 3, 6 ) ref -> [rbp-0x90] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionIterator>
-; V37 tmp2 [V37,T29] ( 3, 10 ) ref -> rdx "ISINST eval op1"
-;* V38 tmp3 [V38,T60] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <Microsoft.CSharp.RuntimeBinder.Semantics.ParameterModifierType>
-;* V39 tmp4 [V39,T113] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
+; V36 tmp1 [V36,T59] ( 3, 6 ) ref -> [rbp-0xB0] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionIterator>
+; V37 tmp2 [V37,T25] ( 3, 10 ) ref -> rdx "ISINST eval op1"
+;* V38 tmp3 [V38,T56] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <Microsoft.CSharp.RuntimeBinder.Semantics.ParameterModifierType>
+;* V39 tmp4 [V39,T108] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
;* V40 tmp5 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <Microsoft.CSharp.RuntimeBinder.Semantics.ArrayType>
;* V41 tmp6 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <Microsoft.CSharp.RuntimeBinder.Semantics.ExprNamedArgumentSpecification>
;* V42 tmp7 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <Microsoft.CSharp.RuntimeBinder.Semantics.ExprNamedArgumentSpecification>
-;* V43 tmp8 [V43,T89] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
-; V44 tmp9 [V44,T78] ( 2, 4 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
-; V45 tmp10 [V45,T51] ( 2, 8 ) ref -> rdi class-hnd exact "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
-; V46 tmp11 [V46,T52] ( 2, 8 ) ref -> r9 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Syntax.Name]>
+;* V43 tmp8 [V43,T84] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
+; V44 tmp9 [V44,T74] ( 2, 4 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
+; V45 tmp10 [V45,T47] ( 2, 8 ) ref -> rdi class-hnd exact "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
+; V46 tmp11 [V46,T48] ( 2, 8 ) ref -> rsi class-hnd "Inlining Arg" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Syntax.Name]>
;* V47 tmp12 [V47 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Syntax.Name]>
-;* V48 tmp13 [V48,T12] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V49 tmp14 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Syntax.Name]>
-; V50 tmp15 [V50,T31] ( 3, 40 ) ref -> [rbp-0x98] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V51 tmp16 [V51,T22] ( 4, 17 ) ref -> r11 class-hnd "spilling qmarkNull" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
+; V48 tmp13 [V48,T27] ( 3, 12 ) ref -> [rbp-0xB8] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V49 tmp14 [V49,T18] ( 4, 17 ) ref -> rdi class-hnd "spilling qmarkNull" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
+;* V50 tmp15 [V50 ] ( 0, 0 ) ref -> zero-ref
+;* V51 tmp16 [V51 ] ( 0, 0 ) ref -> zero-ref
;* V52 tmp17 [V52 ] ( 0, 0 ) ref -> zero-ref
-;* V53 tmp18 [V53 ] ( 0, 0 ) ref -> zero-ref
-;* V54 tmp19 [V54 ] ( 0, 0 ) ref -> zero-ref
-; V55 tmp20 [V55,T64] ( 3, 6 ) ref -> [rbp-0xA0]
-; V56 tmp21 [V56,T42] ( 5, 10 ) ref -> [rbp-0xA8] class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V57 tmp22 [V57,T17] ( 5, 20 ) ref -> [rbp-0xB0] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext>
-;* V58 tmp23 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext>
-; V59 tmp24 [V59,T32] ( 3, 12 ) ref -> [rbp-0xB8] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-;* V60 tmp25 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V61 tmp26 [V61,T53] ( 2, 8 ) ref -> [rbp-0xC0] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V62 tmp27 [V62,T09] ( 9, 36 ) ref -> [rbp-0xC8] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
-;* V63 tmp28 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
-;* V64 tmp29 [V64 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder>
-; V65 tmp30 [V65,T54] ( 2, 8 ) ref -> rdi class-hnd exact "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
-;* V66 tmp31 [V66,T90] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
-; V67 tmp32 [V67,T38] ( 3, 12 ) int -> rax "Inlining Arg"
-; V68 tmp33 [V68,T33] ( 3, 12 ) ref -> [rbp-0xD0] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V69 tmp34 [V69,T23] ( 4, 17 ) ref -> rdi class-hnd "spilling qmarkNull" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
+; V53 tmp18 [V53,T60] ( 3, 6 ) ref -> [rbp-0xC0]
+; V54 tmp19 [V54,T38] ( 5, 10 ) ref -> [rbp-0xC8] class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V55 tmp20 [V55,T12] ( 5, 20 ) ref -> [rbp-0xD0] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext>
+;* V56 tmp21 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext>
+; V57 tmp22 [V57,T28] ( 3, 12 ) ref -> [rbp-0xD8] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+;* V58 tmp23 [V58 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V59 tmp24 [V59,T49] ( 2, 8 ) ref -> [rbp-0xE0] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V60 tmp25 [V60,T07] ( 9, 36 ) ref -> [rbp-0xE8] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
+;* V61 tmp26 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
+;* V62 tmp27 [V62 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder>
+; V63 tmp28 [V63,T50] ( 2, 8 ) ref -> rdi class-hnd exact "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
+;* V64 tmp29 [V64,T85] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
+; V65 tmp30 [V65,T34] ( 3, 12 ) int -> rax "Inlining Arg"
+; V66 tmp31 [V66,T29] ( 3, 12 ) ref -> [rbp-0xF0] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V67 tmp32 [V67,T19] ( 4, 17 ) ref -> rdi class-hnd "spilling qmarkNull" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
+;* V68 tmp33 [V68 ] ( 0, 0 ) ref -> zero-ref
+;* V69 tmp34 [V69 ] ( 0, 0 ) ref -> zero-ref
;* V70 tmp35 [V70 ] ( 0, 0 ) ref -> zero-ref
-;* V71 tmp36 [V71 ] ( 0, 0 ) ref -> zero-ref
-;* V72 tmp37 [V72 ] ( 0, 0 ) ref -> zero-ref
-; V73 tmp38 [V73,T65] ( 3, 6 ) ref -> [rbp-0xD8]
-; V74 tmp39 [V74,T62] ( 4, 6 ) ref -> rsi class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V75 tmp40 [V75,T18] ( 5, 20 ) ref -> [rbp-0xE0] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext>
-;* V76 tmp41 [V76 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext>
-; V77 tmp42 [V77,T55] ( 2, 8 ) ref -> [rbp-0xE8] class-hnd exact spill-single-def "Inlining Arg" <int[]>
-; V78 tmp43 [V78,T10] ( 9, 36 ) ref -> [rbp-0xF0] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExprArrayInit>
-;* V79 tmp44 [V79 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-;* V80 tmp45 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExprArrayInit>
-;* V81 tmp46 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V82 tmp47 [V82,T25] ( 4, 16 ) ref -> [rbp-0xF8] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-; V83 tmp48 [V83,T46] ( 4, 8 ) ref -> [rbp-0x100] class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-; V84 tmp49 [V84,T79] ( 2, 4 ) ref -> [rbp-0x108] ld-addr-op class-hnd spill-single-def "Inline ldloca(s) first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-;* V85 tmp50 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V86 tmp51 [V86,T56] ( 2, 8 ) ref -> [rbp-0x110] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V87 tmp52 [V87,T03] ( 10, 40 ) ref -> [rbp-0x118] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
-;* V88 tmp53 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
-; V89 tmp54 [V89,T83] ( 2, 4 ) ubyte -> rax "Inline stloc first use temp"
-;* V90 tmp55 [V90 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder>
-;* V91 tmp56 [V91 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-;* V92 tmp57 [V92 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V93 tmp58 [V93,T34] ( 3, 12 ) ref -> [rbp-0x120] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V94 tmp59 [V94,T24] ( 4, 17 ) ref -> rdi class-hnd "spilling qmarkNull" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
+; V71 tmp36 [V71,T61] ( 3, 6 ) ref -> [rbp-0xF8]
+; V72 tmp37 [V72,T58] ( 4, 6 ) ref -> rsi class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V73 tmp38 [V73,T13] ( 5, 20 ) ref -> [rbp-0x100] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext>
+;* V74 tmp39 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext>
+; V75 tmp40 [V75,T51] ( 2, 8 ) ref -> [rbp-0x108] class-hnd exact spill-single-def "Inlining Arg" <int[]>
+; V76 tmp41 [V76,T08] ( 9, 36 ) ref -> [rbp-0x110] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExprArrayInit>
+;* V77 tmp42 [V77 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+;* V78 tmp43 [V78 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExprArrayInit>
+;* V79 tmp44 [V79 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V80 tmp45 [V80,T21] ( 4, 16 ) ref -> [rbp-0x118] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+; V81 tmp46 [V81,T42] ( 4, 8 ) ref -> [rbp-0x120] class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+; V82 tmp47 [V82,T75] ( 2, 4 ) ref -> [rbp-0x128] ld-addr-op class-hnd spill-single-def "Inline ldloca(s) first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+;* V83 tmp48 [V83 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V84 tmp49 [V84,T52] ( 2, 8 ) ref -> [rbp-0x130] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V85 tmp50 [V85,T00] ( 10, 40 ) ref -> [rbp-0x138] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
+;* V86 tmp51 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
+; V87 tmp52 [V87,T79] ( 2, 4 ) ubyte -> rax "Inline stloc first use temp"
+;* V88 tmp53 [V88 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder>
+;* V89 tmp54 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+;* V90 tmp55 [V90 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V91 tmp56 [V91,T30] ( 3, 12 ) ref -> [rbp-0x140] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V92 tmp57 [V92,T20] ( 4, 17 ) ref -> rdi class-hnd "spilling qmarkNull" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
+;* V93 tmp58 [V93 ] ( 0, 0 ) ref -> zero-ref
+;* V94 tmp59 [V94 ] ( 0, 0 ) ref -> zero-ref
;* V95 tmp60 [V95 ] ( 0, 0 ) ref -> zero-ref
-;* V96 tmp61 [V96 ] ( 0, 0 ) ref -> zero-ref
-;* V97 tmp62 [V97 ] ( 0, 0 ) ref -> zero-ref
-; V98 tmp63 [V98,T66] ( 3, 6 ) ref -> [rbp-0x128]
-; V99 tmp64 [V99,T47] ( 4, 8 ) ref -> [rbp-0x130] class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V100 tmp65 [V100,T19] ( 5, 20 ) ref -> [rbp-0x138] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext>
-;* V101 tmp66 [V101 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext>
-; V102 tmp67 [V102,T67] ( 3, 6 ) ref -> rdi class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-; V103 tmp68 [V103,T80] ( 2, 4 ) ref -> [rbp-0x140] ld-addr-op class-hnd spill-single-def "Inline ldloca(s) first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-;* V104 tmp69 [V104 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V105 tmp70 [V105,T57] ( 2, 8 ) ref -> [rbp-0x148] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V106 tmp71 [V106,T04] ( 10, 40 ) ref -> [rbp-0x150] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
-;* V107 tmp72 [V107 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
-; V108 tmp73 [V108,T84] ( 2, 4 ) ubyte -> rax "Inline stloc first use temp"
-;* V109 tmp74 [V109 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder>
-; V110 tmp75 [V110,T104] ( 2, 2 ) ref -> rdi class-hnd exact "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
-;* V111 tmp76 [V111,T91] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V112 tmp77 [V112,T105] ( 2, 2 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
-; V113 tmp78 [V113,T100] ( 3, 3 ) int -> rsi "Inlining Arg"
-; V114 tmp79 [V114,T106] ( 2, 2 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <int[]>
-; V115 tmp80 [V115,T39] ( 11, 11 ) ref -> [rbp-0x158] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExprArrayInit>
-;* V116 tmp81 [V116,T116] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V117 tmp82 [V117,T75] ( 4, 4 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExprList>
-; V118 tmp83 [V118,T26] ( 4, 16 ) ref -> [rbp-0x160] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-; V119 tmp84 [V119,T48] ( 4, 8 ) ref -> [rbp-0x168] class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-; V120 tmp85 [V120,T81] ( 2, 4 ) ref -> [rbp-0x170] ld-addr-op class-hnd spill-single-def "Inline ldloca(s) first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-;* V121 tmp86 [V121 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V122 tmp87 [V122,T58] ( 2, 8 ) ref -> [rbp-0x178] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V123 tmp88 [V123,T05] ( 10, 40 ) ref -> [rbp-0x180] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
-;* V124 tmp89 [V124 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
-; V125 tmp90 [V125,T85] ( 2, 4 ) ubyte -> rax "Inline stloc first use temp"
-;* V126 tmp91 [V126 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder>
-;* V127 tmp92 [V127 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-;* V128 tmp93 [V128 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V129 tmp94 [V129,T68] ( 3, 6 ) ref -> r12 class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-; V130 tmp95 [V130,T82] ( 2, 4 ) ref -> [rbp-0x188] ld-addr-op class-hnd spill-single-def "Inline ldloca(s) first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-;* V131 tmp96 [V131 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V132 tmp97 [V132,T59] ( 2, 8 ) ref -> [rbp-0x190] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V133 tmp98 [V133,T06] ( 10, 40 ) ref -> [rbp-0x198] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
-;* V134 tmp99 [V134 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
-; V135 tmp100 [V135,T86] ( 2, 4 ) ubyte -> rax "Inline stloc first use temp"
-;* V136 tmp101 [V136 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder>
-;* V137 tmp102 [V137,T92] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V138 tmp103 [V138,T107] ( 2, 2 ) ref -> rsi class-hnd single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-; V139 tmp104 [V139,T11] ( 3, 34 ) ref -> r9 "field V25._list (fldOffset=0x0)" P-INDEP
-; V140 tmp105 [V140,T07] ( 2, 24 ) ref -> r8 "field V25._current (fldOffset=0x8)" P-INDEP
-; V141 tmp106 [V141,T00] ( 6, 82 ) int -> r10 "field V25._index (fldOffset=0x10)" P-INDEP
-;* V142 tmp107 [V142,T109] ( 0, 0 ) int -> zero-ref "field V25._version (fldOffset=0x14)" P-INDEP
-; V143 tmp108 [V143,T69] ( 3, 6 ) ref -> r9 "field V47._list (fldOffset=0x0)" P-INDEP
-;* V144 tmp109 [V144 ] ( 0, 0 ) ref -> zero-ref "field V47._current (fldOffset=0x8)" P-INDEP
-;* V145 tmp110 [V145,T110] ( 0, 0 ) int -> zero-ref "field V47._index (fldOffset=0x10)" P-INDEP
-;* V146 tmp111 [V146,T87] ( 0, 0 ) int -> zero-ref "field V47._version (fldOffset=0x14)" P-INDEP
-; V147 tmp112 [V147,T35] ( 3, 12 ) ref -> rdi "arr expr"
-; V148 tmp113 [V148,T01] ( 3, 96 ) ref -> r11 "arr expr"
-; V149 tmp114 [V149,T36] ( 3, 96 ) ref -> r10 "arr expr"
-; V150 tmp115 [V150,T37] ( 3, 12 ) ref -> rdi "arr expr"
-; V151 tmp116 [V151,T96] ( 3, 3 ) ref -> rdi single-def "arr expr"
-; V152 tmp117 [V152,T108] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
-; V153 tmp118 [V153,T97] ( 3, 3 ) ref -> rdi single-def "arr expr"
-; V154 tmp119 [V154,T98] ( 3, 3 ) ref -> rdi single-def "arr expr"
-; V155 cse0 [V155,T70] ( 3, 6 ) ref -> [rbp-0x1A0] spill-single-def "CSE #09: conservative"
-;* V156 cse1 [V156,T88] ( 0, 0 ) int -> zero-ref "CSE #02: moderate"
-; V157 cse2 [V157,T02] ( 2, 32 ) int -> r11 "CSE #03: aggressive"
-; V158 cse3 [V158,T49] ( 2, 4 ) ref -> rdi "CSE #04: conservative"
-; V159 cse4 [V159,T50] ( 4, 8 ) ref -> rdi "CSE #05: conservative"
-; V160 cse5 [V160,T99] ( 3, 3 ) ref -> rcx "CSE #01: conservative"
-; V161 cse6 [V161,T111] ( 2, 1 ) ref -> rdi "CSE #15: conservative"
-; V162 cse7 [V162,T112] ( 3, 1.50) ref -> rdi "CSE #16: conservative"
-; V163 rat0 [V163,T40] ( 6, 11 ) long -> [rbp-0x58] "Widened IV V11"
-; V164 rat1 [V164,T30] ( 4, 14 ) ref -> rax "replacement local"
-; V165 rat2 [V165,T76] ( 3, 4 ) long -> rdi "CSE for expectedClsNode"
+; V96 tmp61 [V96,T62] ( 3, 6 ) ref -> [rbp-0x148]
+; V97 tmp62 [V97,T43] ( 4, 8 ) ref -> [rbp-0x150] class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V98 tmp63 [V98,T14] ( 5, 20 ) ref -> [rbp-0x158] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext>
+;* V99 tmp64 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext>
+; V100 tmp65 [V100,T63] ( 3, 6 ) ref -> rdi class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+; V101 tmp66 [V101,T76] ( 2, 4 ) ref -> [rbp-0x160] ld-addr-op class-hnd spill-single-def "Inline ldloca(s) first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+;* V102 tmp67 [V102 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V103 tmp68 [V103,T53] ( 2, 8 ) ref -> [rbp-0x168] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V104 tmp69 [V104,T01] ( 10, 40 ) ref -> [rbp-0x170] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
+;* V105 tmp70 [V105 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
+; V106 tmp71 [V106,T80] ( 2, 4 ) ubyte -> rax "Inline stloc first use temp"
+;* V107 tmp72 [V107 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder>
+; V108 tmp73 [V108,T99] ( 2, 2 ) ref -> rdi class-hnd exact "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
+;* V109 tmp74 [V109,T86] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V110 tmp75 [V110,T100] ( 2, 2 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
+; V111 tmp76 [V111,T95] ( 3, 3 ) int -> rsi "Inlining Arg"
+; V112 tmp77 [V112,T101] ( 2, 2 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <int[]>
+; V113 tmp78 [V113,T35] ( 11, 11 ) ref -> [rbp-0x178] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExprArrayInit>
+;* V114 tmp79 [V114,T111] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V115 tmp80 [V115,T71] ( 4, 4 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExprList>
+; V116 tmp81 [V116,T22] ( 4, 16 ) ref -> [rbp-0x180] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+; V117 tmp82 [V117,T44] ( 4, 8 ) ref -> [rbp-0x188] class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+; V118 tmp83 [V118,T77] ( 2, 4 ) ref -> [rbp-0x190] ld-addr-op class-hnd spill-single-def "Inline ldloca(s) first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+;* V119 tmp84 [V119 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V120 tmp85 [V120,T54] ( 2, 8 ) ref -> [rbp-0x198] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V121 tmp86 [V121,T02] ( 10, 40 ) ref -> [rbp-0x1A0] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
+;* V122 tmp87 [V122 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
+; V123 tmp88 [V123,T81] ( 2, 4 ) ubyte -> rax "Inline stloc first use temp"
+;* V124 tmp89 [V124 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder>
+;* V125 tmp90 [V125 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+;* V126 tmp91 [V126 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V127 tmp92 [V127,T64] ( 3, 6 ) ref -> r12 class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+; V128 tmp93 [V128,T78] ( 2, 4 ) ref -> [rbp-0x1A8] ld-addr-op class-hnd spill-single-def "Inline ldloca(s) first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+;* V129 tmp94 [V129 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V130 tmp95 [V130,T55] ( 2, 8 ) ref -> [rbp-0x1B0] class-hnd spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V131 tmp96 [V131,T03] ( 10, 40 ) ref -> [rbp-0x1B8] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
+;* V132 tmp97 [V132 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
+; V133 tmp98 [V133,T82] ( 2, 4 ) ubyte -> rax "Inline stloc first use temp"
+;* V134 tmp99 [V134 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder>
+;* V135 tmp100 [V135,T87] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V136 tmp101 [V136,T102] ( 2, 2 ) ref -> rsi class-hnd single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+; V137 tmp102 [V137 ] ( 3, 20 ) ref -> [rbp-0x58] do-not-enreg[X] addr-exposed "field V25._list (fldOffset=0x0)" P-DEP
+; V138 tmp103 [V138 ] ( 4, 36 ) ref -> [rbp-0x50] do-not-enreg[X] addr-exposed "field V25._current (fldOffset=0x8)" P-DEP
+; V139 tmp104 [V139 ] ( 3, 20 ) int -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V25._index (fldOffset=0x10)" P-DEP
+; V140 tmp105 [V140 ] ( 3, 20 ) int -> [rbp-0x44] do-not-enreg[X] addr-exposed "field V25._version (fldOffset=0x14)" P-DEP
+; V141 tmp106 [V141,T65] ( 3, 6 ) ref -> rsi "field V47._list (fldOffset=0x0)" P-INDEP
+;* V142 tmp107 [V142,T104] ( 0, 0 ) ref -> zero-ref "field V47._current (fldOffset=0x8)" P-INDEP
+;* V143 tmp108 [V143,T105] ( 0, 0 ) int -> zero-ref "field V47._index (fldOffset=0x10)" P-INDEP
+; V144 tmp109 [V144,T83] ( 2, 4 ) int -> r10 "field V47._version (fldOffset=0x14)" P-INDEP
+; V145 tmp110 [V145,T31] ( 3, 12 ) ref -> rdi "arr expr"
+; V146 tmp111 [V146,T32] ( 3, 12 ) ref -> rdi "arr expr"
+; V147 tmp112 [V147,T33] ( 3, 12 ) ref -> rdi "arr expr"
+; V148 tmp113 [V148,T91] ( 3, 3 ) ref -> rdi single-def "arr expr"
+; V149 tmp114 [V149,T103] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
+; V150 tmp115 [V150,T92] ( 3, 3 ) ref -> rdi single-def "arr expr"
+; V151 tmp116 [V151,T93] ( 3, 3 ) ref -> rdi single-def "arr expr"
+; V152 cse0 [V152,T66] ( 3, 6 ) ref -> [rbp-0x1C0] spill-single-def "CSE #08: conservative"
+; V153 cse1 [V153,T45] ( 2, 4 ) ref -> rdi "CSE #03: conservative"
+; V154 cse2 [V154,T46] ( 4, 8 ) ref -> rdi "CSE #04: conservative"
+; V155 cse3 [V155,T94] ( 3, 3 ) ref -> rcx "CSE #01: conservative"
+; V156 cse4 [V156,T106] ( 2, 1 ) ref -> rdi "CSE #12: conservative"
+; V157 cse5 [V157,T107] ( 3, 1.50) ref -> rdi "CSE #13: conservative"
+; V158 cse6 [V158,T15] ( 3, 20 ) long -> [rbp-0x70] spill-single-def "CSE #02: moderate"
+; V159 rat0 [V159,T36] ( 6, 11 ) long -> [rbp-0x78] "Widened IV V11"
+; V160 rat1 [V160,T26] ( 4, 14 ) ref -> rax "replacement local"
+; V161 rat2 [V161,T72] ( 3, 4 ) long -> rdi "CSE for expectedClsNode"
;
-; Lcl frame size = 376
+; Lcl frame size = 408
G_M22714_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 376
- lea rbp, [rsp+0x1A0]
- vxorps xmm8, xmm8, xmm8
- vmovdqu ymmword ptr [rbp-0x50], ymm8
+ sub rsp, 408
+ lea rbp, [rsp+0x1C0]
xor eax, eax
+ mov qword ptr [rbp-0x68], rax
+ vxorps xmm8, xmm8, xmm8
+ vmovdqu ymmword ptr [rbp-0x60], ymm8
+ vmovdqa xmmword ptr [rbp-0x40], xmm8
mov qword ptr [rbp-0x30], rax
mov r14, rdi
mov rbx, rdx
mov r15, rcx
mov r13, r8
mov r12, r9
mov rax, bword ptr [rbp+0x10]
- ;; size=60 bbWeight=1 PerfScore 12.58
+ ;; size=69 bbWeight=1 PerfScore 15.58
G_M22714_IG02:
xor rdi, rdi
mov bword ptr [rbp+0x10], rax
mov gword ptr [rax], rdi
mov rdi, r15
mov rcx, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+GroupToArgsBinder:FindMostDerivedMethod(Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol,Microsoft.CSharp.RuntimeBinder.Semantics.CType):Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol
call [rcx]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+GroupToArgsBinder:FindMostDerivedMethod(Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol,Microsoft.CSharp.RuntimeBinder.Semantics.CType):Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol
- mov gword ptr [rbp-0x60], rax
+ mov gword ptr [rbp-0x80], rax
mov rcx, gword ptr [r15+0x88]
mov rdi, rcx
mov rdi, gword ptr [rdi+0x08]
mov edx, dword ptr [rdi+0x08]
mov dword ptr [rbp-0x34], edx
- mov gword ptr [rbp-0x68], rcx
+ mov gword ptr [rbp-0x88], rcx
xor esi, esi
- mov qword ptr [rbp-0x58], rsi
+ mov qword ptr [rbp-0x78], rsi
mov rdi, r12
mov r8, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionIterator:Count(Microsoft.CSharp.RuntimeBinder.Semantics.Expr):int
call [r8]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionIterator:Count(Microsoft.CSharp.RuntimeBinder.Semantics.Expr):int
mov dword ptr [rbp-0x38], eax
xor ecx, ecx
mov dword ptr [rbp-0x3C], ecx
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionIterator
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x90], rax
+ mov gword ptr [rbp-0xB0], rax
mov rdi, rax
mov rsi, r12
mov rcx, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionIterator:Init(Microsoft.CSharp.RuntimeBinder.Semantics.Expr):this
call [rcx]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionIterator:Init(Microsoft.CSharp.RuntimeBinder.Semantics.Expr):this
- mov rax, gword ptr [rbp-0x90]
- mov gword ptr [rbp-0x70], rax
+ mov rax, gword ptr [rbp-0xB0]
+ mov gword ptr [rbp-0x90], rax
test r12, r12
- jne G_M22714_IG55
- ;; size=142 bbWeight=1 PerfScore 31.25
+ jne G_M22714_IG54
+ ;; size=148 bbWeight=1 PerfScore 31.25
G_M22714_IG03:
cmp byte ptr [r15+0x97], 0
- jne G_M22714_IG61
- jmp G_M22714_IG82
+ jne G_M22714_IG60
+ jmp G_M22714_IG81
;; size=19 bbWeight=0.50 PerfScore 3.00
G_M22714_IG04:
mov rcx, gword ptr [rax+0x10]
- mov gword ptr [rbp-0x78], rcx
+ mov gword ptr [rbp-0x98], rcx
mov rdx, gword ptr [rcx+0x08]
test rdx, rdx
je SHORT G_M22714_IG09
- ;; size=17 bbWeight=2 PerfScore 12.50
+ ;; size=20 bbWeight=2 PerfScore 12.50
G_M22714_IG05:
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ParameterModifierType
cmp qword ptr [rdx], rdi
jne SHORT G_M22714_IG09
;; size=15 bbWeight=1 PerfScore 4.25
G_M22714_IG06:
mov edx, dword ptr [rbp-0x34]
test edx, edx
je SHORT G_M22714_IG08
dec edx
mov dword ptr [rbp-0x34], edx
;; size=12 bbWeight=2 PerfScore 7.00
G_M22714_IG07:
lea rdx, [rbp-0x30]
mov rdi, rcx
mov rsi, bword ptr [rbp+0x10]
mov rcx, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExprFactory:AppendItemToList(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,byref,byref)
call [rcx]Microsoft.CSharp.RuntimeBinder.Semantics.ExprFactory:AppendItemToList(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,byref,byref)
- jmp G_M22714_IG53
+ jmp G_M22714_IG52
;; size=28 bbWeight=2 PerfScore 14.00
G_M22714_IG08:
mov dword ptr [rbp-0x34], edx
jmp SHORT G_M22714_IG07
- align [0 bytes for IG12]
;; size=5 bbWeight=1 PerfScore 3.00
G_M22714_IG09:
mov edx, dword ptr [rbp-0x34]
test edx, edx
- je SHORT G_M22714_IG11
+ je G_M22714_IG15
mov dword ptr [rbp-0x34], edx
cmp edx, 1
jne SHORT G_M22714_IG10
cmp byte ptr [r15+0x97], 0
je SHORT G_M22714_IG10
mov rdi, gword ptr [r15+0x88]
mov rdi, gword ptr [rdi+0x08]
- mov esi, dword ptr [rbp-0x38]
- cmp dword ptr [rdi+0x08], esi
- jl G_M22714_IG60
- ;; size=48 bbWeight=2 PerfScore 35.00
+ mov r8d, dword ptr [rbp-0x38]
+ cmp dword ptr [rdi+0x08], r8d
+ jl G_M22714_IG59
+ ;; size=54 bbWeight=2 PerfScore 35.00
G_M22714_IG10:
mov rdi, rcx
- mov gword ptr [rbp-0x80], rdi
- mov r8, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExprNamedArgumentSpecification
- cmp qword ptr [rdi], r8
- jne G_M22714_IG41
+ mov gword ptr [rbp-0xA0], rdi
+ mov rsi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExprNamedArgumentSpecification
+ cmp qword ptr [rdi], rsi
+ jne G_M22714_IG40
xor ecx, ecx
- mov r8, gword ptr [rbp-0x60]
- mov r9, gword ptr [r8+0x40]
- mov r10d, dword ptr [r9+0x14]
- xor r10d, r10d
- jmp SHORT G_M22714_IG13
- ;; size=45 bbWeight=2 PerfScore 26.00
+ mov dword ptr [rbp-0x40], ecx
+ mov r9, gword ptr [rbp-0x80]
+ mov rsi, gword ptr [r9+0x40]
+ mov r10d, dword ptr [rsi+0x14]
+ mov gword ptr [rbp-0x58], rsi
+ xor rsi, rsi
+ mov gword ptr [rbp-0x50], rsi
+ ;; size=56 bbWeight=2 PerfScore 28.00
G_M22714_IG11:
- mov dword ptr [rbp-0x34], edx
- jmp G_M22714_IG53
- ;; size=8 bbWeight=1 PerfScore 3.00
+ mov dword ptr [rbp-0x48], esi
+ mov dword ptr [rbp-0x44], r10d
+ lea rdi, [rbp-0x58]
+ mov r10, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Syntax.Name]
+ mov qword ptr [rbp-0x70], r10
+ mov rsi, r10
+ mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [r11]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M22714_IG13
+ ;; size=45 bbWeight=2 PerfScore 17.00
G_M22714_IG12:
- cmp r8, gword ptr [rdi+0x40]
- je SHORT G_M22714_IG14
+ mov rdi, gword ptr [rbp-0x50]
+ mov rax, gword ptr [rbp-0xA0]
+ cmp rdi, gword ptr [rax+0x40]
+ je SHORT G_M22714_IG13
+ mov ecx, dword ptr [rbp-0x40]
inc ecx
- mov rdi, gword ptr [rbp-0x80]
- ;; size=12 bbWeight=8 PerfScore 42.00
+ mov dword ptr [rbp-0x40], ecx
+ lea rdi, [rbp-0x58]
+ mov rsi, qword ptr [rbp-0x70]
+ mov rdx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rdx]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M22714_IG12
+ ;; size=49 bbWeight=16 PerfScore 228.00
G_M22714_IG13:
- mov r11d, dword ptr [r9+0x10]
- cmp r10d, r11d
- jae SHORT G_M22714_IG15
- mov r11, gword ptr [r9+0x08]
- cmp r10d, dword ptr [r11+0x08]
- jae G_M22714_IG84
- mov r8d, r10d
- mov r8, gword ptr [r11+8*r8+0x10]
- inc r10d
- jmp SHORT G_M22714_IG12
- ;; size=36 bbWeight=16 PerfScore 220.00
+ mov rcx, gword ptr [rbp-0x88]
+ mov rdi, gword ptr [rcx+0x08]
+ mov edx, dword ptr [rbp-0x40]
+ cmp edx, dword ptr [rdi+0x08]
+ jae G_M22714_IG83
+ mov dword ptr [rbp-0x40], edx
+ mov esi, edx
+ mov rsi, gword ptr [rdi+8*rsi+0x10]
+ mov gword ptr [rbp-0xB8], rsi
+ test rbx, rbx
+ jne SHORT G_M22714_IG16
+ ;; size=45 bbWeight=2 PerfScore 27.00
G_M22714_IG14:
- mov rdi, gword ptr [rbp-0x80]
- ;; size=4 bbWeight=4 PerfScore 4.00
+ xor rdi, rdi
+ jmp SHORT G_M22714_IG18
+ ;; size=4 bbWeight=4 PerfScore 9.00
G_M22714_IG15:
- mov r9, gword ptr [rbp-0x68]
- mov r10, gword ptr [r9+0x08]
- cmp ecx, dword ptr [r10+0x08]
- jae G_M22714_IG84
- mov dword ptr [rbp-0x40], ecx
- mov r11d, ecx
- mov r10, gword ptr [r10+8*r11+0x10]
- mov gword ptr [rbp-0x98], r10
- test rbx, rbx
- jne SHORT G_M22714_IG17
- ;; size=41 bbWeight=16 PerfScore 200.00
+ mov dword ptr [rbp-0x34], edx
+ jmp G_M22714_IG52
+ ;; size=8 bbWeight=1 PerfScore 3.00
G_M22714_IG16:
- xor r11, r11
- jmp SHORT G_M22714_IG19
- ;; size=5 bbWeight=4 PerfScore 9.00
-G_M22714_IG17:
- mov r11, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType
- cmp qword ptr [rbx], r11
- jne SHORT G_M22714_IG16
+ mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType
+ cmp qword ptr [rbx], rdi
+ jne SHORT G_M22714_IG14
;; size=15 bbWeight=8 PerfScore 34.00
-G_M22714_IG18:
- mov r11, rbx
+G_M22714_IG17:
+ mov rdi, rbx
;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M22714_IG19:
- test r11, r11
- jne SHORT G_M22714_IG20
- xor r11, r11
- mov gword ptr [rbp-0xA0], r11
- jmp SHORT G_M22714_IG21
+G_M22714_IG18:
+ test rdi, rdi
+ jne SHORT G_M22714_IG19
+ xor r8, r8
+ mov gword ptr [rbp-0xC0], r8
+ jmp SHORT G_M22714_IG20
;; size=17 bbWeight=2 PerfScore 9.00
-G_M22714_IG20:
- mov r11, gword ptr [r11+0x40]
- mov gword ptr [rbp-0xA0], r11
+G_M22714_IG19:
+ mov r8, gword ptr [rdi+0x40]
+ mov gword ptr [rbp-0xC0], r8
;; size=11 bbWeight=2 PerfScore 6.00
-G_M22714_IG21:
+G_M22714_IG20:
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xB0], rax
+ mov gword ptr [rbp-0xD0], rax
mov rdi, rax
- mov rsi, gword ptr [rbp-0xA0]
+ mov rsi, gword ptr [rbp-0xC0]
mov rdx, r13
xor ecx, ecx
mov r8, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext:.ctor(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,ubyte):this
call [r8]Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext:.ctor(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,ubyte):this
- mov rax, gword ptr [rbp-0xB0]
+ mov rax, gword ptr [rbp-0xD0]
mov rdi, gword ptr [rax+0x08]
cmp dword ptr [rdi+0x08], 0
sete dil
movzx rdi, dil
mov rsi, gword ptr [rax+0x10]
cmp dword ptr [rsi+0x08], 0
sete sil
movzx rsi, sil
test edi, esi
- jne SHORT G_M22714_IG22
- mov rdi, gword ptr [rbp-0x98]
+ jne SHORT G_M22714_IG21
+ mov rdi, gword ptr [rbp-0xB8]
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager:SubstTypeCore(Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):Microsoft.CSharp.RuntimeBinder.Semantics.CType
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager:SubstTypeCore(Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):Microsoft.CSharp.RuntimeBinder.Semantics.CType
- mov gword ptr [rbp-0xA8], rax
- jmp SHORT G_M22714_IG23
+ mov gword ptr [rbp-0xC8], rax
+ jmp SHORT G_M22714_IG22
;; size=124 bbWeight=2 PerfScore 59.00
-G_M22714_IG22:
- mov rax, gword ptr [rbp-0x98]
- mov gword ptr [rbp-0xA8], rax
+G_M22714_IG21:
+ mov rax, gword ptr [rbp-0xB8]
+ mov gword ptr [rbp-0xC8], rax
;; size=14 bbWeight=2 PerfScore 4.00
-G_M22714_IG23:
- mov rdi, gword ptr [rbp-0x80]
+G_M22714_IG22:
+ mov rdi, gword ptr [rbp-0xA0]
mov rcx, gword ptr [rdi+0x38]
- mov gword ptr [rbp-0xB8], rcx
+ mov gword ptr [rbp-0xD8], rcx
mov rdx, gword ptr [rcx+0x08]
- mov gword ptr [rbp-0xC0], rdx
+ mov gword ptr [rbp-0xE0], rdx
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion
call CORINFO_HELP_NEWSFAST
mov rdx, rax
- mov gword ptr [rbp-0xC8], rdx
+ mov gword ptr [rbp-0xE8], rdx
lea rdi, bword ptr [rdx+0x30]
mov rsi, r14
call CORINFO_HELP_ASSIGN_BYREF
movsq
lea rdi, bword ptr [rdx+0x10]
- mov rsi, gword ptr [rbp-0xB8]
+ mov rsi, gword ptr [rbp-0xD8]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0xC8]
+ mov rax, gword ptr [rbp-0xE8]
lea rdi, bword ptr [rax+0x18]
- mov rsi, gword ptr [rbp-0xC0]
+ mov rsi, gword ptr [rbp-0xE0]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0xC8]
+ mov rax, gword ptr [rbp-0xE8]
lea rdi, bword ptr [rax+0x20]
- mov rsi, gword ptr [rbp-0xA8]
+ mov rsi, gword ptr [rbp-0xC8]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0xC8]
+ mov rax, gword ptr [rbp-0xE8]
mov byte ptr [rax+0x2C], 0
xor edi, edi
mov dword ptr [rax+0x28], edi
- ;; size=143 bbWeight=2 PerfScore 50.00
-G_M22714_IG24:
+ ;; size=146 bbWeight=2 PerfScore 50.00
+G_M22714_IG23:
mov gword ptr [rax+0x08], rdi
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:Bind():ubyte:this
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:Bind():ubyte:this
test eax, eax
- jne G_M22714_IG36
+ jne G_M22714_IG35
cmp byte ptr [r15+0x97], 0
- je G_M22714_IG36
+ je G_M22714_IG35
mov rdi, gword ptr [r15+0x88]
mov rdi, gword ptr [rdi+0x08]
mov eax, dword ptr [rdi+0x08]
dec eax
cmp eax, dword ptr [rbp-0x40]
- jne G_M22714_IG36
+ jne G_M22714_IG35
mov eax, dword ptr [rdi+0x08]
dec eax
cmp eax, dword ptr [rdi+0x08]
- jae G_M22714_IG84
+ jae G_M22714_IG83
mov rax, gword ptr [rdi+8*rax+0x10]
- mov gword ptr [rbp-0xD0], rax
+ mov gword ptr [rbp-0xF0], rax
test rbx, rbx
- jne SHORT G_M22714_IG26
+ jne SHORT G_M22714_IG25
;; size=97 bbWeight=2 PerfScore 59.00
-G_M22714_IG25:
+G_M22714_IG24:
xor rdi, rdi
- jmp SHORT G_M22714_IG28
+ jmp SHORT G_M22714_IG27
;; size=4 bbWeight=4 PerfScore 9.00
-G_M22714_IG26:
+G_M22714_IG25:
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType
cmp qword ptr [rbx], rdi
- jne SHORT G_M22714_IG25
+ jne SHORT G_M22714_IG24
;; size=15 bbWeight=8 PerfScore 34.00
-G_M22714_IG27:
+G_M22714_IG26:
mov rdi, rbx
;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M22714_IG28:
+G_M22714_IG27:
test rdi, rdi
- jne SHORT G_M22714_IG29
+ jne SHORT G_M22714_IG28
xor rax, rax
- mov gword ptr [rbp-0xD8], rax
- jmp SHORT G_M22714_IG30
+ mov gword ptr [rbp-0xF8], rax
+ jmp SHORT G_M22714_IG29
;; size=16 bbWeight=2 PerfScore 9.00
-G_M22714_IG29:
+G_M22714_IG28:
mov rax, gword ptr [rdi+0x40]
- mov gword ptr [rbp-0xD8], rax
+ mov gword ptr [rbp-0xF8], rax
;; size=11 bbWeight=2 PerfScore 6.00
-G_M22714_IG30:
+G_M22714_IG29:
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xE0], rax
+ mov gword ptr [rbp-0x100], rax
mov rdi, rax
- mov rsi, gword ptr [rbp-0xD8]
+ mov rsi, gword ptr [rbp-0xF8]
mov rdx, r13
xor ecx, ecx
mov r8, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext:.ctor(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,ubyte):this
call [r8]Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext:.ctor(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,ubyte):this
- mov rax, gword ptr [rbp-0xE0]
+ mov rax, gword ptr [rbp-0x100]
mov rdi, gword ptr [rax+0x08]
cmp dword ptr [rdi+0x08], 0
sete dil
movzx rdi, dil
mov rsi, gword ptr [rax+0x10]
cmp dword ptr [rsi+0x08], 0
sete sil
movzx rsi, sil
test edi, esi
- jne SHORT G_M22714_IG31
- mov rdi, gword ptr [rbp-0xD0]
+ jne SHORT G_M22714_IG30
+ mov rdi, gword ptr [rbp-0xF0]
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager:SubstTypeCore(Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):Microsoft.CSharp.RuntimeBinder.Semantics.CType
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager:SubstTypeCore(Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):Microsoft.CSharp.RuntimeBinder.Semantics.CType
mov rsi, rax
- jmp SHORT G_M22714_IG32
+ jmp SHORT G_M22714_IG31
;; size=120 bbWeight=2 PerfScore 57.50
-G_M22714_IG31:
- mov rsi, gword ptr [rbp-0xD0]
+G_M22714_IG30:
+ mov rsi, gword ptr [rbp-0xF0]
;; size=7 bbWeight=2 PerfScore 2.00
-G_M22714_IG32:
+G_M22714_IG31:
mov rax, rsi
test rax, rax
- je SHORT G_M22714_IG34
+ je SHORT G_M22714_IG33
;; size=8 bbWeight=2 PerfScore 3.00
-G_M22714_IG33:
+G_M22714_IG32:
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ArrayType
cmp qword ptr [rax], rdi
- jne G_M22714_IG85
+ jne G_M22714_IG84
;; size=19 bbWeight=1 PerfScore 4.25
-G_M22714_IG34:
- mov gword ptr [rbp-0x1A0], rax
- mov gword ptr [rbp-0x88], rax
+G_M22714_IG33:
+ mov gword ptr [rbp-0x1C0], rax
+ mov gword ptr [rbp-0xA8], rax
mov rdi, 0xD1FFAB1E ; const ptr
mov rdx, gword ptr [rdi]
- mov gword ptr [rbp-0xE8], rdx
+ mov gword ptr [rbp-0x108], rdx
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExprArrayInit
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xF0], rax
+ mov gword ptr [rbp-0x110], rax
mov dword ptr [rax+0x28], 16
lea rdi, bword ptr [rax+0x08]
- mov rsi, gword ptr [rbp-0x88]
+ mov rsi, gword ptr [rbp-0xA8]
call CORINFO_HELP_ASSIGN_REF
xor rdi, rdi
- mov rax, gword ptr [rbp-0xF0]
+ mov rax, gword ptr [rbp-0x110]
mov gword ptr [rax+0x38], rdi
;; size=92 bbWeight=2 PerfScore 26.50
-G_M22714_IG35:
+G_M22714_IG34:
mov gword ptr [rax+0x40], rdi
lea rdi, bword ptr [rax+0x48]
- mov rsi, gword ptr [rbp-0xE8]
+ mov rsi, gword ptr [rbp-0x108]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0xF0]
+ mov rax, gword ptr [rbp-0x110]
mov byte ptr [rax+0x31], 1
- mov rdi, gword ptr [rbp-0x80]
+ mov rdi, gword ptr [rbp-0xA0]
mov rsi, gword ptr [rdi+0x38]
lea rdi, bword ptr [rax+0x38]
call CORINFO_HELP_ASSIGN_REF
- mov rdi, gword ptr [rbp-0x80]
+ mov rdi, gword ptr [rbp-0xA0]
lea rdi, bword ptr [rdi+0x38]
- mov rsi, gword ptr [rbp-0xF0]
+ mov rsi, gword ptr [rbp-0x110]
call CORINFO_HELP_ASSIGN_REF
- mov rdi, gword ptr [rbp-0x80]
+ mov rdi, gword ptr [rbp-0xA0]
lea rdi, bword ptr [rdi+0x08]
- mov rsi, gword ptr [rbp-0x1A0]
+ mov rsi, gword ptr [rbp-0x1C0]
call CORINFO_HELP_ASSIGN_REF
mov dword ptr [rbp-0x3C], 1
- jmp G_M22714_IG40
- ;; size=100 bbWeight=2 PerfScore 40.00
-G_M22714_IG36:
- mov rdi, gword ptr [rbp-0x80]
+ jmp G_M22714_IG39
+ ;; size=109 bbWeight=2 PerfScore 40.00
+G_M22714_IG35:
+ mov rdi, gword ptr [rbp-0xA0]
mov rcx, gword ptr [rdi+0x38]
- mov gword ptr [rbp-0xF8], rcx
+ mov gword ptr [rbp-0x118], rcx
mov rdx, gword ptr [rcx+0x08]
- mov gword ptr [rbp-0x110], rdx
+ mov gword ptr [rbp-0x130], rdx
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion
call CORINFO_HELP_NEWSFAST
mov rdx, rax
- mov gword ptr [rbp-0x118], rdx
+ mov gword ptr [rbp-0x138], rdx
lea rdi, bword ptr [rdx+0x30]
mov rsi, r14
call CORINFO_HELP_ASSIGN_BYREF
movsq
lea rdi, bword ptr [rdx+0x10]
- mov rsi, gword ptr [rbp-0xF8]
+ mov rsi, gword ptr [rbp-0x118]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x118]
+ mov rax, gword ptr [rbp-0x138]
lea rdi, bword ptr [rax+0x18]
- mov rsi, gword ptr [rbp-0x110]
+ mov rsi, gword ptr [rbp-0x130]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x118]
+ mov rax, gword ptr [rbp-0x138]
lea rdi, bword ptr [rax+0x20]
- mov rsi, gword ptr [rbp-0xA8]
+ mov rsi, gword ptr [rbp-0xC8]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x118]
+ mov rax, gword ptr [rbp-0x138]
mov byte ptr [rax+0x2C], 1
xor edi, edi
mov dword ptr [rax+0x28], edi
- ;; size=143 bbWeight=2 PerfScore 50.00
-G_M22714_IG37:
+ ;; size=146 bbWeight=2 PerfScore 50.00
+G_M22714_IG36:
mov gword ptr [rax+0x08], rdi
mov rdi, rax
mov rcx, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:Bind():ubyte:this
call [rcx]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:Bind():ubyte:this
- mov rdi, gword ptr [rbp-0x118]
+ mov rdi, gword ptr [rbp-0x138]
mov rcx, gword ptr [rdi+0x08]
- mov gword ptr [rbp-0x108], rcx
+ mov gword ptr [rbp-0x128], rcx
test eax, eax
- je SHORT G_M22714_IG38
- mov rdi, gword ptr [rbp-0xF8]
+ je SHORT G_M22714_IG37
+ mov rdi, gword ptr [rbp-0x118]
mov rdi, gword ptr [rdi+0x08]
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CheckUnsafe(Microsoft.CSharp.RuntimeBinder.Semantics.CType)
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CheckUnsafe(Microsoft.CSharp.RuntimeBinder.Semantics.CType)
- mov rdi, gword ptr [rbp-0xA8]
+ mov rdi, gword ptr [rbp-0xC8]
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CheckUnsafe(Microsoft.CSharp.RuntimeBinder.Semantics.CType)
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CheckUnsafe(Microsoft.CSharp.RuntimeBinder.Semantics.CType)
- mov rax, gword ptr [rbp-0x108]
- jmp SHORT G_M22714_IG39
+ mov rax, gword ptr [rbp-0x128]
+ jmp SHORT G_M22714_IG38
;; size=92 bbWeight=2 PerfScore 46.50
-G_M22714_IG38:
+G_M22714_IG37:
xor rax, rax
;; size=2 bbWeight=2 PerfScore 0.50
-G_M22714_IG39:
- mov rdi, gword ptr [rbp-0x80]
+G_M22714_IG38:
+ mov rdi, gword ptr [rbp-0xA0]
lea rdi, bword ptr [rdi+0x38]
- mov gword ptr [rbp-0x100], rax
+ mov gword ptr [rbp-0x120], rax
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
- mov rsi, gword ptr [rbp-0x100]
+ mov rsi, gword ptr [rbp-0x120]
mov rsi, gword ptr [rsi+0x08]
- mov rdi, gword ptr [rbp-0x80]
+ mov rdi, gword ptr [rbp-0xA0]
lea rdi, bword ptr [rdi+0x08]
call CORINFO_HELP_ASSIGN_REF
- ;; size=47 bbWeight=2 PerfScore 18.50
+ ;; size=53 bbWeight=2 PerfScore 18.50
+G_M22714_IG39:
+ mov rdi, gword ptr [rbp-0xA0]
+ jmp G_M22714_IG51
+ ;; size=12 bbWeight=2 PerfScore 6.00
G_M22714_IG40:
- mov rdi, gword ptr [rbp-0x80]
- jmp G_M22714_IG52
- ;; size=9 bbWeight=2 PerfScore 6.00
-G_M22714_IG41:
- mov r8, gword ptr [rbp-0x68]
- mov rdi, gword ptr [r8+0x08]
- mov r9, qword ptr [rbp-0x58]
+ mov rsi, gword ptr [rbp-0x88]
+ mov rdi, gword ptr [rsi+0x08]
+ mov r9, qword ptr [rbp-0x78]
cmp r9d, dword ptr [rdi+0x08]
- jae G_M22714_IG84
- mov qword ptr [rbp-0x58], r9
+ jae G_M22714_IG83
+ mov qword ptr [rbp-0x78], r9
mov r10, gword ptr [rdi+8*r9+0x10]
- mov gword ptr [rbp-0x120], r10
+ mov gword ptr [rbp-0x140], r10
test rbx, rbx
- jne SHORT G_M22714_IG43
- ;; size=43 bbWeight=2 PerfScore 26.50
-G_M22714_IG42:
+ jne SHORT G_M22714_IG42
+ ;; size=46 bbWeight=2 PerfScore 26.50
+G_M22714_IG41:
xor rdi, rdi
- jmp SHORT G_M22714_IG45
+ jmp SHORT G_M22714_IG44
;; size=4 bbWeight=4 PerfScore 9.00
-G_M22714_IG43:
+G_M22714_IG42:
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType
cmp qword ptr [rbx], rdi
- jne SHORT G_M22714_IG42
+ jne SHORT G_M22714_IG41
;; size=15 bbWeight=8 PerfScore 34.00
-G_M22714_IG44:
+G_M22714_IG43:
mov rdi, rbx
;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M22714_IG45:
+G_M22714_IG44:
test rdi, rdi
- jne SHORT G_M22714_IG46
+ jne SHORT G_M22714_IG45
xor r11, r11
- mov gword ptr [rbp-0x128], r11
- jmp SHORT G_M22714_IG47
+ mov gword ptr [rbp-0x148], r11
+ jmp SHORT G_M22714_IG46
;; size=17 bbWeight=2 PerfScore 9.00
-G_M22714_IG46:
+G_M22714_IG45:
mov r11, gword ptr [rdi+0x40]
- mov gword ptr [rbp-0x128], r11
+ mov gword ptr [rbp-0x148], r11
;; size=11 bbWeight=2 PerfScore 6.00
-G_M22714_IG47:
+G_M22714_IG46:
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x138], rax
+ mov gword ptr [rbp-0x158], rax
mov rdi, rax
- mov rsi, gword ptr [rbp-0x128]
+ mov rsi, gword ptr [rbp-0x148]
mov rdx, r13
xor ecx, ecx
mov r8, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext:.ctor(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,ubyte):this
call [r8]Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext:.ctor(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,ubyte):this
- mov rax, gword ptr [rbp-0x138]
+ mov rax, gword ptr [rbp-0x158]
mov rdi, gword ptr [rax+0x08]
cmp dword ptr [rdi+0x08], 0
sete dil
movzx rdi, dil
mov rsi, gword ptr [rax+0x10]
cmp dword ptr [rsi+0x08], 0
sete sil
movzx rsi, sil
test edi, esi
- jne SHORT G_M22714_IG48
- mov rdi, gword ptr [rbp-0x120]
+ jne SHORT G_M22714_IG47
+ mov rdi, gword ptr [rbp-0x140]
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager:SubstTypeCore(Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):Microsoft.CSharp.RuntimeBinder.Semantics.CType
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager:SubstTypeCore(Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):Microsoft.CSharp.RuntimeBinder.Semantics.CType
- mov gword ptr [rbp-0x130], rax
- jmp SHORT G_M22714_IG49
+ mov gword ptr [rbp-0x150], rax
+ jmp SHORT G_M22714_IG48
;; size=124 bbWeight=2 PerfScore 59.00
-G_M22714_IG48:
- mov rax, gword ptr [rbp-0x120]
- mov gword ptr [rbp-0x130], rax
+G_M22714_IG47:
+ mov rax, gword ptr [rbp-0x140]
+ mov gword ptr [rbp-0x150], rax
;; size=14 bbWeight=2 PerfScore 4.00
-G_M22714_IG49:
- mov rcx, gword ptr [rbp-0x78]
+G_M22714_IG48:
+ mov rcx, gword ptr [rbp-0x98]
mov rdx, gword ptr [rcx+0x08]
- mov gword ptr [rbp-0x148], rdx
+ mov gword ptr [rbp-0x168], rdx
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion
call CORINFO_HELP_NEWSFAST
mov rdx, rax
- mov gword ptr [rbp-0x150], rdx
+ mov gword ptr [rbp-0x170], rdx
lea rdi, bword ptr [rdx+0x30]
mov rsi, r14
call CORINFO_HELP_ASSIGN_BYREF
movsq
lea rdi, bword ptr [rdx+0x10]
- mov rsi, gword ptr [rbp-0x78]
+ mov rsi, gword ptr [rbp-0x98]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x150]
+ mov rax, gword ptr [rbp-0x170]
lea rdi, bword ptr [rax+0x18]
- mov rsi, gword ptr [rbp-0x148]
+ mov rsi, gword ptr [rbp-0x168]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x150]
+ mov rax, gword ptr [rbp-0x170]
lea rdi, bword ptr [rax+0x20]
- mov rsi, gword ptr [rbp-0x130]
+ mov rsi, gword ptr [rbp-0x150]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x150]
+ mov rax, gword ptr [rbp-0x170]
mov byte ptr [rax+0x2C], 1
xor edi, edi
mov dword ptr [rax+0x28], edi
- ;; size=129 bbWeight=2 PerfScore 44.00
-G_M22714_IG50:
+ ;; size=135 bbWeight=2 PerfScore 44.00
+G_M22714_IG49:
mov gword ptr [rax+0x08], rdi
mov rdi, rax
mov rcx, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:Bind():ubyte:this
call [rcx]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:Bind():ubyte:this
- mov rdi, gword ptr [rbp-0x150]
+ mov rdi, gword ptr [rbp-0x170]
mov rcx, gword ptr [rdi+0x08]
- mov gword ptr [rbp-0x140], rcx
+ mov gword ptr [rbp-0x160], rcx
test eax, eax
- je SHORT G_M22714_IG51
- mov rsi, gword ptr [rbp-0x78]
+ je SHORT G_M22714_IG50
+ mov rsi, gword ptr [rbp-0x98]
mov rdi, gword ptr [rsi+0x08]
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CheckUnsafe(Microsoft.CSharp.RuntimeBinder.Semantics.CType)
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CheckUnsafe(Microsoft.CSharp.RuntimeBinder.Semantics.CType)
- mov rdi, gword ptr [rbp-0x130]
+ mov rdi, gword ptr [rbp-0x150]
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CheckUnsafe(Microsoft.CSharp.RuntimeBinder.Semantics.CType)
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CheckUnsafe(Microsoft.CSharp.RuntimeBinder.Semantics.CType)
- mov rdi, gword ptr [rbp-0x140]
- jmp SHORT G_M22714_IG52
- ;; size=89 bbWeight=2 PerfScore 46.50
-G_M22714_IG51:
+ mov rdi, gword ptr [rbp-0x160]
+ jmp SHORT G_M22714_IG51
+ ;; size=92 bbWeight=2 PerfScore 46.50
+G_M22714_IG50:
xor rdi, rdi
;; size=2 bbWeight=2 PerfScore 0.50
-G_M22714_IG52:
+G_M22714_IG51:
test rdi, rdi
- je SHORT G_M22714_IG58
+ je G_M22714_IG57
lea rdx, [rbp-0x30]
mov rsi, bword ptr [rbp+0x10]
mov rcx, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExprFactory:AppendItemToList(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,byref,byref)
call [rcx]Microsoft.CSharp.RuntimeBinder.Semantics.ExprFactory:AppendItemToList(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,byref,byref)
mov eax, dword ptr [rbp-0x34]
dec eax
mov dword ptr [rbp-0x34], eax
- ;; size=33 bbWeight=2 PerfScore 16.50
-G_M22714_IG53:
- mov rdi, qword ptr [rbp-0x58]
+ ;; size=37 bbWeight=2 PerfScore 16.50
+G_M22714_IG52:
+ mov rdi, qword ptr [rbp-0x78]
inc edi
mov rcx, rdi
cmp dword ptr [rbp-0x34], 0
- je SHORT G_M22714_IG57
- cmp byte ptr [r15+0x97], 0
je SHORT G_M22714_IG56
- mov qword ptr [rbp-0x58], rcx
+ cmp byte ptr [r15+0x97], 0
+ je SHORT G_M22714_IG55
+ mov qword ptr [rbp-0x78], rcx
mov edx, dword ptr [rbp-0x38]
cmp ecx, edx
- je SHORT G_M22714_IG59
+ je SHORT G_M22714_IG58
;; size=36 bbWeight=2 PerfScore 23.50
-G_M22714_IG54:
- mov rdi, gword ptr [rbp-0x70]
+G_M22714_IG53:
+ mov rdi, gword ptr [rbp-0x90]
mov rsi, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionIterator:MoveNext():this
call [rsi]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionIterator:MoveNext():this
- mov rax, gword ptr [rbp-0x70]
- ;; size=20 bbWeight=2 PerfScore 10.50
-G_M22714_IG55:
+ mov rax, gword ptr [rbp-0x90]
+ ;; size=26 bbWeight=2 PerfScore 10.50
+G_M22714_IG54:
cmp gword ptr [rax+0x10], 0
jne G_M22714_IG04
cmp gword ptr [rax+0x08], 0
jne G_M22714_IG04
- jmp G_M22714_IG82
+ jmp G_M22714_IG81
;; size=27 bbWeight=4 PerfScore 40.00
+G_M22714_IG55:
+ mov qword ptr [rbp-0x78], rcx
+ jmp SHORT G_M22714_IG53
+ ;; size=6 bbWeight=1 PerfScore 3.00
G_M22714_IG56:
- mov qword ptr [rbp-0x58], rcx
- jmp SHORT G_M22714_IG54
+ mov qword ptr [rbp-0x78], rcx
+ jmp SHORT G_M22714_IG53
;; size=6 bbWeight=1 PerfScore 3.00
G_M22714_IG57:
- mov qword ptr [rbp-0x58], rcx
- jmp SHORT G_M22714_IG54
- ;; size=6 bbWeight=1 PerfScore 3.00
-G_M22714_IG58:
cmp byte ptr [r15+0x97], 0
- je G_M22714_IG82
+ je G_M22714_IG81
cmp dword ptr [rbp-0x34], 1
- jne G_M22714_IG82
+ jne G_M22714_IG81
mov rdi, gword ptr [r15+0x88]
mov rdi, gword ptr [rdi+0x08]
mov edx, dword ptr [rbp-0x38]
cmp dword ptr [rdi+0x08], edx
- jle SHORT G_M22714_IG60
- jmp G_M22714_IG82
+ jle SHORT G_M22714_IG59
+ jmp G_M22714_IG81
;; size=48 bbWeight=0.50 PerfScore 9.00
-G_M22714_IG59:
- mov rdi, gword ptr [rbp-0x70]
+G_M22714_IG58:
+ mov rdi, gword ptr [rbp-0x90]
mov rcx, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionIterator:MoveNext():this
call [rcx]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionIterator:MoveNext():this
- ;; size=16 bbWeight=0.50 PerfScore 2.12
-G_M22714_IG60:
+ ;; size=19 bbWeight=0.50 PerfScore 2.12
+G_M22714_IG59:
cmp dword ptr [rbp-0x3C], 0
- jne G_M22714_IG82
+ jne G_M22714_IG81
;; size=10 bbWeight=0.50 PerfScore 1.50
-G_M22714_IG61:
+G_M22714_IG60:
mov rdi, gword ptr [r15+0x88]
mov rdi, gword ptr [rdi+0x08]
mov esi, dword ptr [rdi+0x08]
dec esi
cmp esi, dword ptr [rdi+0x08]
- jae G_M22714_IG84
+ jae G_M22714_IG83
mov rdi, gword ptr [rdi+8*rsi+0x10]
mov rsi, rbx
mov rdx, r13
mov rcx, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager:SubstType(Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray):Microsoft.CSharp.RuntimeBinder.Semantics.CType
call [rcx]Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager:SubstType(Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray):Microsoft.CSharp.RuntimeBinder.Semantics.CType
mov rbx, rax
test rbx, rbx
- je G_M22714_IG82
+ je G_M22714_IG81
;; size=60 bbWeight=0.50 PerfScore 8.75
-G_M22714_IG62:
+G_M22714_IG61:
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ArrayType
cmp qword ptr [rbx], rdi
- jne G_M22714_IG82
+ jne G_M22714_IG81
;; size=19 bbWeight=0.25 PerfScore 1.06
-G_M22714_IG63:
+G_M22714_IG62:
cmp byte ptr [rbx+0x18], 0
- je G_M22714_IG82
+ je G_M22714_IG81
mov r15, gword ptr [rbx+0x10]
mov rdi, 0xD1FFAB1E ; const ptr
mov r13, gword ptr [rdi]
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExprArrayInit
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x158], rax
+ mov gword ptr [rbp-0x178], rax
mov dword ptr [rax+0x28], 16
lea rdi, bword ptr [rax+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
xor rdi, rdi
- mov rbx, gword ptr [rbp-0x158]
+ mov rbx, gword ptr [rbp-0x178]
mov gword ptr [rbx+0x38], rdi
;; size=81 bbWeight=0.50 PerfScore 7.75
-G_M22714_IG64:
+G_M22714_IG63:
mov gword ptr [rbx+0x40], rdi
lea rdi, bword ptr [rbx+0x48]
mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
mov r13, rbx
mov byte ptr [r13+0x31], 1
- mov rax, gword ptr [rbp-0x70]
+ mov rax, gword ptr [rbp-0x90]
cmp gword ptr [rax+0x10], 0
- jne SHORT G_M22714_IG67
+ jne SHORT G_M22714_IG66
cmp gword ptr [rax+0x08], 0
- jne SHORT G_M22714_IG67
+ jne SHORT G_M22714_IG66
mov rdi, gword ptr [rbx+0x48]
cmp dword ptr [rdi+0x08], 0
- jbe G_M22714_IG84
+ jbe G_M22714_IG83
xor eax, eax
mov dword ptr [rdi+0x10], eax
- ;; size=61 bbWeight=0.50 PerfScore 10.12
-G_M22714_IG65:
+ ;; size=64 bbWeight=0.50 PerfScore 10.12
+G_M22714_IG64:
mov gword ptr [rbx+0x38], rax
test r12, r12
- je SHORT G_M22714_IG66
+ je SHORT G_M22714_IG65
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExprList
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov dword ptr [r14+0x28], 4
lea rdi, bword ptr [r14+0x38]
mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r14+0x40]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
;; size=59 bbWeight=0.50 PerfScore 4.12
-G_M22714_IG66:
+G_M22714_IG65:
lea rdx, [rbp-0x30]
mov rdi, rbx
mov rsi, bword ptr [rbp+0x10]
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExprFactory:AppendItemToList(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,byref,byref)
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.ExprFactory:AppendItemToList(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,byref,byref)
- jmp G_M22714_IG82
+ jmp G_M22714_IG81
;; size=28 bbWeight=0.50 PerfScore 3.50
-G_M22714_IG67:
+G_M22714_IG66:
xor rdi, rdi
- mov gword ptr [rbp-0x48], rdi
+ mov gword ptr [rbp-0x60], rdi
;; size=6 bbWeight=0.50 PerfScore 0.62
-G_M22714_IG68:
- mov gword ptr [rbp-0x50], rdi
+G_M22714_IG67:
+ mov gword ptr [rbp-0x68], rdi
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M22714_IG69:
+G_M22714_IG68:
xor ebx, ebx
- jmp G_M22714_IG80
+ jmp G_M22714_IG79
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M22714_IG70:
+G_M22714_IG69:
mov r12, gword ptr [rax+0x10]
inc ebx
test r12, r12
- je G_M22714_IG76
+ je G_M22714_IG75
;; size=15 bbWeight=2 PerfScore 7.00
-G_M22714_IG71:
+G_M22714_IG70:
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExprNamedArgumentSpecification
cmp qword ptr [r12], rdi
- jne G_M22714_IG76
+ jne G_M22714_IG75
;; size=20 bbWeight=1 PerfScore 4.25
-G_M22714_IG72:
+G_M22714_IG71:
mov rcx, gword ptr [r12+0x38]
- mov gword ptr [rbp-0x160], rcx
+ mov gword ptr [rbp-0x180], rcx
mov rdx, gword ptr [rcx+0x08]
- mov gword ptr [rbp-0x178], rdx
+ mov gword ptr [rbp-0x198], rdx
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion
call CORINFO_HELP_NEWSFAST
mov rdx, rax
- mov gword ptr [rbp-0x180], rdx
+ mov gword ptr [rbp-0x1A0], rdx
lea rdi, bword ptr [rdx+0x30]
mov rsi, r14
call CORINFO_HELP_ASSIGN_BYREF
movsq
lea rdi, bword ptr [rdx+0x10]
- mov rsi, gword ptr [rbp-0x160]
+ mov rsi, gword ptr [rbp-0x180]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x180]
+ mov rax, gword ptr [rbp-0x1A0]
lea rdi, bword ptr [rax+0x18]
- mov rsi, gword ptr [rbp-0x178]
+ mov rsi, gword ptr [rbp-0x198]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x180]
+ mov rax, gword ptr [rbp-0x1A0]
lea rdi, bword ptr [rax+0x20]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x180]
+ mov rax, gword ptr [rbp-0x1A0]
mov byte ptr [rax+0x2C], 1
xor edi, edi
mov dword ptr [rax+0x28], edi
;; size=136 bbWeight=2 PerfScore 46.50
-G_M22714_IG73:
+G_M22714_IG72:
mov gword ptr [rax+0x08], rdi
mov rdi, rax
mov rcx, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:Bind():ubyte:this
call [rcx]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:Bind():ubyte:this
- mov rdi, gword ptr [rbp-0x180]
+ mov rdi, gword ptr [rbp-0x1A0]
mov rcx, gword ptr [rdi+0x08]
- mov gword ptr [rbp-0x170], rcx
+ mov gword ptr [rbp-0x190], rcx
test eax, eax
- je SHORT G_M22714_IG74
- mov rdi, gword ptr [rbp-0x160]
+ je SHORT G_M22714_IG73
+ mov rdi, gword ptr [rbp-0x180]
mov rdi, gword ptr [rdi+0x08]
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CheckUnsafe(Microsoft.CSharp.RuntimeBinder.Semantics.CType)
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CheckUnsafe(Microsoft.CSharp.RuntimeBinder.Semantics.CType)
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CheckUnsafe(Microsoft.CSharp.RuntimeBinder.Semantics.CType)
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CheckUnsafe(Microsoft.CSharp.RuntimeBinder.Semantics.CType)
- mov rax, gword ptr [rbp-0x170]
- jmp SHORT G_M22714_IG75
+ mov rax, gword ptr [rbp-0x190]
+ jmp SHORT G_M22714_IG74
;; size=88 bbWeight=2 PerfScore 45.00
-G_M22714_IG74:
+G_M22714_IG73:
xor rax, rax
;; size=2 bbWeight=2 PerfScore 0.50
-G_M22714_IG75:
+G_M22714_IG74:
lea rdi, bword ptr [r12+0x38]
- mov gword ptr [rbp-0x168], rax
+ mov gword ptr [rbp-0x188], rax
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
- mov rsi, gword ptr [rbp-0x168]
+ mov rsi, gword ptr [rbp-0x188]
mov rsi, gword ptr [rsi+0x08]
lea rdi, bword ptr [r12+0x08]
call CORINFO_HELP_ASSIGN_REF
- jmp G_M22714_IG79
+ jmp G_M22714_IG78
;; size=46 bbWeight=2 PerfScore 18.50
-G_M22714_IG76:
+G_M22714_IG75:
mov rcx, gword ptr [r12+0x08]
- mov gword ptr [rbp-0x190], rcx
+ mov gword ptr [rbp-0x1B0], rcx
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion
call CORINFO_HELP_NEWSFAST
mov rdx, rax
- mov gword ptr [rbp-0x198], rdx
+ mov gword ptr [rbp-0x1B8], rdx
lea rdi, bword ptr [rdx+0x30]
mov rsi, r14
call CORINFO_HELP_ASSIGN_BYREF
movsq
lea rdi, bword ptr [rdx+0x10]
mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x198]
+ mov rax, gword ptr [rbp-0x1B8]
lea rdi, bword ptr [rax+0x18]
- mov rsi, gword ptr [rbp-0x190]
+ mov rsi, gword ptr [rbp-0x1B0]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x198]
+ mov rax, gword ptr [rbp-0x1B8]
lea rdi, bword ptr [rax+0x20]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x198]
+ mov rax, gword ptr [rbp-0x1B8]
mov byte ptr [rax+0x2C], 1
xor edi, edi
mov dword ptr [rax+0x28], edi
;; size=121 bbWeight=2 PerfScore 39.00
-G_M22714_IG77:
+G_M22714_IG76:
mov gword ptr [rax+0x08], rdi
mov rdi, rax
mov rcx, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:Bind():ubyte:this
call [rcx]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:Bind():ubyte:this
- mov rdi, gword ptr [rbp-0x198]
+ mov rdi, gword ptr [rbp-0x1B8]
mov rcx, gword ptr [rdi+0x08]
- mov gword ptr [rbp-0x188], rcx
+ mov gword ptr [rbp-0x1A8], rcx
test eax, eax
- je SHORT G_M22714_IG78
+ je SHORT G_M22714_IG77
mov rdi, gword ptr [r12+0x08]
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CheckUnsafe(Microsoft.CSharp.RuntimeBinder.Semantics.CType)
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CheckUnsafe(Microsoft.CSharp.RuntimeBinder.Semantics.CType)
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CheckUnsafe(Microsoft.CSharp.RuntimeBinder.Semantics.CType)
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CheckUnsafe(Microsoft.CSharp.RuntimeBinder.Semantics.CType)
- mov r12, gword ptr [rbp-0x188]
- jmp SHORT G_M22714_IG79
+ mov r12, gword ptr [rbp-0x1A8]
+ jmp SHORT G_M22714_IG78
;; size=82 bbWeight=2 PerfScore 43.00
-G_M22714_IG78:
+G_M22714_IG77:
xor r12, r12
;; size=3 bbWeight=2 PerfScore 0.50
-G_M22714_IG79:
- lea rdx, [rbp-0x50]
- lea rsi, [rbp-0x48]
+G_M22714_IG78:
+ lea rdx, [rbp-0x68]
+ lea rsi, [rbp-0x60]
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExprFactory:AppendItemToList(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,byref,byref)
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.ExprFactory:AppendItemToList(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,byref,byref)
- mov rdi, gword ptr [rbp-0x70]
+ mov rdi, gword ptr [rbp-0x90]
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionIterator:MoveNext():this
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionIterator:MoveNext():this
- mov rax, gword ptr [rbp-0x70]
- ;; size=43 bbWeight=2 PerfScore 19.50
-G_M22714_IG80:
+ mov rax, gword ptr [rbp-0x90]
+ ;; size=49 bbWeight=2 PerfScore 19.50
+G_M22714_IG79:
cmp gword ptr [rax+0x10], 0
- jne G_M22714_IG70
+ jne G_M22714_IG69
cmp gword ptr [rax+0x08], 0
- jne G_M22714_IG70
+ jne G_M22714_IG69
;; size=22 bbWeight=4 PerfScore 32.00
-G_M22714_IG81:
+G_M22714_IG80:
mov rdi, gword ptr [r13+0x48]
cmp dword ptr [rdi+0x08], 0
- jbe SHORT G_M22714_IG84
+ jbe SHORT G_M22714_IG83
mov dword ptr [rdi+0x10], ebx
- mov rsi, gword ptr [rbp-0x48]
+ mov rsi, gword ptr [rbp-0x60]
lea rdi, bword ptr [r13+0x38]
call CORINFO_HELP_ASSIGN_REF
lea rdx, [rbp-0x30]
mov rdi, r13
mov rsi, bword ptr [rbp+0x10]
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExprFactory:AppendItemToList(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,byref,byref)
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.ExprFactory:AppendItemToList(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,byref,byref)
;; size=49 bbWeight=0.50 PerfScore 7.25
-G_M22714_IG82:
+G_M22714_IG81:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M22714_IG83:
- add rsp, 376
+G_M22714_IG82:
+ add rsp, 408
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
-G_M22714_IG84:
+G_M22714_IG83:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M22714_IG85:
+G_M22714_IG84:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
call [rax]CORINFO_HELP_CHKCASTCLASS
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 3252, prolog size 60, PerfScore 1813.40, instruction count 717, allocated bytes for code 3252 (MethodHash=36dea745) for method Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:AdjustCallArgumentsForParams(Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.Expr,byref):this (FullOpts)
+; Total bytes of code 3390, prolog size 50, PerfScore 1624.40, instruction count 729, allocated bytes for code 3390 (MethodHash=36dea745) for method Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:AdjustCallArgumentsForParams(Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.Expr,byref):this (FullOpts)
138 (12.84 % of base) - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain:AppendResolutionPath(System.Text.StringBuilder,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier):this
; Assembly listing for method Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain:AppendResolutionPath(System.Text.StringBuilder,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 20 single block inlinees; 16 inlinees without PGO data
+; 0 inlinees with PGO data; 20 single block inlinees; 14 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T30] ( 3, 3 ) ref -> r14 this class-hnd single-def <Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain>
-; V01 arg1 [V01,T00] ( 21, 40.50) ref -> rbx class-hnd single-def <System.Text.StringBuilder>
+; V00 this [V00,T21] ( 3, 3 ) ref -> r15 this class-hnd single-def <Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain>
+; V01 arg1 [V01,T00] ( 21, 41.50) ref -> rbx class-hnd single-def <System.Text.StringBuilder>
;* V02 arg2 [V02 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier>
;* V03 loc0 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]>
-;* V04 loc1 [V04 ] ( 0, 0 ) struct (48) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]>
+; V04 loc1 [V04 ] ( 8, 17 ) struct (48) [rbp-0x50] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]>
;* V05 loc2 [V05 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] ld-addr-op <System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]>
;* V06 loc3 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier>
;* V07 loc4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Type>
;* V08 loc5 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V10 tmp1 [V10,T14] ( 5, 10 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]>
-; V11 tmp2 [V11,T31] ( 2, 4 ) ref -> rsi class-hnd single-def "dup spill" <System.Comparison`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]>
+; V10 tmp1 [V10,T07] ( 5, 10 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]>
+; V11 tmp2 [V11,T22] ( 2, 4 ) ref -> rsi class-hnd single-def "dup spill" <System.Comparison`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]>
;* V12 tmp3 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
-; V13 tmp4 [V13,T38] ( 4, 3.50) ref -> rsi
+; V13 tmp4 [V13,T31] ( 4, 3.50) ref -> rsi
;* V14 tmp5 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.StringBuilder>
-; V15 tmp6 [V15,T29] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]>
-; V16 tmp7 [V16,T39] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+<>c>
-;* V17 tmp8 [V17 ] ( 0, 0 ) struct (48) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]>
+; V15 tmp6 [V15,T20] ( 5, 5 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]>
+; V16 tmp7 [V16,T32] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+<>c>
+; V17 tmp8 [V17,T28] ( 2, 4 ) struct (48) [rbp-0x80] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]>
;* V18 tmp9 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
-; V19 tmp10 [V19 ] ( 6, 12 ) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline stloc first use temp" <System.Text.StringBuilder>
+; V19 tmp10 [V19 ] ( 6, 12 ) ref -> [rbp-0x88] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline stloc first use temp" <System.Text.StringBuilder>
;* V20 tmp11 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Type>
;* V21 tmp12 [V21 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <Microsoft.Extensions.Internal.TypeNameHelper+DisplayNameOptions>
-; V22 tmp13 [V22 ] ( 6, 12 ) struct ( 8) [rbp-0x38] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.Extensions.Internal.TypeNameHelper+DisplayNameOptions>
-; V23 tmp14 [V23,T32] ( 2, 4 ) ref -> rax class-hnd exact "Inline stloc first use temp" <System.String>
-; V24 tmp15 [V24,T06] ( 8, 16 ) ref -> rax
-; V25 tmp16 [V25,T19] ( 3, 6 ) ref -> rax
+; V22 tmp13 [V22 ] ( 6, 12 ) struct ( 8) [rbp-0x90] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.Extensions.Internal.TypeNameHelper+DisplayNameOptions>
+; V23 tmp14 [V23,T23] ( 2, 4 ) ref -> rax class-hnd exact "Inline stloc first use temp" <System.String>
+; V24 tmp15 [V24,T01] ( 8, 16 ) ref -> rax
+; V25 tmp16 [V25,T11] ( 3, 6 ) ref -> rax
;* V26 tmp17 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
-; V27 tmp18 [V27 ] ( 6, 12 ) ref -> [rbp-0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline stloc first use temp" <System.Text.StringBuilder>
+; V27 tmp18 [V27 ] ( 6, 12 ) ref -> [rbp-0x98] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline stloc first use temp" <System.Text.StringBuilder>
;* V28 tmp19 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Type>
;* V29 tmp20 [V29 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <Microsoft.Extensions.Internal.TypeNameHelper+DisplayNameOptions>
-; V30 tmp21 [V30 ] ( 6, 12 ) struct ( 8) [rbp-0x48] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.Extensions.Internal.TypeNameHelper+DisplayNameOptions>
-; V31 tmp22 [V31,T33] ( 2, 4 ) ref -> rax class-hnd exact "Inline stloc first use temp" <System.String>
-; V32 tmp23 [V32,T07] ( 8, 16 ) ref -> rax
-; V33 tmp24 [V33,T20] ( 3, 6 ) ref -> rax
-; V34 tmp25 [V34,T25] ( 3, 6 ) int -> rsi "Inline stloc first use temp"
-; V35 tmp26 [V35,T21] ( 3, 6 ) ref -> rax class-hnd "Inline stloc first use temp" <ushort[]>
+; V30 tmp21 [V30 ] ( 6, 12 ) struct ( 8) [rbp-0xA0] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.Extensions.Internal.TypeNameHelper+DisplayNameOptions>
+; V31 tmp22 [V31,T24] ( 2, 4 ) ref -> rax class-hnd exact "Inline stloc first use temp" <System.String>
+; V32 tmp23 [V32,T02] ( 8, 16 ) ref -> rax
+; V33 tmp24 [V33,T12] ( 3, 6 ) ref -> rax
+; V34 tmp25 [V34,T16] ( 3, 6 ) int -> rsi "Inline stloc first use temp"
+; V35 tmp26 [V35,T13] ( 3, 6 ) ref -> rax class-hnd "Inline stloc first use temp" <ushort[]>
;* V36 tmp27 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
-; V37 tmp28 [V37 ] ( 6, 12 ) ref -> [rbp-0x50] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline stloc first use temp" <System.Text.StringBuilder>
+; V37 tmp28 [V37 ] ( 6, 12 ) ref -> [rbp-0xA8] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline stloc first use temp" <System.Text.StringBuilder>
;* V38 tmp29 [V38 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <Microsoft.Extensions.Internal.TypeNameHelper+DisplayNameOptions>
-; V39 tmp30 [V39 ] ( 6, 12 ) struct ( 8) [rbp-0x58] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.Extensions.Internal.TypeNameHelper+DisplayNameOptions>
-; V40 tmp31 [V40,T34] ( 2, 4 ) ref -> rax class-hnd exact "Inline stloc first use temp" <System.String>
-; V41 tmp32 [V41,T08] ( 8, 16 ) ref -> rax
-; V42 tmp33 [V42,T22] ( 3, 6 ) ref -> rax
+; V39 tmp30 [V39 ] ( 6, 12 ) struct ( 8) [rbp-0xB0] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.Extensions.Internal.TypeNameHelper+DisplayNameOptions>
+; V40 tmp31 [V40,T25] ( 2, 4 ) ref -> rax class-hnd exact "Inline stloc first use temp" <System.String>
+; V41 tmp32 [V41,T03] ( 8, 16 ) ref -> rax
+; V42 tmp33 [V42,T14] ( 3, 6 ) ref -> rax
;* V43 tmp34 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
-; V44 tmp35 [V44,T26] ( 3, 6 ) int -> rsi "Inline stloc first use temp"
-; V45 tmp36 [V45,T23] ( 3, 6 ) ref -> rax class-hnd "Inline stloc first use temp" <ushort[]>
-; V46 tmp37 [V46,T24] ( 3, 6 ) ref -> rdi class-hnd "Inline stloc first use temp" <ushort[]>
-; V47 tmp38 [V47,T16] ( 4, 8 ) int -> rdx "Inline stloc first use temp"
-; V48 tmp39 [V48,T12] ( 3, 12 ) byref -> rsi "Inlining Arg"
-; V49 tmp40 [V49,T35] ( 2, 4 ) byref -> rdi "Inline stloc first use temp"
-;* V50 tmp41 [V50,T17] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V51 tmp42 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]>
-; V52 tmp43 [V52,T04] ( 4, 18 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
-; V53 tmp44 [V53,T40] ( 1, 1 ) ref -> rdx single-def "field V02.<ServiceKey>k__BackingField (fldOffset=0x0)" P-INDEP
-; V54 tmp45 [V54,T18] ( 2, 5 ) ref -> r15 single-def "field V02.<ServiceType>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V55 tmp46 [V55 ] ( 0, 0 ) ref -> zero-ref "field V06.<ServiceKey>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V56 tmp47 [V56 ] ( 0, 0 ) ref -> zero-ref "field V06.<ServiceType>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V57 tmp48 [V57 ] ( 0, 0 ) ref -> zero-ref "field V08.<ImplementationType>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V58 tmp49 [V58 ] ( 0, 0 ) int -> zero-ref "field V08.<Order>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V59 tmp50 [V59,T42] ( 0, 0 ) ubyte -> zero-ref "field V21.<FullName>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V60 tmp51 [V60,T43] ( 0, 0 ) ubyte -> zero-ref "field V21.<IncludeGenericParameters>k__BackingField (fldOffset=0x1)" P-INDEP
-;* V61 tmp52 [V61,T44] ( 0, 0 ) ubyte -> zero-ref "field V21.<IncludeGenericParameterNames>k__BackingField (fldOffset=0x2)" P-INDEP
-;* V62 tmp53 [V62,T45] ( 0, 0 ) ushort -> zero-ref "field V21.<NestedTypeDelimiter>k__BackingField (fldOffset=0x4)" P-INDEP
-;* V63 tmp54 [V63,T46] ( 0, 0 ) ubyte -> zero-ref "field V29.<FullName>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V64 tmp55 [V64,T47] ( 0, 0 ) ubyte -> zero-ref "field V29.<IncludeGenericParameters>k__BackingField (fldOffset=0x1)" P-INDEP
-;* V65 tmp56 [V65,T48] ( 0, 0 ) ubyte -> zero-ref "field V29.<IncludeGenericParameterNames>k__BackingField (fldOffset=0x2)" P-INDEP
-;* V66 tmp57 [V66,T49] ( 0, 0 ) ushort -> zero-ref "field V29.<NestedTypeDelimiter>k__BackingField (fldOffset=0x4)" P-INDEP
-;* V67 tmp58 [V67,T50] ( 0, 0 ) ubyte -> zero-ref "field V38.<FullName>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V68 tmp59 [V68,T51] ( 0, 0 ) ubyte -> zero-ref "field V38.<IncludeGenericParameters>k__BackingField (fldOffset=0x1)" P-INDEP
-;* V69 tmp60 [V69,T52] ( 0, 0 ) ubyte -> zero-ref "field V38.<IncludeGenericParameterNames>k__BackingField (fldOffset=0x2)" P-INDEP
-;* V70 tmp61 [V70,T53] ( 0, 0 ) ushort -> zero-ref "field V38.<NestedTypeDelimiter>k__BackingField (fldOffset=0x4)" P-INDEP
-; V71 tmp62 [V71,T05] ( 4, 17 ) ref -> r13 single-def "V04.[000..008)"
-; V72 tmp63 [V72,T01] ( 6, 21 ) int -> r12 "V04.[008..012)"
-; V73 tmp64 [V73,T15] ( 2, 9 ) int -> r14 single-def "V04.[012..016)"
-;* V74 tmp65 [V74 ] ( 0, 0 ) ref -> zero-ref "V04.[016..024)"
-; V75 tmp66 [V75,T10] ( 4, 10 ) ref -> [rbp-0x60] spill-single-def "V04.[024..032)"
-; V76 tmp67 [V76,T11] ( 4, 10 ) ref -> [rbp-0x68] spill-single-def "V04.[032..040)"
-;* V77 tmp68 [V77 ] ( 0, 0 ) int -> zero-ref "V04.[040..044)"
-;* V78 tmp69 [V78 ] ( 0, 0 ) ref -> zero-ref single-def "V17.[000..008)"
-;* V79 tmp70 [V79 ] ( 0, 0 ) int -> zero-ref single-def "V17.[008..012)"
-; V80 tmp71 [V80,T41] ( 2, 2 ) int -> r14 single-def "V17.[012..016)"
-;* V81 tmp72 [V81 ] ( 0, 0 ) ref -> zero-ref single-def "V17.[016..024)"
-;* V82 tmp73 [V82 ] ( 0, 0 ) ref -> zero-ref single-def "V17.[024..032)"
-;* V83 tmp74 [V83 ] ( 0, 0 ) ref -> zero-ref single-def "V17.[032..040)"
-;* V84 tmp75 [V84 ] ( 0, 0 ) int -> zero-ref single-def "V17.[040..044)"
-;* V85 tmp76 [V85 ] ( 0, 0 ) ref -> zero-ref "V05.[000..008)"
-;* V86 tmp77 [V86 ] ( 0, 0 ) ref -> zero-ref "V05.[008..016)"
-;* V87 tmp78 [V87 ] ( 0, 0 ) ref -> zero-ref "V05.[016..024)"
-;* V88 tmp79 [V88 ] ( 0, 0 ) int -> zero-ref "V05.[024..028)"
-; V89 tmp80 [V89,T02] ( 3, 24 ) byref -> rdi "Spilling address for field-by-field copy"
-; V90 tmp81 [V90,T03] ( 3, 24 ) ref -> rdi "arr expr"
-;* V91 cse0 [V91,T54] ( 0, 0 ) long -> zero-ref "CSE #01: conservative"
-; V92 cse1 [V92,T13] ( 2, 8 ) int -> rdi "CSE #10: moderate"
-; V93 cse2 [V93,T09] ( 2, 16 ) int -> rdi "CSE #09: aggressive"
-; V94 cse3 [V94,T27] ( 3, 6 ) int -> rdi "CSE #05: moderate"
-; V95 cse4 [V95,T28] ( 3, 6 ) int -> rdi "CSE #07: moderate"
-; V96 cse5 [V96,T36] ( 2, 4 ) int -> rcx "CSE #04: moderate"
-; V97 cse6 [V97,T37] ( 2, 4 ) int -> rcx "CSE #06: moderate"
+; V44 tmp35 [V44,T17] ( 3, 6 ) int -> rsi "Inline stloc first use temp"
+; V45 tmp36 [V45,T15] ( 3, 6 ) ref -> rax class-hnd "Inline stloc first use temp" <ushort[]>
+; V46 tmp37 [V46,T09] ( 3, 10 ) ref -> rdi class-hnd "Inline stloc first use temp" <ushort[]>
+; V47 tmp38 [V47,T06] ( 4, 12 ) int -> rdx "Inline stloc first use temp"
+; V48 tmp39 [V48,T04] ( 3, 16 ) byref -> rsi "Inlining Arg"
+; V49 tmp40 [V49,T26] ( 2, 4 ) byref -> rdi "Inline stloc first use temp"
+; V50 tmp41 [V50,T10] ( 4, 6 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
+; V51 tmp42 [V51,T33] ( 1, 1 ) ref -> rdx single-def "field V02.<ServiceKey>k__BackingField (fldOffset=0x0)" P-INDEP
+; V52 tmp43 [V52,T27] ( 2, 2 ) ref -> r14 single-def "field V02.<ServiceType>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V53 tmp44 [V53 ] ( 0, 0 ) ref -> zero-ref "field V06.<ServiceKey>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V54 tmp45 [V54 ] ( 0, 0 ) ref -> zero-ref "field V06.<ServiceType>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V55 tmp46 [V55 ] ( 0, 0 ) ref -> zero-ref "field V08.<ImplementationType>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V56 tmp47 [V56 ] ( 0, 0 ) int -> zero-ref "field V08.<Order>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V57 tmp48 [V57,T35] ( 0, 0 ) ubyte -> zero-ref "field V21.<FullName>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V58 tmp49 [V58,T36] ( 0, 0 ) ubyte -> zero-ref "field V21.<IncludeGenericParameters>k__BackingField (fldOffset=0x1)" P-INDEP
+;* V59 tmp50 [V59,T37] ( 0, 0 ) ubyte -> zero-ref "field V21.<IncludeGenericParameterNames>k__BackingField (fldOffset=0x2)" P-INDEP
+;* V60 tmp51 [V60,T38] ( 0, 0 ) ushort -> zero-ref "field V21.<NestedTypeDelimiter>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V61 tmp52 [V61,T39] ( 0, 0 ) ubyte -> zero-ref "field V29.<FullName>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V62 tmp53 [V62,T40] ( 0, 0 ) ubyte -> zero-ref "field V29.<IncludeGenericParameters>k__BackingField (fldOffset=0x1)" P-INDEP
+;* V63 tmp54 [V63,T41] ( 0, 0 ) ubyte -> zero-ref "field V29.<IncludeGenericParameterNames>k__BackingField (fldOffset=0x2)" P-INDEP
+;* V64 tmp55 [V64,T42] ( 0, 0 ) ushort -> zero-ref "field V29.<NestedTypeDelimiter>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V65 tmp56 [V65,T43] ( 0, 0 ) ubyte -> zero-ref "field V38.<FullName>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V66 tmp57 [V66,T44] ( 0, 0 ) ubyte -> zero-ref "field V38.<IncludeGenericParameters>k__BackingField (fldOffset=0x1)" P-INDEP
+;* V67 tmp58 [V67,T45] ( 0, 0 ) ubyte -> zero-ref "field V38.<IncludeGenericParameterNames>k__BackingField (fldOffset=0x2)" P-INDEP
+;* V68 tmp59 [V68,T46] ( 0, 0 ) ushort -> zero-ref "field V38.<NestedTypeDelimiter>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V69 tmp60 [V69 ] ( 0, 0 ) ref -> zero-ref single-def "V17.[000..008)"
+;* V70 tmp61 [V70 ] ( 0, 0 ) int -> zero-ref single-def "V17.[008..012)"
+; V71 tmp62 [V71,T34] ( 2, 2 ) int -> rdi single-def "V17.[012..016)"
+;* V72 tmp63 [V72 ] ( 0, 0 ) ref -> zero-ref "V05.[000..008)"
+; V73 tmp64 [V73,T08] ( 4, 10 ) ref -> r13 "V05.[008..016)"
+; V74 tmp65 [V74,T05] ( 4, 12 ) ref -> r15 "V05.[016..024)"
+;* V75 tmp66 [V75 ] ( 0, 0 ) int -> zero-ref "V05.[024..028)"
+;* V76 cse0 [V76,T47] ( 0, 0 ) long -> zero-ref "CSE #01: conservative"
+; V77 cse1 [V77,T18] ( 3, 6 ) int -> rdi "CSE #05: moderate"
+; V78 cse2 [V78,T19] ( 3, 6 ) int -> rdi "CSE #07: moderate"
+; V79 cse3 [V79,T29] ( 2, 4 ) int -> rcx "CSE #04: moderate"
+; V80 cse4 [V80,T30] ( 2, 4 ) int -> rcx "CSE #06: moderate"
;
-; Lcl frame size = 72
+; Lcl frame size = 144
G_M63242_IG01:
push rbp
push r15
push r14
push r13
- push r12
push rbx
- sub rsp, 72
- lea rbp, [rsp+0x70]
- xor eax, eax
- mov qword ptr [rbp-0x58], rax
+ sub rsp, 144
+ lea rbp, [rsp+0xB0]
vxorps xmm8, xmm8, xmm8
+ vmovdqu ymmword ptr [rbp-0xB0], ymm8
+ vmovdqu ymmword ptr [rbp-0x90], ymm8
+ vmovdqu ymmword ptr [rbp-0x70], ymm8
vmovdqu ymmword ptr [rbp-0x50], ymm8
- mov qword ptr [rbp-0x30], rax
- mov r14, rdi
+ vmovdqa xmmword ptr [rbp-0x30], xmm8
+ mov r15, rdi
mov rbx, rsi
- mov r15, rcx
- ;; size=48 bbWeight=1 PerfScore 12.08
+ mov r14, rcx
+ ;; size=68 bbWeight=1 PerfScore 16.83
G_M63242_IG02:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]
call CORINFO_HELP_NEWSFAST
mov r13, rax
- mov rsi, gword ptr [r14+0x08]
+ mov rsi, gword ptr [r15+0x08]
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]:.ctor(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]):this
call [rax]System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]:.ctor(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]):this
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
- je G_M63242_IG38
+ je G_M63242_IG40
;; size=56 bbWeight=1 PerfScore 11.25
G_M63242_IG03:
mov rdi, 0xD1FFAB1E ; data for Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+<>c:<>9__6_0
mov rsi, gword ptr [rdi]
test rsi, rsi
jne SHORT G_M63242_IG05
;; size=18 bbWeight=1 PerfScore 3.50
G_M63242_IG04:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]
call CORINFO_HELP_NEWSFAST
- mov r14, rax
+ mov r15, rax
mov rdi, 0xD1FFAB1E ; data for Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+<>c:<>9
mov rsi, gword ptr [rdi]
test rsi, rsi
- je G_M63242_IG39
- lea rdi, bword ptr [r14+0x08]
+ je G_M63242_IG41
+ lea rdi, bword ptr [r15+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+<>c:<AppendResolutionPath>b__6_0(System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo],System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]):int:this
- mov qword ptr [r14+0x18], rdi
+ mov qword ptr [r15+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+<>c:<>9__6_0
- mov rsi, r14
+ mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
- mov rsi, r14
+ mov rsi, r15
;; size=84 bbWeight=0.50 PerfScore 4.75
G_M63242_IG05:
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]:Sort(System.Comparison`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]):this
call [rax]System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]:Sort(System.Comparison`1[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]):this
- mov r14d, dword ptr [r13+0x14]
- xor r12d, r12d
- jmp G_M63242_IG31
- ;; size=27 bbWeight=1 PerfScore 7.75
+ mov edi, dword ptr [r13+0x14]
+ vxorps ymm0, ymm0, ymm0
+ vmovdqu ymmword ptr [rbp-0x70], ymm0
+ ;; size=28 bbWeight=1 PerfScore 6.83
G_M63242_IG06:
- test rcx, rcx
- je SHORT G_M63242_IG07
- mov rdi, rax
- mov rsi, rcx
- mov rdx, 0xD1FFAB1E ; code for System.Type:op_Equality(System.Type,System.Type):ubyte
- call [rdx]System.Type:op_Equality(System.Type,System.Type):ubyte
- test eax, eax
- mov rax, gword ptr [rbp-0x60]
- je G_M63242_IG13
- ;; size=35 bbWeight=2 PerfScore 14.50
+ vmovdqu ymm0, ymmword ptr [rbp-0x80]
+ vmovdqu ymmword ptr [rbp-0x50], ymm0
+ vmovdqu xmm0, xmmword ptr [rbp-0x60]
+ vmovdqu xmmword ptr [rbp-0x30], xmm0
+ ;; size=20 bbWeight=1 PerfScore 9.00
G_M63242_IG07:
- xor rdi, rdi
- mov gword ptr [rbp-0x30], rdi
- ;; size=6 bbWeight=2 PerfScore 2.50
+ mov gword ptr [rbp-0x50], r13
+ xor eax, eax
+ mov dword ptr [rbp-0x48], eax
+ mov dword ptr [rbp-0x44], edi
+ lea rdi, [rbp-0x50]
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]:MoveNext():ubyte:this
+ test eax, eax
+ je G_M63242_IG36
+ ;; size=36 bbWeight=1 PerfScore 8.25
G_M63242_IG08:
- mov dword ptr [rbp-0x38], edi
- mov word ptr [rbp-0x34], di
- ;; size=7 bbWeight=2 PerfScore 4.00
+ mov r13, gword ptr [rbp-0x38]
+ mov r15, gword ptr [rbp-0x30]
+ test r15, r15
+ je SHORT G_M63242_IG10
+ ;; size=13 bbWeight=4 PerfScore 13.00
G_M63242_IG09:
- mov gword ptr [rbp-0x30], rdi
- mov byte ptr [rbp-0x38], 1
- mov byte ptr [rbp-0x37], 1
- mov byte ptr [rbp-0x36], 0
- mov word ptr [rbp-0x34], 43
- lea rdi, [rbp-0x30]
- lea rdx, [rbp-0x38]
- mov rsi, rax
+ mov rdi, r13
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Type:op_Equality(System.Type,System.Type):ubyte
+ call [rax]System.Type:op_Equality(System.Type,System.Type):ubyte
+ test eax, eax
+ je G_M63242_IG16
+ ;; size=26 bbWeight=2 PerfScore 10.00
+G_M63242_IG10:
+ xor rdi, rdi
+ mov gword ptr [rbp-0x88], rdi
+ ;; size=9 bbWeight=2 PerfScore 2.50
+G_M63242_IG11:
+ mov dword ptr [rbp-0x90], edi
+ mov word ptr [rbp-0x8C], di
+ ;; size=13 bbWeight=2 PerfScore 4.00
+G_M63242_IG12:
+ mov gword ptr [rbp-0x88], rdi
+ mov byte ptr [rbp-0x90], 1
+ mov byte ptr [rbp-0x8F], 1
+ mov byte ptr [rbp-0x8E], 0
+ mov word ptr [rbp-0x8C], 43
+ lea rdi, [rbp-0x88]
+ lea rdx, [rbp-0x90]
+ mov rsi, r13
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Internal.TypeNameHelper:ProcessType(byref,System.Type,byref):System.String
call [rax]Microsoft.Extensions.Internal.TypeNameHelper:ProcessType(byref,System.Type,byref):System.String
test rax, rax
- jne SHORT G_M63242_IG12
- cmp gword ptr [rbp-0x30], 0
- jne SHORT G_M63242_IG10
+ jne SHORT G_M63242_IG15
+ cmp gword ptr [rbp-0x88], 0
+ jne SHORT G_M63242_IG13
xor rax, rax
- jmp SHORT G_M63242_IG11
- ;; size=61 bbWeight=2 PerfScore 32.00
-G_M63242_IG10:
- mov rdi, gword ptr [rbp-0x30]
+ jmp SHORT G_M63242_IG14
+ ;; size=85 bbWeight=2 PerfScore 32.00
+G_M63242_IG13:
+ mov rdi, gword ptr [rbp-0x88]
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:ToString():System.String:this
cmp dword ptr [rdi], edi
call [rax]System.Text.StringBuilder:ToString():System.String:this
- ;; size=18 bbWeight=2 PerfScore 14.50
-G_M63242_IG11:
+ ;; size=21 bbWeight=2 PerfScore 14.50
+G_M63242_IG14:
test rax, rax
- jne SHORT G_M63242_IG12
+ jne SHORT G_M63242_IG15
mov rax, 0xD1FFAB1E ; ''
;; size=15 bbWeight=2 PerfScore 3.00
-G_M63242_IG12:
+G_M63242_IG15:
xor rsi, rsi
- mov gword ptr [rbp-0x30], rsi
+ mov gword ptr [rbp-0x88], rsi
cmp byte ptr [rbx], bl
test rax, rax
- je G_M63242_IG29
+ je G_M63242_IG32
lea rsi, bword ptr [rax+0x0C]
mov edx, dword ptr [rax+0x08]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
- jmp G_M63242_IG29
- ;; size=44 bbWeight=2 PerfScore 27.00
-G_M63242_IG13:
+ jmp G_M63242_IG32
+ ;; size=47 bbWeight=2 PerfScore 27.00
+G_M63242_IG16:
xor rdi, rdi
- mov gword ptr [rbp-0x40], rdi
- ;; size=6 bbWeight=2 PerfScore 2.50
-G_M63242_IG14:
- mov dword ptr [rbp-0x48], edi
- mov word ptr [rbp-0x44], di
- ;; size=7 bbWeight=2 PerfScore 4.00
-G_M63242_IG15:
- mov gword ptr [rbp-0x40], rdi
- mov byte ptr [rbp-0x48], 1
- mov byte ptr [rbp-0x47], 1
- mov byte ptr [rbp-0x46], 0
- mov word ptr [rbp-0x44], 43
- lea rdi, [rbp-0x40]
- lea rdx, [rbp-0x48]
- mov rsi, rax
+ mov gword ptr [rbp-0x98], rdi
+ ;; size=9 bbWeight=2 PerfScore 2.50
+G_M63242_IG17:
+ mov dword ptr [rbp-0xA0], edi
+ mov word ptr [rbp-0x9C], di
+ ;; size=13 bbWeight=2 PerfScore 4.00
+G_M63242_IG18:
+ mov gword ptr [rbp-0x98], rdi
+ mov byte ptr [rbp-0xA0], 1
+ mov byte ptr [rbp-0x9F], 1
+ mov byte ptr [rbp-0x9E], 0
+ mov word ptr [rbp-0x9C], 43
+ lea rdi, [rbp-0x98]
+ lea rdx, [rbp-0xA0]
+ mov rsi, r13
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Internal.TypeNameHelper:ProcessType(byref,System.Type,byref):System.String
call [rax]Microsoft.Extensions.Internal.TypeNameHelper:ProcessType(byref,System.Type,byref):System.String
test rax, rax
- jne SHORT G_M63242_IG18
- cmp gword ptr [rbp-0x40], 0
- jne SHORT G_M63242_IG16
+ jne SHORT G_M63242_IG21
+ cmp gword ptr [rbp-0x98], 0
+ jne SHORT G_M63242_IG19
xor rax, rax
- jmp SHORT G_M63242_IG17
- ;; size=61 bbWeight=2 PerfScore 32.00
-G_M63242_IG16:
- mov rdi, gword ptr [rbp-0x40]
+ jmp SHORT G_M63242_IG20
+ ;; size=85 bbWeight=2 PerfScore 32.00
+G_M63242_IG19:
+ mov rdi, gword ptr [rbp-0x98]
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:ToString():System.String:this
cmp dword ptr [rdi], edi
call [rax]System.Text.StringBuilder:ToString():System.String:this
- ;; size=18 bbWeight=2 PerfScore 14.50
-G_M63242_IG17:
+ ;; size=21 bbWeight=2 PerfScore 14.50
+G_M63242_IG20:
test rax, rax
- jne SHORT G_M63242_IG18
+ jne SHORT G_M63242_IG21
mov rax, 0xD1FFAB1E ; ''
;; size=15 bbWeight=2 PerfScore 3.00
-G_M63242_IG18:
+G_M63242_IG21:
xor rsi, rsi
- mov gword ptr [rbp-0x40], rsi
+ mov gword ptr [rbp-0x98], rsi
cmp byte ptr [rbx], bl
test rax, rax
- je SHORT G_M63242_IG19
+ je SHORT G_M63242_IG22
lea rsi, bword ptr [rax+0x0C]
mov edx, dword ptr [rax+0x08]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
- ;; size=35 bbWeight=2 PerfScore 23.00
-G_M63242_IG19:
+ ;; size=38 bbWeight=2 PerfScore 23.00
+G_M63242_IG22:
mov edi, dword ptr [rbx+0x18]
mov esi, edi
mov rax, gword ptr [rbx+0x08]
mov ecx, dword ptr [rax+0x08]
cmp ecx, esi
- jbe SHORT G_M63242_IG20
+ jbe SHORT G_M63242_IG23
mov word ptr [rax+2*rsi+0x10], 40
inc edi
mov dword ptr [rbx+0x18], edi
- jmp SHORT G_M63242_IG21
+ jmp SHORT G_M63242_IG24
;; size=30 bbWeight=2 PerfScore 23.50
-G_M63242_IG20:
+G_M63242_IG23:
mov rdi, rbx
mov esi, 40
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(ushort):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(ushort):this
;; size=20 bbWeight=2 PerfScore 7.50
-G_M63242_IG21:
+G_M63242_IG24:
xor rdi, rdi
- mov gword ptr [rbp-0x50], rdi
- ;; size=6 bbWeight=2 PerfScore 2.50
-G_M63242_IG22:
- mov dword ptr [rbp-0x58], edi
- mov word ptr [rbp-0x54], di
- ;; size=7 bbWeight=2 PerfScore 4.00
-G_M63242_IG23:
- mov gword ptr [rbp-0x50], rdi
- mov byte ptr [rbp-0x58], 1
- mov byte ptr [rbp-0x57], 1
- mov byte ptr [rbp-0x56], 0
- mov word ptr [rbp-0x54], 43
- lea rdi, [rbp-0x50]
- lea rdx, [rbp-0x58]
- mov rsi, gword ptr [rbp-0x68]
+ mov gword ptr [rbp-0xA8], rdi
+ ;; size=9 bbWeight=2 PerfScore 2.50
+G_M63242_IG25:
+ mov dword ptr [rbp-0xB0], edi
+ mov word ptr [rbp-0xAC], di
+ ;; size=13 bbWeight=2 PerfScore 4.00
+G_M63242_IG26:
+ mov gword ptr [rbp-0xA8], rdi
+ mov byte ptr [rbp-0xB0], 1
+ mov byte ptr [rbp-0xAF], 1
+ mov byte ptr [rbp-0xAE], 0
+ mov word ptr [rbp-0xAC], 43
+ lea rdi, [rbp-0xA8]
+ lea rdx, [rbp-0xB0]
+ mov rsi, r15
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Internal.TypeNameHelper:ProcessType(byref,System.Type,byref):System.String
call [rax]Microsoft.Extensions.Internal.TypeNameHelper:ProcessType(byref,System.Type,byref):System.String
test rax, rax
- jne SHORT G_M63242_IG26
- cmp gword ptr [rbp-0x50], 0
- jne SHORT G_M63242_IG24
+ jne SHORT G_M63242_IG29
+ cmp gword ptr [rbp-0xA8], 0
+ jne SHORT G_M63242_IG27
xor rax, rax
- jmp SHORT G_M63242_IG25
- ;; size=62 bbWeight=2 PerfScore 33.50
-G_M63242_IG24:
- mov rdi, gword ptr [rbp-0x50]
+ jmp SHORT G_M63242_IG28
+ ;; size=85 bbWeight=2 PerfScore 32.00
+G_M63242_IG27:
+ mov rdi, gword ptr [rbp-0xA8]
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:ToString():System.String:this
cmp dword ptr [rdi], edi
call [rax]System.Text.StringBuilder:ToString():System.String:this
- ;; size=18 bbWeight=2 PerfScore 14.50
-G_M63242_IG25:
+ ;; size=21 bbWeight=2 PerfScore 14.50
+G_M63242_IG28:
test rax, rax
- jne SHORT G_M63242_IG26
+ jne SHORT G_M63242_IG29
mov rax, 0xD1FFAB1E ; ''
;; size=15 bbWeight=2 PerfScore 3.00
-G_M63242_IG26:
+G_M63242_IG29:
xor rsi, rsi
- mov gword ptr [rbp-0x50], rsi
+ mov gword ptr [rbp-0xA8], rsi
test rax, rax
- je SHORT G_M63242_IG27
+ je SHORT G_M63242_IG30
lea rsi, bword ptr [rax+0x0C]
mov edx, dword ptr [rax+0x08]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
- ;; size=33 bbWeight=2 PerfScore 17.00
-G_M63242_IG27:
+ ;; size=36 bbWeight=2 PerfScore 17.00
+G_M63242_IG30:
mov edi, dword ptr [rbx+0x18]
mov esi, edi
mov rax, gword ptr [rbx+0x08]
mov ecx, dword ptr [rax+0x08]
cmp ecx, esi
- jbe SHORT G_M63242_IG28
+ jbe SHORT G_M63242_IG31
mov word ptr [rax+2*rsi+0x10], 41
inc edi
mov dword ptr [rbx+0x18], edi
- jmp SHORT G_M63242_IG29
+ jmp SHORT G_M63242_IG32
;; size=30 bbWeight=2 PerfScore 23.50
-G_M63242_IG28:
+G_M63242_IG31:
mov rdi, rbx
mov esi, 41
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(ushort):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(ushort):this
;; size=20 bbWeight=2 PerfScore 7.50
-G_M63242_IG29:
+G_M63242_IG32:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x04]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M63242_IG30
+ jb SHORT G_M63242_IG34
+ ;; size=25 bbWeight=4 PerfScore 35.00
+G_M63242_IG33:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
mov rax, qword ptr [rsi]
mov qword ptr [rdi], rax
add edx, 4
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M63242_IG31
- ;; size=47 bbWeight=2 PerfScore 32.50
-G_M63242_IG30:
+ jmp SHORT G_M63242_IG35
+ ;; size=22 bbWeight=2 PerfScore 15.00
+G_M63242_IG34:
mov rdi, rbx
mov edx, 4
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=2 PerfScore 7.50
-G_M63242_IG31:
- mov edi, dword ptr [r13+0x14]
- cmp r14d, edi
- jne G_M63242_IG40
- ;; size=13 bbWeight=8 PerfScore 26.00
-G_M63242_IG32:
- mov edi, dword ptr [r13+0x10]
- cmp r12d, edi
- jae SHORT G_M63242_IG33
- mov rdi, gword ptr [r13+0x08]
- cmp r12d, dword ptr [rdi+0x08]
- jae SHORT G_M63242_IG37
- mov esi, r12d
- shl rsi, 5
- lea rdi, bword ptr [rdi+rsi+0x10]
- mov rax, gword ptr [rdi+0x08]
- mov gword ptr [rbp-0x60], rax
- mov rcx, gword ptr [rdi+0x10]
- mov gword ptr [rbp-0x68], rcx
- inc r12d
- jmp G_M63242_IG06
- ;; size=55 bbWeight=4 PerfScore 77.00
-G_M63242_IG33:
- mov rdi, r15
+G_M63242_IG35:
+ lea rdi, [rbp-0x50]
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain+ChainItemInfo]]:MoveNext():ubyte:this
+ test eax, eax
+ jne G_M63242_IG08
+ ;; size=24 bbWeight=4 PerfScore 20.00
+G_M63242_IG36:
+ mov rdi, r14
mov esi, 1
xor edx, edx
mov ecx, 1
mov r8d, 43
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Internal.TypeNameHelper:GetTypeDisplayName(System.Type,ubyte,ubyte,ubyte,ushort):System.String
call [rax]Microsoft.Extensions.Internal.TypeNameHelper:GetTypeDisplayName(System.Type,ubyte,ubyte,ubyte,ushort):System.String
mov rsi, rax
cmp byte ptr [rbx], bl
test rsi, rsi
- je SHORT G_M63242_IG35
- ;; size=43 bbWeight=4 PerfScore 36.00
-G_M63242_IG34:
+ je SHORT G_M63242_IG38
+ ;; size=43 bbWeight=1 PerfScore 9.00
+G_M63242_IG37:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M63242_IG35:
+G_M63242_IG38:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M63242_IG36:
- add rsp, 72
+G_M63242_IG39:
+ vzeroupper
+ add rsp, 144
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=1 PerfScore 4.25
-G_M63242_IG37:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-G_M63242_IG38:
+ ;; size=19 bbWeight=1 PerfScore 4.75
+G_M63242_IG40:
mov rdi, 0xD1FFAB1E
mov esi, 53
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
jmp G_M63242_IG03
;; size=25 bbWeight=0 PerfScore 0.00
-G_M63242_IG39:
+G_M63242_IG41:
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M63242_IG40:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1075, prolog size 39, PerfScore 538.71, instruction count 271, allocated bytes for code 1075 (MethodHash=06a108f5) for method Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain:AppendResolutionPath(System.Text.StringBuilder,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier):this (FullOpts)
+; Total bytes of code 1213, prolog size 59, PerfScore 474.79, instruction count 267, allocated bytes for code 1213 (MethodHash=06a108f5) for method Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain:AppendResolutionPath(System.Text.StringBuilder,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier):this (FullOpts)
138 (10.57 % of base) - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeAssemblyRefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this
; Assembly listing for method System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeAssemblyRefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
-; fully interruptible
+; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 48 single block inlinees; 32 inlinees without PGO data
+; 0 inlinees with PGO data; 48 single block inlinees; 30 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T54] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Reflection.Metadata.Ecma335.MetadataBuilder>
-; V01 arg1 [V01,T00] ( 67,132 ) ref -> rbx class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
+; V00 this [V00,T46] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Reflection.Metadata.Ecma335.MetadataBuilder>
+; V01 arg1 [V01,T00] ( 67,172 ) ref -> rbx class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Collections.Immutable.ImmutableArray`1[int]>
-; V03 arg3 [V03,T07] ( 6, 10 ) ref -> r15 class-hnd single-def <System.Reflection.Metadata.Ecma335.MetadataSizes>
-;* V04 loc0 [V04 ] ( 0, 0 ) struct (48) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Reflection.Metadata.Ecma335.MetadataBuilder+AssemblyRefTableRow]>
+; V03 arg3 [V03,T11] ( 6, 18 ) ref -> r15 class-hnd single-def <System.Reflection.Metadata.Ecma335.MetadataSizes>
+; V04 loc0 [V04 ] ( 12, 33 ) struct (48) [rbp-0x58] do-not-enreg[XS] addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Reflection.Metadata.Ecma335.MetadataBuilder+AssemblyRefTableRow]>
;* V05 loc1 [V05 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] <System.Reflection.Metadata.Ecma335.MetadataBuilder+AssemblyRefTableRow>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T53] ( 3, 6 ) ref -> r13 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+AssemblyRefTableRow]>
-;* V08 tmp2 [V08 ] ( 0, 0 ) struct (48) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Reflection.Metadata.Ecma335.MetadataBuilder+AssemblyRefTableRow]>
+; V07 tmp1 [V07,T45] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+AssemblyRefTableRow]>
+; V08 tmp2 [V08,T48] ( 1, 2 ) struct (48) [rbp-0x88] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Reflection.Metadata.Ecma335.MetadataBuilder+AssemblyRefTableRow]>
;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Version>
;* V10 tmp4 [V10 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V11 tmp5 [V11,T44] ( 2, 8 ) ushort -> [rbp-0x2C] spill-single-def "Inlining Arg"
-; V12 tmp6 [V12,T08] ( 6, 12 ) int -> rsi "Inline stloc first use temp"
+; V11 tmp5 [V11,T16] ( 2, 16 ) ushort -> [rbp-0x8C] spill-single-def "Inlining Arg"
+; V12 tmp6 [V12,T06] ( 6, 22 ) int -> r10 "Inline stloc first use temp"
;* V13 tmp7 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V14 tmp8 [V14 ] ( 0, 0 ) byref -> zero-ref
;* V15 tmp9 [V15 ] ( 0, 0 ) byref -> zero-ref
;* V16 tmp10 [V16 ] ( 0, 0 ) int -> zero-ref
;* V17 tmp11 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Version>
;* V18 tmp12 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V19 tmp13 [V19,T45] ( 2, 8 ) ushort -> [rbp-0x30] spill-single-def "Inlining Arg"
-; V20 tmp14 [V20,T09] ( 6, 12 ) int -> rdx "Inline stloc first use temp"
+; V19 tmp13 [V19,T17] ( 2, 16 ) ushort -> [rbp-0x90] spill-single-def "Inlining Arg"
+; V20 tmp14 [V20,T07] ( 6, 22 ) int -> r10 "Inline stloc first use temp"
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V22 tmp16 [V22 ] ( 0, 0 ) byref -> zero-ref
;* V23 tmp17 [V23 ] ( 0, 0 ) byref -> zero-ref
;* V24 tmp18 [V24 ] ( 0, 0 ) int -> zero-ref
;* V25 tmp19 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Version>
;* V26 tmp20 [V26 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V27 tmp21 [V27,T46] ( 2, 8 ) ushort -> [rbp-0x34] spill-single-def "Inlining Arg"
-; V28 tmp22 [V28,T10] ( 6, 12 ) int -> rdx "Inline stloc first use temp"
+; V27 tmp21 [V27,T18] ( 2, 16 ) ushort -> [rbp-0x94] spill-single-def "Inlining Arg"
+; V28 tmp22 [V28,T08] ( 6, 22 ) int -> r10 "Inline stloc first use temp"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V30 tmp24 [V30 ] ( 0, 0 ) byref -> zero-ref
;* V31 tmp25 [V31 ] ( 0, 0 ) byref -> zero-ref
;* V32 tmp26 [V32 ] ( 0, 0 ) int -> zero-ref
;* V33 tmp27 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Version>
;* V34 tmp28 [V34 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V35 tmp29 [V35,T47] ( 2, 8 ) ushort -> [rbp-0x38] spill-single-def "Inlining Arg"
-; V36 tmp30 [V36,T11] ( 6, 12 ) int -> rcx "Inline stloc first use temp"
+; V35 tmp29 [V35,T19] ( 2, 16 ) ushort -> r13 "Inlining Arg"
+; V36 tmp30 [V36,T09] ( 6, 22 ) int -> r9 "Inline stloc first use temp"
;* V37 tmp31 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V38 tmp32 [V38 ] ( 0, 0 ) byref -> zero-ref
;* V39 tmp33 [V39 ] ( 0, 0 ) byref -> zero-ref
;* V40 tmp34 [V40 ] ( 0, 0 ) int -> zero-ref
;* V41 tmp35 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V42 tmp36 [V42 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V43 tmp37 [V43,T12] ( 6, 12 ) int -> rax "Inline stloc first use temp"
+; V43 tmp37 [V43,T10] ( 6, 22 ) int -> r13 "Inline stloc first use temp"
;* V44 tmp38 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V45 tmp39 [V45 ] ( 0, 0 ) byref -> zero-ref
;* V46 tmp40 [V46 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V47 tmp41 [V47 ] ( 0, 0 ) byref -> zero-ref
;* V48 tmp42 [V48 ] ( 0, 0 ) int -> zero-ref
;* V49 tmp43 [V49 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.BlobHandle>
-; V50 tmp44 [V50,T48] ( 2, 8 ) ubyte -> rsi "Inlining Arg"
+; V50 tmp44 [V50,T20] ( 2, 16 ) ubyte -> rdi "Inlining Arg"
;* V51 tmp45 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V52 tmp46 [V52 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V53 tmp47 [V53 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V54 tmp48 [V54,T13] ( 6, 12 ) int -> rax "Inline stloc first use temp"
+; V54 tmp48 [V54,T24] ( 6, 12 ) int -> r13 "Inline stloc first use temp"
;* V55 tmp49 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V56 tmp50 [V56 ] ( 0, 0 ) byref -> zero-ref
;* V57 tmp51 [V57 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V58 tmp52 [V58 ] ( 0, 0 ) byref -> zero-ref
;* V59 tmp53 [V59 ] ( 0, 0 ) int -> zero-ref
;* V60 tmp54 [V60 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V61 tmp55 [V61,T14] ( 6, 12 ) int -> rax "Inline stloc first use temp"
+; V61 tmp55 [V61,T25] ( 6, 12 ) int -> r13 "Inline stloc first use temp"
;* V62 tmp56 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V63 tmp57 [V63 ] ( 0, 0 ) byref -> zero-ref
;* V64 tmp58 [V64 ] ( 0, 0 ) byref -> zero-ref
;* V65 tmp59 [V65 ] ( 0, 0 ) int -> zero-ref
;* V66 tmp60 [V66 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[int]>
;* V67 tmp61 [V67 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.StringHandle>
;* V68 tmp62 [V68 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V69 tmp63 [V69,T49] ( 2, 8 ) ubyte -> rsi "Inlining Arg"
-; V70 tmp64 [V70,T38] ( 3, 12 ) int -> [rbp-0x3C] spill-single-def "Inlining Arg"
+; V69 tmp63 [V69,T21] ( 2, 16 ) ubyte -> rdi "Inlining Arg"
+; V70 tmp64 [V70,T14] ( 3, 16 ) int -> r13 "Inlining Arg"
;* V71 tmp65 [V71 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V72 tmp66 [V72 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V73 tmp67 [V73,T15] ( 6, 12 ) int -> rcx "Inline stloc first use temp"
+; V73 tmp67 [V73,T26] ( 6, 12 ) int -> r12 "Inline stloc first use temp"
;* V74 tmp68 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V75 tmp69 [V75 ] ( 0, 0 ) byref -> zero-ref
;* V76 tmp70 [V76 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V77 tmp71 [V77 ] ( 0, 0 ) byref -> zero-ref
;* V78 tmp72 [V78 ] ( 0, 0 ) int -> zero-ref
;* V79 tmp73 [V79 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V80 tmp74 [V80,T16] ( 6, 12 ) int -> rcx "Inline stloc first use temp"
+; V80 tmp74 [V80,T27] ( 6, 12 ) int -> r12 "Inline stloc first use temp"
;* V81 tmp75 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V82 tmp76 [V82 ] ( 0, 0 ) byref -> zero-ref
;* V83 tmp77 [V83 ] ( 0, 0 ) byref -> zero-ref
;* V84 tmp78 [V84 ] ( 0, 0 ) int -> zero-ref
;* V85 tmp79 [V85 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[int]>
;* V86 tmp80 [V86 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.StringHandle>
;* V87 tmp81 [V87 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V88 tmp82 [V88,T50] ( 2, 8 ) ubyte -> rsi "Inlining Arg"
-; V89 tmp83 [V89,T39] ( 3, 12 ) int -> [rbp-0x40] spill-single-def "Inlining Arg"
+; V88 tmp82 [V88,T22] ( 2, 16 ) ubyte -> rdi "Inlining Arg"
+; V89 tmp83 [V89,T15] ( 3, 16 ) int -> r13 "Inlining Arg"
;* V90 tmp84 [V90 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V91 tmp85 [V91 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V92 tmp86 [V92,T17] ( 6, 12 ) int -> rcx "Inline stloc first use temp"
+; V92 tmp86 [V92,T28] ( 6, 12 ) int -> r12 "Inline stloc first use temp"
;* V93 tmp87 [V93 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V94 tmp88 [V94 ] ( 0, 0 ) byref -> zero-ref
;* V95 tmp89 [V95 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V96 tmp90 [V96 ] ( 0, 0 ) byref -> zero-ref
;* V97 tmp91 [V97 ] ( 0, 0 ) int -> zero-ref
;* V98 tmp92 [V98 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V99 tmp93 [V99,T18] ( 6, 12 ) int -> rcx "Inline stloc first use temp"
+; V99 tmp93 [V99,T29] ( 6, 12 ) int -> r12 "Inline stloc first use temp"
;* V100 tmp94 [V100 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V101 tmp95 [V101 ] ( 0, 0 ) byref -> zero-ref
;* V102 tmp96 [V102 ] ( 0, 0 ) byref -> zero-ref
;* V103 tmp97 [V103 ] ( 0, 0 ) int -> zero-ref
;* V104 tmp98 [V104 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.BlobHandle>
-; V105 tmp99 [V105,T51] ( 2, 8 ) ubyte -> rsi "Inlining Arg"
+; V105 tmp99 [V105,T23] ( 2, 16 ) ubyte -> rdi "Inlining Arg"
;* V106 tmp100 [V106 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V107 tmp101 [V107 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V108 tmp102 [V108 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V109 tmp103 [V109,T19] ( 6, 12 ) int -> rax "Inline stloc first use temp"
+; V109 tmp103 [V109,T30] ( 6, 12 ) int -> r13 "Inline stloc first use temp"
;* V110 tmp104 [V110 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V111 tmp105 [V111 ] ( 0, 0 ) byref -> zero-ref
;* V112 tmp106 [V112 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V113 tmp107 [V113 ] ( 0, 0 ) byref -> zero-ref
;* V114 tmp108 [V114 ] ( 0, 0 ) int -> zero-ref
;* V115 tmp109 [V115 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V116 tmp110 [V116,T20] ( 6, 12 ) int -> rax "Inline stloc first use temp"
+; V116 tmp110 [V116,T31] ( 6, 12 ) int -> r13 "Inline stloc first use temp"
;* V117 tmp111 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V118 tmp112 [V118 ] ( 0, 0 ) byref -> zero-ref
;* V119 tmp113 [V119 ] ( 0, 0 ) byref -> zero-ref
;* V120 tmp114 [V120 ] ( 0, 0 ) int -> zero-ref
-;* V121 tmp115 [V121,T52] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V122 tmp116 [V122 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+AssemblyRefTableRow]>
-; V123 tmp117 [V123,T41] ( 5, 9 ) ref -> r14 single-def "field V02.array (fldOffset=0x0)" P-INDEP
-;* V124 tmp118 [V124 ] ( 0, 0 ) int -> zero-ref "field V49._value (fldOffset=0x0)" P-INDEP
-;* V125 tmp119 [V125 ] ( 0, 0 ) ref -> zero-ref "field V66.array (fldOffset=0x0)" P-INDEP
-;* V126 tmp120 [V126 ] ( 0, 0 ) int -> zero-ref "field V67._value (fldOffset=0x0)" P-INDEP
-;* V127 tmp121 [V127 ] ( 0, 0 ) ref -> zero-ref "field V85.array (fldOffset=0x0)" P-INDEP
-;* V128 tmp122 [V128 ] ( 0, 0 ) int -> zero-ref "field V86._value (fldOffset=0x0)" P-INDEP
-;* V129 tmp123 [V129 ] ( 0, 0 ) int -> zero-ref "field V104._value (fldOffset=0x0)" P-INDEP
-; V130 tmp124 [V130,T04] ( 4, 17 ) ref -> r13 single-def "V04.[000..008)"
-; V131 tmp125 [V131,T02] ( 6, 21 ) int -> [rbp-0x44] "V04.[008..012)"
-; V132 tmp126 [V132,T43] ( 2, 9 ) int -> r12 "V04.[012..016)"
-; V133 tmp127 [V133,T05] ( 5, 12 ) ref -> [rbp-0x60] spill-single-def "V04.[016..024)"
-; V134 tmp128 [V134,T42] ( 2, 6 ) int -> [rbp-0x48] spill-single-def "V04.[024..028)"
-; V135 tmp129 [V135,T21] ( 3, 8 ) int -> [rbp-0x4C] spill-single-def "V04.[028..032)"
-; V136 tmp130 [V136,T22] ( 3, 8 ) int -> [rbp-0x50] spill-single-def "V04.[032..036)"
-; V137 tmp131 [V137,T23] ( 3, 8 ) int -> [rbp-0x54] spill-single-def "V04.[036..040)"
-; V138 tmp132 [V138,T24] ( 3, 8 ) int -> [rbp-0x58] spill-single-def "V04.[040..044)"
-;* V139 tmp133 [V139 ] ( 0, 0 ) ref -> zero-ref "V05.[000..008)"
-;* V140 tmp134 [V140 ] ( 0, 0 ) int -> zero-ref "V05.[008..012)"
-;* V141 tmp135 [V141 ] ( 0, 0 ) int -> zero-ref "V05.[012..016)"
-;* V142 tmp136 [V142 ] ( 0, 0 ) int -> zero-ref "V05.[016..020)"
-;* V143 tmp137 [V143 ] ( 0, 0 ) int -> zero-ref "V05.[020..024)"
-;* V144 tmp138 [V144 ] ( 0, 0 ) int -> zero-ref "V05.[024..028)"
-;* V145 tmp139 [V145 ] ( 0, 0 ) ref -> zero-ref single-def "V08.[000..008)"
-;* V146 tmp140 [V146 ] ( 0, 0 ) int -> zero-ref "V08.[008..012)"
-; V147 tmp141 [V147,T55] ( 2, 2 ) int -> r12 "V08.[012..016)"
-;* V148 tmp142 [V148 ] ( 0, 0 ) ref -> zero-ref single-def "V08.[016..024)"
-;* V149 tmp143 [V149 ] ( 0, 0 ) int -> zero-ref "V08.[024..028)"
-;* V150 tmp144 [V150 ] ( 0, 0 ) int -> zero-ref "V08.[028..032)"
-;* V151 tmp145 [V151 ] ( 0, 0 ) int -> zero-ref "V08.[032..036)"
-;* V152 tmp146 [V152 ] ( 0, 0 ) int -> zero-ref "V08.[036..040)"
-;* V153 tmp147 [V153 ] ( 0, 0 ) int -> zero-ref "V08.[040..044)"
-; V154 tmp148 [V154,T01] ( 7, 56 ) byref -> rsi "Spilling address for field-by-field copy"
-; V155 tmp149 [V155,T03] ( 3, 24 ) ref -> rsi "arr expr"
-; V156 tmp150 [V156,T25] ( 3, 12 ) ref -> rcx "arr expr"
-; V157 tmp151 [V157,T26] ( 3, 12 ) ref -> rsi "arr expr"
-; V158 tmp152 [V158,T27] ( 3, 12 ) ref -> rsi "arr expr"
-; V159 tmp153 [V159,T28] ( 3, 12 ) ref -> rsi "arr expr"
-; V160 tmp154 [V160,T29] ( 3, 12 ) ref -> rsi "arr expr"
-; V161 tmp155 [V161,T30] ( 3, 12 ) ref -> rsi "arr expr"
-; V162 tmp156 [V162,T31] ( 3, 12 ) ref -> rsi "arr expr"
-; V163 tmp157 [V163,T32] ( 3, 12 ) ref -> rsi "arr expr"
-; V164 tmp158 [V164,T33] ( 3, 12 ) ref -> rsi "arr expr"
-; V165 tmp159 [V165,T34] ( 3, 12 ) ref -> rsi "arr expr"
-; V166 tmp160 [V166,T35] ( 3, 12 ) ref -> rsi "arr expr"
-; V167 tmp161 [V167,T36] ( 3, 12 ) ref -> rcx "arr expr"
-; V168 tmp162 [V168,T37] ( 3, 12 ) ref -> rsi "arr expr"
-; V169 cse0 [V169,T40] ( 2, 8 ) int -> rsi "CSE #17: conservative"
-; V170 cse1 [V170,T06] ( 2, 16 ) int -> rsi "CSE #16: aggressive"
+; V121 tmp115 [V121,T13] ( 5, 17 ) ref -> r14 single-def "field V02.array (fldOffset=0x0)" P-INDEP
+;* V122 tmp116 [V122 ] ( 0, 0 ) int -> zero-ref "field V49._value (fldOffset=0x0)" P-INDEP
+;* V123 tmp117 [V123 ] ( 0, 0 ) ref -> zero-ref "field V66.array (fldOffset=0x0)" P-INDEP
+;* V124 tmp118 [V124 ] ( 0, 0 ) int -> zero-ref "field V67._value (fldOffset=0x0)" P-INDEP
+;* V125 tmp119 [V125 ] ( 0, 0 ) ref -> zero-ref "field V85.array (fldOffset=0x0)" P-INDEP
+;* V126 tmp120 [V126 ] ( 0, 0 ) int -> zero-ref "field V86._value (fldOffset=0x0)" P-INDEP
+;* V127 tmp121 [V127 ] ( 0, 0 ) int -> zero-ref "field V104._value (fldOffset=0x0)" P-INDEP
+; V128 tmp122 [V128,T12] ( 5, 20 ) ref -> r13 "V05.[000..008)"
+; V129 tmp123 [V129,T44] ( 2, 8 ) int -> r12 "V05.[008..012)"
+; V130 tmp124 [V130,T42] ( 3, 8 ) int -> [rbp-0x98] spill-single-def "V05.[012..016)"
+; V131 tmp125 [V131,T40] ( 3, 12 ) int -> [rbp-0x9C] spill-single-def "V05.[016..020)"
+; V132 tmp126 [V132,T41] ( 3, 12 ) int -> [rbp-0xA0] spill-single-def "V05.[020..024)"
+; V133 tmp127 [V133,T43] ( 3, 8 ) int -> [rbp-0xA4] spill-single-def "V05.[024..028)"
+;* V134 tmp128 [V134 ] ( 0, 0 ) ref -> zero-ref single-def "V08.[000..008)"
+;* V135 tmp129 [V135 ] ( 0, 0 ) int -> zero-ref "V08.[008..012)"
+; V136 tmp130 [V136,T47] ( 2, 2 ) int -> rax "V08.[012..016)"
+; V137 tmp131 [V137,T01] ( 3, 24 ) ref -> rdi "arr expr"
+; V138 tmp132 [V138,T02] ( 3, 24 ) ref -> rdi "arr expr"
+; V139 tmp133 [V139,T03] ( 3, 24 ) ref -> rdi "arr expr"
+; V140 tmp134 [V140,T04] ( 3, 24 ) ref -> rdi "arr expr"
+; V141 tmp135 [V141,T05] ( 3, 24 ) ref -> rdi "arr expr"
+; V142 tmp136 [V142,T32] ( 3, 12 ) ref -> rdi "arr expr"
+; V143 tmp137 [V143,T33] ( 3, 12 ) ref -> rdi "arr expr"
+; V144 tmp138 [V144,T34] ( 3, 12 ) ref -> rdi "arr expr"
+; V145 tmp139 [V145,T35] ( 3, 12 ) ref -> rdi "arr expr"
+; V146 tmp140 [V146,T36] ( 3, 12 ) ref -> rdi "arr expr"
+; V147 tmp141 [V147,T37] ( 3, 12 ) ref -> rdi "arr expr"
+; V148 tmp142 [V148,T38] ( 3, 12 ) ref -> rdi "arr expr"
+; V149 tmp143 [V149,T39] ( 3, 12 ) ref -> rdi "arr expr"
;
-; Lcl frame size = 56
+; Lcl frame size = 136
G_M925_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 56
- lea rbp, [rsp+0x60]
+ sub rsp, 136
+ lea rbp, [rsp+0xB0]
+ xor eax, eax
+ mov qword ptr [rbp-0x88], rax
+ vxorps xmm8, xmm8, xmm8
+ vmovdqu ymmword ptr [rbp-0x80], ymm8
+ mov qword ptr [rbp-0x60], rax
mov rbx, rsi
mov r14, rdx
mov r15, rcx
- ;; size=28 bbWeight=1 PerfScore 7.50
+ ;; size=57 bbWeight=1 PerfScore 12.08
G_M925_IG02:
- mov r13, gword ptr [rdi+0x108]
- mov r12d, dword ptr [r13+0x14]
- xor edi, edi
- jmp G_M925_IG24
- ;; size=18 bbWeight=1 PerfScore 6.25
+ mov rdi, gword ptr [rdi+0x108]
+ mov eax, dword ptr [rdi+0x14]
+ ;; size=10 bbWeight=1 PerfScore 4.00
G_M925_IG03:
- movzx r11, word ptr [rax+0x08]
- mov dword ptr [rbp-0x2C], r11d
- mov esi, dword ptr [rbx+0x1C]
- mov rcx, gword ptr [rbx+0x10]
- mov ecx, dword ptr [rcx+0x08]
- add ecx, -2
- movsxd rcx, ecx
- mov edx, esi
- cmp rcx, rdx
- jge SHORT G_M925_IG04
- mov rdi, rbx
- mov esi, 2
- mov rcx, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rcx]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor esi, esi
- ;; size=54 bbWeight=2 PerfScore 30.00
+ vmovdqu ymm0, ymmword ptr [rbp-0x88]
+ vmovdqu ymmword ptr [rbp-0x58], ymm0
+ vmovdqu xmm0, xmmword ptr [rbp-0x68]
+ vmovdqu xmmword ptr [rbp-0x38], xmm0
+ ;; size=23 bbWeight=1 PerfScore 9.00
G_M925_IG04:
- lea ecx, [rsi+0x02]
- mov dword ptr [rbx+0x1C], ecx
- mov rcx, gword ptr [rbx+0x10]
- cmp esi, dword ptr [rcx+0x08]
- jae G_M925_IG27
- mov esi, esi
- mov r11d, dword ptr [rbp-0x2C]
- mov word ptr [rcx+rsi+0x10], r11w
- mov rax, gword ptr [rbp-0x60]
- movzx rcx, word ptr [rax+0x0C]
- mov dword ptr [rbp-0x30], ecx
- mov edx, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -2
- movsxd rsi, esi
- mov r11d, edx
- cmp rsi, r11
- jge SHORT G_M925_IG05
- mov rdi, rbx
- mov esi, 2
- mov rdx, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rdx]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor edx, edx
- ;; size=88 bbWeight=2 PerfScore 51.50
+ mov gword ptr [rbp-0x58], rdi
+ xor edi, edi
+ mov dword ptr [rbp-0x50], edi
+ mov dword ptr [rbp-0x4C], eax
+ lea rdi, [rbp-0x58]
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Reflection.Metadata.Ecma335.MetadataBuilder+AssemblyRefTableRow]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.Reflection.Metadata.Ecma335.MetadataBuilder+AssemblyRefTableRow]:MoveNext():ubyte:this
+ test eax, eax
+ je G_M925_IG36
+ ;; size=36 bbWeight=1 PerfScore 8.25
G_M925_IG05:
- lea esi, [rdx+0x02]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp edx, dword ptr [rsi+0x08]
- jae G_M925_IG27
- mov edx, edx
- mov ecx, dword ptr [rbp-0x30]
- mov word ptr [rsi+rdx+0x10], cx
- mov rax, gword ptr [rbp-0x60]
- movzx rcx, word ptr [rax+0x10]
- mov dword ptr [rbp-0x34], ecx
- mov edx, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -2
- movsxd rsi, esi
- mov r11d, edx
- cmp rsi, r11
- jge SHORT G_M925_IG06
- mov rdi, rbx
- mov esi, 2
- mov rdx, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rdx]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor edx, edx
- ;; size=86 bbWeight=2 PerfScore 51.50
-G_M925_IG06:
- lea esi, [rdx+0x02]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp edx, dword ptr [rsi+0x08]
- jae G_M925_IG27
- mov edx, edx
- mov ecx, dword ptr [rbp-0x34]
- mov word ptr [rsi+rdx+0x10], cx
- mov rax, gword ptr [rbp-0x60]
- movzx rax, word ptr [rax+0x14]
- mov dword ptr [rbp-0x38], eax
- mov ecx, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -2
- movsxd rsi, esi
- mov edx, ecx
- cmp rsi, rdx
+ mov r13, gword ptr [rbp-0x48]
+ mov r12d, dword ptr [rbp-0x40]
+ mov eax, dword ptr [rbp-0x3C]
+ mov dword ptr [rbp-0x98], eax
+ mov ecx, dword ptr [rbp-0x38]
+ mov dword ptr [rbp-0x9C], ecx
+ mov edx, dword ptr [rbp-0x34]
+ mov dword ptr [rbp-0xA0], edx
+ mov r8d, dword ptr [rbp-0x30]
+ mov dword ptr [rbp-0xA4], r8d
+ movzx r9, word ptr [r13+0x08]
+ mov dword ptr [rbp-0x8C], r9d
+ mov r10d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -2
+ movsxd rdi, edi
+ mov esi, r10d
+ cmp rdi, rsi
jge SHORT G_M925_IG07
+ ;; size=83 bbWeight=4 PerfScore 84.00
+G_M925_IG06:
mov rdi, rbx
mov esi, 2
- mov rcx, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rcx]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor ecx, ecx
- ;; size=85 bbWeight=2 PerfScore 51.50
+ mov r10, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [r10]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r10d, r10d
+ ;; size=24 bbWeight=2 PerfScore 8.00
G_M925_IG07:
- lea esi, [rcx+0x02]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp ecx, dword ptr [rsi+0x08]
- jae G_M925_IG27
- mov ecx, ecx
- mov eax, dword ptr [rbp-0x38]
- mov word ptr [rsi+rcx+0x10], ax
- mov eax, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -4
- movsxd rsi, esi
- mov ecx, eax
- cmp rsi, rcx
- jge SHORT G_M925_IG08
- mov rdi, rbx
- mov esi, 4
- mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor eax, eax
- ;; size=74 bbWeight=2 PerfScore 43.50
-G_M925_IG08:
- lea esi, [rax+0x04]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp eax, dword ptr [rsi+0x08]
- jae G_M925_IG27
- mov eax, eax
- mov ecx, dword ptr [rbp-0x48]
- mov dword ptr [rsi+rax+0x10], ecx
- movzx rsi, byte ptr [r15+0x2A]
- test esi, esi
- je SHORT G_M925_IG10
- mov eax, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -2
- movsxd rsi, esi
- mov ecx, eax
- cmp rsi, rcx
+ lea edi, [r10+0x02]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r10d, dword ptr [rdi+0x08]
+ jae G_M925_IG37
+ mov esi, r10d
+ mov r9d, dword ptr [rbp-0x8C]
+ mov word ptr [rdi+rsi+0x10], r9w
+ movzx r9, word ptr [r13+0x0C]
+ mov dword ptr [rbp-0x90], r9d
+ mov r10d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -2
+ movsxd rdi, edi
+ mov esi, r10d
+ cmp rdi, rsi
jge SHORT G_M925_IG09
+ ;; size=74 bbWeight=4 PerfScore 83.00
+G_M925_IG08:
mov rdi, rbx
mov esi, 2
- mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor eax, eax
- ;; size=82 bbWeight=2 PerfScore 50.00
+ mov r10, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [r10]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r10d, r10d
+ ;; size=24 bbWeight=2 PerfScore 8.00
G_M925_IG09:
- lea esi, [rax+0x02]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp eax, dword ptr [rsi+0x08]
- jae G_M925_IG27
- mov eax, eax
- mov ecx, dword ptr [rbp-0x4C]
- mov word ptr [rsi+rax+0x10], cx
- jmp SHORT G_M925_IG12
- ;; size=31 bbWeight=2 PerfScore 23.50
-G_M925_IG10:
- mov eax, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -4
- movsxd rsi, esi
- mov edx, eax
- cmp rsi, rdx
+ lea edi, [r10+0x02]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r10d, dword ptr [rdi+0x08]
+ jae G_M925_IG37
+ mov esi, r10d
+ mov r9d, dword ptr [rbp-0x90]
+ mov word ptr [rdi+rsi+0x10], r9w
+ movzx r9, word ptr [r13+0x10]
+ mov dword ptr [rbp-0x94], r9d
+ mov r10d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -2
+ movsxd rdi, edi
+ mov esi, r10d
+ cmp rdi, rsi
jge SHORT G_M925_IG11
+ ;; size=74 bbWeight=4 PerfScore 83.00
+G_M925_IG10:
mov rdi, rbx
- mov esi, 4
- mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor eax, eax
- ;; size=45 bbWeight=2 PerfScore 24.00
+ mov esi, 2
+ mov r10, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [r10]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r10d, r10d
+ ;; size=24 bbWeight=2 PerfScore 8.00
G_M925_IG11:
- lea esi, [rax+0x04]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp eax, dword ptr [rsi+0x08]
- jae G_M925_IG27
- mov eax, eax
- mov ecx, dword ptr [rbp-0x4C]
- mov dword ptr [rsi+rax+0x10], ecx
- ;; size=28 bbWeight=2 PerfScore 19.50
-G_M925_IG12:
- mov r8d, dword ptr [rbp-0x50]
- mov esi, r8d
- and esi, 0xD1FFAB1E
- cmp esi, dword ptr [r14+0x08]
- jae G_M925_IG27
- and r8d, 0xD1FFAB1E
- mov esi, r8d
- mov eax, dword ptr [r14+4*rsi+0x10]
- mov dword ptr [rbp-0x3C], eax
- movzx rsi, byte ptr [r15+0x2B]
- test esi, esi
- je SHORT G_M925_IG14
- mov ecx, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -2
- movsxd rsi, esi
- mov edx, ecx
- cmp rsi, rdx
+ lea edi, [r10+0x02]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r10d, dword ptr [rdi+0x08]
+ jae G_M925_IG37
+ mov esi, r10d
+ mov r9d, dword ptr [rbp-0x94]
+ mov word ptr [rdi+rsi+0x10], r9w
+ movzx r13, word ptr [r13+0x14]
+ mov r9d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -2
+ movsxd rdi, edi
+ mov esi, r9d
+ cmp rdi, rsi
jge SHORT G_M925_IG13
+ ;; size=67 bbWeight=4 PerfScore 79.00
+G_M925_IG12:
mov rdi, rbx
mov esi, 2
- mov rcx, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rcx]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor ecx, ecx
- ;; size=95 bbWeight=2 PerfScore 48.50
+ mov r9, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [r9]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r9d, r9d
+ ;; size=24 bbWeight=2 PerfScore 8.00
G_M925_IG13:
- lea esi, [rcx+0x02]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp ecx, dword ptr [rsi+0x08]
- jae G_M925_IG27
- mov ecx, ecx
- mov eax, dword ptr [rbp-0x3C]
- mov word ptr [rsi+rcx+0x10], ax
- jmp SHORT G_M925_IG16
- ;; size=31 bbWeight=2 PerfScore 23.50
-G_M925_IG14:
- mov ecx, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -4
- movsxd rsi, esi
- mov edx, ecx
- cmp rsi, rdx
+ lea edi, [r9+0x02]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r9d, dword ptr [rdi+0x08]
+ jae G_M925_IG37
+ mov esi, r9d
+ mov word ptr [rdi+rsi+0x10], r13w
+ mov r13d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -4
+ movsxd rdi, edi
+ mov esi, r13d
+ cmp rdi, rsi
jge SHORT G_M925_IG15
+ ;; size=55 bbWeight=4 PerfScore 67.00
+G_M925_IG14:
mov rdi, rbx
mov esi, 4
- mov rcx, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rcx]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor ecx, ecx
- ;; size=45 bbWeight=2 PerfScore 24.00
+ mov r9, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [r9]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r13d, r13d
+ ;; size=24 bbWeight=2 PerfScore 8.00
G_M925_IG15:
- lea esi, [rcx+0x04]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp ecx, dword ptr [rsi+0x08]
- jae G_M925_IG27
- mov ecx, ecx
- mov eax, dword ptr [rbp-0x3C]
- mov dword ptr [rsi+rcx+0x10], eax
- ;; size=28 bbWeight=2 PerfScore 19.50
-G_M925_IG16:
- mov r9d, dword ptr [rbp-0x54]
- mov esi, r9d
- and esi, 0xD1FFAB1E
- cmp esi, dword ptr [r14+0x08]
- jae G_M925_IG27
- and r9d, 0xD1FFAB1E
- mov esi, r9d
- mov eax, dword ptr [r14+4*rsi+0x10]
- mov dword ptr [rbp-0x40], eax
- movzx rsi, byte ptr [r15+0x2B]
- test esi, esi
+ lea edi, [r13+0x04]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r13d, dword ptr [rdi+0x08]
+ jae G_M925_IG37
+ mov esi, r13d
+ mov dword ptr [rdi+rsi+0x10], r12d
+ movzx rdi, byte ptr [r15+0x2A]
+ test edi, edi
je SHORT G_M925_IG18
- mov ecx, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -2
- movsxd rsi, esi
- mov edx, ecx
- cmp rsi, rdx
+ ;; size=38 bbWeight=4 PerfScore 48.00
+G_M925_IG16:
+ mov r13d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -2
+ movsxd rdi, edi
+ mov esi, r13d
+ cmp rdi, rsi
jge SHORT G_M925_IG17
mov rdi, rbx
mov esi, 2
- mov rcx, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rcx]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor ecx, ecx
- ;; size=95 bbWeight=2 PerfScore 48.50
+ mov r9, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [r9]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r13d, r13d
+ ;; size=49 bbWeight=2 PerfScore 24.00
G_M925_IG17:
- lea esi, [rcx+0x02]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp ecx, dword ptr [rsi+0x08]
- jae G_M925_IG27
- mov ecx, ecx
- mov eax, dword ptr [rbp-0x40]
- mov word ptr [rsi+rcx+0x10], ax
+ lea edi, [r13+0x02]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r13d, dword ptr [rdi+0x08]
+ jae G_M925_IG37
+ mov esi, r13d
+ mov eax, dword ptr [rbp-0x98]
+ mov word ptr [rdi+rsi+0x10], ax
jmp SHORT G_M925_IG20
- ;; size=31 bbWeight=2 PerfScore 23.50
+ ;; size=37 bbWeight=2 PerfScore 23.50
G_M925_IG18:
- mov ecx, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -4
- movsxd rsi, esi
- mov edx, ecx
- cmp rsi, rdx
+ mov r13d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -4
+ movsxd rdi, edi
+ mov esi, r13d
+ cmp rdi, rsi
jge SHORT G_M925_IG19
mov rdi, rbx
mov esi, 4
- mov rcx, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rcx]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor ecx, ecx
- ;; size=45 bbWeight=2 PerfScore 24.00
+ mov r9, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [r9]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r13d, r13d
+ ;; size=49 bbWeight=2 PerfScore 24.00
G_M925_IG19:
- lea esi, [rcx+0x04]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp ecx, dword ptr [rsi+0x08]
- jae G_M925_IG27
- mov ecx, ecx
- mov eax, dword ptr [rbp-0x40]
- mov dword ptr [rsi+rcx+0x10], eax
- ;; size=28 bbWeight=2 PerfScore 19.50
+ lea edi, [r13+0x04]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r13d, dword ptr [rdi+0x08]
+ jae G_M925_IG37
+ mov esi, r13d
+ mov eax, dword ptr [rbp-0x98]
+ mov dword ptr [rdi+rsi+0x10], eax
+ ;; size=34 bbWeight=2 PerfScore 19.50
G_M925_IG20:
- movzx rsi, byte ptr [r15+0x2A]
- test esi, esi
- je SHORT G_M925_IG22
- mov eax, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -2
- movsxd rsi, esi
- mov ecx, eax
- cmp rsi, rcx
- jge SHORT G_M925_IG21
+ mov ecx, dword ptr [rbp-0x9C]
+ mov edi, ecx
+ and edi, 0xD1FFAB1E
+ cmp edi, dword ptr [r14+0x08]
+ jae G_M925_IG37
+ and ecx, 0xD1FFAB1E
+ mov edi, ecx
+ mov r13d, dword ptr [r14+4*rdi+0x10]
+ movzx rdi, byte ptr [r15+0x2B]
+ test edi, edi
+ je SHORT G_M925_IG23
+ ;; size=46 bbWeight=4 PerfScore 45.00
+G_M925_IG21:
+ mov r12d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -2
+ movsxd rdi, edi
+ mov esi, r12d
+ cmp rdi, rsi
+ jge SHORT G_M925_IG22
mov rdi, rbx
mov esi, 2
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor eax, eax
- ;; size=54 bbWeight=2 PerfScore 30.50
-G_M925_IG21:
- lea esi, [rax+0x02]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp eax, dword ptr [rsi+0x08]
- jae G_M925_IG27
- mov eax, eax
- mov r10d, dword ptr [rbp-0x58]
- mov word ptr [rsi+rax+0x10], r10w
- mov edi, dword ptr [rbp-0x44]
- jmp SHORT G_M925_IG24
- ;; size=36 bbWeight=2 PerfScore 25.50
+ xor r12d, r12d
+ ;; size=48 bbWeight=2 PerfScore 24.00
G_M925_IG22:
- mov eax, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -4
- movsxd rsi, esi
- mov ecx, eax
- cmp rsi, rcx
- jge SHORT G_M925_IG23
+ lea edi, [r12+0x02]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r12d, dword ptr [rdi+0x08]
+ jae G_M925_IG37
+ mov esi, r12d
+ mov word ptr [rdi+rsi+0x10], r13w
+ jmp SHORT G_M925_IG25
+ ;; size=33 bbWeight=2 PerfScore 21.50
+G_M925_IG23:
+ mov r12d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -4
+ movsxd rdi, edi
+ mov esi, r12d
+ cmp rdi, rsi
+ jge SHORT G_M925_IG24
mov rdi, rbx
mov esi, 4
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor eax, eax
- ;; size=45 bbWeight=2 PerfScore 24.00
-G_M925_IG23:
- lea ecx, [rax+0x04]
- mov dword ptr [rbx+0x1C], ecx
- mov rcx, gword ptr [rbx+0x10]
- cmp eax, dword ptr [rcx+0x08]
- jae SHORT G_M925_IG27
- mov eax, eax
- mov r10d, dword ptr [rbp-0x58]
- mov dword ptr [rcx+rax+0x10], r10d
- mov edi, dword ptr [rbp-0x44]
- ;; size=29 bbWeight=2 PerfScore 21.50
+ xor r12d, r12d
+ ;; size=48 bbWeight=2 PerfScore 24.00
G_M925_IG24:
- mov esi, dword ptr [r13+0x14]
- cmp r12d, esi
- jne SHORT G_M925_IG28
- ;; size=9 bbWeight=8 PerfScore 26.00
+ lea edi, [r12+0x04]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r12d, dword ptr [rdi+0x08]
+ jae G_M925_IG37
+ mov esi, r12d
+ mov dword ptr [rdi+rsi+0x10], r13d
+ ;; size=30 bbWeight=2 PerfScore 17.50
G_M925_IG25:
- mov esi, dword ptr [r13+0x10]
- cmp edi, esi
- jae SHORT G_M925_IG26
- mov rsi, gword ptr [r13+0x08]
- cmp edi, dword ptr [rsi+0x08]
- jae SHORT G_M925_IG27
- mov eax, edi
- shl rax, 5
- lea rsi, bword ptr [rsi+rax+0x10]
- mov rax, gword ptr [rsi]
- mov gword ptr [rbp-0x60], rax
- mov ecx, dword ptr [rsi+0x08]
- mov dword ptr [rbp-0x48], ecx
- mov edx, dword ptr [rsi+0x0C]
- mov dword ptr [rbp-0x4C], edx
- mov r8d, dword ptr [rsi+0x10]
- mov dword ptr [rbp-0x50], r8d
- mov r9d, dword ptr [rsi+0x14]
- mov dword ptr [rbp-0x54], r9d
- mov r10d, dword ptr [rsi+0x18]
- mov dword ptr [rbp-0x58], r10d
- inc edi
- mov dword ptr [rbp-0x44], edi
- jmp G_M925_IG03
- ;; size=81 bbWeight=4 PerfScore 129.00
+ mov edx, dword ptr [rbp-0xA0]
+ mov edi, edx
+ and edi, 0xD1FFAB1E
+ cmp edi, dword ptr [r14+0x08]
+ jae G_M925_IG37
+ and edx, 0xD1FFAB1E
+ mov edi, edx
+ mov r13d, dword ptr [r14+4*rdi+0x10]
+ movzx rdi, byte ptr [r15+0x2B]
+ test edi, edi
+ je SHORT G_M925_IG28
+ ;; size=46 bbWeight=4 PerfScore 45.00
G_M925_IG26:
- add rsp, 56
+ mov r12d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -2
+ movsxd rdi, edi
+ mov esi, r12d
+ cmp rdi, rsi
+ jge SHORT G_M925_IG27
+ mov rdi, rbx
+ mov esi, 2
+ mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r12d, r12d
+ ;; size=48 bbWeight=2 PerfScore 24.00
+G_M925_IG27:
+ lea edi, [r12+0x02]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r12d, dword ptr [rdi+0x08]
+ jae G_M925_IG37
+ mov esi, r12d
+ mov word ptr [rdi+rsi+0x10], r13w
+ jmp SHORT G_M925_IG30
+ ;; size=33 bbWeight=2 PerfScore 21.50
+G_M925_IG28:
+ mov r12d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -4
+ movsxd rdi, edi
+ mov esi, r12d
+ cmp rdi, rsi
+ jge SHORT G_M925_IG29
+ mov rdi, rbx
+ mov esi, 4
+ mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r12d, r12d
+ ;; size=48 bbWeight=2 PerfScore 24.00
+G_M925_IG29:
+ lea edi, [r12+0x04]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r12d, dword ptr [rdi+0x08]
+ jae G_M925_IG37
+ mov esi, r12d
+ mov dword ptr [rdi+rsi+0x10], r13d
+ ;; size=30 bbWeight=2 PerfScore 17.50
+G_M925_IG30:
+ movzx rdi, byte ptr [r15+0x2A]
+ test edi, edi
+ je SHORT G_M925_IG33
+ ;; size=9 bbWeight=4 PerfScore 13.00
+G_M925_IG31:
+ mov r13d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -2
+ movsxd rdi, edi
+ mov esi, r13d
+ cmp rdi, rsi
+ jge SHORT G_M925_IG32
+ mov rdi, rbx
+ mov esi, 2
+ mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r13d, r13d
+ ;; size=48 bbWeight=2 PerfScore 24.00
+G_M925_IG32:
+ lea edi, [r13+0x02]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r13d, dword ptr [rdi+0x08]
+ jae G_M925_IG37
+ mov esi, r13d
+ mov r8d, dword ptr [rbp-0xA4]
+ mov word ptr [rdi+rsi+0x10], r8w
+ jmp SHORT G_M925_IG35
+ ;; size=39 bbWeight=2 PerfScore 23.50
+G_M925_IG33:
+ mov r13d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -4
+ movsxd rdi, edi
+ mov esi, r13d
+ cmp rdi, rsi
+ jge SHORT G_M925_IG34
+ mov rdi, rbx
+ mov esi, 4
+ mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r13d, r13d
+ ;; size=48 bbWeight=2 PerfScore 24.00
+G_M925_IG34:
+ lea edi, [r13+0x04]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r13d, dword ptr [rdi+0x08]
+ jae SHORT G_M925_IG37
+ mov eax, r13d
+ mov r8d, dword ptr [rbp-0xA4]
+ mov dword ptr [rdi+rax+0x10], r8d
+ ;; size=32 bbWeight=2 PerfScore 19.50
+G_M925_IG35:
+ lea rdi, [rbp-0x58]
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Reflection.Metadata.Ecma335.MetadataBuilder+AssemblyRefTableRow]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.Reflection.Metadata.Ecma335.MetadataBuilder+AssemblyRefTableRow]:MoveNext():ubyte:this
+ test eax, eax
+ jne G_M925_IG05
+ ;; size=24 bbWeight=4 PerfScore 20.00
+G_M925_IG36:
+ vzeroupper
+ add rsp, 136
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=4 PerfScore 17.00
-G_M925_IG27:
+ ;; size=21 bbWeight=1 PerfScore 5.25
+G_M925_IG37:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M925_IG28:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1305, prolog size 28, PerfScore 863.25, instruction count 375, allocated bytes for code 1305 (MethodHash=72d2fc62) for method System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeAssemblyRefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
+; Total bytes of code 1443, prolog size 48, PerfScore 1001.58, instruction count 363, allocated bytes for code 1443 (MethodHash=72d2fc62) for method System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeAssemblyRefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
118 (7.77 % of base) - System.Xml.Xsl.Xslt.XslAstAnalyzer:Analyze(System.Xml.Xsl.Xslt.Compiler):int:this
; Assembly listing for method System.Xml.Xsl.Xslt.XslAstAnalyzer:Analyze(System.Xml.Xsl.Xslt.Compiler):int:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 43 single block inlinees; 13 inlinees without PGO data
+; 0 inlinees with PGO data; 43 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 24, 46 ) ref -> rbx this class-hnd single-def <System.Xml.Xsl.Xslt.XslAstAnalyzer>
-; V01 arg1 [V01,T08] ( 11, 26 ) ref -> r15 class-hnd single-def <System.Xml.Xsl.Xslt.Compiler>
-; V02 loc0 [V02,T38] ( 8, 13 ) int -> r14
+; V00 this [V00,T01] ( 24, 54 ) ref -> rbx this class-hnd single-def <System.Xml.Xsl.Xslt.XslAstAnalyzer>
+; V01 arg1 [V01,T15] ( 11, 17 ) ref -> r15 class-hnd single-def <System.Xml.Xsl.Xslt.Compiler>
+; V02 loc0 [V02,T21] ( 8, 14 ) int -> r14
;* V03 loc1 [V03 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.VarPar]>
;* V04 loc2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Xml.Xsl.Xslt.VarPar>
;* V05 loc3 [V05 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.VarPar]>
;* V06 loc4 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Xml.Xsl.Xslt.VarPar>
-;* V07 loc5 [V07 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.VarPar]>
-;* V08 loc6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Xml.Xsl.Xslt.VarPar>
-;* V09 loc7 [V09 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.VarPar]>
-;* V10 loc8 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Xml.Xsl.Xslt.VarPar>
-;* V11 loc9 [V11 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.ProtoTemplate]>
-;* V12 loc10 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Xml.Xsl.Xslt.ProtoTemplate>
-;* V13 loc11 [V13 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.ProtoTemplate]>
-;* V14 loc12 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Xml.Xsl.Xslt.ProtoTemplate>
-; V15 loc13 [V15,T05] ( 7, 38 ) ref -> [rbp-0x98] do-not-enreg[Z] class-hnd EH-live <System.Collections.Generic.IEnumerator`1[System.Xml.Xsl.Xslt.XslNode]>
-; V16 loc14 [V16,T03] ( 4, 40 ) ref -> rax class-hnd <System.Xml.Xsl.Xslt.XslNode>
+; V07 loc5 [V07 ] ( 7, 25 ) struct (24) [rbp-0x40] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.VarPar]>
+; V08 loc6 [V08,T18] ( 4, 16 ) ref -> r13 class-hnd exact <System.Xml.Xsl.Xslt.VarPar>
+; V09 loc7 [V09 ] ( 7, 13 ) struct (24) [rbp-0x58] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.VarPar]>
+; V10 loc8 [V10,T41] ( 2, 8 ) ref -> rsi class-hnd exact <System.Xml.Xsl.Xslt.VarPar>
+; V11 loc9 [V11 ] ( 7, 13 ) struct (24) [rbp-0x70] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.ProtoTemplate]>
+; V12 loc10 [V12,T25] ( 3, 12 ) ref -> r12 class-hnd <System.Xml.Xsl.Xslt.ProtoTemplate>
+; V13 loc11 [V13 ] ( 7, 13 ) struct (24) [rbp-0x88] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.ProtoTemplate]>
+; V14 loc12 [V14,T42] ( 2, 8 ) ref -> rdi class-hnd <System.Xml.Xsl.Xslt.ProtoTemplate>
+; V15 loc13 [V15,T03] ( 7, 44 ) ref -> [rbp-0xF0] do-not-enreg[Z] class-hnd EH-live <System.Collections.Generic.IEnumerator`1[System.Xml.Xsl.Xslt.XslNode]>
+; V16 loc14 [V16,T04] ( 4, 40 ) ref -> rax class-hnd <System.Xml.Xsl.Xslt.XslNode>
; V17 loc15 [V17,T06] ( 4, 32 ) ref -> rdi class-hnd exact <System.Xml.Xsl.Xslt.VarPar>
-; V18 loc16 [V18,T24] ( 5, 20 ) int -> r13
-; V19 loc17 [V19 ] ( 9, 18 ) struct (40) [rbp-0x50] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.Dictionary`2+Enumerator[System.Xml.Xsl.Xslt.Template,System.Xml.Xsl.Xslt.Stylesheet]>
+; V18 loc16 [V18,T16] ( 5, 17 ) int -> r13
+; V19 loc17 [V19 ] ( 9, 18 ) struct (40) [rbp-0xB0] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.Dictionary`2+Enumerator[System.Xml.Xsl.Xslt.Template,System.Xml.Xsl.Xslt.Stylesheet]>
;* V20 loc18 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Xml.Xsl.Xslt.Template,System.Xml.Xsl.Xslt.Stylesheet]>
-; V21 loc19 [V21,T15] ( 3, 24 ) ref -> r12 class-hnd exact <System.Xml.Xsl.Xslt.Stylesheet[]>
-;* V22 loc20 [V22,T90] ( 0, 0 ) int -> zero-ref
+; V21 loc19 [V21,T10] ( 3, 24 ) ref -> r12 class-hnd exact <System.Xml.Xsl.Xslt.Stylesheet[]>
+;* V22 loc20 [V22,T65] ( 0, 0 ) int -> zero-ref
;* V23 loc21 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Xml.Xsl.Xslt.Stylesheet>
;# V24 OutArgs [V24 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V25 tmp1 [V25,T79] ( 3, 6 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.Xml.Xsl.Xslt.VarPar]>
-; V26 tmp2 [V26,T62] ( 5, 10 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Xml.Xsl.Xslt.XslAstAnalyzer+XPathAnalyzer>
-; V27 tmp3 [V27,T80] ( 3, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Xml.Xsl.XPath.XPathParser`1[int]>
-; V28 tmp4 [V28,T84] ( 2, 4 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.Xml.Xsl.Xslt.VarPar]>
-; V29 tmp5 [V29,T81] ( 3, 6 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Stack`1[int]>
-; V30 tmp6 [V30,T85] ( 2, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.VarPar]>
+; V25 tmp1 [V25,T51] ( 3, 6 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.Xml.Xsl.Xslt.VarPar]>
+; V26 tmp2 [V26,T39] ( 5, 10 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Xml.Xsl.Xslt.XslAstAnalyzer+XPathAnalyzer>
+; V27 tmp3 [V27,T52] ( 3, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Xml.Xsl.XPath.XPathParser`1[int]>
+; V28 tmp4 [V28,T56] ( 2, 4 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.Xml.Xsl.Xslt.VarPar]>
+; V29 tmp5 [V29,T53] ( 3, 6 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Stack`1[int]>
+; V30 tmp6 [V30,T57] ( 2, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.VarPar]>
;* V31 tmp7 [V31 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.VarPar]>
-; V32 tmp8 [V32,T42] ( 3, 12 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.Xml.Xsl.Xslt.VarPar]>
-; V33 tmp9 [V33,T43] ( 3, 12 ) ref -> rcx class-hnd exact "Inlining Arg" <System.Xml.Xsl.Qil.QilName>
+; V32 tmp8 [V32,T26] ( 3, 12 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.Xml.Xsl.Xslt.VarPar]>
+; V33 tmp9 [V33,T27] ( 3, 12 ) ref -> rcx class-hnd exact "Inlining Arg" <System.Xml.Xsl.Qil.QilName>
;* V34 tmp10 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
-;* V35 tmp11 [V35,T68] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V35 tmp11 [V35,T45] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V36 tmp12 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.VarPar]>
-; V37 tmp13 [V37,T32] ( 2, 16 ) ref -> r14 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.VarPar]>
-;* V38 tmp14 [V38 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.VarPar]>
-; V39 tmp15 [V39,T44] ( 3, 12 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.Xml.Xsl.Xslt.VarPar]>
-; V40 tmp16 [V40,T45] ( 3, 12 ) ref -> rcx class-hnd exact "Inlining Arg" <System.Xml.Xsl.Qil.QilName>
-;* V41 tmp17 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
-;* V42 tmp18 [V42,T69] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V43 tmp19 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.VarPar]>
-; V44 tmp20 [V44,T33] ( 2, 16 ) ref -> r14 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.VarPar]>
-;* V45 tmp21 [V45 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.VarPar]>
-;* V46 tmp22 [V46,T70] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V47 tmp23 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.VarPar]>
-; V48 tmp24 [V48,T34] ( 2, 16 ) ref -> r14 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.VarPar]>
+;* V37 tmp13 [V37 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V38 tmp14 [V38,T28] ( 3, 12 ) ref -> rdx class-hnd "Inline stloc first use temp" <System.Xml.Xsl.Xslt.VarPar[]>
+; V39 tmp15 [V39,T19] ( 2, 16 ) ref -> r14 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.VarPar]>
+;* V40 tmp16 [V40 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.VarPar]>
+; V41 tmp17 [V41,T29] ( 3, 12 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.Xml.Xsl.Xslt.VarPar]>
+; V42 tmp18 [V42,T30] ( 3, 12 ) ref -> rcx class-hnd exact "Inlining Arg" <System.Xml.Xsl.Qil.QilName>
+;* V43 tmp19 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
+;* V44 tmp20 [V44,T46] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V45 tmp21 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.VarPar]>
+;* V46 tmp22 [V46 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V47 tmp23 [V47,T31] ( 3, 12 ) ref -> rdx class-hnd "Inline stloc first use temp" <System.Xml.Xsl.Xslt.VarPar[]>
+; V48 tmp24 [V48,T20] ( 2, 16 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.VarPar]>
;* V49 tmp25 [V49 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.VarPar]>
-;* V50 tmp26 [V50,T71] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V51 tmp27 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.VarPar]>
-; V52 tmp28 [V52,T35] ( 2, 16 ) ref -> r13 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.ProtoTemplate]>
+; V50 tmp26 [V50,T58] ( 2, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.VarPar]>
+;* V51 tmp27 [V51 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.VarPar]>
+; V52 tmp28 [V52,T59] ( 2, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.ProtoTemplate]>
;* V53 tmp29 [V53 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.ProtoTemplate]>
-;* V54 tmp30 [V54,T72] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V55 tmp31 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.ProtoTemplate]>
-; V56 tmp32 [V56,T36] ( 2, 16 ) ref -> r13 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.ProtoTemplate]>
-;* V57 tmp33 [V57 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.ProtoTemplate]>
-;* V58 tmp34 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Collections.Generic.IList`1[System.Xml.Xsl.Xslt.XslNode]>
-; V59 tmp35 [V59,T86] ( 2, 4 ) ref -> r11 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.XslNode]>
-; V60 tmp36 [V60,T66] ( 4, 8 ) ref -> r11
-;* V61 tmp37 [V61,T73] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V62 tmp38 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.ProtoTemplate]>
-; V63 tmp39 [V63,T82] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Xml.Xsl.Xslt.Template,System.Xml.Xsl.Xslt.Stylesheet]>
-; V64 tmp40 [V64,T89] ( 2, 4 ) struct (40) [rbp-0x78] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Dictionary`2+Enumerator[System.Xml.Xsl.Xslt.Template,System.Xml.Xsl.Xslt.Stylesheet]>
-; V65 tmp41 [V65,T31] ( 4, 17 ) ref -> r14 single-def "field V03._list (fldOffset=0x0)" P-INDEP
-; V66 tmp42 [V66,T39] ( 3, 8 ) ref -> r8 "field V03._current (fldOffset=0x8)" P-INDEP
-; V67 tmp43 [V67,T14] ( 6, 21 ) int -> r12 "field V03._index (fldOffset=0x10)" P-INDEP
-; V68 tmp44 [V68,T65] ( 2, 9 ) int -> r13 "field V03._version (fldOffset=0x14)" P-INDEP
-; V69 tmp45 [V69,T25] ( 4, 20 ) ref -> r14 single-def "field V05._list (fldOffset=0x0)" P-INDEP
-; V70 tmp46 [V70,T40] ( 3, 8 ) ref -> r8 "field V05._current (fldOffset=0x8)" P-INDEP
-; V71 tmp47 [V71,T09] ( 6, 24 ) int -> r12 "field V05._index (fldOffset=0x10)" P-INDEP
-; V72 tmp48 [V72,T57] ( 2, 12 ) int -> r13 "field V05._version (fldOffset=0x14)" P-INDEP
-; V73 tmp49 [V73,T26] ( 4, 20 ) ref -> r14 single-def "field V07._list (fldOffset=0x0)" P-INDEP
-; V74 tmp50 [V74,T37] ( 4, 10 ) ref -> [rbp-0xA0] spill-single-def "field V07._current (fldOffset=0x8)" P-INDEP
-; V75 tmp51 [V75,T10] ( 6, 24 ) int -> r12 "field V07._index (fldOffset=0x10)" P-INDEP
-; V76 tmp52 [V76,T58] ( 2, 12 ) int -> r13 "field V07._version (fldOffset=0x14)" P-INDEP
-; V77 tmp53 [V77,T27] ( 4, 20 ) ref -> r14 single-def "field V09._list (fldOffset=0x0)" P-INDEP
-; V78 tmp54 [V78,T63] ( 2, 6 ) ref -> rsi "field V09._current (fldOffset=0x8)" P-INDEP
-; V79 tmp55 [V79,T11] ( 6, 24 ) int -> r12 "field V09._index (fldOffset=0x10)" P-INDEP
-; V80 tmp56 [V80,T59] ( 2, 12 ) int -> r13 "field V09._version (fldOffset=0x14)" P-INDEP
-; V81 tmp57 [V81,T28] ( 4, 20 ) ref -> r13 single-def "field V11._list (fldOffset=0x0)" P-INDEP
-; V82 tmp58 [V82,T41] ( 3, 8 ) ref -> [rbp-0xA8] spill-single-def "field V11._current (fldOffset=0x8)" P-INDEP
-; V83 tmp59 [V83,T12] ( 6, 24 ) int -> [rbp-0x7C] "field V11._index (fldOffset=0x10)" P-INDEP
-; V84 tmp60 [V84,T60] ( 2, 12 ) int -> r12 "field V11._version (fldOffset=0x14)" P-INDEP
-; V85 tmp61 [V85,T29] ( 4, 20 ) ref -> r13 single-def "field V13._list (fldOffset=0x0)" P-INDEP
-; V86 tmp62 [V86,T64] ( 2, 6 ) ref -> r11 "field V13._current (fldOffset=0x8)" P-INDEP
-; V87 tmp63 [V87,T13] ( 6, 24 ) int -> [rbp-0x80] "field V13._index (fldOffset=0x10)" P-INDEP
-; V88 tmp64 [V88,T61] ( 2, 12 ) int -> r12 "field V13._version (fldOffset=0x14)" P-INDEP
-; V89 tmp65 [V89,T30] ( 2, 20 ) ref -> r13 "field V20.key (fldOffset=0x0)" P-INDEP
-; V90 tmp66 [V90,T67] ( 2, 8 ) ref -> rsi "field V20.value (fldOffset=0x8)" P-INDEP
-; V91 tmp67 [V91,T96] ( 3, 3 ) ref -> r14 single-def "field V31._list (fldOffset=0x0)" P-INDEP
-;* V92 tmp68 [V92 ] ( 0, 0 ) ref -> zero-ref single-def "field V31._current (fldOffset=0x8)" P-INDEP
-;* V93 tmp69 [V93,T100] ( 0, 0 ) int -> zero-ref "field V31._index (fldOffset=0x10)" P-INDEP
-; V94 tmp70 [V94,T98] ( 2, 2 ) int -> r13 "field V31._version (fldOffset=0x14)" P-INDEP
-; V95 tmp71 [V95,T46] ( 3, 12 ) ref -> r14 single-def "field V38._list (fldOffset=0x0)" P-INDEP
-;* V96 tmp72 [V96 ] ( 0, 0 ) ref -> zero-ref single-def "field V38._current (fldOffset=0x8)" P-INDEP
-;* V97 tmp73 [V97,T91] ( 0, 0 ) int -> zero-ref "field V38._index (fldOffset=0x10)" P-INDEP
-; V98 tmp74 [V98,T74] ( 2, 8 ) int -> r13 "field V38._version (fldOffset=0x14)" P-INDEP
-; V99 tmp75 [V99,T47] ( 3, 12 ) ref -> r14 single-def "field V45._list (fldOffset=0x0)" P-INDEP
-;* V100 tmp76 [V100 ] ( 0, 0 ) ref -> zero-ref single-def "field V45._current (fldOffset=0x8)" P-INDEP
-;* V101 tmp77 [V101,T92] ( 0, 0 ) int -> zero-ref "field V45._index (fldOffset=0x10)" P-INDEP
-; V102 tmp78 [V102,T75] ( 2, 8 ) int -> r13 "field V45._version (fldOffset=0x14)" P-INDEP
-; V103 tmp79 [V103,T48] ( 3, 12 ) ref -> r14 single-def "field V49._list (fldOffset=0x0)" P-INDEP
-;* V104 tmp80 [V104 ] ( 0, 0 ) ref -> zero-ref single-def "field V49._current (fldOffset=0x8)" P-INDEP
-;* V105 tmp81 [V105,T93] ( 0, 0 ) int -> zero-ref "field V49._index (fldOffset=0x10)" P-INDEP
-; V106 tmp82 [V106,T76] ( 2, 8 ) int -> r13 "field V49._version (fldOffset=0x14)" P-INDEP
-; V107 tmp83 [V107,T49] ( 3, 12 ) ref -> r13 single-def "field V53._list (fldOffset=0x0)" P-INDEP
-;* V108 tmp84 [V108 ] ( 0, 0 ) ref -> zero-ref single-def "field V53._current (fldOffset=0x8)" P-INDEP
-;* V109 tmp85 [V109,T94] ( 0, 0 ) int -> zero-ref "field V53._index (fldOffset=0x10)" P-INDEP
-; V110 tmp86 [V110,T77] ( 2, 8 ) int -> r12 "field V53._version (fldOffset=0x14)" P-INDEP
-; V111 tmp87 [V111,T50] ( 3, 12 ) ref -> r13 single-def "field V57._list (fldOffset=0x0)" P-INDEP
-;* V112 tmp88 [V112 ] ( 0, 0 ) ref -> zero-ref single-def "field V57._current (fldOffset=0x8)" P-INDEP
-;* V113 tmp89 [V113,T95] ( 0, 0 ) int -> zero-ref "field V57._index (fldOffset=0x10)" P-INDEP
-; V114 tmp90 [V114,T78] ( 2, 8 ) int -> r12 "field V57._version (fldOffset=0x14)" P-INDEP
-;* V115 tmp91 [V115 ] ( 0, 0 ) ref -> zero-ref single-def "V64.[000..008)"
-; V116 tmp92 [V116,T99] ( 2, 2 ) int -> rsi "V64.[008..012)"
-;* V117 tmp93 [V117 ] ( 0, 0 ) int -> zero-ref "V64.[012..016)"
-;* V118 tmp94 [V118 ] ( 0, 0 ) int -> zero-ref "V64.[016..020)"
-; V119 tmp95 [V119,T16] ( 3, 24 ) ref -> rdx "arr expr"
-; V120 tmp96 [V120,T17] ( 3, 24 ) ref -> rdx "arr expr"
-; V121 tmp97 [V121,T18] ( 3, 24 ) ref -> rdi "arr expr"
-; V122 tmp98 [V122,T19] ( 3, 24 ) ref -> rdi "arr expr"
-; V123 tmp99 [V123,T20] ( 3, 24 ) ref -> rsi "arr expr"
-; V124 tmp100 [V124,T21] ( 3, 24 ) ref -> r11 "arr expr"
-; V125 tmp101 [V125,T83] ( 3, 6 ) ref -> rdi single-def "arr expr"
-; V126 tmp102 [V126,T87] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
-; V127 tmp103 [V127,T88] ( 2, 4 ) ref -> rax single-def "argument with side effect"
-; V128 PSPSym [V128,T101] ( 1, 1 ) long -> [rbp-0xB0] do-not-enreg[V] "PSPSym"
-; V129 cse0 [V129,T22] ( 3, 24 ) int -> r11 "CSE #12: moderate"
-; V130 cse1 [V130,T04] ( 3, 40 ) int -> rdi "CSE #11: aggressive"
-; V131 cse2 [V131,T51] ( 2, 8 ) int -> rdx "CSE #02: conservative"
-; V132 cse3 [V132,T52] ( 2, 8 ) int -> rdx "CSE #04: conservative"
-; V133 cse4 [V133,T53] ( 2, 8 ) int -> rdi "CSE #06: conservative"
-; V134 cse5 [V134,T54] ( 2, 8 ) int -> rdi "CSE #08: conservative"
-; V135 cse6 [V135,T55] ( 2, 8 ) int -> rsi "CSE #10: conservative"
-; V136 cse7 [V136,T56] ( 2, 8 ) int -> r11 "CSE #14: conservative"
-; V137 cse8 [V137,T97] ( 3, 3 ) ref -> rdi "CSE #17: conservative"
-; V138 cse9 [V138,T23] ( 3, 24 ) int -> [rbp-0x84] spill-single-def "CSE #15: moderate"
-; V139 rat0 [V139,T00] ( 5, 68 ) long -> [rbp-0x90] "Widened IV V22"
-; V140 rat1 [V140,T02] ( 3, 48 ) ref -> rdi "replacement local"
-; V141 rat2 [V141,T07] ( 3, 32 ) long -> rcx "CSE for expectedClsNode"
+; V54 tmp30 [V54,T60] ( 2, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.ProtoTemplate]>
+;* V55 tmp31 [V55 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.ProtoTemplate]>
+;* V56 tmp32 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Collections.Generic.IList`1[System.Xml.Xsl.Xslt.XslNode]>
+; V57 tmp33 [V57,T43] ( 2, 8 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.XslNode]>
+; V58 tmp34 [V58,T22] ( 4, 14 ) ref -> rdi
+; V59 tmp35 [V59,T54] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Xml.Xsl.Xslt.Template,System.Xml.Xsl.Xslt.Stylesheet]>
+; V60 tmp36 [V60,T63] ( 2, 4 ) struct (40) [rbp-0xD8] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Dictionary`2+Enumerator[System.Xml.Xsl.Xslt.Template,System.Xml.Xsl.Xslt.Stylesheet]>
+; V61 tmp37 [V61,T17] ( 4, 17 ) ref -> r14 single-def "field V03._list (fldOffset=0x0)" P-INDEP
+; V62 tmp38 [V62,T23] ( 3, 8 ) ref -> r8 "field V03._current (fldOffset=0x8)" P-INDEP
+; V63 tmp39 [V63,T09] ( 6, 21 ) int -> r12 "field V03._index (fldOffset=0x10)" P-INDEP
+; V64 tmp40 [V64,T40] ( 2, 9 ) int -> r13 "field V03._version (fldOffset=0x14)" P-INDEP
+; V65 tmp41 [V65,T13] ( 4, 20 ) ref -> r14 single-def "field V05._list (fldOffset=0x0)" P-INDEP
+; V66 tmp42 [V66,T24] ( 3, 8 ) ref -> r8 "field V05._current (fldOffset=0x8)" P-INDEP
+; V67 tmp43 [V67,T08] ( 6, 24 ) int -> r12 "field V05._index (fldOffset=0x10)" P-INDEP
+; V68 tmp44 [V68,T36] ( 2, 12 ) int -> r13 "field V05._version (fldOffset=0x14)" P-INDEP
+; V69 tmp45 [V69 ] ( 3, 9 ) ref -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V07._list (fldOffset=0x0)" P-DEP
+; V70 tmp46 [V70 ] ( 4, 13 ) ref -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V07._current (fldOffset=0x8)" P-DEP
+; V71 tmp47 [V71 ] ( 3, 9 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V07._index (fldOffset=0x10)" P-DEP
+; V72 tmp48 [V72 ] ( 3, 9 ) int -> [rbp-0x2C] do-not-enreg[X] addr-exposed "field V07._version (fldOffset=0x14)" P-DEP
+; V73 tmp49 [V73 ] ( 3, 6 ) ref -> [rbp-0x58] do-not-enreg[X] addr-exposed "field V09._list (fldOffset=0x0)" P-DEP
+; V74 tmp50 [V74 ] ( 4, 10 ) ref -> [rbp-0x50] do-not-enreg[X] addr-exposed "field V09._current (fldOffset=0x8)" P-DEP
+; V75 tmp51 [V75 ] ( 3, 6 ) int -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V09._index (fldOffset=0x10)" P-DEP
+; V76 tmp52 [V76 ] ( 3, 6 ) int -> [rbp-0x44] do-not-enreg[X] addr-exposed "field V09._version (fldOffset=0x14)" P-DEP
+; V77 tmp53 [V77 ] ( 3, 6 ) ref -> [rbp-0x70] do-not-enreg[X] addr-exposed "field V11._list (fldOffset=0x0)" P-DEP
+; V78 tmp54 [V78 ] ( 4, 10 ) ref -> [rbp-0x68] do-not-enreg[X] addr-exposed "field V11._current (fldOffset=0x8)" P-DEP
+; V79 tmp55 [V79 ] ( 3, 6 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed "field V11._index (fldOffset=0x10)" P-DEP
+; V80 tmp56 [V80 ] ( 3, 6 ) int -> [rbp-0x5C] do-not-enreg[X] addr-exposed "field V11._version (fldOffset=0x14)" P-DEP
+; V81 tmp57 [V81 ] ( 3, 6 ) ref -> [rbp-0x88] do-not-enreg[X] addr-exposed "field V13._list (fldOffset=0x0)" P-DEP
+; V82 tmp58 [V82 ] ( 4, 10 ) ref -> [rbp-0x80] do-not-enreg[X] addr-exposed "field V13._current (fldOffset=0x8)" P-DEP
+; V83 tmp59 [V83 ] ( 3, 6 ) int -> [rbp-0x78] do-not-enreg[X] addr-exposed "field V13._index (fldOffset=0x10)" P-DEP
+; V84 tmp60 [V84 ] ( 3, 6 ) int -> [rbp-0x74] do-not-enreg[X] addr-exposed "field V13._version (fldOffset=0x14)" P-DEP
+; V85 tmp61 [V85,T14] ( 2, 20 ) ref -> r13 "field V20.key (fldOffset=0x0)" P-INDEP
+; V86 tmp62 [V86,T44] ( 2, 8 ) ref -> rsi "field V20.value (fldOffset=0x8)" P-INDEP
+; V87 tmp63 [V87,T68] ( 3, 3 ) ref -> r14 single-def "field V31._list (fldOffset=0x0)" P-INDEP
+;* V88 tmp64 [V88 ] ( 0, 0 ) ref -> zero-ref single-def "field V31._current (fldOffset=0x8)" P-INDEP
+;* V89 tmp65 [V89,T81] ( 0, 0 ) int -> zero-ref "field V31._index (fldOffset=0x10)" P-INDEP
+; V90 tmp66 [V90,T73] ( 2, 2 ) int -> r13 "field V31._version (fldOffset=0x14)" P-INDEP
+; V91 tmp67 [V91,T32] ( 3, 12 ) ref -> r14 single-def "field V40._list (fldOffset=0x0)" P-INDEP
+;* V92 tmp68 [V92 ] ( 0, 0 ) ref -> zero-ref single-def "field V40._current (fldOffset=0x8)" P-INDEP
+;* V93 tmp69 [V93,T66] ( 0, 0 ) int -> zero-ref "field V40._index (fldOffset=0x10)" P-INDEP
+; V94 tmp70 [V94,T47] ( 2, 8 ) int -> r13 "field V40._version (fldOffset=0x14)" P-INDEP
+; V95 tmp71 [V95,T33] ( 3, 12 ) ref -> rdi single-def "field V49._list (fldOffset=0x0)" P-INDEP
+;* V96 tmp72 [V96,T64] ( 0, 0 ) ref -> zero-ref single-def "field V49._current (fldOffset=0x8)" P-INDEP
+;* V97 tmp73 [V97,T67] ( 0, 0 ) int -> zero-ref "field V49._index (fldOffset=0x10)" P-INDEP
+; V98 tmp74 [V98,T48] ( 2, 8 ) int -> rsi "field V49._version (fldOffset=0x14)" P-INDEP
+; V99 tmp75 [V99,T69] ( 3, 3 ) ref -> rdi single-def "field V51._list (fldOffset=0x0)" P-INDEP
+;* V100 tmp76 [V100,T78] ( 0, 0 ) ref -> zero-ref single-def "field V51._current (fldOffset=0x8)" P-INDEP
+;* V101 tmp77 [V101,T82] ( 0, 0 ) int -> zero-ref "field V51._index (fldOffset=0x10)" P-INDEP
+; V102 tmp78 [V102,T74] ( 2, 2 ) int -> rsi "field V51._version (fldOffset=0x14)" P-INDEP
+; V103 tmp79 [V103,T70] ( 3, 3 ) ref -> rdi single-def "field V53._list (fldOffset=0x0)" P-INDEP
+;* V104 tmp80 [V104,T79] ( 0, 0 ) ref -> zero-ref single-def "field V53._current (fldOffset=0x8)" P-INDEP
+;* V105 tmp81 [V105,T83] ( 0, 0 ) int -> zero-ref "field V53._index (fldOffset=0x10)" P-INDEP
+; V106 tmp82 [V106,T75] ( 2, 2 ) int -> rsi "field V53._version (fldOffset=0x14)" P-INDEP
+; V107 tmp83 [V107,T71] ( 3, 3 ) ref -> rdi single-def "field V55._list (fldOffset=0x0)" P-INDEP
+;* V108 tmp84 [V108,T80] ( 0, 0 ) ref -> zero-ref single-def "field V55._current (fldOffset=0x8)" P-INDEP
+;* V109 tmp85 [V109,T84] ( 0, 0 ) int -> zero-ref "field V55._index (fldOffset=0x10)" P-INDEP
+; V110 tmp86 [V110,T76] ( 2, 2 ) int -> rsi "field V55._version (fldOffset=0x14)" P-INDEP
+;* V111 tmp87 [V111 ] ( 0, 0 ) ref -> zero-ref single-def "V60.[000..008)"
+; V112 tmp88 [V112,T77] ( 2, 2 ) int -> rsi "V60.[008..012)"
+;* V113 tmp89 [V113 ] ( 0, 0 ) int -> zero-ref "V60.[012..016)"
+;* V114 tmp90 [V114 ] ( 0, 0 ) int -> zero-ref "V60.[016..020)"
+; V115 tmp91 [V115,T55] ( 3, 6 ) ref -> rdi single-def "arr expr"
+; V116 tmp92 [V116,T61] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
+; V117 tmp93 [V117,T62] ( 2, 4 ) ref -> rax single-def "argument with side effect"
+; V118 PSPSym [V118,T85] ( 1, 1 ) long -> [rbp-0x100] do-not-enreg[V] "PSPSym"
+; V119 cse0 [V119,T11] ( 3, 24 ) int -> r11 "CSE #10: moderate"
+; V120 cse1 [V120,T05] ( 3, 40 ) int -> rdi "CSE #09: aggressive"
+; V121 cse2 [V121,T34] ( 2, 8 ) int -> rdx "CSE #03: moderate"
+; V122 cse3 [V122,T35] ( 2, 8 ) int -> rdx "CSE #06: moderate"
+; V123 cse4 [V123,T72] ( 3, 3 ) ref -> rdi "CSE #13: conservative"
+; V124 cse5 [V124,T12] ( 3, 24 ) int -> [rbp-0xDC] spill-single-def "CSE #11: moderate"
+; V125 cse6 [V125,T37] ( 5, 11 ) long -> r14 "CSE #07: moderate"
+; V126 cse7 [V126,T38] ( 5, 11 ) long -> r13 "CSE #08: moderate"
+; V127 cse8 [V127,T49] ( 2, 8 ) int -> rcx "CSE #01: moderate"
+; V128 cse9 [V128,T50] ( 2, 8 ) int -> rcx "CSE #04: moderate"
+; V129 rat0 [V129,T00] ( 5, 68 ) long -> [rbp-0xE8] "Widened IV V22"
+; V130 rat1 [V130,T02] ( 3, 48 ) ref -> rdi "replacement local"
+; V131 rat2 [V131,T07] ( 3, 32 ) long -> rcx "CSE for expectedClsNode"
;
-; Lcl frame size = 136
+; Lcl frame size = 216
G_M43812_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 136
- lea rbp, [rsp+0xB0]
+ sub rsp, 216
+ lea rbp, [rsp+0x100]
xor eax, eax
- mov qword ptr [rbp-0x78], rax
+ mov qword ptr [rbp-0xD8], rax
vxorps xmm8, xmm8, xmm8
+ vmovdqu ymmword ptr [rbp-0xD0], ymm8
+ vmovdqu ymmword ptr [rbp-0xB0], ymm8
+ vmovdqu ymmword ptr [rbp-0x90], ymm8
vmovdqu ymmword ptr [rbp-0x70], ymm8
vmovdqu ymmword ptr [rbp-0x50], ymm8
mov qword ptr [rbp-0x30], rax
- mov qword ptr [rbp-0xB0], rsp
+ mov qword ptr [rbp-0x100], rsp
mov rbx, rdi
mov r15, rsi
- ;; size=63 bbWeight=1 PerfScore 14.83
+ ;; size=90 bbWeight=1 PerfScore 20.83
G_M43812_IG02:
lea rdi, bword ptr [rbx+0x10]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.Xml.Xsl.Xslt.VarPar]
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.__Canon]:.ctor():this
call [rax]System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.__Canon]:.ctor():this
lea rdi, bword ptr [rbx+0x08]
mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Xml.Xsl.Xslt.XslAstAnalyzer+XPathAnalyzer
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov r13, gword ptr [rbx+0x08]
mov rdi, 0xD1FFAB1E ; System.Xml.Xsl.XPath.XPathParser`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.Stack`1[int]
call CORINFO_HELP_NEWSFAST
mov rdi, 0xD1FFAB1E ; 'System.Int32[]'
mov gword ptr [rax+0x08], rdi
lea rdi, bword ptr [r12+0x18]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r14+0x08]
mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r14+0x18]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r14+0x10]
mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [rbx+0x18]
mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
mov r14, gword ptr [r15+0x48]
mov r13d, dword ptr [r14+0x14]
xor r12d, r12d
jmp SHORT G_M43812_IG04
;; size=200 bbWeight=1 PerfScore 31.00
G_M43812_IG03:
mov rdi, gword ptr [rbx+0x08]
mov rcx, gword ptr [r8+0x18]
cmp byte ptr [rdi], dil
mov rdx, gword ptr [rcx+0x30]
mov rcx, gword ptr [rcx+0x38]
mov esi, 64
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.__Canon]:AddRecord(int,System.String,System.String,System.__Canon):this
call [rax]System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.__Canon]:AddRecord(int,System.String,System.String,System.__Canon):this
;; size=36 bbWeight=2 PerfScore 29.00
G_M43812_IG04:
cmp r13d, dword ptr [r14+0x14]
- jne G_M43812_IG55
+ jne G_M43812_IG52
;; size=10 bbWeight=8 PerfScore 32.00
G_M43812_IG05:
mov edx, dword ptr [r14+0x10]
cmp r12d, edx
jae SHORT G_M43812_IG06
mov rdx, gword ptr [r14+0x08]
- cmp r12d, dword ptr [rdx+0x08]
- jae G_M43812_IG54
+ mov ecx, dword ptr [rdx+0x08]
+ cmp ecx, r12d
+ jbe SHORT G_M43812_IG06
mov ecx, r12d
mov r8, gword ptr [rdx+8*rcx+0x10]
inc r12d
jmp SHORT G_M43812_IG03
- ;; size=36 bbWeight=4 PerfScore 55.00
+ ;; size=34 bbWeight=4 PerfScore 52.00
G_M43812_IG06:
mov r14, gword ptr [r15+0x50]
mov r13d, dword ptr [r14+0x14]
xor r12d, r12d
jmp SHORT G_M43812_IG08
;; size=13 bbWeight=4 PerfScore 25.00
G_M43812_IG07:
mov rdi, gword ptr [rbx+0x08]
mov rcx, gword ptr [r8+0x18]
cmp byte ptr [rdi], dil
mov rdx, gword ptr [rcx+0x30]
mov rcx, gword ptr [rcx+0x38]
mov esi, 64
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.__Canon]:AddRecord(int,System.String,System.String,System.__Canon):this
call [rax]System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.__Canon]:AddRecord(int,System.String,System.String,System.__Canon):this
;; size=36 bbWeight=2 PerfScore 29.00
G_M43812_IG08:
cmp r13d, dword ptr [r14+0x14]
- jne G_M43812_IG55
+ jne G_M43812_IG52
;; size=10 bbWeight=8 PerfScore 32.00
G_M43812_IG09:
mov edx, dword ptr [r14+0x10]
cmp r12d, edx
jae SHORT G_M43812_IG10
mov rdx, gword ptr [r14+0x08]
- cmp r12d, dword ptr [rdx+0x08]
- jae G_M43812_IG54
+ mov ecx, dword ptr [rdx+0x08]
+ cmp ecx, r12d
+ jbe SHORT G_M43812_IG10
mov ecx, r12d
mov r8, gword ptr [rdx+8*rcx+0x10]
inc r12d
jmp SHORT G_M43812_IG07
- ;; size=36 bbWeight=4 PerfScore 55.00
+ ;; size=34 bbWeight=4 PerfScore 52.00
G_M43812_IG10:
- mov r14, gword ptr [r15+0x48]
- mov r13d, dword ptr [r14+0x14]
- xor r12d, r12d
- jmp SHORT G_M43812_IG12
- ;; size=13 bbWeight=4 PerfScore 25.00
+ mov rdi, gword ptr [r15+0x48]
+ mov esi, dword ptr [rdi+0x14]
+ mov gword ptr [rbp-0x40], rdi
+ xor rdi, rdi
+ mov gword ptr [rbp-0x38], rdi
+ ;; size=17 bbWeight=4 PerfScore 25.00
G_M43812_IG11:
- mov rdi, rbx
- mov rsi, rax
- mov rcx, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XslAstAnalyzer:Visit(System.Xml.Xsl.Xslt.XslNode):int:this
- call [rcx]System.Xml.Xsl.Xslt.XslAstAnalyzer:Visit(System.Xml.Xsl.Xslt.XslNode):int:this
- mov rdi, gword ptr [rbp-0xA0]
- or dword ptr [rdi+0x38], 63
- ;; size=29 bbWeight=2 PerfScore 15.50
+ mov dword ptr [rbp-0x30], edi
+ mov dword ptr [rbp-0x2C], esi
+ lea rdi, [rbp-0x40]
+ mov r14, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.VarPar]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M43812_IG13
+ ;; size=39 bbWeight=4 PerfScore 30.00
G_M43812_IG12:
- cmp r13d, dword ptr [r14+0x14]
- jne G_M43812_IG55
- ;; size=10 bbWeight=8 PerfScore 32.00
+ mov r13, gword ptr [rbp-0x38]
+ mov rdi, rbx
+ mov rsi, r13
+ mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XslAstAnalyzer:Visit(System.Xml.Xsl.Xslt.XslNode):int:this
+ call [rax]System.Xml.Xsl.Xslt.XslAstAnalyzer:Visit(System.Xml.Xsl.Xslt.XslNode):int:this
+ or dword ptr [r13+0x38], 63
+ lea rdi, [rbp-0x40]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M43812_IG12
+ ;; size=50 bbWeight=4 PerfScore 52.00
G_M43812_IG13:
- mov edi, dword ptr [r14+0x10]
- cmp r12d, edi
- jae SHORT G_M43812_IG14
- mov rdi, gword ptr [r14+0x08]
- cmp r12d, dword ptr [rdi+0x08]
- jae G_M43812_IG54
- mov esi, r12d
- mov rax, gword ptr [rdi+8*rsi+0x10]
- mov gword ptr [rbp-0xA0], rax
- inc r12d
- jmp SHORT G_M43812_IG11
- ;; size=43 bbWeight=4 PerfScore 59.00
+ mov rdi, gword ptr [r15+0x50]
+ mov esi, dword ptr [rdi+0x14]
+ mov gword ptr [rbp-0x58], rdi
+ xor rdi, rdi
+ mov gword ptr [rbp-0x50], rdi
+ ;; size=17 bbWeight=1 PerfScore 6.25
G_M43812_IG14:
- mov r14, gword ptr [r15+0x50]
- mov r13d, dword ptr [r14+0x14]
- xor r12d, r12d
- jmp SHORT G_M43812_IG16
- ;; size=13 bbWeight=4 PerfScore 25.00
+ mov dword ptr [rbp-0x48], edi
+ mov dword ptr [rbp-0x44], esi
+ lea rdi, [rbp-0x58]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M43812_IG16
+ ;; size=29 bbWeight=1 PerfScore 7.25
G_M43812_IG15:
+ mov rsi, gword ptr [rbp-0x50]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XslAstAnalyzer:Visit(System.Xml.Xsl.Xslt.XslNode):int:this
call [rax]System.Xml.Xsl.Xslt.XslAstAnalyzer:Visit(System.Xml.Xsl.Xslt.XslNode):int:this
- ;; size=15 bbWeight=2 PerfScore 7.00
+ lea rdi, [rbp-0x58]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M43812_IG15
+ ;; size=42 bbWeight=4 PerfScore 39.00
G_M43812_IG16:
- cmp r13d, dword ptr [r14+0x14]
- jne G_M43812_IG55
- ;; size=10 bbWeight=8 PerfScore 32.00
+ xor r14d, r14d
+ mov rdi, gword ptr [r15+0x70]
+ mov esi, dword ptr [rdi+0x14]
+ mov gword ptr [rbp-0x70], rdi
+ xor rdi, rdi
+ mov gword ptr [rbp-0x68], rdi
+ ;; size=20 bbWeight=1 PerfScore 6.50
G_M43812_IG17:
- mov edi, dword ptr [r14+0x10]
- cmp r12d, edi
- jae SHORT G_M43812_IG18
- mov rdi, gword ptr [r14+0x08]
- cmp r12d, dword ptr [rdi+0x08]
- jae G_M43812_IG54
- mov esi, r12d
- mov rsi, gword ptr [rdi+8*rsi+0x10]
- inc r12d
- jmp SHORT G_M43812_IG15
- ;; size=36 bbWeight=4 PerfScore 55.00
+ mov dword ptr [rbp-0x60], edi
+ mov dword ptr [rbp-0x5C], esi
+ lea rdi, [rbp-0x70]
+ mov r13, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Xslt.ProtoTemplate]
+ mov rsi, r13
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M43812_IG19
+ ;; size=39 bbWeight=1 PerfScore 7.50
G_M43812_IG18:
- xor r14d, r14d
- mov r13, gword ptr [r15+0x70]
- mov r12d, dword ptr [r13+0x14]
- xor edi, edi
- jmp SHORT G_M43812_IG20
- ;; size=15 bbWeight=4 PerfScore 26.00
-G_M43812_IG19:
+ mov r12, gword ptr [rbp-0x68]
lea rdi, bword ptr [rbx+0x20]
- mov rsi, rax
+ mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
mov rdi, rbx
- mov rsi, gword ptr [rbp-0xA8]
+ mov rsi, r12
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XslAstAnalyzer:Visit(System.Xml.Xsl.Xslt.XslNode):int:this
call [rax]System.Xml.Xsl.Xslt.XslAstAnalyzer:Visit(System.Xml.Xsl.Xslt.XslNode):int:this
or r14d, eax
- mov edi, dword ptr [rbp-0x7C]
- ;; size=40 bbWeight=2 PerfScore 15.00
+ lea rdi, [rbp-0x70]
+ mov rsi, r13
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M43812_IG18
+ ;; size=60 bbWeight=4 PerfScore 48.00
+G_M43812_IG19:
+ mov rdi, gword ptr [r15+0x70]
+ mov esi, dword ptr [rdi+0x14]
+ mov gword ptr [rbp-0x88], rdi
+ xor rdi, rdi
+ mov gword ptr [rbp-0x80], rdi
+ ;; size=20 bbWeight=1 PerfScore 6.25
G_M43812_IG20:
- cmp r12d, dword ptr [r13+0x14]
- jne G_M43812_IG55
- ;; size=10 bbWeight=8 PerfScore 32.00
+ mov dword ptr [rbp-0x78], edi
+ mov dword ptr [rbp-0x74], esi
+ lea rdi, [rbp-0x88]
+ mov rsi, r13
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je G_M43812_IG31
+ ;; size=36 bbWeight=1 PerfScore 7.25
G_M43812_IG21:
- mov esi, dword ptr [r13+0x10]
- cmp edi, esi
- jae SHORT G_M43812_IG22
- mov rsi, gword ptr [r13+0x08]
- cmp edi, dword ptr [rsi+0x08]
- jae G_M43812_IG54
- mov eax, edi
- mov rax, gword ptr [rsi+8*rax+0x10]
- mov gword ptr [rbp-0xA8], rax
- inc edi
- mov dword ptr [rbp-0x7C], edi
- jmp SHORT G_M43812_IG19
- ;; size=42 bbWeight=4 PerfScore 63.00
+ mov rdi, gword ptr [rbp-0x80]
+ mov rdi, gword ptr [rdi+0x28]
+ test rdi, rdi
+ jne SHORT G_M43812_IG23
+ ;; size=13 bbWeight=4 PerfScore 17.00
G_M43812_IG22:
- mov r13, gword ptr [r15+0x70]
- mov r12d, dword ptr [r13+0x14]
- xor edi, edi
- jmp G_M43812_IG32
- ;; size=15 bbWeight=4 PerfScore 25.00
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov rdi, gword ptr [rdi]
+ ;; size=13 bbWeight=2 PerfScore 4.50
G_M43812_IG23:
- mov r11, gword ptr [r11+0x28]
- test r11, r11
- jne SHORT G_M43812_IG24
- mov r11, 0xD1FFAB1E ; const ptr
- mov r11, gword ptr [r11]
- ;; size=22 bbWeight=2 PerfScore 11.00
-G_M43812_IG24:
- mov rdi, r11
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEnumerable`1[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.__Canon]:this
call [r11]System.Collections.Generic.IEnumerable`1[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.__Canon]:this
- mov gword ptr [rbp-0x98], rax
- ;; size=23 bbWeight=2 PerfScore 9.00
-G_M43812_IG25:
- mov rdi, gword ptr [rbp-0x98]
+ mov gword ptr [rbp-0xF0], rax
+ ;; size=20 bbWeight=4 PerfScore 17.00
+G_M43812_IG24:
+ mov rdi, gword ptr [rbp-0xF0]
mov r11, 0xD1FFAB1E ; function address
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
- je SHORT G_M43812_IG31
- ;; size=24 bbWeight=2 PerfScore 11.00
-G_M43812_IG26:
- mov rdi, gword ptr [rbp-0x98]
+ je SHORT G_M43812_IG30
+ ;; size=24 bbWeight=4 PerfScore 22.00
+G_M43812_IG25:
+ mov rdi, gword ptr [rbp-0xF0]
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this
call [r11]System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this
mov edi, dword ptr [rax+0x30]
cmp edi, 26
- je SHORT G_M43812_IG30
+ je SHORT G_M43812_IG29
;; size=28 bbWeight=16 PerfScore 120.00
-G_M43812_IG27:
+G_M43812_IG26:
cmp edi, 22
- jne SHORT G_M43812_IG31
+ jne SHORT G_M43812_IG30
mov rdi, rax
mov rcx, 0xD1FFAB1E ; System.Xml.Xsl.Xslt.VarPar
cmp qword ptr [rdi], rcx
- je SHORT G_M43812_IG29
+ je SHORT G_M43812_IG28
;; size=23 bbWeight=8 PerfScore 46.00
-G_M43812_IG28:
+G_M43812_IG27:
mov rsi, rax
mov rdi, rcx
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
call [rax]CORINFO_HELP_CHKCASTCLASS
int3
;; size=19 bbWeight=0 PerfScore 0.00
-G_M43812_IG29:
+G_M43812_IG28:
mov r11d, dword ptr [rdi+0x38]
test r11d, 0x2000
- je SHORT G_M43812_IG30
+ je SHORT G_M43812_IG29
or r11d, dword ptr [rdi+0x3C]
mov dword ptr [rdi+0x38], r11d
;; size=21 bbWeight=8 PerfScore 58.00
-G_M43812_IG30:
- mov rdi, gword ptr [rbp-0x98]
+G_M43812_IG29:
+ mov rdi, gword ptr [rbp-0xF0]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
- jne SHORT G_M43812_IG26
+ jne SHORT G_M43812_IG25
;; size=24 bbWeight=16 PerfScore 88.00
-G_M43812_IG31:
- mov rdi, gword ptr [rbp-0x98]
+G_M43812_IG30:
+ mov rdi, gword ptr [rbp-0xF0]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
- mov edi, dword ptr [rbp-0x80]
- ;; size=23 bbWeight=2 PerfScore 10.50
-G_M43812_IG32:
- cmp r12d, dword ptr [r13+0x14]
- jne G_M43812_IG55
- ;; size=10 bbWeight=8 PerfScore 32.00
-G_M43812_IG33:
- mov r11d, dword ptr [r13+0x10]
- cmp edi, r11d
- jae SHORT G_M43812_IG34
- mov r11, gword ptr [r13+0x08]
- cmp edi, dword ptr [r11+0x08]
- jae G_M43812_IG54
- mov eax, edi
- mov r11, gword ptr [r11+8*rax+0x10]
- inc edi
- mov dword ptr [rbp-0x80], edi
- jmp G_M43812_IG23
- ;; size=40 bbWeight=4 PerfScore 59.00
-G_M43812_IG34:
+ lea rdi, [rbp-0x88]
+ mov rsi, r13
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne G_M43812_IG21
+ ;; size=50 bbWeight=4 PerfScore 38.00
+G_M43812_IG31:
mov r13d, 32
- ;; size=6 bbWeight=4 PerfScore 1.00
-G_M43812_IG35:
+ ;; size=6 bbWeight=1 PerfScore 0.25
+G_M43812_IG32:
mov rdi, gword ptr [rbx+0x50]
mov esi, r13d
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XslAstAnalyzer+Graph`1[System.__Canon]:PropagateFlag(int):this
cmp dword ptr [rdi], edi
call [rax]System.Xml.Xsl.Xslt.XslAstAnalyzer+Graph`1[System.__Canon]:PropagateFlag(int):this
sar r13d, 1
- jne SHORT G_M43812_IG35
+ jne SHORT G_M43812_IG32
;; size=26 bbWeight=4 PerfScore 40.00
-G_M43812_IG36:
+G_M43812_IG33:
xor rdi, rdi
mov gword ptr [rbx+0x50], rdi
mov rdi, gword ptr [rbx+0x40]
mov esi, dword ptr [rdi+0x44]
vxorps xmm0, xmm0, xmm0
- vmovdqu xmmword ptr [rbp-0x60], xmm0
- ;; size=22 bbWeight=1 PerfScore 6.58
-G_M43812_IG37:
- vmovdqu ymm0, ymmword ptr [rbp-0x78]
- vmovdqu ymmword ptr [rbp-0x50], ymm0
- mov rax, qword ptr [rbp-0x58]
- mov qword ptr [rbp-0x30], rax
- ;; size=18 bbWeight=1 PerfScore 7.00
-G_M43812_IG38:
- mov gword ptr [rbp-0x50], rdi
- mov dword ptr [rbp-0x48], esi
+ vmovdqu xmmword ptr [rbp-0xC0], xmm0
+ ;; size=25 bbWeight=1 PerfScore 6.58
+G_M43812_IG34:
+ vmovdqu ymm0, ymmword ptr [rbp-0xD8]
+ vmovdqu ymmword ptr [rbp-0xB0], ymm0
+ mov rax, qword ptr [rbp-0xB8]
+ mov qword ptr [rbp-0x90], rax
+ ;; size=30 bbWeight=1 PerfScore 7.00
+G_M43812_IG35:
+ mov gword ptr [rbp-0xB0], rdi
+ mov dword ptr [rbp-0xA8], esi
xor edi, edi
- mov dword ptr [rbp-0x44], edi
- mov dword ptr [rbp-0x40], 2
- lea rdi, [rbp-0x50]
+ mov dword ptr [rbp-0xA4], edi
+ mov dword ptr [rbp-0xA0], 2
+ lea rdi, [rbp-0xB0]
mov rsi, 0xD1FFAB1E ; System.Collections.Generic.Dictionary`2+Enumerator[System.Xml.Xsl.Xslt.Template,System.Xml.Xsl.Xslt.Stylesheet]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this
call [rax]System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this
test eax, eax
- je SHORT G_M43812_IG42
- ;; size=49 bbWeight=1 PerfScore 9.50
-G_M43812_IG39:
- mov r13, gword ptr [rbp-0x38]
- mov rsi, gword ptr [rbp-0x30]
+ je SHORT G_M43812_IG39
+ ;; size=64 bbWeight=1 PerfScore 9.50
+G_M43812_IG36:
+ mov r13, gword ptr [rbp-0x98]
+ mov rsi, gword ptr [rbp-0x90]
mov r12, gword ptr [rsi+0x08]
xor eax, eax
mov ecx, dword ptr [r12+0x08]
- mov dword ptr [rbp-0x84], ecx
+ mov dword ptr [rbp-0xDC], ecx
test ecx, ecx
- jle SHORT G_M43812_IG41
- ;; size=29 bbWeight=4 PerfScore 34.00
-G_M43812_IG40:
- mov qword ptr [rbp-0x90], rax
+ jle SHORT G_M43812_IG38
+ ;; size=35 bbWeight=4 PerfScore 34.00
+G_M43812_IG37:
+ mov qword ptr [rbp-0xE8], rax
mov rsi, gword ptr [r12+8*rax+0x10]
mov rdi, rbx
mov rdx, r13
mov r8, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XslAstAnalyzer:AddImportDependencies(System.Xml.Xsl.Xslt.Stylesheet,System.Xml.Xsl.Xslt.Template):this
call [r8]System.Xml.Xsl.Xslt.XslAstAnalyzer:AddImportDependencies(System.Xml.Xsl.Xslt.Stylesheet,System.Xml.Xsl.Xslt.Template):this
- mov rdi, qword ptr [rbp-0x90]
+ mov rdi, qword ptr [rbp-0xE8]
inc edi
- mov esi, dword ptr [rbp-0x84]
+ mov esi, dword ptr [rbp-0xDC]
cmp esi, edi
mov rax, rdi
- jg SHORT G_M43812_IG40
+ jg SHORT G_M43812_IG37
;; size=53 bbWeight=16 PerfScore 168.00
-G_M43812_IG41:
- lea rdi, [rbp-0x50]
+G_M43812_IG38:
+ lea rdi, [rbp-0xB0]
mov rsi, 0xD1FFAB1E ; System.Collections.Generic.Dictionary`2+Enumerator[System.Xml.Xsl.Xslt.Template,System.Xml.Xsl.Xslt.Stylesheet]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this
call [rax]System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this
test eax, eax
- jne SHORT G_M43812_IG39
- ;; size=30 bbWeight=4 PerfScore 21.00
-G_M43812_IG42:
+ jne SHORT G_M43812_IG36
+ ;; size=33 bbWeight=4 PerfScore 21.00
+G_M43812_IG39:
xor rdi, rdi
mov gword ptr [rbx+0x40], rdi
test r14d, 256
- je SHORT G_M43812_IG44
+ je SHORT G_M43812_IG41
;; size=15 bbWeight=1 PerfScore 2.50
-G_M43812_IG43:
+G_M43812_IG40:
mov rdi, gword ptr [rbx+0x30]
mov esi, 256
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XslAstAnalyzer+Graph`1[System.__Canon]:PropagateFlag(int):this
cmp dword ptr [rdi], edi
call [rax]System.Xml.Xsl.Xslt.XslAstAnalyzer+Graph`1[System.__Canon]:PropagateFlag(int):this
;; size=23 bbWeight=0.50 PerfScore 4.25
-G_M43812_IG44:
+G_M43812_IG41:
test r14d, 512
- je SHORT G_M43812_IG46
+ je SHORT G_M43812_IG43
;; size=9 bbWeight=1 PerfScore 1.25
-G_M43812_IG45:
+G_M43812_IG42:
mov rdi, gword ptr [rbx+0x30]
mov esi, 512
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XslAstAnalyzer+Graph`1[System.__Canon]:PropagateFlag(int):this
cmp dword ptr [rdi], edi
call [rax]System.Xml.Xsl.Xslt.XslAstAnalyzer+Graph`1[System.__Canon]:PropagateFlag(int):this
;; size=23 bbWeight=0.50 PerfScore 4.25
-G_M43812_IG46:
+G_M43812_IG43:
test r14d, 0x400
- je SHORT G_M43812_IG48
+ je SHORT G_M43812_IG45
;; size=9 bbWeight=1 PerfScore 1.25
-G_M43812_IG47:
+G_M43812_IG44:
mov rdi, gword ptr [rbx+0x30]
mov esi, 0x400
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XslAstAnalyzer+Graph`1[System.__Canon]:PropagateFlag(int):this
cmp dword ptr [rdi], edi
call [rax]System.Xml.Xsl.Xslt.XslAstAnalyzer+Graph`1[System.__Canon]:PropagateFlag(int):this
;; size=23 bbWeight=0.50 PerfScore 4.25
-G_M43812_IG48:
+G_M43812_IG45:
test r14d, 0x4000
- je SHORT G_M43812_IG50
+ je SHORT G_M43812_IG47
;; size=9 bbWeight=1 PerfScore 1.25
-G_M43812_IG49:
+G_M43812_IG46:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XslAstAnalyzer:PropagateSideEffectsFlag():this
call [rax]System.Xml.Xsl.Xslt.XslAstAnalyzer:PropagateSideEffectsFlag():this
;; size=15 bbWeight=0.50 PerfScore 1.75
-G_M43812_IG50:
+G_M43812_IG47:
xor rdi, rdi
mov gword ptr [rbx+0x30], rdi
;; size=6 bbWeight=1 PerfScore 1.25
-G_M43812_IG51:
+G_M43812_IG48:
mov gword ptr [rbx+0x38], rdi
;; size=4 bbWeight=1 PerfScore 1.00
-G_M43812_IG52:
+G_M43812_IG49:
mov gword ptr [rbx+0x48], rdi
mov rdi, gword ptr [r15+0x30]
mov rsi, gword ptr [rdi+0x10]
mov rdi, gword ptr [rdi+0x08]
cmp dword ptr [rdi+0x08], 0
- jbe SHORT G_M43812_IG54
+ jbe SHORT G_M43812_IG51
mov rax, gword ptr [rdi+0x10]
mov rdi, rsi
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XslAstAnalyzer:FillModeFlags(System.Collections.Generic.Dictionary`2[System.Xml.Xsl.Qil.QilName,int],System.Xml.Xsl.Xslt.Stylesheet)
call [rax]System.Xml.Xsl.Xslt.XslAstAnalyzer:FillModeFlags(System.Collections.Generic.Dictionary`2[System.Xml.Xsl.Qil.QilName,int],System.Xml.Xsl.Xslt.Stylesheet)
mov eax, r14d
;; size=47 bbWeight=1 PerfScore 17.00
-G_M43812_IG53:
+G_M43812_IG50:
vzeroupper
- add rsp, 136
+ add rsp, 216
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=21 bbWeight=1 PerfScore 5.25
-G_M43812_IG54:
+G_M43812_IG51:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M43812_IG55:
+G_M43812_IG52:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M43812_IG56:
+G_M43812_IG53:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
- lea rbp, [rbp+0xB0]
+ lea rbp, [rbp+0x100]
;; size=25 bbWeight=0 PerfScore 0.00
-G_M43812_IG57:
- cmp gword ptr [rbp-0x98], 0
- je SHORT G_M43812_IG58
- mov rdi, gword ptr [rbp-0x98]
+G_M43812_IG54:
+ cmp gword ptr [rbp-0xF0], 0
+ je SHORT G_M43812_IG55
+ mov rdi, gword ptr [rbp-0xF0]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=30 bbWeight=0 PerfScore 0.00
-G_M43812_IG58:
+G_M43812_IG55:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M43812_IG59:
+G_M43812_IG56:
vzeroupper
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1518, prolog size 63, PerfScore 1491.17, instruction count 372, allocated bytes for code 1518 (MethodHash=d62954db) for method System.Xml.Xsl.Xslt.XslAstAnalyzer:Analyze(System.Xml.Xsl.Xslt.Compiler):int:this (FullOpts)
+; Total bytes of code 1636, prolog size 90, PerfScore 1279.92, instruction count 387, allocated bytes for code 1636 (MethodHash=d62954db) for method System.Xml.Xsl.Xslt.XslAstAnalyzer:Analyze(System.Xml.Xsl.Xslt.Compiler):int:this (FullOpts)
106 (5.50 % of base) - System.Reflection.Emit.ModuleBuilderImpl:AppendMetadata(System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder,System.Reflection.Metadata.BlobBuilder,byref):this
; Assembly listing for method System.Reflection.Emit.ModuleBuilderImpl:AppendMetadata(System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder,System.Reflection.Metadata.BlobBuilder,byref):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 63 single block inlinees; 14 inlinees without PGO data
+; 0 inlinees with PGO data; 63 single block inlinees; 10 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T04] ( 30, 46 ) ref -> rbx this class-hnd single-def <System.Reflection.Emit.ModuleBuilderImpl>
+; V00 this [V00,T04] ( 31, 63 ) ref -> rbx this class-hnd single-def <System.Reflection.Emit.ModuleBuilderImpl>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder>
-; V02 arg2 [V02,T51] ( 4, 5 ) ref -> r14 class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
-; V03 arg3 [V03,T38] ( 3, 6 ) byref -> r15 single-def
+; V02 arg2 [V02,T26] ( 4, 7 ) ref -> r15 class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
+; V03 arg3 [V03,T51] ( 3, 3 ) byref -> r13 single-def
;* V04 loc0 [V04 ] ( 0, 0 ) struct ( 8) zero-ref <System.Reflection.Metadata.ModuleDefinitionHandle>
-; V05 loc1 [V05,T01] ( 11, 86 ) ref -> r12 class-hnd exact single-def <System.Collections.Generic.List`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl]>
+; V05 loc1 [V05,T01] ( 11, 88 ) ref -> r12 class-hnd exact single-def <System.Collections.Generic.List`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl]>
;* V06 loc2 [V06 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Reflection.Metadata.GuidHandle>
;* V07 loc3 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Reflection.Metadata.StringHandle>
;* V08 loc4 [V08 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Reflection.Metadata.EntityHandle>
-;* V09 loc5 [V09 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Reflection.Emit.TypeBuilderImpl]>
-; V10 loc6 [V10,T08] ( 19, 38 ) ref -> [rbp-0xB8] class-hnd exact spill-single-def <System.Reflection.Emit.TypeBuilderImpl>
+; V09 loc5 [V09 ] ( 7, 13 ) struct (24) [rbp-0x40] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Reflection.Emit.TypeBuilderImpl]>
+; V10 loc6 [V10,T02] ( 23, 80 ) ref -> [rbp-0xE0] class-hnd exact spill-single-def <System.Reflection.Emit.TypeBuilderImpl>
;* V11 loc7 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Reflection.Metadata.EntityHandle>
;* V12 loc8 [V12 ] ( 0, 0 ) struct ( 8) zero-ref <System.Reflection.Metadata.TypeDefinitionHandle>
-; V13 loc9 [V13,T19] ( 3, 20 ) ref -> [rbp-0xC0] class-hnd spill-single-def <System.Type[]>
-;* V14 loc10 [V14,T103] ( 0, 0 ) int -> zero-ref
-; V15 loc11 [V15,T05] ( 4, 48 ) ref -> r10 class-hnd exact <System.Reflection.Emit.GenericTypeParameterBuilderImpl>
-;* V16 loc12 [V16 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Reflection.Emit.GenericTypeParameterBuilderImpl]>
-;* V17 loc13 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Reflection.Emit.GenericTypeParameterBuilderImpl>
+; V13 loc9 [V13,T15] ( 3, 20 ) ref -> [rbp-0xE8] class-hnd spill-single-def <System.Type[]>
+;* V14 loc10 [V14,T84] ( 0, 0 ) int -> zero-ref
+; V15 loc11 [V15,T06] ( 4, 48 ) ref -> r10 class-hnd exact <System.Reflection.Emit.GenericTypeParameterBuilderImpl>
+; V16 loc12 [V16 ] ( 7, 13 ) struct (24) [rbp-0x58] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Reflection.Emit.GenericTypeParameterBuilderImpl]>
+; V17 loc13 [V17,T22] ( 3, 12 ) ref -> rdx class-hnd exact <System.Reflection.Emit.GenericTypeParameterBuilderImpl>
; V18 OutArgs [V18 ] ( 1, 1 ) struct (24) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V19 tmp1 [V19,T70] ( 2, 4 ) ref -> r12 class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.Ecma335.MetadataBuilder>
+; V19 tmp1 [V19,T54] ( 2, 4 ) ref -> r12 class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.Ecma335.MetadataBuilder>
;* V20 tmp2 [V20 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Metadata.StringHandle>
;* V21 tmp3 [V21 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Metadata.GuidHandle>
;* V22 tmp4 [V22 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Metadata.GuidHandle>
-; V23 tmp5 [V23,T53] ( 3, 6 ) ref -> [rbp-0xC8] class-hnd exact spill-single-def "impAppendStmt" <System.Reflection.Metadata.Ecma335.MetadataBuilder>
+; V23 tmp5 [V23,T44] ( 3, 6 ) ref -> [rbp-0xF0] class-hnd exact spill-single-def "impAppendStmt" <System.Reflection.Metadata.Ecma335.MetadataBuilder>
;* V24 tmp6 [V24 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Metadata.StringHandle>
;* V25 tmp7 [V25 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Metadata.StringHandle>
;* V26 tmp8 [V26 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Metadata.EntityHandle>
;* V27 tmp9 [V27 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Metadata.FieldDefinitionHandle>
;* V28 tmp10 [V28 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.MethodDefinitionHandle>
;* V29 tmp11 [V29 ] ( 0, 0 ) struct ( 8) zero-ref "location for address-of(RValue)" <System.Reflection.Metadata.TypeDefinitionHandle>
-; V30 tmp12 [V30,T71] ( 2, 4 ) ref -> rsi class-hnd single-def "impAppendStmt" <System.Collections.Generic.List`1[System.Reflection.Emit.CustomAttributeWrapper]>
+; V30 tmp12 [V30,T55] ( 2, 4 ) ref -> rsi class-hnd single-def "impAppendStmt" <System.Collections.Generic.List`1[System.Reflection.Emit.CustomAttributeWrapper]>
;* V31 tmp13 [V31 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.EntityHandle>
-; V32 tmp14 [V32,T54] ( 3, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl]>
-; V33 tmp15 [V33,T39] ( 2, 8 ) ref -> rsi class-hnd "impAppendStmt" <System.Collections.Generic.List`1[System.Reflection.Emit.CustomAttributeWrapper]>
+; V32 tmp14 [V32,T45] ( 3, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl]>
+; V33 tmp15 [V33,T17] ( 2, 16 ) ref -> rsi class-hnd "impAppendStmt" <System.Collections.Generic.List`1[System.Reflection.Emit.CustomAttributeWrapper]>
;* V34 tmp16 [V34 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.EntityHandle>
-; V35 tmp17 [V35,T40] ( 2, 8 ) ref -> [rbp-0xD0] class-hnd exact spill-single-def "impAppendStmt" <System.Reflection.Metadata.Ecma335.MetadataBuilder>
+; V35 tmp17 [V35,T34] ( 2, 8 ) ref -> [rbp-0xF8] class-hnd exact spill-single-def "impAppendStmt" <System.Reflection.Metadata.Ecma335.MetadataBuilder>
;* V36 tmp18 [V36 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.EntityHandle>
;* V37 tmp19 [V37 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.TypeDefinitionHandle>
-; V38 tmp20 [V38,T41] ( 2, 8 ) ref -> rsi class-hnd exact "impAppendStmt" <System.Reflection.Metadata.Ecma335.MetadataBuilder>
-; V39 tmp21 [V39,T44] ( 2, 8 ) int -> rdx "impAppendStmt"
-; V40 tmp22 [V40,T23] ( 2, 16 ) ref -> rsi class-hnd single-def "dup spill" <System.Comparison`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl]>
+; V38 tmp20 [V38,T35] ( 2, 8 ) ref -> rsi class-hnd exact "impAppendStmt" <System.Reflection.Metadata.Ecma335.MetadataBuilder>
+; V39 tmp21 [V39,T37] ( 2, 8 ) int -> rdx "impAppendStmt"
+; V40 tmp22 [V40,T56] ( 2, 4 ) ref -> rsi class-hnd single-def "dup spill" <System.Comparison`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl]>
;* V41 tmp23 [V41 ] ( 0, 0 ) ref -> zero-ref single-def
-; V42 tmp24 [V42,T30] ( 4, 9.50) ref -> rsi
-; V43 tmp25 [V43,T67] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl]>
-; V44 tmp26 [V44,T68] ( 3, 5 ) ref -> [rbp-0xD8] class-hnd exact spill-single-def "Inlining Arg" <System.Reflection.Metadata.Ecma335.MetadataBuilder>
+; V42 tmp24 [V42,T63] ( 4, 3.50) ref -> rsi
+; V43 tmp25 [V43,T50] ( 5, 5 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl]>
+; V44 tmp26 [V44,T52] ( 3, 5 ) ref -> [rbp-0x100] class-hnd exact spill-single-def "Inlining Arg" <System.Reflection.Metadata.Ecma335.MetadataBuilder>
;* V45 tmp27 [V45 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Reflection.Metadata.StringHandle>
-;* V46 tmp28 [V46,T106] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V47 tmp29 [V47,T55] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,System.Reflection.Metadata.StringHandle]>
-; V48 tmp30 [V48,T93] ( 3, 2.50) byref -> rax single-def "Inline stloc first use temp"
-; V49 tmp31 [V49,T85] ( 3, 3 ) ref -> rdx class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,System.Reflection.Metadata.StringHandle]>
+;* V46 tmp28 [V46,T87] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V47 tmp29 [V47,T46] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,System.Reflection.Metadata.StringHandle]>
+; V48 tmp30 [V48,T74] ( 3, 2.50) byref -> rax single-def "Inline stloc first use temp"
+; V49 tmp31 [V49,T66] ( 3, 3 ) ref -> rdx class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,System.Reflection.Metadata.StringHandle]>
;* V50 tmp32 [V50 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V51 tmp33 [V51 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StringHandle>
;* V52 tmp34 [V52 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V53 tmp35 [V53,T86] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,System.Reflection.Metadata.StringHandle]>
+; V53 tmp35 [V53,T67] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,System.Reflection.Metadata.StringHandle]>
;* V54 tmp36 [V54 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Reflection.Metadata.StringHandle>
;* V55 tmp37 [V55 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V56 tmp38 [V56 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.FieldDefinitionHandle>
;* V57 tmp39 [V57 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.MethodDefinitionHandle>
-; V58 tmp40 [V58 ] ( 8, 8 ) struct (24) [rbp-0x40] do-not-enreg[XSF] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow>
-; V59 tmp41 [V59,T72] ( 2, 4 ) ref -> rdi class-hnd single-def "impAppendStmt" <System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow]>
+; V58 tmp40 [V58 ] ( 8, 8 ) struct (24) [rbp-0x70] do-not-enreg[XSF] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow>
+; V59 tmp41 [V59,T57] ( 2, 4 ) ref -> rdi class-hnd single-def "impAppendStmt" <System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow]>
;* V60 tmp42 [V60 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.EntityHandle>
;* V61 tmp43 [V61 ] ( 0, 0 ) ref -> zero-ref single-def
-; V62 tmp44 [V62,T95] ( 2, 2 ) byref -> rax single-def
-; V63 tmp45 [V63,T52] ( 7, 6 ) ref -> rdi single-def
-; V64 tmp46 [V64,T96] ( 2, 2 ) byref -> rax single-def
-;* V65 tmp47 [V65,T108] ( 0, 0 ) int -> zero-ref
+; V62 tmp44 [V62,T76] ( 2, 2 ) byref -> rax single-def
+; V63 tmp45 [V63,T43] ( 7, 6 ) ref -> rdi single-def
+; V64 tmp46 [V64,T77] ( 2, 2 ) byref -> rax single-def
+;* V65 tmp47 [V65,T91] ( 0, 0 ) int -> zero-ref
;* V66 tmp48 [V66 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.FieldDefinitionHandle>
;* V67 tmp49 [V67 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.MethodDefinitionHandle>
-; V68 tmp50 [V68,T94] ( 3, 2.50) ref -> rax class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow[]>
-; V69 tmp51 [V69,T84] ( 4, 3 ) int -> rdx "Inline stloc first use temp"
-; V70 tmp52 [V70,T69] ( 3, 4 ) struct (24) [rbp-0x58] do-not-enreg[S] "Inlining Arg" <System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow>
+; V68 tmp50 [V68,T75] ( 3, 2.50) ref -> rax class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow[]>
+; V69 tmp51 [V69,T65] ( 4, 3 ) int -> rdx "Inline stloc first use temp"
+; V70 tmp52 [V70,T53] ( 3, 4 ) struct (24) [rbp-0x88] do-not-enreg[S] "Inlining Arg" <System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow>
;* V71 tmp53 [V71 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow]>
;* V72 tmp54 [V72 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V73 tmp55 [V73 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
;* V74 tmp56 [V74 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.EntityHandle>
;* V75 tmp57 [V75 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V76 tmp58 [V76,T73] ( 2, 4 ) ref -> rax class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Reflection.Emit.TypeBuilderImpl]>
+; V76 tmp58 [V76,T58] ( 2, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Reflection.Emit.TypeBuilderImpl]>
;* V77 tmp59 [V77 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Reflection.Emit.TypeBuilderImpl]>
-; V78 tmp60 [V78,T42] ( 2, 8 ) ref -> [rbp-0xE0] class-hnd exact spill-single-def "impAppendStmt" <System.Reflection.Metadata.Ecma335.MetadataBuilder>
-; V79 tmp61 [V79,T45] ( 2, 8 ) int -> [rbp-0x5C] spill-single-def "impAppendStmt"
+; V78 tmp60 [V78,T18] ( 2, 16 ) ref -> [rbp-0x108] class-hnd exact spill-single-def "impAppendStmt" <System.Reflection.Metadata.Ecma335.MetadataBuilder>
+; V79 tmp61 [V79,T19] ( 2, 16 ) int -> [rbp-0x8C] spill-single-def "impAppendStmt"
;* V80 tmp62 [V80 ] ( 0, 0 ) ref -> zero-ref
;* V81 tmp63 [V81 ] ( 0, 0 ) int -> zero-ref
;* V82 tmp64 [V82 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Reflection.Metadata.StringHandle>
;* V83 tmp65 [V83 ] ( 0, 0 ) ref -> zero-ref
;* V84 tmp66 [V84 ] ( 0, 0 ) int -> zero-ref
;* V85 tmp67 [V85 ] ( 0, 0 ) struct ( 8) zero-ref <System.Reflection.Metadata.StringHandle>
;* V86 tmp68 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Reflection.Metadata.Ecma335.MetadataBuilder>
;* V87 tmp69 [V87 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Reflection.Metadata.EntityHandle>
-; V88 tmp70 [V88,T46] ( 2, 8 ) int -> [rbp-0x60] spill-single-def "Inlining Arg"
+; V88 tmp70 [V88,T20] ( 2, 16 ) int -> [rbp-0x90] spill-single-def "Inlining Arg"
;* V89 tmp71 [V89 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Metadata.StringHandle>
-; V90 tmp72 [V90,T47] ( 2, 8 ) int -> [rbp-0x64] spill-single-def "Inlining Arg"
+; V90 tmp72 [V90,T21] ( 2, 16 ) int -> [rbp-0x94] spill-single-def "Inlining Arg"
;* V91 tmp73 [V91 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Metadata.FieldDefinitionHandle>
;* V92 tmp74 [V92 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.MethodDefinitionHandle>
-; V93 tmp75 [V93,T43] ( 2, 8 ) ref -> rdi class-hnd exact "impAppendStmt" <System.Reflection.Metadata.Ecma335.MetadataBuilder>
+; V93 tmp75 [V93,T36] ( 2, 8 ) ref -> rdi class-hnd exact "impAppendStmt" <System.Reflection.Metadata.Ecma335.MetadataBuilder>
;* V94 tmp76 [V94 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V95 tmp77 [V95 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.FieldDefinitionHandle>
;* V96 tmp78 [V96 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V97 tmp79 [V97 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V98 tmp80 [V98 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.MethodDefinitionHandle>
;* V99 tmp81 [V99 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V100 tmp82 [V100 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Type[]>
-; V101 tmp83 [V101,T74] ( 2, 4 ) ref -> rcx class-hnd exact "Inline stloc first use temp" <System.Reflection.Emit.GenericTypeParameterBuilderImpl[]>
-; V102 tmp84 [V102,T75] ( 2, 4 ) ref -> rcx
+; V101 tmp83 [V101,T59] ( 2, 4 ) ref -> rcx class-hnd exact "Inline stloc first use temp" <System.Reflection.Emit.GenericTypeParameterBuilderImpl[]>
+; V102 tmp84 [V102,T60] ( 2, 4 ) ref -> rcx
;* V103 tmp85 [V103 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.EntityHandle>
;* V104 tmp86 [V104 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V105 tmp87 [V105,T07] ( 3, 40 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Reflection.Emit.GenericTypeParameterBuilderImpl[]>
-; V106 tmp88 [V106,T06] ( 4, 48 ) int -> rsi "Inline stloc first use temp"
-; V107 tmp89 [V107 ] ( 6, 12 ) struct (16) [rbp-0x78] do-not-enreg[SFA] multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.Reflection.Metadata.Ecma335.MetadataBuilder+ClassLayoutRow>
+; V105 tmp87 [V105,T08] ( 3, 40 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Reflection.Emit.GenericTypeParameterBuilderImpl[]>
+; V106 tmp88 [V106,T07] ( 4, 48 ) int -> rsi "Inline stloc first use temp"
+; V107 tmp89 [V107 ] ( 6, 12 ) struct (16) [rbp-0xA8] do-not-enreg[SFA] multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.Reflection.Metadata.Ecma335.MetadataBuilder+ClassLayoutRow>
; V108 tmp90 [V108,T13] ( 7, 28 ) ref -> rcx class-hnd "impAppendStmt" <System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+ClassLayoutRow]>
;* V109 tmp91 [V109 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
;* V110 tmp92 [V110 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V111 tmp93 [V111,T48] ( 2, 8 ) int -> rdi "Inlining Arg"
-; V112 tmp94 [V112,T56] ( 3, 6 ) ref -> rsi class-hnd exact "Inline stloc first use temp" <System.Reflection.Metadata.Ecma335.MetadataBuilder+ClassLayoutRow[]>
-; V113 tmp95 [V113,T33] ( 4, 8 ) int -> rdx "Inline stloc first use temp"
+; V111 tmp93 [V111,T38] ( 2, 8 ) int -> rdi "Inlining Arg"
+; V112 tmp94 [V112,T47] ( 3, 6 ) ref -> rsi class-hnd exact "Inline stloc first use temp" <System.Reflection.Metadata.Ecma335.MetadataBuilder+ClassLayoutRow[]>
+; V113 tmp95 [V113,T27] ( 4, 8 ) int -> rdx "Inline stloc first use temp"
;* V114 tmp96 [V114 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Reflection.Metadata.Ecma335.MetadataBuilder+ClassLayoutRow>
;* V115 tmp97 [V115 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Reflection.Metadata.Ecma335.MetadataBuilder+NestedClassRow>
; V116 tmp98 [V116,T14] ( 7, 28 ) ref -> rdi class-hnd "impAppendStmt" <System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+NestedClassRow]>
;* V117 tmp99 [V117 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
;* V118 tmp100 [V118 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
-; V119 tmp101 [V119,T57] ( 3, 6 ) ref -> rsi class-hnd exact "Inline stloc first use temp" <System.Reflection.Metadata.Ecma335.MetadataBuilder+NestedClassRow[]>
-; V120 tmp102 [V120,T34] ( 4, 8 ) int -> rcx "Inline stloc first use temp"
+; V119 tmp101 [V119,T48] ( 3, 6 ) ref -> rsi class-hnd exact "Inline stloc first use temp" <System.Reflection.Metadata.Ecma335.MetadataBuilder+NestedClassRow[]>
+; V120 tmp102 [V120,T28] ( 4, 8 ) int -> rcx "Inline stloc first use temp"
;* V121 tmp103 [V121 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Reflection.Metadata.Ecma335.MetadataBuilder+NestedClassRow>
;* V122 tmp104 [V122 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.EntityHandle>
;* V123 tmp105 [V123 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V124 tmp106 [V124,T49] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V125 tmp107 [V125 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Reflection.Emit.TypeBuilderImpl]>
-; V126 tmp108 [V126,T87] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Reflection.Emit.ModuleBuilderImpl+<>c>
-;* V127 tmp109 [V127 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Reflection.Emit.GenericTypeParameterBuilderImpl]>
-;* V128 tmp110 [V128,T50] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V129 tmp111 [V129 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl]>
-; V130 tmp112 [V130,T58] ( 3, 4 ) ref -> r13 single-def "field V01.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
-; V131 tmp113 [V131,T97] ( 2, 2 ) int -> r12 "field V04._rowId (fldOffset=0x0)" P-INDEP
-;* V132 tmp114 [V132,T109] ( 0, 0 ) int -> zero-ref "field V06._index (fldOffset=0x0)" P-INDEP
-;* V133 tmp115 [V133 ] ( 0, 0 ) int -> zero-ref "field V07._value (fldOffset=0x0)" P-INDEP
-;* V134 tmp116 [V134 ] ( 0, 0 ) int -> zero-ref "field V08._vToken (fldOffset=0x0)" P-INDEP
-; V135 tmp117 [V135,T21] ( 4, 17 ) ref -> [rbp-0xE8] spill-single-def "field V09._list (fldOffset=0x0)" P-INDEP
-; V136 tmp118 [V136,T29] ( 2, 6 ) ref -> rdx "field V09._current (fldOffset=0x8)" P-INDEP
-; V137 tmp119 [V137,T15] ( 6, 21 ) int -> [rbp-0x7C] "field V09._index (fldOffset=0x10)" P-INDEP
-; V138 tmp120 [V138,T31] ( 2, 9 ) int -> [rbp-0x80] spill-single-def "field V09._version (fldOffset=0x14)" P-INDEP
-; V139 tmp121 [V139,T64] ( 3, 6 ) int -> [rbp-0x84] "field V11._vToken (fldOffset=0x0)" P-INDEP
-; V140 tmp122 [V140,T12] ( 7, 28 ) int -> [rbp-0x88] spill-single-def "field V12._rowId (fldOffset=0x0)" P-INDEP
-; V141 tmp123 [V141,T22] ( 4, 17 ) ref -> r12 single-def "field V16._list (fldOffset=0x0)" P-INDEP
-; V142 tmp124 [V142,T24] ( 3, 8 ) ref -> rdx "field V16._current (fldOffset=0x8)" P-INDEP
-; V143 tmp125 [V143,T16] ( 6, 21 ) int -> r13 "field V16._index (fldOffset=0x10)" P-INDEP
-; V144 tmp126 [V144,T32] ( 2, 9 ) int -> r14 "field V16._version (fldOffset=0x14)" P-INDEP
-; V145 tmp127 [V145,T98] ( 2, 2 ) int -> [rbp-0x8C] spill-single-def "field V20._value (fldOffset=0x0)" P-INDEP
-; V146 tmp128 [V146,T99] ( 2, 2 ) int -> rcx "field V21._index (fldOffset=0x0)" P-INDEP
-;* V147 tmp129 [V147,T110] ( 0, 0 ) int -> zero-ref "field V22._index (fldOffset=0x0)" P-INDEP
-;* V148 tmp130 [V148 ] ( 0, 0 ) int -> zero-ref "field V24._value (fldOffset=0x0)" P-INDEP
-;* V149 tmp131 [V149 ] ( 0, 0 ) int -> zero-ref "field V25._value (fldOffset=0x0)" P-INDEP
-;* V150 tmp132 [V150 ] ( 0, 0 ) int -> zero-ref "field V26._vToken (fldOffset=0x0)" P-INDEP
-;* V151 tmp133 [V151 ] ( 0, 0 ) int -> zero-ref "field V27._rowId (fldOffset=0x0)" P-INDEP
-;* V152 tmp134 [V152 ] ( 0, 0 ) int -> zero-ref "field V28._rowId (fldOffset=0x0)" P-INDEP
-;* V153 tmp135 [V153 ] ( 0, 0 ) int -> zero-ref "field V29._rowId (fldOffset=0x0)" P-INDEP
-;* V154 tmp136 [V154 ] ( 0, 0 ) int -> zero-ref "field V31._vToken (fldOffset=0x0)" P-INDEP
-;* V155 tmp137 [V155 ] ( 0, 0 ) int -> zero-ref "field V34._vToken (fldOffset=0x0)" P-INDEP
-; V156 tmp138 [V156,T76] ( 2, 4 ) int -> rdi "field V36._vToken (fldOffset=0x0)" P-INDEP
-; V157 tmp139 [V157,T77] ( 2, 4 ) int -> rax "field V37._rowId (fldOffset=0x0)" P-INDEP
-; V158 tmp140 [V158,T83] ( 4, 2.50) int -> [rbp-0x90] "field V45._value (fldOffset=0x0)" P-INDEP
-; V159 tmp141 [V159,T107] ( 2, 1 ) int -> rax "field V51._value (fldOffset=0x0)" P-INDEP
-;* V160 tmp142 [V160 ] ( 0, 0 ) int -> zero-ref "field V54._value (fldOffset=0x0)" P-INDEP
-;* V161 tmp143 [V161,T111] ( 0, 0 ) int -> zero-ref "field V56._rowId (fldOffset=0x0)" P-INDEP
-;* V162 tmp144 [V162,T112] ( 0, 0 ) int -> zero-ref "field V57._rowId (fldOffset=0x0)" P-INDEP
-;* V163 tmp145 [V163 ] ( 0, 0 ) int -> zero-ref "field V60._vToken (fldOffset=0x0)" P-INDEP
-;* V164 tmp146 [V164,T113] ( 0, 0 ) int -> zero-ref "field V66._rowId (fldOffset=0x0)" P-INDEP
-;* V165 tmp147 [V165,T114] ( 0, 0 ) int -> zero-ref "field V67._rowId (fldOffset=0x0)" P-INDEP
-;* V166 tmp148 [V166 ] ( 0, 0 ) int -> zero-ref "field V73._rowId (fldOffset=0x0)" P-INDEP
-; V167 tmp149 [V167,T100] ( 2, 2 ) int -> rdx "field V74._vToken (fldOffset=0x0)" P-INDEP
-; V168 tmp150 [V168,T88] ( 3, 3 ) ref -> rax single-def "field V77._list (fldOffset=0x0)" P-INDEP
-;* V169 tmp151 [V169 ] ( 0, 0 ) ref -> zero-ref single-def "field V77._current (fldOffset=0x8)" P-INDEP
-;* V170 tmp152 [V170,T115] ( 0, 0 ) int -> zero-ref "field V77._index (fldOffset=0x10)" P-INDEP
-; V171 tmp153 [V171,T101] ( 2, 2 ) int -> rcx "field V77._version (fldOffset=0x14)" P-INDEP
-;* V172 tmp154 [V172 ] ( 0, 0 ) int -> zero-ref "field V82._value (fldOffset=0x0)" P-INDEP
-; V173 tmp155 [V173,T65] ( 3, 6 ) int -> [rbp-0x94] "field V85._value (fldOffset=0x0)" P-INDEP
-;* V174 tmp156 [V174 ] ( 0, 0 ) int -> zero-ref "field V87._vToken (fldOffset=0x0)" P-INDEP
-; V175 tmp157 [V175,T78] ( 2, 4 ) int -> rcx "field V89._value (fldOffset=0x0)" P-INDEP
-;* V176 tmp158 [V176 ] ( 0, 0 ) int -> zero-ref "field V91._rowId (fldOffset=0x0)" P-INDEP
-;* V177 tmp159 [V177 ] ( 0, 0 ) int -> zero-ref "field V92._rowId (fldOffset=0x0)" P-INDEP
-; V178 tmp160 [V178,T79] ( 2, 4 ) int -> r9 "field V95._rowId (fldOffset=0x0)" P-INDEP
-; V179 tmp161 [V179,T80] ( 2, 4 ) int -> rdi "field V98._rowId (fldOffset=0x0)" P-INDEP
-; V180 tmp162 [V180,T10] ( 2, 32 ) int -> rdi "field V103._vToken (fldOffset=0x0)" P-INDEP
-; V181 tmp163 [V181,T35] ( 4, 8 ) ushort -> [rbp-0x78] do-not-enreg[] "field V107.PackingSize (fldOffset=0x0)" P-DEP
-; V182 tmp164 [V182,T36] ( 4, 8 ) int -> [rbp-0x74] do-not-enreg[] "field V107.ClassSize (fldOffset=0x4)" P-DEP
-; V183 tmp165 [V183,T37] ( 4, 8 ) int -> [rbp-0x70] do-not-enreg[] "field V107.Parent (fldOffset=0x8)" P-DEP
-;* V184 tmp166 [V184 ] ( 0, 0 ) int -> zero-ref "field V109._rowId (fldOffset=0x0)" P-INDEP
-;* V185 tmp167 [V185 ] ( 0, 0 ) ushort -> zero-ref "field V114.PackingSize (fldOffset=0x0)" P-INDEP
-;* V186 tmp168 [V186 ] ( 0, 0 ) int -> zero-ref "field V114.ClassSize (fldOffset=0x4)" P-INDEP
-;* V187 tmp169 [V187 ] ( 0, 0 ) int -> zero-ref "field V114.Parent (fldOffset=0x8)" P-INDEP
-;* V188 tmp170 [V188,T104] ( 0, 0 ) int -> zero-ref "field V115.NestedClass (fldOffset=0x0)" P-INDEP
-; V189 tmp171 [V189,T66] ( 3, 6 ) int -> rax "field V115.EnclosingClass (fldOffset=0x4)" P-INDEP
-;* V190 tmp172 [V190 ] ( 0, 0 ) int -> zero-ref "field V117._rowId (fldOffset=0x0)" P-INDEP
-;* V191 tmp173 [V191 ] ( 0, 0 ) int -> zero-ref "field V118._rowId (fldOffset=0x0)" P-INDEP
-;* V192 tmp174 [V192 ] ( 0, 0 ) int -> zero-ref "field V121.NestedClass (fldOffset=0x0)" P-INDEP
-;* V193 tmp175 [V193 ] ( 0, 0 ) int -> zero-ref "field V121.EnclosingClass (fldOffset=0x4)" P-INDEP
-; V194 tmp176 [V194,T81] ( 2, 4 ) int -> rdx "field V122._vToken (fldOffset=0x0)" P-INDEP
-; V195 tmp177 [V195,T89] ( 3, 3 ) ref -> r12 single-def "field V127._list (fldOffset=0x0)" P-INDEP
-;* V196 tmp178 [V196 ] ( 0, 0 ) ref -> zero-ref single-def "field V127._current (fldOffset=0x8)" P-INDEP
-;* V197 tmp179 [V197,T116] ( 0, 0 ) int -> zero-ref "field V127._index (fldOffset=0x10)" P-INDEP
-; V198 tmp180 [V198,T102] ( 2, 2 ) int -> r14 "field V127._version (fldOffset=0x14)" P-INDEP
-; V199 tmp181 [V199,T90] ( 2, 2 ) ref -> rdi single-def "Field obj"
-; V200 tmp182 [V200,T17] ( 3, 24 ) ref -> rdx "arr expr"
-; V201 tmp183 [V201,T26] ( 3, 12 ) struct ( 8) [rbp-0xA0] do-not-enreg[SF] "by-value struct argument" <System.Reflection.Metadata.Ecma335.MetadataBuilder+NestedClassRow>
-; V202 tmp184 [V202,T25] ( 3, 12 ) byref -> rsi "BlockOp address local"
-; V203 tmp185 [V203,T18] ( 3, 24 ) ref -> rsi "arr expr"
-;* V204 cse0 [V204,T82] ( 0, 0 ) long -> zero-ref "CSE #18: conservative"
-; V205 cse1 [V205,T27] ( 2, 8 ) int -> rdx "CSE #17: moderate"
-; V206 cse2 [V206,T28] ( 2, 8 ) int -> rsi "CSE #21: moderate"
-; V207 cse3 [V207,T59] ( 3, 6 ) ref -> rsi "CSE #06: conservative"
-; V208 cse4 [V208,T60] ( 3, 6 ) ref -> rdi "CSE #07: conservative"
-; V209 cse5 [V209,T61] ( 3, 6 ) ref -> rsi "CSE #08: conservative"
-; V210 cse6 [V210,T62] ( 3, 6 ) ref -> rcx "CSE #09: conservative"
-; V211 cse7 [V211,T63] ( 3, 6 ) ref -> rsi "CSE #13: conservative"
-; V212 cse8 [V212,T91] ( 3, 3 ) ref -> rdi "CSE #01: conservative"
-; V213 cse9 [V213,T92] ( 3, 3 ) ref -> rax "CSE #02: conservative"
-; V214 cse10 [V214,T105] ( 3, 1.50) ref -> rdi "CSE #03: conservative"
-; V215 cse11 [V215,T20] ( 3, 20 ) int -> [rbp-0xA4] spill-single-def "CSE #11: moderate"
-; V216 cse12 [V216,T11] ( 2, 32 ) int -> r11 "CSE #10: aggressive"
-; V217 rat0 [V217,T02] ( 5, 66 ) long -> [rbp-0xB0] "Widened IV V14"
-; V218 rat1 [V218,T03] ( 3, 64 ) ref -> rsi "Spilling to split statement for tree"
-; V219 rat2 [V219,T00] ( 4,112 ) ref -> r10 "replacement local"
-; V220 rat3 [V220,T09] ( 3, 32 ) long -> rdi "CSE for expectedClsNode"
+; V124 tmp106 [V124,T68] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Reflection.Emit.ModuleBuilderImpl+<>c>
+;* V125 tmp107 [V125 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Reflection.Emit.GenericTypeParameterBuilderImpl]>
+; V126 tmp108 [V126,T32] ( 3, 6 ) ref -> r14 single-def "field V01.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
+; V127 tmp109 [V127,T78] ( 2, 2 ) int -> r12 "field V04._rowId (fldOffset=0x0)" P-INDEP
+;* V128 tmp110 [V128,T92] ( 0, 0 ) int -> zero-ref "field V06._index (fldOffset=0x0)" P-INDEP
+;* V129 tmp111 [V129 ] ( 0, 0 ) int -> zero-ref "field V07._value (fldOffset=0x0)" P-INDEP
+;* V130 tmp112 [V130 ] ( 0, 0 ) int -> zero-ref "field V08._vToken (fldOffset=0x0)" P-INDEP
+; V131 tmp113 [V131 ] ( 3, 6 ) ref -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V09._list (fldOffset=0x0)" P-DEP
+; V132 tmp114 [V132 ] ( 4, 10 ) ref -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V09._current (fldOffset=0x8)" P-DEP
+; V133 tmp115 [V133 ] ( 3, 6 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V09._index (fldOffset=0x10)" P-DEP
+; V134 tmp116 [V134 ] ( 3, 6 ) int -> [rbp-0x2C] do-not-enreg[X] addr-exposed "field V09._version (fldOffset=0x14)" P-DEP
+; V135 tmp117 [V135,T25] ( 3, 10 ) int -> [rbp-0xAC] "field V11._vToken (fldOffset=0x0)" P-INDEP
+; V136 tmp118 [V136,T09] ( 7, 34 ) int -> [rbp-0xB0] spill-single-def "field V12._rowId (fldOffset=0x0)" P-INDEP
+; V137 tmp119 [V137 ] ( 3, 6 ) ref -> [rbp-0x58] do-not-enreg[X] addr-exposed "field V16._list (fldOffset=0x0)" P-DEP
+; V138 tmp120 [V138 ] ( 4, 10 ) ref -> [rbp-0x50] do-not-enreg[X] addr-exposed "field V16._current (fldOffset=0x8)" P-DEP
+; V139 tmp121 [V139 ] ( 3, 6 ) int -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V16._index (fldOffset=0x10)" P-DEP
+; V140 tmp122 [V140 ] ( 3, 6 ) int -> [rbp-0x44] do-not-enreg[X] addr-exposed "field V16._version (fldOffset=0x14)" P-DEP
+; V141 tmp123 [V141,T79] ( 2, 2 ) int -> [rbp-0xB4] spill-single-def "field V20._value (fldOffset=0x0)" P-INDEP
+; V142 tmp124 [V142,T80] ( 2, 2 ) int -> rcx "field V21._index (fldOffset=0x0)" P-INDEP
+;* V143 tmp125 [V143,T93] ( 0, 0 ) int -> zero-ref "field V22._index (fldOffset=0x0)" P-INDEP
+;* V144 tmp126 [V144 ] ( 0, 0 ) int -> zero-ref "field V24._value (fldOffset=0x0)" P-INDEP
+;* V145 tmp127 [V145 ] ( 0, 0 ) int -> zero-ref "field V25._value (fldOffset=0x0)" P-INDEP
+;* V146 tmp128 [V146 ] ( 0, 0 ) int -> zero-ref "field V26._vToken (fldOffset=0x0)" P-INDEP
+;* V147 tmp129 [V147 ] ( 0, 0 ) int -> zero-ref "field V27._rowId (fldOffset=0x0)" P-INDEP
+;* V148 tmp130 [V148 ] ( 0, 0 ) int -> zero-ref "field V28._rowId (fldOffset=0x0)" P-INDEP
+;* V149 tmp131 [V149 ] ( 0, 0 ) int -> zero-ref "field V29._rowId (fldOffset=0x0)" P-INDEP
+;* V150 tmp132 [V150 ] ( 0, 0 ) int -> zero-ref "field V31._vToken (fldOffset=0x0)" P-INDEP
+;* V151 tmp133 [V151 ] ( 0, 0 ) int -> zero-ref "field V34._vToken (fldOffset=0x0)" P-INDEP
+; V152 tmp134 [V152,T61] ( 2, 4 ) int -> rdi "field V36._vToken (fldOffset=0x0)" P-INDEP
+; V153 tmp135 [V153,T62] ( 2, 4 ) int -> rax "field V37._rowId (fldOffset=0x0)" P-INDEP
+; V154 tmp136 [V154,T64] ( 4, 2.50) int -> [rbp-0xB8] "field V45._value (fldOffset=0x0)" P-INDEP
+; V155 tmp137 [V155,T88] ( 2, 1 ) int -> rax "field V51._value (fldOffset=0x0)" P-INDEP
+;* V156 tmp138 [V156 ] ( 0, 0 ) int -> zero-ref "field V54._value (fldOffset=0x0)" P-INDEP
+;* V157 tmp139 [V157,T94] ( 0, 0 ) int -> zero-ref "field V56._rowId (fldOffset=0x0)" P-INDEP
+;* V158 tmp140 [V158,T95] ( 0, 0 ) int -> zero-ref "field V57._rowId (fldOffset=0x0)" P-INDEP
+;* V159 tmp141 [V159 ] ( 0, 0 ) int -> zero-ref "field V60._vToken (fldOffset=0x0)" P-INDEP
+;* V160 tmp142 [V160,T96] ( 0, 0 ) int -> zero-ref "field V66._rowId (fldOffset=0x0)" P-INDEP
+;* V161 tmp143 [V161,T97] ( 0, 0 ) int -> zero-ref "field V67._rowId (fldOffset=0x0)" P-INDEP
+;* V162 tmp144 [V162 ] ( 0, 0 ) int -> zero-ref "field V73._rowId (fldOffset=0x0)" P-INDEP
+; V163 tmp145 [V163,T81] ( 2, 2 ) int -> rdx "field V74._vToken (fldOffset=0x0)" P-INDEP
+; V164 tmp146 [V164,T69] ( 3, 3 ) ref -> rdi single-def "field V77._list (fldOffset=0x0)" P-INDEP
+;* V165 tmp147 [V165,T89] ( 0, 0 ) ref -> zero-ref single-def "field V77._current (fldOffset=0x8)" P-INDEP
+;* V166 tmp148 [V166,T98] ( 0, 0 ) int -> zero-ref "field V77._index (fldOffset=0x10)" P-INDEP
+; V167 tmp149 [V167,T82] ( 2, 2 ) int -> rsi "field V77._version (fldOffset=0x14)" P-INDEP
+;* V168 tmp150 [V168 ] ( 0, 0 ) int -> zero-ref "field V82._value (fldOffset=0x0)" P-INDEP
+; V169 tmp151 [V169,T33] ( 3, 8 ) int -> [rbp-0xBC] "field V85._value (fldOffset=0x0)" P-INDEP
+;* V170 tmp152 [V170 ] ( 0, 0 ) int -> zero-ref "field V87._vToken (fldOffset=0x0)" P-INDEP
+; V171 tmp153 [V171,T39] ( 2, 8 ) int -> rcx "field V89._value (fldOffset=0x0)" P-INDEP
+;* V172 tmp154 [V172 ] ( 0, 0 ) int -> zero-ref "field V91._rowId (fldOffset=0x0)" P-INDEP
+;* V173 tmp155 [V173 ] ( 0, 0 ) int -> zero-ref "field V92._rowId (fldOffset=0x0)" P-INDEP
+; V174 tmp156 [V174,T40] ( 2, 8 ) int -> r9 "field V95._rowId (fldOffset=0x0)" P-INDEP
+; V175 tmp157 [V175,T41] ( 2, 8 ) int -> rdi "field V98._rowId (fldOffset=0x0)" P-INDEP
+; V176 tmp158 [V176,T11] ( 2, 32 ) int -> rdi "field V103._vToken (fldOffset=0x0)" P-INDEP
+; V177 tmp159 [V177,T29] ( 4, 8 ) ushort -> [rbp-0xA8] do-not-enreg[] "field V107.PackingSize (fldOffset=0x0)" P-DEP
+; V178 tmp160 [V178,T30] ( 4, 8 ) int -> [rbp-0xA4] do-not-enreg[] "field V107.ClassSize (fldOffset=0x4)" P-DEP
+; V179 tmp161 [V179,T31] ( 4, 8 ) int -> [rbp-0xA0] do-not-enreg[] "field V107.Parent (fldOffset=0x8)" P-DEP
+;* V180 tmp162 [V180 ] ( 0, 0 ) int -> zero-ref "field V109._rowId (fldOffset=0x0)" P-INDEP
+;* V181 tmp163 [V181 ] ( 0, 0 ) ushort -> zero-ref "field V114.PackingSize (fldOffset=0x0)" P-INDEP
+;* V182 tmp164 [V182 ] ( 0, 0 ) int -> zero-ref "field V114.ClassSize (fldOffset=0x4)" P-INDEP
+;* V183 tmp165 [V183 ] ( 0, 0 ) int -> zero-ref "field V114.Parent (fldOffset=0x8)" P-INDEP
+;* V184 tmp166 [V184,T85] ( 0, 0 ) int -> zero-ref "field V115.NestedClass (fldOffset=0x0)" P-INDEP
+; V185 tmp167 [V185,T49] ( 3, 6 ) int -> rax "field V115.EnclosingClass (fldOffset=0x4)" P-INDEP
+;* V186 tmp168 [V186 ] ( 0, 0 ) int -> zero-ref "field V117._rowId (fldOffset=0x0)" P-INDEP
+;* V187 tmp169 [V187 ] ( 0, 0 ) int -> zero-ref "field V118._rowId (fldOffset=0x0)" P-INDEP
+;* V188 tmp170 [V188 ] ( 0, 0 ) int -> zero-ref "field V121.NestedClass (fldOffset=0x0)" P-INDEP
+;* V189 tmp171 [V189 ] ( 0, 0 ) int -> zero-ref "field V121.EnclosingClass (fldOffset=0x4)" P-INDEP
+; V190 tmp172 [V190,T42] ( 2, 8 ) int -> rdx "field V122._vToken (fldOffset=0x0)" P-INDEP
+; V191 tmp173 [V191,T70] ( 3, 3 ) ref -> r12 single-def "field V125._list (fldOffset=0x0)" P-INDEP
+;* V192 tmp174 [V192,T90] ( 0, 0 ) ref -> zero-ref single-def "field V125._current (fldOffset=0x8)" P-INDEP
+;* V193 tmp175 [V193,T99] ( 0, 0 ) int -> zero-ref "field V125._index (fldOffset=0x10)" P-INDEP
+; V194 tmp176 [V194,T83] ( 2, 2 ) int -> rdi "field V125._version (fldOffset=0x14)" P-INDEP
+; V195 tmp177 [V195,T71] ( 2, 2 ) ref -> rdi single-def "Field obj"
+; V196 tmp178 [V196,T24] ( 3, 12 ) struct ( 8) [rbp-0xC8] do-not-enreg[SF] "by-value struct argument" <System.Reflection.Metadata.Ecma335.MetadataBuilder+NestedClassRow>
+; V197 tmp179 [V197,T23] ( 3, 12 ) byref -> rsi "BlockOp address local"
+;* V198 cse0 [V198,T100] ( 0, 0 ) long -> zero-ref "CSE #17: conservative"
+; V199 cse1 [V199,T72] ( 3, 3 ) ref -> rdi "CSE #01: conservative"
+; V200 cse2 [V200,T73] ( 3, 3 ) ref -> rax "CSE #02: conservative"
+; V201 cse3 [V201,T86] ( 3, 1.50) ref -> rdi "CSE #03: conservative"
+; V202 cse4 [V202,T16] ( 3, 20 ) int -> [rbp-0xCC] spill-single-def "CSE #11: moderate"
+; V203 cse5 [V203,T12] ( 2, 32 ) int -> r11 "CSE #10: aggressive"
+; V204 rat0 [V204,T03] ( 5, 66 ) long -> [rbp-0xD8] "Widened IV V14"
+; V205 rat1 [V205,T05] ( 3, 64 ) ref -> rsi "Spilling to split statement for tree"
+; V206 rat2 [V206,T00] ( 4,112 ) ref -> r10 "replacement local"
+; V207 rat3 [V207,T10] ( 3, 32 ) long -> rdi "CSE for expectedClsNode"
;
-; Lcl frame size = 216
+; Lcl frame size = 248
G_M60666_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 216
- lea rbp, [rsp+0x100]
+ sub rsp, 248
+ lea rbp, [rsp+0x120]
+ xor eax, eax
+ mov qword ptr [rbp-0x58], rax
+ vxorps xmm8, xmm8, xmm8
+ vmovdqu ymmword ptr [rbp-0x50], ymm8
+ mov qword ptr [rbp-0x30], rax
mov rbx, rdi
- mov r13, rsi
- mov r14, rdx
- mov r15, rcx
- ;; size=37 bbWeight=1 PerfScore 7.75
+ mov r14, rsi
+ mov r15, rdx
+ mov r13, rcx
+ ;; size=57 bbWeight=1 PerfScore 12.33
G_M60666_IG02:
mov rdi, gword ptr [rbx+0x18]
mov r12, rdi
mov rsi, gword ptr [rbx+0x10]
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddString(System.String):System.Reflection.Metadata.StringHandle:this
cmp dword ptr [rdi], edi
call [rax]System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddString(System.String):System.Reflection.Metadata.StringHandle:this
- mov dword ptr [rbp-0x8C], eax
+ mov dword ptr [rbp-0xB4], eax
mov rsi, qword ptr [rbx+0x94]
mov rdx, qword ptr [rbx+0x9C]
mov rdi, gword ptr [rbx+0x18]
mov rcx, 0xD1FFAB1E ; code for System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddGuid(System.Guid):System.Reflection.Metadata.GuidHandle:this
cmp dword ptr [rdi], edi
call [rcx]System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddGuid(System.Guid):System.Reflection.Metadata.GuidHandle:this
mov ecx, eax
mov rdi, r12
xor r9d, r9d
- mov edx, dword ptr [rbp-0x8C]
+ mov edx, dword ptr [rbp-0xB4]
xor r8d, r8d
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.Ecma335.MetadataBuilder:AddModule(int,System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.GuidHandle,System.Reflection.Metadata.GuidHandle,System.Reflection.Metadata.GuidHandle):System.Reflection.Metadata.ModuleDefinitionHandle:this
call [rax]System.Reflection.Metadata.Ecma335.MetadataBuilder:AddModule(int,System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.GuidHandle,System.Reflection.Metadata.GuidHandle,System.Reflection.Metadata.GuidHandle):System.Reflection.Metadata.ModuleDefinitionHandle:this
mov r12d, eax
mov rax, gword ptr [rbx+0x18]
- mov gword ptr [rbp-0xC8], rax
- mov gword ptr [rbp-0xD8], rax
+ mov gword ptr [rbp-0xF0], rax
+ mov gword ptr [rbp-0x100], rax
mov rdi, gword ptr [rax+0x168]
cmp byte ptr [rdi], dil
mov rsi, 0xD1FFAB1E ; '<Module>'
mov rdx, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.Reflection.Metadata.StringHandle]:FindValue(System.__Canon):byref:this
call [rdx]System.Collections.Generic.Dictionary`2[System.__Canon,System.Reflection.Metadata.StringHandle]:FindValue(System.__Canon):byref:this
test rax, rax
je SHORT G_M60666_IG04
;; size=152 bbWeight=1 PerfScore 43.25
G_M60666_IG03:
mov eax, dword ptr [rax]
jmp SHORT G_M60666_IG05
;; size=4 bbWeight=0.50 PerfScore 2.00
G_M60666_IG04:
- mov rax, gword ptr [rbp-0xD8]
+ mov rax, gword ptr [rbp-0x100]
mov rdi, gword ptr [rax+0x168]
mov rdx, rdi
mov eax, dword ptr [rdx+0x38]
sub eax, dword ptr [rdx+0x40]
inc eax
or eax, 0xD1FFAB1E
cmp byte ptr [rdi], dil
- mov dword ptr [rbp-0x90], eax
+ mov dword ptr [rbp-0xB8], eax
mov edx, eax
mov rsi, 0xD1FFAB1E ; '<Module>'
mov ecx, 2
mov r8, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.Reflection.Metadata.StringHandle]:TryInsert(System.__Canon,System.Reflection.Metadata.StringHandle,ubyte):ubyte:this
call [r8]System.Collections.Generic.Dictionary`2[System.__Canon,System.Reflection.Metadata.StringHandle]:TryInsert(System.__Canon,System.Reflection.Metadata.StringHandle,ubyte):ubyte:this
- mov eax, dword ptr [rbp-0x90]
+ mov eax, dword ptr [rbp-0xB8]
;; size=75 bbWeight=0.50 PerfScore 8.88
G_M60666_IG05:
- mov rcx, gword ptr [rbp-0xC8]
+ mov rcx, gword ptr [rbp-0xF0]
mov rdi, gword ptr [rcx+0xF0]
vxorps xmm0, xmm0, xmm0
- vmovdqu xmmword ptr [rbp-0x40], xmm0
- vmovdqu xmmword ptr [rbp-0x38], xmm0
+ vmovdqu xmmword ptr [rbp-0x70], xmm0
+ vmovdqu xmmword ptr [rbp-0x68], xmm0
xor edx, edx
- mov dword ptr [rbp-0x40], edx
- mov dword ptr [rbp-0x3C], eax
+ mov dword ptr [rbp-0x70], edx
+ mov dword ptr [rbp-0x6C], eax
;; size=36 bbWeight=1 PerfScore 7.58
G_M60666_IG06:
- mov dword ptr [rbp-0x38], edx
- lea rax, bword ptr [rbp-0x40]
+ mov dword ptr [rbp-0x68], edx
+ lea rax, bword ptr [rbp-0x70]
;; size=7 bbWeight=1 PerfScore 1.50
G_M60666_IG07:
mov dword ptr [rax+0x0C], edx
- mov dword ptr [rbp-0x30], 1
- mov dword ptr [rbp-0x2C], 1
- vmovdqu xmm0, xmmword ptr [rbp-0x40]
- vmovdqu xmmword ptr [rbp-0x58], xmm0
- mov rax, qword ptr [rbp-0x30]
- mov qword ptr [rbp-0x48], rax
+ mov dword ptr [rbp-0x60], 1
+ mov dword ptr [rbp-0x5C], 1
+ vmovdqu xmm0, xmmword ptr [rbp-0x70]
+ vmovdqu xmmword ptr [rbp-0x88], xmm0
+ mov rax, qword ptr [rbp-0x60]
+ mov qword ptr [rbp-0x78], rax
inc dword ptr [rdi+0x14]
mov rax, gword ptr [rdi+0x08]
mov edx, dword ptr [rdi+0x10]
cmp dword ptr [rax+0x08], edx
jbe SHORT G_M60666_IG09
- ;; size=50 bbWeight=1 PerfScore 20.00
+ ;; size=53 bbWeight=1 PerfScore 20.00
G_M60666_IG08:
lea esi, [rdx+0x01]
mov dword ptr [rdi+0x10], esi
mov edi, edx
lea rdi, [rdi+2*rdi]
- vmovdqu xmm0, xmmword ptr [rbp-0x58]
+ vmovdqu xmm0, xmmword ptr [rbp-0x88]
vmovdqu xmmword ptr [rax+8*rdi+0x10], xmm0
- mov rdx, qword ptr [rbp-0x48]
+ mov rdx, qword ptr [rbp-0x78]
mov qword ptr [rax+8*rdi+0x20], rdx
jmp SHORT G_M60666_IG10
- ;; size=34 bbWeight=0.50 PerfScore 5.62
+ ;; size=37 bbWeight=0.50 PerfScore 5.62
G_M60666_IG09:
- vmovdqu xmm0, xmmword ptr [rbp-0x58]
+ vmovdqu xmm0, xmmword ptr [rbp-0x88]
vmovdqu xmmword ptr [rsp], xmm0
- mov rax, qword ptr [rbp-0x48]
+ mov rax, qword ptr [rbp-0x78]
mov qword ptr [rsp+0x10], rax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow]:AddWithResize(System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow):this
call [rax]System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow]:AddWithResize(System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow):this
- ;; size=31 bbWeight=0.50 PerfScore 4.62
+ ;; size=34 bbWeight=0.50 PerfScore 4.62
G_M60666_IG10:
- mov rcx, gword ptr [rbp-0xC8]
+ mov rcx, gword ptr [rbp-0xF0]
mov rdi, gword ptr [rcx+0xF0]
cmp byte ptr [rdi], dil
mov rsi, gword ptr [rbx+0x58]
mov edx, r12d
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.ModuleBuilderImpl:WriteCustomAttributes(System.Collections.Generic.List`1[System.Reflection.Emit.CustomAttributeWrapper],System.Reflection.Metadata.EntityHandle):this
call [rax]System.Reflection.Emit.ModuleBuilderImpl:WriteCustomAttributes(System.Collections.Generic.List`1[System.Reflection.Emit.CustomAttributeWrapper],System.Reflection.Metadata.EntityHandle):this
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl]
call CORINFO_HELP_NEWSFAST
mov r12, rax
mov rdi, 0xD1FFAB1E
mov esi, 59
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.List`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl]:s_emptyArray
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [r12+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.ModuleBuilderImpl:PopulateTokensForTypesAndItsMembers():this
call [rax]System.Reflection.Emit.ModuleBuilderImpl:PopulateTokensForTypesAndItsMembers():this
mov rsi, gword ptr [rbx+0x28]
mov rdi, rbx
- mov rdx, r14
+ mov rdx, r15
mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.ModuleBuilderImpl:WriteFields(System.Reflection.Emit.TypeBuilderImpl,System.Reflection.Metadata.BlobBuilder):this
call [rax]System.Reflection.Emit.ModuleBuilderImpl:WriteFields(System.Reflection.Emit.TypeBuilderImpl,System.Reflection.Metadata.BlobBuilder):this
mov rsi, gword ptr [rbx+0x28]
mov rsi, gword ptr [rsi+0x48]
mov rdi, rbx
mov rdx, r12
- mov rcx, r13
+ mov rcx, r14
mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.ModuleBuilderImpl:WriteMethods(System.Collections.Generic.List`1[System.Reflection.Emit.MethodBuilderImpl],System.Collections.Generic.List`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl],System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder):this
call [rax]System.Reflection.Emit.ModuleBuilderImpl:WriteMethods(System.Collections.Generic.List`1[System.Reflection.Emit.MethodBuilderImpl],System.Collections.Generic.List`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl],System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder):this
- mov rax, gword ptr [rbx+0x48]
- mov ecx, dword ptr [rax+0x14]
- mov gword ptr [rbp-0xE8], rax
- xor edi, edi
- mov dword ptr [rbp-0x80], ecx
- jmp G_M60666_IG30
- ;; size=190 bbWeight=1 PerfScore 44.00
+ mov rdi, gword ptr [rbx+0x48]
+ mov esi, dword ptr [rdi+0x14]
+ mov gword ptr [rbp-0x40], rdi
+ xor rdi, rdi
+ mov gword ptr [rbp-0x38], rdi
+ ;; size=183 bbWeight=1 PerfScore 42.00
G_M60666_IG11:
- mov gword ptr [rbp-0xB8], rdx
- mov rdi, rdx
- mov rsi, 0xD1FFAB1E ; code for System.Reflection.Emit.TypeBuilderImpl:ThrowIfNotCreated():this
+ mov dword ptr [rbp-0x30], edi
+ mov dword ptr [rbp-0x2C], esi
+ lea rdi, [rbp-0x40]
+ mov rsi, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Reflection.Emit.TypeBuilderImpl]
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je G_M60666_IG35
+ ;; size=40 bbWeight=1 PerfScore 7.25
+G_M60666_IG12:
+ mov rax, gword ptr [rbp-0x38]
+ mov gword ptr [rbp-0xE0], rax
+ mov rdi, rax
+ mov rcx, 0xD1FFAB1E ; code for System.Reflection.Emit.TypeBuilderImpl:ThrowIfNotCreated():this
cmp dword ptr [rdi], edi
- call [rsi]System.Reflection.Emit.TypeBuilderImpl:ThrowIfNotCreated():this
+ call [rcx]System.Reflection.Emit.TypeBuilderImpl:ThrowIfNotCreated():this
xor eax, eax
- mov rcx, gword ptr [rbp-0xB8]
+ mov rcx, gword ptr [rbp-0xE0]
+ cmp gword ptr [rcx+0x28], 0
+ je SHORT G_M60666_IG14
+ ;; size=44 bbWeight=4 PerfScore 55.00
+G_M60666_IG13:
mov rsi, gword ptr [rcx+0x28]
- test rsi, rsi
- je SHORT G_M60666_IG12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.ModuleBuilderImpl:GetTypeHandle(System.Type):System.Reflection.Metadata.EntityHandle:this
call [rax]System.Reflection.Emit.ModuleBuilderImpl:GetTypeHandle(System.Type):System.Reflection.Metadata.EntityHandle:this
- mov dword ptr [rbp-0x84], eax
- mov eax, dword ptr [rbp-0x84]
- ;; size=69 bbWeight=2 PerfScore 35.00
-G_M60666_IG12:
- mov rcx, gword ptr [rbp-0xB8]
+ mov dword ptr [rbp-0xAC], eax
+ mov eax, dword ptr [rbp-0xAC]
+ mov rcx, gword ptr [rbp-0xE0]
+ ;; size=38 bbWeight=2 PerfScore 17.00
+G_M60666_IG14:
mov edx, dword ptr [rcx+0x98]
- mov dword ptr [rbp-0x64], edx
+ mov dword ptr [rbp-0x94], edx
mov r8d, dword ptr [rcx+0x94]
- mov dword ptr [rbp-0x60], r8d
- mov rdi, gword ptr [rbx+0x18]
- mov gword ptr [rbp-0xE0], rdi
+ mov dword ptr [rbp-0x90], r8d
+ mov r8, gword ptr [rbx+0x18]
+ mov gword ptr [rbp-0x108], r8
mov r10d, dword ptr [rcx+0x88]
- mov dword ptr [rbp-0x5C], r10d
+ mov dword ptr [rbp-0x8C], r10d
+ cmp gword ptr [rcx+0x18], 0
+ je SHORT G_M60666_IG16
+ ;; size=58 bbWeight=4 PerfScore 64.00
+G_M60666_IG15:
+ mov dword ptr [rbp-0xAC], eax
+ mov rdi, gword ptr [rbx+0x18]
mov rsi, gword ptr [rcx+0x18]
- test rsi, rsi
- je SHORT G_M60666_IG13
- mov dword ptr [rbp-0x84], eax
mov r11, 0xD1FFAB1E ; code for System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddString(System.String):System.Reflection.Metadata.StringHandle:this
cmp dword ptr [rdi], edi
call [r11]System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddString(System.String):System.Reflection.Metadata.StringHandle:this
- mov dword ptr [rbp-0x94], eax
- jmp SHORT G_M60666_IG14
- ;; size=87 bbWeight=2 PerfScore 53.00
-G_M60666_IG13:
+ mov dword ptr [rbp-0xBC], eax
+ jmp SHORT G_M60666_IG17
+ ;; size=37 bbWeight=2 PerfScore 28.50
+G_M60666_IG16:
xor edi, edi
- mov dword ptr [rbp-0x94], edi
- mov dword ptr [rbp-0x84], eax
+ mov dword ptr [rbp-0xBC], edi
+ mov dword ptr [rbp-0xAC], eax
;; size=14 bbWeight=2 PerfScore 4.50
-G_M60666_IG14:
+G_M60666_IG17:
mov rdi, gword ptr [rbx+0x18]
- mov rcx, gword ptr [rbp-0xB8]
+ mov rcx, gword ptr [rbp-0xE0]
mov rsi, gword ptr [rcx+0x10]
mov r11, 0xD1FFAB1E ; code for System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddString(System.String):System.Reflection.Metadata.StringHandle:this
cmp dword ptr [rdi], edi
call [r11]System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddString(System.String):System.Reflection.Metadata.StringHandle:this
mov ecx, eax
- mov r9d, dword ptr [rbp-0x60]
+ mov r9d, dword ptr [rbp-0x90]
and r9d, 0xD1FFAB1E
- mov edi, dword ptr [rbp-0x64]
+ mov edi, dword ptr [rbp-0x94]
and edi, 0xD1FFAB1E
mov dword ptr [rsp], edi
- mov rdi, gword ptr [rbp-0xE0]
- mov esi, dword ptr [rbp-0x5C]
- mov edx, dword ptr [rbp-0x94]
- mov r8d, dword ptr [rbp-0x84]
+ mov rdi, gword ptr [rbp-0x108]
+ mov esi, dword ptr [rbp-0x8C]
+ mov edx, dword ptr [rbp-0xBC]
+ mov r8d, dword ptr [rbp-0xAC]
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.Ecma335.MetadataBuilder:AddTypeDefinition(int,System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.EntityHandle,System.Reflection.Metadata.FieldDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle):System.Reflection.Metadata.TypeDefinitionHandle:this
cmp dword ptr [rdi], edi
call [rax]System.Reflection.Metadata.Ecma335.MetadataBuilder:AddTypeDefinition(int,System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.EntityHandle,System.Reflection.Metadata.FieldDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle):System.Reflection.Metadata.TypeDefinitionHandle:this
mov edx, eax
- mov dword ptr [rbp-0x88], edx
- mov rax, gword ptr [rbp-0xB8]
+ mov dword ptr [rbp-0xB0], edx
+ mov rax, gword ptr [rbp-0xE0]
+ cmp gword ptr [rax+0x38], 0
+ je G_M60666_IG24
+ ;; size=127 bbWeight=4 PerfScore 126.00
+G_M60666_IG18:
mov rcx, gword ptr [rax+0x38]
- test rcx, rcx
- je G_M60666_IG20
- mov gword ptr [rbp-0xC0], rcx
+ mov gword ptr [rbp-0xE8], rcx
xor r8d, r8d
mov r9d, dword ptr [rcx+0x08]
- mov dword ptr [rbp-0xA4], r9d
+ mov dword ptr [rbp-0xCC], r9d
test r9d, r9d
- jle SHORT G_M60666_IG19
- ;; size=146 bbWeight=2 PerfScore 72.50
-G_M60666_IG15:
- mov qword ptr [rbp-0xB0], r8
+ jle SHORT G_M60666_IG23
+ ;; size=30 bbWeight=2 PerfScore 15.00
+G_M60666_IG19:
+ mov qword ptr [rbp-0xD8], r8
mov rsi, gword ptr [rcx+8*r8+0x10]
mov r10, rsi
test r10, r10
- je SHORT G_M60666_IG17
+ je SHORT G_M60666_IG21
;; size=20 bbWeight=16 PerfScore 72.00
-G_M60666_IG16:
+G_M60666_IG20:
mov rdi, 0xD1FFAB1E ; System.Reflection.Emit.GenericTypeParameterBuilderImpl
cmp qword ptr [r10], rdi
- jne G_M60666_IG42
+ jne G_M60666_IG43
;; size=19 bbWeight=8 PerfScore 34.00
-G_M60666_IG17:
+G_M60666_IG21:
mov edi, edx
or edi, 0xD1FFAB1E
mov dword ptr [r10+0x40], edi
inc dword ptr [r12+0x14]
mov rdi, gword ptr [r12+0x08]
mov esi, dword ptr [r12+0x10]
mov r11d, dword ptr [rdi+0x08]
cmp r11d, esi
- jbe SHORT G_M60666_IG21
+ jbe SHORT G_M60666_IG25
;; size=36 bbWeight=16 PerfScore 188.00
-G_M60666_IG18:
+G_M60666_IG22:
lea r11d, [rsi+0x01]
mov dword ptr [r12+0x10], r11d
mov esi, esi
lea rdi, bword ptr [rdi+8*rsi+0x10]
mov rsi, r10
call CORINFO_HELP_ASSIGN_REF
- jmp SHORT G_M60666_IG22
+ jmp SHORT G_M60666_IG26
;; size=26 bbWeight=8 PerfScore 48.00
-G_M60666_IG19:
- jmp SHORT G_M60666_IG23
- ;; size=2 bbWeight=1 PerfScore 2.00
-G_M60666_IG20:
- jmp SHORT G_M60666_IG23
+G_M60666_IG23:
+ jmp SHORT G_M60666_IG27
;; size=2 bbWeight=1 PerfScore 2.00
-G_M60666_IG21:
+G_M60666_IG24:
+ jmp SHORT G_M60666_IG27
+ ;; size=2 bbWeight=2 PerfScore 4.00
+G_M60666_IG25:
mov rdi, r12
mov rsi, r10
mov r10, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
call [r10]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
;; size=19 bbWeight=8 PerfScore 30.00
-G_M60666_IG22:
- mov rsi, qword ptr [rbp-0xB0]
+G_M60666_IG26:
+ mov rsi, qword ptr [rbp-0xD8]
inc esi
- mov edx, dword ptr [rbp-0xA4]
+ mov edx, dword ptr [rbp-0xCC]
cmp edx, esi
mov r8, rsi
- mov rcx, gword ptr [rbp-0xC0]
- jg SHORT G_M60666_IG24
- ;; size=29 bbWeight=16 PerfScore 76.00
-G_M60666_IG23:
- mov rax, gword ptr [rbp-0xB8]
+ mov rcx, gword ptr [rbp-0xE8]
+ jg G_M60666_IG29
+ ;; size=33 bbWeight=16 PerfScore 76.00
+G_M60666_IG27:
+ mov rax, gword ptr [rbp-0xE0]
test byte ptr [rax+0x88], 16
- je G_M60666_IG26
+ je G_M60666_IG31
+ ;; size=20 bbWeight=4 PerfScore 20.00
+G_M60666_IG28:
mov rsi, gword ptr [rbx+0x18]
movzx rdx, word ptr [rax+0x8C]
mov edi, dword ptr [rax+0x90]
mov rcx, gword ptr [rsi+0x08]
- mov r8d, dword ptr [rbp-0x88]
- mov dword ptr [rbp-0x70], r8d
- mov word ptr [rbp-0x78], dx
- mov dword ptr [rbp-0x74], edi
+ mov r8d, dword ptr [rbp-0xB0]
+ mov dword ptr [rbp-0xA0], r8d
+ mov word ptr [rbp-0xA8], dx
+ mov dword ptr [rbp-0xA4], edi
inc dword ptr [rcx+0x14]
mov rsi, gword ptr [rcx+0x08]
mov edx, dword ptr [rcx+0x10]
cmp dword ptr [rsi+0x08], edx
- jbe SHORT G_M60666_IG25
+ jbe SHORT G_M60666_IG30
lea edi, [rdx+0x01]
mov dword ptr [rcx+0x10], edi
lea rdx, [rdx+2*rdx]
- mov rcx, qword ptr [rbp-0x78]
+ mov rcx, qword ptr [rbp-0xA8]
mov qword ptr [rsi+4*rdx+0x10], rcx
- mov ecx, dword ptr [rbp-0x70]
+ mov ecx, dword ptr [rbp-0xA0]
mov dword ptr [rsi+4*rdx+0x18], ecx
- mov rax, gword ptr [rbp-0xB8]
- jmp SHORT G_M60666_IG26
- ;; size=109 bbWeight=2 PerfScore 74.00
-G_M60666_IG24:
- mov edx, dword ptr [rbp-0x88]
- jmp G_M60666_IG15
+ mov rax, gword ptr [rbp-0xE0]
+ jmp SHORT G_M60666_IG31
+ ;; size=104 bbWeight=2 PerfScore 64.00
+G_M60666_IG29:
+ mov edx, dword ptr [rbp-0xB0]
+ jmp G_M60666_IG19
;; size=11 bbWeight=8 PerfScore 24.00
-G_M60666_IG25:
- mov rsi, qword ptr [rbp-0x78]
- mov edx, dword ptr [rbp-0x70]
+G_M60666_IG30:
+ mov rsi, qword ptr [rbp-0xA8]
+ mov edx, dword ptr [rbp-0xA0]
mov rdi, rcx
mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+ClassLayoutRow]:AddWithResize(System.Reflection.Metadata.Ecma335.MetadataBuilder+ClassLayoutRow):this
call [rcx]System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+ClassLayoutRow]:AddWithResize(System.Reflection.Metadata.Ecma335.MetadataBuilder+ClassLayoutRow):this
- mov rax, gword ptr [rbp-0xB8]
- ;; size=29 bbWeight=2 PerfScore 13.00
-G_M60666_IG26:
- mov rsi, gword ptr [rax+0x30]
- test rsi, rsi
- je SHORT G_M60666_IG27
+ mov rax, gword ptr [rbp-0xE0]
+ ;; size=35 bbWeight=2 PerfScore 13.00
+G_M60666_IG31:
+ cmp gword ptr [rax+0x30], 0
+ je G_M60666_IG34
+ ;; size=11 bbWeight=4 PerfScore 16.00
+G_M60666_IG32:
mov rcx, gword ptr [rbx+0x18]
- mov gword ptr [rbp-0xD0], rcx
+ mov gword ptr [rbp-0xF8], rcx
+ mov rsi, gword ptr [rax+0x30]
mov rdi, rbx
mov rdx, 0xD1FFAB1E ; code for System.Reflection.Emit.ModuleBuilderImpl:GetTypeHandle(System.Type):System.Reflection.Metadata.EntityHandle:this
call [rdx]System.Reflection.Emit.ModuleBuilderImpl:GetTypeHandle(System.Type):System.Reflection.Metadata.EntityHandle:this
mov edi, eax
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.TypeDefinitionHandle:op_Explicit(System.Reflection.Metadata.EntityHandle):System.Reflection.Metadata.TypeDefinitionHandle
call [rax]System.Reflection.Metadata.TypeDefinitionHandle:op_Explicit(System.Reflection.Metadata.EntityHandle):System.Reflection.Metadata.TypeDefinitionHandle
- mov rsi, gword ptr [rbp-0xD0]
+ mov rsi, gword ptr [rbp-0xF8]
mov rdi, gword ptr [rsi+0xD0]
inc dword ptr [rdi+0x14]
mov rsi, gword ptr [rdi+0x08]
mov ecx, dword ptr [rdi+0x10]
cmp dword ptr [rsi+0x08], ecx
- jbe SHORT G_M60666_IG28
+ jbe SHORT G_M60666_IG33
lea edx, [rcx+0x01]
mov dword ptr [rdi+0x10], edx
mov edi, ecx
lea rsi, bword ptr [rsi+8*rdi+0x10]
- mov edx, dword ptr [rbp-0x88]
+ mov edx, dword ptr [rbp-0xB0]
mov dword ptr [rsi], edx
mov dword ptr [rsi+0x04], eax
- mov rax, gword ptr [rbp-0xB8]
- jmp SHORT G_M60666_IG29
- ;; size=111 bbWeight=2 PerfScore 72.00
-G_M60666_IG27:
- mov rax, gword ptr [rbp-0xB8]
- jmp SHORT G_M60666_IG29
- ;; size=9 bbWeight=1 PerfScore 3.00
-G_M60666_IG28:
- mov edx, dword ptr [rbp-0x88]
- mov dword ptr [rbp-0xA0], edx
- mov dword ptr [rbp-0x9C], eax
- mov rsi, qword ptr [rbp-0xA0]
+ mov rax, gword ptr [rbp-0xE0]
+ jmp SHORT G_M60666_IG34
+ ;; size=106 bbWeight=2 PerfScore 69.50
+G_M60666_IG33:
+ mov edx, dword ptr [rbp-0xB0]
+ mov dword ptr [rbp-0xC8], edx
+ mov dword ptr [rbp-0xC4], eax
+ mov rsi, qword ptr [rbp-0xC8]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+NestedClassRow]:AddWithResize(System.Reflection.Metadata.Ecma335.MetadataBuilder+NestedClassRow):this
call [rax]System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+NestedClassRow]:AddWithResize(System.Reflection.Metadata.Ecma335.MetadataBuilder+NestedClassRow):this
- mov rax, gword ptr [rbp-0xB8]
+ mov rax, gword ptr [rbp-0xE0]
;; size=44 bbWeight=2 PerfScore 16.50
-G_M60666_IG29:
+G_M60666_IG34:
mov rdi, rbx
mov rsi, rax
- mov edx, dword ptr [rbp-0x88]
+ mov edx, dword ptr [rbp-0xB0]
mov rcx, 0xD1FFAB1E ; code for System.Reflection.Emit.ModuleBuilderImpl:WriteInterfaceImplementations(System.Reflection.Emit.TypeBuilderImpl,System.Reflection.Metadata.TypeDefinitionHandle):this
call [rcx]System.Reflection.Emit.ModuleBuilderImpl:WriteInterfaceImplementations(System.Reflection.Emit.TypeBuilderImpl,System.Reflection.Metadata.TypeDefinitionHandle):this
- mov rax, gword ptr [rbp-0xB8]
+ mov rax, gword ptr [rbp-0xE0]
mov rsi, gword ptr [rax+0x78]
- mov edx, dword ptr [rbp-0x88]
+ mov edx, dword ptr [rbp-0xB0]
or edx, 0xD1FFAB1E
mov rdi, rbx
mov rcx, 0xD1FFAB1E ; code for System.Reflection.Emit.ModuleBuilderImpl:WriteCustomAttributes(System.Collections.Generic.List`1[System.Reflection.Emit.CustomAttributeWrapper],System.Reflection.Metadata.EntityHandle):this
call [rcx]System.Reflection.Emit.ModuleBuilderImpl:WriteCustomAttributes(System.Collections.Generic.List`1[System.Reflection.Emit.CustomAttributeWrapper],System.Reflection.Metadata.EntityHandle):this
mov rdi, rbx
- mov rsi, gword ptr [rbp-0xB8]
+ mov rsi, gword ptr [rbp-0xE0]
mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.ModuleBuilderImpl:WriteProperties(System.Reflection.Emit.TypeBuilderImpl):this
call [rax]System.Reflection.Emit.ModuleBuilderImpl:WriteProperties(System.Reflection.Emit.TypeBuilderImpl):this
mov rdi, rbx
- mov rsi, gword ptr [rbp-0xB8]
- mov rdx, r14
+ mov rsi, gword ptr [rbp-0xE0]
+ mov rdx, r15
mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.ModuleBuilderImpl:WriteFields(System.Reflection.Emit.TypeBuilderImpl,System.Reflection.Metadata.BlobBuilder):this
call [rax]System.Reflection.Emit.ModuleBuilderImpl:WriteFields(System.Reflection.Emit.TypeBuilderImpl,System.Reflection.Metadata.BlobBuilder):this
- mov rax, gword ptr [rbp-0xB8]
+ mov rax, gword ptr [rbp-0xE0]
mov rsi, gword ptr [rax+0x48]
mov rdi, rbx
mov rdx, r12
- mov rcx, r13
+ mov rcx, r14
mov r8, 0xD1FFAB1E ; code for System.Reflection.Emit.ModuleBuilderImpl:WriteMethods(System.Collections.Generic.List`1[System.Reflection.Emit.MethodBuilderImpl],System.Collections.Generic.List`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl],System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder):this
call [r8]System.Reflection.Emit.ModuleBuilderImpl:WriteMethods(System.Collections.Generic.List`1[System.Reflection.Emit.MethodBuilderImpl],System.Collections.Generic.List`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl],System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder):this
mov rdi, rbx
- mov rsi, gword ptr [rbp-0xB8]
+ mov rsi, gword ptr [rbp-0xE0]
mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.ModuleBuilderImpl:WriteEvents(System.Reflection.Emit.TypeBuilderImpl):this
call [rax]System.Reflection.Emit.ModuleBuilderImpl:WriteEvents(System.Reflection.Emit.TypeBuilderImpl):this
- mov rax, gword ptr [rbp-0xE8]
- mov ecx, dword ptr [rbp-0x80]
- mov edi, dword ptr [rbp-0x7C]
- ;; size=177 bbWeight=2 PerfScore 72.50
-G_M60666_IG30:
- cmp ecx, dword ptr [rax+0x14]
- jne G_M60666_IG45
- ;; size=9 bbWeight=8 PerfScore 32.00
-G_M60666_IG31:
- mov edx, dword ptr [rax+0x10]
- cmp edi, edx
- jae SHORT G_M60666_IG32
- mov rdx, gword ptr [rax+0x08]
- cmp edi, dword ptr [rdx+0x08]
- jae G_M60666_IG41
- mov esi, edi
- mov rdx, gword ptr [rdx+8*rsi+0x10]
- inc edi
- mov dword ptr [rbp-0x7C], edi
- jmp G_M60666_IG11
- ;; size=37 bbWeight=4 PerfScore 59.00
-G_M60666_IG32:
+ lea rdi, [rbp-0x40]
+ mov rsi, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Reflection.Emit.TypeBuilderImpl]
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne G_M60666_IG12
+ ;; size=198 bbWeight=4 PerfScore 154.00
+G_M60666_IG35:
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
- je G_M60666_IG43
- ;; size=19 bbWeight=4 PerfScore 17.00
-G_M60666_IG33:
+ je G_M60666_IG44
+ ;; size=19 bbWeight=1 PerfScore 4.25
+G_M60666_IG36:
mov rdi, 0xD1FFAB1E ; data for System.Reflection.Emit.ModuleBuilderImpl+<>c:<>9__27_0
mov rsi, gword ptr [rdi]
test rsi, rsi
- jne SHORT G_M60666_IG35
- ;; size=18 bbWeight=4 PerfScore 14.00
-G_M60666_IG34:
+ jne SHORT G_M60666_IG38
+ ;; size=18 bbWeight=1 PerfScore 3.50
+G_M60666_IG37:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl]
call CORINFO_HELP_NEWSFAST
- mov r14, rax
+ mov r15, rax
mov rdi, 0xD1FFAB1E ; data for System.Reflection.Emit.ModuleBuilderImpl+<>c:<>9
mov rsi, gword ptr [rdi]
test rsi, rsi
- je G_M60666_IG44
- lea rdi, bword ptr [r14+0x08]
+ je G_M60666_IG45
+ lea rdi, bword ptr [r15+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Reflection.Emit.ModuleBuilderImpl+<>c:<AppendMetadata>b__27_0(System.Reflection.Emit.GenericTypeParameterBuilderImpl,System.Reflection.Emit.GenericTypeParameterBuilderImpl):int:this
- mov qword ptr [r14+0x18], rdi
+ mov qword ptr [r15+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for System.Reflection.Emit.ModuleBuilderImpl+<>c:<>9__27_0
- mov rsi, r14
+ mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
- mov rsi, r14
+ mov rsi, r15
;; size=84 bbWeight=0.50 PerfScore 4.75
-G_M60666_IG35:
+G_M60666_IG38:
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:Sort(System.Comparison`1[System.__Canon]):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:Sort(System.Comparison`1[System.__Canon]):this
- mov r14d, dword ptr [r12+0x14]
- xor r13d, r13d
- jmp SHORT G_M60666_IG37
- ;; size=25 bbWeight=1 PerfScore 7.75
-G_M60666_IG36:
+ mov edi, dword ptr [r12+0x14]
+ mov gword ptr [rbp-0x58], r12
+ xor rsi, rsi
+ mov gword ptr [rbp-0x50], rsi
+ ;; size=30 bbWeight=1 PerfScore 7.75
+G_M60666_IG39:
+ mov dword ptr [rbp-0x48], esi
+ mov dword ptr [rbp-0x44], edi
+ lea rdi, [rbp-0x58]
+ mov rsi, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Reflection.Emit.GenericTypeParameterBuilderImpl]
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M60666_IG41
+ ;; size=36 bbWeight=1 PerfScore 7.25
+G_M60666_IG40:
+ mov rdx, gword ptr [rbp-0x50]
mov esi, dword ptr [rdx+0x40]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.ModuleBuilderImpl:AddGenericTypeParametersAndConstraintsCustomAttributes(System.Reflection.Metadata.EntityHandle,System.Reflection.Emit.GenericTypeParameterBuilderImpl):this
call [rax]System.Reflection.Emit.ModuleBuilderImpl:AddGenericTypeParametersAndConstraintsCustomAttributes(System.Reflection.Metadata.EntityHandle,System.Reflection.Emit.GenericTypeParameterBuilderImpl):this
- ;; size=18 bbWeight=2 PerfScore 11.00
-G_M60666_IG37:
- cmp r14d, dword ptr [r12+0x14]
- jne SHORT G_M60666_IG45
- ;; size=7 bbWeight=8 PerfScore 32.00
-G_M60666_IG38:
- mov esi, dword ptr [r12+0x10]
- cmp r13d, esi
- jae SHORT G_M60666_IG39
- mov rsi, gword ptr [r12+0x08]
- cmp r13d, dword ptr [rsi+0x08]
- jae SHORT G_M60666_IG41
- mov edi, r13d
- mov rdx, gword ptr [rsi+8*rdi+0x10]
- inc r13d
- jmp SHORT G_M60666_IG36
- ;; size=34 bbWeight=4 PerfScore 55.00
-G_M60666_IG39:
+ lea rdi, [rbp-0x58]
+ mov rsi, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Reflection.Emit.GenericTypeParameterBuilderImpl]
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M60666_IG40
+ ;; size=52 bbWeight=4 PerfScore 47.00
+G_M60666_IG41:
mov rsi, gword ptr [rbx+0x70]
- mov rdi, r15
+ mov rdi, r13
call CORINFO_HELP_CHECKED_ASSIGN_REF
nop
- ;; size=13 bbWeight=4 PerfScore 14.00
-G_M60666_IG40:
- add rsp, 216
+ ;; size=13 bbWeight=1 PerfScore 3.50
+G_M60666_IG42:
+ add rsp, 248
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=18 bbWeight=4 PerfScore 17.00
-G_M60666_IG41:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-G_M60666_IG42:
+ ;; size=18 bbWeight=1 PerfScore 4.25
+G_M60666_IG43:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
call [rax]CORINFO_HELP_CHKCASTCLASS
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M60666_IG43:
+G_M60666_IG44:
mov rdi, 0xD1FFAB1E
mov esi, 24
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- jmp G_M60666_IG33
+ jmp G_M60666_IG36
;; size=25 bbWeight=0 PerfScore 0.00
-G_M60666_IG44:
+G_M60666_IG45:
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M60666_IG45:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1927, prolog size 37, PerfScore 1300.71, instruction count 429, allocated bytes for code 1927 (MethodHash=d7b51305) for method System.Reflection.Emit.ModuleBuilderImpl:AppendMetadata(System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder,System.Reflection.Metadata.BlobBuilder,byref):this (FullOpts)
+; Total bytes of code 2033, prolog size 57, PerfScore 1378.29, instruction count 430, allocated bytes for code 2033 (MethodHash=d7b51305) for method System.Reflection.Emit.ModuleBuilderImpl:AppendMetadata(System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder,System.Reflection.Metadata.BlobBuilder,byref):this (FullOpts)
105 (8.65 % of base) - ILCompiler.Reflection.ReadyToRun.Amd64.GcInfo:GetLiveSlotsAtSafepoints(ubyte[],byref):System.Collections.Generic.List`1[System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]]:this
; Assembly listing for method ILCompiler.Reflection.ReadyToRun.Amd64.GcInfo:GetLiveSlotsAtSafepoints(ubyte[],byref):System.Collections.Generic.List`1[System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]]:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 29 single block inlinees; 8 inlinees without PGO data
+; 0 inlinees with PGO data; 29 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T21] ( 13, 102 ) ref -> rbx this class-hnd single-def <ILCompiler.Reflection.ReadyToRun.Amd64.GcInfo>
-; V01 arg1 [V01,T31] ( 10, 43 ) ref -> r14 class-hnd single-def <ubyte[]>
-; V02 arg2 [V02,T28] ( 17, 57.50) byref -> r15 single-def
-; V03 loc0 [V03,T42] ( 13, 23.50) ref -> [rbp-0x60] class-hnd exact spill-single-def <System.Collections.Generic.List`1[System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]]>
-; V04 loc1 [V04,T33] ( 6, 38 ) int -> [rbp-0x2C] spill-single-def
-; V05 loc2 [V05,T46] ( 6, 11 ) int -> [rbp-0x30]
-; V06 loc3 [V06,T53] ( 3, 6.50) int -> [rbp-0x34] spill-single-def
-; V07 loc4 [V07,T43] ( 6, 16.50) int -> [rbp-0x38]
-; V08 loc5 [V08,T11] ( 16, 250 ) ref -> [rbp-0x68] class-hnd exact spill-single-def <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]>
-; V09 loc6 [V09,T59] ( 2, 4 ) int -> rax
+; V00 this [V00,T17] ( 13, 102 ) ref -> rbx this class-hnd single-def <ILCompiler.Reflection.ReadyToRun.Amd64.GcInfo>
+; V01 arg1 [V01,T28] ( 10, 43 ) ref -> r14 class-hnd single-def <ubyte[]>
+; V02 arg2 [V02,T25] ( 17, 57.50) byref -> r15 single-def
+; V03 loc0 [V03,T39] ( 13, 23.50) ref -> [rbp-0x88] class-hnd exact spill-single-def <System.Collections.Generic.List`1[System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]]>
+; V04 loc1 [V04,T30] ( 6, 38 ) int -> [rbp-0x2C] spill-single-def
+; V05 loc2 [V05,T42] ( 6, 11 ) int -> [rbp-0x30]
+; V06 loc3 [V06,T49] ( 3, 6.50) int -> [rbp-0x34] spill-single-def
+; V07 loc4 [V07,T40] ( 6, 16.50) int -> [rbp-0x38]
+; V08 loc5 [V08,T10] ( 16, 250 ) ref -> [rbp-0x90] class-hnd exact spill-single-def <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]>
+; V09 loc6 [V09,T55] ( 2, 4 ) int -> rax
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
-; V11 loc8 [V11,T29] ( 7, 56 ) ubyte -> [rbp-0x3C]
-; V12 loc9 [V12,T30] ( 4, 50 ) ubyte -> [rbp-0x40]
-; V13 loc10 [V13,T27] ( 6, 60 ) int -> [rbp-0x44]
-; V14 loc11 [V14,T32] ( 3, 40 ) int -> [rbp-0x48] spill-single-def
-; V15 loc12 [V15,T09] ( 7, 344 ) int -> [rbp-0x4C]
-; V16 loc13 [V16,T06] ( 4, 448 ) int -> rsi
+; V11 loc8 [V11,T26] ( 7, 56 ) ubyte -> [rbp-0x3C]
+; V12 loc9 [V12,T27] ( 4, 50 ) ubyte -> [rbp-0x40]
+; V13 loc10 [V13,T24] ( 6, 60 ) int -> [rbp-0x44]
+; V14 loc11 [V14,T29] ( 3, 40 ) int -> [rbp-0x48] spill-single-def
+; V15 loc12 [V15,T08] ( 7, 344 ) int -> [rbp-0x4C]
+; V16 loc13 [V16,T07] ( 4, 448 ) int -> rsi
;* V17 loc14 [V17 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
;* V18 loc15 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd <ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot>
-; V19 loc16 [V19,T24] ( 5, 82 ) int -> [rbp-0x50]
+; V19 loc16 [V19,T20] ( 5, 82 ) int -> [rbp-0x50]
;* V20 loc17 [V20 ] ( 0, 0 ) ubyte -> zero-ref
-; V21 loc18 [V21,T22] ( 4, 104 ) int -> rsi
-;* V22 loc19 [V22 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
-;* V23 loc20 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd <ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot>
+; V21 loc18 [V21,T18] ( 4, 104 ) int -> [rbp-0x54]
+; V22 loc19 [V22 ] ( 7, 168 ) struct (24) [rbp-0x70] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
+; V23 loc20 [V23,T12] ( 4, 144 ) ref -> rdx class-hnd <ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot>
;# V24 OutArgs [V24 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V25 tmp1 [V25,T54] ( 3, 6 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]]>
-; V26 tmp2 [V26,T39] ( 3, 24 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]>
+; V25 tmp1 [V25,T50] ( 3, 6 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]]>
+; V26 tmp2 [V26,T36] ( 3, 24 ) ref -> [rbp-0x98] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]>
;* V27 tmp3 [V27 ] ( 0, 0 ) ref -> zero-ref
;* V28 tmp4 [V28 ] ( 0, 0 ) ref -> zero-ref
-; V29 tmp5 [V29,T58] ( 3, 6 ) int -> rsi
+; V29 tmp5 [V29,T54] ( 3, 6 ) int -> rsi
;* V30 tmp6 [V30 ] ( 0, 0 ) ref -> zero-ref
;* V31 tmp7 [V31 ] ( 0, 0 ) ref -> zero-ref
-; V32 tmp8 [V32,T35] ( 3, 32 ) int -> rsi
-; V33 tmp9 [V33,T55] ( 3, 6 ) ref -> rax class-hnd single-def "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable>
+; V32 tmp8 [V32,T32] ( 3, 32 ) int -> rsi
+; V33 tmp9 [V33,T51] ( 3, 6 ) ref -> rax class-hnd single-def "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable>
;* V34 tmp10 [V34 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V35 tmp11 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
-; V36 tmp12 [V36,T49] ( 2, 8 ) ref -> rdi class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
-; V37 tmp13 [V37,T50] ( 2, 8 ) ref -> rsi class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
-; V38 tmp14 [V38,T36] ( 2, 32 ) ref -> rdi class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
-; V39 tmp15 [V39,T37] ( 2, 32 ) ref -> rsi class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
+; V36 tmp12 [V36,T45] ( 2, 8 ) ref -> rdi class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
+; V37 tmp13 [V37,T46] ( 2, 8 ) ref -> rsi class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
+; V38 tmp14 [V38,T33] ( 2, 32 ) ref -> rdi class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
+; V39 tmp15 [V39,T34] ( 2, 32 ) ref -> rsi class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
;* V40 tmp16 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable>
-; V41 tmp17 [V41,T10] ( 2, 256 ) ref -> rdi class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
+; V41 tmp17 [V41,T09] ( 2, 256 ) ref -> rdi class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
;* V42 tmp18 [V42 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
-; V43 tmp19 [V43,T23] ( 3, 96 ) ref -> rdi class-hnd "Inline stloc first use temp" <ILCompiler.Reflection.ReadyToRun.BaseGcSlot[]>
-; V44 tmp20 [V44,T16] ( 4, 128 ) int -> rsi "Inline stloc first use temp"
+; V43 tmp19 [V43,T19] ( 3, 96 ) ref -> rdi class-hnd "Inline stloc first use temp" <ILCompiler.Reflection.ReadyToRun.BaseGcSlot[]>
+; V44 tmp20 [V44,T13] ( 4, 128 ) int -> rsi "Inline stloc first use temp"
;* V45 tmp21 [V45,T05] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V46 tmp22 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
-; V47 tmp23 [V47,T56] ( 3, 6 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot][]>
-; V48 tmp24 [V48,T47] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
-;* V49 tmp25 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable>
-; V50 tmp26 [V50,T38] ( 2, 32 ) ref -> rdi class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
-;* V51 tmp27 [V51 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
-; V52 tmp28 [V52,T40] ( 3, 24 ) ref -> rdi class-hnd "Inline stloc first use temp" <ILCompiler.Reflection.ReadyToRun.BaseGcSlot[]>
-; V53 tmp29 [V53,T34] ( 4, 32 ) int -> rsi "Inline stloc first use temp"
-;* V54 tmp30 [V54,T17] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V55 tmp31 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
-; V56 tmp32 [V56,T57] ( 3, 6 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot][]>
-; V57 tmp33 [V57,T48] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
-; V58 tmp34 [V58,T03] ( 3, 832 ) ref -> rdi "field V17._list (fldOffset=0x0)" P-INDEP
+;* V47 tmp23 [V47 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V48 tmp24 [V48,T03] ( 3, 768 ) ref -> r11 class-hnd "Inline stloc first use temp" <ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot[]>
+; V49 tmp25 [V49,T52] ( 3, 6 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot][]>
+; V50 tmp26 [V50,T43] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
+;* V51 tmp27 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable>
+; V52 tmp28 [V52,T35] ( 2, 32 ) ref -> rdi class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
+;* V53 tmp29 [V53 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
+; V54 tmp30 [V54,T37] ( 3, 24 ) ref -> rdi class-hnd "Inline stloc first use temp" <ILCompiler.Reflection.ReadyToRun.BaseGcSlot[]>
+; V55 tmp31 [V55,T31] ( 4, 32 ) int -> rsi "Inline stloc first use temp"
+; V56 tmp32 [V56,T53] ( 3, 6 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot][]>
+; V57 tmp33 [V57,T44] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
+; V58 tmp34 [V58,T02] ( 3, 832 ) ref -> rdi "field V17._list (fldOffset=0x0)" P-INDEP
; V59 tmp35 [V59,T04] ( 4, 448 ) ref -> r11 "field V17._current (fldOffset=0x8)" P-INDEP
; V60 tmp36 [V60,T00] ( 6,1600 ) int -> rdx "field V17._index (fldOffset=0x10)" P-INDEP
-;* V61 tmp37 [V61,T25] ( 0, 0 ) int -> zero-ref "field V17._version (fldOffset=0x14)" P-INDEP
-; V62 tmp38 [V62,T15] ( 3, 136 ) ref -> rdi "field V22._list (fldOffset=0x0)" P-INDEP
-; V63 tmp39 [V63,T14] ( 4, 112 ) ref -> rax "field V22._current (fldOffset=0x8)" P-INDEP
-; V64 tmp40 [V64,T07] ( 6, 328 ) int -> rdx "field V22._index (fldOffset=0x10)" P-INDEP
-;* V65 tmp41 [V65,T51] ( 0, 0 ) int -> zero-ref "field V22._version (fldOffset=0x14)" P-INDEP
-; V66 tmp42 [V66,T12] ( 3, 192 ) ref -> rdi "field V42._list (fldOffset=0x0)" P-INDEP
+;* V61 tmp37 [V61,T22] ( 0, 0 ) int -> zero-ref "field V17._version (fldOffset=0x14)" P-INDEP
+; V62 tmp38 [V62 ] ( 3, 80 ) ref -> [rbp-0x70] do-not-enreg[X] addr-exposed "field V22._list (fldOffset=0x0)" P-DEP
+; V63 tmp39 [V63 ] ( 4, 144 ) ref -> [rbp-0x68] do-not-enreg[X] addr-exposed "field V22._current (fldOffset=0x8)" P-DEP
+; V64 tmp40 [V64 ] ( 3, 80 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed "field V22._index (fldOffset=0x10)" P-DEP
+; V65 tmp41 [V65 ] ( 3, 80 ) int -> [rbp-0x5C] do-not-enreg[X] addr-exposed "field V22._version (fldOffset=0x14)" P-DEP
+; V66 tmp42 [V66,T11] ( 3, 192 ) ref -> rdi "field V42._list (fldOffset=0x0)" P-INDEP
;* V67 tmp43 [V67 ] ( 0, 0 ) ref -> zero-ref "field V42._current (fldOffset=0x8)" P-INDEP
-;* V68 tmp44 [V68,T26] ( 0, 0 ) int -> zero-ref "field V42._index (fldOffset=0x10)" P-INDEP
-;* V69 tmp45 [V69,T18] ( 0, 0 ) int -> zero-ref "field V42._version (fldOffset=0x14)" P-INDEP
-; V70 tmp46 [V70,T41] ( 3, 24 ) ref -> rdi "field V51._list (fldOffset=0x0)" P-INDEP
-;* V71 tmp47 [V71 ] ( 0, 0 ) ref -> zero-ref "field V51._current (fldOffset=0x8)" P-INDEP
-;* V72 tmp48 [V72,T52] ( 0, 0 ) int -> zero-ref "field V51._index (fldOffset=0x10)" P-INDEP
-;* V73 tmp49 [V73,T44] ( 0, 0 ) int -> zero-ref "field V51._version (fldOffset=0x14)" P-INDEP
-; V74 tmp50 [V74,T08] ( 3, 384 ) ref -> rax "arr expr"
-; V75 tmp51 [V75,T01] ( 3,1536 ) ref -> r11 "arr expr"
-;* V76 cse0 [V76,T19] ( 0, 0 ) int -> zero-ref "CSE #03: aggressive"
-; V77 cse1 [V77,T02] ( 2,1024 ) int -> r11 "CSE #04: aggressive"
-;* V78 cse2 [V78,T45] ( 0, 0 ) int -> zero-ref "CSE #07: moderate"
-; V79 cse3 [V79,T13] ( 2, 128 ) int -> rax "CSE #08: moderate"
-; V80 cse4 [V80,T20] ( 5, 112 ) int -> [rbp-0x54] multi-def "CSE #05: moderate"
+;* V68 tmp44 [V68,T23] ( 0, 0 ) int -> zero-ref "field V42._index (fldOffset=0x10)" P-INDEP
+;* V69 tmp45 [V69,T14] ( 0, 0 ) int -> zero-ref "field V42._version (fldOffset=0x14)" P-INDEP
+; V70 tmp46 [V70,T38] ( 3, 24 ) ref -> rdi "field V53._list (fldOffset=0x0)" P-INDEP
+;* V71 tmp47 [V71,T47] ( 0, 0 ) ref -> zero-ref "field V53._current (fldOffset=0x8)" P-INDEP
+;* V72 tmp48 [V72,T48] ( 0, 0 ) int -> zero-ref "field V53._index (fldOffset=0x10)" P-INDEP
+; V73 tmp49 [V73,T41] ( 2, 16 ) int -> rsi "field V53._version (fldOffset=0x14)" P-INDEP
+;* V74 cse0 [V74,T15] ( 0, 0 ) int -> zero-ref "CSE #03: aggressive"
+; V75 cse1 [V75,T01] ( 2,1024 ) int -> r11 "CSE #05: aggressive"
+; V76 cse2 [V76,T06] ( 2, 512 ) int -> r13 "CSE #04: aggressive"
+; V77 cse3 [V77,T21] ( 3, 80 ) long -> [rbp-0x78] spill-single-def "CSE #08: moderate"
+; V78 cse4 [V78,T16] ( 5, 112 ) int -> [rbp-0x7C] multi-def "CSE #06: moderate"
;
-; Lcl frame size = 72
+; Lcl frame size = 120
G_M54607_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 72
- lea rbp, [rsp+0x70]
+ sub rsp, 120
+ lea rbp, [rsp+0xA0]
+ vxorps xmm8, xmm8, xmm8
+ vmovdqa xmmword ptr [rbp-0x70], xmm8
+ xor eax, eax
+ mov qword ptr [rbp-0x60], rax
mov rbx, rdi
mov r14, rsi
mov r15, rdx
- ;; size=28 bbWeight=1 PerfScore 7.50
+ ;; size=47 bbWeight=1 PerfScore 11.08
G_M54607_IG02:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]]
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdi, 0xD1FFAB1E
mov esi, 61
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.List`1[System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]]:s_emptyArray
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [r13+0x08]
call CORINFO_HELP_ASSIGN_REF
- mov gword ptr [rbp-0x60], r13
+ mov gword ptr [rbp-0x88], r13
mov rax, gword ptr [rbx+0x40]
mov r12d, dword ptr [rax+0x1C]
sub r12d, dword ptr [rax+0x18]
mov dword ptr [rbp-0x2C], r12d
test r12d, r12d
jne SHORT G_M54607_IG05
- ;; size=85 bbWeight=1 PerfScore 17.00
+ ;; size=88 bbWeight=1 PerfScore 17.00
G_M54607_IG03:
xor rax, rax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M54607_IG04:
- add rsp, 72
+ add rsp, 120
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M54607_IG05:
xor eax, eax
mov dword ptr [rbp-0x30], eax
mov rdi, r14
mov rdx, r15
mov esi, 1
mov rcx, 0xD1FFAB1E ; code for ILCompiler.Reflection.ReadyToRun.NativeReader:ReadBits(ubyte[],int,byref):int
call [rcx]ILCompiler.Reflection.ReadyToRun.NativeReader:ReadBits(ubyte[],int,byref):int
test eax, eax
je SHORT G_M54607_IG06
mov rsi, gword ptr [rbx+0x28]
mov esi, dword ptr [rsi+0x68]
mov rdi, r14
mov rdx, r15
mov rax, 0xD1FFAB1E ; code for ILCompiler.Reflection.ReadyToRun.NativeReader:DecodeVarLengthUnsigned(ubyte[],int,byref):uint
call [rax]ILCompiler.Reflection.ReadyToRun.NativeReader:DecodeVarLengthUnsigned(ubyte[],int,byref):uint
inc eax
mov dword ptr [rbp-0x30], eax
;; size=62 bbWeight=0.50 PerfScore 7.75
G_M54607_IG06:
mov ecx, dword ptr [r15]
mov dword ptr [rbp-0x34], ecx
xor edx, edx
mov dword ptr [rbp-0x38], edx
cmp dword ptr [rbx+0x74], 0
je G_M54607_IG09
;; size=21 bbWeight=0.50 PerfScore 4.12
G_M54607_IG07:
mov dword ptr [r15], ecx
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x70], rax
+ mov gword ptr [rbp-0x98], rax
mov rdi, 0xD1FFAB1E
mov esi, 60
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]:s_emptyArray
mov rsi, gword ptr [rdi]
- mov rax, gword ptr [rbp-0x70]
+ mov rax, gword ptr [rbp-0x98]
lea rdi, bword ptr [rax+0x08]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x70]
- mov gword ptr [rbp-0x68], rax
+ mov rax, gword ptr [rbp-0x98]
+ mov gword ptr [rbp-0x90], rax
mov ecx, dword ptr [rbp-0x30]
test ecx, ecx
je G_M54607_IG29
- ;; size=87 bbWeight=4 PerfScore 55.00
+ ;; size=99 bbWeight=4 PerfScore 55.00
G_M54607_IG08:
mov r8d, dword ptr [rbp-0x38]
mov edi, ecx
imul edi, r8d
add dword ptr [r15], edi
mov rdi, r14
mov dword ptr [rbp-0x30], ecx
mov esi, ecx
mov rdx, r15
mov r9, 0xD1FFAB1E ; code for ILCompiler.Reflection.ReadyToRun.NativeReader:ReadBits(ubyte[],int,byref):int
call [r9]ILCompiler.Reflection.ReadyToRun.NativeReader:ReadBits(ubyte[],int,byref):int
mov ecx, dword ptr [rbp-0x30]
mov edi, ecx
imul edi, dword ptr [rbx+0x74]
mov r8d, dword ptr [rbp-0x34]
lea edi, [rdi+r8+0x07]
and edi, -8
add edi, eax
mov dword ptr [r15], edi
mov rdi, r14
mov rdx, r15
mov esi, 1
mov rax, 0xD1FFAB1E ; code for ILCompiler.Reflection.ReadyToRun.NativeReader:ReadBits(ubyte[],int,byref):int
call [rax]ILCompiler.Reflection.ReadyToRun.NativeReader:ReadBits(ubyte[],int,byref):int
test eax, eax
je G_M54607_IG30
mov rdi, r14
mov rdx, r15
mov esi, 1
mov rax, 0xD1FFAB1E ; code for ILCompiler.Reflection.ReadyToRun.NativeReader:ReadBits(ubyte[],int,byref):int
call [rax]ILCompiler.Reflection.ReadyToRun.NativeReader:ReadBits(ubyte[],int,byref):int
test eax, eax
sete al
movzx rax, al
mov dword ptr [rbp-0x40], 1
mov dword ptr [rbp-0x3C], eax
test eax, eax
jne SHORT G_M54607_IG10
mov rdi, gword ptr [rbx+0x28]
mov esi, dword ptr [rdi+0x70]
jmp SHORT G_M54607_IG11
;; size=148 bbWeight=2 PerfScore 82.00
G_M54607_IG09:
- mov r13, gword ptr [rbp-0x60]
- jmp G_M54607_IG41
- align [0 bytes for IG20]
- ;; size=9 bbWeight=0.25 PerfScore 0.75
+ mov r13, gword ptr [rbp-0x88]
+ jmp G_M54607_IG43
+ align [6 bytes for IG20]
+ ;; size=18 bbWeight=0.25 PerfScore 0.75
G_M54607_IG10:
mov rsi, gword ptr [rbx+0x28]
mov esi, dword ptr [rsi+0x74]
;; size=7 bbWeight=2 PerfScore 8.00
G_M54607_IG11:
mov rdi, r14
mov rdx, r15
mov r8, 0xD1FFAB1E ; code for ILCompiler.Reflection.ReadyToRun.NativeReader:DecodeVarLengthUnsigned(ubyte[],int,byref):uint
call [r8]ILCompiler.Reflection.ReadyToRun.NativeReader:DecodeVarLengthUnsigned(ubyte[],int,byref):uint
cmp dword ptr [rbp-0x3C], 0
sete dil
movzx rdi, dil
mov ecx, edi
mov dword ptr [rbp-0x44], eax
cmp eax, r12d
jae SHORT G_M54607_IG14
;; size=41 bbWeight=2 PerfScore 19.00
G_M54607_IG12:
mov dword ptr [rbp-0x3C], ecx
test ecx, ecx
jne SHORT G_M54607_IG15
;; size=7 bbWeight=16 PerfScore 36.00
G_M54607_IG13:
mov rdi, gword ptr [rbx+0x28]
mov esi, dword ptr [rdi+0x70]
jmp SHORT G_M54607_IG16
;; size=9 bbWeight=8 PerfScore 48.00
G_M54607_IG14:
mov r12d, dword ptr [rbp-0x2C]
jmp G_M54607_IG27
;; size=9 bbWeight=1 PerfScore 3.00
G_M54607_IG15:
mov rsi, gword ptr [rbx+0x28]
mov esi, dword ptr [rsi+0x74]
;; size=7 bbWeight=8 PerfScore 32.00
G_M54607_IG16:
mov rdi, r14
mov rdx, r15
mov r8, 0xD1FFAB1E ; code for ILCompiler.Reflection.ReadyToRun.NativeReader:DecodeVarLengthUnsigned(ubyte[],int,byref):uint
call [r8]ILCompiler.Reflection.ReadyToRun.NativeReader:DecodeVarLengthUnsigned(ubyte[],int,byref):uint
inc eax
mov dword ptr [rbp-0x48], eax
cmp dword ptr [rbp-0x40], 0
je SHORT G_M54607_IG19
;; size=30 bbWeight=16 PerfScore 128.00
G_M54607_IG17:
mov r8d, dword ptr [rbp-0x44]
mov r9d, r8d
lea r10d, [r9+rax]
- mov dword ptr [rbp-0x54], r10d
+ mov dword ptr [rbp-0x7C], r10d
cmp r10d, r9d
jbe G_M54607_IG26
;; size=24 bbWeight=8 PerfScore 32.00
G_M54607_IG18:
xor esi, esi
mov rdi, gword ptr [rbx+0x40]
mov rdi, gword ptr [rdi+0x08]
mov edx, dword ptr [rdi+0x14]
xor edx, edx
jmp SHORT G_M54607_IG21
;; size=17 bbWeight=64 PerfScore 544.00
G_M54607_IG19:
jmp G_M54607_IG26
;; size=5 bbWeight=8 PerfScore 16.00
G_M54607_IG20:
cmp dword ptr [r11+0x18], 4
je SHORT G_M54607_IG21
mov dword ptr [rbp-0x4C], r9d
mov r13d, r9d
movsxd r12, esi
cmp r13, r12
je SHORT G_M54607_IG23
inc esi
mov r9d, dword ptr [rbp-0x4C]
;; size=28 bbWeight=128 PerfScore 1024.00
G_M54607_IG21:
mov r11d, dword ptr [rdi+0x10]
cmp edx, r11d
jae SHORT G_M54607_IG25
;; size=9 bbWeight=512 PerfScore 1664.00
G_M54607_IG22:
mov r11, gword ptr [rdi+0x08]
- cmp edx, dword ptr [r11+0x08]
- jae G_M54607_IG44
+ mov r13d, dword ptr [r11+0x08]
+ cmp r13d, edx
+ jbe SHORT G_M54607_IG25
mov r13d, edx
mov r11, gword ptr [r11+8*r13+0x10]
inc edx
jmp SHORT G_M54607_IG20
- ;; size=26 bbWeight=256 PerfScore 2688.00
+ ;; size=25 bbWeight=256 PerfScore 2496.00
G_M54607_IG23:
- mov r13, gword ptr [rbp-0x68]
+ mov r13, gword ptr [rbp-0x90]
inc dword ptr [r13+0x14]
mov rdi, gword ptr [r13+0x08]
mov esi, dword ptr [r13+0x10]
cmp dword ptr [rdi+0x08], esi
jbe SHORT G_M54607_IG24
lea edx, [rsi+0x01]
mov dword ptr [r13+0x10], edx
movsxd rsi, esi
mov rdx, r11
mov r11, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [r11]CORINFO_HELP_ARRADDR_ST
mov r9d, dword ptr [rbp-0x4C]
jmp SHORT G_M54607_IG25
- ;; size=53 bbWeight=32 PerfScore 648.00
+ ;; size=56 bbWeight=32 PerfScore 648.00
G_M54607_IG24:
mov rdi, r13
mov rsi, r11
mov rdx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
call [rdx]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
mov r9d, dword ptr [rbp-0x4C]
;; size=22 bbWeight=32 PerfScore 152.00
G_M54607_IG25:
inc r9d
- mov r10d, dword ptr [rbp-0x54]
+ mov r10d, dword ptr [rbp-0x7C]
cmp r10d, r9d
- mov dword ptr [rbp-0x54], r10d
+ mov dword ptr [rbp-0x7C], r10d
ja G_M54607_IG18
;; size=20 bbWeight=64 PerfScore 224.00
G_M54607_IG26:
mov r8d, dword ptr [rbp-0x44]
mov r10d, r8d
add r10d, dword ptr [rbp-0x48]
mov r8d, r10d
cmp dword ptr [rbp-0x3C], 0
sete sil
movzx rsi, sil
cmp dword ptr [rbp-0x40], 0
sete cl
movzx rcx, cl
mov r12d, dword ptr [rbp-0x2C]
cmp r8d, r12d
mov dword ptr [rbp-0x44], r8d
mov dword ptr [rbp-0x40], ecx
jb SHORT G_M54607_IG28
;; size=52 bbWeight=16 PerfScore 228.00
G_M54607_IG27:
- mov r13, gword ptr [rbp-0x60]
+ mov r13, gword ptr [rbp-0x88]
inc dword ptr [r13+0x14]
mov rdi, gword ptr [r13+0x08]
mov esi, dword ptr [r13+0x10]
cmp dword ptr [rdi+0x08], esi
- jbe G_M54607_IG39
+ jbe G_M54607_IG41
lea edx, [rsi+0x01]
mov dword ptr [r13+0x10], edx
movsxd rsi, esi
- mov rdx, gword ptr [rbp-0x68]
+ mov rdx, gword ptr [rbp-0x90]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- jmp G_M54607_IG40
- align [5 bytes for IG33]
- ;; size=61 bbWeight=2 PerfScore 40.00
+ jmp G_M54607_IG42
+ ;; size=62 bbWeight=2 PerfScore 40.00
G_M54607_IG28:
mov ecx, esi
jmp G_M54607_IG12
;; size=7 bbWeight=8 PerfScore 18.00
G_M54607_IG29:
mov edi, r12d
imul edi, dword ptr [rbp-0x38]
add dword ptr [r15], edi
mov dword ptr [rbp-0x30], ecx
;; size=13 bbWeight=2 PerfScore 16.50
G_M54607_IG30:
xor r9d, r9d
mov dword ptr [rbp-0x50], r9d
;; size=7 bbWeight=2 PerfScore 2.50
G_M54607_IG31:
mov rdi, r14
mov rdx, r15
mov esi, 1
mov r10, 0xD1FFAB1E ; code for ILCompiler.Reflection.ReadyToRun.NativeReader:ReadBits(ubyte[],int,byref):int
call [r10]ILCompiler.Reflection.ReadyToRun.NativeReader:ReadBits(ubyte[],int,byref):int
test eax, eax
- je G_M54607_IG37
+ je G_M54607_IG39
;; size=32 bbWeight=16 PerfScore 84.00
G_M54607_IG32:
- xor esi, esi
+ xor eax, eax
+ mov dword ptr [rbp-0x54], eax
mov rdi, gword ptr [rbx+0x40]
mov rdi, gword ptr [rdi+0x08]
- mov edx, dword ptr [rdi+0x14]
- xor edx, edx
- jmp SHORT G_M54607_IG34
- ;; size=17 bbWeight=8 PerfScore 68.00
+ mov esi, dword ptr [rdi+0x14]
+ mov gword ptr [rbp-0x70], rdi
+ xor rdi, rdi
+ mov gword ptr [rbp-0x68], rdi
+ ;; size=26 bbWeight=8 PerfScore 76.00
G_M54607_IG33:
- cmp dword ptr [rax+0x18], 4
- je SHORT G_M54607_IG34
- mov r8d, dword ptr [rbp-0x50]
- movsxd r9, esi
- cmp r8, r9
- je SHORT G_M54607_IG35
- inc esi
- ;; size=20 bbWeight=32 PerfScore 216.00
+ mov dword ptr [rbp-0x60], edi
+ mov dword ptr [rbp-0x5C], esi
+ lea rdi, [rbp-0x70]
+ mov rcx, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]
+ mov qword ptr [rbp-0x78], rcx
+ mov rsi, rcx
+ mov rdx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rdx]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M54607_IG39
+ ;; size=43 bbWeight=8 PerfScore 68.00
G_M54607_IG34:
- mov eax, dword ptr [rdi+0x10]
- cmp edx, eax
- jae SHORT G_M54607_IG37
- mov rax, gword ptr [rdi+0x08]
- cmp edx, dword ptr [rax+0x08]
- jae G_M54607_IG44
- mov ecx, edx
- mov rax, gword ptr [rax+8*rcx+0x10]
- inc edx
- jmp SHORT G_M54607_IG33
- ;; size=31 bbWeight=64 PerfScore 880.00
+ mov rdx, gword ptr [rbp-0x68]
+ cmp dword ptr [rdx+0x18], 4
+ je SHORT G_M54607_IG36
+ ;; size=10 bbWeight=64 PerfScore 320.00
G_M54607_IG35:
- mov r8, gword ptr [rbp-0x68]
- inc dword ptr [r8+0x14]
- mov rdi, gword ptr [r8+0x08]
- mov esi, dword ptr [r8+0x10]
+ mov edi, dword ptr [rbp-0x50]
+ mov esi, dword ptr [rbp-0x54]
+ movsxd rcx, esi
+ cmp rdi, rcx
+ je SHORT G_M54607_IG37
+ inc esi
+ mov dword ptr [rbp-0x54], esi
+ ;; size=19 bbWeight=32 PerfScore 152.00
+G_M54607_IG36:
+ lea rdi, [rbp-0x70]
+ mov rsi, qword ptr [rbp-0x78]
+ mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rcx]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M54607_IG34
+ jmp SHORT G_M54607_IG39
+ ;; size=26 bbWeight=64 PerfScore 512.00
+G_M54607_IG37:
+ mov rcx, gword ptr [rbp-0x90]
+ inc dword ptr [rcx+0x14]
+ mov rdi, gword ptr [rcx+0x08]
+ mov esi, dword ptr [rcx+0x10]
cmp dword ptr [rdi+0x08], esi
- jbe SHORT G_M54607_IG36
- lea edx, [rsi+0x01]
- mov dword ptr [r8+0x10], edx
+ jbe SHORT G_M54607_IG38
+ lea r8d, [rsi+0x01]
+ mov dword ptr [rcx+0x10], r8d
movsxd rsi, esi
- mov rdx, rax
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
- call [rax]CORINFO_HELP_ARRADDR_ST
- jmp SHORT G_M54607_IG37
- ;; size=48 bbWeight=8 PerfScore 154.00
-G_M54607_IG36:
- mov rdi, r8
- mov rsi, rax
- mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
- call [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
+ mov r8, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
+ call [r8]CORINFO_HELP_ARRADDR_ST
+ jmp SHORT G_M54607_IG39
+ ;; size=48 bbWeight=8 PerfScore 152.00
+G_M54607_IG38:
+ mov rdi, rcx
+ mov rsi, rdx
+ mov rdx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
+ call [rdx]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
;; size=18 bbWeight=8 PerfScore 30.00
-G_M54607_IG37:
- mov ecx, dword ptr [rbp-0x50]
- inc ecx
- cmp ecx, r12d
- mov dword ptr [rbp-0x50], ecx
+G_M54607_IG39:
+ mov eax, dword ptr [rbp-0x50]
+ inc eax
+ cmp eax, r12d
+ mov dword ptr [rbp-0x50], eax
jb G_M54607_IG31
;; size=17 bbWeight=16 PerfScore 56.00
-G_M54607_IG38:
- mov rax, gword ptr [rbp-0x68]
- mov r13, gword ptr [rbp-0x60]
+G_M54607_IG40:
+ mov rax, gword ptr [rbp-0x90]
+ mov r13, gword ptr [rbp-0x88]
inc dword ptr [r13+0x14]
mov rdi, gword ptr [r13+0x08]
mov esi, dword ptr [r13+0x10]
cmp dword ptr [rdi+0x08], esi
- jbe SHORT G_M54607_IG39
+ jbe SHORT G_M54607_IG41
lea edx, [rsi+0x01]
mov dword ptr [r13+0x10], edx
movsxd rsi, esi
mov rdx, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- jmp SHORT G_M54607_IG40
- ;; size=52 bbWeight=2 PerfScore 40.50
-G_M54607_IG39:
+ jmp SHORT G_M54607_IG42
+ ;; size=58 bbWeight=2 PerfScore 40.50
+G_M54607_IG41:
mov rdi, r13
- mov rsi, gword ptr [rbp-0x68]
+ mov rsi, gword ptr [rbp-0x90]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
- ;; size=19 bbWeight=2 PerfScore 9.00
-G_M54607_IG40:
+ ;; size=22 bbWeight=2 PerfScore 9.00
+G_M54607_IG42:
mov r8d, dword ptr [rbp-0x38]
inc r8d
cmp r8d, dword ptr [rbx+0x74]
mov dword ptr [rbp-0x38], r8d
mov ecx, dword ptr [rbp-0x34]
- jb SHORT G_M54607_IG43
+ jb SHORT G_M54607_IG45
;; size=20 bbWeight=4 PerfScore 29.00
-G_M54607_IG41:
+G_M54607_IG43:
mov rax, r13
;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M54607_IG42:
- add rsp, 72
+G_M54607_IG44:
+ add rsp, 120
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M54607_IG43:
+G_M54607_IG45:
jmp G_M54607_IG07
;; size=5 bbWeight=2 PerfScore 4.00
-G_M54607_IG44:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1214, prolog size 28, PerfScore 9320.12, instruction count 332, allocated bytes for code 1214 (MethodHash=d7fe2ab0) for method ILCompiler.Reflection.ReadyToRun.Amd64.GcInfo:GetLiveSlotsAtSafepoints(ubyte[],byref):System.Collections.Generic.List`1[System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]]:this (FullOpts)
+; Total bytes of code 1319, prolog size 47, PerfScore 9093.71, instruction count 345, allocated bytes for code 1319 (MethodHash=d7fe2ab0) for method ILCompiler.Reflection.ReadyToRun.Amd64.GcInfo:GetLiveSlotsAtSafepoints(ubyte[],byref):System.Collections.Generic.List`1[System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]]:this (FullOpts)
101 (16.92 % of base) - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[double]:ConsumeReservedMessagesGreedyBounded():this
; Assembly listing for method System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[double]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 17 single block inlinees; 8 inlinees without PGO data
+; 0 inlinees with PGO data; 17 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T11] ( 8, 11.50) ref -> rbx this class-hnd single-def <System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[double]>
-; V01 loc0 [V01,T28] ( 4, 5.50) int -> r15
+; V00 this [V00,T07] ( 8, 11.50) ref -> rbx this class-hnd single-def <System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[double]>
+; V01 loc0 [V01,T22] ( 4, 5.50) int -> r15
; V02 loc1 [V02,T01] ( 13, 32 ) ref -> r14 class-hnd single-def <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]]>
-;* V03 loc2 [V03,T33] ( 0, 0 ) int -> zero-ref
+;* V03 loc2 [V03,T28] ( 0, 0 ) int -> zero-ref
;* V04 loc3 [V04 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]>
; V05 loc4 [V05 ] ( 2, 8 ) ubyte -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
-; V06 loc5 [V06,T36] ( 2, 6 ) double -> [rbp-0x38] spill-single-def
+; V06 loc5 [V06,T30] ( 2, 6 ) double -> [rbp-0x38] spill-single-def
;* V07 loc6 [V07 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]>
;* V08 loc7 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]>
;* V09 loc8 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]>
;* V10 loc9 [V10 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]>
-; V11 loc10 [V11,T32] ( 4, 1.50) ref -> [rbp-0x58] class-hnd EH-live spill-single-def <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
+; V11 loc10 [V11,T27] ( 4, 1.50) ref -> [rbp-0xA8] class-hnd EH-live spill-single-def <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
; V12 loc11 [V12 ] ( 5, 4 ) ubyte -> [rbp-0x40] do-not-enreg[X] addr-exposed ld-addr-op
-;* V13 loc12 [V13 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]]>
+; V13 loc12 [V13 ] ( 8, 17 ) struct (40) [rbp-0x68] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]]>
;* V14 loc13 [V14 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]>
;# V15 OutArgs [V15 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V16 tmp1 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Threading.Tasks.Dataflow.ISourceBlock`1[double]>
;* V17 tmp2 [V17 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.Tasks.Dataflow.DataflowMessageHeader>
;* V18 tmp3 [V18 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.Tasks.Dataflow.DataflowMessageHeader>
-; V19 tmp4 [V19,T00] ( 11, 44 ) ref -> r12 class-hnd "impAppendStmt" <System.Collections.Generic.Queue`1[double]>
-; V20 tmp5 [V20,T30] ( 3, 3 ) ref -> rsi class-hnd single-def "dup spill" <System.Threading.Tasks.Dataflow.Internal.BoundingState>
+; V19 tmp4 [V19,T00] ( 11, 44 ) ref -> r14 class-hnd "impAppendStmt" <System.Collections.Generic.Queue`1[double]>
+; V20 tmp5 [V20,T25] ( 3, 3 ) ref -> rdi class-hnd single-def "dup spill" <System.Threading.Tasks.Dataflow.Internal.BoundingState>
;* V21 tmp6 [V21 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]>
;* V22 tmp7 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
;* V23 tmp8 [V23 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]>
;* V24 tmp9 [V24 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]>
-;* V25 tmp10 [V25 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]]>
+; V25 tmp10 [V25,T23] ( 2, 4 ) struct (40) [rbp-0x90] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]]>
;* V26 tmp11 [V26 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
-; V27 tmp12 [V27,T12] ( 3, 12 ) byref -> rax "Inlining Arg"
-; V28 tmp13 [V28,T23] ( 4, 8 ) int -> rcx "Inline stloc first use temp"
-;* V29 tmp14 [V29,T24] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V30 tmp15 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]]>
-;* V31 tmp16 [V31,T29] ( 0, 0 ) long -> zero-ref "field V08.key (fldOffset=0x0)" P-INDEP
-;* V32 tmp17 [V32 ] ( 0, 0 ) double -> zero-ref "field V08.value (fldOffset=0x8)" P-INDEP
-;* V33 tmp18 [V33 ] ( 0, 0 ) long -> zero-ref "field V09.key (fldOffset=0x0)" P-INDEP
-;* V34 tmp19 [V34 ] ( 0, 0 ) double -> zero-ref "field V09.value (fldOffset=0x8)" P-INDEP
-;* V35 tmp20 [V35 ] ( 0, 0 ) long -> zero-ref "field V17._id (fldOffset=0x0)" P-INDEP
-;* V36 tmp21 [V36 ] ( 0, 0 ) long -> zero-ref "field V18._id (fldOffset=0x0)" P-INDEP
-;* V37 tmp22 [V37 ] ( 0, 0 ) long -> zero-ref "field V23.key (fldOffset=0x0)" P-INDEP
-;* V38 tmp23 [V38 ] ( 0, 0 ) double -> zero-ref "field V23.value (fldOffset=0x8)" P-INDEP
-; V39 tmp24 [V39,T20] ( 3, 10 ) ref -> [rbp-0x60] spill-single-def "V04.[000..008)"
-; V40 tmp25 [V40,T10] ( 3, 10 ) long -> [rbp-0x48] spill-single-def "V04.[008..016)"
-;* V41 tmp26 [V41 ] ( 0, 0 ) double -> zero-ref "V04.[016..024)"
-;* V42 tmp27 [V42 ] ( 0, 0 ) ref -> zero-ref "V10.[000..008)"
-;* V43 tmp28 [V43 ] ( 0, 0 ) long -> zero-ref "V10.[008..016)"
-;* V44 tmp29 [V44 ] ( 0, 0 ) double -> zero-ref "V10.[016..024)"
-; V45 tmp30 [V45,T08] ( 4, 17 ) ref -> r14 single-def "V13.[000..008)"
-; V46 tmp31 [V46,T03] ( 6, 21 ) int -> r13 "V13.[008..012)"
-; V47 tmp32 [V47,T22] ( 2, 9 ) int -> r15 "V13.[012..016)"
-; V48 tmp33 [V48,T13] ( 2, 8 ) ref -> rdi "V13.[016..024)"
-;* V49 tmp34 [V49 ] ( 0, 0 ) long -> zero-ref "V13.[024..032)"
-; V50 tmp35 [V50,T35] ( 2, 6 ) double -> [rbp-0x50] "V13.[032..040)"
-;* V51 tmp36 [V51 ] ( 0, 0 ) ref -> zero-ref "V14.[000..008)"
-;* V52 tmp37 [V52 ] ( 0, 0 ) long -> zero-ref "V14.[008..016)"
-;* V53 tmp38 [V53 ] ( 0, 0 ) double -> zero-ref "V14.[016..024)"
-;* V54 tmp39 [V54 ] ( 0, 0 ) ref -> zero-ref single-def "V25.[000..008)"
-;* V55 tmp40 [V55 ] ( 0, 0 ) int -> zero-ref "V25.[008..012)"
-; V56 tmp41 [V56,T31] ( 2, 2 ) int -> r15 "V25.[012..016)"
-;* V57 tmp42 [V57 ] ( 0, 0 ) ref -> zero-ref single-def "V25.[016..024)"
-;* V58 tmp43 [V58 ] ( 0, 0 ) long -> zero-ref "V25.[024..032)"
-;* V59 tmp44 [V59 ] ( 0, 0 ) double -> zero-ref "V25.[032..040)"
-;* V60 tmp45 [V60 ] ( 0, 0 ) ref -> zero-ref "V24.[000..008)"
-;* V61 tmp46 [V61 ] ( 0, 0 ) long -> zero-ref "V24.[008..016)"
-;* V62 tmp47 [V62 ] ( 0, 0 ) double -> zero-ref "V24.[016..024)"
-; V63 tmp48 [V63,T04] ( 3, 24 ) byref -> rcx "Spilling address for field-by-field copy"
-; V64 tmp49 [V64,T09] ( 4, 16 ) byref -> r12 "Spilling address for field-by-field copy"
-; V65 tmp50 [V65,T05] ( 3, 24 ) byref -> rsi "Spilling address for field-by-field copy"
-; V66 tmp51 [V66,T06] ( 3, 24 ) ref -> rdx "arr expr"
-;* V67 tmp52 [V67,T25] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V68 tmp53 [V68,T14] ( 3, 12 ) ref -> rdi "arr expr"
-; V69 tmp54 [V69,T07] ( 3, 24 ) ref -> rsi "arr expr"
-; V70 tmp55 [V70,T15] ( 3, 12 ) ref -> rax "arr expr"
-; V71 tmp56 [V71,T18] ( 3, 12 ) int -> rcx "index expr"
-; V72 PSPSym [V72,T34] ( 1, 1 ) long -> [rbp-0x70] do-not-enreg[V] "PSPSym"
-; V73 cse0 [V73,T16] ( 3, 12 ) byref -> rdx "CSE #05: moderate"
-; V74 cse1 [V74,T21] ( 3, 10 ) long -> r12 "CSE #04: moderate"
-; V75 cse2 [V75,T17] ( 2, 8 ) ref -> rdx "CSE #01: moderate"
-; V76 cse3 [V76,T19] ( 2, 8 ) int -> rsi "CSE #11: moderate"
-; V77 cse4 [V77,T27] ( 3, 6 ) int -> rsi "CSE #08: moderate"
-; V78 cse5 [V78,T26] ( 3, 6 ) ref -> rdi "CSE #09: moderate"
-; V79 rat0 [V79,T02] ( 9, 29 ) long -> r13 "Widened IV V03"
+; V27 tmp12 [V27,T08] ( 3, 12 ) byref -> rsi "Inlining Arg"
+; V28 tmp13 [V28,T16] ( 4, 8 ) int -> rax "Inline stloc first use temp"
+;* V29 tmp14 [V29,T24] ( 0, 0 ) long -> zero-ref "field V08.key (fldOffset=0x0)" P-INDEP
+;* V30 tmp15 [V30 ] ( 0, 0 ) double -> zero-ref "field V08.value (fldOffset=0x8)" P-INDEP
+;* V31 tmp16 [V31 ] ( 0, 0 ) long -> zero-ref "field V09.key (fldOffset=0x0)" P-INDEP
+;* V32 tmp17 [V32 ] ( 0, 0 ) double -> zero-ref "field V09.value (fldOffset=0x8)" P-INDEP
+;* V33 tmp18 [V33 ] ( 0, 0 ) long -> zero-ref "field V17._id (fldOffset=0x0)" P-INDEP
+;* V34 tmp19 [V34 ] ( 0, 0 ) long -> zero-ref "field V18._id (fldOffset=0x0)" P-INDEP
+;* V35 tmp20 [V35 ] ( 0, 0 ) long -> zero-ref "field V23.key (fldOffset=0x0)" P-INDEP
+;* V36 tmp21 [V36 ] ( 0, 0 ) double -> zero-ref "field V23.value (fldOffset=0x8)" P-INDEP
+; V37 tmp22 [V37,T14] ( 3, 10 ) ref -> [rbp-0xB0] spill-single-def "V04.[000..008)"
+; V38 tmp23 [V38,T06] ( 3, 10 ) long -> [rbp-0x98] spill-single-def "V04.[008..016)"
+;* V39 tmp24 [V39 ] ( 0, 0 ) double -> zero-ref "V04.[016..024)"
+;* V40 tmp25 [V40 ] ( 0, 0 ) ref -> zero-ref "V10.[000..008)"
+;* V41 tmp26 [V41 ] ( 0, 0 ) long -> zero-ref "V10.[008..016)"
+;* V42 tmp27 [V42 ] ( 0, 0 ) double -> zero-ref "V10.[016..024)"
+; V43 tmp28 [V43,T17] ( 2, 8 ) ref -> rsi "V14.[000..008)"
+;* V44 tmp29 [V44 ] ( 0, 0 ) long -> zero-ref "V14.[008..016)"
+; V45 tmp30 [V45,T31] ( 2, 6 ) double -> [rbp-0xA0] spill-single-def "V14.[016..024)"
+;* V46 tmp31 [V46 ] ( 0, 0 ) ref -> zero-ref single-def "V25.[000..008)"
+;* V47 tmp32 [V47 ] ( 0, 0 ) int -> zero-ref "V25.[008..012)"
+; V48 tmp33 [V48,T26] ( 2, 2 ) int -> rdi "V25.[012..016)"
+;* V49 tmp34 [V49 ] ( 0, 0 ) ref -> zero-ref "V24.[000..008)"
+;* V50 tmp35 [V50 ] ( 0, 0 ) long -> zero-ref "V24.[008..016)"
+;* V51 tmp36 [V51 ] ( 0, 0 ) double -> zero-ref "V24.[016..024)"
+; V52 tmp37 [V52,T03] ( 3, 24 ) byref -> rcx "Spilling address for field-by-field copy"
+; V53 tmp38 [V53,T05] ( 4, 16 ) byref -> r12 "Spilling address for field-by-field copy"
+; V54 tmp39 [V54,T04] ( 3, 24 ) ref -> rdx "arr expr"
+;* V55 tmp40 [V55,T18] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V56 tmp41 [V56,T09] ( 3, 12 ) ref -> rdi "arr expr"
+; V57 tmp42 [V57,T10] ( 3, 12 ) ref -> rsi "arr expr"
+; V58 tmp43 [V58,T13] ( 3, 12 ) int -> rax "index expr"
+; V59 PSPSym [V59,T29] ( 1, 1 ) long -> [rbp-0xC0] do-not-enreg[V] "PSPSym"
+; V60 cse0 [V60,T11] ( 3, 12 ) byref -> rdx "CSE #05: moderate"
+; V61 cse1 [V61,T15] ( 3, 10 ) long -> r12 "CSE #04: moderate"
+; V62 cse2 [V62,T12] ( 2, 8 ) ref -> rdx "CSE #01: moderate"
+; V63 cse3 [V63,T20] ( 3, 6 ) int -> rsi "CSE #08: moderate"
+; V64 cse4 [V64,T19] ( 3, 6 ) ref -> rdi "CSE #09: moderate"
+; V65 cse5 [V65,T21] ( 3, 6 ) long -> r15 "CSE #10: moderate"
+; V66 rat0 [V66,T02] ( 9, 29 ) long -> r13 "Widened IV V03"
;
-; Lcl frame size = 72
+; Lcl frame size = 152
G_M55778_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 72
- lea rbp, [rsp+0x70]
- mov qword ptr [rbp-0x70], rsp
+ sub rsp, 152
+ lea rbp, [rsp+0xC0]
+ vxorps xmm8, xmm8, xmm8
+ vmovdqu ymmword ptr [rbp-0x90], ymm8
+ vmovdqu ymmword ptr [rbp-0x70], ymm8
+ vmovdqa xmmword ptr [rbp-0x50], xmm8
+ mov qword ptr [rbp-0xC0], rsp
mov rbx, rdi
- ;; size=26 bbWeight=1 PerfScore 8.00
+ ;; size=58 bbWeight=1 PerfScore 14.33
G_M55778_IG02:
xor r15d, r15d
mov rdx, gword ptr [rbx+0x20]
mov r14, gword ptr [rdx+0x18]
xor r13d, r13d
cmp dword ptr [r14+0x10], 0
jle G_M55778_IG06
;; size=25 bbWeight=1 PerfScore 8.50
G_M55778_IG03:
cmp r13d, dword ptr [r14+0x10]
- jae G_M55778_IG23
+ jae G_M55778_IG25
mov rdx, gword ptr [r14+0x08]
cmp r13d, dword ptr [rdx+0x08]
- jae G_M55778_IG22
+ jae G_M55778_IG24
lea r12, [r13+2*r13]
lea rdx, bword ptr [rdx+8*r12+0x10]
mov rcx, rdx
mov rax, gword ptr [rcx]
- mov gword ptr [rbp-0x60], rax
+ mov gword ptr [rbp-0xB0], rax
mov r8, qword ptr [rcx+0x08]
- mov qword ptr [rbp-0x48], r8
+ mov qword ptr [rbp-0x98], r8
xor ecx, ecx
mov qword ptr [rdx], rcx
mov qword ptr [rdx+0x08], rcx
mov qword ptr [rdx+0x10], rcx
inc dword ptr [r14+0x14]
mov rdx, gword ptr [rbx+0x18]
lea rcx, [rbp-0x30]
mov rdi, rax
mov rsi, r8
mov r11, 0xD1FFAB1E ; code for System.Threading.Tasks.Dataflow.ISourceBlock`1[double]:ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[double],byref):double:this
call [r11]System.Threading.Tasks.Dataflow.ISourceBlock`1[double]:ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[double],byref):double:this
vmovsd qword ptr [rbp-0x38], xmm0
cmp byte ptr [rbp-0x30], 0
je SHORT G_M55778_IG05
- ;; size=107 bbWeight=4 PerfScore 143.00
+ ;; size=113 bbWeight=4 PerfScore 143.00
G_M55778_IG04:
cmp r13d, dword ptr [r14+0x10]
- jae G_M55778_IG23
+ jae G_M55778_IG25
mov rdi, gword ptr [r14+0x08]
cmp r13d, dword ptr [rdi+0x08]
- jae G_M55778_IG22
+ jae G_M55778_IG24
lea r12, bword ptr [rdi+8*r12+0x10]
- mov rsi, gword ptr [rbp-0x60]
+ mov rsi, gword ptr [rbp-0xB0]
mov rdi, r12
call CORINFO_HELP_ASSIGN_REF
- mov rsi, qword ptr [rbp-0x48]
+ mov rsi, qword ptr [rbp-0x98]
mov qword ptr [r12+0x08], rsi
vmovsd xmm0, qword ptr [rbp-0x38]
vmovsd qword ptr [r12+0x10], xmm0
inc dword ptr [r14+0x14]
inc r15d
- ;; size=69 bbWeight=2 PerfScore 47.00
+ ;; size=75 bbWeight=2 PerfScore 47.00
G_M55778_IG05:
inc r13d
cmp r13d, dword ptr [r14+0x10]
jl G_M55778_IG03
;; size=13 bbWeight=4 PerfScore 17.00
G_M55778_IG06:
mov rdi, gword ptr [rbx+0x10]
- mov gword ptr [rbp-0x58], rdi
+ mov gword ptr [rbp-0xA8], rdi
xor esi, esi
mov dword ptr [rbp-0x40], esi
- ;; size=13 bbWeight=1 PerfScore 4.25
+ ;; size=16 bbWeight=1 PerfScore 4.25
G_M55778_IG07:
cmp byte ptr [rbp-0x40], 0
- jne G_M55778_IG15
+ jne SHORT G_M55778_IG13
lea rsi, [rbp-0x40]
call System.Threading.Monitor:ReliableEnter(System.Object,byref)
cmp gword ptr [rbx+0x28], 0
je SHORT G_M55778_IG09
- ;; size=26 bbWeight=1 PerfScore 8.50
+ ;; size=22 bbWeight=1 PerfScore 8.50
G_M55778_IG08:
- mov rsi, gword ptr [rbx+0x28]
- add dword ptr [rsi+0x0C], r15d
+ mov rdi, gword ptr [rbx+0x28]
+ add dword ptr [rdi+0x0C], r15d
;; size=8 bbWeight=0.50 PerfScore 2.50
G_M55778_IG09:
- mov r15d, dword ptr [r14+0x14]
- xor r13d, r13d
- ;; size=7 bbWeight=1 PerfScore 2.25
+ mov edi, dword ptr [r14+0x14]
+ vxorps xmm0, xmm0, xmm0
+ vmovdqu xmmword ptr [rbp-0x80], xmm0
+ vmovdqu xmmword ptr [rbp-0x78], xmm0
+ ;; size=18 bbWeight=1 PerfScore 4.33
G_M55778_IG10:
- cmp r15d, dword ptr [r14+0x14]
- jne G_M55778_IG17
- ;; size=10 bbWeight=8 PerfScore 32.00
+ vmovdqu ymm0, ymmword ptr [rbp-0x90]
+ vmovdqu ymmword ptr [rbp-0x68], ymm0
+ mov rsi, qword ptr [rbp-0x70]
+ mov qword ptr [rbp-0x48], rsi
+ ;; size=21 bbWeight=1 PerfScore 7.00
G_M55778_IG11:
- mov esi, dword ptr [r14+0x10]
- cmp r13d, esi
- jae G_M55778_IG18
- mov rsi, gword ptr [r14+0x08]
- cmp r13d, dword ptr [rsi+0x08]
- jae G_M55778_IG16
- mov edi, r13d
- lea rdi, [rdi+2*rdi]
- lea rsi, bword ptr [rsi+8*rdi+0x10]
- mov rdi, gword ptr [rsi]
- vmovsd xmm0, qword ptr [rsi+0x10]
- inc r13d
- test rdi, rdi
- vmovsd qword ptr [rbp-0x50], xmm0
- je SHORT G_M55778_IG10
- ;; size=60 bbWeight=4 PerfScore 78.00
+ mov gword ptr [rbp-0x68], r14
+ xor esi, esi
+ mov dword ptr [rbp-0x60], esi
+ mov dword ptr [rbp-0x5C], edi
+ jmp SHORT G_M55778_IG14
+ ;; size=14 bbWeight=1 PerfScore 5.25
G_M55778_IG12:
- mov r12, gword ptr [rbx+0x08]
- mov esi, dword ptr [r12+0x18]
- mov rdi, gword ptr [r12+0x08]
- cmp esi, dword ptr [rdi+0x08]
- jne SHORT G_M55778_IG13
- inc esi
- mov rdi, r12
- mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Queue`1[double]:Grow(int):this
- call [rax]System.Collections.Generic.Queue`1[double]:Grow(int):this
- ;; size=36 bbWeight=2 PerfScore 27.50
+ call CORINFO_HELP_RNGCHKFAIL
+ int3
+ ;; size=6 bbWeight=0 PerfScore 0.00
G_M55778_IG13:
- mov rdi, gword ptr [r12+0x08]
- mov rax, rdi
- mov ecx, dword ptr [r12+0x14]
- cmp ecx, dword ptr [rax+0x08]
- jae SHORT G_M55778_IG16
- vmovsd xmm0, qword ptr [rbp-0x50]
- vmovsd qword ptr [rax+8*rcx+0x10], xmm0
- lea rax, bword ptr [r12+0x14]
- mov ecx, dword ptr [rax]
- inc ecx
- cmp dword ptr [rdi+0x08], ecx
- jne SHORT G_M55778_IG14
- xor ecx, ecx
- ;; size=45 bbWeight=2 PerfScore 40.50
-G_M55778_IG14:
- mov dword ptr [rax], ecx
- inc dword ptr [r12+0x18]
- inc dword ptr [r12+0x1C]
- jmp G_M55778_IG10
- ;; size=17 bbWeight=2 PerfScore 18.00
-G_M55778_IG15:
mov rax, 0xD1FFAB1E ; code for System.Threading.Monitor:ThrowLockTakenException()
call [rax]System.Threading.Monitor:ThrowLockTakenException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
+G_M55778_IG14:
+ lea rdi, [rbp-0x68]
+ mov r15, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]]:MoveNext():ubyte:this
+ test eax, eax
+ je G_M55778_IG20
+ ;; size=37 bbWeight=1 PerfScore 5.50
+G_M55778_IG15:
+ mov rsi, gword ptr [rbp-0x58]
+ vmovsd xmm0, qword ptr [rbp-0x48]
+ vmovsd qword ptr [rbp-0xA0], xmm0
+ test rsi, rsi
+ je SHORT G_M55778_IG19
+ ;; size=22 bbWeight=4 PerfScore 25.00
G_M55778_IG16:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
+ mov r14, gword ptr [rbx+0x08]
+ mov esi, dword ptr [r14+0x18]
+ mov rdi, gword ptr [r14+0x08]
+ cmp esi, dword ptr [rdi+0x08]
+ jne SHORT G_M55778_IG17
+ inc esi
+ mov rdi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Queue`1[double]:Grow(int):this
+ call [rax]System.Collections.Generic.Queue`1[double]:Grow(int):this
+ ;; size=34 bbWeight=2 PerfScore 27.50
G_M55778_IG17:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ mov rdi, gword ptr [r14+0x08]
+ mov rsi, rdi
+ mov eax, dword ptr [r14+0x14]
+ cmp eax, dword ptr [rsi+0x08]
+ jae SHORT G_M55778_IG12
+ vmovsd xmm0, qword ptr [rbp-0xA0]
+ vmovsd qword ptr [rsi+8*rax+0x10], xmm0
+ lea rsi, bword ptr [r14+0x14]
+ mov eax, dword ptr [rsi]
+ inc eax
+ cmp dword ptr [rdi+0x08], eax
+ jne SHORT G_M55778_IG18
+ xor eax, eax
+ ;; size=45 bbWeight=2 PerfScore 40.50
G_M55778_IG18:
+ mov dword ptr [rsi], eax
+ inc dword ptr [r14+0x18]
+ inc dword ptr [r14+0x1C]
+ ;; size=10 bbWeight=2 PerfScore 14.00
+G_M55778_IG19:
+ lea rdi, [rbp-0x68]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,double]]]:MoveNext():ubyte:this
+ test eax, eax
+ jne G_M55778_IG15
+ ;; size=27 bbWeight=4 PerfScore 21.00
+G_M55778_IG20:
cmp byte ptr [rbp-0x40], 0
- je SHORT G_M55778_IG20
+ je SHORT G_M55778_IG22
;; size=6 bbWeight=1 PerfScore 3.00
-G_M55778_IG19:
- mov rdi, gword ptr [rbp-0x58]
+G_M55778_IG21:
+ mov rdi, gword ptr [rbp-0xA8]
call System.Threading.Monitor:Exit(System.Object)
- ;; size=9 bbWeight=0.50 PerfScore 1.00
-G_M55778_IG20:
+ ;; size=12 bbWeight=0.50 PerfScore 1.00
+G_M55778_IG22:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M55778_IG21:
- add rsp, 72
+G_M55778_IG23:
+ vzeroupper
+ add rsp, 152
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=1 PerfScore 4.25
-G_M55778_IG22:
+ ;; size=21 bbWeight=1 PerfScore 5.25
+G_M55778_IG24:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M55778_IG23:
+G_M55778_IG25:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M55778_IG24:
+G_M55778_IG26:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
- lea rbp, [rbp+0x70]
- ;; size=22 bbWeight=0 PerfScore 0.00
-G_M55778_IG25:
+ lea rbp, [rbp+0xC0]
+ ;; size=25 bbWeight=0 PerfScore 0.00
+G_M55778_IG27:
cmp byte ptr [rbp-0x40], 0
- je SHORT G_M55778_IG26
- mov rdi, gword ptr [rbp-0x58]
+ je SHORT G_M55778_IG28
+ mov rdi, gword ptr [rbp-0xA8]
call System.Threading.Monitor:Exit(System.Object)
- ;; size=15 bbWeight=0 PerfScore 0.00
-G_M55778_IG26:
+ ;; size=18 bbWeight=0 PerfScore 0.00
+G_M55778_IG28:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M55778_IG27:
+G_M55778_IG29:
+ vzeroupper
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 597, prolog size 26, PerfScore 445.50, instruction count 166, allocated bytes for code 597 (MethodHash=9d8c261d) for method System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[double]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
+; Total bytes of code 698, prolog size 58, PerfScore 404.67, instruction count 180, allocated bytes for code 698 (MethodHash=9d8c261d) for method System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[double]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
98 (3.87 % of base) - Microsoft.CSharp.RuntimeBinder.Semantics.MethodTypeInferrer:Fix(int):ubyte:this
; Assembly listing for method Microsoft.CSharp.RuntimeBinder.Semantics.MethodTypeInferrer:Fix(int):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
-; fully interruptible
+; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 74 single block inlinees; 31 inlinees without PGO data
+; 0 inlinees with PGO data; 74 single block inlinees; 15 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T28] ( 13, 37.50) ref -> rbx this class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.MethodTypeInferrer>
-; V01 arg1 [V01,T54] ( 14, 23 ) int -> r15 single-def
-; V02 loc0 [V02,T00] ( 40,239.50) ref -> r13 class-hnd exact single-def <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V03 loc1 [V03,T53] ( 5, 26.50) ref -> r14 class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V04 loc2 [V04,T119] ( 3, 4.50) ref -> r14 class-hnd exact single-def <System.Collections.Generic.HashSet`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V00 this [V00,T12] ( 13, 34 ) ref -> rbx this class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.MethodTypeInferrer>
+; V01 arg1 [V01,T30] ( 14, 16 ) int -> r15 single-def
+; V02 loc0 [V02,T03] ( 33,136 ) ref -> r13 class-hnd exact single-def <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V03 loc1 [V03,T62] ( 5, 5.50) ref -> r12 class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V04 loc2 [V04,T63] ( 3, 4.50) ref -> r14 class-hnd exact single-def <System.Collections.Generic.HashSet`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
;* V05 loc3 [V05 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
;* V06 loc4 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
;* V07 loc5 [V07 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
;* V08 loc6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-;* V09 loc7 [V09 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V10 loc8 [V10,T69] ( 3, 18 ) ref -> [rbp-0x88] class-hnd spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V11 loc9 [V11,T14] ( 8, 66 ) ref -> [rbp-0x90] class-hnd exact spill-single-def <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V12 loc10 [V12 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V13 loc11 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-;* V14 loc12 [V14 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V15 loc13 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-;* V16 loc14 [V16 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V17 loc15 [V17,T70] ( 3, 18 ) ref -> [rbp-0x98] class-hnd spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V18 loc16 [V18,T15] ( 8, 66 ) ref -> [rbp-0xA0] class-hnd exact spill-single-def <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V19 loc17 [V19 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V20 loc18 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-;* V21 loc19 [V21 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V22 loc20 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-;* V23 loc21 [V23 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V24 loc22 [V24,T68] ( 4, 20 ) ref -> [rbp-0xA8] class-hnd spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-;* V25 loc23 [V25 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V26 loc24 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-;* V27 loc25 [V27,T162] ( 0, 0 ) ubyte -> zero-ref
+; V09 loc7 [V09 ] ( 7, 10.50) struct (24) [rbp-0x40] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V10 loc8 [V10,T22] ( 3, 28 ) ref -> r12 class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V11 loc9 [V11,T05] ( 8, 56 ) ref -> [rbp-0x110] class-hnd exact spill-single-def <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V12 loc10 [V12 ] ( 7, 52 ) struct (24) [rbp-0x58] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V13 loc11 [V13,T07] ( 5, 56 ) ref -> [rbp-0x118] class-hnd spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V14 loc12 [V14 ] ( 7, 52 ) struct (24) [rbp-0x70] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V15 loc13 [V15,T15] ( 2, 32 ) ref -> rdx class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V16 loc14 [V16 ] ( 7, 10.50) struct (24) [rbp-0x88] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V17 loc15 [V17,T23] ( 3, 28 ) ref -> r12 class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V18 loc16 [V18,T06] ( 8, 56 ) ref -> [rbp-0x120] class-hnd exact spill-single-def <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V19 loc17 [V19 ] ( 7, 52 ) struct (24) [rbp-0xA0] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V20 loc18 [V20,T08] ( 5, 56 ) ref -> [rbp-0x128] class-hnd spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V21 loc19 [V21 ] ( 7, 52 ) struct (24) [rbp-0xB8] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V22 loc20 [V22,T16] ( 2, 32 ) ref -> rdx class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V23 loc21 [V23 ] ( 7, 10.50) struct (24) [rbp-0xD0] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V24 loc22 [V24,T20] ( 4, 30 ) ref -> [rbp-0x130] class-hnd spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V25 loc23 [V25 ] ( 7, 52 ) struct (24) [rbp-0xE8] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V26 loc24 [V26,T09] ( 3, 40 ) ref -> [rbp-0x138] class-hnd spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+;* V27 loc25 [V27,T110] ( 0, 0 ) ubyte -> zero-ref
;* V28 loc26 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <Microsoft.CSharp.RuntimeBinder.Semantics.BindingContext>
;# V29 OutArgs [V29 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V30 tmp1 [V30,T131] ( 3, 3 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V31 tmp2 [V31,T84] ( 3, 12 ) ref -> [rbp-0xB0] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V32 tmp3 [V32,T85] ( 3, 12 ) ref -> [rbp-0xB8] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V33 tmp4 [V33,T139] ( 2, 2 ) ref -> r13 class-hnd single-def "impAppendStmt" <Microsoft.CSharp.RuntimeBinder.Semantics.CType[]>
-; V34 tmp5 [V34,T132] ( 3, 3 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V30 tmp1 [V30,T77] ( 3, 3 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V31 tmp2 [V31,T25] ( 3, 24 ) ref -> [rbp-0x140] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V32 tmp3 [V32,T26] ( 3, 24 ) ref -> [rbp-0x148] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V33 tmp4 [V33,T86] ( 2, 2 ) ref -> r14 class-hnd single-def "impAppendStmt" <Microsoft.CSharp.RuntimeBinder.Semantics.CType[]>
+; V34 tmp5 [V34,T78] ( 3, 3 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
;* V35 tmp6 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V36 tmp7 [V36,T163] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V37 tmp8 [V37,T133] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+;* V36 tmp7 [V36,T111] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V37 tmp8 [V37,T79] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
;* V38 tmp9 [V38 ] ( 0, 0 ) ref -> zero-ref
;* V39 tmp10 [V39 ] ( 0, 0 ) ref -> zero-ref
;* V40 tmp11 [V40 ] ( 0, 0 ) ref -> zero-ref single-def
-; V41 tmp12 [V41,T155] ( 2, 1 ) ref -> rsi single-def
-; V42 tmp13 [V42,T140] ( 2, 2 ) ref -> r12 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V41 tmp12 [V41,T97] ( 2, 1 ) ref -> rsi single-def
+; V42 tmp13 [V42,T87] ( 2, 2 ) ref -> r12 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
;* V43 tmp14 [V43 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V44 tmp15 [V44 ] ( 1, 2 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V45 tmp16 [V45,T115] ( 3, 6 ) ref -> rdi class-hnd "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType[]>
-; V46 tmp17 [V46,T97] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
-;* V47 tmp18 [V47,T100] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V44 tmp15 [V44 ] ( 1, 2 ) int -> [rbp-0xF0] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+; V45 tmp16 [V45,T59] ( 3, 6 ) ref -> rdi class-hnd "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType[]>
+; V46 tmp17 [V46,T43] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
+;* V47 tmp18 [V47,T48] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V48 tmp19 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V49 tmp20 [V49,T76] ( 2, 16 ) ref -> r12 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V50 tmp21 [V50 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V51 tmp22 [V51 ] ( 1, 2 ) int -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V52 tmp23 [V52,T116] ( 3, 6 ) ref -> rdi class-hnd "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType[]>
-; V53 tmp24 [V53,T98] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
-;* V54 tmp25 [V54,T101] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V55 tmp26 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V56 tmp27 [V56,T141] ( 2, 2 ) ref -> r14 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V57 tmp28 [V57,T151] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType[]>
-; V58 tmp29 [V58,T138] ( 4, 2 ) int -> rsi "Inline stloc first use temp"
-; V59 tmp30 [V59,T134] ( 3, 3 ) ref -> rdx class-hnd single-def "Inlining Arg" <System.__Canon>
-;* V60 tmp31 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V61 tmp32 [V61,T142] ( 2, 2 ) ref -> r14 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V62 tmp33 [V62 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V63 tmp34 [V63 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V64 tmp35 [V64,T33] ( 2, 32 ) byref -> [rbp-0xC0] spill-single-def "Inlining Arg"
-;* V65 tmp36 [V65 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V66 tmp37 [V66,T01] ( 9,144 ) ref -> [rbp-0xC8] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
-;* V67 tmp38 [V67 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
-;* V68 tmp39 [V68 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder>
-; V69 tmp40 [V69,T57] ( 3, 24 ) ref -> rdx class-hnd "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType[]>
-; V70 tmp41 [V70,T31] ( 4, 32 ) int -> rsi "Inline stloc first use temp"
-;* V71 tmp42 [V71,T36] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V72 tmp43 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V73 tmp44 [V73 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V74 tmp45 [V74 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V75 tmp46 [V75,T66] ( 3, 24 ) int -> registers "Inline stloc first use temp"
-;* V76 tmp47 [V76,T37] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V77 tmp48 [V77 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V78 tmp49 [V78,T102] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V79 tmp50 [V79 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V80 tmp51 [V80,T77] ( 2, 16 ) ref -> r14 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V81 tmp52 [V81 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V82 tmp53 [V82 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V83 tmp54 [V83,T34] ( 2, 32 ) byref -> [rbp-0xD0] spill-single-def "Inlining Arg"
-;* V84 tmp55 [V84 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V85 tmp56 [V85,T02] ( 9,144 ) ref -> [rbp-0xD8] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
-;* V86 tmp57 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
-;* V87 tmp58 [V87 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder>
-; V88 tmp59 [V88,T58] ( 3, 24 ) ref -> rdx class-hnd "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType[]>
-; V89 tmp60 [V89,T32] ( 4, 32 ) int -> rsi "Inline stloc first use temp"
-;* V90 tmp61 [V90,T38] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V91 tmp62 [V91 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+;* V49 tmp20 [V49 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V50 tmp21 [V50,T36] ( 3, 12 ) ref -> rdi class-hnd "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType[]>
+; V51 tmp22 [V51,T32] ( 2, 16 ) ref -> r12 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+;* V52 tmp23 [V52 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V53 tmp24 [V53 ] ( 1, 2 ) int -> [rbp-0xF8] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+; V54 tmp25 [V54,T60] ( 3, 6 ) ref -> rdi class-hnd "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType[]>
+; V55 tmp26 [V55,T44] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
+;* V56 tmp27 [V56,T49] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V57 tmp28 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+;* V58 tmp29 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V59 tmp30 [V59,T37] ( 3, 12 ) ref -> rdi class-hnd "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType[]>
+; V60 tmp31 [V60,T88] ( 2, 2 ) ref -> r14 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V61 tmp32 [V61,T92] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType[]>
+; V62 tmp33 [V62,T85] ( 4, 2 ) int -> rsi "Inline stloc first use temp"
+; V63 tmp34 [V63,T80] ( 3, 3 ) ref -> rdx class-hnd single-def "Inlining Arg" <System.__Canon>
+;* V64 tmp35 [V64 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V65 tmp36 [V65,T89] ( 2, 2 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+;* V66 tmp37 [V66 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+;* V67 tmp38 [V67 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V68 tmp39 [V68,T17] ( 2, 32 ) byref -> [rbp-0x150] spill-single-def "Inlining Arg"
+;* V69 tmp40 [V69 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V70 tmp41 [V70,T00] ( 9,144 ) ref -> [rbp-0x158] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
+;* V71 tmp42 [V71 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
+;* V72 tmp43 [V72 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder>
+; V73 tmp44 [V73,T27] ( 3, 24 ) ref -> rdi class-hnd "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType[]>
+; V74 tmp45 [V74,T13] ( 4, 32 ) int -> rsi "Inline stloc first use temp"
+;* V75 tmp46 [V75 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+;* V76 tmp47 [V76 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V77 tmp48 [V77,T10] ( 3, 40 ) int -> rax "Inline stloc first use temp"
+; V78 tmp49 [V78,T90] ( 2, 2 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+;* V79 tmp50 [V79 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+;* V80 tmp51 [V80 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V81 tmp52 [V81,T18] ( 2, 32 ) byref -> [rbp-0x160] spill-single-def "Inlining Arg"
+;* V82 tmp53 [V82 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V83 tmp54 [V83,T01] ( 9,144 ) ref -> [rbp-0x168] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
+;* V84 tmp55 [V84 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
+;* V85 tmp56 [V85 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder>
+; V86 tmp57 [V86,T28] ( 3, 24 ) ref -> rdi class-hnd "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType[]>
+; V87 tmp58 [V87,T14] ( 4, 32 ) int -> rsi "Inline stloc first use temp"
+;* V88 tmp59 [V88 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+;* V89 tmp60 [V89 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V90 tmp61 [V90,T11] ( 3, 40 ) int -> rax "Inline stloc first use temp"
+;* V91 tmp62 [V91 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
;* V92 tmp63 [V92 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V93 tmp64 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V94 tmp65 [V94,T67] ( 3, 24 ) int -> registers "Inline stloc first use temp"
-;* V95 tmp66 [V95,T39] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V96 tmp67 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V97 tmp68 [V97,T103] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V98 tmp69 [V98 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V99 tmp70 [V99 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V100 tmp71 [V100 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V101 tmp72 [V101,T35] ( 2, 32 ) byref -> [rbp-0xE0] spill-single-def "Inlining Arg"
-;* V102 tmp73 [V102 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V103 tmp74 [V103,T03] ( 9,144 ) ref -> [rbp-0xE8] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
-;* V104 tmp75 [V104 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
-;* V105 tmp76 [V105 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder>
-;* V106 tmp77 [V106,T40] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V107 tmp78 [V107 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V108 tmp79 [V108,T104] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V109 tmp80 [V109 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-;* V110 tmp81 [V110 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V111 tmp82 [V111,T161] ( 0, 0 ) int -> zero-ref "Single return block return value"
-; V112 tmp83 [V112,T82] ( 4, 12.50) ref -> r12 single-def "field V05._list (fldOffset=0x0)" P-INDEP
-; V113 tmp84 [V113,T80] ( 4, 10 ) ref -> [rbp-0xF0] "field V05._current (fldOffset=0x8)" P-INDEP
-; V114 tmp85 [V114,T55] ( 6, 20.50) int -> [rbp-0x3C] "field V05._index (fldOffset=0x10)" P-INDEP
-; V115 tmp86 [V115,T120] ( 2, 4.50) int -> [rbp-0x40] spill-single-def "field V05._version (fldOffset=0x14)" P-INDEP
-; V116 tmp87 [V116,T74] ( 4, 16 ) ref -> r12 single-def "field V07._list (fldOffset=0x0)" P-INDEP
-; V117 tmp88 [V117,T81] ( 4, 10 ) ref -> [rbp-0xF8] "field V07._current (fldOffset=0x8)" P-INDEP
-; V118 tmp89 [V118,T50] ( 6, 24 ) int -> [rbp-0x44] "field V07._index (fldOffset=0x10)" P-INDEP
-; V119 tmp90 [V119,T105] ( 2, 8 ) int -> [rbp-0x48] spill-single-def "field V07._version (fldOffset=0x14)" P-INDEP
-; V120 tmp91 [V120,T83] ( 4, 24.50) ref -> r14 single-def "field V09._list (fldOffset=0x0)" P-INDEP
-; V121 tmp92 [V121,T93] ( 2, 6 ) ref -> rax "field V09._current (fldOffset=0x8)" P-INDEP
-; V122 tmp93 [V122,T56] ( 6, 20.50) int -> [rbp-0x4C] "field V09._index (fldOffset=0x10)" P-INDEP
-; V123 tmp94 [V123,T121] ( 2, 16.50) int -> r12 "field V09._version (fldOffset=0x14)" P-INDEP
-;* V124 tmp95 [V124,T144] ( 0, 0 ) ref -> zero-ref "field V12._list (fldOffset=0x0)" P-INDEP
-; V125 tmp96 [V125,T16] ( 5, 48 ) ref -> [rbp-0x100] "field V12._current (fldOffset=0x8)" P-INDEP
-; V126 tmp97 [V126,T06] ( 6, 82 ) int -> [rbp-0x50] "field V12._index (fldOffset=0x10)" P-INDEP
-; V127 tmp98 [V127,T71] ( 2, 18 ) int -> [rbp-0x54] spill-single-def "field V12._version (fldOffset=0x14)" P-INDEP
-; V128 tmp99 [V128,T18] ( 4, 64 ) ref -> [rbp-0x108] "field V14._list (fldOffset=0x0)" P-INDEP
-; V129 tmp100 [V129,T29] ( 2, 24 ) ref -> rdx "field V14._current (fldOffset=0x8)" P-INDEP
-; V130 tmp101 [V130,T04] ( 6, 96 ) int -> [rbp-0x58] "field V14._index (fldOffset=0x10)" P-INDEP
-; V131 tmp102 [V131,T41] ( 2, 32 ) int -> [rbp-0x5C] "field V14._version (fldOffset=0x14)" P-INDEP
-; V132 tmp103 [V132,T75] ( 4, 28 ) ref -> r14 single-def "field V16._list (fldOffset=0x0)" P-INDEP
-; V133 tmp104 [V133,T94] ( 2, 6 ) ref -> rax "field V16._current (fldOffset=0x8)" P-INDEP
-; V134 tmp105 [V134,T51] ( 6, 24 ) int -> [rbp-0x60] "field V16._index (fldOffset=0x10)" P-INDEP
-; V135 tmp106 [V135,T106] ( 2, 20 ) int -> r12 "field V16._version (fldOffset=0x14)" P-INDEP
-;* V136 tmp107 [V136,T145] ( 0, 0 ) ref -> zero-ref "field V19._list (fldOffset=0x0)" P-INDEP
-; V137 tmp108 [V137,T17] ( 5, 48 ) ref -> [rbp-0x110] "field V19._current (fldOffset=0x8)" P-INDEP
-; V138 tmp109 [V138,T07] ( 6, 82 ) int -> [rbp-0x64] "field V19._index (fldOffset=0x10)" P-INDEP
-; V139 tmp110 [V139,T72] ( 2, 18 ) int -> [rbp-0x68] spill-single-def "field V19._version (fldOffset=0x14)" P-INDEP
-; V140 tmp111 [V140,T19] ( 4, 64 ) ref -> [rbp-0x118] "field V21._list (fldOffset=0x0)" P-INDEP
-; V141 tmp112 [V141,T30] ( 2, 24 ) ref -> rdx "field V21._current (fldOffset=0x8)" P-INDEP
-; V142 tmp113 [V142,T05] ( 6, 96 ) int -> [rbp-0x6C] "field V21._index (fldOffset=0x10)" P-INDEP
-; V143 tmp114 [V143,T42] ( 2, 32 ) int -> [rbp-0x70] "field V21._version (fldOffset=0x14)" P-INDEP
-;* V144 tmp115 [V144,T118] ( 0, 0 ) ref -> zero-ref single-def "field V23._list (fldOffset=0x0)" P-INDEP
-; V145 tmp116 [V145,T95] ( 2, 6 ) ref -> rcx "field V23._current (fldOffset=0x8)" P-INDEP
-; V146 tmp117 [V146,T52] ( 6, 24 ) int -> [rbp-0x74] "field V23._index (fldOffset=0x10)" P-INDEP
-; V147 tmp118 [V147,T107] ( 2, 8 ) int -> r12 "field V23._version (fldOffset=0x14)" P-INDEP
-;* V148 tmp119 [V148,T146] ( 0, 0 ) ref -> zero-ref "field V25._list (fldOffset=0x0)" P-INDEP
-; V149 tmp120 [V149,T20] ( 3, 32 ) ref -> [rbp-0x120] "field V25._current (fldOffset=0x8)" P-INDEP
-; V150 tmp121 [V150,T08] ( 6, 82 ) int -> [rbp-0x78] "field V25._index (fldOffset=0x10)" P-INDEP
-; V151 tmp122 [V151,T73] ( 2, 18 ) int -> [rbp-0x7C] spill-single-def "field V25._version (fldOffset=0x14)" P-INDEP
-; V152 tmp123 [V152,T156] ( 2, 1 ) ref -> rdi single-def "field V28.<ContextForMemberLookup>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V153 tmp124 [V153 ] ( 0, 0 ) ubyte -> zero-ref "field V28.<Checked>k__BackingField (fldOffset=0x8)" P-INDEP
-; V154 tmp125 [V154,T152] ( 3, 1.50) ref -> r12 single-def "field V43._list (fldOffset=0x0)" P-INDEP
-;* V155 tmp126 [V155 ] ( 0, 0 ) ref -> zero-ref single-def "field V43._current (fldOffset=0x8)" P-INDEP
-;* V156 tmp127 [V156,T164] ( 0, 0 ) int -> zero-ref "field V43._index (fldOffset=0x10)" P-INDEP
-; V157 tmp128 [V157,T157] ( 2, 1 ) int -> rax "field V43._version (fldOffset=0x14)" P-INDEP
-; V158 tmp129 [V158,T86] ( 3, 12 ) ref -> r12 single-def "field V50._list (fldOffset=0x0)" P-INDEP
-;* V159 tmp130 [V159 ] ( 0, 0 ) ref -> zero-ref single-def "field V50._current (fldOffset=0x8)" P-INDEP
-;* V160 tmp131 [V160,T127] ( 0, 0 ) int -> zero-ref "field V50._index (fldOffset=0x10)" P-INDEP
-; V161 tmp132 [V161,T108] ( 2, 8 ) int -> rax "field V50._version (fldOffset=0x14)" P-INDEP
-; V162 tmp133 [V162,T153] ( 3, 1.50) ref -> r14 single-def "field V62._list (fldOffset=0x0)" P-INDEP
-;* V163 tmp134 [V163 ] ( 0, 0 ) ref -> zero-ref single-def "field V62._current (fldOffset=0x8)" P-INDEP
-;* V164 tmp135 [V164,T165] ( 0, 0 ) int -> zero-ref "field V62._index (fldOffset=0x10)" P-INDEP
-; V165 tmp136 [V165,T158] ( 2, 1 ) int -> r12 "field V62._version (fldOffset=0x14)" P-INDEP
-; V166 tmp137 [V166,T122] ( 2, 4 ) ref -> rdi "field V63._list (fldOffset=0x0)" P-INDEP
-;* V167 tmp138 [V167 ] ( 0, 0 ) ref -> zero-ref "field V63._current (fldOffset=0x8)" P-INDEP
-;* V168 tmp139 [V168,T148] ( 0, 0 ) int -> zero-ref "field V63._index (fldOffset=0x10)" P-INDEP
-; V169 tmp140 [V169,T124] ( 2, 4 ) int -> rcx "field V63._version (fldOffset=0x14)" P-INDEP
-; V170 tmp141 [V170,T21] ( 3, 48 ) ref -> rax "field V73._list (fldOffset=0x0)" P-INDEP
-;* V171 tmp142 [V171 ] ( 0, 0 ) ref -> zero-ref "field V73._current (fldOffset=0x8)" P-INDEP
-;* V172 tmp143 [V172,T78] ( 0, 0 ) int -> zero-ref "field V73._index (fldOffset=0x10)" P-INDEP
-; V173 tmp144 [V173,T43] ( 2, 32 ) int -> r9 "field V73._version (fldOffset=0x14)" P-INDEP
-; V174 tmp145 [V174,T87] ( 3, 12 ) ref -> r14 single-def "field V81._list (fldOffset=0x0)" P-INDEP
-;* V175 tmp146 [V175 ] ( 0, 0 ) ref -> zero-ref single-def "field V81._current (fldOffset=0x8)" P-INDEP
-;* V176 tmp147 [V176,T128] ( 0, 0 ) int -> zero-ref "field V81._index (fldOffset=0x10)" P-INDEP
-; V177 tmp148 [V177,T109] ( 2, 8 ) int -> r12 "field V81._version (fldOffset=0x14)" P-INDEP
-; V178 tmp149 [V178,T123] ( 2, 4 ) ref -> rdi "field V82._list (fldOffset=0x0)" P-INDEP
-;* V179 tmp150 [V179 ] ( 0, 0 ) ref -> zero-ref "field V82._current (fldOffset=0x8)" P-INDEP
-;* V180 tmp151 [V180,T149] ( 0, 0 ) int -> zero-ref "field V82._index (fldOffset=0x10)" P-INDEP
-; V181 tmp152 [V181,T125] ( 2, 4 ) int -> rcx "field V82._version (fldOffset=0x14)" P-INDEP
-; V182 tmp153 [V182,T22] ( 3, 48 ) ref -> rax "field V92._list (fldOffset=0x0)" P-INDEP
-;* V183 tmp154 [V183 ] ( 0, 0 ) ref -> zero-ref "field V92._current (fldOffset=0x8)" P-INDEP
-;* V184 tmp155 [V184,T79] ( 0, 0 ) int -> zero-ref "field V92._index (fldOffset=0x10)" P-INDEP
-; V185 tmp156 [V185,T44] ( 2, 32 ) int -> r9 "field V92._version (fldOffset=0x14)" P-INDEP
-; V186 tmp157 [V186,T99] ( 2, 8 ) ref -> rdi single-def "field V99._list (fldOffset=0x0)" P-INDEP
-;* V187 tmp158 [V187 ] ( 0, 0 ) ref -> zero-ref single-def "field V99._current (fldOffset=0x8)" P-INDEP
-;* V188 tmp159 [V188,T129] ( 0, 0 ) int -> zero-ref "field V99._index (fldOffset=0x10)" P-INDEP
-; V189 tmp160 [V189,T110] ( 2, 8 ) int -> r12 "field V99._version (fldOffset=0x14)" P-INDEP
-;* V190 tmp161 [V190,T147] ( 0, 0 ) ref -> zero-ref "field V100._list (fldOffset=0x0)" P-INDEP
-;* V191 tmp162 [V191 ] ( 0, 0 ) ref -> zero-ref "field V100._current (fldOffset=0x8)" P-INDEP
-;* V192 tmp163 [V192,T150] ( 0, 0 ) int -> zero-ref "field V100._index (fldOffset=0x10)" P-INDEP
-; V193 tmp164 [V193,T126] ( 2, 4 ) int -> rax "field V100._version (fldOffset=0x14)" P-INDEP
-; V194 tmp165 [V194,T117] ( 3, 6 ) ref -> rdi single-def "arr expr"
-;* V195 tmp166 [V195,T159] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
-;* V196 tmp167 [V196,T160] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
-; V197 tmp168 [V197,T135] ( 3, 3 ) ref -> rsi single-def "arr expr"
-; V198 tmp169 [V198,T136] ( 3, 3 ) ref -> rdx single-def "arr expr"
-; V199 tmp170 [V199,T59] ( 3, 24 ) ref -> rdi "arr expr"
-; V200 tmp171 [V200,T60] ( 3, 24 ) ref -> rdx single-def "arr expr"
-; V201 tmp172 [V201,T61] ( 3, 24 ) ref -> rdi "arr expr"
-; V202 tmp173 [V202,T137] ( 3, 3 ) ref -> rdi single-def "arr expr"
-; V203 tmp174 [V203,T62] ( 3, 24 ) ref -> rax "arr expr"
-; V204 tmp175 [V204,T09] ( 3, 96 ) ref -> rdx "arr expr"
-; V205 tmp176 [V205,T10] ( 3, 96 ) ref -> rsi "arr expr"
-; V206 tmp177 [V206,T63] ( 3, 24 ) ref -> rdi single-def "arr expr"
-; V207 tmp178 [V207,T64] ( 3, 24 ) ref -> rax "arr expr"
-; V208 tmp179 [V208,T11] ( 3, 96 ) ref -> rdx "arr expr"
-; V209 tmp180 [V209,T12] ( 3, 96 ) ref -> rsi "arr expr"
-; V210 tmp181 [V210,T65] ( 3, 24 ) ref -> rcx "arr expr"
-; V211 tmp182 [V211,T13] ( 3, 96 ) ref -> rsi "arr expr"
-; V212 tmp183 [V212,T143] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
-;* V213 cse0 [V213,T166] ( 0, 0 ) long -> zero-ref "CSE #12: conservative"
-; V214 cse1 [V214,T130] ( 4, 3 ) ref -> r14 "CSE #05: conservative"
-; V215 cse2 [V215,T154] ( 3, 1.50) ref -> r12 "CSE #10: conservative"
-; V216 cse3 [V216,T45] ( 2, 32 ) int -> rdx "CSE #14: moderate"
-; V217 cse4 [V217,T23] ( 2, 32 ) int -> rdx "CSE #15: moderate"
-; V218 cse5 [V218,T46] ( 2, 32 ) int -> rsi "CSE #16: moderate"
-; V219 cse6 [V219,T24] ( 2, 32 ) int -> rsi "CSE #17: moderate"
-; V220 cse7 [V220,T47] ( 2, 32 ) int -> rdx "CSE #22: moderate"
-; V221 cse8 [V221,T25] ( 2, 32 ) int -> rdx "CSE #23: moderate"
-; V222 cse9 [V222,T48] ( 2, 32 ) int -> rsi "CSE #24: moderate"
-; V223 cse10 [V223,T26] ( 2, 32 ) int -> rsi "CSE #25: moderate"
-; V224 cse11 [V224,T49] ( 2, 32 ) int -> rsi "CSE #29: moderate"
-; V225 cse12 [V225,T27] ( 2, 32 ) int -> rsi "CSE #30: moderate"
-; V226 cse13 [V226,T96] ( 3, 10 ) int -> rax "CSE #31: conservative"
-; V227 cse14 [V227,T111] ( 2, 8 ) int -> rdi "CSE #06: conservative"
-; V228 cse15 [V228,T88] ( 2, 8 ) int -> rdi "CSE #07: conservative"
-; V229 cse16 [V229,T112] ( 2, 8 ) int -> rdi "CSE #08: conservative"
-; V230 cse17 [V230,T89] ( 2, 8 ) int -> rdi "CSE #09: conservative"
-; V231 cse18 [V231,T113] ( 2, 32 ) int -> rax "CSE #18: conservative"
-; V232 cse19 [V232,T90] ( 2, 8 ) int -> rax "CSE #19: conservative"
-; V233 cse20 [V233,T114] ( 2, 32 ) int -> rax "CSE #26: conservative"
-; V234 cse21 [V234,T91] ( 2, 8 ) int -> rax "CSE #27: conservative"
-; V235 cse22 [V235,T92] ( 2, 8 ) int -> rcx "CSE #32: conservative"
+; V93 tmp64 [V93,T19] ( 2, 32 ) byref -> [rbp-0x170] spill-single-def "Inlining Arg"
+;* V94 tmp65 [V94 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V95 tmp66 [V95,T02] ( 9,144 ) ref -> [rbp-0x178] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
+;* V96 tmp67 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion>
+;* V97 tmp68 [V97 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder>
+;* V98 tmp69 [V98 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V99 tmp70 [V99,T106] ( 0, 0 ) int -> zero-ref "Single return block return value"
+; V100 tmp71 [V100,T35] ( 4, 12.50) ref -> r12 single-def "field V05._list (fldOffset=0x0)" P-INDEP
+; V101 tmp72 [V101,T33] ( 4, 10 ) ref -> [rbp-0x180] "field V05._current (fldOffset=0x8)" P-INDEP
+; V102 tmp73 [V102,T24] ( 6, 20.50) int -> [rbp-0xFC] "field V05._index (fldOffset=0x10)" P-INDEP
+; V103 tmp74 [V103,T64] ( 2, 4.50) int -> [rbp-0x100] spill-single-def "field V05._version (fldOffset=0x14)" P-INDEP
+; V104 tmp75 [V104,T31] ( 4, 16 ) ref -> r12 single-def "field V07._list (fldOffset=0x0)" P-INDEP
+; V105 tmp76 [V105,T34] ( 4, 10 ) ref -> [rbp-0x188] "field V07._current (fldOffset=0x8)" P-INDEP
+; V106 tmp77 [V106,T21] ( 6, 24 ) int -> [rbp-0x104] "field V07._index (fldOffset=0x10)" P-INDEP
+; V107 tmp78 [V107,T50] ( 2, 8 ) int -> [rbp-0x108] spill-single-def "field V07._version (fldOffset=0x14)" P-INDEP
+; V108 tmp79 [V108 ] ( 3, 5 ) ref -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V09._list (fldOffset=0x0)" P-DEP
+; V109 tmp80 [V109 ] ( 4, 9 ) ref -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V09._current (fldOffset=0x8)" P-DEP
+; V110 tmp81 [V110 ] ( 3, 5 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V09._index (fldOffset=0x10)" P-DEP
+; V111 tmp82 [V111 ] ( 3, 5 ) int -> [rbp-0x2C] do-not-enreg[X] addr-exposed "field V09._version (fldOffset=0x14)" P-DEP
+; V112 tmp83 [V112 ] ( 3, 24 ) ref -> [rbp-0x58] do-not-enreg[X] addr-exposed "field V12._list (fldOffset=0x0)" P-DEP
+; V113 tmp84 [V113 ] ( 4, 40 ) ref -> [rbp-0x50] do-not-enreg[X] addr-exposed "field V12._current (fldOffset=0x8)" P-DEP
+; V114 tmp85 [V114 ] ( 3, 24 ) int -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V12._index (fldOffset=0x10)" P-DEP
+; V115 tmp86 [V115 ] ( 3, 24 ) int -> [rbp-0x44] do-not-enreg[X] addr-exposed "field V12._version (fldOffset=0x14)" P-DEP
+; V116 tmp87 [V116 ] ( 3, 24 ) ref -> [rbp-0x70] do-not-enreg[X] addr-exposed "field V14._list (fldOffset=0x0)" P-DEP
+; V117 tmp88 [V117 ] ( 4, 40 ) ref -> [rbp-0x68] do-not-enreg[X] addr-exposed "field V14._current (fldOffset=0x8)" P-DEP
+; V118 tmp89 [V118 ] ( 3, 24 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed "field V14._index (fldOffset=0x10)" P-DEP
+; V119 tmp90 [V119 ] ( 3, 24 ) int -> [rbp-0x5C] do-not-enreg[X] addr-exposed "field V14._version (fldOffset=0x14)" P-DEP
+; V120 tmp91 [V120 ] ( 3, 5 ) ref -> [rbp-0x88] do-not-enreg[X] addr-exposed "field V16._list (fldOffset=0x0)" P-DEP
+; V121 tmp92 [V121 ] ( 4, 9 ) ref -> [rbp-0x80] do-not-enreg[X] addr-exposed "field V16._current (fldOffset=0x8)" P-DEP
+; V122 tmp93 [V122 ] ( 3, 5 ) int -> [rbp-0x78] do-not-enreg[X] addr-exposed "field V16._index (fldOffset=0x10)" P-DEP
+; V123 tmp94 [V123 ] ( 3, 5 ) int -> [rbp-0x74] do-not-enreg[X] addr-exposed "field V16._version (fldOffset=0x14)" P-DEP
+; V124 tmp95 [V124 ] ( 3, 24 ) ref -> [rbp-0xA0] do-not-enreg[X] addr-exposed "field V19._list (fldOffset=0x0)" P-DEP
+; V125 tmp96 [V125 ] ( 4, 40 ) ref -> [rbp-0x98] do-not-enreg[X] addr-exposed "field V19._current (fldOffset=0x8)" P-DEP
+; V126 tmp97 [V126 ] ( 3, 24 ) int -> [rbp-0x90] do-not-enreg[X] addr-exposed "field V19._index (fldOffset=0x10)" P-DEP
+; V127 tmp98 [V127 ] ( 3, 24 ) int -> [rbp-0x8C] do-not-enreg[X] addr-exposed "field V19._version (fldOffset=0x14)" P-DEP
+; V128 tmp99 [V128 ] ( 3, 24 ) ref -> [rbp-0xB8] do-not-enreg[X] addr-exposed "field V21._list (fldOffset=0x0)" P-DEP
+; V129 tmp100 [V129 ] ( 4, 40 ) ref -> [rbp-0xB0] do-not-enreg[X] addr-exposed "field V21._current (fldOffset=0x8)" P-DEP
+; V130 tmp101 [V130 ] ( 3, 24 ) int -> [rbp-0xA8] do-not-enreg[X] addr-exposed "field V21._index (fldOffset=0x10)" P-DEP
+; V131 tmp102 [V131 ] ( 3, 24 ) int -> [rbp-0xA4] do-not-enreg[X] addr-exposed "field V21._version (fldOffset=0x14)" P-DEP
+; V132 tmp103 [V132 ] ( 3, 5 ) ref -> [rbp-0xD0] do-not-enreg[X] addr-exposed "field V23._list (fldOffset=0x0)" P-DEP
+; V133 tmp104 [V133 ] ( 4, 9 ) ref -> [rbp-0xC8] do-not-enreg[X] addr-exposed "field V23._current (fldOffset=0x8)" P-DEP
+; V134 tmp105 [V134 ] ( 3, 5 ) int -> [rbp-0xC0] do-not-enreg[X] addr-exposed "field V23._index (fldOffset=0x10)" P-DEP
+; V135 tmp106 [V135 ] ( 3, 5 ) int -> [rbp-0xBC] do-not-enreg[X] addr-exposed "field V23._version (fldOffset=0x14)" P-DEP
+; V136 tmp107 [V136 ] ( 3, 24 ) ref -> [rbp-0xE8] do-not-enreg[X] addr-exposed "field V25._list (fldOffset=0x0)" P-DEP
+; V137 tmp108 [V137 ] ( 4, 40 ) ref -> [rbp-0xE0] do-not-enreg[X] addr-exposed "field V25._current (fldOffset=0x8)" P-DEP
+; V138 tmp109 [V138 ] ( 3, 24 ) int -> [rbp-0xD8] do-not-enreg[X] addr-exposed "field V25._index (fldOffset=0x10)" P-DEP
+; V139 tmp110 [V139 ] ( 3, 24 ) int -> [rbp-0xD4] do-not-enreg[X] addr-exposed "field V25._version (fldOffset=0x14)" P-DEP
+; V140 tmp111 [V140,T98] ( 2, 1 ) ref -> rdi single-def "field V28.<ContextForMemberLookup>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V141 tmp112 [V141 ] ( 0, 0 ) ubyte -> zero-ref "field V28.<Checked>k__BackingField (fldOffset=0x8)" P-INDEP
+; V142 tmp113 [V142,T93] ( 3, 1.50) ref -> r12 single-def "field V43._list (fldOffset=0x0)" P-INDEP
+;* V143 tmp114 [V143 ] ( 0, 0 ) ref -> zero-ref single-def "field V43._current (fldOffset=0x8)" P-INDEP
+;* V144 tmp115 [V144,T112] ( 0, 0 ) int -> zero-ref "field V43._index (fldOffset=0x10)" P-INDEP
+; V145 tmp116 [V145,T100] ( 2, 1 ) int -> rax "field V43._version (fldOffset=0x14)" P-INDEP
+; V146 tmp117 [V146,T38] ( 3, 12 ) ref -> r12 single-def "field V52._list (fldOffset=0x0)" P-INDEP
+;* V147 tmp118 [V147 ] ( 0, 0 ) ref -> zero-ref single-def "field V52._current (fldOffset=0x8)" P-INDEP
+;* V148 tmp119 [V148,T70] ( 0, 0 ) int -> zero-ref "field V52._index (fldOffset=0x10)" P-INDEP
+; V149 tmp120 [V149,T51] ( 2, 8 ) int -> rax "field V52._version (fldOffset=0x14)" P-INDEP
+; V150 tmp121 [V150,T94] ( 3, 1.50) ref -> rdi single-def "field V66._list (fldOffset=0x0)" P-INDEP
+;* V151 tmp122 [V151,T107] ( 0, 0 ) ref -> zero-ref single-def "field V66._current (fldOffset=0x8)" P-INDEP
+;* V152 tmp123 [V152,T113] ( 0, 0 ) int -> zero-ref "field V66._index (fldOffset=0x10)" P-INDEP
+; V153 tmp124 [V153,T101] ( 2, 1 ) int -> rsi "field V66._version (fldOffset=0x14)" P-INDEP
+; V154 tmp125 [V154,T45] ( 2, 8 ) ref -> rdi "field V67._list (fldOffset=0x0)" P-INDEP
+;* V155 tmp126 [V155,T65] ( 0, 0 ) ref -> zero-ref "field V67._current (fldOffset=0x8)" P-INDEP
+;* V156 tmp127 [V156,T71] ( 0, 0 ) int -> zero-ref "field V67._index (fldOffset=0x10)" P-INDEP
+; V157 tmp128 [V157,T52] ( 2, 8 ) int -> rdi "field V67._version (fldOffset=0x14)" P-INDEP
+; V158 tmp129 [V158,T39] ( 3, 12 ) ref -> r12 "field V75._list (fldOffset=0x0)" P-INDEP
+;* V159 tmp130 [V159,T66] ( 0, 0 ) ref -> zero-ref "field V75._current (fldOffset=0x8)" P-INDEP
+;* V160 tmp131 [V160,T72] ( 0, 0 ) int -> zero-ref "field V75._index (fldOffset=0x10)" P-INDEP
+; V161 tmp132 [V161,T53] ( 2, 8 ) int -> rdi "field V75._version (fldOffset=0x14)" P-INDEP
+; V162 tmp133 [V162,T95] ( 3, 1.50) ref -> rdi single-def "field V79._list (fldOffset=0x0)" P-INDEP
+;* V163 tmp134 [V163,T108] ( 0, 0 ) ref -> zero-ref single-def "field V79._current (fldOffset=0x8)" P-INDEP
+;* V164 tmp135 [V164,T114] ( 0, 0 ) int -> zero-ref "field V79._index (fldOffset=0x10)" P-INDEP
+; V165 tmp136 [V165,T102] ( 2, 1 ) int -> rsi "field V79._version (fldOffset=0x14)" P-INDEP
+; V166 tmp137 [V166,T46] ( 2, 8 ) ref -> rdi "field V80._list (fldOffset=0x0)" P-INDEP
+;* V167 tmp138 [V167,T67] ( 0, 0 ) ref -> zero-ref "field V80._current (fldOffset=0x8)" P-INDEP
+;* V168 tmp139 [V168,T73] ( 0, 0 ) int -> zero-ref "field V80._index (fldOffset=0x10)" P-INDEP
+; V169 tmp140 [V169,T54] ( 2, 8 ) int -> rdi "field V80._version (fldOffset=0x14)" P-INDEP
+; V170 tmp141 [V170,T40] ( 3, 12 ) ref -> r12 "field V88._list (fldOffset=0x0)" P-INDEP
+;* V171 tmp142 [V171,T68] ( 0, 0 ) ref -> zero-ref "field V88._current (fldOffset=0x8)" P-INDEP
+;* V172 tmp143 [V172,T74] ( 0, 0 ) int -> zero-ref "field V88._index (fldOffset=0x10)" P-INDEP
+; V173 tmp144 [V173,T55] ( 2, 8 ) int -> rdi "field V88._version (fldOffset=0x14)" P-INDEP
+; V174 tmp145 [V174,T99] ( 2, 1 ) ref -> rdi single-def "field V91._list (fldOffset=0x0)" P-INDEP
+;* V175 tmp146 [V175,T109] ( 0, 0 ) ref -> zero-ref single-def "field V91._current (fldOffset=0x8)" P-INDEP
+;* V176 tmp147 [V176,T115] ( 0, 0 ) int -> zero-ref "field V91._index (fldOffset=0x10)" P-INDEP
+; V177 tmp148 [V177,T103] ( 2, 1 ) int -> rdi "field V91._version (fldOffset=0x14)" P-INDEP
+; V178 tmp149 [V178,T47] ( 2, 8 ) ref -> rdi "field V92._list (fldOffset=0x0)" P-INDEP
+;* V179 tmp150 [V179,T69] ( 0, 0 ) ref -> zero-ref "field V92._current (fldOffset=0x8)" P-INDEP
+;* V180 tmp151 [V180,T75] ( 0, 0 ) int -> zero-ref "field V92._index (fldOffset=0x10)" P-INDEP
+; V181 tmp152 [V181,T56] ( 2, 8 ) int -> rdi "field V92._version (fldOffset=0x14)" P-INDEP
+; V182 tmp153 [V182,T61] ( 3, 6 ) ref -> rdi single-def "arr expr"
+;* V183 tmp154 [V183,T104] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
+;* V184 tmp155 [V184,T105] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
+; V185 tmp156 [V185,T81] ( 3, 3 ) ref -> rsi single-def "arr expr"
+; V186 tmp157 [V186,T82] ( 3, 3 ) ref -> rdx single-def "arr expr"
+; V187 tmp158 [V187,T29] ( 3, 24 ) ref -> rdx single-def "arr expr"
+; V188 tmp159 [V188,T83] ( 3, 3 ) ref -> rdi single-def "arr expr"
+; V189 tmp160 [V189,T84] ( 3, 3 ) ref -> rdi single-def "arr expr"
+; V190 tmp161 [V190,T91] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
+;* V191 cse0 [V191,T116] ( 0, 0 ) long -> zero-ref "CSE #13: conservative"
+; V192 cse1 [V192,T76] ( 4, 3 ) ref -> r14 "CSE #05: conservative"
+; V193 cse2 [V193,T96] ( 3, 1.50) ref -> r12 "CSE #12: conservative"
+; V194 cse3 [V194,T57] ( 2, 8 ) int -> rdi "CSE #07: conservative"
+; V195 cse4 [V195,T41] ( 2, 8 ) int -> rdi "CSE #08: conservative"
+; V196 cse5 [V196,T58] ( 2, 8 ) int -> rdi "CSE #10: conservative"
+; V197 cse6 [V197,T42] ( 2, 8 ) int -> rdi "CSE #11: conservative"
+; V198 cse7 [V198,T04] ( 17,114 ) long -> r14 "CSE #16: aggressive"
;
-; Lcl frame size = 248
+; Lcl frame size = 360
G_M17172_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 248
- lea rbp, [rsp+0x120]
+ sub rsp, 360
+ lea rbp, [rsp+0x190]
+ xor eax, eax
+ mov qword ptr [rbp-0xE8], rax
+ vxorps xmm8, xmm8, xmm8
+ vmovdqu ymmword ptr [rbp-0xE0], ymm8
+ vmovdqu ymmword ptr [rbp-0xC0], ymm8
+ vmovdqu ymmword ptr [rbp-0xA0], ymm8
+ vmovdqu ymmword ptr [rbp-0x80], ymm8
+ vmovdqu ymmword ptr [rbp-0x60], ymm8
+ vmovdqa xmmword ptr [rbp-0x40], xmm8
+ mov qword ptr [rbp-0x30], rax
mov rbx, rdi
mov r15d, esi
- ;; size=31 bbWeight=1 PerfScore 7.25
+ ;; size=88 bbWeight=1 PerfScore 21.83
G_M17172_IG02:
mov rdi, gword ptr [rbx+0x20]
cmp r15d, dword ptr [rdi+0x08]
- jae G_M17172_IG57
+ jae G_M17172_IG63
mov eax, r15d
mov r14, gword ptr [rdi+8*rax+0x10]
cmp dword ptr [r14+0x10], 2
- jge G_M17172_IG51
+ jge G_M17172_IG57
;; size=33 bbWeight=1 PerfScore 12.25
G_M17172_IG03:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdi, 0xD1FFAB1E
mov esi, 66
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]:s_emptyArray
mov r12, gword ptr [rdi]
lea rdi, bword ptr [r13+0x08]
mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
mov rdi, r14
test rdi, rdi
je SHORT G_M17172_IG04
cmp dword ptr [rdi+0x10], 0
je SHORT G_M17172_IG04
mov rsi, gword ptr [r14+0x08]
cmp dword ptr [rsi+0x08], 0
- jbe G_M17172_IG57
+ jbe G_M17172_IG63
mov rdx, gword ptr [rsi+0x10]
inc dword ptr [r13+0x14]
mov rdi, r12
mov esi, dword ptr [r13+0x10]
cmp dword ptr [rdi+0x08], esi
- jbe G_M17172_IG13
- jmp G_M17172_IG12
+ jbe G_M17172_IG16
+ jmp G_M17172_IG15
;; size=120 bbWeight=0.50 PerfScore 15.88
G_M17172_IG04:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.HashSet`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov rdi, 0xD1FFAB1E
mov esi, 67
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.EqualityComparer`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]:<Default>k__BackingField
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [r14+0x18]
call CORINFO_HELP_ASSIGN_REF
mov rdx, gword ptr [rbx+0x30]
cmp r15d, dword ptr [rdx+0x08]
- jae G_M17172_IG57
+ jae G_M17172_IG63
mov edi, r15d
mov r12, gword ptr [rdx+8*rdi+0x10]
mov eax, dword ptr [r12+0x14]
xor edx, edx
- mov dword ptr [rbp-0x40], eax
+ mov dword ptr [rbp-0x100], eax
jmp G_M17172_IG07
- ;; size=97 bbWeight=0.50 PerfScore 10.12
+ ;; size=100 bbWeight=0.50 PerfScore 10.12
G_M17172_IG05:
- lea rdx, [rbp-0x30]
+ lea rdx, [rbp-0xF0]
mov rdi, r14
- mov gword ptr [rbp-0xF0], rcx
+ mov gword ptr [rbp-0x180], rcx
mov rsi, rcx
mov r8, 0xD1FFAB1E ; code for System.Collections.Generic.HashSet`1[System.__Canon]:AddIfNotPresent(System.__Canon,byref):ubyte:this
call [r8]System.Collections.Generic.HashSet`1[System.__Canon]:AddIfNotPresent(System.__Canon,byref):ubyte:this
test eax, eax
- mov eax, dword ptr [rbp-0x40]
- mov edx, dword ptr [rbp-0x3C]
+ mov eax, dword ptr [rbp-0x100]
+ mov edx, dword ptr [rbp-0xFC]
je SHORT G_M17172_IG07
- mov rcx, gword ptr [rbp-0xF0]
+ mov rcx, gword ptr [rbp-0x180]
inc dword ptr [r13+0x14]
mov rdi, gword ptr [r13+0x08]
mov esi, dword ptr [r13+0x10]
cmp dword ptr [rdi+0x08], esi
jbe SHORT G_M17172_IG06
- mov dword ptr [rbp-0x3C], edx
+ mov dword ptr [rbp-0xFC], edx
lea r8d, [rsi+0x01]
mov dword ptr [r13+0x10], r8d
movsxd rsi, esi
mov rdx, rcx
mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rcx]CORINFO_HELP_ARRADDR_ST
- mov eax, dword ptr [rbp-0x40]
- mov edx, dword ptr [rbp-0x3C]
+ mov eax, dword ptr [rbp-0x100]
+ mov edx, dword ptr [rbp-0xFC]
jmp SHORT G_M17172_IG07
- ;; size=101 bbWeight=2 PerfScore 61.50
+ ;; size=119 bbWeight=2 PerfScore 61.50
G_M17172_IG06:
- mov dword ptr [rbp-0x3C], edx
+ mov dword ptr [rbp-0xFC], edx
mov rdi, r13
mov rsi, rcx
mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
call [rcx]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
- mov eax, dword ptr [rbp-0x40]
- mov edx, dword ptr [rbp-0x3C]
- ;; size=27 bbWeight=2 PerfScore 13.50
+ mov eax, dword ptr [rbp-0x100]
+ mov edx, dword ptr [rbp-0xFC]
+ ;; size=36 bbWeight=2 PerfScore 13.50
G_M17172_IG07:
mov edi, dword ptr [r12+0x14]
cmp eax, edi
- jne G_M17172_IG58
+ jne G_M17172_IG64
mov edi, dword ptr [r12+0x10]
cmp edx, edi
jae SHORT G_M17172_IG08
mov rdi, gword ptr [r12+0x08]
- cmp edx, dword ptr [rdi+0x08]
- jae G_M17172_IG57
+ cmp dword ptr [rdi+0x08], edx
+ jbe SHORT G_M17172_IG08
mov esi, edx
mov rcx, gword ptr [rdi+8*rsi+0x10]
inc edx
- mov dword ptr [rbp-0x3C], edx
+ mov dword ptr [rbp-0xFC], edx
jmp G_M17172_IG05
- ;; size=53 bbWeight=4 PerfScore 72.00
+ ;; size=52 bbWeight=4 PerfScore 72.00
G_M17172_IG08:
mov rdx, gword ptr [rbx+0x28]
cmp r15d, dword ptr [rdx+0x08]
- jae G_M17172_IG57
+ jae G_M17172_IG63
mov edi, r15d
mov r12, gword ptr [rdx+8*rdi+0x10]
mov eax, dword ptr [r12+0x14]
xor edx, edx
- mov dword ptr [rbp-0x48], eax
+ mov dword ptr [rbp-0x108], eax
jmp G_M17172_IG11
- ;; size=37 bbWeight=4 PerfScore 54.00
+ ;; size=40 bbWeight=4 PerfScore 54.00
G_M17172_IG09:
- lea rdx, [rbp-0x38]
+ lea rdx, [rbp-0xF8]
mov rdi, r14
- mov gword ptr [rbp-0xF8], rcx
+ mov gword ptr [rbp-0x188], rcx
mov rsi, rcx
mov r8, 0xD1FFAB1E ; code for System.Collections.Generic.HashSet`1[System.__Canon]:AddIfNotPresent(System.__Canon,byref):ubyte:this
call [r8]System.Collections.Generic.HashSet`1[System.__Canon]:AddIfNotPresent(System.__Canon,byref):ubyte:this
test eax, eax
- mov eax, dword ptr [rbp-0x48]
- mov edx, dword ptr [rbp-0x44]
+ mov eax, dword ptr [rbp-0x108]
+ mov edx, dword ptr [rbp-0x104]
je SHORT G_M17172_IG11
- mov rcx, gword ptr [rbp-0xF8]
+ mov rcx, gword ptr [rbp-0x188]
inc dword ptr [r13+0x14]
mov rdi, gword ptr [r13+0x08]
mov esi, dword ptr [r13+0x10]
cmp dword ptr [rdi+0x08], esi
jbe SHORT G_M17172_IG10
- mov dword ptr [rbp-0x44], edx
+ mov dword ptr [rbp-0x104], edx
lea r8d, [rsi+0x01]
mov dword ptr [r13+0x10], r8d
movsxd rsi, esi
mov rdx, rcx
mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rcx]CORINFO_HELP_ARRADDR_ST
- mov eax, dword ptr [rbp-0x48]
- mov edx, dword ptr [rbp-0x44]
+ mov eax, dword ptr [rbp-0x108]
+ mov edx, dword ptr [rbp-0x104]
jmp SHORT G_M17172_IG11
- ;; size=101 bbWeight=2 PerfScore 61.50
+ ;; size=119 bbWeight=2 PerfScore 61.50
G_M17172_IG10:
- mov dword ptr [rbp-0x44], edx
+ mov dword ptr [rbp-0x104], edx
mov rdi, r13
mov rsi, rcx
mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
call [rcx]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
- mov eax, dword ptr [rbp-0x48]
- mov edx, dword ptr [rbp-0x44]
- ;; size=27 bbWeight=2 PerfScore 13.50
+ mov eax, dword ptr [rbp-0x108]
+ mov edx, dword ptr [rbp-0x104]
+ ;; size=36 bbWeight=2 PerfScore 13.50
G_M17172_IG11:
mov edi, dword ptr [r12+0x14]
cmp eax, edi
- jne G_M17172_IG58
+ jne G_M17172_IG64
mov edi, dword ptr [r12+0x10]
cmp edx, edi
- jae SHORT G_M17172_IG14
+ jae SHORT G_M17172_IG12
mov rdi, gword ptr [r12+0x08]
- cmp edx, dword ptr [rdi+0x08]
- jae G_M17172_IG57
+ cmp dword ptr [rdi+0x08], edx
+ jbe SHORT G_M17172_IG12
mov esi, edx
mov rcx, gword ptr [rdi+8*rsi+0x10]
inc edx
- mov dword ptr [rbp-0x44], edx
+ mov dword ptr [rbp-0x104], edx
jmp G_M17172_IG09
- ;; size=53 bbWeight=4 PerfScore 72.00
+ ;; size=52 bbWeight=4 PerfScore 72.00
G_M17172_IG12:
+ cmp dword ptr [r13+0x10], 0
+ je G_M17172_IG57
+ ;; size=11 bbWeight=4 PerfScore 16.00
+G_M17172_IG13:
+ mov rdi, gword ptr [rbx+0x30]
+ cmp r15d, dword ptr [rdi+0x08]
+ jae G_M17172_IG63
+ mov esi, r15d
+ mov rdi, gword ptr [rdi+8*rsi+0x10]
+ mov esi, dword ptr [rdi+0x14]
+ mov gword ptr [rbp-0x40], rdi
+ xor rdi, rdi
+ mov gword ptr [rbp-0x38], rdi
+ ;; size=35 bbWeight=0.50 PerfScore 6.25
+G_M17172_IG14:
+ mov dword ptr [rbp-0x30], edi
+ mov dword ptr [rbp-0x2C], esi
+ jmp SHORT G_M17172_IG17
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M17172_IG15:
lea eax, [rsi+0x01]
mov dword ptr [r13+0x10], eax
movsxd rsi, esi
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- jmp SHORT G_M17172_IG14
+ jmp SHORT G_M17172_IG12
;; size=24 bbWeight=0.50 PerfScore 3.50
-G_M17172_IG13:
+G_M17172_IG16:
mov rdi, r13
mov rsi, rdx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
- ;; size=18 bbWeight=0.50 PerfScore 1.88
-G_M17172_IG14:
- cmp dword ptr [r13+0x10], 0
- je G_M17172_IG51
- mov rdi, gword ptr [rbx+0x30]
- cmp r15d, dword ptr [rdi+0x08]
- jae G_M17172_IG57
- mov eax, r15d
- mov r14, gword ptr [rdi+8*rax+0x10]
- mov r12d, dword ptr [r14+0x14]
- xor edi, edi
- jmp G_M17172_IG25
- ;; size=44 bbWeight=0.50 PerfScore 8.25
-G_M17172_IG15:
- mov gword ptr [rbp-0x88], rax
+ jmp SHORT G_M17172_IG12
+ ;; size=20 bbWeight=0.50 PerfScore 2.88
+G_M17172_IG17:
+ lea rdi, [rbp-0x40]
+ mov r14, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[Microsoft.CSharp.RuntimeBinder.Semantics.CType]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je G_M17172_IG31
+ ;; size=37 bbWeight=0.50 PerfScore 2.75
+G_M17172_IG18:
+ mov r12, gword ptr [rbp-0x38]
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xB0], rax
+ mov gword ptr [rbp-0x140], rax
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]:s_emptyArray
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [rax+0x08]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0xB0]
- mov gword ptr [rbp-0x90], rax
+ mov rax, gword ptr [rbp-0x140]
+ mov gword ptr [rbp-0x110], rax
mov rdi, r13
- mov ecx, dword ptr [rdi+0x14]
- xor edi, edi
- mov dword ptr [rbp-0x54], ecx
- jmp G_M17172_IG20
- ;; size=81 bbWeight=2 PerfScore 29.00
-G_M17172_IG16:
- cmp gword ptr [rbp-0x88], rdx
- mov gword ptr [rbp-0x100], rdx
- je G_M17172_IG18
- lea r8, bword ptr [rbx+0x50]
- mov bword ptr [rbp-0xC0], r8
+ mov edi, dword ptr [rdi+0x14]
+ mov gword ptr [rbp-0x58], r13
+ xor rsi, rsi
+ mov gword ptr [rbp-0x50], rsi
+ ;; size=78 bbWeight=4 PerfScore 54.00
+G_M17172_IG19:
+ mov dword ptr [rbp-0x48], esi
+ mov dword ptr [rbp-0x44], edi
+ lea rdi, [rbp-0x58]
+ mov rsi, r14
+ mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rcx]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je G_M17172_IG25
+ ;; size=33 bbWeight=4 PerfScore 29.00
+G_M17172_IG20:
+ mov rax, gword ptr [rbp-0x50]
+ mov gword ptr [rbp-0x118], rax
+ cmp r12, rax
+ je G_M17172_IG24
+ ;; size=20 bbWeight=16 PerfScore 52.00
+G_M17172_IG21:
+ lea rcx, bword ptr [rbx+0x50]
+ mov bword ptr [rbp-0x150], rcx
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion
call CORINFO_HELP_NEWSFAST
mov rdx, rax
- mov gword ptr [rbp-0xC8], rdx
+ mov gword ptr [rbp-0x158], rdx
lea rdi, bword ptr [rdx+0x30]
- mov rsi, bword ptr [rbp-0xC0]
+ mov rsi, bword ptr [rbp-0x150]
call CORINFO_HELP_ASSIGN_BYREF
movsq
xor rdi, rdi
mov gword ptr [rdx+0x10], rdi
lea rdi, bword ptr [rdx+0x18]
- mov rsi, gword ptr [rbp-0x88]
+ mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0xC8]
+ mov rax, gword ptr [rbp-0x158]
lea rdi, bword ptr [rax+0x20]
- mov rsi, gword ptr [rbp-0x100]
+ mov rsi, gword ptr [rbp-0x118]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0xC8]
+ mov rax, gword ptr [rbp-0x158]
mov byte ptr [rax+0x2C], 0
xor edi, edi
mov dword ptr [rax+0x28], edi
- ;; size=135 bbWeight=8 PerfScore 176.00
-G_M17172_IG17:
+ ;; size=111 bbWeight=8 PerfScore 138.00
+G_M17172_IG22:
mov gword ptr [rax+0x08], rdi
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:Bind():ubyte:this
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:Bind():ubyte:this
test eax, eax
- mov ecx, dword ptr [rbp-0x54]
- mov edi, dword ptr [rbp-0x50]
- jne SHORT G_M17172_IG20
- mov r8, gword ptr [rbp-0x100]
- mov rax, gword ptr [rbp-0x90]
+ jne SHORT G_M17172_IG24
+ mov rax, gword ptr [rbp-0x110]
inc dword ptr [rax+0x14]
- mov rdx, gword ptr [rax+0x08]
+ mov rdi, gword ptr [rax+0x08]
mov esi, dword ptr [rax+0x10]
- cmp dword ptr [rdx+0x08], esi
- jbe SHORT G_M17172_IG19
- mov dword ptr [rbp-0x50], edi
- lea r9d, [rsi+0x01]
- mov dword ptr [rax+0x10], r9d
+ cmp dword ptr [rdi+0x08], esi
+ jbe SHORT G_M17172_IG23
+ lea edx, [rsi+0x01]
+ mov dword ptr [rax+0x10], edx
movsxd rsi, esi
- mov rdi, rdx
- mov rdx, r8
- mov r8, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
- call [r8]CORINFO_HELP_ARRADDR_ST
- mov ecx, dword ptr [rbp-0x54]
- mov edi, dword ptr [rbp-0x50]
- jmp SHORT G_M17172_IG20
- ;; size=99 bbWeight=8 PerfScore 250.00
-G_M17172_IG18:
- mov ecx, dword ptr [rbp-0x54]
- mov edi, dword ptr [rbp-0x50]
- jmp SHORT G_M17172_IG20
- ;; size=8 bbWeight=4 PerfScore 16.00
-G_M17172_IG19:
- mov dword ptr [rbp-0x50], edi
+ mov rdx, gword ptr [rbp-0x118]
+ mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
+ call [rcx]CORINFO_HELP_ARRADDR_ST
+ jmp SHORT G_M17172_IG24
+ ;; size=75 bbWeight=8 PerfScore 206.00
+G_M17172_IG23:
mov rdi, rax
- mov rsi, r8
- mov rdx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
- call [rdx]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
- mov ecx, dword ptr [rbp-0x54]
- mov edi, dword ptr [rbp-0x50]
- ;; size=27 bbWeight=8 PerfScore 54.00
-G_M17172_IG20:
- mov edx, dword ptr [r13+0x14]
- cmp ecx, edx
- jne G_M17172_IG58
- mov edx, dword ptr [r13+0x10]
- cmp edi, edx
- jae SHORT G_M17172_IG21
- mov rdx, gword ptr [r13+0x08]
- cmp edi, dword ptr [rdx+0x08]
- jae G_M17172_IG57
- mov esi, edi
- mov rdx, gword ptr [rdx+8*rsi+0x10]
- inc edi
- mov dword ptr [rbp-0x50], edi
- jmp G_M17172_IG16
- ;; size=50 bbWeight=16 PerfScore 288.00
-G_M17172_IG21:
- mov rax, gword ptr [rbp-0x90]
- mov r9d, dword ptr [rax+0x14]
- xor r8d, r8d
- jmp SHORT G_M17172_IG23
- ;; size=16 bbWeight=16 PerfScore 84.00
-G_M17172_IG22:
- mov dword ptr [rbp-0x4C], edi
+ mov rsi, gword ptr [rbp-0x118]
+ mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
+ call [rcx]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
+ ;; size=22 bbWeight=8 PerfScore 36.00
+G_M17172_IG24:
+ lea rdi, [rbp-0x58]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne G_M17172_IG20
+ ;; size=27 bbWeight=16 PerfScore 84.00
+G_M17172_IG25:
+ mov r12, gword ptr [rbp-0x110]
+ mov edi, dword ptr [r12+0x14]
+ mov gword ptr [rbp-0x70], r12
+ xor rsi, rsi
+ mov gword ptr [rbp-0x68], rsi
+ ;; size=22 bbWeight=4 PerfScore 21.00
+G_M17172_IG26:
+ mov dword ptr [rbp-0x60], esi
+ mov dword ptr [rbp-0x5C], edi
+ lea rdi, [rbp-0x70]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M17172_IG30
+ ;; size=29 bbWeight=4 PerfScore 29.00
+G_M17172_IG27:
+ mov rdx, gword ptr [rbp-0x68]
mov r8d, dword ptr [r13+0x10]
mov rsi, gword ptr [r13+0x08]
mov rdi, 0xD1FFAB1E ; System.Array:IndexOf[Microsoft.CSharp.RuntimeBinder.Semantics.CType](Microsoft.CSharp.RuntimeBinder.Semantics.CType[],Microsoft.CSharp.RuntimeBinder.Semantics.CType,int,int):int
xor ecx, ecx
- mov r10, 0xD1FFAB1E ; code for System.Array:IndexOf[System.__Canon](System.__Canon[],System.__Canon,int,int):int
- call [r10]System.Array:IndexOf[System.__Canon](System.__Canon[],System.__Canon,int,int):int
+ mov rax, 0xD1FFAB1E ; code for System.Array:IndexOf[System.__Canon](System.__Canon[],System.__Canon,int,int):int
+ call [rax]System.Array:IndexOf[System.__Canon](System.__Canon[],System.__Canon,int,int):int
test eax, eax
- jl SHORT G_M17172_IG24
- mov esi, eax
+ jl SHORT G_M17172_IG29
+ ;; size=40 bbWeight=16 PerfScore 160.00
+G_M17172_IG28:
mov rdi, r13
- mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this
- call [rcx]System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this
- mov rax, gword ptr [rbp-0x108]
- mov r8d, dword ptr [rbp-0x58]
- mov r9d, dword ptr [rbp-0x5C]
- ;; size=72 bbWeight=8 PerfScore 134.00
-G_M17172_IG23:
- mov esi, dword ptr [rax+0x14]
- cmp r9d, esi
- jne G_M17172_IG58
- mov esi, dword ptr [rax+0x10]
- cmp r8d, esi
- mov dword ptr [rbp-0x5C], r9d
- mov edi, dword ptr [rbp-0x4C]
- jae SHORT G_M17172_IG25
- mov gword ptr [rbp-0x108], rax
- mov rsi, gword ptr [rax+0x08]
- cmp r8d, dword ptr [rsi+0x08]
- jae G_M17172_IG57
- mov edx, r8d
- mov rdx, gword ptr [rsi+8*rdx+0x10]
- inc r8d
- mov dword ptr [rbp-0x58], r8d
- jmp G_M17172_IG22
- ;; size=68 bbWeight=16 PerfScore 336.00
-G_M17172_IG24:
- mov rax, gword ptr [rbp-0x108]
- mov r8d, dword ptr [rbp-0x58]
- mov r9d, dword ptr [rbp-0x5C]
- jmp SHORT G_M17172_IG23
- ;; size=17 bbWeight=4 PerfScore 20.00
-G_M17172_IG25:
- mov eax, dword ptr [r14+0x14]
- cmp r12d, eax
- jne G_M17172_IG58
- ;; size=13 bbWeight=16 PerfScore 52.00
-G_M17172_IG26:
- mov eax, dword ptr [r14+0x10]
- cmp edi, eax
- jae SHORT G_M17172_IG27
- mov rax, gword ptr [r14+0x08]
- cmp edi, dword ptr [rax+0x08]
- jae G_M17172_IG57
- mov ecx, edi
- mov rax, gword ptr [rax+8*rcx+0x10]
- inc edi
- mov dword ptr [rbp-0x4C], edi
- jmp G_M17172_IG15
- ;; size=38 bbWeight=4 PerfScore 59.00
-G_M17172_IG27:
+ mov esi, eax
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this
+ call [rax]System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this
+ ;; size=17 bbWeight=8 PerfScore 30.00
+G_M17172_IG29:
+ lea rdi, [rbp-0x70]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M17172_IG27
+ ;; size=23 bbWeight=16 PerfScore 84.00
+G_M17172_IG30:
+ lea rdi, [rbp-0x40]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne G_M17172_IG18
+ ;; size=27 bbWeight=4 PerfScore 21.00
+G_M17172_IG31:
mov rdi, gword ptr [rbx+0x28]
cmp r15d, dword ptr [rdi+0x08]
- jae G_M17172_IG57
- mov eax, r15d
- mov r14, gword ptr [rdi+8*rax+0x10]
- mov r12d, dword ptr [r14+0x14]
- xor edi, edi
- jmp G_M17172_IG38
- ;; size=33 bbWeight=4 PerfScore 50.00
-G_M17172_IG28:
- mov gword ptr [rbp-0x98], rax
+ jae G_M17172_IG63
+ mov esi, r15d
+ mov rdi, gword ptr [rdi+8*rsi+0x10]
+ mov esi, dword ptr [rdi+0x14]
+ mov gword ptr [rbp-0x88], rdi
+ xor rdi, rdi
+ mov gword ptr [rbp-0x80], rdi
+ ;; size=38 bbWeight=0.50 PerfScore 6.25
+G_M17172_IG32:
+ mov dword ptr [rbp-0x78], edi
+ mov dword ptr [rbp-0x74], esi
+ lea rdi, [rbp-0x88]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je G_M17172_IG46
+ ;; size=36 bbWeight=0.50 PerfScore 3.62
+G_M17172_IG33:
+ mov r12, gword ptr [rbp-0x80]
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xB8], rax
+ mov gword ptr [rbp-0x148], rax
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]:s_emptyArray
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [rax+0x08]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0xB8]
- mov gword ptr [rbp-0xA0], rax
+ mov rax, gword ptr [rbp-0x148]
+ mov gword ptr [rbp-0x120], rax
mov rdi, r13
- mov ecx, dword ptr [rdi+0x14]
- xor edi, edi
- mov dword ptr [rbp-0x68], ecx
- jmp G_M17172_IG33
- ;; size=81 bbWeight=2 PerfScore 29.00
-G_M17172_IG29:
- cmp gword ptr [rbp-0x98], rdx
- mov gword ptr [rbp-0x110], rdx
- je G_M17172_IG31
- lea r8, bword ptr [rbx+0x50]
- mov bword ptr [rbp-0xD0], r8
+ mov edi, dword ptr [rdi+0x14]
+ mov gword ptr [rbp-0xA0], r13
+ xor rsi, rsi
+ mov gword ptr [rbp-0x98], rsi
+ ;; size=84 bbWeight=4 PerfScore 54.00
+G_M17172_IG34:
+ mov dword ptr [rbp-0x90], esi
+ mov dword ptr [rbp-0x8C], edi
+ lea rdi, [rbp-0xA0]
+ mov rsi, r14
+ mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rcx]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je G_M17172_IG40
+ ;; size=42 bbWeight=4 PerfScore 29.00
+G_M17172_IG35:
+ mov rax, gword ptr [rbp-0x98]
+ mov gword ptr [rbp-0x128], rax
+ cmp r12, rax
+ je G_M17172_IG39
+ ;; size=23 bbWeight=16 PerfScore 52.00
+G_M17172_IG36:
+ lea rcx, bword ptr [rbx+0x50]
+ mov bword ptr [rbp-0x160], rcx
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion
call CORINFO_HELP_NEWSFAST
mov rdx, rax
- mov gword ptr [rbp-0xD8], rdx
+ mov gword ptr [rbp-0x168], rdx
lea rdi, bword ptr [rdx+0x30]
- mov rsi, bword ptr [rbp-0xD0]
+ mov rsi, bword ptr [rbp-0x160]
call CORINFO_HELP_ASSIGN_BYREF
movsq
xor rdi, rdi
mov gword ptr [rdx+0x10], rdi
lea rdi, bword ptr [rdx+0x18]
- mov rsi, gword ptr [rbp-0x110]
+ mov rsi, gword ptr [rbp-0x128]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0xD8]
+ mov rax, gword ptr [rbp-0x168]
lea rdi, bword ptr [rax+0x20]
- mov rsi, gword ptr [rbp-0x98]
+ mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0xD8]
+ mov rax, gword ptr [rbp-0x168]
mov byte ptr [rax+0x2C], 0
xor edi, edi
mov dword ptr [rax+0x28], edi
- ;; size=135 bbWeight=8 PerfScore 176.00
-G_M17172_IG30:
+ ;; size=111 bbWeight=8 PerfScore 138.00
+G_M17172_IG37:
mov gword ptr [rax+0x08], rdi
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:Bind():ubyte:this
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:Bind():ubyte:this
test eax, eax
- mov ecx, dword ptr [rbp-0x68]
- mov edi, dword ptr [rbp-0x64]
- jne SHORT G_M17172_IG33
- mov r8, gword ptr [rbp-0x110]
- mov rax, gword ptr [rbp-0xA0]
+ jne SHORT G_M17172_IG39
+ mov rax, gword ptr [rbp-0x120]
inc dword ptr [rax+0x14]
- mov rdx, gword ptr [rax+0x08]
+ mov rdi, gword ptr [rax+0x08]
mov esi, dword ptr [rax+0x10]
- cmp dword ptr [rdx+0x08], esi
- jbe SHORT G_M17172_IG32
- mov dword ptr [rbp-0x64], edi
- lea r9d, [rsi+0x01]
- mov dword ptr [rax+0x10], r9d
+ cmp dword ptr [rdi+0x08], esi
+ jbe SHORT G_M17172_IG38
+ lea edx, [rsi+0x01]
+ mov dword ptr [rax+0x10], edx
movsxd rsi, esi
- mov rdi, rdx
- mov rdx, r8
- mov r8, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
- call [r8]CORINFO_HELP_ARRADDR_ST
- mov ecx, dword ptr [rbp-0x68]
- mov edi, dword ptr [rbp-0x64]
- jmp SHORT G_M17172_IG33
- ;; size=99 bbWeight=8 PerfScore 250.00
-G_M17172_IG31:
- mov ecx, dword ptr [rbp-0x68]
- mov edi, dword ptr [rbp-0x64]
- jmp SHORT G_M17172_IG33
- ;; size=8 bbWeight=4 PerfScore 16.00
-G_M17172_IG32:
- mov dword ptr [rbp-0x64], edi
+ mov rdx, gword ptr [rbp-0x128]
+ mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
+ call [rcx]CORINFO_HELP_ARRADDR_ST
+ jmp SHORT G_M17172_IG39
+ ;; size=75 bbWeight=8 PerfScore 206.00
+G_M17172_IG38:
mov rdi, rax
- mov rsi, r8
- mov rdx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
- call [rdx]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
- mov ecx, dword ptr [rbp-0x68]
- mov edi, dword ptr [rbp-0x64]
- ;; size=27 bbWeight=8 PerfScore 54.00
-G_M17172_IG33:
- mov edx, dword ptr [r13+0x14]
- cmp ecx, edx
- jne G_M17172_IG58
- mov edx, dword ptr [r13+0x10]
- cmp edi, edx
- jae SHORT G_M17172_IG34
- mov rdx, gword ptr [r13+0x08]
- cmp edi, dword ptr [rdx+0x08]
- jae G_M17172_IG57
- mov esi, edi
- mov rdx, gword ptr [rdx+8*rsi+0x10]
- inc edi
- mov dword ptr [rbp-0x64], edi
- jmp G_M17172_IG29
- ;; size=50 bbWeight=16 PerfScore 288.00
-G_M17172_IG34:
- mov rax, gword ptr [rbp-0xA0]
- mov r9d, dword ptr [rax+0x14]
- xor r8d, r8d
- jmp SHORT G_M17172_IG36
- ;; size=16 bbWeight=16 PerfScore 84.00
-G_M17172_IG35:
- mov dword ptr [rbp-0x60], edi
+ mov rsi, gword ptr [rbp-0x128]
+ mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
+ call [rcx]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
+ ;; size=22 bbWeight=8 PerfScore 36.00
+G_M17172_IG39:
+ lea rdi, [rbp-0xA0]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne G_M17172_IG35
+ ;; size=30 bbWeight=16 PerfScore 84.00
+G_M17172_IG40:
+ mov r12, gword ptr [rbp-0x120]
+ mov edi, dword ptr [r12+0x14]
+ mov gword ptr [rbp-0xB8], r12
+ xor rsi, rsi
+ mov gword ptr [rbp-0xB0], rsi
+ ;; size=28 bbWeight=4 PerfScore 21.00
+G_M17172_IG41:
+ mov dword ptr [rbp-0xA8], esi
+ mov dword ptr [rbp-0xA4], edi
+ lea rdi, [rbp-0xB8]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M17172_IG45
+ ;; size=38 bbWeight=4 PerfScore 29.00
+G_M17172_IG42:
+ mov rdx, gword ptr [rbp-0xB0]
mov r8d, dword ptr [r13+0x10]
mov rsi, gword ptr [r13+0x08]
mov rdi, 0xD1FFAB1E ; System.Array:IndexOf[Microsoft.CSharp.RuntimeBinder.Semantics.CType](Microsoft.CSharp.RuntimeBinder.Semantics.CType[],Microsoft.CSharp.RuntimeBinder.Semantics.CType,int,int):int
xor ecx, ecx
- mov r10, 0xD1FFAB1E ; code for System.Array:IndexOf[System.__Canon](System.__Canon[],System.__Canon,int,int):int
- call [r10]System.Array:IndexOf[System.__Canon](System.__Canon[],System.__Canon,int,int):int
+ mov rax, 0xD1FFAB1E ; code for System.Array:IndexOf[System.__Canon](System.__Canon[],System.__Canon,int,int):int
+ call [rax]System.Array:IndexOf[System.__Canon](System.__Canon[],System.__Canon,int,int):int
test eax, eax
- jl SHORT G_M17172_IG37
+ jl SHORT G_M17172_IG44
+ ;; size=43 bbWeight=16 PerfScore 160.00
+G_M17172_IG43:
+ mov rdi, r13
mov esi, eax
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this
+ call [rax]System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this
+ ;; size=17 bbWeight=8 PerfScore 30.00
+G_M17172_IG44:
+ lea rdi, [rbp-0xB8]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M17172_IG42
+ ;; size=26 bbWeight=16 PerfScore 84.00
+G_M17172_IG45:
+ lea rdi, [rbp-0x88]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne G_M17172_IG33
+ ;; size=30 bbWeight=4 PerfScore 21.00
+G_M17172_IG46:
+ xor r12, r12
mov rdi, r13
- mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this
- call [rcx]System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this
- mov rax, gword ptr [rbp-0x118]
- mov r8d, dword ptr [rbp-0x6C]
- mov r9d, dword ptr [rbp-0x70]
- ;; size=72 bbWeight=8 PerfScore 134.00
-G_M17172_IG36:
- mov esi, dword ptr [rax+0x14]
- cmp r9d, esi
- jne G_M17172_IG58
- mov esi, dword ptr [rax+0x10]
- cmp r8d, esi
- mov dword ptr [rbp-0x70], r9d
- mov edi, dword ptr [rbp-0x60]
- jae SHORT G_M17172_IG38
- mov gword ptr [rbp-0x118], rax
- mov rsi, gword ptr [rax+0x08]
- cmp r8d, dword ptr [rsi+0x08]
- jae G_M17172_IG57
- mov edx, r8d
- mov rdx, gword ptr [rsi+8*rdx+0x10]
- inc r8d
- mov dword ptr [rbp-0x6C], r8d
- jmp G_M17172_IG35
- ;; size=68 bbWeight=16 PerfScore 336.00
-G_M17172_IG37:
- mov rax, gword ptr [rbp-0x118]
- mov r8d, dword ptr [rbp-0x6C]
- mov r9d, dword ptr [rbp-0x70]
- jmp SHORT G_M17172_IG36
- ;; size=17 bbWeight=4 PerfScore 20.00
-G_M17172_IG38:
- mov eax, dword ptr [r14+0x14]
- cmp r12d, eax
- jne G_M17172_IG58
- ;; size=13 bbWeight=16 PerfScore 52.00
-G_M17172_IG39:
- mov eax, dword ptr [r14+0x10]
- cmp edi, eax
- jae SHORT G_M17172_IG40
- mov rax, gword ptr [r14+0x08]
- cmp edi, dword ptr [rax+0x08]
- jae G_M17172_IG57
- mov ecx, edi
- mov rax, gword ptr [rax+8*rcx+0x10]
- inc edi
- mov dword ptr [rbp-0x60], edi
- jmp G_M17172_IG28
- ;; size=38 bbWeight=4 PerfScore 59.00
-G_M17172_IG40:
- xor r14, r14
+ mov edi, dword ptr [rdi+0x14]
+ mov gword ptr [rbp-0xD0], r13
+ xor rsi, rsi
+ mov gword ptr [rbp-0xC8], rsi
+ ;; size=25 bbWeight=0.50 PerfScore 2.38
+G_M17172_IG47:
+ mov dword ptr [rbp-0xC0], esi
+ mov dword ptr [rbp-0xBC], edi
+ lea rdi, [rbp-0xD0]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je G_M17172_IG56
+ ;; size=42 bbWeight=0.50 PerfScore 3.62
+G_M17172_IG48:
+ mov rax, gword ptr [rbp-0xC8]
+ mov gword ptr [rbp-0x130], rax
mov rdi, r13
- mov r12d, dword ptr [rdi+0x14]
- xor edi, edi
- jmp G_M17172_IG49
- ;; size=17 bbWeight=4 PerfScore 19.00
-G_M17172_IG41:
- mov gword ptr [rbp-0xA8], rcx
- xor edx, edx
- mov dword ptr [rbp-0x7C], eax
- jmp G_M17172_IG44
- ;; size=17 bbWeight=2 PerfScore 8.50
-G_M17172_IG42:
- cmp rcx, rsi
- mov gword ptr [rbp-0x120], rsi
- je G_M17172_IG46
- lea r8, bword ptr [rbx+0x50]
- mov bword ptr [rbp-0xE0], r8
+ mov edi, dword ptr [rdi+0x14]
+ mov gword ptr [rbp-0xE8], r13
+ xor rsi, rsi
+ mov gword ptr [rbp-0xE0], rsi
+ ;; size=36 bbWeight=4 PerfScore 26.00
+G_M17172_IG49:
+ mov dword ptr [rbp-0xD8], esi
+ mov dword ptr [rbp-0xD4], edi
+ lea rdi, [rbp-0xE8]
+ mov rsi, r14
+ mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rcx]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je G_M17172_IG54
+ ;; size=42 bbWeight=4 PerfScore 29.00
+G_M17172_IG50:
+ mov rax, gword ptr [rbp-0xE0]
+ mov gword ptr [rbp-0x138], rax
+ cmp gword ptr [rbp-0x130], rax
+ je G_M17172_IG53
+ ;; size=27 bbWeight=16 PerfScore 80.00
+G_M17172_IG51:
+ lea rdx, bword ptr [rbx+0x50]
+ mov bword ptr [rbp-0x170], rdx
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion
call CORINFO_HELP_NEWSFAST
mov rdx, rax
- mov gword ptr [rbp-0xE8], rdx
+ mov gword ptr [rbp-0x178], rdx
lea rdi, bword ptr [rdx+0x30]
- mov rsi, bword ptr [rbp-0xE0]
+ mov rsi, bword ptr [rbp-0x170]
call CORINFO_HELP_ASSIGN_BYREF
movsq
xor rdi, rdi
mov gword ptr [rdx+0x10], rdi
lea rdi, bword ptr [rdx+0x18]
- mov rsi, gword ptr [rbp-0x120]
+ mov rsi, gword ptr [rbp-0x138]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0xE8]
+ mov rax, gword ptr [rbp-0x178]
lea rdi, bword ptr [rax+0x20]
- mov rsi, gword ptr [rbp-0xA8]
+ mov rsi, gword ptr [rbp-0x130]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0xE8]
+ mov rax, gword ptr [rbp-0x178]
mov byte ptr [rax+0x2C], 0
xor edi, edi
mov dword ptr [rax+0x28], edi
- ;; size=131 bbWeight=8 PerfScore 162.00
-G_M17172_IG43:
+ ;; size=115 bbWeight=8 PerfScore 144.00
+G_M17172_IG52:
mov gword ptr [rax+0x08], rdi
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:Bind():ubyte:this
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:Bind():ubyte:this
test eax, eax
- mov eax, dword ptr [rbp-0x7C]
- mov rcx, gword ptr [rbp-0xA8]
- mov edx, dword ptr [rbp-0x78]
- je SHORT G_M17172_IG45
- ;; size=36 bbWeight=8 PerfScore 70.00
-G_M17172_IG44:
- mov esi, dword ptr [r13+0x14]
- cmp eax, esi
- jne G_M17172_IG58
- mov esi, dword ptr [r13+0x10]
- cmp edx, esi
- jae SHORT G_M17172_IG47
- mov rsi, gword ptr [r13+0x08]
- cmp edx, dword ptr [rsi+0x08]
- jae G_M17172_IG57
- mov r8d, edx
- mov rsi, gword ptr [rsi+8*r8+0x10]
- inc edx
- mov dword ptr [rbp-0x78], edx
- jmp G_M17172_IG42
- ;; size=51 bbWeight=16 PerfScore 288.00
-G_M17172_IG45:
- mov edi, dword ptr [rbp-0x74]
- jmp SHORT G_M17172_IG49
- ;; size=5 bbWeight=4 PerfScore 12.00
-G_M17172_IG46:
- mov eax, dword ptr [rbp-0x7C]
- mov rcx, gword ptr [rbp-0xA8]
- mov edx, dword ptr [rbp-0x78]
- jmp SHORT G_M17172_IG44
- ;; size=15 bbWeight=4 PerfScore 20.00
-G_M17172_IG47:
- test r14, r14
- jne SHORT G_M17172_IG53
- ;; size=5 bbWeight=16 PerfScore 20.00
-G_M17172_IG48:
- mov r14, rcx
- mov edi, dword ptr [rbp-0x74]
- ;; size=6 bbWeight=2 PerfScore 2.50
-G_M17172_IG49:
- mov eax, dword ptr [r13+0x14]
- cmp r12d, eax
- jne G_M17172_IG58
- mov ecx, dword ptr [r13+0x10]
- cmp edi, ecx
- jae SHORT G_M17172_IG50
- mov rcx, gword ptr [r13+0x08]
- cmp edi, dword ptr [rcx+0x08]
- jae G_M17172_IG57
- mov edx, edi
- mov rcx, gword ptr [rcx+8*rdx+0x10]
- inc edi
- mov dword ptr [rbp-0x74], edi
- jmp G_M17172_IG41
- ;; size=51 bbWeight=4 PerfScore 72.00
-G_M17172_IG50:
- test r14, r14
- jne SHORT G_M17172_IG55
- ;; size=5 bbWeight=4 PerfScore 5.00
-G_M17172_IG51:
+ je SHORT G_M17172_IG55
+ ;; size=23 bbWeight=8 PerfScore 46.00
+G_M17172_IG53:
+ lea rdi, [rbp-0xE8]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne G_M17172_IG50
+ ;; size=30 bbWeight=16 PerfScore 84.00
+G_M17172_IG54:
+ test r12, r12
+ jne SHORT G_M17172_IG59
+ mov r12, gword ptr [rbp-0x130]
+ ;; size=12 bbWeight=2 PerfScore 4.50
+G_M17172_IG55:
+ lea rdi, [rbp-0xD0]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne G_M17172_IG48
+ ;; size=30 bbWeight=4 PerfScore 21.00
+G_M17172_IG56:
+ test r12, r12
+ jne SHORT G_M17172_IG61
+ ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M17172_IG57:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M17172_IG52:
- add rsp, 248
+G_M17172_IG58:
+ add rsp, 360
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
-G_M17172_IG53:
+G_M17172_IG59:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M17172_IG54:
- add rsp, 248
+G_M17172_IG60:
+ add rsp, 360
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
-G_M17172_IG55:
- mov r13, gword ptr [rbx+0x38]
+G_M17172_IG61:
+ mov r14, gword ptr [rbx+0x38]
mov rdi, gword ptr [rbx+0x50]
- mov rsi, r14
+ mov rsi, r12
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager:GetBestAccessibleType(Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol,Microsoft.CSharp.RuntimeBinder.Semantics.CType):Microsoft.CSharp.RuntimeBinder.Semantics.CType
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager:GetBestAccessibleType(Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol,Microsoft.CSharp.RuntimeBinder.Semantics.CType):Microsoft.CSharp.RuntimeBinder.Semantics.CType
mov rdx, rax
movsxd rsi, r15d
- mov rdi, r13
+ mov rdi, r14
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
mov rdi, rbx
mov esi, r15d
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.MethodTypeInferrer:UpdateDependenciesAfterFix(int):this
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.MethodTypeInferrer:UpdateDependenciesAfterFix(int):this
mov eax, 1
;; size=67 bbWeight=0.50 PerfScore 7.75
-G_M17172_IG56:
- add rsp, 248
+G_M17172_IG62:
+ add rsp, 360
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
-G_M17172_IG57:
+G_M17172_IG63:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M17172_IG58:
+G_M17172_IG64:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2530, prolog size 31, PerfScore 4146.50, instruction count 615, allocated bytes for code 2530 (MethodHash=6724bceb) for method Microsoft.CSharp.RuntimeBinder.Semantics.MethodTypeInferrer:Fix(int):ubyte:this (FullOpts)
+; Total bytes of code 2628, prolog size 82, PerfScore 2794.83, instruction count 583, allocated bytes for code 2628 (MethodHash=6724bceb) for method Microsoft.CSharp.RuntimeBinder.Semantics.MethodTypeInferrer:Fix(int):ubyte:this (FullOpts)
90 (4.17 % of base) - System.Data.DataColumnCollection:CanRemove(System.Data.DataColumn,ubyte):ubyte:this
; Assembly listing for method System.Data.DataColumnCollection:CanRemove(System.Data.DataColumn,ubyte):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 64 single block inlinees; 17 inlinees without PGO data
+; 0 inlinees with PGO data; 64 single block inlinees; 15 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T09] ( 19, 28.50) ref -> r15 this class-hnd single-def <System.Data.DataColumnCollection>
; V01 arg1 [V01,T00] ( 14, 68.50) ref -> rbx class-hnd single-def <System.Data.DataColumn>
-; V02 arg2 [V02,T48] ( 10, 6 ) ubyte -> r14 single-def
+; V02 arg2 [V02,T44] ( 10, 6 ) ubyte -> r14 single-def
;* V03 loc0 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Data.DataKey>
-; V04 loc1 [V04,T41] ( 6, 10.50) int -> r12
-; V05 loc2 [V05,T42] ( 6, 10.50) int -> r12
-; V06 loc3 [V06,T40] ( 7, 10.50) int -> r13
-; V07 loc4 [V07,T46] ( 4, 9 ) ref -> r13 class-hnd exact single-def <System.Data.ParentForeignKeyConstraintEnumerator>
+; V04 loc1 [V04,T38] ( 6, 10.50) int -> r12
+; V05 loc2 [V05,T39] ( 6, 10.50) int -> r12
+; V06 loc3 [V06,T37] ( 7, 10.50) int -> r13
+; V07 loc4 [V07,T43] ( 4, 9 ) ref -> r13 class-hnd exact single-def <System.Data.ParentForeignKeyConstraintEnumerator>
; V08 loc5 [V08,T18] ( 10, 21 ) ref -> r12 class-hnd <System.Data.Constraint>
-;* V09 loc6 [V09,T80] ( 0, 0 ) int -> zero-ref
-; V10 loc7 [V10,T32] ( 7, 12 ) ref -> r13 class-hnd <System.Data.DataColumn>
-; V11 loc8 [V11,T53] ( 3, 6 ) ref -> rdi class-hnd exact <System.Data.DataExpression>
-;* V12 loc9 [V12 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Data.Index]>
+;* V09 loc6 [V09,T76] ( 0, 0 ) int -> zero-ref
+; V10 loc7 [V10,T30] ( 7, 12 ) ref -> r13 class-hnd <System.Data.DataColumn>
+; V11 loc8 [V11,T48] ( 3, 6 ) ref -> rdi class-hnd exact <System.Data.DataExpression>
+; V12 loc9 [V12 ] ( 6, 6.50) struct (24) [rbp-0x40] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Data.Index]>
;* V13 loc10 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Data.Index>
;# V14 OutArgs [V14 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V15 tmp1 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
;* V16 tmp2 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.String>
-; V17 tmp3 [V17,T56] ( 5, 5 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Data.ParentForeignKeyConstraintEnumerator>
+; V17 tmp3 [V17,T51] ( 5, 5 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Data.ParentForeignKeyConstraintEnumerator>
;* V18 tmp4 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.String>
;* V19 tmp5 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Data.DataTable>
;* V20 tmp6 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Data.UniqueConstraint>
-;* V21 tmp7 [V21,T76] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V22 tmp8 [V22,T81] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V21 tmp7 [V21,T72] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V22 tmp8 [V22,T77] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V23 tmp9 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Data.DataRelationCollection>
-; V24 tmp10 [V24,T25] ( 4, 16 ) ref -> r13 class-hnd "Inlining Arg" <System.Data.DataTable>
-; V25 tmp11 [V25,T49] ( 2, 8 ) ref -> rdi class-hnd "dup spill" <System.Data.DataRelationCollection>
-; V26 tmp12 [V26,T43] ( 5, 10 ) ref -> rdi
-; V27 tmp13 [V27,T05] ( 8, 32 ) ref -> [rbp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" <System.Data.DataRelationCollection+DataTableRelationCollection>
+; V24 tmp10 [V24,T24] ( 4, 16 ) ref -> r13 class-hnd "Inlining Arg" <System.Data.DataTable>
+; V25 tmp11 [V25,T45] ( 2, 8 ) ref -> rdi class-hnd "dup spill" <System.Data.DataRelationCollection>
+; V26 tmp12 [V26,T40] ( 5, 10 ) ref -> rdi
+; V27 tmp13 [V27,T05] ( 8, 32 ) ref -> [rbp-0x48] class-hnd exact spill-single-def "NewObj constructor temp" <System.Data.DataRelationCollection+DataTableRelationCollection>
;* V28 tmp14 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Data.DataRelationCollection+DataTableRelationCollection>
-; V29 tmp15 [V29,T33] ( 3, 12 ) ref -> [rbp-0x38] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.ArrayList>
-; V30 tmp16 [V30,T26] ( 4, 16 ) ref -> r13 class-hnd "Inlining Arg" <System.Data.DataRelation>
-;* V31 tmp17 [V31,T58] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V32 tmp18 [V32,T68] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V29 tmp15 [V29,T31] ( 3, 12 ) ref -> [rbp-0x50] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.ArrayList>
+; V30 tmp16 [V30,T25] ( 4, 16 ) ref -> r13 class-hnd "Inlining Arg" <System.Data.DataRelation>
+;* V31 tmp17 [V31,T54] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V32 tmp18 [V32,T64] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V33 tmp19 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Data.DataRelationCollection>
; V34 tmp20 [V34,T12] ( 4, 24 ) ref -> r13 class-hnd "Inlining Arg" <System.Data.DataTable>
-; V35 tmp21 [V35,T29] ( 2, 16 ) ref -> rdi class-hnd "dup spill" <System.Data.DataRelationCollection>
-; V36 tmp22 [V36,T22] ( 5, 18 ) ref -> rdi
-; V37 tmp23 [V37,T06] ( 8, 32 ) ref -> [rbp-0x40] class-hnd exact spill-single-def "NewObj constructor temp" <System.Data.DataRelationCollection+DataTableRelationCollection>
+; V35 tmp21 [V35,T28] ( 2, 16 ) ref -> rdi class-hnd "dup spill" <System.Data.DataRelationCollection>
+; V36 tmp22 [V36,T21] ( 5, 18 ) ref -> rdi
+; V37 tmp23 [V37,T06] ( 8, 32 ) ref -> [rbp-0x58] class-hnd exact spill-single-def "NewObj constructor temp" <System.Data.DataRelationCollection+DataTableRelationCollection>
;* V38 tmp24 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Data.DataRelationCollection+DataTableRelationCollection>
-; V39 tmp25 [V39,T34] ( 3, 12 ) ref -> [rbp-0x48] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.ArrayList>
+; V39 tmp25 [V39,T32] ( 3, 12 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.ArrayList>
;* V40 tmp26 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Data.DataRelationCollection>
-; V41 tmp27 [V41,T27] ( 4, 16 ) ref -> r13 class-hnd "Inlining Arg" <System.Data.DataTable>
-; V42 tmp28 [V42,T50] ( 2, 8 ) ref -> rdi class-hnd "dup spill" <System.Data.DataRelationCollection>
-; V43 tmp29 [V43,T44] ( 5, 10 ) ref -> rdi
-; V44 tmp30 [V44,T07] ( 8, 32 ) ref -> [rbp-0x50] class-hnd exact spill-single-def "NewObj constructor temp" <System.Data.DataRelationCollection+DataTableRelationCollection>
+; V41 tmp27 [V41,T26] ( 4, 16 ) ref -> r13 class-hnd "Inlining Arg" <System.Data.DataTable>
+; V42 tmp28 [V42,T46] ( 2, 8 ) ref -> rdi class-hnd "dup spill" <System.Data.DataRelationCollection>
+; V43 tmp29 [V43,T41] ( 5, 10 ) ref -> rdi
+; V44 tmp30 [V44,T07] ( 8, 32 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "NewObj constructor temp" <System.Data.DataRelationCollection+DataTableRelationCollection>
;* V45 tmp31 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Data.DataRelationCollection+DataTableRelationCollection>
-; V46 tmp32 [V46,T35] ( 3, 12 ) ref -> [rbp-0x58] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.ArrayList>
-; V47 tmp33 [V47,T28] ( 4, 16 ) ref -> r13 class-hnd "Inlining Arg" <System.Data.DataRelation>
-;* V48 tmp34 [V48,T59] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V49 tmp35 [V49,T69] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V46 tmp32 [V46,T33] ( 3, 12 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.ArrayList>
+; V47 tmp33 [V47,T27] ( 4, 16 ) ref -> r13 class-hnd "Inlining Arg" <System.Data.DataRelation>
+;* V48 tmp34 [V48,T55] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V49 tmp35 [V49,T65] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V50 tmp36 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Data.DataRelationCollection>
; V51 tmp37 [V51,T13] ( 4, 24 ) ref -> r13 class-hnd "Inlining Arg" <System.Data.DataTable>
-; V52 tmp38 [V52,T30] ( 2, 16 ) ref -> rdi class-hnd "dup spill" <System.Data.DataRelationCollection>
-; V53 tmp39 [V53,T23] ( 5, 18 ) ref -> rdi
-; V54 tmp40 [V54,T08] ( 8, 32 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "NewObj constructor temp" <System.Data.DataRelationCollection+DataTableRelationCollection>
+; V52 tmp38 [V52,T29] ( 2, 16 ) ref -> rdi class-hnd "dup spill" <System.Data.DataRelationCollection>
+; V53 tmp39 [V53,T22] ( 5, 18 ) ref -> rdi
+; V54 tmp40 [V54,T08] ( 8, 32 ) ref -> [rbp-0x78] class-hnd exact spill-single-def "NewObj constructor temp" <System.Data.DataRelationCollection+DataTableRelationCollection>
;* V55 tmp41 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Data.DataRelationCollection+DataTableRelationCollection>
-; V56 tmp42 [V56,T36] ( 3, 12 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.ArrayList>
+; V56 tmp42 [V56,T34] ( 3, 12 ) ref -> [rbp-0x80] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.ArrayList>
;* V57 tmp43 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Data.DataTable>
;* V58 tmp44 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Data.DataTable>
;* V59 tmp45 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Data.DataTable>
;* V60 tmp46 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Data.DataTable>
;* V61 tmp47 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Data.DataTable>
;* V62 tmp48 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.ConstraintCollection>
;* V63 tmp49 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Data.DataTable>
-;* V64 tmp50 [V64,T79] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Data.DataTable>
-; V65 tmp51 [V65,T64] ( 2, 2 ) ref -> r12 class-hnd single-def "Inlining Arg" <System.Data.DataSet>
-; V66 tmp52 [V66,T65] ( 2, 2 ) ref -> [rbp-0x70] class-hnd spill-single-def "Inlining Arg" <System.Data.DataTable>
+;* V64 tmp50 [V64,T74] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Data.DataTable>
+; V65 tmp51 [V65,T60] ( 2, 2 ) ref -> r12 class-hnd single-def "Inlining Arg" <System.Data.DataSet>
+; V66 tmp52 [V66,T61] ( 2, 2 ) ref -> [rbp-0x88] class-hnd spill-single-def "Inlining Arg" <System.Data.DataTable>
;* V67 tmp53 [V67 ] ( 0, 0 ) ref -> zero-ref single-def
;* V68 tmp54 [V68 ] ( 0, 0 ) ref -> zero-ref
-; V69 tmp55 [V69,T75] ( 2, 1 ) ref -> rax
-; V70 tmp56 [V70,T66] ( 2, 2 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Data.DataTableCollection>
-;* V71 tmp57 [V71,T52] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Data.ForeignKeyConstraint>
-;* V72 tmp58 [V72,T60] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V73 tmp59 [V73,T61] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V69 tmp55 [V69,T71] ( 2, 1 ) ref -> rax
+; V70 tmp56 [V70,T62] ( 2, 2 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Data.DataTableCollection>
+;* V71 tmp57 [V71,T47] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Data.ForeignKeyConstraint>
+;* V72 tmp58 [V72,T56] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V73 tmp59 [V73,T57] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V74 tmp60 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Data.DataTable>
; V75 tmp61 [V75,T14] ( 3, 24 ) ref -> rdi class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Data.DataColumn]>
-; V76 tmp62 [V76,T55] ( 2, 4 ) ubyte -> rax "Inline return value spill temp"
+; V76 tmp62 [V76,T50] ( 2, 4 ) ubyte -> rax "Inline return value spill temp"
;* V77 tmp63 [V77 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Data.DataColumn]>
-; V78 tmp64 [V78,T67] ( 2, 2 ) ref -> rax class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Data.Index]>
+; V78 tmp64 [V78,T63] ( 2, 2 ) ref -> rax class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Data.Index]>
;* V79 tmp65 [V79 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Data.Index]>
-;* V80 tmp66 [V80,T51] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V81 tmp67 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Data.Index]>
-; V82 tmp68 [V82,T01] ( 12, 69 ) ref -> registers "field V03._columns (fldOffset=0x0)" P-INDEP
-; V83 tmp69 [V83,T47] ( 3, 8.50) ref -> rax single-def "field V12._list (fldOffset=0x0)" P-INDEP
-;* V84 tmp70 [V84 ] ( 0, 0 ) ref -> zero-ref "field V12._current (fldOffset=0x8)" P-INDEP
-; V85 tmp71 [V85,T19] ( 5, 16.50) int -> rdi "field V12._index (fldOffset=0x10)" P-INDEP
-;* V86 tmp72 [V86,T82] ( 0, 0 ) int -> zero-ref "field V12._version (fldOffset=0x14)" P-INDEP
-; V87 tmp73 [V87,T70] ( 3, 1.50) ref -> rax single-def "field V79._list (fldOffset=0x0)" P-INDEP
-;* V88 tmp74 [V88 ] ( 0, 0 ) ref -> zero-ref single-def "field V79._current (fldOffset=0x8)" P-INDEP
-;* V89 tmp75 [V89,T83] ( 0, 0 ) int -> zero-ref "field V79._index (fldOffset=0x10)" P-INDEP
-;* V90 tmp76 [V90,T77] ( 0, 0 ) int -> zero-ref "field V79._version (fldOffset=0x14)" P-INDEP
-; V91 tmp77 [V91,T62] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V92 tmp78 [V92,T84] ( 3, 0 ) ref -> rax "argument with side effect"
-; V93 tmp79 [V93,T85] ( 3, 0 ) ref -> rax "argument with side effect"
-; V94 tmp80 [V94,T86] ( 3, 0 ) ref -> rax "argument with side effect"
-; V95 tmp81 [V95,T87] ( 3, 0 ) ref -> rax "argument with side effect"
-; V96 tmp82 [V96,T15] ( 3, 24 ) ref -> rdi "argument with side effect"
-; V97 tmp83 [V97,T37] ( 3, 12 ) ref -> rax "argument with side effect"
-; V98 tmp84 [V98,T88] ( 3, 0 ) ref -> rax "argument with side effect"
-; V99 tmp85 [V99,T89] ( 3, 0 ) ref -> rax "argument with side effect"
-; V100 tmp86 [V100,T90] ( 2, 0 ) ref -> rbx "argument with side effect"
-; V101 tmp87 [V101,T91] ( 2, 0 ) ref -> rsi "argument with side effect"
-; V102 tmp88 [V102,T63] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V103 tmp89 [V103,T92] ( 2, 0 ) ref -> rbx "argument with side effect"
-; V104 tmp90 [V104,T93] ( 2, 0 ) ref -> rsi "argument with side effect"
-; V105 tmp91 [V105,T16] ( 3, 24 ) ref -> rdi "arr expr"
-; V106 tmp92 [V106,T38] ( 3, 12 ) ref -> rdi "argument with side effect"
-; V107 tmp93 [V107,T94] ( 2, 0 ) ref -> rsi "argument with side effect"
-; V108 tmp94 [V108,T95] ( 2, 0 ) ref -> rbx "argument with side effect"
-; V109 tmp95 [V109,T31] ( 2, 16 ) ref -> rsi "arr expr"
-; V110 cse0 [V110,T71] ( 3, 1.50) ref -> rdi "CSE #04: conservative"
-; V111 cse1 [V111,T72] ( 3, 1.50) ref -> r12 "CSE #14: conservative"
-;* V112 cse2 [V112,T78] ( 0, 0 ) int -> zero-ref "CSE #19: conservative"
-; V113 cse3 [V113,T39] ( 2, 8 ) int -> rsi "CSE #20: conservative"
-; V114 cse4 [V114,T54] ( 3, 6 ) ref -> rdi "CSE #18: conservative"
-; V115 cse5 [V115,T73] ( 3, 1.50) ref -> rsi "CSE #02: conservative"
-; V116 cse6 [V116,T74] ( 3, 1.50) ref -> rdi "CSE #16: conservative"
-; V117 cse7 [V117,T20] ( 3, 20 ) int -> rax "CSE #06: moderate"
-; V118 cse8 [V118,T21] ( 3, 20 ) int -> rax "CSE #12: moderate"
-; V119 cse9 [V119,T17] ( 3, 24 ) int -> rcx "CSE #15: moderate"
-; V120 cse10 [V120,T57] ( 3, 5 ) int -> rax "CSE #05: conservative"
-; V121 rat0 [V121,T24] ( 5, 16.50) long -> rdi "Widened IV V22"
-; V122 rat1 [V122,T03] ( 5, 66 ) long -> rdi "Widened IV V32"
-; V123 rat2 [V123,T04] ( 5, 66 ) long -> rdi "Widened IV V49"
-; V124 rat3 [V124,T02] ( 5, 68 ) long -> rax "Widened IV V73"
-; V125 rat4 [V125,T11] ( 7, 24.50) long -> r12 "Widened IV V09"
-; V126 rat5 [V126,T10] ( 3, 20 ) ref -> rsi "replacement local"
-; V127 rat6 [V127,T45] ( 3, 10 ) long -> rdi "CSE for expectedClsNode"
+; V80 tmp66 [V80,T01] ( 12, 69 ) ref -> registers "field V03._columns (fldOffset=0x0)" P-INDEP
+; V81 tmp67 [V81 ] ( 3, 5 ) ref -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V12._list (fldOffset=0x0)" P-DEP
+; V82 tmp68 [V82 ] ( 3, 5 ) ref -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V12._current (fldOffset=0x8)" P-DEP
+; V83 tmp69 [V83 ] ( 3, 5 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V12._index (fldOffset=0x10)" P-DEP
+; V84 tmp70 [V84 ] ( 3, 5 ) int -> [rbp-0x2C] do-not-enreg[X] addr-exposed "field V12._version (fldOffset=0x14)" P-DEP
+; V85 tmp71 [V85,T66] ( 3, 1.50) ref -> rax single-def "field V79._list (fldOffset=0x0)" P-INDEP
+;* V86 tmp72 [V86,T75] ( 0, 0 ) ref -> zero-ref single-def "field V79._current (fldOffset=0x8)" P-INDEP
+;* V87 tmp73 [V87,T78] ( 0, 0 ) int -> zero-ref "field V79._index (fldOffset=0x10)" P-INDEP
+; V88 tmp74 [V88,T73] ( 2, 1 ) int -> rdi "field V79._version (fldOffset=0x14)" P-INDEP
+; V89 tmp75 [V89,T58] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
+; V90 tmp76 [V90,T79] ( 3, 0 ) ref -> rax "argument with side effect"
+; V91 tmp77 [V91,T80] ( 3, 0 ) ref -> rax "argument with side effect"
+; V92 tmp78 [V92,T81] ( 3, 0 ) ref -> rax "argument with side effect"
+; V93 tmp79 [V93,T82] ( 3, 0 ) ref -> rax "argument with side effect"
+; V94 tmp80 [V94,T15] ( 3, 24 ) ref -> rdi "argument with side effect"
+; V95 tmp81 [V95,T35] ( 3, 12 ) ref -> rax "argument with side effect"
+; V96 tmp82 [V96,T83] ( 3, 0 ) ref -> rax "argument with side effect"
+; V97 tmp83 [V97,T84] ( 3, 0 ) ref -> rax "argument with side effect"
+; V98 tmp84 [V98,T85] ( 2, 0 ) ref -> rbx "argument with side effect"
+; V99 tmp85 [V99,T86] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V100 tmp86 [V100,T59] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
+; V101 tmp87 [V101,T87] ( 2, 0 ) ref -> rbx "argument with side effect"
+; V102 tmp88 [V102,T88] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V103 tmp89 [V103,T16] ( 3, 24 ) ref -> rdi "arr expr"
+; V104 tmp90 [V104,T36] ( 3, 12 ) ref -> rdi "argument with side effect"
+; V105 tmp91 [V105,T89] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V106 tmp92 [V106,T90] ( 2, 0 ) ref -> rbx "argument with side effect"
+; V107 cse0 [V107,T67] ( 3, 1.50) ref -> rdi "CSE #04: conservative"
+; V108 cse1 [V108,T68] ( 3, 1.50) ref -> r12 "CSE #14: conservative"
+; V109 cse2 [V109,T49] ( 3, 6 ) ref -> rdi "CSE #18: conservative"
+; V110 cse3 [V110,T69] ( 3, 1.50) ref -> rsi "CSE #02: conservative"
+; V111 cse4 [V111,T70] ( 3, 1.50) ref -> rdi "CSE #16: conservative"
+; V112 cse5 [V112,T19] ( 3, 20 ) int -> rax "CSE #06: moderate"
+; V113 cse6 [V113,T20] ( 3, 20 ) int -> rax "CSE #12: moderate"
+; V114 cse7 [V114,T17] ( 3, 24 ) int -> rcx "CSE #15: moderate"
+; V115 cse8 [V115,T52] ( 3, 5 ) long -> r14 "CSE #19: conservative"
+; V116 cse9 [V116,T53] ( 3, 5 ) int -> rax "CSE #05: conservative"
+; V117 rat0 [V117,T23] ( 5, 16.50) long -> rdi "Widened IV V22"
+; V118 rat1 [V118,T03] ( 5, 66 ) long -> rdi "Widened IV V32"
+; V119 rat2 [V119,T04] ( 5, 66 ) long -> rdi "Widened IV V49"
+; V120 rat3 [V120,T02] ( 5, 68 ) long -> rax "Widened IV V73"
+; V121 rat4 [V121,T11] ( 7, 24.50) long -> r12 "Widened IV V09"
+; V122 rat5 [V122,T10] ( 3, 20 ) ref -> rsi "replacement local"
+; V123 rat6 [V123,T42] ( 3, 10 ) long -> rdi "CSE for expectedClsNode"
;
-; Lcl frame size = 72
+; Lcl frame size = 104
G_M43767_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 72
- lea rbp, [rsp+0x70]
+ sub rsp, 104
+ lea rbp, [rsp+0x90]
+ vxorps xmm8, xmm8, xmm8
+ vmovdqa xmmword ptr [rbp-0x40], xmm8
+ xor eax, eax
+ mov qword ptr [rbp-0x30], rax
mov r15, rdi
mov rbx, rsi
mov r14d, edx
- ;; size=28 bbWeight=1 PerfScore 7.50
+ ;; size=47 bbWeight=1 PerfScore 11.08
G_M43767_IG02:
test rbx, rbx
jne SHORT G_M43767_IG06
;; size=5 bbWeight=1 PerfScore 1.25
G_M43767_IG03:
test r14b, r14b
- jne G_M43767_IG52
+ jne G_M43767_IG53
;; size=9 bbWeight=0.50 PerfScore 0.62
G_M43767_IG04:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M43767_IG05:
- add rsp, 72
+ add rsp, 104
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M43767_IG06:
mov rdi, gword ptr [rbx+0x48]
mov rsi, gword ptr [r15+0x08]
cmp rdi, rsi
je SHORT G_M43767_IG07
test r14b, r14b
- jne G_M43767_IG53
+ jne G_M43767_IG54
jmp SHORT G_M43767_IG04
;; size=24 bbWeight=0.50 PerfScore 4.25
G_M43767_IG07:
mov rdi, rsi
mov rsi, rbx
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x58]
call [rax+0x20]System.Data.DataTable:OnRemoveColumn(System.Data.DataColumn):this
mov rdi, gword ptr [r15+0x08]
mov rdi, gword ptr [rdi+0xD0]
test rdi, rdi
je SHORT G_M43767_IG10
mov r13, gword ptr [rdi+0x48]
xor edi, edi
mov eax, dword ptr [r13+0x08]
test eax, eax
jle SHORT G_M43767_IG10
- align [0 bytes for IG08]
- ;; size=46 bbWeight=0.50 PerfScore 9.12
+ align [12 bytes for IG08]
+ ;; size=58 bbWeight=0.50 PerfScore 9.25
G_M43767_IG08:
cmp gword ptr [r13+8*rdi+0x10], rbx
je SHORT G_M43767_IG09
inc edi
cmp eax, edi
jg SHORT G_M43767_IG08
jmp SHORT G_M43767_IG10
;; size=15 bbWeight=4 PerfScore 30.00
G_M43767_IG09:
test r14b, r14b
- jne G_M43767_IG54
+ jne G_M43767_IG55
jmp SHORT G_M43767_IG04
;; size=11 bbWeight=0.50 PerfScore 1.62
G_M43767_IG10:
xor r12d, r12d
jmp G_M43767_IG15
- align [12 bytes for IG13]
- ;; size=20 bbWeight=0.50 PerfScore 1.12
+ align [13 bytes for IG13]
+ ;; size=21 bbWeight=0.50 PerfScore 1.12
G_M43767_IG11:
mov r13, gword ptr [r15+0x08]
mov rdi, gword ptr [r13+0x40]
test rdi, rdi
jne G_M43767_IG12
mov rdi, 0xD1FFAB1E ; System.Data.DataRelationCollection+DataTableRelationCollection
call CORINFO_HELP_NEWSFAST
mov rdi, rax
- mov gword ptr [rbp-0x30], rdi
+ mov gword ptr [rbp-0x48], rdi
mov dword ptr [rdi+0x20], 1
mov rsi, 0xD1FFAB1E ; static handle
mov eax, 1
lock
xadd dword ptr [rsi], eax
inc eax
mov dword ptr [rdi+0x24], eax
lea rdi, bword ptr [rdi+0x28]
mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
- mov rdi, gword ptr [rbp-0x30]
+ mov rdi, gword ptr [rbp-0x48]
mov byte ptr [rdi+0x40], 1
mov rdi, 0xD1FFAB1E ; System.Collections.ArrayList
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x38], rax
+ mov gword ptr [rbp-0x50], rax
mov rdi, 0xD1FFAB1E
mov esi, 52
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rdi, 0xD1FFAB1E ; data for System.Array+EmptyArray`1[System.Object]:Value
mov rsi, gword ptr [rdi]
- mov rax, gword ptr [rbp-0x38]
+ mov rax, gword ptr [rbp-0x50]
lea rdi, bword ptr [rax+0x08]
call CORINFO_HELP_ASSIGN_REF
- mov rdi, gword ptr [rbp-0x30]
+ mov rdi, gword ptr [rbp-0x48]
lea rdi, bword ptr [rdi+0x30]
- mov rsi, gword ptr [rbp-0x38]
+ mov rsi, gword ptr [rbp-0x50]
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r13+0x40]
- mov rsi, gword ptr [rbp-0x30]
+ mov rsi, gword ptr [rbp-0x48]
call CORINFO_HELP_ASSIGN_REF
- mov r13, gword ptr [rbp-0x30]
+ mov r13, gword ptr [rbp-0x48]
mov rdi, r13
;; size=192 bbWeight=2 PerfScore 94.00
G_M43767_IG12:
mov esi, r12d
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
call [rax+0x10]System.Data.DataRelationCollection:get_Item(int):System.Data.DataRelation:this
mov r13, rax
cmp byte ptr [r13], r13b
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Data.DataRelation:CheckStateForProperty():this
call [rax]System.Data.DataRelation:CheckStateForProperty():this
mov r13, gword ptr [r13+0x70]
xor edi, edi
mov eax, dword ptr [r13+0x08]
test eax, eax
jle SHORT G_M43767_IG14
;; size=49 bbWeight=2 PerfScore 39.00
G_M43767_IG13:
cmp gword ptr [r13+8*rdi+0x10], rbx
je G_M43767_IG19
inc edi
cmp eax, edi
jg SHORT G_M43767_IG13
;; size=17 bbWeight=16 PerfScore 88.00
G_M43767_IG14:
inc r12d
;; size=3 bbWeight=2 PerfScore 0.50
G_M43767_IG15:
mov r13, gword ptr [r15+0x08]
mov rdi, gword ptr [r13+0x40]
test rdi, rdi
jne G_M43767_IG17
;; size=17 bbWeight=4 PerfScore 21.00
G_M43767_IG16:
mov rdi, 0xD1FFAB1E ; System.Data.DataRelationCollection+DataTableRelationCollection
call CORINFO_HELP_NEWSFAST
mov rdi, rax
- mov gword ptr [rbp-0x40], rdi
+ mov gword ptr [rbp-0x58], rdi
mov dword ptr [rdi+0x20], 1
mov rsi, 0xD1FFAB1E ; static handle
mov eax, 1
lock
xadd dword ptr [rsi], eax
inc eax
mov dword ptr [rdi+0x24], eax
lea rdi, bword ptr [rdi+0x28]
mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
- mov rdi, gword ptr [rbp-0x40]
+ mov rdi, gword ptr [rbp-0x58]
mov byte ptr [rdi+0x40], 1
mov rdi, 0xD1FFAB1E ; System.Collections.ArrayList
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x48], rax
+ mov gword ptr [rbp-0x60], rax
mov rdi, 0xD1FFAB1E
mov esi, 52
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rdi, 0xD1FFAB1E ; data for System.Array+EmptyArray`1[System.Object]:Value
mov rsi, gword ptr [rdi]
- mov rax, gword ptr [rbp-0x48]
+ mov rax, gword ptr [rbp-0x60]
lea rdi, bword ptr [rax+0x08]
call CORINFO_HELP_ASSIGN_REF
- mov rdi, gword ptr [rbp-0x40]
+ mov rdi, gword ptr [rbp-0x58]
lea rdi, bword ptr [rdi+0x30]
- mov rsi, gword ptr [rbp-0x48]
+ mov rsi, gword ptr [rbp-0x60]
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r13+0x40]
- mov rsi, gword ptr [rbp-0x40]
+ mov rsi, gword ptr [rbp-0x58]
call CORINFO_HELP_ASSIGN_REF
- mov r13, gword ptr [rbp-0x40]
+ mov r13, gword ptr [rbp-0x58]
mov rdi, r13
;; size=175 bbWeight=2 PerfScore 83.50
G_M43767_IG17:
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.Data.InternalDataCollectionBase:get_Count():int:this
cmp eax, r12d
jg G_M43767_IG11
;; size=19 bbWeight=4 PerfScore 33.00
G_M43767_IG18:
xor r12d, r12d
jmp G_M43767_IG24
align [0 bytes for IG22]
;; size=8 bbWeight=0.50 PerfScore 1.12
G_M43767_IG19:
test r14b, r14b
- jne G_M43767_IG55
+ jne G_M43767_IG56
jmp G_M43767_IG04
;; size=14 bbWeight=0.50 PerfScore 1.62
G_M43767_IG20:
mov r13, gword ptr [r15+0x08]
mov rdi, gword ptr [r13+0x48]
test rdi, rdi
jne G_M43767_IG21
mov rdi, 0xD1FFAB1E ; System.Data.DataRelationCollection+DataTableRelationCollection
call CORINFO_HELP_NEWSFAST
mov rdi, rax
- mov gword ptr [rbp-0x50], rdi
+ mov gword ptr [rbp-0x68], rdi
mov dword ptr [rdi+0x20], 1
mov rsi, 0xD1FFAB1E ; static handle
mov eax, 1
lock
xadd dword ptr [rsi], eax
inc eax
mov dword ptr [rdi+0x24], eax
lea rdi, bword ptr [rdi+0x28]
mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
- mov rdi, gword ptr [rbp-0x50]
+ mov rdi, gword ptr [rbp-0x68]
mov byte ptr [rdi+0x40], 0
mov rdi, 0xD1FFAB1E ; System.Collections.ArrayList
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x58], rax
+ mov gword ptr [rbp-0x70], rax
mov rdi, 0xD1FFAB1E
mov esi, 52
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rdi, 0xD1FFAB1E ; data for System.Array+EmptyArray`1[System.Object]:Value
mov rsi, gword ptr [rdi]
- mov rax, gword ptr [rbp-0x58]
+ mov rax, gword ptr [rbp-0x70]
lea rdi, bword ptr [rax+0x08]
call CORINFO_HELP_ASSIGN_REF
- mov rdi, gword ptr [rbp-0x50]
+ mov rdi, gword ptr [rbp-0x68]
lea rdi, bword ptr [rdi+0x30]
- mov rsi, gword ptr [rbp-0x58]
+ mov rsi, gword ptr [rbp-0x70]
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r13+0x48]
- mov rsi, gword ptr [rbp-0x50]
+ mov rsi, gword ptr [rbp-0x68]
call CORINFO_HELP_ASSIGN_REF
- mov r13, gword ptr [rbp-0x50]
+ mov r13, gword ptr [rbp-0x68]
mov rdi, r13
;; size=192 bbWeight=2 PerfScore 94.00
G_M43767_IG21:
mov esi, r12d
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
call [rax+0x10]System.Data.DataRelationCollection:get_Item(int):System.Data.DataRelation:this
mov r13, rax
cmp byte ptr [r13], r13b
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Data.DataRelation:CheckStateForProperty():this
call [rax]System.Data.DataRelation:CheckStateForProperty():this
mov r13, gword ptr [r13+0x78]
xor edi, edi
mov eax, dword ptr [r13+0x08]
test eax, eax
jle SHORT G_M43767_IG23
;; size=49 bbWeight=2 PerfScore 39.00
G_M43767_IG22:
cmp gword ptr [r13+8*rdi+0x10], rbx
je G_M43767_IG28
inc edi
cmp eax, edi
jg SHORT G_M43767_IG22
;; size=17 bbWeight=16 PerfScore 88.00
G_M43767_IG23:
inc r12d
;; size=3 bbWeight=2 PerfScore 0.50
G_M43767_IG24:
mov r13, gword ptr [r15+0x08]
mov rdi, gword ptr [r13+0x48]
test rdi, rdi
jne G_M43767_IG26
;; size=17 bbWeight=4 PerfScore 21.00
G_M43767_IG25:
mov rdi, 0xD1FFAB1E ; System.Data.DataRelationCollection+DataTableRelationCollection
call CORINFO_HELP_NEWSFAST
mov rdi, rax
- mov gword ptr [rbp-0x60], rdi
+ mov gword ptr [rbp-0x78], rdi
mov dword ptr [rdi+0x20], 1
mov rsi, 0xD1FFAB1E ; static handle
mov eax, 1
lock
xadd dword ptr [rsi], eax
inc eax
mov dword ptr [rdi+0x24], eax
lea rdi, bword ptr [rdi+0x28]
mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
- mov rdi, gword ptr [rbp-0x60]
+ mov rdi, gword ptr [rbp-0x78]
mov byte ptr [rdi+0x40], 0
mov rdi, 0xD1FFAB1E ; System.Collections.ArrayList
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x68], rax
+ mov gword ptr [rbp-0x80], rax
mov rdi, 0xD1FFAB1E
mov esi, 52
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rdi, 0xD1FFAB1E ; data for System.Array+EmptyArray`1[System.Object]:Value
mov rsi, gword ptr [rdi]
- mov rax, gword ptr [rbp-0x68]
+ mov rax, gword ptr [rbp-0x80]
lea rdi, bword ptr [rax+0x08]
call CORINFO_HELP_ASSIGN_REF
- mov rdi, gword ptr [rbp-0x60]
+ mov rdi, gword ptr [rbp-0x78]
lea rdi, bword ptr [rdi+0x30]
- mov rsi, gword ptr [rbp-0x68]
+ mov rsi, gword ptr [rbp-0x80]
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r13+0x48]
- mov rsi, gword ptr [rbp-0x60]
+ mov rsi, gword ptr [rbp-0x78]
call CORINFO_HELP_ASSIGN_REF
- mov r13, gword ptr [rbp-0x60]
+ mov r13, gword ptr [rbp-0x78]
mov rdi, r13
;; size=175 bbWeight=2 PerfScore 83.50
G_M43767_IG26:
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.Data.InternalDataCollectionBase:get_Count():int:this
cmp eax, r12d
jg G_M43767_IG20
;; size=19 bbWeight=4 PerfScore 33.00
G_M43767_IG27:
xor r13d, r13d
jmp SHORT G_M43767_IG30
- align [3 bytes for IG38]
- ;; size=8 bbWeight=0.50 PerfScore 1.12
+ align [0 bytes for IG38]
+ ;; size=5 bbWeight=0.50 PerfScore 1.12
G_M43767_IG28:
test r14b, r14b
- jne G_M43767_IG56
+ jne G_M43767_IG57
jmp G_M43767_IG04
;; size=14 bbWeight=0.50 PerfScore 1.62
G_M43767_IG29:
mov rdi, gword ptr [r15+0x08]
mov rdi, gword ptr [rdi+0x38]
mov esi, r13d
mov rax, 0xD1FFAB1E ; code for System.Data.ConstraintCollection:get_Item(int):System.Data.Constraint:this
cmp dword ptr [rdi], edi
call [rax]System.Data.ConstraintCollection:get_Item(int):System.Data.Constraint:this
mov rdi, rax
mov rsi, rbx
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x48]
call [rax+0x08]System.Data.Constraint:ContainsColumn(System.Data.DataColumn):ubyte:this
test eax, eax
jne SHORT G_M43767_IG32
inc r13d
;; size=48 bbWeight=2 PerfScore 39.00
G_M43767_IG30:
mov rdi, gword ptr [r15+0x08]
mov rdi, gword ptr [rdi+0x38]
mov rdi, gword ptr [rdi+0x10]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x30]System.Collections.ArrayList:get_Count():int:this
cmp eax, r13d
jg SHORT G_M43767_IG29
;; size=27 bbWeight=4 PerfScore 57.00
G_M43767_IG31:
mov rdi, gword ptr [r15+0x08]
mov r12, gword ptr [rdi+0x18]
test r12, r12
je G_M43767_IG40
mov rdi, 0xD1FFAB1E ; System.Data.ParentForeignKeyConstraintEnumerator
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rax, gword ptr [r15+0x08]
- mov gword ptr [rbp-0x70], rax
+ mov gword ptr [rbp-0x88], rax
jmp SHORT G_M43767_IG33
- ;; size=45 bbWeight=0.50 PerfScore 5.88
+ ;; size=48 bbWeight=0.50 PerfScore 5.88
G_M43767_IG32:
test r14b, r14b
- jne G_M43767_IG57
+ jne G_M43767_IG58
jmp G_M43767_IG04
;; size=14 bbWeight=0.50 PerfScore 1.62
G_M43767_IG33:
mov rdi, gword ptr [r12+0x20]
mov rdi, gword ptr [rdi+0x10]
mov rcx, qword ptr [rdi]
mov rcx, qword ptr [rcx+0x58]
call [rcx]System.Collections.ArrayList:GetEnumerator():System.Collections.IEnumerator:this
lea rdi, bword ptr [r13+0x08]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
xor rdi, rdi
mov gword ptr [r13+0x18], rdi
lea rdi, bword ptr [r13+0x20]
- mov rsi, gword ptr [rbp-0x70]
+ mov rsi, gword ptr [rbp-0x88]
call CORINFO_HELP_ASSIGN_REF
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Data.ConstraintEnumerator:GetNext():ubyte:this
call [rax]System.Data.ConstraintEnumerator:GetNext():ubyte:this
test eax, eax
je SHORT G_M43767_IG40
- ;; size=68 bbWeight=0.50 PerfScore 10.62
+ ;; size=71 bbWeight=0.50 PerfScore 10.62
G_M43767_IG34:
mov r12, gword ptr [r13+0x18]
mov rsi, r12
test rsi, rsi
je SHORT G_M43767_IG37
;; size=12 bbWeight=4 PerfScore 14.00
G_M43767_IG35:
mov rdi, 0xD1FFAB1E ; System.Data.ForeignKeyConstraint
cmp qword ptr [rsi], rdi
je SHORT G_M43767_IG37
;; size=15 bbWeight=2 PerfScore 8.50
G_M43767_IG36:
mov rsi, r12
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
;; size=15 bbWeight=1 PerfScore 3.50
G_M43767_IG37:
cmp byte ptr [r12], r12b
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Data.Constraint:CheckStateForProperty():this
call [rax]System.Data.Constraint:CheckStateForProperty():this
mov rdi, gword ptr [r12+0x70]
xor eax, eax
mov ecx, dword ptr [rdi+0x08]
test ecx, ecx
jle SHORT G_M43767_IG39
;; size=33 bbWeight=4 PerfScore 48.00
G_M43767_IG38:
cmp gword ptr [rdi+8*rax+0x10], rbx
- je G_M43767_IG49
+ je G_M43767_IG50
inc eax
cmp ecx, eax
jg SHORT G_M43767_IG38
;; size=17 bbWeight=16 PerfScore 88.00
G_M43767_IG39:
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Data.ConstraintEnumerator:GetNext():ubyte:this
call [rax]System.Data.ConstraintEnumerator:GetNext():ubyte:this
test eax, eax
jne SHORT G_M43767_IG34
;; size=19 bbWeight=4 PerfScore 19.00
G_M43767_IG40:
mov rdi, gword ptr [rbx+0x50]
test rdi, rdi
- je SHORT G_M43767_IG45
+ je G_M43767_IG45
xor r12d, r12d
cmp dword ptr [rdi+0x10], 0
jle SHORT G_M43767_IG45
- ;; size=18 bbWeight=0.50 PerfScore 3.75
+ ;; size=22 bbWeight=0.50 PerfScore 3.75
G_M43767_IG41:
mov rdi, gword ptr [rbx+0x50]
cmp r12d, dword ptr [rdi+0x10]
- jae G_M43767_IG58
+ jae G_M43767_IG59
mov rdi, gword ptr [rdi+0x08]
cmp r12d, dword ptr [rdi+0x08]
- jae G_M43767_IG51
+ jae G_M43767_IG52
mov r13, gword ptr [rdi+8*r12+0x10]
cmp byte ptr [r15+0x54], 0
je SHORT G_M43767_IG43
;; size=40 bbWeight=4 PerfScore 72.00
G_M43767_IG42:
mov rdi, gword ptr [r13+0x48]
cmp rdi, gword ptr [r15+0x08]
je SHORT G_M43767_IG44
cmp gword ptr [r13+0x48], 0
je SHORT G_M43767_IG44
;; size=17 bbWeight=2 PerfScore 20.00
G_M43767_IG43:
cmp gword ptr [r13+0x48], 0
je SHORT G_M43767_IG44
mov rdi, gword ptr [r13+0x38]
test rdi, rdi
je SHORT G_M43767_IG44
mov rdi, gword ptr [rdi+0x10]
test rdi, rdi
je SHORT G_M43767_IG44
mov rsi, rbx
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
call [rax+0x30]System.Data.ExpressionNode:DependsOn(System.Data.DataColumn):ubyte:this
test eax, eax
- jne SHORT G_M43767_IG50
- ;; size=42 bbWeight=2 PerfScore 38.00
+ jne G_M43767_IG51
+ ;; size=46 bbWeight=2 PerfScore 38.00
G_M43767_IG44:
inc r12d
mov rdi, gword ptr [rbx+0x50]
cmp r12d, dword ptr [rdi+0x10]
jl SHORT G_M43767_IG41
;; size=13 bbWeight=4 PerfScore 25.00
G_M43767_IG45:
mov rdi, gword ptr [r15+0x08]
mov rax, 0xD1FFAB1E ; code for System.Data.DataTable:get_LiveIndexes():System.Collections.Generic.List`1[System.Data.Index]:this
cmp dword ptr [rdi], edi
call [rax]System.Data.DataTable:get_LiveIndexes():System.Collections.Generic.List`1[System.Data.Index]:this
mov edi, dword ptr [rax+0x14]
- xor edi, edi
- align [3 bytes for IG46]
- ;; size=26 bbWeight=0.50 PerfScore 5.38
+ mov gword ptr [rbp-0x40], rax
+ xor rsi, rsi
+ mov gword ptr [rbp-0x38], rsi
+ ;; size=31 bbWeight=0.50 PerfScore 6.25
G_M43767_IG46:
- mov esi, dword ptr [rax+0x10]
- cmp edi, esi
- jae SHORT G_M43767_IG47
- mov rsi, gword ptr [rax+0x08]
- cmp edi, dword ptr [rsi+0x08]
- jae SHORT G_M43767_IG51
- inc edi
- jmp SHORT G_M43767_IG46
- ;; size=20 bbWeight=4 PerfScore 46.00
+ mov dword ptr [rbp-0x30], esi
+ mov dword ptr [rbp-0x2C], edi
+ lea rdi, [rbp-0x40]
+ mov r14, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Data.Index]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M43767_IG48
+ ;; size=39 bbWeight=0.50 PerfScore 3.75
G_M43767_IG47:
- mov eax, 1
- ;; size=5 bbWeight=4 PerfScore 1.00
+ lea rdi, [rbp-0x40]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M43767_IG47
+ ;; size=23 bbWeight=4 PerfScore 21.00
G_M43767_IG48:
- add rsp, 72
+ mov eax, 1
+ ;; size=5 bbWeight=0.50 PerfScore 0.12
+G_M43767_IG49:
+ add rsp, 104
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=4 PerfScore 17.00
-G_M43767_IG49:
- test r14b, r14b
- jne G_M43767_IG59
- jmp G_M43767_IG04
- ;; size=14 bbWeight=0.50 PerfScore 1.62
+ ;; size=15 bbWeight=0.50 PerfScore 2.12
G_M43767_IG50:
test r14b, r14b
jne G_M43767_IG60
jmp G_M43767_IG04
;; size=14 bbWeight=0.50 PerfScore 1.62
G_M43767_IG51:
+ test r14b, r14b
+ jne G_M43767_IG61
+ jmp G_M43767_IG04
+ ;; size=14 bbWeight=0.50 PerfScore 1.62
+G_M43767_IG52:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M43767_IG52:
+G_M43767_IG53:
mov edi, 0x83F7
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Data.ExceptionBuilder:ArgumentNull(System.String):System.Exception
call [rax]System.Data.ExceptionBuilder:ArgumentNull(System.String):System.Exception
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=44 bbWeight=0 PerfScore 0.00
-G_M43767_IG53:
+G_M43767_IG54:
mov rax, 0xD1FFAB1E ; code for System.Data.ExceptionBuilder:CannotRemoveColumn():System.Exception
call [rax]System.Data.ExceptionBuilder:CannotRemoveColumn():System.Exception
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=21 bbWeight=0 PerfScore 0.00
-G_M43767_IG54:
+G_M43767_IG55:
mov rax, 0xD1FFAB1E ; code for System.Data.ExceptionBuilder:CannotRemovePrimaryKey():System.Exception
call [rax]System.Data.ExceptionBuilder:CannotRemovePrimaryKey():System.Exception
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=21 bbWeight=0 PerfScore 0.00
-G_M43767_IG55:
+G_M43767_IG56:
mov rdi, gword ptr [r15+0x08]
mov rax, 0xD1FFAB1E ; code for System.Data.DataTable:get_ParentRelations():System.Data.DataRelationCollection:this
cmp dword ptr [rdi], edi
call [rax]System.Data.DataTable:get_ParentRelations():System.Data.DataRelationCollection:this
mov rdi, rax
mov esi, r12d
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x48]
call [rax+0x10]System.Data.DataRelationCollection:get_Item(int):System.Data.DataRelation:this
mov rdi, rax
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x48]
call [rax+0x08]System.Data.DataRelation:get_RelationName():System.String:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Data.ExceptionBuilder:CannotRemoveChildKey(System.String):System.Exception
call [rax]System.Data.ExceptionBuilder:CannotRemoveChildKey(System.String):System.Exception
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=71 bbWeight=0 PerfScore 0.00
-G_M43767_IG56:
+G_M43767_IG57:
mov rdi, gword ptr [r15+0x08]
mov rax, 0xD1FFAB1E ; code for System.Data.DataTable:get_ChildRelations():System.Data.DataRelationCollection:this
cmp dword ptr [rdi], edi
call [rax]System.Data.DataTable:get_ChildRelations():System.Data.DataRelationCollection:this
mov rdi, rax
mov esi, r12d
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x48]
call [rax+0x10]System.Data.DataRelationCollection:get_Item(int):System.Data.DataRelation:this
mov rdi, rax
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x48]
call [rax+0x08]System.Data.DataRelation:get_RelationName():System.String:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Data.ExceptionBuilder:CannotRemoveChildKey(System.String):System.Exception
call [rax]System.Data.ExceptionBuilder:CannotRemoveChildKey(System.String):System.Exception
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=71 bbWeight=0 PerfScore 0.00
-G_M43767_IG57:
+G_M43767_IG58:
mov rdi, gword ptr [r15+0x08]
mov rdi, gword ptr [rdi+0x38]
mov esi, r13d
mov rax, 0xD1FFAB1E ; code for System.Data.ConstraintCollection:get_Item(int):System.Data.Constraint:this
cmp dword ptr [rdi], edi
call [rax]System.Data.ConstraintCollection:get_Item(int):System.Data.Constraint:this
mov rdi, rax
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.Data.Constraint:get_ConstraintName():System.String:this
mov rbx, rax
mov rdi, gword ptr [r15+0x08]
mov rdi, gword ptr [rdi+0x38]
mov esi, r13d
mov rax, 0xD1FFAB1E ; code for System.Data.ConstraintCollection:get_Item(int):System.Data.Constraint:this
cmp dword ptr [rdi], edi
call [rax]System.Data.ConstraintCollection:get_Item(int):System.Data.Constraint:this
mov rdi, rax
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x48]
call [rax]System.Data.Constraint:get_Table():System.Data.DataTable:this
mov rsi, gword ptr [rax+0x70]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Data.ExceptionBuilder:CannotRemoveConstraint(System.String,System.String):System.Exception
call [rax]System.Data.ExceptionBuilder:CannotRemoveConstraint(System.String,System.String):System.Exception
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=106 bbWeight=0 PerfScore 0.00
-G_M43767_IG58:
+G_M43767_IG59:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M43767_IG59:
+G_M43767_IG60:
mov rdi, r12
mov rax, qword ptr [r12]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.Data.Constraint:get_ConstraintName():System.String:this
mov rbx, rax
mov rdi, r12
mov rax, qword ptr [r12]
mov rax, qword ptr [rax+0x48]
call [rax]System.Data.Constraint:get_Table():System.Data.DataTable:this
mov rsi, gword ptr [rax+0x70]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Data.ExceptionBuilder:CannotRemoveConstraint(System.String,System.String):System.Exception
call [rax]System.Data.ExceptionBuilder:CannotRemoveConstraint(System.String,System.String):System.Exception
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=58 bbWeight=0 PerfScore 0.00
-G_M43767_IG60:
+G_M43767_IG61:
mov rbx, gword ptr [r13+0x20]
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Data.DataColumn:get_Expression():System.String:this
call [rax]System.Data.DataColumn:get_Expression():System.String:this
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Data.ExceptionBuilder:CannotRemoveExpression(System.String,System.String):System.Exception
call [rax]System.Data.ExceptionBuilder:CannotRemoveExpression(System.String,System.String):System.Exception
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=46 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2157, prolog size 28, PerfScore 1307.75, instruction count 547, allocated bytes for code 2157 (MethodHash=a44a5508) for method System.Data.DataColumnCollection:CanRemove(System.Data.DataColumn,ubyte):ubyte:this (FullOpts)
+; Total bytes of code 2247, prolog size 47, PerfScore 1275.33, instruction count 559, allocated bytes for code 2247 (MethodHash=a44a5508) for method System.Data.DataColumnCollection:CanRemove(System.Data.DataColumn,ubyte):ubyte:this (FullOpts)
90 (15.62 % of base) - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[int]:ConsumeReservedMessagesGreedyBounded():this
; Assembly listing for method System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[int]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 17 single block inlinees; 8 inlinees without PGO data
+; 0 inlinees with PGO data; 17 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T11] ( 8, 11.50) ref -> rbx this class-hnd single-def <System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[int]>
-; V01 loc0 [V01,T30] ( 4, 5.50) int -> r15
+; V00 this [V00,T07] ( 8, 11.50) ref -> rbx this class-hnd single-def <System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[int]>
+; V01 loc0 [V01,T24] ( 4, 5.50) int -> r15
; V02 loc1 [V02,T01] ( 13, 32 ) ref -> r14 class-hnd single-def <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[int],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]]>
-;* V03 loc2 [V03,T35] ( 0, 0 ) int -> zero-ref
+;* V03 loc2 [V03,T30] ( 0, 0 ) int -> zero-ref
;* V04 loc3 [V04 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[int],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]>
; V05 loc4 [V05 ] ( 2, 8 ) ubyte -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
-; V06 loc5 [V06,T29] ( 2, 6 ) int -> [rbp-0x34] spill-single-def
+; V06 loc5 [V06,T22] ( 2, 6 ) int -> [rbp-0x34] spill-single-def
;* V07 loc6 [V07 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[int],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]>
;* V08 loc7 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]>
;* V09 loc8 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]>
;* V10 loc9 [V10 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[int],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]>
-; V11 loc10 [V11,T34] ( 4, 1.50) ref -> [rbp-0x50] class-hnd EH-live spill-single-def <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
+; V11 loc10 [V11,T29] ( 4, 1.50) ref -> [rbp-0xA0] class-hnd EH-live spill-single-def <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
; V12 loc11 [V12 ] ( 5, 4 ) ubyte -> [rbp-0x40] do-not-enreg[X] addr-exposed ld-addr-op
-;* V13 loc12 [V13 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[int],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]]>
+; V13 loc12 [V13 ] ( 8, 17 ) struct (40) [rbp-0x68] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[int],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]]>
;* V14 loc13 [V14 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[int],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]>
;# V15 OutArgs [V15 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V16 tmp1 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Threading.Tasks.Dataflow.ISourceBlock`1[int]>
;* V17 tmp2 [V17 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.Tasks.Dataflow.DataflowMessageHeader>
;* V18 tmp3 [V18 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.Tasks.Dataflow.DataflowMessageHeader>
-; V19 tmp4 [V19,T00] ( 11, 44 ) ref -> [rbp-0x58] class-hnd spill-single-def "impAppendStmt" <System.Collections.Generic.Queue`1[int]>
-; V20 tmp5 [V20,T32] ( 3, 3 ) ref -> rsi class-hnd single-def "dup spill" <System.Threading.Tasks.Dataflow.Internal.BoundingState>
+; V19 tmp4 [V19,T00] ( 11, 44 ) ref -> r13 class-hnd "impAppendStmt" <System.Collections.Generic.Queue`1[int]>
+; V20 tmp5 [V20,T27] ( 3, 3 ) ref -> rdi class-hnd single-def "dup spill" <System.Threading.Tasks.Dataflow.Internal.BoundingState>
;* V21 tmp6 [V21 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[int],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]>
;* V22 tmp7 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
;* V23 tmp8 [V23 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]>
;* V24 tmp9 [V24 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[int],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]>
-;* V25 tmp10 [V25 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[int],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]]>
+; V25 tmp10 [V25,T25] ( 2, 4 ) struct (40) [rbp-0x90] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[int],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]]>
;* V26 tmp11 [V26 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V27 tmp12 [V27,T12] ( 3, 12 ) byref -> rcx "Inlining Arg"
-; V28 tmp13 [V28,T24] ( 4, 8 ) int -> rdx "Inline stloc first use temp"
-;* V29 tmp14 [V29,T25] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V30 tmp15 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[int],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]]>
-;* V31 tmp16 [V31,T31] ( 0, 0 ) long -> zero-ref "field V08.key (fldOffset=0x0)" P-INDEP
-;* V32 tmp17 [V32 ] ( 0, 0 ) int -> zero-ref "field V08.value (fldOffset=0x8)" P-INDEP
-;* V33 tmp18 [V33 ] ( 0, 0 ) long -> zero-ref "field V09.key (fldOffset=0x0)" P-INDEP
-;* V34 tmp19 [V34 ] ( 0, 0 ) int -> zero-ref "field V09.value (fldOffset=0x8)" P-INDEP
-;* V35 tmp20 [V35 ] ( 0, 0 ) long -> zero-ref "field V17._id (fldOffset=0x0)" P-INDEP
-;* V36 tmp21 [V36 ] ( 0, 0 ) long -> zero-ref "field V18._id (fldOffset=0x0)" P-INDEP
-;* V37 tmp22 [V37 ] ( 0, 0 ) long -> zero-ref "field V23.key (fldOffset=0x0)" P-INDEP
-;* V38 tmp23 [V38 ] ( 0, 0 ) int -> zero-ref "field V23.value (fldOffset=0x8)" P-INDEP
-; V39 tmp24 [V39,T20] ( 3, 10 ) ref -> [rbp-0x60] spill-single-def "V04.[000..008)"
-; V40 tmp25 [V40,T10] ( 3, 10 ) long -> [rbp-0x48] spill-single-def "V04.[008..016)"
-;* V41 tmp26 [V41 ] ( 0, 0 ) int -> zero-ref "V04.[016..020)"
-;* V42 tmp27 [V42 ] ( 0, 0 ) ref -> zero-ref "V10.[000..008)"
-;* V43 tmp28 [V43 ] ( 0, 0 ) long -> zero-ref "V10.[008..016)"
-;* V44 tmp29 [V44 ] ( 0, 0 ) int -> zero-ref "V10.[016..020)"
-; V45 tmp30 [V45,T08] ( 4, 17 ) ref -> r14 single-def "V13.[000..008)"
-; V46 tmp31 [V46,T03] ( 6, 21 ) int -> r13 "V13.[008..012)"
-; V47 tmp32 [V47,T23] ( 2, 9 ) int -> r15 "V13.[012..016)"
-; V48 tmp33 [V48,T13] ( 2, 8 ) ref -> rdi "V13.[016..024)"
-;* V49 tmp34 [V49 ] ( 0, 0 ) long -> zero-ref "V13.[024..032)"
-; V50 tmp35 [V50,T21] ( 2, 6 ) int -> r12 "V13.[032..036)"
-;* V51 tmp36 [V51 ] ( 0, 0 ) ref -> zero-ref "V14.[000..008)"
-;* V52 tmp37 [V52 ] ( 0, 0 ) long -> zero-ref "V14.[008..016)"
-;* V53 tmp38 [V53 ] ( 0, 0 ) int -> zero-ref "V14.[016..020)"
-;* V54 tmp39 [V54 ] ( 0, 0 ) ref -> zero-ref single-def "V25.[000..008)"
-;* V55 tmp40 [V55 ] ( 0, 0 ) int -> zero-ref "V25.[008..012)"
-; V56 tmp41 [V56,T33] ( 2, 2 ) int -> r15 "V25.[012..016)"
-;* V57 tmp42 [V57 ] ( 0, 0 ) ref -> zero-ref single-def "V25.[016..024)"
-;* V58 tmp43 [V58 ] ( 0, 0 ) long -> zero-ref "V25.[024..032)"
-;* V59 tmp44 [V59 ] ( 0, 0 ) int -> zero-ref "V25.[032..036)"
-;* V60 tmp45 [V60 ] ( 0, 0 ) ref -> zero-ref "V24.[000..008)"
-;* V61 tmp46 [V61 ] ( 0, 0 ) long -> zero-ref "V24.[008..016)"
-;* V62 tmp47 [V62 ] ( 0, 0 ) int -> zero-ref "V24.[016..020)"
-; V63 tmp48 [V63,T04] ( 3, 24 ) byref -> rcx "Spilling address for field-by-field copy"
-; V64 tmp49 [V64,T09] ( 4, 16 ) byref -> r12 "Spilling address for field-by-field copy"
-; V65 tmp50 [V65,T05] ( 3, 24 ) byref -> rsi "Spilling address for field-by-field copy"
-; V66 tmp51 [V66,T06] ( 3, 24 ) ref -> rdx "arr expr"
-;* V67 tmp52 [V67,T26] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V68 tmp53 [V68,T14] ( 3, 12 ) ref -> rdi "arr expr"
-; V69 tmp54 [V69,T07] ( 3, 24 ) ref -> rsi "arr expr"
-; V70 tmp55 [V70,T15] ( 3, 12 ) ref -> rcx "arr expr"
-; V71 tmp56 [V71,T18] ( 3, 12 ) int -> rdx "index expr"
-; V72 PSPSym [V72,T36] ( 1, 1 ) long -> [rbp-0x70] do-not-enreg[V] "PSPSym"
-; V73 cse0 [V73,T16] ( 3, 12 ) byref -> rdx "CSE #05: moderate"
-; V74 cse1 [V74,T22] ( 3, 10 ) long -> r12 "CSE #04: moderate"
-; V75 cse2 [V75,T17] ( 2, 8 ) ref -> rdx "CSE #01: moderate"
-; V76 cse3 [V76,T19] ( 2, 8 ) int -> rsi "CSE #11: moderate"
-; V77 cse4 [V77,T28] ( 3, 6 ) int -> rsi "CSE #08: moderate"
-; V78 cse5 [V78,T27] ( 3, 6 ) ref -> rdi "CSE #09: moderate"
-; V79 rat0 [V79,T02] ( 9, 29 ) long -> r13 "Widened IV V03"
+; V27 tmp12 [V27,T08] ( 3, 12 ) byref -> rsi "Inlining Arg"
+; V28 tmp13 [V28,T16] ( 4, 8 ) int -> rax "Inline stloc first use temp"
+;* V29 tmp14 [V29,T26] ( 0, 0 ) long -> zero-ref "field V08.key (fldOffset=0x0)" P-INDEP
+;* V30 tmp15 [V30 ] ( 0, 0 ) int -> zero-ref "field V08.value (fldOffset=0x8)" P-INDEP
+;* V31 tmp16 [V31 ] ( 0, 0 ) long -> zero-ref "field V09.key (fldOffset=0x0)" P-INDEP
+;* V32 tmp17 [V32 ] ( 0, 0 ) int -> zero-ref "field V09.value (fldOffset=0x8)" P-INDEP
+;* V33 tmp18 [V33 ] ( 0, 0 ) long -> zero-ref "field V17._id (fldOffset=0x0)" P-INDEP
+;* V34 tmp19 [V34 ] ( 0, 0 ) long -> zero-ref "field V18._id (fldOffset=0x0)" P-INDEP
+;* V35 tmp20 [V35 ] ( 0, 0 ) long -> zero-ref "field V23.key (fldOffset=0x0)" P-INDEP
+;* V36 tmp21 [V36 ] ( 0, 0 ) int -> zero-ref "field V23.value (fldOffset=0x8)" P-INDEP
+; V37 tmp22 [V37,T14] ( 3, 10 ) ref -> [rbp-0xA8] spill-single-def "V04.[000..008)"
+; V38 tmp23 [V38,T06] ( 3, 10 ) long -> [rbp-0x98] spill-single-def "V04.[008..016)"
+;* V39 tmp24 [V39 ] ( 0, 0 ) int -> zero-ref "V04.[016..020)"
+;* V40 tmp25 [V40 ] ( 0, 0 ) ref -> zero-ref "V10.[000..008)"
+;* V41 tmp26 [V41 ] ( 0, 0 ) long -> zero-ref "V10.[008..016)"
+;* V42 tmp27 [V42 ] ( 0, 0 ) int -> zero-ref "V10.[016..020)"
+; V43 tmp28 [V43,T17] ( 2, 8 ) ref -> rsi "V14.[000..008)"
+;* V44 tmp29 [V44 ] ( 0, 0 ) long -> zero-ref "V14.[008..016)"
+; V45 tmp30 [V45,T23] ( 2, 6 ) int -> r14 "V14.[016..020)"
+;* V46 tmp31 [V46 ] ( 0, 0 ) ref -> zero-ref single-def "V25.[000..008)"
+;* V47 tmp32 [V47 ] ( 0, 0 ) int -> zero-ref "V25.[008..012)"
+; V48 tmp33 [V48,T28] ( 2, 2 ) int -> rdi "V25.[012..016)"
+;* V49 tmp34 [V49 ] ( 0, 0 ) ref -> zero-ref "V24.[000..008)"
+;* V50 tmp35 [V50 ] ( 0, 0 ) long -> zero-ref "V24.[008..016)"
+;* V51 tmp36 [V51 ] ( 0, 0 ) int -> zero-ref "V24.[016..020)"
+; V52 tmp37 [V52,T03] ( 3, 24 ) byref -> rcx "Spilling address for field-by-field copy"
+; V53 tmp38 [V53,T05] ( 4, 16 ) byref -> r12 "Spilling address for field-by-field copy"
+; V54 tmp39 [V54,T04] ( 3, 24 ) ref -> rdx "arr expr"
+;* V55 tmp40 [V55,T18] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V56 tmp41 [V56,T09] ( 3, 12 ) ref -> rdi "arr expr"
+; V57 tmp42 [V57,T10] ( 3, 12 ) ref -> rsi "arr expr"
+; V58 tmp43 [V58,T13] ( 3, 12 ) int -> rax "index expr"
+; V59 PSPSym [V59,T31] ( 1, 1 ) long -> [rbp-0xB0] do-not-enreg[V] "PSPSym"
+; V60 cse0 [V60,T11] ( 3, 12 ) byref -> rdx "CSE #05: moderate"
+; V61 cse1 [V61,T15] ( 3, 10 ) long -> r12 "CSE #04: moderate"
+; V62 cse2 [V62,T12] ( 2, 8 ) ref -> rdx "CSE #01: moderate"
+; V63 cse3 [V63,T20] ( 3, 6 ) int -> rsi "CSE #08: moderate"
+; V64 cse4 [V64,T19] ( 3, 6 ) ref -> rdi "CSE #09: moderate"
+; V65 cse5 [V65,T21] ( 3, 6 ) long -> r15 "CSE #10: moderate"
+; V66 rat0 [V66,T02] ( 9, 29 ) long -> r13 "Widened IV V03"
;
-; Lcl frame size = 72
+; Lcl frame size = 136
G_M4676_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 72
- lea rbp, [rsp+0x70]
- mov qword ptr [rbp-0x70], rsp
+ sub rsp, 136
+ lea rbp, [rsp+0xB0]
+ vxorps xmm8, xmm8, xmm8
+ vmovdqu ymmword ptr [rbp-0x90], ymm8
+ vmovdqu ymmword ptr [rbp-0x70], ymm8
+ vmovdqa xmmword ptr [rbp-0x50], xmm8
+ mov qword ptr [rbp-0xB0], rsp
mov rbx, rdi
- ;; size=26 bbWeight=1 PerfScore 8.00
+ ;; size=58 bbWeight=1 PerfScore 14.33
G_M4676_IG02:
xor r15d, r15d
mov rdx, gword ptr [rbx+0x20]
mov r14, gword ptr [rdx+0x18]
xor r13d, r13d
cmp dword ptr [r14+0x10], 0
jle G_M4676_IG06
;; size=25 bbWeight=1 PerfScore 8.50
G_M4676_IG03:
cmp r13d, dword ptr [r14+0x10]
- jae G_M4676_IG23
+ jae G_M4676_IG25
mov rdx, gword ptr [r14+0x08]
cmp r13d, dword ptr [rdx+0x08]
- jae G_M4676_IG22
+ jae G_M4676_IG24
lea r12, [r13+2*r13]
lea rdx, bword ptr [rdx+8*r12+0x10]
mov rcx, rdx
mov rax, gword ptr [rcx]
- mov gword ptr [rbp-0x60], rax
+ mov gword ptr [rbp-0xA8], rax
mov r8, qword ptr [rcx+0x08]
- mov qword ptr [rbp-0x48], r8
+ mov qword ptr [rbp-0x98], r8
xor ecx, ecx
mov qword ptr [rdx], rcx
mov qword ptr [rdx+0x08], rcx
mov qword ptr [rdx+0x10], rcx
inc dword ptr [r14+0x14]
mov rdx, gword ptr [rbx+0x18]
lea rcx, [rbp-0x30]
mov rdi, rax
mov rsi, r8
mov r11, 0xD1FFAB1E ; code for System.Threading.Tasks.Dataflow.ISourceBlock`1[int]:ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[int],byref):int:this
call [r11]System.Threading.Tasks.Dataflow.ISourceBlock`1[int]:ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[int],byref):int:this
mov dword ptr [rbp-0x34], eax
cmp byte ptr [rbp-0x30], 0
je SHORT G_M4676_IG05
- ;; size=105 bbWeight=4 PerfScore 143.00
+ ;; size=111 bbWeight=4 PerfScore 143.00
G_M4676_IG04:
cmp r13d, dword ptr [r14+0x10]
- jae G_M4676_IG23
+ jae G_M4676_IG25
mov rdi, gword ptr [r14+0x08]
cmp r13d, dword ptr [rdi+0x08]
- jae G_M4676_IG22
+ jae G_M4676_IG24
lea r12, bword ptr [rdi+8*r12+0x10]
- mov rsi, gword ptr [rbp-0x60]
+ mov rsi, gword ptr [rbp-0xA8]
mov rdi, r12
call CORINFO_HELP_ASSIGN_REF
- mov rsi, qword ptr [rbp-0x48]
+ mov rsi, qword ptr [rbp-0x98]
mov qword ptr [r12+0x08], rsi
mov esi, dword ptr [rbp-0x34]
mov dword ptr [r12+0x10], esi
inc dword ptr [r14+0x14]
inc r15d
- ;; size=65 bbWeight=2 PerfScore 41.00
+ ;; size=71 bbWeight=2 PerfScore 41.00
G_M4676_IG05:
inc r13d
cmp r13d, dword ptr [r14+0x10]
jl G_M4676_IG03
;; size=13 bbWeight=4 PerfScore 17.00
G_M4676_IG06:
mov rdi, gword ptr [rbx+0x10]
- mov gword ptr [rbp-0x50], rdi
+ mov gword ptr [rbp-0xA0], rdi
xor esi, esi
mov dword ptr [rbp-0x40], esi
- ;; size=13 bbWeight=1 PerfScore 4.25
+ ;; size=16 bbWeight=1 PerfScore 4.25
G_M4676_IG07:
cmp byte ptr [rbp-0x40], 0
- jne G_M4676_IG15
+ jne SHORT G_M4676_IG13
lea rsi, [rbp-0x40]
call System.Threading.Monitor:ReliableEnter(System.Object,byref)
cmp gword ptr [rbx+0x28], 0
je SHORT G_M4676_IG09
- ;; size=26 bbWeight=1 PerfScore 8.50
+ ;; size=22 bbWeight=1 PerfScore 8.50
G_M4676_IG08:
- mov rsi, gword ptr [rbx+0x28]
- add dword ptr [rsi+0x0C], r15d
+ mov rdi, gword ptr [rbx+0x28]
+ add dword ptr [rdi+0x0C], r15d
;; size=8 bbWeight=0.50 PerfScore 2.50
G_M4676_IG09:
- mov r15d, dword ptr [r14+0x14]
- xor r13d, r13d
- ;; size=7 bbWeight=1 PerfScore 2.25
+ mov edi, dword ptr [r14+0x14]
+ vxorps xmm0, xmm0, xmm0
+ vmovdqu xmmword ptr [rbp-0x80], xmm0
+ vmovdqu xmmword ptr [rbp-0x78], xmm0
+ ;; size=18 bbWeight=1 PerfScore 4.33
G_M4676_IG10:
- cmp r15d, dword ptr [r14+0x14]
- jne G_M4676_IG17
- ;; size=10 bbWeight=8 PerfScore 32.00
+ vmovdqu ymm0, ymmword ptr [rbp-0x90]
+ vmovdqu ymmword ptr [rbp-0x68], ymm0
+ mov rsi, qword ptr [rbp-0x70]
+ mov qword ptr [rbp-0x48], rsi
+ ;; size=21 bbWeight=1 PerfScore 7.00
G_M4676_IG11:
- mov esi, dword ptr [r14+0x10]
- cmp r13d, esi
- jae G_M4676_IG18
- mov rsi, gword ptr [r14+0x08]
- cmp r13d, dword ptr [rsi+0x08]
- jae G_M4676_IG16
- mov edi, r13d
- lea rdi, [rdi+2*rdi]
- lea rsi, bword ptr [rsi+8*rdi+0x10]
- mov rdi, gword ptr [rsi]
- mov r12d, dword ptr [rsi+0x10]
- inc r13d
- test rdi, rdi
- je SHORT G_M4676_IG10
- ;; size=54 bbWeight=4 PerfScore 66.00
+ mov gword ptr [rbp-0x68], r14
+ xor esi, esi
+ mov dword ptr [rbp-0x60], esi
+ mov dword ptr [rbp-0x5C], edi
+ jmp SHORT G_M4676_IG14
+ ;; size=14 bbWeight=1 PerfScore 5.25
G_M4676_IG12:
- mov rax, gword ptr [rbx+0x08]
- mov gword ptr [rbp-0x58], rax
- mov esi, dword ptr [rax+0x18]
- mov rdi, gword ptr [rax+0x08]
- cmp esi, dword ptr [rdi+0x08]
- jne SHORT G_M4676_IG13
- inc esi
- mov rdi, rax
- mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.Queue`1[int]:Grow(int):this
- call [rcx]System.Collections.Generic.Queue`1[int]:Grow(int):this
- mov rax, gword ptr [rbp-0x58]
- ;; size=41 bbWeight=2 PerfScore 31.50
+ call CORINFO_HELP_RNGCHKFAIL
+ int3
+ ;; size=6 bbWeight=0 PerfScore 0.00
G_M4676_IG13:
- mov rdi, gword ptr [rax+0x08]
- mov rcx, rdi
- mov edx, dword ptr [rax+0x14]
- cmp edx, dword ptr [rcx+0x08]
- jae SHORT G_M4676_IG16
- mov dword ptr [rcx+4*rdx+0x10], r12d
- lea rcx, bword ptr [rax+0x14]
- mov edx, dword ptr [rcx]
- inc edx
- cmp dword ptr [rdi+0x08], edx
- jne SHORT G_M4676_IG14
- xor edx, edx
- ;; size=35 bbWeight=2 PerfScore 32.50
-G_M4676_IG14:
- mov dword ptr [rcx], edx
- inc dword ptr [rax+0x18]
- inc dword ptr [rax+0x1C]
- jmp G_M4676_IG10
- ;; size=13 bbWeight=2 PerfScore 18.00
-G_M4676_IG15:
mov rax, 0xD1FFAB1E ; code for System.Threading.Monitor:ThrowLockTakenException()
call [rax]System.Threading.Monitor:ThrowLockTakenException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
+G_M4676_IG14:
+ lea rdi, [rbp-0x68]
+ mov r15, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[int],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M4676_IG20
+ ;; size=33 bbWeight=1 PerfScore 5.50
+G_M4676_IG15:
+ mov rsi, gword ptr [rbp-0x58]
+ mov r14d, dword ptr [rbp-0x48]
+ test rsi, rsi
+ je SHORT G_M4676_IG19
+ ;; size=13 bbWeight=4 PerfScore 13.00
G_M4676_IG16:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
+ mov r13, gword ptr [rbx+0x08]
+ mov esi, dword ptr [r13+0x18]
+ mov rdi, gword ptr [r13+0x08]
+ cmp esi, dword ptr [rdi+0x08]
+ jne SHORT G_M4676_IG17
+ inc esi
+ mov rdi, r13
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Queue`1[int]:Grow(int):this
+ call [rax]System.Collections.Generic.Queue`1[int]:Grow(int):this
+ ;; size=34 bbWeight=2 PerfScore 27.50
G_M4676_IG17:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ mov rdi, gword ptr [r13+0x08]
+ mov rsi, rdi
+ mov eax, dword ptr [r13+0x14]
+ cmp eax, dword ptr [rsi+0x08]
+ jae SHORT G_M4676_IG12
+ mov dword ptr [rsi+4*rax+0x10], r14d
+ lea rsi, bword ptr [r13+0x14]
+ mov eax, dword ptr [rsi]
+ inc eax
+ cmp dword ptr [rdi+0x08], eax
+ jne SHORT G_M4676_IG18
+ xor eax, eax
+ ;; size=36 bbWeight=2 PerfScore 32.50
G_M4676_IG18:
+ mov dword ptr [rsi], eax
+ inc dword ptr [r13+0x18]
+ inc dword ptr [r13+0x1C]
+ ;; size=10 bbWeight=2 PerfScore 14.00
+G_M4676_IG19:
+ lea rdi, [rbp-0x68]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,int]]]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M4676_IG15
+ ;; size=23 bbWeight=4 PerfScore 21.00
+G_M4676_IG20:
cmp byte ptr [rbp-0x40], 0
- je SHORT G_M4676_IG20
+ je SHORT G_M4676_IG22
;; size=6 bbWeight=1 PerfScore 3.00
-G_M4676_IG19:
- mov rdi, gword ptr [rbp-0x50]
+G_M4676_IG21:
+ mov rdi, gword ptr [rbp-0xA0]
call System.Threading.Monitor:Exit(System.Object)
- ;; size=9 bbWeight=0.50 PerfScore 1.00
-G_M4676_IG20:
+ ;; size=12 bbWeight=0.50 PerfScore 1.00
+G_M4676_IG22:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M4676_IG21:
- add rsp, 72
+G_M4676_IG23:
+ vzeroupper
+ add rsp, 136
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=1 PerfScore 4.25
-G_M4676_IG22:
+ ;; size=21 bbWeight=1 PerfScore 5.25
+G_M4676_IG24:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M4676_IG23:
+G_M4676_IG25:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M4676_IG24:
+G_M4676_IG26:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
- lea rbp, [rbp+0x70]
- ;; size=22 bbWeight=0 PerfScore 0.00
-G_M4676_IG25:
+ lea rbp, [rbp+0xB0]
+ ;; size=25 bbWeight=0 PerfScore 0.00
+G_M4676_IG27:
cmp byte ptr [rbp-0x40], 0
- je SHORT G_M4676_IG26
- mov rdi, gword ptr [rbp-0x50]
+ je SHORT G_M4676_IG28
+ mov rdi, gword ptr [rbp-0xA0]
call System.Threading.Monitor:Exit(System.Object)
- ;; size=15 bbWeight=0 PerfScore 0.00
-G_M4676_IG26:
+ ;; size=18 bbWeight=0 PerfScore 0.00
+G_M4676_IG28:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M4676_IG27:
+G_M4676_IG29:
+ vzeroupper
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 576, prolog size 26, PerfScore 423.50, instruction count 166, allocated bytes for code 576 (MethodHash=57b9edbb) for method System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[int]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
+; Total bytes of code 666, prolog size 58, PerfScore 378.67, instruction count 178, allocated bytes for code 666 (MethodHash=57b9edbb) for method System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[int]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
90 (15.57 % of base) - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[long]:ConsumeReservedMessagesGreedyBounded():this
; Assembly listing for method System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[long]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 17 single block inlinees; 8 inlinees without PGO data
+; 0 inlinees with PGO data; 17 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T11] ( 8, 11.50) ref -> rbx this class-hnd single-def <System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[long]>
-; V01 loc0 [V01,T30] ( 4, 5.50) int -> r15
+; V00 this [V00,T07] ( 8, 11.50) ref -> rbx this class-hnd single-def <System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[long]>
+; V01 loc0 [V01,T24] ( 4, 5.50) int -> r15
; V02 loc1 [V02,T01] ( 13, 32 ) ref -> r14 class-hnd single-def <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[long],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]]>
-;* V03 loc2 [V03,T35] ( 0, 0 ) int -> zero-ref
+;* V03 loc2 [V03,T30] ( 0, 0 ) int -> zero-ref
;* V04 loc3 [V04 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[long],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]>
; V05 loc4 [V05 ] ( 2, 8 ) ubyte -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
-; V06 loc5 [V06,T29] ( 2, 6 ) long -> [rbp-0x38] spill-single-def
+; V06 loc5 [V06,T22] ( 2, 6 ) long -> [rbp-0x38] spill-single-def
;* V07 loc6 [V07 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[long],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]>
;* V08 loc7 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]>
;* V09 loc8 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]>
;* V10 loc9 [V10 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[long],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]>
-; V11 loc10 [V11,T34] ( 4, 1.50) ref -> [rbp-0x50] class-hnd EH-live spill-single-def <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
+; V11 loc10 [V11,T29] ( 4, 1.50) ref -> [rbp-0xA0] class-hnd EH-live spill-single-def <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
; V12 loc11 [V12 ] ( 5, 4 ) ubyte -> [rbp-0x40] do-not-enreg[X] addr-exposed ld-addr-op
-;* V13 loc12 [V13 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[long],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]]>
+; V13 loc12 [V13 ] ( 8, 17 ) struct (40) [rbp-0x68] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[long],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]]>
;* V14 loc13 [V14 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[long],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]>
;# V15 OutArgs [V15 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V16 tmp1 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Threading.Tasks.Dataflow.ISourceBlock`1[long]>
;* V17 tmp2 [V17 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.Tasks.Dataflow.DataflowMessageHeader>
;* V18 tmp3 [V18 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.Tasks.Dataflow.DataflowMessageHeader>
-; V19 tmp4 [V19,T00] ( 11, 44 ) ref -> [rbp-0x58] class-hnd spill-single-def "impAppendStmt" <System.Collections.Generic.Queue`1[long]>
-; V20 tmp5 [V20,T32] ( 3, 3 ) ref -> rsi class-hnd single-def "dup spill" <System.Threading.Tasks.Dataflow.Internal.BoundingState>
+; V19 tmp4 [V19,T00] ( 11, 44 ) ref -> r13 class-hnd "impAppendStmt" <System.Collections.Generic.Queue`1[long]>
+; V20 tmp5 [V20,T27] ( 3, 3 ) ref -> rdi class-hnd single-def "dup spill" <System.Threading.Tasks.Dataflow.Internal.BoundingState>
;* V21 tmp6 [V21 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[long],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]>
;* V22 tmp7 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
;* V23 tmp8 [V23 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]>
;* V24 tmp9 [V24 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[long],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]>
-;* V25 tmp10 [V25 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[long],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]]>
+; V25 tmp10 [V25,T25] ( 2, 4 ) struct (40) [rbp-0x90] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[long],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]]>
;* V26 tmp11 [V26 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V27 tmp12 [V27,T12] ( 3, 12 ) byref -> rcx "Inlining Arg"
-; V28 tmp13 [V28,T24] ( 4, 8 ) int -> rdx "Inline stloc first use temp"
-;* V29 tmp14 [V29,T25] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V30 tmp15 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[long],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]]>
-;* V31 tmp16 [V31,T31] ( 0, 0 ) long -> zero-ref "field V08.key (fldOffset=0x0)" P-INDEP
-;* V32 tmp17 [V32 ] ( 0, 0 ) long -> zero-ref "field V08.value (fldOffset=0x8)" P-INDEP
-;* V33 tmp18 [V33 ] ( 0, 0 ) long -> zero-ref "field V09.key (fldOffset=0x0)" P-INDEP
-;* V34 tmp19 [V34 ] ( 0, 0 ) long -> zero-ref "field V09.value (fldOffset=0x8)" P-INDEP
-;* V35 tmp20 [V35 ] ( 0, 0 ) long -> zero-ref "field V17._id (fldOffset=0x0)" P-INDEP
-;* V36 tmp21 [V36 ] ( 0, 0 ) long -> zero-ref "field V18._id (fldOffset=0x0)" P-INDEP
-;* V37 tmp22 [V37 ] ( 0, 0 ) long -> zero-ref "field V23.key (fldOffset=0x0)" P-INDEP
-;* V38 tmp23 [V38 ] ( 0, 0 ) long -> zero-ref "field V23.value (fldOffset=0x8)" P-INDEP
-; V39 tmp24 [V39,T20] ( 3, 10 ) ref -> [rbp-0x60] spill-single-def "V04.[000..008)"
-; V40 tmp25 [V40,T10] ( 3, 10 ) long -> [rbp-0x48] spill-single-def "V04.[008..016)"
-;* V41 tmp26 [V41 ] ( 0, 0 ) long -> zero-ref "V04.[016..024)"
-;* V42 tmp27 [V42 ] ( 0, 0 ) ref -> zero-ref "V10.[000..008)"
-;* V43 tmp28 [V43 ] ( 0, 0 ) long -> zero-ref "V10.[008..016)"
-;* V44 tmp29 [V44 ] ( 0, 0 ) long -> zero-ref "V10.[016..024)"
-; V45 tmp30 [V45,T08] ( 4, 17 ) ref -> r14 single-def "V13.[000..008)"
-; V46 tmp31 [V46,T03] ( 6, 21 ) int -> r13 "V13.[008..012)"
-; V47 tmp32 [V47,T23] ( 2, 9 ) int -> r15 "V13.[012..016)"
-; V48 tmp33 [V48,T13] ( 2, 8 ) ref -> rdi "V13.[016..024)"
-;* V49 tmp34 [V49 ] ( 0, 0 ) long -> zero-ref "V13.[024..032)"
-; V50 tmp35 [V50,T21] ( 2, 6 ) long -> r12 "V13.[032..040)"
-;* V51 tmp36 [V51 ] ( 0, 0 ) ref -> zero-ref "V14.[000..008)"
-;* V52 tmp37 [V52 ] ( 0, 0 ) long -> zero-ref "V14.[008..016)"
-;* V53 tmp38 [V53 ] ( 0, 0 ) long -> zero-ref "V14.[016..024)"
-;* V54 tmp39 [V54 ] ( 0, 0 ) ref -> zero-ref single-def "V25.[000..008)"
-;* V55 tmp40 [V55 ] ( 0, 0 ) int -> zero-ref "V25.[008..012)"
-; V56 tmp41 [V56,T33] ( 2, 2 ) int -> r15 "V25.[012..016)"
-;* V57 tmp42 [V57 ] ( 0, 0 ) ref -> zero-ref single-def "V25.[016..024)"
-;* V58 tmp43 [V58 ] ( 0, 0 ) long -> zero-ref "V25.[024..032)"
-;* V59 tmp44 [V59 ] ( 0, 0 ) long -> zero-ref "V25.[032..040)"
-;* V60 tmp45 [V60 ] ( 0, 0 ) ref -> zero-ref "V24.[000..008)"
-;* V61 tmp46 [V61 ] ( 0, 0 ) long -> zero-ref "V24.[008..016)"
-;* V62 tmp47 [V62 ] ( 0, 0 ) long -> zero-ref "V24.[016..024)"
-; V63 tmp48 [V63,T04] ( 3, 24 ) byref -> rcx "Spilling address for field-by-field copy"
-; V64 tmp49 [V64,T09] ( 4, 16 ) byref -> r12 "Spilling address for field-by-field copy"
-; V65 tmp50 [V65,T05] ( 3, 24 ) byref -> rsi "Spilling address for field-by-field copy"
-; V66 tmp51 [V66,T06] ( 3, 24 ) ref -> rdx "arr expr"
-;* V67 tmp52 [V67,T26] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V68 tmp53 [V68,T14] ( 3, 12 ) ref -> rdi "arr expr"
-; V69 tmp54 [V69,T07] ( 3, 24 ) ref -> rsi "arr expr"
-; V70 tmp55 [V70,T15] ( 3, 12 ) ref -> rcx "arr expr"
-; V71 tmp56 [V71,T18] ( 3, 12 ) int -> rdx "index expr"
-; V72 PSPSym [V72,T36] ( 1, 1 ) long -> [rbp-0x70] do-not-enreg[V] "PSPSym"
-; V73 cse0 [V73,T16] ( 3, 12 ) byref -> rdx "CSE #05: moderate"
-; V74 cse1 [V74,T22] ( 3, 10 ) long -> r12 "CSE #04: moderate"
-; V75 cse2 [V75,T17] ( 2, 8 ) ref -> rdx "CSE #01: moderate"
-; V76 cse3 [V76,T19] ( 2, 8 ) int -> rsi "CSE #11: moderate"
-; V77 cse4 [V77,T28] ( 3, 6 ) int -> rsi "CSE #08: moderate"
-; V78 cse5 [V78,T27] ( 3, 6 ) ref -> rdi "CSE #09: moderate"
-; V79 rat0 [V79,T02] ( 9, 29 ) long -> r13 "Widened IV V03"
+; V27 tmp12 [V27,T08] ( 3, 12 ) byref -> rsi "Inlining Arg"
+; V28 tmp13 [V28,T16] ( 4, 8 ) int -> rax "Inline stloc first use temp"
+;* V29 tmp14 [V29,T26] ( 0, 0 ) long -> zero-ref "field V08.key (fldOffset=0x0)" P-INDEP
+;* V30 tmp15 [V30 ] ( 0, 0 ) long -> zero-ref "field V08.value (fldOffset=0x8)" P-INDEP
+;* V31 tmp16 [V31 ] ( 0, 0 ) long -> zero-ref "field V09.key (fldOffset=0x0)" P-INDEP
+;* V32 tmp17 [V32 ] ( 0, 0 ) long -> zero-ref "field V09.value (fldOffset=0x8)" P-INDEP
+;* V33 tmp18 [V33 ] ( 0, 0 ) long -> zero-ref "field V17._id (fldOffset=0x0)" P-INDEP
+;* V34 tmp19 [V34 ] ( 0, 0 ) long -> zero-ref "field V18._id (fldOffset=0x0)" P-INDEP
+;* V35 tmp20 [V35 ] ( 0, 0 ) long -> zero-ref "field V23.key (fldOffset=0x0)" P-INDEP
+;* V36 tmp21 [V36 ] ( 0, 0 ) long -> zero-ref "field V23.value (fldOffset=0x8)" P-INDEP
+; V37 tmp22 [V37,T14] ( 3, 10 ) ref -> [rbp-0xA8] spill-single-def "V04.[000..008)"
+; V38 tmp23 [V38,T06] ( 3, 10 ) long -> [rbp-0x98] spill-single-def "V04.[008..016)"
+;* V39 tmp24 [V39 ] ( 0, 0 ) long -> zero-ref "V04.[016..024)"
+;* V40 tmp25 [V40 ] ( 0, 0 ) ref -> zero-ref "V10.[000..008)"
+;* V41 tmp26 [V41 ] ( 0, 0 ) long -> zero-ref "V10.[008..016)"
+;* V42 tmp27 [V42 ] ( 0, 0 ) long -> zero-ref "V10.[016..024)"
+; V43 tmp28 [V43,T17] ( 2, 8 ) ref -> rsi "V14.[000..008)"
+;* V44 tmp29 [V44 ] ( 0, 0 ) long -> zero-ref "V14.[008..016)"
+; V45 tmp30 [V45,T23] ( 2, 6 ) long -> r14 "V14.[016..024)"
+;* V46 tmp31 [V46 ] ( 0, 0 ) ref -> zero-ref single-def "V25.[000..008)"
+;* V47 tmp32 [V47 ] ( 0, 0 ) int -> zero-ref "V25.[008..012)"
+; V48 tmp33 [V48,T28] ( 2, 2 ) int -> rdi "V25.[012..016)"
+;* V49 tmp34 [V49 ] ( 0, 0 ) ref -> zero-ref "V24.[000..008)"
+;* V50 tmp35 [V50 ] ( 0, 0 ) long -> zero-ref "V24.[008..016)"
+;* V51 tmp36 [V51 ] ( 0, 0 ) long -> zero-ref "V24.[016..024)"
+; V52 tmp37 [V52,T03] ( 3, 24 ) byref -> rcx "Spilling address for field-by-field copy"
+; V53 tmp38 [V53,T05] ( 4, 16 ) byref -> r12 "Spilling address for field-by-field copy"
+; V54 tmp39 [V54,T04] ( 3, 24 ) ref -> rdx "arr expr"
+;* V55 tmp40 [V55,T18] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V56 tmp41 [V56,T09] ( 3, 12 ) ref -> rdi "arr expr"
+; V57 tmp42 [V57,T10] ( 3, 12 ) ref -> rsi "arr expr"
+; V58 tmp43 [V58,T13] ( 3, 12 ) int -> rax "index expr"
+; V59 PSPSym [V59,T31] ( 1, 1 ) long -> [rbp-0xB0] do-not-enreg[V] "PSPSym"
+; V60 cse0 [V60,T11] ( 3, 12 ) byref -> rdx "CSE #05: moderate"
+; V61 cse1 [V61,T15] ( 3, 10 ) long -> r12 "CSE #04: moderate"
+; V62 cse2 [V62,T12] ( 2, 8 ) ref -> rdx "CSE #01: moderate"
+; V63 cse3 [V63,T20] ( 3, 6 ) int -> rsi "CSE #08: moderate"
+; V64 cse4 [V64,T19] ( 3, 6 ) ref -> rdi "CSE #09: moderate"
+; V65 cse5 [V65,T21] ( 3, 6 ) long -> r15 "CSE #10: moderate"
+; V66 rat0 [V66,T02] ( 9, 29 ) long -> r13 "Widened IV V03"
;
-; Lcl frame size = 72
+; Lcl frame size = 136
G_M41661_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 72
- lea rbp, [rsp+0x70]
- mov qword ptr [rbp-0x70], rsp
+ sub rsp, 136
+ lea rbp, [rsp+0xB0]
+ vxorps xmm8, xmm8, xmm8
+ vmovdqu ymmword ptr [rbp-0x90], ymm8
+ vmovdqu ymmword ptr [rbp-0x70], ymm8
+ vmovdqa xmmword ptr [rbp-0x50], xmm8
+ mov qword ptr [rbp-0xB0], rsp
mov rbx, rdi
- ;; size=26 bbWeight=1 PerfScore 8.00
+ ;; size=58 bbWeight=1 PerfScore 14.33
G_M41661_IG02:
xor r15d, r15d
mov rdx, gword ptr [rbx+0x20]
mov r14, gword ptr [rdx+0x18]
xor r13d, r13d
cmp dword ptr [r14+0x10], 0
jle G_M41661_IG06
;; size=25 bbWeight=1 PerfScore 8.50
G_M41661_IG03:
cmp r13d, dword ptr [r14+0x10]
- jae G_M41661_IG23
+ jae G_M41661_IG25
mov rdx, gword ptr [r14+0x08]
cmp r13d, dword ptr [rdx+0x08]
- jae G_M41661_IG22
+ jae G_M41661_IG24
lea r12, [r13+2*r13]
lea rdx, bword ptr [rdx+8*r12+0x10]
mov rcx, rdx
mov rax, gword ptr [rcx]
- mov gword ptr [rbp-0x60], rax
+ mov gword ptr [rbp-0xA8], rax
mov r8, qword ptr [rcx+0x08]
- mov qword ptr [rbp-0x48], r8
+ mov qword ptr [rbp-0x98], r8
xor ecx, ecx
mov qword ptr [rdx], rcx
mov qword ptr [rdx+0x08], rcx
mov qword ptr [rdx+0x10], rcx
inc dword ptr [r14+0x14]
mov rdx, gword ptr [rbx+0x18]
lea rcx, [rbp-0x30]
mov rdi, rax
mov rsi, r8
mov r11, 0xD1FFAB1E ; code for System.Threading.Tasks.Dataflow.ISourceBlock`1[long]:ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[long],byref):long:this
call [r11]System.Threading.Tasks.Dataflow.ISourceBlock`1[long]:ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[long],byref):long:this
mov qword ptr [rbp-0x38], rax
cmp byte ptr [rbp-0x30], 0
je SHORT G_M41661_IG05
- ;; size=106 bbWeight=4 PerfScore 143.00
+ ;; size=112 bbWeight=4 PerfScore 143.00
G_M41661_IG04:
cmp r13d, dword ptr [r14+0x10]
- jae G_M41661_IG23
+ jae G_M41661_IG25
mov rdi, gword ptr [r14+0x08]
cmp r13d, dword ptr [rdi+0x08]
- jae G_M41661_IG22
+ jae G_M41661_IG24
lea r12, bword ptr [rdi+8*r12+0x10]
- mov rsi, gword ptr [rbp-0x60]
+ mov rsi, gword ptr [rbp-0xA8]
mov rdi, r12
call CORINFO_HELP_ASSIGN_REF
- mov rsi, qword ptr [rbp-0x48]
+ mov rsi, qword ptr [rbp-0x98]
mov qword ptr [r12+0x08], rsi
mov rsi, qword ptr [rbp-0x38]
mov qword ptr [r12+0x10], rsi
inc dword ptr [r14+0x14]
inc r15d
- ;; size=66 bbWeight=2 PerfScore 41.00
+ ;; size=72 bbWeight=2 PerfScore 41.00
G_M41661_IG05:
inc r13d
cmp r13d, dword ptr [r14+0x10]
jl G_M41661_IG03
;; size=13 bbWeight=4 PerfScore 17.00
G_M41661_IG06:
mov rdi, gword ptr [rbx+0x10]
- mov gword ptr [rbp-0x50], rdi
+ mov gword ptr [rbp-0xA0], rdi
xor esi, esi
mov dword ptr [rbp-0x40], esi
- ;; size=13 bbWeight=1 PerfScore 4.25
+ ;; size=16 bbWeight=1 PerfScore 4.25
G_M41661_IG07:
cmp byte ptr [rbp-0x40], 0
- jne G_M41661_IG15
+ jne SHORT G_M41661_IG13
lea rsi, [rbp-0x40]
call System.Threading.Monitor:ReliableEnter(System.Object,byref)
cmp gword ptr [rbx+0x28], 0
je SHORT G_M41661_IG09
- ;; size=26 bbWeight=1 PerfScore 8.50
+ ;; size=22 bbWeight=1 PerfScore 8.50
G_M41661_IG08:
- mov rsi, gword ptr [rbx+0x28]
- add dword ptr [rsi+0x0C], r15d
+ mov rdi, gword ptr [rbx+0x28]
+ add dword ptr [rdi+0x0C], r15d
;; size=8 bbWeight=0.50 PerfScore 2.50
G_M41661_IG09:
- mov r15d, dword ptr [r14+0x14]
- xor r13d, r13d
- ;; size=7 bbWeight=1 PerfScore 2.25
+ mov edi, dword ptr [r14+0x14]
+ vxorps xmm0, xmm0, xmm0
+ vmovdqu xmmword ptr [rbp-0x80], xmm0
+ vmovdqu xmmword ptr [rbp-0x78], xmm0
+ ;; size=18 bbWeight=1 PerfScore 4.33
G_M41661_IG10:
- cmp r15d, dword ptr [r14+0x14]
- jne G_M41661_IG17
- ;; size=10 bbWeight=8 PerfScore 32.00
+ vmovdqu ymm0, ymmword ptr [rbp-0x90]
+ vmovdqu ymmword ptr [rbp-0x68], ymm0
+ mov rsi, qword ptr [rbp-0x70]
+ mov qword ptr [rbp-0x48], rsi
+ ;; size=21 bbWeight=1 PerfScore 7.00
G_M41661_IG11:
- mov esi, dword ptr [r14+0x10]
- cmp r13d, esi
- jae G_M41661_IG18
- mov rsi, gword ptr [r14+0x08]
- cmp r13d, dword ptr [rsi+0x08]
- jae G_M41661_IG16
- mov edi, r13d
- lea rdi, [rdi+2*rdi]
- lea rsi, bword ptr [rsi+8*rdi+0x10]
- mov rdi, gword ptr [rsi]
- mov r12, qword ptr [rsi+0x10]
- inc r13d
- test rdi, rdi
- je SHORT G_M41661_IG10
- ;; size=54 bbWeight=4 PerfScore 66.00
+ mov gword ptr [rbp-0x68], r14
+ xor esi, esi
+ mov dword ptr [rbp-0x60], esi
+ mov dword ptr [rbp-0x5C], edi
+ jmp SHORT G_M41661_IG14
+ ;; size=14 bbWeight=1 PerfScore 5.25
G_M41661_IG12:
- mov rax, gword ptr [rbx+0x08]
- mov gword ptr [rbp-0x58], rax
- mov esi, dword ptr [rax+0x18]
- mov rdi, gword ptr [rax+0x08]
- cmp esi, dword ptr [rdi+0x08]
- jne SHORT G_M41661_IG13
- inc esi
- mov rdi, rax
- mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.Queue`1[long]:Grow(int):this
- call [rcx]System.Collections.Generic.Queue`1[long]:Grow(int):this
- mov rax, gword ptr [rbp-0x58]
- ;; size=41 bbWeight=2 PerfScore 31.50
+ call CORINFO_HELP_RNGCHKFAIL
+ int3
+ ;; size=6 bbWeight=0 PerfScore 0.00
G_M41661_IG13:
- mov rdi, gword ptr [rax+0x08]
- mov rcx, rdi
- mov edx, dword ptr [rax+0x14]
- cmp edx, dword ptr [rcx+0x08]
- jae SHORT G_M41661_IG16
- mov qword ptr [rcx+8*rdx+0x10], r12
- lea rcx, bword ptr [rax+0x14]
- mov edx, dword ptr [rcx]
- inc edx
- cmp dword ptr [rdi+0x08], edx
- jne SHORT G_M41661_IG14
- xor edx, edx
- ;; size=35 bbWeight=2 PerfScore 32.50
-G_M41661_IG14:
- mov dword ptr [rcx], edx
- inc dword ptr [rax+0x18]
- inc dword ptr [rax+0x1C]
- jmp G_M41661_IG10
- ;; size=13 bbWeight=2 PerfScore 18.00
-G_M41661_IG15:
mov rax, 0xD1FFAB1E ; code for System.Threading.Monitor:ThrowLockTakenException()
call [rax]System.Threading.Monitor:ThrowLockTakenException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
+G_M41661_IG14:
+ lea rdi, [rbp-0x68]
+ mov r15, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[long],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M41661_IG20
+ ;; size=33 bbWeight=1 PerfScore 5.50
+G_M41661_IG15:
+ mov rsi, gword ptr [rbp-0x58]
+ mov r14, qword ptr [rbp-0x48]
+ test rsi, rsi
+ je SHORT G_M41661_IG19
+ ;; size=13 bbWeight=4 PerfScore 13.00
G_M41661_IG16:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
+ mov r13, gword ptr [rbx+0x08]
+ mov esi, dword ptr [r13+0x18]
+ mov rdi, gword ptr [r13+0x08]
+ cmp esi, dword ptr [rdi+0x08]
+ jne SHORT G_M41661_IG17
+ inc esi
+ mov rdi, r13
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Queue`1[long]:Grow(int):this
+ call [rax]System.Collections.Generic.Queue`1[long]:Grow(int):this
+ ;; size=34 bbWeight=2 PerfScore 27.50
G_M41661_IG17:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ mov rdi, gword ptr [r13+0x08]
+ mov rsi, rdi
+ mov eax, dword ptr [r13+0x14]
+ cmp eax, dword ptr [rsi+0x08]
+ jae SHORT G_M41661_IG12
+ mov qword ptr [rsi+8*rax+0x10], r14
+ lea rsi, bword ptr [r13+0x14]
+ mov eax, dword ptr [rsi]
+ inc eax
+ cmp dword ptr [rdi+0x08], eax
+ jne SHORT G_M41661_IG18
+ xor eax, eax
+ ;; size=36 bbWeight=2 PerfScore 32.50
G_M41661_IG18:
+ mov dword ptr [rsi], eax
+ inc dword ptr [r13+0x18]
+ inc dword ptr [r13+0x1C]
+ ;; size=10 bbWeight=2 PerfScore 14.00
+G_M41661_IG19:
+ lea rdi, [rbp-0x68]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,long]]]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M41661_IG15
+ ;; size=23 bbWeight=4 PerfScore 21.00
+G_M41661_IG20:
cmp byte ptr [rbp-0x40], 0
- je SHORT G_M41661_IG20
+ je SHORT G_M41661_IG22
;; size=6 bbWeight=1 PerfScore 3.00
-G_M41661_IG19:
- mov rdi, gword ptr [rbp-0x50]
+G_M41661_IG21:
+ mov rdi, gword ptr [rbp-0xA0]
call System.Threading.Monitor:Exit(System.Object)
- ;; size=9 bbWeight=0.50 PerfScore 1.00
-G_M41661_IG20:
+ ;; size=12 bbWeight=0.50 PerfScore 1.00
+G_M41661_IG22:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M41661_IG21:
- add rsp, 72
+G_M41661_IG23:
+ vzeroupper
+ add rsp, 136
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=1 PerfScore 4.25
-G_M41661_IG22:
+ ;; size=21 bbWeight=1 PerfScore 5.25
+G_M41661_IG24:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M41661_IG23:
+G_M41661_IG25:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M41661_IG24:
+G_M41661_IG26:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
- lea rbp, [rbp+0x70]
- ;; size=22 bbWeight=0 PerfScore 0.00
-G_M41661_IG25:
+ lea rbp, [rbp+0xB0]
+ ;; size=25 bbWeight=0 PerfScore 0.00
+G_M41661_IG27:
cmp byte ptr [rbp-0x40], 0
- je SHORT G_M41661_IG26
- mov rdi, gword ptr [rbp-0x50]
+ je SHORT G_M41661_IG28
+ mov rdi, gword ptr [rbp-0xA0]
call System.Threading.Monitor:Exit(System.Object)
- ;; size=15 bbWeight=0 PerfScore 0.00
-G_M41661_IG26:
+ ;; size=18 bbWeight=0 PerfScore 0.00
+G_M41661_IG28:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M41661_IG27:
+G_M41661_IG29:
+ vzeroupper
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 578, prolog size 26, PerfScore 423.50, instruction count 166, allocated bytes for code 578 (MethodHash=8b9d5d42) for method System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[long]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
+; Total bytes of code 668, prolog size 58, PerfScore 378.67, instruction count 178, allocated bytes for code 668 (MethodHash=8b9d5d42) for method System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[long]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
90 (15.54 % of base) - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[short]:ConsumeReservedMessagesGreedyBounded():this
; Assembly listing for method System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[short]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 17 single block inlinees; 8 inlinees without PGO data
+; 0 inlinees with PGO data; 17 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T11] ( 8, 11.50) ref -> rbx this class-hnd single-def <System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[short]>
-; V01 loc0 [V01,T30] ( 4, 5.50) int -> r15
+; V00 this [V00,T07] ( 8, 11.50) ref -> rbx this class-hnd single-def <System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[short]>
+; V01 loc0 [V01,T24] ( 4, 5.50) int -> r15
; V02 loc1 [V02,T01] ( 13, 32 ) ref -> r14 class-hnd single-def <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[short],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]]>
-;* V03 loc2 [V03,T35] ( 0, 0 ) int -> zero-ref
+;* V03 loc2 [V03,T30] ( 0, 0 ) int -> zero-ref
;* V04 loc3 [V04 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[short],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]>
; V05 loc4 [V05 ] ( 2, 8 ) ubyte -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
-; V06 loc5 [V06,T29] ( 2, 6 ) short -> [rbp-0x34] spill-single-def
+; V06 loc5 [V06,T22] ( 2, 6 ) short -> [rbp-0x34] spill-single-def
;* V07 loc6 [V07 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[short],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]>
;* V08 loc7 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]>
;* V09 loc8 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]>
;* V10 loc9 [V10 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[short],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]>
-; V11 loc10 [V11,T34] ( 4, 1.50) ref -> [rbp-0x50] class-hnd EH-live spill-single-def <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
+; V11 loc10 [V11,T29] ( 4, 1.50) ref -> [rbp-0xA0] class-hnd EH-live spill-single-def <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
; V12 loc11 [V12 ] ( 5, 4 ) ubyte -> [rbp-0x40] do-not-enreg[X] addr-exposed ld-addr-op
-;* V13 loc12 [V13 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[short],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]]>
+; V13 loc12 [V13 ] ( 8, 17 ) struct (40) [rbp-0x68] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[short],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]]>
;* V14 loc13 [V14 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[short],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]>
;# V15 OutArgs [V15 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V16 tmp1 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Threading.Tasks.Dataflow.ISourceBlock`1[short]>
;* V17 tmp2 [V17 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.Tasks.Dataflow.DataflowMessageHeader>
;* V18 tmp3 [V18 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.Tasks.Dataflow.DataflowMessageHeader>
-; V19 tmp4 [V19,T00] ( 11, 44 ) ref -> [rbp-0x58] class-hnd spill-single-def "impAppendStmt" <System.Collections.Generic.Queue`1[short]>
-; V20 tmp5 [V20,T32] ( 3, 3 ) ref -> rsi class-hnd single-def "dup spill" <System.Threading.Tasks.Dataflow.Internal.BoundingState>
+; V19 tmp4 [V19,T00] ( 11, 44 ) ref -> r13 class-hnd "impAppendStmt" <System.Collections.Generic.Queue`1[short]>
+; V20 tmp5 [V20,T27] ( 3, 3 ) ref -> rdi class-hnd single-def "dup spill" <System.Threading.Tasks.Dataflow.Internal.BoundingState>
;* V21 tmp6 [V21 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[short],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]>
;* V22 tmp7 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
;* V23 tmp8 [V23 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]>
;* V24 tmp9 [V24 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[short],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]>
-;* V25 tmp10 [V25 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[short],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]]>
+; V25 tmp10 [V25,T25] ( 2, 4 ) struct (40) [rbp-0x90] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[short],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]]>
;* V26 tmp11 [V26 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-; V27 tmp12 [V27,T12] ( 3, 12 ) byref -> rcx "Inlining Arg"
-; V28 tmp13 [V28,T24] ( 4, 8 ) int -> rdx "Inline stloc first use temp"
-;* V29 tmp14 [V29,T25] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V30 tmp15 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[short],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]]>
-;* V31 tmp16 [V31,T31] ( 0, 0 ) long -> zero-ref "field V08.key (fldOffset=0x0)" P-INDEP
-;* V32 tmp17 [V32 ] ( 0, 0 ) short -> zero-ref "field V08.value (fldOffset=0x8)" P-INDEP
-;* V33 tmp18 [V33 ] ( 0, 0 ) long -> zero-ref "field V09.key (fldOffset=0x0)" P-INDEP
-;* V34 tmp19 [V34 ] ( 0, 0 ) short -> zero-ref "field V09.value (fldOffset=0x8)" P-INDEP
-;* V35 tmp20 [V35 ] ( 0, 0 ) long -> zero-ref "field V17._id (fldOffset=0x0)" P-INDEP
-;* V36 tmp21 [V36 ] ( 0, 0 ) long -> zero-ref "field V18._id (fldOffset=0x0)" P-INDEP
-;* V37 tmp22 [V37 ] ( 0, 0 ) long -> zero-ref "field V23.key (fldOffset=0x0)" P-INDEP
-;* V38 tmp23 [V38 ] ( 0, 0 ) short -> zero-ref "field V23.value (fldOffset=0x8)" P-INDEP
-; V39 tmp24 [V39,T20] ( 3, 10 ) ref -> [rbp-0x60] spill-single-def "V04.[000..008)"
-; V40 tmp25 [V40,T10] ( 3, 10 ) long -> [rbp-0x48] spill-single-def "V04.[008..016)"
-;* V41 tmp26 [V41 ] ( 0, 0 ) short -> zero-ref "V04.[016..018)"
-;* V42 tmp27 [V42 ] ( 0, 0 ) ref -> zero-ref "V10.[000..008)"
-;* V43 tmp28 [V43 ] ( 0, 0 ) long -> zero-ref "V10.[008..016)"
-;* V44 tmp29 [V44 ] ( 0, 0 ) short -> zero-ref "V10.[016..018)"
-; V45 tmp30 [V45,T08] ( 4, 17 ) ref -> r14 single-def "V13.[000..008)"
-; V46 tmp31 [V46,T03] ( 6, 21 ) int -> r13 "V13.[008..012)"
-; V47 tmp32 [V47,T23] ( 2, 9 ) int -> r15 "V13.[012..016)"
-; V48 tmp33 [V48,T13] ( 2, 8 ) ref -> rdi "V13.[016..024)"
-;* V49 tmp34 [V49 ] ( 0, 0 ) long -> zero-ref "V13.[024..032)"
-; V50 tmp35 [V50,T21] ( 2, 6 ) short -> r12 "V13.[032..034)"
-;* V51 tmp36 [V51 ] ( 0, 0 ) ref -> zero-ref "V14.[000..008)"
-;* V52 tmp37 [V52 ] ( 0, 0 ) long -> zero-ref "V14.[008..016)"
-;* V53 tmp38 [V53 ] ( 0, 0 ) short -> zero-ref "V14.[016..018)"
-;* V54 tmp39 [V54 ] ( 0, 0 ) ref -> zero-ref single-def "V25.[000..008)"
-;* V55 tmp40 [V55 ] ( 0, 0 ) int -> zero-ref "V25.[008..012)"
-; V56 tmp41 [V56,T33] ( 2, 2 ) int -> r15 "V25.[012..016)"
-;* V57 tmp42 [V57 ] ( 0, 0 ) ref -> zero-ref single-def "V25.[016..024)"
-;* V58 tmp43 [V58 ] ( 0, 0 ) long -> zero-ref "V25.[024..032)"
-;* V59 tmp44 [V59 ] ( 0, 0 ) short -> zero-ref "V25.[032..034)"
-;* V60 tmp45 [V60 ] ( 0, 0 ) ref -> zero-ref "V24.[000..008)"
-;* V61 tmp46 [V61 ] ( 0, 0 ) long -> zero-ref "V24.[008..016)"
-;* V62 tmp47 [V62 ] ( 0, 0 ) short -> zero-ref "V24.[016..018)"
-; V63 tmp48 [V63,T04] ( 3, 24 ) byref -> rcx "Spilling address for field-by-field copy"
-; V64 tmp49 [V64,T09] ( 4, 16 ) byref -> r12 "Spilling address for field-by-field copy"
-; V65 tmp50 [V65,T05] ( 3, 24 ) byref -> rsi "Spilling address for field-by-field copy"
-; V66 tmp51 [V66,T06] ( 3, 24 ) ref -> rdx "arr expr"
-;* V67 tmp52 [V67,T26] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V68 tmp53 [V68,T14] ( 3, 12 ) ref -> rdi "arr expr"
-; V69 tmp54 [V69,T07] ( 3, 24 ) ref -> rsi "arr expr"
-; V70 tmp55 [V70,T15] ( 3, 12 ) ref -> rcx "arr expr"
-; V71 tmp56 [V71,T18] ( 3, 12 ) int -> rdx "index expr"
-; V72 PSPSym [V72,T36] ( 1, 1 ) long -> [rbp-0x70] do-not-enreg[V] "PSPSym"
-; V73 cse0 [V73,T16] ( 3, 12 ) byref -> rdx "CSE #05: moderate"
-; V74 cse1 [V74,T22] ( 3, 10 ) long -> r12 "CSE #04: moderate"
-; V75 cse2 [V75,T17] ( 2, 8 ) ref -> rdx "CSE #01: moderate"
-; V76 cse3 [V76,T19] ( 2, 8 ) int -> rsi "CSE #11: moderate"
-; V77 cse4 [V77,T28] ( 3, 6 ) int -> rsi "CSE #08: moderate"
-; V78 cse5 [V78,T27] ( 3, 6 ) ref -> rdi "CSE #09: moderate"
-; V79 rat0 [V79,T02] ( 9, 29 ) long -> r13 "Widened IV V03"
+; V27 tmp12 [V27,T08] ( 3, 12 ) byref -> rsi "Inlining Arg"
+; V28 tmp13 [V28,T16] ( 4, 8 ) int -> rax "Inline stloc first use temp"
+;* V29 tmp14 [V29,T26] ( 0, 0 ) long -> zero-ref "field V08.key (fldOffset=0x0)" P-INDEP
+;* V30 tmp15 [V30 ] ( 0, 0 ) short -> zero-ref "field V08.value (fldOffset=0x8)" P-INDEP
+;* V31 tmp16 [V31 ] ( 0, 0 ) long -> zero-ref "field V09.key (fldOffset=0x0)" P-INDEP
+;* V32 tmp17 [V32 ] ( 0, 0 ) short -> zero-ref "field V09.value (fldOffset=0x8)" P-INDEP
+;* V33 tmp18 [V33 ] ( 0, 0 ) long -> zero-ref "field V17._id (fldOffset=0x0)" P-INDEP
+;* V34 tmp19 [V34 ] ( 0, 0 ) long -> zero-ref "field V18._id (fldOffset=0x0)" P-INDEP
+;* V35 tmp20 [V35 ] ( 0, 0 ) long -> zero-ref "field V23.key (fldOffset=0x0)" P-INDEP
+;* V36 tmp21 [V36 ] ( 0, 0 ) short -> zero-ref "field V23.value (fldOffset=0x8)" P-INDEP
+; V37 tmp22 [V37,T14] ( 3, 10 ) ref -> [rbp-0xA8] spill-single-def "V04.[000..008)"
+; V38 tmp23 [V38,T06] ( 3, 10 ) long -> [rbp-0x98] spill-single-def "V04.[008..016)"
+;* V39 tmp24 [V39 ] ( 0, 0 ) short -> zero-ref "V04.[016..018)"
+;* V40 tmp25 [V40 ] ( 0, 0 ) ref -> zero-ref "V10.[000..008)"
+;* V41 tmp26 [V41 ] ( 0, 0 ) long -> zero-ref "V10.[008..016)"
+;* V42 tmp27 [V42 ] ( 0, 0 ) short -> zero-ref "V10.[016..018)"
+; V43 tmp28 [V43,T17] ( 2, 8 ) ref -> rsi "V14.[000..008)"
+;* V44 tmp29 [V44 ] ( 0, 0 ) long -> zero-ref "V14.[008..016)"
+; V45 tmp30 [V45,T23] ( 2, 6 ) short -> r14 "V14.[016..018)"
+;* V46 tmp31 [V46 ] ( 0, 0 ) ref -> zero-ref single-def "V25.[000..008)"
+;* V47 tmp32 [V47 ] ( 0, 0 ) int -> zero-ref "V25.[008..012)"
+; V48 tmp33 [V48,T28] ( 2, 2 ) int -> rdi "V25.[012..016)"
+;* V49 tmp34 [V49 ] ( 0, 0 ) ref -> zero-ref "V24.[000..008)"
+;* V50 tmp35 [V50 ] ( 0, 0 ) long -> zero-ref "V24.[008..016)"
+;* V51 tmp36 [V51 ] ( 0, 0 ) short -> zero-ref "V24.[016..018)"
+; V52 tmp37 [V52,T03] ( 3, 24 ) byref -> rcx "Spilling address for field-by-field copy"
+; V53 tmp38 [V53,T05] ( 4, 16 ) byref -> r12 "Spilling address for field-by-field copy"
+; V54 tmp39 [V54,T04] ( 3, 24 ) ref -> rdx "arr expr"
+;* V55 tmp40 [V55,T18] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V56 tmp41 [V56,T09] ( 3, 12 ) ref -> rdi "arr expr"
+; V57 tmp42 [V57,T10] ( 3, 12 ) ref -> rsi "arr expr"
+; V58 tmp43 [V58,T13] ( 3, 12 ) int -> rax "index expr"
+; V59 PSPSym [V59,T31] ( 1, 1 ) long -> [rbp-0xB0] do-not-enreg[V] "PSPSym"
+; V60 cse0 [V60,T11] ( 3, 12 ) byref -> rdx "CSE #05: moderate"
+; V61 cse1 [V61,T15] ( 3, 10 ) long -> r12 "CSE #04: moderate"
+; V62 cse2 [V62,T12] ( 2, 8 ) ref -> rdx "CSE #01: moderate"
+; V63 cse3 [V63,T20] ( 3, 6 ) int -> rsi "CSE #08: moderate"
+; V64 cse4 [V64,T19] ( 3, 6 ) ref -> rdi "CSE #09: moderate"
+; V65 cse5 [V65,T21] ( 3, 6 ) long -> r15 "CSE #10: moderate"
+; V66 rat0 [V66,T02] ( 9, 29 ) long -> r13 "Widened IV V03"
;
-; Lcl frame size = 72
+; Lcl frame size = 136
G_M8549_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 72
- lea rbp, [rsp+0x70]
- mov qword ptr [rbp-0x70], rsp
+ sub rsp, 136
+ lea rbp, [rsp+0xB0]
+ vxorps xmm8, xmm8, xmm8
+ vmovdqu ymmword ptr [rbp-0x90], ymm8
+ vmovdqu ymmword ptr [rbp-0x70], ymm8
+ vmovdqa xmmword ptr [rbp-0x50], xmm8
+ mov qword ptr [rbp-0xB0], rsp
mov rbx, rdi
- ;; size=26 bbWeight=1 PerfScore 8.00
+ ;; size=58 bbWeight=1 PerfScore 14.33
G_M8549_IG02:
xor r15d, r15d
mov rdx, gword ptr [rbx+0x20]
mov r14, gword ptr [rdx+0x18]
xor r13d, r13d
cmp dword ptr [r14+0x10], 0
jle G_M8549_IG06
;; size=25 bbWeight=1 PerfScore 8.50
G_M8549_IG03:
cmp r13d, dword ptr [r14+0x10]
- jae G_M8549_IG23
+ jae G_M8549_IG25
mov rdx, gword ptr [r14+0x08]
cmp r13d, dword ptr [rdx+0x08]
- jae G_M8549_IG22
+ jae G_M8549_IG24
lea r12, [r13+2*r13]
lea rdx, bword ptr [rdx+8*r12+0x10]
mov rcx, rdx
mov rax, gword ptr [rcx]
- mov gword ptr [rbp-0x60], rax
+ mov gword ptr [rbp-0xA8], rax
mov r8, qword ptr [rcx+0x08]
- mov qword ptr [rbp-0x48], r8
+ mov qword ptr [rbp-0x98], r8
xor ecx, ecx
mov qword ptr [rdx], rcx
mov qword ptr [rdx+0x08], rcx
mov qword ptr [rdx+0x10], rcx
inc dword ptr [r14+0x14]
mov rdx, gword ptr [rbx+0x18]
lea rcx, [rbp-0x30]
mov rdi, rax
mov rsi, r8
mov r11, 0xD1FFAB1E ; code for System.Threading.Tasks.Dataflow.ISourceBlock`1[short]:ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[short],byref):short:this
call [r11]System.Threading.Tasks.Dataflow.ISourceBlock`1[short]:ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[short],byref):short:this
mov dword ptr [rbp-0x34], eax
cmp byte ptr [rbp-0x30], 0
je SHORT G_M8549_IG05
- ;; size=105 bbWeight=4 PerfScore 143.00
+ ;; size=111 bbWeight=4 PerfScore 143.00
G_M8549_IG04:
cmp r13d, dword ptr [r14+0x10]
- jae G_M8549_IG23
+ jae G_M8549_IG25
mov rdi, gword ptr [r14+0x08]
cmp r13d, dword ptr [rdi+0x08]
- jae G_M8549_IG22
+ jae G_M8549_IG24
lea r12, bword ptr [rdi+8*r12+0x10]
- mov rsi, gword ptr [rbp-0x60]
+ mov rsi, gword ptr [rbp-0xA8]
mov rdi, r12
call CORINFO_HELP_ASSIGN_REF
- mov rsi, qword ptr [rbp-0x48]
+ mov rsi, qword ptr [rbp-0x98]
mov qword ptr [r12+0x08], rsi
mov esi, dword ptr [rbp-0x34]
mov word ptr [r12+0x10], si
inc dword ptr [r14+0x14]
inc r15d
- ;; size=66 bbWeight=2 PerfScore 41.00
+ ;; size=72 bbWeight=2 PerfScore 41.00
G_M8549_IG05:
inc r13d
cmp r13d, dword ptr [r14+0x10]
jl G_M8549_IG03
;; size=13 bbWeight=4 PerfScore 17.00
G_M8549_IG06:
mov rdi, gword ptr [rbx+0x10]
- mov gword ptr [rbp-0x50], rdi
+ mov gword ptr [rbp-0xA0], rdi
xor esi, esi
mov dword ptr [rbp-0x40], esi
- ;; size=13 bbWeight=1 PerfScore 4.25
+ ;; size=16 bbWeight=1 PerfScore 4.25
G_M8549_IG07:
cmp byte ptr [rbp-0x40], 0
- jne G_M8549_IG15
+ jne SHORT G_M8549_IG13
lea rsi, [rbp-0x40]
call System.Threading.Monitor:ReliableEnter(System.Object,byref)
cmp gword ptr [rbx+0x28], 0
je SHORT G_M8549_IG09
- ;; size=26 bbWeight=1 PerfScore 8.50
+ ;; size=22 bbWeight=1 PerfScore 8.50
G_M8549_IG08:
- mov rsi, gword ptr [rbx+0x28]
- add dword ptr [rsi+0x0C], r15d
+ mov rdi, gword ptr [rbx+0x28]
+ add dword ptr [rdi+0x0C], r15d
;; size=8 bbWeight=0.50 PerfScore 2.50
G_M8549_IG09:
- mov r15d, dword ptr [r14+0x14]
- xor r13d, r13d
- ;; size=7 bbWeight=1 PerfScore 2.25
+ mov edi, dword ptr [r14+0x14]
+ vxorps xmm0, xmm0, xmm0
+ vmovdqu xmmword ptr [rbp-0x80], xmm0
+ vmovdqu xmmword ptr [rbp-0x78], xmm0
+ ;; size=18 bbWeight=1 PerfScore 4.33
G_M8549_IG10:
- cmp r15d, dword ptr [r14+0x14]
- jne G_M8549_IG17
- ;; size=10 bbWeight=8 PerfScore 32.00
+ vmovdqu ymm0, ymmword ptr [rbp-0x90]
+ vmovdqu ymmword ptr [rbp-0x68], ymm0
+ mov rsi, qword ptr [rbp-0x70]
+ mov qword ptr [rbp-0x48], rsi
+ ;; size=21 bbWeight=1 PerfScore 7.00
G_M8549_IG11:
- mov esi, dword ptr [r14+0x10]
- cmp r13d, esi
- jae G_M8549_IG18
- mov rsi, gword ptr [r14+0x08]
- cmp r13d, dword ptr [rsi+0x08]
- jae G_M8549_IG16
- mov edi, r13d
- lea rdi, [rdi+2*rdi]
- lea rsi, bword ptr [rsi+8*rdi+0x10]
- mov rdi, gword ptr [rsi]
- movsx r12, word ptr [rsi+0x10]
- inc r13d
- test rdi, rdi
- je SHORT G_M8549_IG10
- ;; size=55 bbWeight=4 PerfScore 74.00
+ mov gword ptr [rbp-0x68], r14
+ xor esi, esi
+ mov dword ptr [rbp-0x60], esi
+ mov dword ptr [rbp-0x5C], edi
+ jmp SHORT G_M8549_IG14
+ ;; size=14 bbWeight=1 PerfScore 5.25
G_M8549_IG12:
- mov rax, gword ptr [rbx+0x08]
- mov gword ptr [rbp-0x58], rax
- mov esi, dword ptr [rax+0x18]
- mov rdi, gword ptr [rax+0x08]
- cmp esi, dword ptr [rdi+0x08]
- jne SHORT G_M8549_IG13
- inc esi
- mov rdi, rax
- mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.Queue`1[short]:Grow(int):this
- call [rcx]System.Collections.Generic.Queue`1[short]:Grow(int):this
- mov rax, gword ptr [rbp-0x58]
- ;; size=41 bbWeight=2 PerfScore 31.50
+ call CORINFO_HELP_RNGCHKFAIL
+ int3
+ ;; size=6 bbWeight=0 PerfScore 0.00
G_M8549_IG13:
- mov rdi, gword ptr [rax+0x08]
- mov rcx, rdi
- mov edx, dword ptr [rax+0x14]
- cmp edx, dword ptr [rcx+0x08]
- jae SHORT G_M8549_IG16
- mov word ptr [rcx+2*rdx+0x10], r12w
- lea rcx, bword ptr [rax+0x14]
- mov edx, dword ptr [rcx]
- inc edx
- cmp dword ptr [rdi+0x08], edx
- jne SHORT G_M8549_IG14
- xor edx, edx
- ;; size=36 bbWeight=2 PerfScore 32.50
-G_M8549_IG14:
- mov dword ptr [rcx], edx
- inc dword ptr [rax+0x18]
- inc dword ptr [rax+0x1C]
- jmp G_M8549_IG10
- ;; size=13 bbWeight=2 PerfScore 18.00
-G_M8549_IG15:
mov rax, 0xD1FFAB1E ; code for System.Threading.Monitor:ThrowLockTakenException()
call [rax]System.Threading.Monitor:ThrowLockTakenException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
+G_M8549_IG14:
+ lea rdi, [rbp-0x68]
+ mov r15, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[short],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M8549_IG20
+ ;; size=33 bbWeight=1 PerfScore 5.50
+G_M8549_IG15:
+ mov rsi, gword ptr [rbp-0x58]
+ movsx r14, word ptr [rbp-0x48]
+ test rsi, rsi
+ je SHORT G_M8549_IG19
+ ;; size=14 bbWeight=4 PerfScore 21.00
G_M8549_IG16:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
+ mov r13, gword ptr [rbx+0x08]
+ mov esi, dword ptr [r13+0x18]
+ mov rdi, gword ptr [r13+0x08]
+ cmp esi, dword ptr [rdi+0x08]
+ jne SHORT G_M8549_IG17
+ inc esi
+ mov rdi, r13
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Queue`1[short]:Grow(int):this
+ call [rax]System.Collections.Generic.Queue`1[short]:Grow(int):this
+ ;; size=34 bbWeight=2 PerfScore 27.50
G_M8549_IG17:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ mov rdi, gword ptr [r13+0x08]
+ mov rsi, rdi
+ mov eax, dword ptr [r13+0x14]
+ cmp eax, dword ptr [rsi+0x08]
+ jae SHORT G_M8549_IG12
+ mov word ptr [rsi+2*rax+0x10], r14w
+ lea rsi, bword ptr [r13+0x14]
+ mov eax, dword ptr [rsi]
+ inc eax
+ cmp dword ptr [rdi+0x08], eax
+ jne SHORT G_M8549_IG18
+ xor eax, eax
+ ;; size=37 bbWeight=2 PerfScore 32.50
G_M8549_IG18:
+ mov dword ptr [rsi], eax
+ inc dword ptr [r13+0x18]
+ inc dword ptr [r13+0x1C]
+ ;; size=10 bbWeight=2 PerfScore 14.00
+G_M8549_IG19:
+ lea rdi, [rbp-0x68]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,short]]]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M8549_IG15
+ ;; size=23 bbWeight=4 PerfScore 21.00
+G_M8549_IG20:
cmp byte ptr [rbp-0x40], 0
- je SHORT G_M8549_IG20
+ je SHORT G_M8549_IG22
;; size=6 bbWeight=1 PerfScore 3.00
-G_M8549_IG19:
- mov rdi, gword ptr [rbp-0x50]
+G_M8549_IG21:
+ mov rdi, gword ptr [rbp-0xA0]
call System.Threading.Monitor:Exit(System.Object)
- ;; size=9 bbWeight=0.50 PerfScore 1.00
-G_M8549_IG20:
+ ;; size=12 bbWeight=0.50 PerfScore 1.00
+G_M8549_IG22:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M8549_IG21:
- add rsp, 72
+G_M8549_IG23:
+ vzeroupper
+ add rsp, 136
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=1 PerfScore 4.25
-G_M8549_IG22:
+ ;; size=21 bbWeight=1 PerfScore 5.25
+G_M8549_IG24:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M8549_IG23:
+G_M8549_IG25:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M8549_IG24:
+G_M8549_IG26:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
- lea rbp, [rbp+0x70]
- ;; size=22 bbWeight=0 PerfScore 0.00
-G_M8549_IG25:
+ lea rbp, [rbp+0xB0]
+ ;; size=25 bbWeight=0 PerfScore 0.00
+G_M8549_IG27:
cmp byte ptr [rbp-0x40], 0
- je SHORT G_M8549_IG26
- mov rdi, gword ptr [rbp-0x50]
+ je SHORT G_M8549_IG28
+ mov rdi, gword ptr [rbp-0xA0]
call System.Threading.Monitor:Exit(System.Object)
- ;; size=15 bbWeight=0 PerfScore 0.00
-G_M8549_IG26:
+ ;; size=18 bbWeight=0 PerfScore 0.00
+G_M8549_IG28:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M8549_IG27:
+G_M8549_IG29:
+ vzeroupper
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 579, prolog size 26, PerfScore 431.50, instruction count 166, allocated bytes for code 579 (MethodHash=6db8de9a) for method System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[short]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
+; Total bytes of code 669, prolog size 58, PerfScore 386.67, instruction count 178, allocated bytes for code 669 (MethodHash=6db8de9a) for method System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[short]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
90 (15.60 % of base) - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[ubyte]:ConsumeReservedMessagesGreedyBounded():this
; Assembly listing for method System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[ubyte]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 17 single block inlinees; 8 inlinees without PGO data
+; 0 inlinees with PGO data; 17 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T11] ( 8, 11.50) ref -> rbx this class-hnd single-def <System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[ubyte]>
-; V01 loc0 [V01,T30] ( 4, 5.50) int -> r15
+; V00 this [V00,T07] ( 8, 11.50) ref -> rbx this class-hnd single-def <System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[ubyte]>
+; V01 loc0 [V01,T24] ( 4, 5.50) int -> r15
; V02 loc1 [V02,T01] ( 13, 32 ) ref -> r14 class-hnd single-def <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]]>
-;* V03 loc2 [V03,T35] ( 0, 0 ) int -> zero-ref
+;* V03 loc2 [V03,T30] ( 0, 0 ) int -> zero-ref
;* V04 loc3 [V04 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]>
; V05 loc4 [V05 ] ( 2, 8 ) ubyte -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
-; V06 loc5 [V06,T29] ( 2, 6 ) ubyte -> [rbp-0x34] spill-single-def
+; V06 loc5 [V06,T22] ( 2, 6 ) ubyte -> [rbp-0x34] spill-single-def
;* V07 loc6 [V07 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]>
;* V08 loc7 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]>
;* V09 loc8 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]>
;* V10 loc9 [V10 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]>
-; V11 loc10 [V11,T34] ( 4, 1.50) ref -> [rbp-0x50] class-hnd EH-live spill-single-def <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
+; V11 loc10 [V11,T29] ( 4, 1.50) ref -> [rbp-0xA0] class-hnd EH-live spill-single-def <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
; V12 loc11 [V12 ] ( 5, 4 ) ubyte -> [rbp-0x40] do-not-enreg[X] addr-exposed ld-addr-op
-;* V13 loc12 [V13 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]]>
+; V13 loc12 [V13 ] ( 8, 17 ) struct (40) [rbp-0x68] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]]>
;* V14 loc13 [V14 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]>
;# V15 OutArgs [V15 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V16 tmp1 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte]>
;* V17 tmp2 [V17 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.Tasks.Dataflow.DataflowMessageHeader>
;* V18 tmp3 [V18 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.Tasks.Dataflow.DataflowMessageHeader>
-; V19 tmp4 [V19,T00] ( 11, 44 ) ref -> [rbp-0x58] class-hnd spill-single-def "impAppendStmt" <System.Collections.Generic.Queue`1[ubyte]>
-; V20 tmp5 [V20,T32] ( 3, 3 ) ref -> rsi class-hnd single-def "dup spill" <System.Threading.Tasks.Dataflow.Internal.BoundingState>
+; V19 tmp4 [V19,T00] ( 11, 44 ) ref -> r13 class-hnd "impAppendStmt" <System.Collections.Generic.Queue`1[ubyte]>
+; V20 tmp5 [V20,T27] ( 3, 3 ) ref -> rdi class-hnd single-def "dup spill" <System.Threading.Tasks.Dataflow.Internal.BoundingState>
;* V21 tmp6 [V21 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]>
;* V22 tmp7 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
;* V23 tmp8 [V23 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]>
;* V24 tmp9 [V24 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]>
-;* V25 tmp10 [V25 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]]>
+; V25 tmp10 [V25,T25] ( 2, 4 ) struct (40) [rbp-0x90] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]]>
;* V26 tmp11 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V27 tmp12 [V27,T12] ( 3, 12 ) byref -> rcx "Inlining Arg"
-; V28 tmp13 [V28,T24] ( 4, 8 ) int -> rdx "Inline stloc first use temp"
-;* V29 tmp14 [V29,T25] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V30 tmp15 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]]>
-;* V31 tmp16 [V31,T31] ( 0, 0 ) long -> zero-ref "field V08.key (fldOffset=0x0)" P-INDEP
-;* V32 tmp17 [V32 ] ( 0, 0 ) ubyte -> zero-ref "field V08.value (fldOffset=0x8)" P-INDEP
-;* V33 tmp18 [V33 ] ( 0, 0 ) long -> zero-ref "field V09.key (fldOffset=0x0)" P-INDEP
-;* V34 tmp19 [V34 ] ( 0, 0 ) ubyte -> zero-ref "field V09.value (fldOffset=0x8)" P-INDEP
-;* V35 tmp20 [V35 ] ( 0, 0 ) long -> zero-ref "field V17._id (fldOffset=0x0)" P-INDEP
-;* V36 tmp21 [V36 ] ( 0, 0 ) long -> zero-ref "field V18._id (fldOffset=0x0)" P-INDEP
-;* V37 tmp22 [V37 ] ( 0, 0 ) long -> zero-ref "field V23.key (fldOffset=0x0)" P-INDEP
-;* V38 tmp23 [V38 ] ( 0, 0 ) ubyte -> zero-ref "field V23.value (fldOffset=0x8)" P-INDEP
-; V39 tmp24 [V39,T20] ( 3, 10 ) ref -> [rbp-0x60] spill-single-def "V04.[000..008)"
-; V40 tmp25 [V40,T10] ( 3, 10 ) long -> [rbp-0x48] spill-single-def "V04.[008..016)"
-;* V41 tmp26 [V41 ] ( 0, 0 ) ubyte -> zero-ref "V04.[016..017)"
-;* V42 tmp27 [V42 ] ( 0, 0 ) ref -> zero-ref "V10.[000..008)"
-;* V43 tmp28 [V43 ] ( 0, 0 ) long -> zero-ref "V10.[008..016)"
-;* V44 tmp29 [V44 ] ( 0, 0 ) ubyte -> zero-ref "V10.[016..017)"
-; V45 tmp30 [V45,T08] ( 4, 17 ) ref -> r14 single-def "V13.[000..008)"
-; V46 tmp31 [V46,T03] ( 6, 21 ) int -> r13 "V13.[008..012)"
-; V47 tmp32 [V47,T23] ( 2, 9 ) int -> r15 "V13.[012..016)"
-; V48 tmp33 [V48,T13] ( 2, 8 ) ref -> rdi "V13.[016..024)"
-;* V49 tmp34 [V49 ] ( 0, 0 ) long -> zero-ref "V13.[024..032)"
-; V50 tmp35 [V50,T21] ( 2, 6 ) ubyte -> r12 "V13.[032..033)"
-;* V51 tmp36 [V51 ] ( 0, 0 ) ref -> zero-ref "V14.[000..008)"
-;* V52 tmp37 [V52 ] ( 0, 0 ) long -> zero-ref "V14.[008..016)"
-;* V53 tmp38 [V53 ] ( 0, 0 ) ubyte -> zero-ref "V14.[016..017)"
-;* V54 tmp39 [V54 ] ( 0, 0 ) ref -> zero-ref single-def "V25.[000..008)"
-;* V55 tmp40 [V55 ] ( 0, 0 ) int -> zero-ref "V25.[008..012)"
-; V56 tmp41 [V56,T33] ( 2, 2 ) int -> r15 "V25.[012..016)"
-;* V57 tmp42 [V57 ] ( 0, 0 ) ref -> zero-ref single-def "V25.[016..024)"
-;* V58 tmp43 [V58 ] ( 0, 0 ) long -> zero-ref "V25.[024..032)"
-;* V59 tmp44 [V59 ] ( 0, 0 ) ubyte -> zero-ref "V25.[032..033)"
-;* V60 tmp45 [V60 ] ( 0, 0 ) ref -> zero-ref "V24.[000..008)"
-;* V61 tmp46 [V61 ] ( 0, 0 ) long -> zero-ref "V24.[008..016)"
-;* V62 tmp47 [V62 ] ( 0, 0 ) ubyte -> zero-ref "V24.[016..017)"
-; V63 tmp48 [V63,T04] ( 3, 24 ) byref -> rcx "Spilling address for field-by-field copy"
-; V64 tmp49 [V64,T09] ( 4, 16 ) byref -> r12 "Spilling address for field-by-field copy"
-; V65 tmp50 [V65,T05] ( 3, 24 ) byref -> rsi "Spilling address for field-by-field copy"
-; V66 tmp51 [V66,T06] ( 3, 24 ) ref -> rdx "arr expr"
-;* V67 tmp52 [V67,T26] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V68 tmp53 [V68,T14] ( 3, 12 ) ref -> rdi "arr expr"
-; V69 tmp54 [V69,T07] ( 3, 24 ) ref -> rsi "arr expr"
-; V70 tmp55 [V70,T15] ( 3, 12 ) ref -> rcx "arr expr"
-; V71 tmp56 [V71,T18] ( 3, 12 ) int -> rdx "index expr"
-; V72 PSPSym [V72,T36] ( 1, 1 ) long -> [rbp-0x70] do-not-enreg[V] "PSPSym"
-; V73 cse0 [V73,T16] ( 3, 12 ) byref -> rdx "CSE #05: moderate"
-; V74 cse1 [V74,T22] ( 3, 10 ) long -> r12 "CSE #04: moderate"
-; V75 cse2 [V75,T17] ( 2, 8 ) ref -> rdx "CSE #01: moderate"
-; V76 cse3 [V76,T19] ( 2, 8 ) int -> rsi "CSE #11: moderate"
-; V77 cse4 [V77,T28] ( 3, 6 ) int -> rsi "CSE #08: moderate"
-; V78 cse5 [V78,T27] ( 3, 6 ) ref -> rdi "CSE #09: moderate"
-; V79 rat0 [V79,T02] ( 9, 29 ) long -> r13 "Widened IV V03"
+; V27 tmp12 [V27,T08] ( 3, 12 ) byref -> rsi "Inlining Arg"
+; V28 tmp13 [V28,T16] ( 4, 8 ) int -> rax "Inline stloc first use temp"
+;* V29 tmp14 [V29,T26] ( 0, 0 ) long -> zero-ref "field V08.key (fldOffset=0x0)" P-INDEP
+;* V30 tmp15 [V30 ] ( 0, 0 ) ubyte -> zero-ref "field V08.value (fldOffset=0x8)" P-INDEP
+;* V31 tmp16 [V31 ] ( 0, 0 ) long -> zero-ref "field V09.key (fldOffset=0x0)" P-INDEP
+;* V32 tmp17 [V32 ] ( 0, 0 ) ubyte -> zero-ref "field V09.value (fldOffset=0x8)" P-INDEP
+;* V33 tmp18 [V33 ] ( 0, 0 ) long -> zero-ref "field V17._id (fldOffset=0x0)" P-INDEP
+;* V34 tmp19 [V34 ] ( 0, 0 ) long -> zero-ref "field V18._id (fldOffset=0x0)" P-INDEP
+;* V35 tmp20 [V35 ] ( 0, 0 ) long -> zero-ref "field V23.key (fldOffset=0x0)" P-INDEP
+;* V36 tmp21 [V36 ] ( 0, 0 ) ubyte -> zero-ref "field V23.value (fldOffset=0x8)" P-INDEP
+; V37 tmp22 [V37,T14] ( 3, 10 ) ref -> [rbp-0xA8] spill-single-def "V04.[000..008)"
+; V38 tmp23 [V38,T06] ( 3, 10 ) long -> [rbp-0x98] spill-single-def "V04.[008..016)"
+;* V39 tmp24 [V39 ] ( 0, 0 ) ubyte -> zero-ref "V04.[016..017)"
+;* V40 tmp25 [V40 ] ( 0, 0 ) ref -> zero-ref "V10.[000..008)"
+;* V41 tmp26 [V41 ] ( 0, 0 ) long -> zero-ref "V10.[008..016)"
+;* V42 tmp27 [V42 ] ( 0, 0 ) ubyte -> zero-ref "V10.[016..017)"
+; V43 tmp28 [V43,T17] ( 2, 8 ) ref -> rsi "V14.[000..008)"
+;* V44 tmp29 [V44 ] ( 0, 0 ) long -> zero-ref "V14.[008..016)"
+; V45 tmp30 [V45,T23] ( 2, 6 ) ubyte -> r14 "V14.[016..017)"
+;* V46 tmp31 [V46 ] ( 0, 0 ) ref -> zero-ref single-def "V25.[000..008)"
+;* V47 tmp32 [V47 ] ( 0, 0 ) int -> zero-ref "V25.[008..012)"
+; V48 tmp33 [V48,T28] ( 2, 2 ) int -> rdi "V25.[012..016)"
+;* V49 tmp34 [V49 ] ( 0, 0 ) ref -> zero-ref "V24.[000..008)"
+;* V50 tmp35 [V50 ] ( 0, 0 ) long -> zero-ref "V24.[008..016)"
+;* V51 tmp36 [V51 ] ( 0, 0 ) ubyte -> zero-ref "V24.[016..017)"
+; V52 tmp37 [V52,T03] ( 3, 24 ) byref -> rcx "Spilling address for field-by-field copy"
+; V53 tmp38 [V53,T05] ( 4, 16 ) byref -> r12 "Spilling address for field-by-field copy"
+; V54 tmp39 [V54,T04] ( 3, 24 ) ref -> rdx "arr expr"
+;* V55 tmp40 [V55,T18] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V56 tmp41 [V56,T09] ( 3, 12 ) ref -> rdi "arr expr"
+; V57 tmp42 [V57,T10] ( 3, 12 ) ref -> rsi "arr expr"
+; V58 tmp43 [V58,T13] ( 3, 12 ) int -> rax "index expr"
+; V59 PSPSym [V59,T31] ( 1, 1 ) long -> [rbp-0xB0] do-not-enreg[V] "PSPSym"
+; V60 cse0 [V60,T11] ( 3, 12 ) byref -> rdx "CSE #05: moderate"
+; V61 cse1 [V61,T15] ( 3, 10 ) long -> r12 "CSE #04: moderate"
+; V62 cse2 [V62,T12] ( 2, 8 ) ref -> rdx "CSE #01: moderate"
+; V63 cse3 [V63,T20] ( 3, 6 ) int -> rsi "CSE #08: moderate"
+; V64 cse4 [V64,T19] ( 3, 6 ) ref -> rdi "CSE #09: moderate"
+; V65 cse5 [V65,T21] ( 3, 6 ) long -> r15 "CSE #10: moderate"
+; V66 rat0 [V66,T02] ( 9, 29 ) long -> r13 "Widened IV V03"
;
-; Lcl frame size = 72
+; Lcl frame size = 136
G_M47816_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 72
- lea rbp, [rsp+0x70]
- mov qword ptr [rbp-0x70], rsp
+ sub rsp, 136
+ lea rbp, [rsp+0xB0]
+ vxorps xmm8, xmm8, xmm8
+ vmovdqu ymmword ptr [rbp-0x90], ymm8
+ vmovdqu ymmword ptr [rbp-0x70], ymm8
+ vmovdqa xmmword ptr [rbp-0x50], xmm8
+ mov qword ptr [rbp-0xB0], rsp
mov rbx, rdi
- ;; size=26 bbWeight=1 PerfScore 8.00
+ ;; size=58 bbWeight=1 PerfScore 14.33
G_M47816_IG02:
xor r15d, r15d
mov rdx, gword ptr [rbx+0x20]
mov r14, gword ptr [rdx+0x18]
xor r13d, r13d
cmp dword ptr [r14+0x10], 0
jle G_M47816_IG06
;; size=25 bbWeight=1 PerfScore 8.50
G_M47816_IG03:
cmp r13d, dword ptr [r14+0x10]
- jae G_M47816_IG23
+ jae G_M47816_IG25
mov rdx, gword ptr [r14+0x08]
cmp r13d, dword ptr [rdx+0x08]
- jae G_M47816_IG22
+ jae G_M47816_IG24
lea r12, [r13+2*r13]
lea rdx, bword ptr [rdx+8*r12+0x10]
mov rcx, rdx
mov rax, gword ptr [rcx]
- mov gword ptr [rbp-0x60], rax
+ mov gword ptr [rbp-0xA8], rax
mov r8, qword ptr [rcx+0x08]
- mov qword ptr [rbp-0x48], r8
+ mov qword ptr [rbp-0x98], r8
xor ecx, ecx
mov qword ptr [rdx], rcx
mov qword ptr [rdx+0x08], rcx
mov qword ptr [rdx+0x10], rcx
inc dword ptr [r14+0x14]
mov rdx, gword ptr [rbx+0x18]
lea rcx, [rbp-0x30]
mov rdi, rax
mov rsi, r8
mov r11, 0xD1FFAB1E ; code for System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte]:ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[ubyte],byref):ubyte:this
call [r11]System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte]:ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[ubyte],byref):ubyte:this
mov dword ptr [rbp-0x34], eax
cmp byte ptr [rbp-0x30], 0
je SHORT G_M47816_IG05
- ;; size=105 bbWeight=4 PerfScore 143.00
+ ;; size=111 bbWeight=4 PerfScore 143.00
G_M47816_IG04:
cmp r13d, dword ptr [r14+0x10]
- jae G_M47816_IG23
+ jae G_M47816_IG25
mov rdi, gword ptr [r14+0x08]
cmp r13d, dword ptr [rdi+0x08]
- jae G_M47816_IG22
+ jae G_M47816_IG24
lea r12, bword ptr [rdi+8*r12+0x10]
- mov rsi, gword ptr [rbp-0x60]
+ mov rsi, gword ptr [rbp-0xA8]
mov rdi, r12
call CORINFO_HELP_ASSIGN_REF
- mov rsi, qword ptr [rbp-0x48]
+ mov rsi, qword ptr [rbp-0x98]
mov qword ptr [r12+0x08], rsi
mov esi, dword ptr [rbp-0x34]
mov byte ptr [r12+0x10], sil
inc dword ptr [r14+0x14]
inc r15d
- ;; size=65 bbWeight=2 PerfScore 41.00
+ ;; size=71 bbWeight=2 PerfScore 41.00
G_M47816_IG05:
inc r13d
cmp r13d, dword ptr [r14+0x10]
jl G_M47816_IG03
;; size=13 bbWeight=4 PerfScore 17.00
G_M47816_IG06:
mov rdi, gword ptr [rbx+0x10]
- mov gword ptr [rbp-0x50], rdi
+ mov gword ptr [rbp-0xA0], rdi
xor esi, esi
mov dword ptr [rbp-0x40], esi
- ;; size=13 bbWeight=1 PerfScore 4.25
+ ;; size=16 bbWeight=1 PerfScore 4.25
G_M47816_IG07:
cmp byte ptr [rbp-0x40], 0
- jne G_M47816_IG15
+ jne SHORT G_M47816_IG13
lea rsi, [rbp-0x40]
call System.Threading.Monitor:ReliableEnter(System.Object,byref)
cmp gword ptr [rbx+0x28], 0
je SHORT G_M47816_IG09
- ;; size=26 bbWeight=1 PerfScore 8.50
+ ;; size=22 bbWeight=1 PerfScore 8.50
G_M47816_IG08:
- mov rsi, gword ptr [rbx+0x28]
- add dword ptr [rsi+0x0C], r15d
+ mov rdi, gword ptr [rbx+0x28]
+ add dword ptr [rdi+0x0C], r15d
;; size=8 bbWeight=0.50 PerfScore 2.50
G_M47816_IG09:
- mov r15d, dword ptr [r14+0x14]
- xor r13d, r13d
- ;; size=7 bbWeight=1 PerfScore 2.25
+ mov edi, dword ptr [r14+0x14]
+ vxorps xmm0, xmm0, xmm0
+ vmovdqu xmmword ptr [rbp-0x80], xmm0
+ vmovdqu xmmword ptr [rbp-0x78], xmm0
+ ;; size=18 bbWeight=1 PerfScore 4.33
G_M47816_IG10:
- cmp r15d, dword ptr [r14+0x14]
- jne G_M47816_IG17
- ;; size=10 bbWeight=8 PerfScore 32.00
+ vmovdqu ymm0, ymmword ptr [rbp-0x90]
+ vmovdqu ymmword ptr [rbp-0x68], ymm0
+ mov rsi, qword ptr [rbp-0x70]
+ mov qword ptr [rbp-0x48], rsi
+ ;; size=21 bbWeight=1 PerfScore 7.00
G_M47816_IG11:
- mov esi, dword ptr [r14+0x10]
- cmp r13d, esi
- jae G_M47816_IG18
- mov rsi, gword ptr [r14+0x08]
- cmp r13d, dword ptr [rsi+0x08]
- jae G_M47816_IG16
- mov edi, r13d
- lea rdi, [rdi+2*rdi]
- lea rsi, bword ptr [rsi+8*rdi+0x10]
- mov rdi, gword ptr [rsi]
- movzx r12, byte ptr [rsi+0x10]
- inc r13d
- test rdi, rdi
- je SHORT G_M47816_IG10
- ;; size=55 bbWeight=4 PerfScore 66.00
+ mov gword ptr [rbp-0x68], r14
+ xor esi, esi
+ mov dword ptr [rbp-0x60], esi
+ mov dword ptr [rbp-0x5C], edi
+ jmp SHORT G_M47816_IG14
+ ;; size=14 bbWeight=1 PerfScore 5.25
G_M47816_IG12:
- mov rax, gword ptr [rbx+0x08]
- mov gword ptr [rbp-0x58], rax
- mov esi, dword ptr [rax+0x18]
- mov rdi, gword ptr [rax+0x08]
- cmp esi, dword ptr [rdi+0x08]
- jne SHORT G_M47816_IG13
- inc esi
- mov rdi, rax
- mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.Queue`1[ubyte]:Grow(int):this
- call [rcx]System.Collections.Generic.Queue`1[ubyte]:Grow(int):this
- mov rax, gword ptr [rbp-0x58]
- ;; size=41 bbWeight=2 PerfScore 31.50
+ call CORINFO_HELP_RNGCHKFAIL
+ int3
+ ;; size=6 bbWeight=0 PerfScore 0.00
G_M47816_IG13:
- mov rdi, gword ptr [rax+0x08]
- mov rcx, rdi
- mov edx, dword ptr [rax+0x14]
- cmp edx, dword ptr [rcx+0x08]
- jae SHORT G_M47816_IG16
- mov byte ptr [rcx+rdx+0x10], r12b
- lea rcx, bword ptr [rax+0x14]
- mov edx, dword ptr [rcx]
- inc edx
- cmp dword ptr [rdi+0x08], edx
- jne SHORT G_M47816_IG14
- xor edx, edx
- ;; size=35 bbWeight=2 PerfScore 32.50
-G_M47816_IG14:
- mov dword ptr [rcx], edx
- inc dword ptr [rax+0x18]
- inc dword ptr [rax+0x1C]
- jmp G_M47816_IG10
- ;; size=13 bbWeight=2 PerfScore 18.00
-G_M47816_IG15:
mov rax, 0xD1FFAB1E ; code for System.Threading.Monitor:ThrowLockTakenException()
call [rax]System.Threading.Monitor:ThrowLockTakenException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
+G_M47816_IG14:
+ lea rdi, [rbp-0x68]
+ mov r15, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]]:MoveNext():ubyte:this
+ test eax, eax
+ je SHORT G_M47816_IG20
+ ;; size=33 bbWeight=1 PerfScore 5.50
+G_M47816_IG15:
+ mov rsi, gword ptr [rbp-0x58]
+ movzx r14, byte ptr [rbp-0x48]
+ test rsi, rsi
+ je SHORT G_M47816_IG19
+ ;; size=14 bbWeight=4 PerfScore 13.00
G_M47816_IG16:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
+ mov r13, gword ptr [rbx+0x08]
+ mov esi, dword ptr [r13+0x18]
+ mov rdi, gword ptr [r13+0x08]
+ cmp esi, dword ptr [rdi+0x08]
+ jne SHORT G_M47816_IG17
+ inc esi
+ mov rdi, r13
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Queue`1[ubyte]:Grow(int):this
+ call [rax]System.Collections.Generic.Queue`1[ubyte]:Grow(int):this
+ ;; size=34 bbWeight=2 PerfScore 27.50
G_M47816_IG17:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ mov rdi, gword ptr [r13+0x08]
+ mov rsi, rdi
+ mov eax, dword ptr [r13+0x14]
+ cmp eax, dword ptr [rsi+0x08]
+ jae SHORT G_M47816_IG12
+ mov byte ptr [rsi+rax+0x10], r14b
+ lea rsi, bword ptr [r13+0x14]
+ mov eax, dword ptr [rsi]
+ inc eax
+ cmp dword ptr [rdi+0x08], eax
+ jne SHORT G_M47816_IG18
+ xor eax, eax
+ ;; size=36 bbWeight=2 PerfScore 32.50
G_M47816_IG18:
+ mov dword ptr [rsi], eax
+ inc dword ptr [r13+0x18]
+ inc dword ptr [r13+0x1C]
+ ;; size=10 bbWeight=2 PerfScore 14.00
+G_M47816_IG19:
+ lea rdi, [rbp-0x68]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.Threading.Tasks.Dataflow.DataflowMessageHeader,ubyte]]]:MoveNext():ubyte:this
+ test eax, eax
+ jne SHORT G_M47816_IG15
+ ;; size=23 bbWeight=4 PerfScore 21.00
+G_M47816_IG20:
cmp byte ptr [rbp-0x40], 0
- je SHORT G_M47816_IG20
+ je SHORT G_M47816_IG22
;; size=6 bbWeight=1 PerfScore 3.00
-G_M47816_IG19:
- mov rdi, gword ptr [rbp-0x50]
+G_M47816_IG21:
+ mov rdi, gword ptr [rbp-0xA0]
call System.Threading.Monitor:Exit(System.Object)
- ;; size=9 bbWeight=0.50 PerfScore 1.00
-G_M47816_IG20:
+ ;; size=12 bbWeight=0.50 PerfScore 1.00
+G_M47816_IG22:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M47816_IG21:
- add rsp, 72
+G_M47816_IG23:
+ vzeroupper
+ add rsp, 136
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=1 PerfScore 4.25
-G_M47816_IG22:
+ ;; size=21 bbWeight=1 PerfScore 5.25
+G_M47816_IG24:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M47816_IG23:
+G_M47816_IG25:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M47816_IG24:
+G_M47816_IG26:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
- lea rbp, [rbp+0x70]
- ;; size=22 bbWeight=0 PerfScore 0.00
-G_M47816_IG25:
+ lea rbp, [rbp+0xB0]
+ ;; size=25 bbWeight=0 PerfScore 0.00
+G_M47816_IG27:
cmp byte ptr [rbp-0x40], 0
- je SHORT G_M47816_IG26
- mov rdi, gword ptr [rbp-0x50]
+ je SHORT G_M47816_IG28
+ mov rdi, gword ptr [rbp-0xA0]
call System.Threading.Monitor:Exit(System.Object)
- ;; size=15 bbWeight=0 PerfScore 0.00
-G_M47816_IG26:
+ ;; size=18 bbWeight=0 PerfScore 0.00
+G_M47816_IG28:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M47816_IG27:
+G_M47816_IG29:
+ vzeroupper
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 577, prolog size 26, PerfScore 423.50, instruction count 166, allocated bytes for code 577 (MethodHash=1cf24537) for method System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[ubyte]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
+; Total bytes of code 667, prolog size 58, PerfScore 378.67, instruction count 178, allocated bytes for code 667 (MethodHash=1cf24537) for method System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[ubyte]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
75 (6.64 % of base) - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeTypeDefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this
; Assembly listing for method System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeTypeDefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
-; fully interruptible
+; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 37 single block inlinees; 29 inlinees without PGO data
+; 0 inlinees with PGO data; 37 single block inlinees; 27 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T47] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Reflection.Metadata.Ecma335.MetadataBuilder>
-; V01 arg1 [V01,T00] ( 57,112 ) ref -> rbx class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
+; V00 this [V00,T39] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Reflection.Metadata.Ecma335.MetadataBuilder>
+; V01 arg1 [V01,T00] ( 57,120 ) ref -> rbx class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Collections.Immutable.ImmutableArray`1[int]>
-; V03 arg3 [V03,T06] ( 7, 12 ) ref -> r15 class-hnd single-def <System.Reflection.Metadata.Ecma335.MetadataSizes>
-;* V04 loc0 [V04 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow]>
+; V03 arg3 [V03,T01] ( 7, 22 ) ref -> r15 class-hnd single-def <System.Reflection.Metadata.Ecma335.MetadataSizes>
+; V04 loc0 [V04 ] ( 12, 33 ) struct (40) [rbp-0x50] do-not-enreg[XS] addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow]>
;* V05 loc1 [V05 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] <System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T46] ( 3, 6 ) ref -> r13 class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow]>
-;* V08 tmp2 [V08 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow]>
+; V07 tmp1 [V07,T38] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow]>
+; V08 tmp2 [V08,T41] ( 1, 2 ) struct (40) [rbp-0x78] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow]>
;* V09 tmp3 [V09 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V10 tmp4 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V11 tmp5 [V11,T07] ( 6, 12 ) int -> r11 "Inline stloc first use temp"
+; V11 tmp5 [V11,T03] ( 6, 22 ) int -> r9 "Inline stloc first use temp"
;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V13 tmp7 [V13 ] ( 0, 0 ) byref -> zero-ref
;* V14 tmp8 [V14 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V15 tmp9 [V15 ] ( 0, 0 ) byref -> zero-ref
;* V16 tmp10 [V16 ] ( 0, 0 ) int -> zero-ref
;* V17 tmp11 [V17 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[int]>
;* V18 tmp12 [V18 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.StringHandle>
;* V19 tmp13 [V19 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V20 tmp14 [V20,T40] ( 2, 8 ) ubyte -> rsi "Inlining Arg"
-; V21 tmp15 [V21,T34] ( 3, 12 ) int -> [rbp-0x2C] spill-single-def "Inlining Arg"
+; V20 tmp14 [V20,T07] ( 2, 16 ) ubyte -> rdi "Inlining Arg"
+; V21 tmp15 [V21,T05] ( 3, 16 ) int -> r13 "Inlining Arg"
;* V22 tmp16 [V22 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V23 tmp17 [V23 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V24 tmp18 [V24,T08] ( 6, 12 ) int -> rcx "Inline stloc first use temp"
+; V24 tmp18 [V24,T12] ( 6, 12 ) int -> r12 "Inline stloc first use temp"
;* V25 tmp19 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V26 tmp20 [V26 ] ( 0, 0 ) byref -> zero-ref
;* V27 tmp21 [V27 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V28 tmp22 [V28 ] ( 0, 0 ) byref -> zero-ref
;* V29 tmp23 [V29 ] ( 0, 0 ) int -> zero-ref
;* V30 tmp24 [V30 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V31 tmp25 [V31,T09] ( 6, 12 ) int -> rcx "Inline stloc first use temp"
+; V31 tmp25 [V31,T13] ( 6, 12 ) int -> r12 "Inline stloc first use temp"
;* V32 tmp26 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V33 tmp27 [V33 ] ( 0, 0 ) byref -> zero-ref
;* V34 tmp28 [V34 ] ( 0, 0 ) byref -> zero-ref
;* V35 tmp29 [V35 ] ( 0, 0 ) int -> zero-ref
;* V36 tmp30 [V36 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[int]>
;* V37 tmp31 [V37 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.StringHandle>
;* V38 tmp32 [V38 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V39 tmp33 [V39,T41] ( 2, 8 ) ubyte -> rsi "Inlining Arg"
-; V40 tmp34 [V40,T35] ( 3, 12 ) int -> [rbp-0x30] spill-single-def "Inlining Arg"
+; V39 tmp33 [V39,T08] ( 2, 16 ) ubyte -> rdi "Inlining Arg"
+; V40 tmp34 [V40,T06] ( 3, 16 ) int -> r13 "Inlining Arg"
;* V41 tmp35 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V42 tmp36 [V42 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V43 tmp37 [V43,T10] ( 6, 12 ) int -> rcx "Inline stloc first use temp"
+; V43 tmp37 [V43,T14] ( 6, 12 ) int -> r12 "Inline stloc first use temp"
;* V44 tmp38 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V45 tmp39 [V45 ] ( 0, 0 ) byref -> zero-ref
;* V46 tmp40 [V46 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V47 tmp41 [V47 ] ( 0, 0 ) byref -> zero-ref
;* V48 tmp42 [V48 ] ( 0, 0 ) int -> zero-ref
;* V49 tmp43 [V49 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V50 tmp44 [V50,T11] ( 6, 12 ) int -> rcx "Inline stloc first use temp"
+; V50 tmp44 [V50,T15] ( 6, 12 ) int -> r12 "Inline stloc first use temp"
;* V51 tmp45 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V52 tmp46 [V52 ] ( 0, 0 ) byref -> zero-ref
;* V53 tmp47 [V53 ] ( 0, 0 ) byref -> zero-ref
;* V54 tmp48 [V54 ] ( 0, 0 ) int -> zero-ref
-; V55 tmp49 [V55,T42] ( 2, 8 ) ubyte -> rsi "Inlining Arg"
+; V55 tmp49 [V55,T09] ( 2, 16 ) ubyte -> rdi "Inlining Arg"
;* V56 tmp50 [V56 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V57 tmp51 [V57 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V58 tmp52 [V58 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V59 tmp53 [V59,T12] ( 6, 12 ) int -> rax "Inline stloc first use temp"
+; V59 tmp53 [V59,T16] ( 6, 12 ) int -> r13 "Inline stloc first use temp"
;* V60 tmp54 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V61 tmp55 [V61 ] ( 0, 0 ) byref -> zero-ref
;* V62 tmp56 [V62 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V63 tmp57 [V63 ] ( 0, 0 ) byref -> zero-ref
;* V64 tmp58 [V64 ] ( 0, 0 ) int -> zero-ref
;* V65 tmp59 [V65 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V66 tmp60 [V66,T13] ( 6, 12 ) int -> rax "Inline stloc first use temp"
+; V66 tmp60 [V66,T17] ( 6, 12 ) int -> r13 "Inline stloc first use temp"
;* V67 tmp61 [V67 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V68 tmp62 [V68 ] ( 0, 0 ) byref -> zero-ref
;* V69 tmp63 [V69 ] ( 0, 0 ) byref -> zero-ref
;* V70 tmp64 [V70 ] ( 0, 0 ) int -> zero-ref
-; V71 tmp65 [V71,T43] ( 2, 8 ) ubyte -> rsi "Inlining Arg"
+; V71 tmp65 [V71,T10] ( 2, 16 ) ubyte -> rdi "Inlining Arg"
;* V72 tmp66 [V72 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V73 tmp67 [V73 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V74 tmp68 [V74 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V75 tmp69 [V75,T14] ( 6, 12 ) int -> rax "Inline stloc first use temp"
+; V75 tmp69 [V75,T18] ( 6, 12 ) int -> r13 "Inline stloc first use temp"
;* V76 tmp70 [V76 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V77 tmp71 [V77 ] ( 0, 0 ) byref -> zero-ref
;* V78 tmp72 [V78 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V79 tmp73 [V79 ] ( 0, 0 ) byref -> zero-ref
;* V80 tmp74 [V80 ] ( 0, 0 ) int -> zero-ref
;* V81 tmp75 [V81 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V82 tmp76 [V82,T15] ( 6, 12 ) int -> rax "Inline stloc first use temp"
+; V82 tmp76 [V82,T19] ( 6, 12 ) int -> r13 "Inline stloc first use temp"
;* V83 tmp77 [V83 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V84 tmp78 [V84 ] ( 0, 0 ) byref -> zero-ref
;* V85 tmp79 [V85 ] ( 0, 0 ) byref -> zero-ref
;* V86 tmp80 [V86 ] ( 0, 0 ) int -> zero-ref
-; V87 tmp81 [V87,T44] ( 2, 8 ) ubyte -> rsi "Inlining Arg"
+; V87 tmp81 [V87,T11] ( 2, 16 ) ubyte -> rdi "Inlining Arg"
;* V88 tmp82 [V88 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V89 tmp83 [V89 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V90 tmp84 [V90 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V91 tmp85 [V91,T16] ( 6, 12 ) int -> rax "Inline stloc first use temp"
+; V91 tmp85 [V91,T20] ( 6, 12 ) int -> r13 "Inline stloc first use temp"
;* V92 tmp86 [V92 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V93 tmp87 [V93 ] ( 0, 0 ) byref -> zero-ref
;* V94 tmp88 [V94 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V95 tmp89 [V95 ] ( 0, 0 ) byref -> zero-ref
;* V96 tmp90 [V96 ] ( 0, 0 ) int -> zero-ref
;* V97 tmp91 [V97 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V98 tmp92 [V98,T17] ( 6, 12 ) int -> rax "Inline stloc first use temp"
+; V98 tmp92 [V98,T21] ( 6, 12 ) int -> r13 "Inline stloc first use temp"
;* V99 tmp93 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V100 tmp94 [V100 ] ( 0, 0 ) byref -> zero-ref
;* V101 tmp95 [V101 ] ( 0, 0 ) byref -> zero-ref
;* V102 tmp96 [V102 ] ( 0, 0 ) int -> zero-ref
-;* V103 tmp97 [V103,T45] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V104 tmp98 [V104 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow]>
-; V105 tmp99 [V105,T37] ( 5, 9 ) ref -> r14 single-def "field V02.array (fldOffset=0x0)" P-INDEP
-;* V106 tmp100 [V106 ] ( 0, 0 ) ref -> zero-ref "field V17.array (fldOffset=0x0)" P-INDEP
-;* V107 tmp101 [V107 ] ( 0, 0 ) int -> zero-ref "field V18._value (fldOffset=0x0)" P-INDEP
-;* V108 tmp102 [V108 ] ( 0, 0 ) ref -> zero-ref "field V36.array (fldOffset=0x0)" P-INDEP
-;* V109 tmp103 [V109 ] ( 0, 0 ) int -> zero-ref "field V37._value (fldOffset=0x0)" P-INDEP
-; V110 tmp104 [V110,T04] ( 4, 17 ) ref -> r13 single-def "V04.[000..008)"
-; V111 tmp105 [V111,T02] ( 6, 21 ) int -> [rbp-0x34] "V04.[008..012)"
-; V112 tmp106 [V112,T39] ( 2, 9 ) int -> r12 "V04.[012..016)"
-; V113 tmp107 [V113,T38] ( 2, 6 ) int -> [rbp-0x38] spill-single-def "V04.[016..020)"
-; V114 tmp108 [V114,T18] ( 3, 8 ) int -> [rbp-0x3C] spill-single-def "V04.[020..024)"
-; V115 tmp109 [V115,T19] ( 3, 8 ) int -> [rbp-0x40] spill-single-def "V04.[024..028)"
-; V116 tmp110 [V116,T20] ( 3, 8 ) int -> [rbp-0x44] spill-single-def "V04.[028..032)"
-; V117 tmp111 [V117,T21] ( 3, 8 ) int -> [rbp-0x48] spill-single-def "V04.[032..036)"
-; V118 tmp112 [V118,T22] ( 3, 8 ) int -> [rbp-0x4C] spill-single-def "V04.[036..040)"
-;* V119 tmp113 [V119 ] ( 0, 0 ) int -> zero-ref "V05.[000..004)"
-;* V120 tmp114 [V120 ] ( 0, 0 ) int -> zero-ref "V05.[004..008)"
-;* V121 tmp115 [V121 ] ( 0, 0 ) int -> zero-ref "V05.[008..012)"
-;* V122 tmp116 [V122 ] ( 0, 0 ) int -> zero-ref "V05.[012..016)"
-;* V123 tmp117 [V123 ] ( 0, 0 ) int -> zero-ref "V05.[016..020)"
-;* V124 tmp118 [V124 ] ( 0, 0 ) int -> zero-ref "V05.[020..024)"
-;* V125 tmp119 [V125 ] ( 0, 0 ) ref -> zero-ref single-def "V08.[000..008)"
-;* V126 tmp120 [V126 ] ( 0, 0 ) int -> zero-ref "V08.[008..012)"
-; V127 tmp121 [V127,T48] ( 2, 2 ) int -> r12 "V08.[012..016)"
-;* V128 tmp122 [V128 ] ( 0, 0 ) int -> zero-ref "V08.[016..020)"
-;* V129 tmp123 [V129 ] ( 0, 0 ) int -> zero-ref "V08.[020..024)"
-;* V130 tmp124 [V130 ] ( 0, 0 ) int -> zero-ref "V08.[024..028)"
-;* V131 tmp125 [V131 ] ( 0, 0 ) int -> zero-ref "V08.[028..032)"
-;* V132 tmp126 [V132 ] ( 0, 0 ) int -> zero-ref "V08.[032..036)"
-;* V133 tmp127 [V133 ] ( 0, 0 ) int -> zero-ref "V08.[036..040)"
-; V134 tmp128 [V134,T01] ( 7, 56 ) byref -> rsi "Spilling address for field-by-field copy"
-; V135 tmp129 [V135,T03] ( 3, 24 ) ref -> rsi "arr expr"
-; V136 tmp130 [V136,T23] ( 3, 12 ) ref -> rsi "arr expr"
-; V137 tmp131 [V137,T24] ( 3, 12 ) ref -> rsi "arr expr"
-; V138 tmp132 [V138,T25] ( 3, 12 ) ref -> rsi "arr expr"
-; V139 tmp133 [V139,T26] ( 3, 12 ) ref -> rsi "arr expr"
-; V140 tmp134 [V140,T27] ( 3, 12 ) ref -> rsi "arr expr"
-; V141 tmp135 [V141,T28] ( 3, 12 ) ref -> rsi "arr expr"
-; V142 tmp136 [V142,T29] ( 3, 12 ) ref -> rsi "arr expr"
-; V143 tmp137 [V143,T30] ( 3, 12 ) ref -> rsi "arr expr"
-; V144 tmp138 [V144,T31] ( 3, 12 ) ref -> rsi "arr expr"
-; V145 tmp139 [V145,T32] ( 3, 12 ) ref -> rcx "arr expr"
-; V146 tmp140 [V146,T33] ( 3, 12 ) ref -> rsi "arr expr"
-; V147 cse0 [V147,T36] ( 2, 8 ) int -> rsi "CSE #20: conservative"
-; V148 cse1 [V148,T05] ( 2, 16 ) int -> rsi "CSE #19: aggressive"
+; V103 tmp97 [V103,T04] ( 5, 17 ) ref -> r14 single-def "field V02.array (fldOffset=0x0)" P-INDEP
+;* V104 tmp98 [V104 ] ( 0, 0 ) ref -> zero-ref "field V17.array (fldOffset=0x0)" P-INDEP
+;* V105 tmp99 [V105 ] ( 0, 0 ) int -> zero-ref "field V18._value (fldOffset=0x0)" P-INDEP
+;* V106 tmp100 [V106 ] ( 0, 0 ) ref -> zero-ref "field V36.array (fldOffset=0x0)" P-INDEP
+;* V107 tmp101 [V107 ] ( 0, 0 ) int -> zero-ref "field V37._value (fldOffset=0x0)" P-INDEP
+; V108 tmp102 [V108,T37] ( 2, 8 ) int -> r13 "V05.[000..004)"
+; V109 tmp103 [V109,T32] ( 3, 12 ) int -> r12 "V05.[004..008)"
+; V110 tmp104 [V110,T33] ( 3, 12 ) int -> [rbp-0x7C] spill-single-def "V05.[008..012)"
+; V111 tmp105 [V111,T34] ( 3, 8 ) int -> [rbp-0x80] spill-single-def "V05.[012..016)"
+; V112 tmp106 [V112,T35] ( 3, 8 ) int -> [rbp-0x84] spill-single-def "V05.[016..020)"
+; V113 tmp107 [V113,T36] ( 3, 8 ) int -> [rbp-0x88] spill-single-def "V05.[020..024)"
+;* V114 tmp108 [V114 ] ( 0, 0 ) ref -> zero-ref single-def "V08.[000..008)"
+;* V115 tmp109 [V115 ] ( 0, 0 ) int -> zero-ref "V08.[008..012)"
+; V116 tmp110 [V116,T40] ( 2, 2 ) int -> rax "V08.[012..016)"
+; V117 tmp111 [V117,T02] ( 3, 24 ) ref -> rdi "arr expr"
+; V118 tmp112 [V118,T22] ( 3, 12 ) ref -> rdi "arr expr"
+; V119 tmp113 [V119,T23] ( 3, 12 ) ref -> rdi "arr expr"
+; V120 tmp114 [V120,T24] ( 3, 12 ) ref -> rdi "arr expr"
+; V121 tmp115 [V121,T25] ( 3, 12 ) ref -> rdi "arr expr"
+; V122 tmp116 [V122,T26] ( 3, 12 ) ref -> rdi "arr expr"
+; V123 tmp117 [V123,T27] ( 3, 12 ) ref -> rdi "arr expr"
+; V124 tmp118 [V124,T28] ( 3, 12 ) ref -> rdi "arr expr"
+; V125 tmp119 [V125,T29] ( 3, 12 ) ref -> rdi "arr expr"
+; V126 tmp120 [V126,T30] ( 3, 12 ) ref -> rdi "arr expr"
+; V127 tmp121 [V127,T31] ( 3, 12 ) ref -> rdi "arr expr"
;
-; Lcl frame size = 40
+; Lcl frame size = 104
G_M13357_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 40
- lea rbp, [rsp+0x50]
+ 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
mov rbx, rsi
mov r14, rdx
mov r15, rcx
- ;; size=28 bbWeight=1 PerfScore 7.50
+ ;; size=47 bbWeight=1 PerfScore 11.08
G_M13357_IG02:
- mov r13, gword ptr [rdi+0xF0]
- mov r12d, dword ptr [r13+0x14]
- xor edi, edi
- jmp G_M13357_IG24
- ;; size=18 bbWeight=1 PerfScore 6.25
+ mov rdi, gword ptr [rdi+0xF0]
+ mov eax, dword ptr [rdi+0x14]
+ ;; size=10 bbWeight=1 PerfScore 4.00
G_M13357_IG03:
- mov r11d, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -4
- movsxd rsi, esi
- mov eax, r11d
- cmp rsi, rax
- jge SHORT G_M13357_IG04
- mov rdi, rbx
- mov esi, 4
- mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor r11d, r11d
- ;; size=48 bbWeight=2 PerfScore 24.00
+ vmovdqu ymm0, ymmword ptr [rbp-0x78]
+ vmovdqu ymmword ptr [rbp-0x50], ymm0
+ mov rcx, qword ptr [rbp-0x58]
+ mov qword ptr [rbp-0x30], rcx
+ ;; size=18 bbWeight=1 PerfScore 7.00
G_M13357_IG04:
- lea esi, [r11+0x04]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp r11d, dword ptr [rsi+0x08]
- jae G_M13357_IG27
- mov eax, r11d
- mov r11d, dword ptr [rbp-0x38]
- mov dword ptr [rsi+rax+0x10], r11d
- mov ecx, dword ptr [rbp-0x3C]
- mov esi, ecx
- and esi, 0xD1FFAB1E
- cmp esi, dword ptr [r14+0x08]
- jae G_M13357_IG27
- and ecx, 0xD1FFAB1E
- mov esi, ecx
- mov eax, dword ptr [r14+4*rsi+0x10]
- mov dword ptr [rbp-0x2C], eax
- movzx rsi, byte ptr [r15+0x2B]
- test esi, esi
- je SHORT G_M13357_IG06
- mov ecx, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -2
- movsxd rsi, esi
- mov r11d, ecx
- cmp rsi, r11
- jge SHORT G_M13357_IG05
- mov rdi, rbx
- mov esi, 2
- mov rcx, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rcx]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor ecx, ecx
- ;; size=125 bbWeight=2 PerfScore 68.00
+ mov gword ptr [rbp-0x50], rdi
+ xor edi, edi
+ mov dword ptr [rbp-0x48], edi
+ mov dword ptr [rbp-0x44], eax
+ lea rdi, [rbp-0x50]
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow]:MoveNext():ubyte:this
+ test eax, eax
+ je G_M13357_IG33
+ ;; size=36 bbWeight=1 PerfScore 8.25
G_M13357_IG05:
- lea esi, [rcx+0x02]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp ecx, dword ptr [rsi+0x08]
- jae G_M13357_IG27
- mov ecx, ecx
- mov eax, dword ptr [rbp-0x2C]
- mov word ptr [rsi+rcx+0x10], ax
- jmp SHORT G_M13357_IG08
- ;; size=31 bbWeight=2 PerfScore 23.50
-G_M13357_IG06:
- mov ecx, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -4
- movsxd rsi, esi
- mov r11d, ecx
- cmp rsi, r11
+ mov r13d, dword ptr [rbp-0x40]
+ mov r12d, dword ptr [rbp-0x3C]
+ mov eax, dword ptr [rbp-0x38]
+ mov dword ptr [rbp-0x7C], eax
+ mov ecx, dword ptr [rbp-0x34]
+ mov dword ptr [rbp-0x80], ecx
+ mov edx, dword ptr [rbp-0x30]
+ mov dword ptr [rbp-0x84], edx
+ mov r8d, dword ptr [rbp-0x2C]
+ mov dword ptr [rbp-0x88], r8d
+ mov r9d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -4
+ movsxd rdi, edi
+ mov esi, r9d
+ cmp rdi, rsi
jge SHORT G_M13357_IG07
+ ;; size=65 bbWeight=4 PerfScore 72.00
+G_M13357_IG06:
mov rdi, rbx
mov esi, 4
- mov rcx, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rcx]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor ecx, ecx
- ;; size=46 bbWeight=2 PerfScore 24.00
+ mov r9, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [r9]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r9d, r9d
+ ;; size=24 bbWeight=2 PerfScore 8.00
G_M13357_IG07:
- lea esi, [rcx+0x04]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp ecx, dword ptr [rsi+0x08]
- jae G_M13357_IG27
- mov ecx, ecx
- mov eax, dword ptr [rbp-0x2C]
- mov dword ptr [rsi+rcx+0x10], eax
- ;; size=28 bbWeight=2 PerfScore 19.50
-G_M13357_IG08:
- mov edx, dword ptr [rbp-0x40]
- mov esi, edx
- and esi, 0xD1FFAB1E
- cmp esi, dword ptr [r14+0x08]
- jae G_M13357_IG27
- and edx, 0xD1FFAB1E
- mov esi, edx
- mov eax, dword ptr [r14+4*rsi+0x10]
- mov dword ptr [rbp-0x30], eax
- movzx rsi, byte ptr [r15+0x2B]
- test esi, esi
+ lea edi, [r9+0x04]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r9d, dword ptr [rdi+0x08]
+ jae G_M13357_IG34
+ mov esi, r9d
+ mov dword ptr [rdi+rsi+0x10], r13d
+ mov edi, r12d
+ and edi, 0xD1FFAB1E
+ cmp edi, dword ptr [r14+0x08]
+ jae G_M13357_IG34
+ and r12d, 0xD1FFAB1E
+ mov edi, r12d
+ mov r13d, dword ptr [r14+4*rdi+0x10]
+ movzx rdi, byte ptr [r15+0x2B]
+ test edi, edi
je SHORT G_M13357_IG10
- mov ecx, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -2
- movsxd rsi, esi
- mov edx, ecx
- cmp rsi, rdx
+ ;; size=72 bbWeight=4 PerfScore 76.00
+G_M13357_IG08:
+ mov r12d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -2
+ movsxd rdi, edi
+ mov esi, r12d
+ cmp rdi, rsi
jge SHORT G_M13357_IG09
mov rdi, rbx
mov esi, 2
- mov rcx, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rcx]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor ecx, ecx
- ;; size=91 bbWeight=2 PerfScore 48.50
+ mov r9, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [r9]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r12d, r12d
+ ;; size=49 bbWeight=2 PerfScore 24.00
G_M13357_IG09:
- lea esi, [rcx+0x02]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp ecx, dword ptr [rsi+0x08]
- jae G_M13357_IG27
- mov ecx, ecx
- mov eax, dword ptr [rbp-0x30]
- mov word ptr [rsi+rcx+0x10], ax
+ lea edi, [r12+0x02]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r12d, dword ptr [rdi+0x08]
+ jae G_M13357_IG34
+ mov esi, r12d
+ mov word ptr [rdi+rsi+0x10], r13w
jmp SHORT G_M13357_IG12
- ;; size=31 bbWeight=2 PerfScore 23.50
+ ;; size=33 bbWeight=2 PerfScore 21.50
G_M13357_IG10:
- mov ecx, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -4
- movsxd rsi, esi
- mov edx, ecx
- cmp rsi, rdx
+ mov r12d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -4
+ movsxd rdi, edi
+ mov esi, r12d
+ cmp rdi, rsi
jge SHORT G_M13357_IG11
mov rdi, rbx
mov esi, 4
- mov rcx, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rcx]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor ecx, ecx
- ;; size=45 bbWeight=2 PerfScore 24.00
+ mov r9, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [r9]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r12d, r12d
+ ;; size=49 bbWeight=2 PerfScore 24.00
G_M13357_IG11:
- lea esi, [rcx+0x04]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp ecx, dword ptr [rsi+0x08]
- jae G_M13357_IG27
- mov ecx, ecx
- mov eax, dword ptr [rbp-0x30]
- mov dword ptr [rsi+rcx+0x10], eax
- ;; size=28 bbWeight=2 PerfScore 19.50
+ lea edi, [r12+0x04]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r12d, dword ptr [rdi+0x08]
+ jae G_M13357_IG34
+ mov esi, r12d
+ mov dword ptr [rdi+rsi+0x10], r13d
+ ;; size=30 bbWeight=2 PerfScore 17.50
G_M13357_IG12:
- movzx rsi, byte ptr [r15+0x40]
- test esi, esi
- je SHORT G_M13357_IG14
- mov eax, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -2
- movsxd rsi, esi
- mov ecx, eax
- cmp rsi, rcx
- jge SHORT G_M13357_IG13
+ mov eax, dword ptr [rbp-0x7C]
+ mov edi, eax
+ and edi, 0xD1FFAB1E
+ cmp edi, dword ptr [r14+0x08]
+ jae G_M13357_IG34
+ and eax, 0xD1FFAB1E
+ mov edi, eax
+ mov r13d, dword ptr [r14+4*rdi+0x10]
+ movzx rdi, byte ptr [r15+0x2B]
+ test edi, edi
+ je SHORT G_M13357_IG15
+ ;; size=42 bbWeight=4 PerfScore 45.00
+G_M13357_IG13:
+ mov r12d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -2
+ movsxd rdi, edi
+ mov esi, r12d
+ cmp rdi, rsi
+ jge SHORT G_M13357_IG14
mov rdi, rbx
mov esi, 2
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor eax, eax
- ;; size=54 bbWeight=2 PerfScore 30.50
-G_M13357_IG13:
- lea esi, [rax+0x02]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp eax, dword ptr [rsi+0x08]
- jae G_M13357_IG27
- mov eax, eax
- mov r8d, dword ptr [rbp-0x44]
- mov word ptr [rsi+rax+0x10], r8w
- jmp SHORT G_M13357_IG16
- ;; size=33 bbWeight=2 PerfScore 23.50
+ xor r12d, r12d
+ ;; size=48 bbWeight=2 PerfScore 24.00
G_M13357_IG14:
- mov eax, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -4
- movsxd rsi, esi
- mov ecx, eax
- cmp rsi, rcx
- jge SHORT G_M13357_IG15
+ lea edi, [r12+0x02]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r12d, dword ptr [rdi+0x08]
+ jae G_M13357_IG34
+ mov esi, r12d
+ mov word ptr [rdi+rsi+0x10], r13w
+ jmp SHORT G_M13357_IG17
+ ;; size=33 bbWeight=2 PerfScore 21.50
+G_M13357_IG15:
+ mov r12d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -4
+ movsxd rdi, edi
+ mov esi, r12d
+ cmp rdi, rsi
+ jge SHORT G_M13357_IG16
mov rdi, rbx
mov esi, 4
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor eax, eax
- ;; size=45 bbWeight=2 PerfScore 24.00
-G_M13357_IG15:
- lea esi, [rax+0x04]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp eax, dword ptr [rsi+0x08]
- jae G_M13357_IG27
- mov eax, eax
- mov r8d, dword ptr [rbp-0x44]
- mov dword ptr [rsi+rax+0x10], r8d
- ;; size=30 bbWeight=2 PerfScore 19.50
+ xor r12d, r12d
+ ;; size=48 bbWeight=2 PerfScore 24.00
G_M13357_IG16:
- movzx rsi, byte ptr [r15+0x30]
- test esi, esi
- je SHORT G_M13357_IG18
- mov eax, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -2
- movsxd rsi, esi
- mov ecx, eax
- cmp rsi, rcx
- jge SHORT G_M13357_IG17
- mov rdi, rbx
- mov esi, 2
- mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
- call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor eax, eax
- ;; size=54 bbWeight=2 PerfScore 30.50
+ lea edi, [r12+0x04]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r12d, dword ptr [rdi+0x08]
+ jae G_M13357_IG34
+ mov esi, r12d
+ mov dword ptr [rdi+rsi+0x10], r13d
+ ;; size=30 bbWeight=2 PerfScore 17.50
G_M13357_IG17:
- lea esi, [rax+0x02]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp eax, dword ptr [rsi+0x08]
- jae G_M13357_IG27
- mov eax, eax
- mov r9d, dword ptr [rbp-0x48]
- mov word ptr [rsi+rax+0x10], r9w
- jmp SHORT G_M13357_IG20
- ;; size=33 bbWeight=2 PerfScore 23.50
+ movzx rdi, byte ptr [r15+0x40]
+ test edi, edi
+ je SHORT G_M13357_IG20
+ ;; size=9 bbWeight=4 PerfScore 13.00
G_M13357_IG18:
- mov eax, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -4
- movsxd rsi, esi
- mov ecx, eax
- cmp rsi, rcx
+ mov r13d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -2
+ movsxd rdi, edi
+ mov esi, r13d
+ cmp rdi, rsi
jge SHORT G_M13357_IG19
mov rdi, rbx
- mov esi, 4
+ mov esi, 2
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor eax, eax
- ;; size=45 bbWeight=2 PerfScore 24.00
+ xor r13d, r13d
+ ;; size=48 bbWeight=2 PerfScore 24.00
G_M13357_IG19:
- lea esi, [rax+0x04]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp eax, dword ptr [rsi+0x08]
- jae G_M13357_IG27
- mov eax, eax
- mov r9d, dword ptr [rbp-0x48]
- mov dword ptr [rsi+rax+0x10], r9d
- ;; size=30 bbWeight=2 PerfScore 19.50
+ lea edi, [r13+0x02]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r13d, dword ptr [rdi+0x08]
+ jae G_M13357_IG34
+ mov esi, r13d
+ mov ecx, dword ptr [rbp-0x80]
+ mov word ptr [rdi+rsi+0x10], cx
+ jmp SHORT G_M13357_IG22
+ ;; size=34 bbWeight=2 PerfScore 23.50
G_M13357_IG20:
- movzx rsi, byte ptr [r15+0x39]
- test esi, esi
- je SHORT G_M13357_IG22
- mov eax, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -2
- movsxd rsi, esi
- mov ecx, eax
- cmp rsi, rcx
+ mov r13d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -4
+ movsxd rdi, edi
+ mov esi, r13d
+ cmp rdi, rsi
jge SHORT G_M13357_IG21
mov rdi, rbx
- mov esi, 2
+ mov esi, 4
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor eax, eax
- ;; size=54 bbWeight=2 PerfScore 30.50
+ xor r13d, r13d
+ ;; size=48 bbWeight=2 PerfScore 24.00
G_M13357_IG21:
- lea esi, [rax+0x02]
- mov dword ptr [rbx+0x1C], esi
- mov rsi, gword ptr [rbx+0x10]
- cmp eax, dword ptr [rsi+0x08]
- jae G_M13357_IG27
- mov eax, eax
- mov r10d, dword ptr [rbp-0x4C]
- mov word ptr [rsi+rax+0x10], r10w
- mov edi, dword ptr [rbp-0x34]
- jmp SHORT G_M13357_IG24
- ;; size=36 bbWeight=2 PerfScore 25.50
+ lea edi, [r13+0x04]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r13d, dword ptr [rdi+0x08]
+ jae G_M13357_IG34
+ mov esi, r13d
+ mov ecx, dword ptr [rbp-0x80]
+ mov dword ptr [rdi+rsi+0x10], ecx
+ ;; size=31 bbWeight=2 PerfScore 19.50
G_M13357_IG22:
- mov eax, dword ptr [rbx+0x1C]
- mov rsi, gword ptr [rbx+0x10]
- mov esi, dword ptr [rsi+0x08]
- add esi, -4
- movsxd rsi, esi
- mov ecx, eax
- cmp rsi, rcx
- jge SHORT G_M13357_IG23
+ movzx rdi, byte ptr [r15+0x30]
+ test edi, edi
+ je SHORT G_M13357_IG25
+ ;; size=9 bbWeight=4 PerfScore 13.00
+G_M13357_IG23:
+ mov r13d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -2
+ movsxd rdi, edi
+ mov esi, r13d
+ cmp rdi, rsi
+ jge SHORT G_M13357_IG24
mov rdi, rbx
- mov esi, 4
+ mov esi, 2
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
- xor eax, eax
- ;; size=45 bbWeight=2 PerfScore 24.00
-G_M13357_IG23:
- lea ecx, [rax+0x04]
- mov dword ptr [rbx+0x1C], ecx
- mov rcx, gword ptr [rbx+0x10]
- cmp eax, dword ptr [rcx+0x08]
- jae SHORT G_M13357_IG27
- mov eax, eax
- mov r10d, dword ptr [rbp-0x4C]
- mov dword ptr [rcx+rax+0x10], r10d
- mov edi, dword ptr [rbp-0x34]
- ;; size=29 bbWeight=2 PerfScore 21.50
+ xor r13d, r13d
+ ;; size=48 bbWeight=2 PerfScore 24.00
G_M13357_IG24:
- mov esi, dword ptr [r13+0x14]
- cmp r12d, esi
- jne SHORT G_M13357_IG28
- ;; size=9 bbWeight=8 PerfScore 26.00
+ lea edi, [r13+0x02]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r13d, dword ptr [rdi+0x08]
+ jae G_M13357_IG34
+ mov esi, r13d
+ mov edx, dword ptr [rbp-0x84]
+ mov word ptr [rdi+rsi+0x10], dx
+ jmp SHORT G_M13357_IG27
+ ;; size=37 bbWeight=2 PerfScore 23.50
G_M13357_IG25:
- mov esi, dword ptr [r13+0x10]
- cmp edi, esi
- jae SHORT G_M13357_IG26
- mov rsi, gword ptr [r13+0x08]
- cmp edi, dword ptr [rsi+0x08]
- jae SHORT G_M13357_IG27
- mov eax, edi
- lea rax, [rax+2*rax]
- lea rsi, bword ptr [rsi+8*rax+0x10]
- mov eax, dword ptr [rsi]
- mov dword ptr [rbp-0x38], eax
- mov ecx, dword ptr [rsi+0x04]
- mov dword ptr [rbp-0x3C], ecx
- mov edx, dword ptr [rsi+0x08]
- mov dword ptr [rbp-0x40], edx
- mov r8d, dword ptr [rsi+0x0C]
- mov dword ptr [rbp-0x44], r8d
- mov r9d, dword ptr [rsi+0x10]
- mov dword ptr [rbp-0x48], r9d
- mov r10d, dword ptr [rsi+0x14]
- mov dword ptr [rbp-0x4C], r10d
- inc edi
- mov dword ptr [rbp-0x34], edi
- jmp G_M13357_IG03
- ;; size=79 bbWeight=4 PerfScore 129.00
+ mov r13d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -4
+ movsxd rdi, edi
+ mov esi, r13d
+ cmp rdi, rsi
+ jge SHORT G_M13357_IG26
+ mov rdi, rbx
+ mov esi, 4
+ mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r13d, r13d
+ ;; size=48 bbWeight=2 PerfScore 24.00
G_M13357_IG26:
- add rsp, 40
+ lea edi, [r13+0x04]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r13d, dword ptr [rdi+0x08]
+ jae G_M13357_IG34
+ mov esi, r13d
+ mov edx, dword ptr [rbp-0x84]
+ mov dword ptr [rdi+rsi+0x10], edx
+ ;; size=34 bbWeight=2 PerfScore 19.50
+G_M13357_IG27:
+ movzx rdi, byte ptr [r15+0x39]
+ test edi, edi
+ je SHORT G_M13357_IG30
+ ;; size=9 bbWeight=4 PerfScore 13.00
+G_M13357_IG28:
+ mov r13d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -2
+ movsxd rdi, edi
+ mov esi, r13d
+ cmp rdi, rsi
+ jge SHORT G_M13357_IG29
+ mov rdi, rbx
+ mov esi, 2
+ mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r13d, r13d
+ ;; size=48 bbWeight=2 PerfScore 24.00
+G_M13357_IG29:
+ lea edi, [r13+0x02]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r13d, dword ptr [rdi+0x08]
+ jae G_M13357_IG34
+ mov esi, r13d
+ mov r8d, dword ptr [rbp-0x88]
+ mov word ptr [rdi+rsi+0x10], r8w
+ jmp SHORT G_M13357_IG32
+ ;; size=39 bbWeight=2 PerfScore 23.50
+G_M13357_IG30:
+ mov r13d, dword ptr [rbx+0x1C]
+ mov rdi, gword ptr [rbx+0x10]
+ mov edi, dword ptr [rdi+0x08]
+ add edi, -4
+ movsxd rdi, edi
+ mov esi, r13d
+ cmp rdi, rsi
+ jge SHORT G_M13357_IG31
+ mov rdi, rbx
+ mov esi, 4
+ mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
+ xor r13d, r13d
+ ;; size=48 bbWeight=2 PerfScore 24.00
+G_M13357_IG31:
+ lea edi, [r13+0x04]
+ mov dword ptr [rbx+0x1C], edi
+ mov rdi, gword ptr [rbx+0x10]
+ cmp r13d, dword ptr [rdi+0x08]
+ jae SHORT G_M13357_IG34
+ mov eax, r13d
+ mov r8d, dword ptr [rbp-0x88]
+ mov dword ptr [rdi+rax+0x10], r8d
+ ;; size=32 bbWeight=2 PerfScore 19.50
+G_M13357_IG32:
+ lea rdi, [rbp-0x50]
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.Reflection.Metadata.Ecma335.MetadataBuilder+TypeDefRow]:MoveNext():ubyte:this
+ test eax, eax
+ jne G_M13357_IG05
+ ;; size=24 bbWeight=4 PerfScore 20.00
+G_M13357_IG33:
+ vzeroupper
+ add rsp, 104
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=4 PerfScore 17.00
-G_M13357_IG27:
+ ;; size=18 bbWeight=1 PerfScore 5.25
+G_M13357_IG34:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M13357_IG28:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1129, prolog size 28, PerfScore 756.75, instruction count 326, allocated bytes for code 1129 (MethodHash=ef4bcbd2) for method System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeTypeDefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
+; Total bytes of code 1204, prolog size 38, PerfScore 742.58, instruction count 317, allocated bytes for code 1204 (MethodHash=ef4bcbd2) for method System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeTypeDefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
72 (9.80 % of base) - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[double]:CreateNewCapturingTransition(int,int,int):System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]][]:this
; Assembly listing for method System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[double]:CreateNewCapturingTransition(int,int,int):System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]][]:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 10 single block inlinees; 5 inlinees without PGO data
+; 0 inlinees with PGO data; 10 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T05] ( 14, 13.50) ref -> [rbp-0x40] this class-hnd EH-live single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[double]>
-; V01 arg1 [V01,T21] ( 4, 3 ) int -> r14 single-def
-; V02 arg2 [V02,T18] ( 6, 4 ) int -> r15 single-def
-; V03 arg3 [V03,T07] ( 6, 12 ) int -> rbx single-def
-;* V04 loc0 [V04,T38] ( 0, 0 ) ref -> zero-ref class-hnd exact EH-live single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[double]>
+; V00 this [V00,T02] ( 14, 12.50) ref -> [rbp-0x78] this class-hnd EH-live single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[double]>
+; V01 arg1 [V01,T14] ( 4, 3 ) int -> r14 single-def
+; V02 arg2 [V02,T10] ( 6, 4 ) int -> r15 single-def
+; V03 arg3 [V03,T06] ( 6, 6 ) int -> rbx single-def
+;* V04 loc0 [V04,T32] ( 0, 0 ) ref -> zero-ref class-hnd exact EH-live single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[double]>
; V05 loc1 [V05 ] ( 5, 4 ) ubyte -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
-; V06 loc2 [V06,T13] ( 5, 11 ) ref -> r13 class-hnd <System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]][]>
-; V07 loc3 [V07,T33] ( 2, 1 ) ref -> rdx class-hnd exact single-def <System.Text.RegularExpressions.Symbolic.MatchingState`1[double]>
+; V06 loc2 [V06,T13] ( 5, 5 ) ref -> r13 class-hnd <System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]][]>
+; V07 loc3 [V07,T26] ( 2, 1 ) ref -> rdx class-hnd exact single-def <System.Text.RegularExpressions.Symbolic.MatchingState`1[double]>
;* V08 loc4 [V08 ] ( 0, 0 ) double -> zero-ref
-; V09 loc5 [V09,T29] ( 3, 3 ) int -> r13
-; V10 loc6 [V10,T31] ( 3, 1.50) ref -> r15 class-hnd single-def <System.Collections.Generic.List`1[System.ValueTuple`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]>
-; V11 loc7 [V11,T14] ( 3, 6.50) ref -> r14 class-hnd exact single-def <System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]>
-;* V12 loc8 [V12 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.ValueTuple`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]>
+; V09 loc5 [V09,T15] ( 3, 5 ) int -> r13
+; V10 loc6 [V10,T24] ( 3, 1.50) ref -> r15 class-hnd single-def <System.Collections.Generic.List`1[System.ValueTuple`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]>
+; V11 loc7 [V11,T05] ( 3, 5.50) ref -> r14 class-hnd exact single-def <System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]>
+; V12 loc8 [V12 ] ( 8, 14.50) struct (32) [rbp-0x50] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.ValueTuple`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]>
;* V13 loc9 [V13 ] ( 0, 0 ) struct (16) zero-ref <System.ValueTuple`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]>
;* V14 loc10 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]][]>
; V15 OutArgs [V15 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V16 tmp1 [V16,T25] ( 3, 3 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]>
+; V16 tmp1 [V16,T18] ( 3, 3 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]>
;* V17 tmp2 [V17 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]>
-; V18 tmp3 [V18,T06] ( 2, 16 ) ref -> rax class-hnd "dup spill" <System.Action`2[int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]>
+; V18 tmp3 [V18,T01] ( 2, 16 ) ref -> rcx class-hnd "dup spill" <System.Action`2[int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]>
;* V19 tmp4 [V19 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]>
;* V20 tmp5 [V20 ] ( 0, 0 ) ref -> zero-ref
;* V21 tmp6 [V21 ] ( 0, 0 ) ref -> zero-ref
;* V22 tmp7 [V22 ] ( 0, 0 ) int -> zero-ref
;* V23 tmp8 [V23 ] ( 0, 0 ) struct (16) zero-ref <System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]>
-; V24 tmp9 [V24,T09] ( 4, 12 ) ref -> rax
-; V25 tmp10 [V25,T04] ( 5, 20 ) ref -> [rbp-0x48] class-hnd exact spill-single-def "NewObj constructor temp" <System.Action`2[int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]>
+; V24 tmp9 [V24,T03] ( 4, 14 ) ref -> rcx
+; V25 tmp10 [V25,T00] ( 5, 20 ) ref -> [rbp-0x80] class-hnd exact spill-single-def "NewObj constructor temp" <System.Action`2[int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]>
;* V26 tmp11 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[double]>
-; V27 tmp12 [V27,T30] ( 3, 3 ) int -> rsi "Inlining Arg"
+; V27 tmp12 [V27,T22] ( 3, 3 ) int -> rsi "Inlining Arg"
;* V28 tmp13 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[double]>
-; V29 tmp14 [V29,T37] ( 3, 1.50) double -> mm0 "Inline return value spill temp"
-; V30 tmp15 [V30,T32] ( 3, 1.50) ref -> rsi class-hnd single-def "Inline stloc first use temp" <double[]>
-;* V31 tmp16 [V31 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.ValueTuple`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]>
+; V29 tmp14 [V29,T31] ( 3, 1.50) double -> mm0 "Inline return value spill temp"
+; V30 tmp15 [V30,T25] ( 3, 1.50) ref -> rsi class-hnd single-def "Inline stloc first use temp" <double[]>
+; V31 tmp16 [V31,T23] ( 2, 2 ) struct (32) [rbp-0x70] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.ValueTuple`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]>
;* V32 tmp17 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
-; V33 tmp18 [V33,T10] ( 3, 12 ) ref -> rsi class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[double]>
-;* V34 tmp19 [V34,T16] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V35 tmp20 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.ValueTuple`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]>
-;* V36 tmp21 [V36 ] ( 0, 0 ) ref -> zero-ref "field V13.Item1 (fldOffset=0x0)" P-INDEP
-;* V37 tmp22 [V37 ] ( 0, 0 ) ref -> zero-ref "field V13.Item2 (fldOffset=0x8)" P-INDEP
-;* V38 tmp23 [V38,T23] ( 0, 0 ) ref -> zero-ref "field V17.Item1 (fldOffset=0x0)" P-INDEP
-; V39 tmp24 [V39,T20] ( 2, 6 ) ref -> [rbp-0x50] spill-single-def "field V17.Item2 (fldOffset=0x8)" P-INDEP
-;* V40 tmp25 [V40 ] ( 0, 0 ) ref -> zero-ref "field V19.Item1 (fldOffset=0x0)" P-INDEP
-;* V41 tmp26 [V41 ] ( 0, 0 ) ref -> zero-ref "field V19.Item2 (fldOffset=0x8)" P-INDEP
-;* V42 tmp27 [V42 ] ( 0, 0 ) ref -> zero-ref "field V23.Item1 (fldOffset=0x0)" P-INDEP
-;* V43 tmp28 [V43 ] ( 0, 0 ) ref -> zero-ref "field V23.Item2 (fldOffset=0x8)" P-INDEP
-; V44 tmp29 [V44,T08] ( 4, 12.50) ref -> r15 single-def "V12.[000..008)"
-; V45 tmp30 [V45,T00] ( 6, 20.50) int -> [rbp-0x34] "V12.[008..012)"
-; V46 tmp31 [V46,T22] ( 2, 4.50) int -> r12 "V12.[012..016)"
-; V47 tmp32 [V47,T15] ( 2, 6 ) ref -> [rbp-0x58] spill-single-def "V12.[016..024)"
-; V48 tmp33 [V48,T11] ( 2, 8 ) ref -> rcx "V12.[024..032)"
-;* V49 tmp34 [V49 ] ( 0, 0 ) ref -> zero-ref single-def "V31.[000..008)"
-;* V50 tmp35 [V50 ] ( 0, 0 ) int -> zero-ref "V31.[008..012)"
-; V51 tmp36 [V51,T34] ( 2, 1 ) int -> r12 "V31.[012..016)"
-;* V52 tmp37 [V52 ] ( 0, 0 ) ref -> zero-ref single-def "V31.[016..024)"
-;* V53 tmp38 [V53 ] ( 0, 0 ) ref -> zero-ref single-def "V31.[024..032)"
-; V54 tmp39 [V54,T01] ( 3, 24 ) byref -> rsi "Spilling address for field-by-field copy"
-; V55 tmp40 [V55,T19] ( 3, 6 ) ref -> rsi single-def "arr expr"
-; V56 tmp41 [V56,T26] ( 3, 3 ) ref -> rsi single-def "arr expr"
-; V57 tmp42 [V57,T27] ( 3, 3 ) ref -> rdx single-def "arr expr"
-; V58 tmp43 [V58,T28] ( 3, 3 ) ref -> rsi single-def "arr expr"
-; V59 tmp44 [V59,T02] ( 3, 24 ) ref -> rsi "arr expr"
-; V60 tmp45 [V60,T03] ( 3, 24 ) ref -> rsi single-def "arr expr"
-; V61 PSPSym [V61,T36] ( 1, 1 ) long -> [rbp-0x68] do-not-enreg[V] "PSPSym"
-;* V62 cse0 [V62,T24] ( 0, 0 ) long -> zero-ref "CSE #04: moderate"
-; V63 cse1 [V63,T35] ( 2, 1 ) int -> rax "CSE #01: conservative"
-; V64 cse2 [V64,T17] ( 2, 8 ) int -> rsi "CSE #06: moderate"
-; V65 cse3 [V65,T12] ( 2, 8 ) int -> rsi "CSE #07: moderate"
+; V33 tmp18 [V33,T04] ( 3, 12 ) ref -> rsi class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[double]>
+; V34 tmp19 [V34,T07] ( 2, 8 ) ref -> r12 "field V13.Item1 (fldOffset=0x0)" P-INDEP
+; V35 tmp20 [V35,T08] ( 2, 8 ) ref -> rax "field V13.Item2 (fldOffset=0x8)" P-INDEP
+;* V36 tmp21 [V36,T17] ( 0, 0 ) ref -> zero-ref "field V17.Item1 (fldOffset=0x0)" P-INDEP
+; V37 tmp22 [V37,T09] ( 2, 8 ) ref -> [rbp-0x88] spill-single-def "field V17.Item2 (fldOffset=0x8)" P-INDEP
+;* V38 tmp23 [V38 ] ( 0, 0 ) ref -> zero-ref "field V19.Item1 (fldOffset=0x0)" P-INDEP
+;* V39 tmp24 [V39 ] ( 0, 0 ) ref -> zero-ref "field V19.Item2 (fldOffset=0x8)" P-INDEP
+;* V40 tmp25 [V40 ] ( 0, 0 ) ref -> zero-ref "field V23.Item1 (fldOffset=0x0)" P-INDEP
+;* V41 tmp26 [V41 ] ( 0, 0 ) ref -> zero-ref "field V23.Item2 (fldOffset=0x8)" P-INDEP
+;* V42 tmp27 [V42 ] ( 0, 0 ) ref -> zero-ref single-def "V31.[000..008)"
+;* V43 tmp28 [V43 ] ( 0, 0 ) int -> zero-ref "V31.[008..012)"
+; V44 tmp29 [V44,T27] ( 2, 1 ) int -> rdi "V31.[012..016)"
+; V45 tmp30 [V45,T11] ( 3, 6 ) ref -> rsi single-def "arr expr"
+; V46 tmp31 [V46,T19] ( 3, 3 ) ref -> rsi single-def "arr expr"
+; V47 tmp32 [V47,T20] ( 3, 3 ) ref -> rdx single-def "arr expr"
+; V48 tmp33 [V48,T21] ( 3, 3 ) ref -> rsi single-def "arr expr"
+; V49 tmp34 [V49,T12] ( 3, 6 ) ref -> rsi single-def "arr expr"
+; V50 PSPSym [V50,T29] ( 1, 1 ) long -> [rbp-0x98] do-not-enreg[V] "PSPSym"
+;* V51 cse0 [V51,T30] ( 0, 0 ) long -> zero-ref hoist "CSE #04: moderate"
+; V52 cse1 [V52,T28] ( 2, 1 ) int -> rax "CSE #01: conservative"
+; V53 cse2 [V53,T16] ( 3, 5 ) long -> r15 "CSE #06: moderate"
;
-; Lcl frame size = 72
+; Lcl frame size = 120
G_M28770_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 72
- lea rbp, [rsp+0x70]
- mov qword ptr [rbp-0x68], rsp
- mov gword ptr [rbp-0x40], rdi
+ sub rsp, 120
+ lea rbp, [rsp+0xA0]
+ vxorps xmm8, xmm8, xmm8
+ vmovdqu ymmword ptr [rbp-0x70], ymm8
+ vmovdqu ymmword ptr [rbp-0x50], ymm8
+ mov qword ptr [rbp-0x98], rsp
+ mov gword ptr [rbp-0x78], rdi
mov r14d, esi
mov r15d, edx
mov ebx, ecx
- ;; size=35 bbWeight=1 PerfScore 9.50
+ ;; size=56 bbWeight=1 PerfScore 13.83
G_M28770_IG02:
xor esi, esi
mov dword ptr [rbp-0x30], esi
;; size=5 bbWeight=1 PerfScore 1.25
G_M28770_IG03:
cmp byte ptr [rbp-0x30], 0
- jne G_M28770_IG10
+ jne G_M28770_IG17
lea rsi, [rbp-0x30]
call System.Threading.Monitor:ReliableEnter(System.Object,byref)
- mov rdi, gword ptr [rbp-0x40]
+ mov rdi, gword ptr [rbp-0x78]
mov rsi, gword ptr [rdi+0x40]
cmp ebx, dword ptr [rsi+0x08]
- jae G_M28770_IG12
+ jae G_M28770_IG16
mov edx, ebx
mov r13, gword ptr [rsi+8*rdx+0x10]
test r13, r13
- jne G_M28770_IG15
+ jne G_M28770_IG19
;; size=52 bbWeight=1 PerfScore 15.00
G_M28770_IG04:
mov rsi, gword ptr [rdi+0x28]
cmp r14d, dword ptr [rsi+0x08]
- jae G_M28770_IG12
+ jae G_M28770_IG16
mov edx, r14d
mov esi, dword ptr [rsi+4*rdx+0x10]
mov rdx, gword ptr [rdi+0x10]
cmp esi, dword ptr [rdx+0x08]
- jae G_M28770_IG12
+ jae G_M28770_IG16
mov rdx, gword ptr [rdx+8*rsi+0x10]
mov rsi, gword ptr [rdi+0x90]
mov eax, dword ptr [rsi+0x08]
cmp eax, r15d
- ja G_M28770_IG06
+ ja G_M28770_IG08
mov rsi, gword ptr [rdi+0x48]
vmovsd xmm0, qword ptr [rsi+0xB0]
;; size=70 bbWeight=0.50 PerfScore 13.75
G_M28770_IG05:
mov rsi, gword ptr [rdi+0x98]
lea eax, [r15+0x01]
cmp eax, dword ptr [rsi+0x08]
- jae G_M28770_IG12
+ jae G_M28770_IG16
inc r15d
mov eax, r15d
mov r13d, dword ptr [rsi+4*rax+0x10]
mov rsi, gword ptr [rdi+0x48]
mov rdi, rdx
mov edx, r13d
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Symbolic.MatchingState`1[double]:NfaNextWithEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[double],double,uint):System.Collections.Generic.List`1[System.ValueTuple`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]:this
cmp dword ptr [rdi], edi
call [rax]System.Text.RegularExpressions.Symbolic.MatchingState`1[double]:NfaNextWithEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[double],double,uint):System.Collections.Generic.List`1[System.ValueTuple`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]:this
mov r15, rax
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov rdi, 0xD1FFAB1E
mov esi, 136
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]:s_emptyArray
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [r14+0x08]
call CORINFO_HELP_ASSIGN_REF
- mov r12d, dword ptr [r15+0x14]
- xor edi, edi
- jmp SHORT G_M28770_IG07
- ;; size=126 bbWeight=0.50 PerfScore 14.50
+ mov edi, dword ptr [r15+0x14]
+ vxorps xmm0, xmm0, xmm0
+ vmovdqu xmmword ptr [rbp-0x60], xmm0
+ ;; size=131 bbWeight=0.50 PerfScore 14.04
G_M28770_IG06:
+ vmovdqu ymm0, ymmword ptr [rbp-0x70]
+ vmovdqu ymmword ptr [rbp-0x50], ymm0
+ ;; size=10 bbWeight=0.50 PerfScore 2.50
+G_M28770_IG07:
+ mov gword ptr [rbp-0x50], r15
+ xor esi, esi
+ mov dword ptr [rbp-0x48], esi
+ mov dword ptr [rbp-0x44], edi
+ jmp SHORT G_M28770_IG09
+ ;; size=14 bbWeight=0.50 PerfScore 2.62
+G_M28770_IG08:
mov eax, r15d
vmovsd xmm0, qword ptr [rsi+8*rax+0x10]
jmp G_M28770_IG05
;; size=14 bbWeight=0.50 PerfScore 3.12
-G_M28770_IG07:
- mov esi, dword ptr [r15+0x14]
- cmp r12d, esi
- jne G_M28770_IG13
- mov esi, dword ptr [r15+0x10]
- cmp edi, esi
- jae G_M28770_IG11
- mov rsi, gword ptr [r15+0x08]
- cmp edi, dword ptr [rsi+0x08]
- jae G_M28770_IG12
- mov eax, edi
- shl rax, 4
- lea rsi, bword ptr [rsi+rax+0x10]
- mov rax, gword ptr [rsi]
- mov gword ptr [rbp-0x58], rax
- mov rcx, gword ptr [rsi+0x08]
- inc edi
- mov dword ptr [rbp-0x34], edi
- mov gword ptr [rbp-0x50], rcx
+G_M28770_IG09:
+ lea rdi, [rbp-0x50]
+ mov r15, 0xD1FFAB1E ; System.Collections.Generic.List`1+Enumerator[System.ValueTuple`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.ValueTuple`2[System.__Canon,System.__Canon]]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.ValueTuple`2[System.__Canon,System.__Canon]]:MoveNext():ubyte:this
+ test eax, eax
+ je G_M28770_IG14
+ ;; size=37 bbWeight=0.50 PerfScore 2.75
+G_M28770_IG10:
mov rdi, 0xD1FFAB1E
mov esi, 156
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
+ ;; size=20 bbWeight=0.25 PerfScore 0.38
+G_M28770_IG11:
+ mov r12, gword ptr [rbp-0x40]
+ mov rax, gword ptr [rbp-0x38]
+ mov gword ptr [rbp-0x88], rax
mov rdi, 0xD1FFAB1E ; data for System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[double]:<>9__21_0
- mov rax, gword ptr [rdi]
- test rax, rax
- jne SHORT G_M28770_IG09
- ;; size=107 bbWeight=4 PerfScore 106.00
-G_M28770_IG08:
+ mov rcx, gword ptr [rdi]
+ test rcx, rcx
+ jne G_M28770_IG15
+ ;; size=37 bbWeight=4 PerfScore 26.00
+G_M28770_IG12:
mov rdi, 0xD1FFAB1E ; System.Action`2[int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x48], rax
+ mov rcx, rax
+ mov gword ptr [rbp-0x80], rcx
mov rdi, 0xD1FFAB1E ; data for System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[double]:<>9
mov rsi, gword ptr [rdi]
test rsi, rsi
- je G_M28770_IG14
- lea rdi, bword ptr [rax+0x08]
+ je G_M28770_IG18
+ lea rdi, bword ptr [rcx+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[double]:<CreateNewCapturingTransition>b__21_0(int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]):this
- mov rax, gword ptr [rbp-0x48]
- mov qword ptr [rax+0x18], rdi
+ mov rcx, gword ptr [rbp-0x80]
+ mov qword ptr [rcx+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[double]:<>9__21_0
- mov rsi, rax
+ mov rsi, rcx
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x48]
- ;; size=90 bbWeight=2 PerfScore 24.00
-G_M28770_IG09:
- mov gword ptr [rsp], rax
+ mov rcx, gword ptr [rbp-0x80]
+ mov rax, gword ptr [rbp-0x88]
+ ;; size=100 bbWeight=2 PerfScore 26.50
+G_M28770_IG13:
+ mov gword ptr [rsp], rcx
mov r8, r14
- mov r9, gword ptr [rbp-0x50]
- mov rdi, gword ptr [rbp-0x40]
- mov rdx, gword ptr [rbp-0x58]
+ mov r9, rax
+ mov rdi, gword ptr [rbp-0x78]
+ mov rdx, r12
mov ecx, r13d
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[double]:ForEachNfaState[System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],uint,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]],System.Action`2[int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]]):this
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[double]:ForEachNfaState[System.ValueTuple`2[System.__Canon,System.__Canon]](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],uint,System.ValueTuple`2[System.__Canon,System.__Canon],System.Action`2[int,System.ValueTuple`2[System.__Canon,System.__Canon]]):this
call [rax]System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[double]:ForEachNfaState[System.ValueTuple`2[System.__Canon,System.__Canon]](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],uint,System.ValueTuple`2[System.__Canon,System.__Canon],System.Action`2[int,System.ValueTuple`2[System.__Canon,System.__Canon]]):this
- mov edi, dword ptr [rbp-0x34]
- jmp G_M28770_IG07
- ;; size=52 bbWeight=2 PerfScore 22.00
-G_M28770_IG10:
- mov rax, 0xD1FFAB1E ; code for System.Threading.Monitor:ThrowLockTakenException()
- call [rax]System.Threading.Monitor:ThrowLockTakenException()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
-G_M28770_IG11:
+ lea rdi, [rbp-0x50]
+ mov rsi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.ValueTuple`2[System.__Canon,System.__Canon]]:MoveNext():ubyte:this
+ call [rax]System.Collections.Generic.List`1+Enumerator[System.ValueTuple`2[System.__Canon,System.__Canon]]:MoveNext():ubyte:this
+ test eax, eax
+ jne G_M28770_IG11
+ ;; size=69 bbWeight=4 PerfScore 47.00
+G_M28770_IG14:
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.ValueTuple`2[int,System.__Canon]]:ToArray():System.ValueTuple`2[int,System.__Canon][]:this
call [rax]System.Collections.Generic.List`1[System.ValueTuple`2[int,System.__Canon]]:ToArray():System.ValueTuple`2[int,System.__Canon][]:this
mov r13, rax
- mov rdi, gword ptr [rbp-0x40]
+ mov rdi, gword ptr [rbp-0x78]
mov rsi, gword ptr [rdi+0x40]
cmp ebx, dword ptr [rsi+0x08]
- jae SHORT G_M28770_IG12
+ jae SHORT G_M28770_IG16
mov eax, ebx
lea rdi, bword ptr [rsi+8*rax+0x10]
mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
- jmp SHORT G_M28770_IG15
- ;; size=48 bbWeight=4 PerfScore 61.00
-G_M28770_IG12:
+ mov rdi, gword ptr [rbp-0x78]
+ jmp SHORT G_M28770_IG19
+ ;; size=52 bbWeight=1 PerfScore 16.25
+G_M28770_IG15:
+ mov rax, gword ptr [rbp-0x88]
+ jmp G_M28770_IG13
+ ;; size=12 bbWeight=2 PerfScore 6.00
+G_M28770_IG16:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M28770_IG13:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
+G_M28770_IG17:
+ mov rax, 0xD1FFAB1E ; code for System.Threading.Monitor:ThrowLockTakenException()
+ call [rax]System.Threading.Monitor:ThrowLockTakenException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M28770_IG14:
+G_M28770_IG18:
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M28770_IG15:
+G_M28770_IG19:
cmp byte ptr [rbp-0x30], 0
- je SHORT G_M28770_IG17
+ je SHORT G_M28770_IG21
;; size=6 bbWeight=1 PerfScore 3.00
-G_M28770_IG16:
- mov rdi, gword ptr [rbp-0x40]
+G_M28770_IG20:
call System.Threading.Monitor:Exit(System.Object)
- ;; size=9 bbWeight=0.50 PerfScore 1.00
-G_M28770_IG17:
+ ;; size=5 bbWeight=0.50 PerfScore 0.50
+G_M28770_IG21:
mov rax, r13
;; size=3 bbWeight=1 PerfScore 0.25
-G_M28770_IG18:
- add rsp, 72
+G_M28770_IG22:
+ vzeroupper
+ add rsp, 120
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=1 PerfScore 4.25
-G_M28770_IG19:
+ ;; size=18 bbWeight=1 PerfScore 5.25
+G_M28770_IG23:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
- lea rbp, [rbp+0x70]
- ;; size=27 bbWeight=0 PerfScore 0.00
-G_M28770_IG20:
+ lea rbp, [rbp+0xA0]
+ ;; size=30 bbWeight=0 PerfScore 0.00
+G_M28770_IG24:
cmp byte ptr [rbp-0x30], 0
- je SHORT G_M28770_IG21
- mov rdi, gword ptr [rbp-0x40]
+ je SHORT G_M28770_IG25
+ mov rdi, gword ptr [rbp-0x78]
call System.Threading.Monitor:Exit(System.Object)
;; size=15 bbWeight=0 PerfScore 0.00
-G_M28770_IG21:
+G_M28770_IG25:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M28770_IG22:
+G_M28770_IG26:
+ vzeroupper
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 735, prolog size 35, PerfScore 278.62, instruction count 184, allocated bytes for code 735 (MethodHash=b1728f9d) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[double]:CreateNewCapturingTransition(int,int,int):System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]][]:this (FullOpts)
+; Total bytes of code 807, prolog size 56, PerfScore 200.00, instruction count 193, allocated bytes for code 807 (MethodHash=b1728f9d) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[double]:CreateNewCapturingTransition(int,int,int):System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]][]:this (FullOpts)