-118 (-0.64 % of base) - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this
; Assembly listing for method System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):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; 205 single block inlinees; 48 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] (531,6751 ) ref -> rbx this class-hnd single-def <System.Text.RegularExpressions.RegexInterpreter>
+; V00 this [V00,T00] (522,5738.25) ref -> rbx this class-hnd single-def <System.Text.RegularExpressions.RegexInterpreter>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
-; V02 loc0 [V02,T37] ( 4, 152 ) int -> rdi
+; V02 loc0 [V02,T44] ( 4, 104 ) int -> rdi
; V03 loc1 [V03,T50] ( 7, 159.33) int -> r13
-; V04 loc2 [V04,T206] ( 5, 64 ) int -> rax
-; V05 loc3 [V05,T349] ( 3, 48 ) int -> r13
-; V06 loc4 [V06,T272] ( 4, 56 ) int -> [rbp-0x2C] spill-single-def
-; V07 loc5 [V07,T207] ( 5, 64 ) int -> [rbp-0x30] spill-single-def
-; V08 loc6 [V08,T464] ( 2, 32 ) int -> rdi
-; V09 loc7 [V09,T423] ( 3, 40 ) int -> r8
-; V10 loc8 [V10,T273] ( 4, 56 ) int -> r13
-; V11 loc9 [V11,T350] ( 3, 48 ) int -> rax
-; V12 loc10 [V12,T211] ( 4, 64 ) int -> rdi
-; V13 loc11 [V13,T424] ( 4, 32 ) int -> rsi
-; V14 loc12 [V14,T425] ( 4, 32 ) int -> r8
-; V15 loc13 [V15,T417] ( 5, 40 ) int -> r8
-; V16 loc14 [V16,T426] ( 4, 32 ) int -> rsi
-; V17 loc15 [V17,T427] ( 4, 32 ) int -> r12
+; V04 loc2 [V04,T484] ( 5, 10 ) int -> rax
+; V05 loc3 [V05,T280] ( 3, 48 ) int -> r13
+; V06 loc4 [V06,T219] ( 4, 50 ) int -> [rbp-0x2C] spill-single-def
+; V07 loc5 [V07,T217] ( 5, 58 ) int -> [rbp-0x30] spill-single-def
+; V08 loc6 [V08,T369] ( 2, 32 ) int -> rdi
+; V09 loc7 [V09,T337] ( 3, 34 ) int -> r8
+; V10 loc8 [V10,T220] ( 4, 50 ) int -> r13
+; V11 loc9 [V11,T281] ( 3, 48 ) int -> rax
+; V12 loc10 [V12,T181] ( 4, 64 ) int -> rdi
+; V13 loc11 [V13,T338] ( 4, 32 ) int -> rsi
+; V14 loc12 [V14,T339] ( 4, 32 ) int -> r8
+; V15 loc13 [V15,T331] ( 5, 40 ) int -> r8
+; V16 loc14 [V16,T340] ( 4, 32 ) int -> rsi
+; V17 loc15 [V17,T341] ( 4, 32 ) int -> r12
; V18 loc16 [V18,T45] ( 6, 160 ) int -> registers
-; V19 loc17 [V19,T204] ( 2, 72 ) ushort -> rsi
+; V19 loc17 [V19,T177] ( 2, 72 ) ushort -> rdi
; V20 loc18 [V20,T46] ( 6, 160 ) int -> registers
-; V21 loc19 [V21,T205] ( 2, 72 ) ushort -> rsi
+; V21 loc19 [V21,T178] ( 2, 72 ) ushort -> rdi
; V22 loc20 [V22,T47] ( 6, 160 ) int -> [rbp-0x34]
-; V23 loc21 [V23,T428] ( 4, 32 ) int -> rsi
+; V23 loc21 [V23,T342] ( 4, 32 ) int -> rsi
; V24 loc22 [V24,T20] ( 11, 328 ) ref -> r12 class-hnd exact <System.String>
-; V25 loc23 [V25,T89] ( 3, 104 ) byref -> [rbp-0x50] spill-single-def
-; V26 loc24 [V26,T195] ( 5, 80 ) int -> rsi
-; V27 loc25 [V27,T203] ( 2, 80 ) ushort -> rdx
+; V25 loc23 [V25,T80] ( 3, 104 ) byref -> [rbp-0x50] spill-single-def
+; V26 loc24 [V26,T169] ( 5, 80 ) int -> rsi
+; V27 loc25 [V27,T176] ( 2, 80 ) ushort -> rdx
; V28 loc26 [V28,T31] ( 6, 240 ) int -> rdi
-; V29 loc27 [V29,T88] ( 10, 104 ) int -> r13
-; V30 loc28 [V30,T190] ( 3, 88 ) ushort -> r12
+; V29 loc27 [V29,T79] ( 10, 104 ) int -> r13
+; V30 loc28 [V30,T168] ( 3, 88 ) ushort -> r12
; V31 loc29 [V31,T30] ( 8, 248 ) int -> [rbp-0x38]
-; V32 loc30 [V32,T196] ( 5, 80 ) int -> r13
-; V33 loc31 [V33,T212] ( 4, 64 ) int -> rsi
-; V34 loc32 [V34,T198] ( 3, 80 ) ref -> r12 class-hnd exact <System.String>
-; V35 loc33 [V35,T87] ( 3, 112 ) byref -> [rbp-0x58] spill-single-def
+; V32 loc30 [V32,T170] ( 5, 80 ) int -> r13
+; V33 loc31 [V33,T182] ( 4, 64 ) int -> rsi
+; V34 loc32 [V34,T171] ( 3, 80 ) ref -> r12 class-hnd exact <System.String>
+; V35 loc33 [V35,T77] ( 3, 112 ) byref -> [rbp-0x58] spill-single-def
; V36 loc34 [V36,T32] ( 6, 240 ) int -> [rbp-0x3C]
-; V37 loc35 [V37,T351] ( 3, 48 ) int -> rsi
-; V38 loc36 [V38,T352] ( 3, 48 ) int -> rdx
+; V37 loc35 [V37,T282] ( 3, 48 ) int -> rsi
+; V38 loc36 [V38,T283] ( 3, 48 ) int -> rdx
;* V39 loc37 [V39 ] ( 0, 0 ) int -> zero-ref
-; V40 loc38 [V40,T444] ( 3, 32 ) int -> rsi
-; V41 loc39 [V41,T353] ( 3, 48 ) int -> rdi
-; V42 loc40 [V42,T445] ( 3, 32 ) int -> rsi
-; V43 loc41 [V43,T354] ( 3, 48 ) int -> rdi
-; V44 loc42 [V44,T446] ( 3, 32 ) int -> r13
-; V45 loc43 [V45,T429] ( 4, 32 ) int -> rsi
-; V46 loc44 [V46,T355] ( 3, 48 ) int -> rsi
-; V47 loc45 [V47,T535] ( 3, 12 ) byref -> rdi
+; V40 loc38 [V40,T352] ( 3, 32 ) int -> rsi
+; V41 loc39 [V41,T284] ( 3, 48 ) int -> rdi
+; V42 loc40 [V42,T353] ( 3, 32 ) int -> rsi
+; V43 loc41 [V43,T285] ( 3, 48 ) int -> rdi
+; V44 loc42 [V44,T354] ( 3, 32 ) int -> r13
+; V45 loc43 [V45,T343] ( 4, 32 ) int -> rsi
+; V46 loc44 [V46,T286] ( 3, 48 ) int -> rsi
+; V47 loc45 [V47,T441] ( 3, 12 ) byref -> rdi
;# V48 OutArgs [V48 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V49 tmp1 [V49 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V50 tmp2 [V50,T465] ( 2, 32 ) int -> rdi "impAppendStmt"
-; V51 tmp3 [V51,T466] ( 2, 32 ) int -> rax "impAppendStmt"
+; V50 tmp2 [V50,T370] ( 2, 32 ) int -> rdi "impAppendStmt"
+; V51 tmp3 [V51,T371] ( 2, 32 ) int -> rax "impAppendStmt"
;* V52 tmp4 [V52 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V53 tmp5 [V53 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V54 tmp6 [V54,T467] ( 2, 32 ) int -> rdi "impAppendStmt"
-; V55 tmp7 [V55,T468] ( 2, 32 ) int -> rdx "impAppendStmt"
+; V54 tmp6 [V54,T372] ( 2, 32 ) int -> rdi "impAppendStmt"
+; V55 tmp7 [V55,T373] ( 2, 32 ) int -> rdx "impAppendStmt"
;* V56 tmp8 [V56 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V57 tmp9 [V57 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V58 tmp10 [V58 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V59 tmp11 [V59 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V60 tmp12 [V60,T469] ( 2, 32 ) int -> rdi "impAppendStmt"
-; V61 tmp13 [V61,T356] ( 3, 48 ) int -> r13 "impAppendStmt"
+; V60 tmp12 [V60,T500] ( 2, 8 ) int -> rdi "impAppendStmt"
+; V61 tmp13 [V61,T464] ( 3, 12 ) int -> r13 "impAppendStmt"
;* V62 tmp14 [V62 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V63 tmp15 [V63 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V64 tmp16 [V64,T252] ( 2, 64 ) int -> r8 "impAppendStmt"
+; V64 tmp16 [V64,T501] ( 2, 8 ) int -> r8 "impAppendStmt"
;* V65 tmp17 [V65 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V66 tmp18 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String[]>
;* V67 tmp19 [V67 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V68 tmp20 [V68 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V69 tmp21 [V69,T199] ( 3, 80 ) int -> rsi "impAppendStmt"
-; V70 tmp22 [V70,T200] ( 3, 80 ) int -> r13 "impAppendStmt"
-; V71 tmp23 [V71,T411] ( 2, 48 ) int -> rdx "impAppendStmt"
-; V72 tmp24 [V72,T201] ( 3, 80 ) int -> r13 "impAppendStmt"
-; V73 tmp25 [V73,T412] ( 2, 48 ) int -> rdx "impAppendStmt"
+; V69 tmp21 [V69,T172] ( 3, 80 ) int -> rsi "impAppendStmt"
+; V70 tmp22 [V70,T173] ( 3, 80 ) int -> r13 "impAppendStmt"
+; V71 tmp23 [V71,T204] ( 2, 64 ) int -> rdx "impAppendStmt"
+; V72 tmp24 [V72,T174] ( 3, 80 ) int -> r13 "impAppendStmt"
+; V73 tmp25 [V73,T205] ( 2, 64 ) int -> rdx "impAppendStmt"
;* V74 tmp26 [V74 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V75 tmp27 [V75,T202] ( 3, 80 ) int -> rsi "impAppendStmt"
-; V76 tmp28 [V76,T413] ( 2, 48 ) int -> rdx "impAppendStmt"
-; V77 tmp29 [V77,T12] ( 6, 432 ) int -> r13 "impSpillLclRefs"
-; V78 tmp30 [V78,T13] ( 6, 432 ) int -> rdi "impSpillLclRefs"
-; V79 tmp31 [V79,T14] ( 6, 432 ) int -> rdi "impSpillLclRefs"
-; V80 tmp32 [V80,T538] ( 3, 6 ) int -> rdi "Inlining Arg"
-; V81 tmp33 [V81,T357] ( 3, 48 ) int -> rdi "Inlining Arg"
+; V75 tmp27 [V75,T175] ( 3, 80 ) int -> rsi "impAppendStmt"
+; V76 tmp28 [V76,T206] ( 2, 64 ) int -> rdx "impAppendStmt"
+; V77 tmp29 [V77,T13] ( 6, 432 ) int -> r13 "impSpillLclRefs"
+; V78 tmp30 [V78,T14] ( 6, 432 ) int -> rsi "impSpillLclRefs"
+; V79 tmp31 [V79,T15] ( 6, 432 ) int -> rsi "impSpillLclRefs"
+; V80 tmp32 [V80,T534] ( 3, 6 ) int -> rdi "Inlining Arg"
+; V81 tmp33 [V81,T287] ( 3, 48 ) int -> rdi "Inlining Arg"
;* V82 tmp34 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V83 tmp35 [V83,T57] ( 4, 128 ) int -> r13 "Inlining Arg"
-; V84 tmp36 [V84,T358] ( 3, 48 ) int -> r12 "Inline stloc first use temp"
-; V85 tmp37 [V85,T132] ( 3, 96 ) int -> rdi "Inlining Arg"
-; V86 tmp38 [V86,T470] ( 2, 32 ) int -> rsi "Inlining Arg"
+; V83 tmp35 [V83,T54] ( 4, 128 ) int -> r13 "Inlining Arg"
+; V84 tmp36 [V84,T288] ( 3, 48 ) int -> r12 "Inline stloc first use temp"
+; V85 tmp37 [V85,T116] ( 3, 96 ) int -> rdi "Inlining Arg"
+; V86 tmp38 [V86,T374] ( 2, 32 ) int -> rsi "Inlining Arg"
;* V87 tmp39 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V88 tmp40 [V88,T52] ( 4, 128 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-; V89 tmp41 [V89,T58] ( 4, 128 ) int -> rsi "dup spill"
-; V90 tmp42 [V90,T253] ( 2, 64 ) int -> r8 "Inlining Arg"
-; V91 tmp43 [V91,T59] ( 4, 128 ) int -> rsi "dup spill"
-; V92 tmp44 [V92,T254] ( 2, 64 ) int -> rdx "Strict ordering of exceptions for Array store"
-; V93 tmp45 [V93,T60] ( 4, 128 ) int -> r13 "Inlining Arg"
-; V94 tmp46 [V94,T359] ( 3, 48 ) int -> r12 "Inline stloc first use temp"
-; V95 tmp47 [V95,T133] ( 3, 96 ) int -> rdi "Inlining Arg"
-; V96 tmp48 [V96,T430] ( 4, 32 ) int -> rdi "Inline stloc first use temp"
-; V97 tmp49 [V97,T281] ( 3, 48 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
-; V98 tmp50 [V98,T471] ( 2, 32 ) int -> rdx "Inlining Arg"
-; V99 tmp51 [V99,T431] ( 4, 32 ) int -> rcx "Inline stloc first use temp"
-; V100 tmp52 [V100,T282] ( 3, 48 ) ref -> rdx class-hnd "impAppendStmt" <int[]>
-; V101 tmp53 [V101,T472] ( 2, 32 ) int -> r8 "Strict ordering of exceptions for Array store"
-; V102 tmp54 [V102,T432] ( 4, 32 ) int -> rdi "Inline stloc first use temp"
-; V103 tmp55 [V103,T283] ( 3, 48 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
-; V104 tmp56 [V104,T433] ( 4, 32 ) int -> rdi "Inline stloc first use temp"
-; V105 tmp57 [V105,T284] ( 3, 48 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
-; V106 tmp58 [V106,T473] ( 2, 32 ) int -> rsi "Strict ordering of exceptions for Array store"
+; V88 tmp40 [V88,T417] ( 4, 16 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+; V89 tmp41 [V89,T421] ( 4, 16 ) int -> rsi "dup spill"
+; V90 tmp42 [V90,T502] ( 2, 8 ) int -> r8 "Inlining Arg"
+; V91 tmp43 [V91,T422] ( 4, 16 ) int -> rsi "dup spill"
+; V92 tmp44 [V92,T503] ( 2, 8 ) int -> rdx "Strict ordering of exceptions for Array store"
+; V93 tmp45 [V93,T55] ( 4, 128 ) int -> r13 "Inlining Arg"
+; V94 tmp46 [V94,T289] ( 3, 48 ) int -> r12 "Inline stloc first use temp"
+; V95 tmp47 [V95,T117] ( 3, 96 ) int -> rdi "Inlining Arg"
+; V96 tmp48 [V96,T485] ( 4, 8 ) int -> rdi "Inline stloc first use temp"
+; V97 tmp49 [V97,T442] ( 3, 12 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
+; V98 tmp50 [V98,T504] ( 2, 8 ) int -> rdx "Inlining Arg"
+; V99 tmp51 [V99,T486] ( 4, 8 ) int -> rcx "Inline stloc first use temp"
+; V100 tmp52 [V100,T443] ( 3, 12 ) ref -> rdx class-hnd "impAppendStmt" <int[]>
+; V101 tmp53 [V101,T505] ( 2, 8 ) int -> r8 "Strict ordering of exceptions for Array store"
+; V102 tmp54 [V102,T487] ( 4, 8 ) int -> rdi "Inline stloc first use temp"
+; V103 tmp55 [V103,T444] ( 3, 12 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
+; V104 tmp56 [V104,T488] ( 4, 8 ) int -> rdi "Inline stloc first use temp"
+; V105 tmp57 [V105,T445] ( 3, 12 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
+; V106 tmp58 [V106,T506] ( 2, 8 ) int -> rsi "Strict ordering of exceptions for Array store"
;* V107 tmp59 [V107 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V108 tmp60 [V108,T208] ( 4, 64 ) ref -> rsi class-hnd "impAppendStmt" <int[]>
-; V109 tmp61 [V109,T213] ( 4, 64 ) int -> rax "dup spill"
-; V110 tmp62 [V110,T474] ( 2, 32 ) int -> r12 "Inlining Arg"
-; V111 tmp63 [V111,T214] ( 4, 64 ) int -> rax "dup spill"
-; V112 tmp64 [V112,T475] ( 2, 32 ) int -> r8 "Strict ordering of exceptions for Array store"
-; V113 tmp65 [V113,T434] ( 4, 32 ) int -> rax "Inline stloc first use temp"
-; V114 tmp66 [V114,T285] ( 3, 48 ) ref -> rsi class-hnd "impAppendStmt" <int[]>
-; V115 tmp67 [V115,T476] ( 2, 32 ) int -> rdi "Inlining Arg"
-; V116 tmp68 [V116,T477] ( 2, 32 ) int -> rsi "Inlining Arg"
-; V117 tmp69 [V117,T197] ( 5, 80 ) int -> [rbp-0x40] "Inlining Arg"
-; V118 tmp70 [V118,T90] ( 6, 96 ) int -> registers "Inlining Arg"
-; V119 tmp71 [V119,T478] ( 2, 32 ) int -> rdi "impSpillLclRefs"
-; V120 tmp72 [V120,T435] ( 4, 32 ) int -> rsi "Inline stloc first use temp"
-; V121 tmp73 [V121,T286] ( 3, 48 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
+; V108 tmp60 [V108,T418] ( 4, 16 ) ref -> rsi class-hnd "impAppendStmt" <int[]>
+; V109 tmp61 [V109,T423] ( 4, 16 ) int -> rax "dup spill"
+; V110 tmp62 [V110,T507] ( 2, 8 ) int -> r12 "Inlining Arg"
+; V111 tmp63 [V111,T424] ( 4, 16 ) int -> rax "dup spill"
+; V112 tmp64 [V112,T508] ( 2, 8 ) int -> r8 "Strict ordering of exceptions for Array store"
+; V113 tmp65 [V113,T344] ( 4, 32 ) int -> rax "Inline stloc first use temp"
+; V114 tmp66 [V114,T228] ( 3, 48 ) ref -> rsi class-hnd "impAppendStmt" <int[]>
+; V115 tmp67 [V115,T375] ( 2, 32 ) int -> rdi "Inlining Arg"
+; V116 tmp68 [V116,T376] ( 2, 32 ) int -> rsi "Inlining Arg"
+; V117 tmp69 [V117,T416] ( 5, 20 ) int -> [rbp-0x40] "Inlining Arg"
+; V118 tmp70 [V118,T390] ( 6, 24 ) int -> registers "Inlining Arg"
+; V119 tmp71 [V119,T509] ( 2, 8 ) int -> rdi "impSpillLclRefs"
+; V120 tmp72 [V120,T489] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
+; V121 tmp73 [V121,T446] ( 3, 12 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
;* V122 tmp74 [V122 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V123 tmp75 [V123,T191] ( 5, 80 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-; V124 tmp76 [V124,T215] ( 4, 64 ) int -> rsi "dup spill"
-; V125 tmp77 [V125,T479] ( 2, 32 ) int -> rcx "Inlining Arg"
-; V126 tmp78 [V126,T216] ( 4, 64 ) int -> rsi "dup spill"
-; V127 tmp79 [V127,T480] ( 2, 32 ) int -> rcx "Strict ordering of exceptions for Array store"
-; V128 tmp80 [V128,T436] ( 4, 32 ) int -> rax "Inline stloc first use temp"
-; V129 tmp81 [V129,T287] ( 3, 48 ) ref -> rsi class-hnd "impAppendStmt" <int[]>
-; V130 tmp82 [V130,T481] ( 2, 32 ) int -> rdi "Inlining Arg"
-; V131 tmp83 [V131,T512] ( 3, 24 ) int -> rdi "Inline stloc first use temp"
-; V132 tmp84 [V132,T437] ( 4, 32 ) int -> rsi "Inline stloc first use temp"
-; V133 tmp85 [V133,T288] ( 3, 48 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+; V123 tmp75 [V123,T412] ( 5, 20 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+; V124 tmp76 [V124,T425] ( 4, 16 ) int -> rsi "dup spill"
+; V125 tmp77 [V125,T510] ( 2, 8 ) int -> rcx "Inlining Arg"
+; V126 tmp78 [V126,T426] ( 4, 16 ) int -> rsi "dup spill"
+; V127 tmp79 [V127,T511] ( 2, 8 ) int -> rcx "Strict ordering of exceptions for Array store"
+; V128 tmp80 [V128,T345] ( 4, 32 ) int -> rax "Inline stloc first use temp"
+; V129 tmp81 [V129,T229] ( 3, 48 ) ref -> rsi class-hnd "impAppendStmt" <int[]>
+; V130 tmp82 [V130,T377] ( 2, 32 ) int -> rdi "Inlining Arg"
+; V131 tmp83 [V131,T393] ( 3, 24 ) int -> rdi "Inline stloc first use temp"
+; V132 tmp84 [V132,T346] ( 4, 32 ) int -> rsi "Inline stloc first use temp"
+; V133 tmp85 [V133,T230] ( 3, 48 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
;* V134 tmp86 [V134 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V135 tmp87 [V135,T289] ( 3, 48 ) byref -> rdi "dup spill"
-; V136 tmp88 [V136,T513] ( 3, 24 ) int -> rdi "Inline stloc first use temp"
-; V137 tmp89 [V137,T438] ( 4, 32 ) int -> rdi "Inline stloc first use temp"
-; V138 tmp90 [V138,T290] ( 3, 48 ) ref -> r12 class-hnd "impAppendStmt" <int[]>
+; V135 tmp87 [V135,T231] ( 3, 48 ) byref -> rdi "dup spill"
+; V136 tmp88 [V136,T394] ( 3, 24 ) int -> rdi "Inline stloc first use temp"
+; V137 tmp89 [V137,T347] ( 4, 32 ) int -> rdi "Inline stloc first use temp"
+; V138 tmp90 [V138,T232] ( 3, 48 ) ref -> r12 class-hnd "impAppendStmt" <int[]>
;* V139 tmp91 [V139 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V140 tmp92 [V140,T291] ( 3, 48 ) byref -> rdi "dup spill"
+; V140 tmp92 [V140,T233] ( 3, 48 ) byref -> rdi "dup spill"
;* V141 tmp93 [V141 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V142 tmp94 [V142,T48] ( 5, 160 ) ref -> rsi class-hnd "impAppendStmt" <int[]>
-; V143 tmp95 [V143,T61] ( 4, 128 ) int -> r9 "dup spill"
-; V144 tmp96 [V144,T255] ( 2, 64 ) int -> rax "Inlining Arg"
-; V145 tmp97 [V145,T62] ( 4, 128 ) int -> r9 "dup spill"
-; V146 tmp98 [V146,T256] ( 2, 64 ) int -> rdx "Inlining Arg"
-; V147 tmp99 [V147,T63] ( 4, 128 ) int -> r9 "dup spill"
-; V148 tmp100 [V148,T257] ( 2, 64 ) int -> rax "Strict ordering of exceptions for Array store"
-; V149 tmp101 [V149,T217] ( 4, 64 ) int -> rdi "Inline stloc first use temp"
-; V150 tmp102 [V150,T239] ( 2, 64 ) ref -> rdx class-hnd "impAppendStmt" <int[]>
-; V151 tmp103 [V151,T258] ( 2, 64 ) int -> rax "Inlining Arg"
-; V152 tmp104 [V152,T64] ( 4, 128 ) int -> r12 "Inlining Arg"
-; V153 tmp105 [V153,T134] ( 3, 96 ) int -> rdi "Inlining Arg"
-; V154 tmp106 [V154,T439] ( 4, 32 ) int -> rcx "Inline stloc first use temp"
-; V155 tmp107 [V155,T292] ( 3, 48 ) ref -> rax class-hnd "impAppendStmt" <int[]>
-; V156 tmp108 [V156,T482] ( 2, 32 ) int -> rdi "Inlining Arg"
+; V143 tmp95 [V143,T56] ( 4, 128 ) int -> r9 "dup spill"
+; V144 tmp96 [V144,T207] ( 2, 64 ) int -> rax "Inlining Arg"
+; V145 tmp97 [V145,T57] ( 4, 128 ) int -> r9 "dup spill"
+; V146 tmp98 [V146,T208] ( 2, 64 ) int -> rdx "Inlining Arg"
+; V147 tmp99 [V147,T58] ( 4, 128 ) int -> r9 "dup spill"
+; V148 tmp100 [V148,T209] ( 2, 64 ) int -> rax "Strict ordering of exceptions for Array store"
+; V149 tmp101 [V149,T183] ( 4, 64 ) int -> rdi "Inline stloc first use temp"
+; V150 tmp102 [V150,T194] ( 2, 64 ) ref -> rdx class-hnd "impAppendStmt" <int[]>
+; V151 tmp103 [V151,T210] ( 2, 64 ) int -> rax "Inlining Arg"
+; V152 tmp104 [V152,T59] ( 4, 128 ) int -> r12 "Inlining Arg"
+; V153 tmp105 [V153,T118] ( 3, 96 ) int -> rdi "Inlining Arg"
+; V154 tmp106 [V154,T348] ( 4, 32 ) int -> rcx "Inline stloc first use temp"
+; V155 tmp107 [V155,T234] ( 3, 48 ) ref -> rax class-hnd "impAppendStmt" <int[]>
+; V156 tmp108 [V156,T378] ( 2, 32 ) int -> rdi "Inlining Arg"
;* V157 tmp109 [V157 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V158 tmp110 [V158,T192] ( 5, 80 ) ref -> rsi class-hnd "impAppendStmt" <int[]>
-; V159 tmp111 [V159,T218] ( 4, 64 ) int -> rdi "dup spill"
-; V160 tmp112 [V160,T219] ( 4, 64 ) int -> rdi "dup spill"
-; V161 tmp113 [V161,T483] ( 2, 32 ) int -> r8 "Inlining Arg"
-; V162 tmp114 [V162,T220] ( 4, 64 ) int -> rdi "dup spill"
-; V163 tmp115 [V163,T484] ( 2, 32 ) int -> rax "Strict ordering of exceptions for Array store"
+; V158 tmp110 [V158,T413] ( 5, 20 ) ref -> rsi class-hnd "impAppendStmt" <int[]>
+; V159 tmp111 [V159,T427] ( 4, 16 ) int -> rdi "dup spill"
+; V160 tmp112 [V160,T428] ( 4, 16 ) int -> rdi "dup spill"
+; V161 tmp113 [V161,T512] ( 2, 8 ) int -> r8 "Inlining Arg"
+; V162 tmp114 [V162,T429] ( 4, 16 ) int -> rdi "dup spill"
+; V163 tmp115 [V163,T513] ( 2, 8 ) int -> rax "Strict ordering of exceptions for Array store"
;* V164 tmp116 [V164 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V165 tmp117 [V165,T193] ( 5, 80 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-; V166 tmp118 [V166,T221] ( 4, 64 ) int -> rsi "dup spill"
-; V167 tmp119 [V167,T485] ( 2, 32 ) int -> rax "Inlining Arg"
-; V168 tmp120 [V168,T222] ( 4, 64 ) int -> rsi "dup spill"
-; V169 tmp121 [V169,T486] ( 2, 32 ) int -> r8 "Inlining Arg"
-; V170 tmp122 [V170,T223] ( 4, 64 ) int -> rsi "dup spill"
-; V171 tmp123 [V171,T487] ( 2, 32 ) int -> r11 "Strict ordering of exceptions for Array store"
-; V172 tmp124 [V172,T224] ( 4, 64 ) int -> rdi "Inline stloc first use temp"
-; V173 tmp125 [V173,T240] ( 2, 64 ) ref -> rsi class-hnd "impAppendStmt" <int[]>
-; V174 tmp126 [V174,T225] ( 4, 64 ) int -> rax "Inline stloc first use temp"
-; V175 tmp127 [V175,T92] ( 3, 96 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-; V176 tmp128 [V176,T65] ( 4, 128 ) int -> r13 "Inlining Arg"
-; V177 tmp129 [V177,T135] ( 3, 96 ) int -> rsi "Inlining Arg"
-; V178 tmp130 [V178,T440] ( 4, 32 ) int -> rdi "Inline stloc first use temp"
-; V179 tmp131 [V179,T293] ( 3, 48 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
-; V180 tmp132 [V180,T488] ( 2, 32 ) int -> rax "Inlining Arg"
+; V165 tmp117 [V165,T414] ( 5, 20 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+; V166 tmp118 [V166,T430] ( 4, 16 ) int -> rsi "dup spill"
+; V167 tmp119 [V167,T514] ( 2, 8 ) int -> rax "Inlining Arg"
+; V168 tmp120 [V168,T431] ( 4, 16 ) int -> rsi "dup spill"
+; V169 tmp121 [V169,T515] ( 2, 8 ) int -> r8 "Inlining Arg"
+; V170 tmp122 [V170,T432] ( 4, 16 ) int -> rsi "dup spill"
+; V171 tmp123 [V171,T516] ( 2, 8 ) int -> r11 "Strict ordering of exceptions for Array store"
+; V172 tmp124 [V172,T490] ( 4, 8 ) int -> rdi "Inline stloc first use temp"
+; V173 tmp125 [V173,T494] ( 2, 8 ) ref -> rsi class-hnd "impAppendStmt" <int[]>
+; V174 tmp126 [V174,T184] ( 4, 64 ) int -> rax "Inline stloc first use temp"
+; V175 tmp127 [V175,T82] ( 3, 96 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+; V176 tmp128 [V176,T60] ( 4, 128 ) int -> r13 "Inlining Arg"
+; V177 tmp129 [V177,T119] ( 3, 96 ) int -> rsi "Inlining Arg"
+; V178 tmp130 [V178,T349] ( 4, 32 ) int -> rdi "Inline stloc first use temp"
+; V179 tmp131 [V179,T235] ( 3, 48 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
+; V180 tmp132 [V180,T379] ( 2, 32 ) int -> rax "Inlining Arg"
;* V181 tmp133 [V181 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V182 tmp134 [V182,T53] ( 4, 128 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-; V183 tmp135 [V183,T66] ( 4, 128 ) int -> rax "dup spill"
-; V184 tmp136 [V184,T67] ( 4, 128 ) int -> rax "dup spill"
-; V185 tmp137 [V185,T259] ( 2, 64 ) int -> rsi "Inlining Arg"
-; V186 tmp138 [V186,T226] ( 4, 64 ) int -> rsi "Inline stloc first use temp"
-; V187 tmp139 [V187,T93] ( 3, 96 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-; V188 tmp140 [V188,T260] ( 2, 64 ) int -> r11 "Strict ordering of exceptions for Array store"
+; V182 tmp134 [V182,T419] ( 4, 16 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+; V183 tmp135 [V183,T433] ( 4, 16 ) int -> rax "dup spill"
+; V184 tmp136 [V184,T434] ( 4, 16 ) int -> rax "dup spill"
+; V185 tmp137 [V185,T517] ( 2, 8 ) int -> rsi "Inlining Arg"
+; V186 tmp138 [V186,T491] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
+; V187 tmp139 [V187,T447] ( 3, 12 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+; V188 tmp140 [V188,T518] ( 2, 8 ) int -> r11 "Strict ordering of exceptions for Array store"
;* V189 tmp141 [V189 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V190 tmp142 [V190,T54] ( 4, 128 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-; V191 tmp143 [V191,T68] ( 4, 128 ) int -> rax "dup spill"
-; V192 tmp144 [V192,T69] ( 4, 128 ) int -> rax "dup spill"
-; V193 tmp145 [V193,T261] ( 2, 64 ) int -> rsi "Inlining Arg"
-; V194 tmp146 [V194,T227] ( 4, 64 ) int -> rdi "Inline stloc first use temp"
-; V195 tmp147 [V195,T94] ( 3, 96 ) ref -> rsi class-hnd "impAppendStmt" <int[]>
-; V196 tmp148 [V196,T262] ( 2, 64 ) int -> rax "Strict ordering of exceptions for Array store"
+; V190 tmp142 [V190,T420] ( 4, 16 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+; V191 tmp143 [V191,T435] ( 4, 16 ) int -> rax "dup spill"
+; V192 tmp144 [V192,T436] ( 4, 16 ) int -> rax "dup spill"
+; V193 tmp145 [V193,T519] ( 2, 8 ) int -> rsi "Inlining Arg"
+; V194 tmp146 [V194,T492] ( 4, 8 ) int -> rdi "Inline stloc first use temp"
+; V195 tmp147 [V195,T448] ( 3, 12 ) ref -> rsi class-hnd "impAppendStmt" <int[]>
+; V196 tmp148 [V196,T520] ( 2, 8 ) int -> rax "Strict ordering of exceptions for Array store"
;* V197 tmp149 [V197 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V198 tmp150 [V198,T55] ( 4, 128 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-; V199 tmp151 [V199,T70] ( 4, 128 ) int -> r10 "dup spill"
-; V200 tmp152 [V200,T71] ( 4, 128 ) int -> r10 "dup spill"
-; V201 tmp153 [V201,T263] ( 2, 64 ) int -> rcx "Strict ordering of exceptions for Array store"
+; V198 tmp150 [V198,T52] ( 4, 128 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+; V199 tmp151 [V199,T61] ( 4, 128 ) int -> r10 "dup spill"
+; V200 tmp152 [V200,T62] ( 4, 128 ) int -> r10 "dup spill"
+; V201 tmp153 [V201,T211] ( 2, 64 ) int -> rcx "Strict ordering of exceptions for Array store"
;* V202 tmp154 [V202 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V203 tmp155 [V203,T95] ( 3, 96 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
-; V204 tmp156 [V204,T72] ( 4, 128 ) int -> rax "dup spill"
-; V205 tmp157 [V205,T264] ( 2, 64 ) int -> rdi "Inlining Arg"
-; V206 tmp158 [V206,T73] ( 4, 128 ) int -> rax "dup spill"
+; V203 tmp155 [V203,T83] ( 3, 96 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
+; V204 tmp156 [V204,T63] ( 4, 128 ) int -> rax "dup spill"
+; V205 tmp157 [V205,T212] ( 2, 64 ) int -> rdi "Inlining Arg"
+; V206 tmp158 [V206,T64] ( 4, 128 ) int -> rax "dup spill"
;* V207 tmp159 [V207 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V208 tmp160 [V208,T74] ( 4, 128 ) int -> r13 "Inlining Arg"
-; V209 tmp161 [V209,T136] ( 3, 96 ) int -> rdi "Inlining Arg"
+; V208 tmp160 [V208,T65] ( 4, 128 ) int -> r13 "Inlining Arg"
+; V209 tmp161 [V209,T120] ( 3, 96 ) int -> rdi "Inlining Arg"
;* V210 tmp162 [V210 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V211 tmp163 [V211,T294] ( 3, 48 ) ref -> rax class-hnd "impAppendStmt" <int[]>
-; V212 tmp164 [V212,T228] ( 4, 64 ) int -> rsi "dup spill"
-; V213 tmp165 [V213,T229] ( 4, 64 ) int -> rsi "dup spill"
-; V214 tmp166 [V214,T489] ( 2, 32 ) int -> rdi "Inlining Arg"
+; V211 tmp163 [V211,T236] ( 3, 48 ) ref -> rax class-hnd "impAppendStmt" <int[]>
+; V212 tmp164 [V212,T185] ( 4, 64 ) int -> rsi "dup spill"
+; V213 tmp165 [V213,T186] ( 4, 64 ) int -> rsi "dup spill"
+; V214 tmp166 [V214,T380] ( 2, 32 ) int -> rdi "Inlining Arg"
;* V215 tmp167 [V215 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V216 tmp168 [V216,T209] ( 4, 64 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
-; V217 tmp169 [V217,T230] ( 4, 64 ) int -> rdx "dup spill"
-; V218 tmp170 [V218,T231] ( 4, 64 ) int -> rdx "dup spill"
-; V219 tmp171 [V219,T490] ( 2, 32 ) int -> rdi "Inlining Arg"
+; V216 tmp168 [V216,T179] ( 4, 64 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
+; V217 tmp169 [V217,T187] ( 4, 64 ) int -> rdx "dup spill"
+; V218 tmp170 [V218,T188] ( 4, 64 ) int -> rdx "dup spill"
+; V219 tmp171 [V219,T381] ( 2, 32 ) int -> rdi "Inlining Arg"
;* V220 tmp172 [V220 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V221 tmp173 [V221,T49] ( 5, 160 ) ref -> rax class-hnd "impAppendStmt" <int[]>
-; V222 tmp174 [V222,T75] ( 4, 128 ) int -> rcx "dup spill"
-; V223 tmp175 [V223,T265] ( 2, 64 ) int -> rdi "Inlining Arg"
-; V224 tmp176 [V224,T76] ( 4, 128 ) int -> rcx "dup spill"
+; V222 tmp174 [V222,T66] ( 4, 128 ) int -> rcx "dup spill"
+; V223 tmp175 [V223,T213] ( 2, 64 ) int -> rdi "Inlining Arg"
+; V224 tmp176 [V224,T67] ( 4, 128 ) int -> rcx "dup spill"
;* V225 tmp177 [V225 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V226 tmp178 [V226,T77] ( 4, 128 ) int -> r13 "Inlining Arg"
-; V227 tmp179 [V227,T137] ( 3, 96 ) int -> rdi "Inlining Arg"
+; V226 tmp178 [V226,T68] ( 4, 128 ) int -> r13 "Inlining Arg"
+; V227 tmp179 [V227,T121] ( 3, 96 ) int -> rdi "Inlining Arg"
;* V228 tmp180 [V228 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V229 tmp181 [V229,T56] ( 4, 128 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
-; V230 tmp182 [V230,T78] ( 4, 128 ) int -> rdx "dup spill"
-; V231 tmp183 [V231,T79] ( 4, 128 ) int -> rdx "dup spill"
-; V232 tmp184 [V232,T266] ( 2, 64 ) int -> rsi "Inlining Arg"
-; V233 tmp185 [V233,T80] ( 4, 128 ) int -> r13 "Inlining Arg"
-; V234 tmp186 [V234,T138] ( 3, 96 ) int -> rsi "Inlining Arg"
+; V229 tmp181 [V229,T53] ( 4, 128 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
+; V230 tmp182 [V230,T69] ( 4, 128 ) int -> rdx "dup spill"
+; V231 tmp183 [V231,T70] ( 4, 128 ) int -> rdx "dup spill"
+; V232 tmp184 [V232,T214] ( 2, 64 ) int -> rsi "Inlining Arg"
+; V233 tmp185 [V233,T71] ( 4, 128 ) int -> r13 "Inlining Arg"
+; V234 tmp186 [V234,T122] ( 3, 96 ) int -> rsi "Inlining Arg"
;* V235 tmp187 [V235 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V236 tmp188 [V236,T210] ( 4, 64 ) ref -> rax class-hnd "impAppendStmt" <int[]>
-; V237 tmp189 [V237,T232] ( 4, 64 ) int -> rcx "dup spill"
-; V238 tmp190 [V238,T233] ( 4, 64 ) int -> rcx "dup spill"
-; V239 tmp191 [V239,T491] ( 2, 32 ) int -> rsi "Inlining Arg"
+; V236 tmp188 [V236,T180] ( 4, 64 ) ref -> rax class-hnd "impAppendStmt" <int[]>
+; V237 tmp189 [V237,T189] ( 4, 64 ) int -> rcx "dup spill"
+; V238 tmp190 [V238,T190] ( 4, 64 ) int -> rcx "dup spill"
+; V239 tmp191 [V239,T382] ( 2, 32 ) int -> rsi "Inlining Arg"
;* V240 tmp192 [V240 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V241 tmp193 [V241,T295] ( 3, 48 ) ref -> r13 class-hnd "impAppendStmt" <int[]>
-; V242 tmp194 [V242,T234] ( 4, 64 ) int -> rax "dup spill"
-; V243 tmp195 [V243,T235] ( 4, 64 ) int -> rax "dup spill"
-; V244 tmp196 [V244,T492] ( 2, 32 ) int -> rcx "Inlining Arg"
+; V241 tmp193 [V241,T237] ( 3, 48 ) ref -> r13 class-hnd "impAppendStmt" <int[]>
+; V242 tmp194 [V242,T191] ( 4, 64 ) int -> rax "dup spill"
+; V243 tmp195 [V243,T192] ( 4, 64 ) int -> rax "dup spill"
+; V244 tmp196 [V244,T383] ( 2, 32 ) int -> rcx "Inlining Arg"
;* V245 tmp197 [V245 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V246 tmp198 [V246,T194] ( 5, 80 ) ref -> rax class-hnd "impAppendStmt" <int[]>
-; V247 tmp199 [V247,T236] ( 4, 64 ) int -> rcx "dup spill"
-; V248 tmp200 [V248,T237] ( 4, 64 ) int -> rcx "dup spill"
-; V249 tmp201 [V249,T493] ( 2, 32 ) int -> rsi "Inlining Arg"
-; V250 tmp202 [V250,T441] ( 4, 32 ) int -> rsi "Inline stloc first use temp"
-; V251 tmp203 [V251,T296] ( 3, 48 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-; V252 tmp204 [V252,T494] ( 2, 32 ) int -> rax "Strict ordering of exceptions for Array store"
-; V253 tmp205 [V253,T495] ( 2, 32 ) int -> rcx "Inlining Arg"
-; V254 tmp206 [V254,T139] ( 3, 96 ) int -> rcx "Inline stloc first use temp"
-; V255 tmp207 [V255,T81] ( 4, 128 ) int -> rdx "Inline stloc first use temp"
-; V256 tmp208 [V256,T38] ( 3, 192 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
+; V246 tmp198 [V246,T415] ( 5, 20 ) ref -> rax class-hnd "impAppendStmt" <int[]>
+; V247 tmp199 [V247,T437] ( 4, 16 ) int -> rcx "dup spill"
+; V248 tmp200 [V248,T438] ( 4, 16 ) int -> rcx "dup spill"
+; V249 tmp201 [V249,T521] ( 2, 8 ) int -> rsi "Inlining Arg"
+; V250 tmp202 [V250,T493] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
+; V251 tmp203 [V251,T449] ( 3, 12 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+; V252 tmp204 [V252,T522] ( 2, 8 ) int -> rax "Strict ordering of exceptions for Array store"
+; V253 tmp205 [V253,T384] ( 2, 32 ) int -> rcx "Inlining Arg"
+; V254 tmp206 [V254,T123] ( 3, 96 ) int -> rcx "Inline stloc first use temp"
+; V255 tmp207 [V255,T72] ( 4, 128 ) int -> rdx "Inline stloc first use temp"
+; V256 tmp208 [V256,T37] ( 3, 192 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
;* V257 tmp209 [V257 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V258 tmp210 [V258,T39] ( 3, 192 ) byref -> rcx "dup spill"
-; V259 tmp211 [V259,T496] ( 2, 32 ) int -> rsi "Inlining Arg"
-; V260 tmp212 [V260,T140] ( 3, 96 ) int -> rdi "Inline stloc first use temp"
-; V261 tmp213 [V261,T82] ( 4, 128 ) int -> rsi "Inline stloc first use temp"
-; V262 tmp214 [V262,T40] ( 3, 192 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+; V258 tmp210 [V258,T38] ( 3, 192 ) byref -> rcx "dup spill"
+; V259 tmp211 [V259,T523] ( 2, 8 ) int -> rsi "Inlining Arg"
+; V260 tmp212 [V260,T124] ( 3, 96 ) int -> rdi "Inline stloc first use temp"
+; V261 tmp213 [V261,T73] ( 4, 128 ) int -> rsi "Inline stloc first use temp"
+; V262 tmp214 [V262,T39] ( 3, 192 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
;* V263 tmp215 [V263 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V264 tmp216 [V264,T41] ( 3, 192 ) byref -> rdi "dup spill"
-; V265 tmp217 [V265,T514] ( 3, 24 ) int -> rdx "Inline return value spill temp"
-; V266 tmp218 [V266,T274] ( 6, 48 ) int -> rdx "Inline stloc first use temp"
+; V264 tmp216 [V264,T40] ( 3, 192 ) byref -> rdi "dup spill"
+; V265 tmp217 [V265,T395] ( 3, 24 ) int -> rdx "Inline return value spill temp"
+; V266 tmp218 [V266,T221] ( 6, 48 ) int -> rdx "Inline stloc first use temp"
;* V267 tmp219 [V267 ] ( 0, 0 ) int -> zero-ref
;* V268 tmp220 [V268 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V269 tmp221 [V269 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V270 tmp222 [V270,T515] ( 3, 24 ) int -> rdx "Inline return value spill temp"
-; V271 tmp223 [V271,T275] ( 6, 48 ) int -> rdx "Inline stloc first use temp"
+; V270 tmp222 [V270,T396] ( 3, 24 ) int -> rdx "Inline return value spill temp"
+; V271 tmp223 [V271,T222] ( 6, 48 ) int -> rdx "Inline stloc first use temp"
;* V272 tmp224 [V272 ] ( 0, 0 ) int -> zero-ref
;* V273 tmp225 [V273 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V274 tmp226 [V274 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V275 tmp227 [V275,T516] ( 3, 24 ) int -> rdi "Inline return value spill temp"
-; V276 tmp228 [V276,T276] ( 6, 48 ) int -> rdi "Inline stloc first use temp"
+; V275 tmp227 [V275,T397] ( 3, 24 ) int -> rdi "Inline return value spill temp"
+; V276 tmp228 [V276,T223] ( 6, 48 ) int -> rdi "Inline stloc first use temp"
;* V277 tmp229 [V277 ] ( 0, 0 ) int -> zero-ref
;* V278 tmp230 [V278 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V279 tmp231 [V279 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V280 tmp232 [V280,T517] ( 3, 24 ) ubyte -> rax "Inline return value spill temp"
-; V281 tmp233 [V281,T297] ( 3, 48 ) byref -> rax "Inlining Arg"
-; V282 tmp234 [V282,T415] ( 5, 40 ) ref -> rdi class-hnd "Inline stloc first use temp" <uint[]>
-; V283 tmp235 [V283,T86] ( 7, 112 ) ushort -> r12 "Inlining Arg"
-; V284 tmp236 [V284,T44] ( 11, 176 ) ref -> r13 class-hnd exact "Inlining Arg" <System.String>
-; V285 tmp237 [V285,T442] ( 4, 32 ) int -> rsi "Inline stloc first use temp"
-; V286 tmp238 [V286,T518] ( 3, 24 ) int -> rcx "Inline stloc first use temp"
-; V287 tmp239 [V287,T519] ( 3, 24 ) int -> r8 "Inline stloc first use temp"
-; V288 tmp240 [V288,T520] ( 3, 24 ) int -> rcx "Inline stloc first use temp"
-; V289 tmp241 [V289,T521] ( 3, 24 ) int -> r8 "Inline stloc first use temp"
-; V290 tmp242 [V290,T522] ( 3, 24 ) int -> [rbp-0x44] spill-single-def "Inline stloc first use temp"
-; V291 tmp243 [V291,T271] ( 7, 56 ) ubyte -> rax "Inline stloc first use temp"
-; V292 tmp244 [V292,T523] ( 3, 24 ) int -> rsi "Inline return value spill temp"
-; V293 tmp245 [V293,T23] ( 6, 256 ) int -> rdi "Inline stloc first use temp"
+; V280 tmp232 [V280,T398] ( 3, 24 ) ubyte -> rax "Inline return value spill temp"
+; V281 tmp233 [V281,T238] ( 3, 48 ) byref -> rax "Inlining Arg"
+; V282 tmp234 [V282,T329] ( 5, 40 ) ref -> rdi class-hnd "Inline stloc first use temp" <uint[]>
+; V283 tmp235 [V283,T76] ( 7, 112 ) ushort -> r12 "Inlining Arg"
+; V284 tmp236 [V284,T43] ( 11, 176 ) ref -> r13 class-hnd exact "Inlining Arg" <System.String>
+; V285 tmp237 [V285,T350] ( 4, 32 ) int -> rsi "Inline stloc first use temp"
+; V286 tmp238 [V286,T399] ( 3, 24 ) int -> rcx "Inline stloc first use temp"
+; V287 tmp239 [V287,T400] ( 3, 24 ) int -> r8 "Inline stloc first use temp"
+; V288 tmp240 [V288,T401] ( 3, 24 ) int -> rcx "Inline stloc first use temp"
+; V289 tmp241 [V289,T402] ( 3, 24 ) int -> r8 "Inline stloc first use temp"
+; V290 tmp242 [V290,T403] ( 3, 24 ) int -> [rbp-0x44] spill-single-def "Inline stloc first use temp"
+; V291 tmp243 [V291,T218] ( 7, 56 ) ubyte -> rax "Inline stloc first use temp"
+; V292 tmp244 [V292,T404] ( 3, 24 ) int -> rax "Inline return value spill temp"
+; V293 tmp245 [V293,T23] ( 6, 256 ) int -> rsi "Inline stloc first use temp"
;* V294 tmp246 [V294 ] ( 0, 0 ) int -> zero-ref
;* V295 tmp247 [V295 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V296 tmp248 [V296 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V297 tmp249 [V297,T524] ( 3, 24 ) int -> rsi "Inline return value spill temp"
-; V298 tmp250 [V298,T24] ( 6, 256 ) int -> rdi "Inline stloc first use temp"
+; V297 tmp249 [V297,T405] ( 3, 24 ) int -> rax "Inline return value spill temp"
+; V298 tmp250 [V298,T24] ( 6, 256 ) int -> rsi "Inline stloc first use temp"
;* V299 tmp251 [V299 ] ( 0, 0 ) int -> zero-ref
;* V300 tmp252 [V300 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V301 tmp253 [V301 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V302 tmp254 [V302,T525] ( 3, 24 ) int -> rdi "Inline return value spill temp"
+; V302 tmp254 [V302,T406] ( 3, 24 ) int -> rsi "Inline return value spill temp"
; V303 tmp255 [V303,T25] ( 6, 256 ) int -> rdi "Inline stloc first use temp"
;* V304 tmp256 [V304 ] ( 0, 0 ) int -> zero-ref
;* V305 tmp257 [V305 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V306 tmp258 [V306 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V307 tmp259 [V307,T141] ( 3, 96 ) ubyte -> rax "Inline return value spill temp"
+; V307 tmp259 [V307,T125] ( 3, 96 ) ubyte -> rax "Inline return value spill temp"
; V308 tmp260 [V308,T35] ( 5, 224 ) ref -> rdi class-hnd "Inline stloc first use temp" <uint[]>
; V309 tmp261 [V309,T10] ( 7, 512 ) ushort -> r13 "Inlining Arg"
-; V310 tmp262 [V310,T83] ( 4, 128 ) int -> rsi "Inline stloc first use temp"
-; V311 tmp263 [V311,T142] ( 3, 96 ) int -> r8 "Inline stloc first use temp"
-; V312 tmp264 [V312,T143] ( 3, 96 ) int -> r9 "Inline stloc first use temp"
-; V313 tmp265 [V313,T144] ( 3, 96 ) int -> rdx "Inline stloc first use temp"
-; V314 tmp266 [V314,T145] ( 3, 96 ) int -> r8 "Inline stloc first use temp"
-; V315 tmp267 [V315,T146] ( 3, 96 ) int -> [rbp-0x48] spill-single-def "Inline stloc first use temp"
+; V310 tmp262 [V310,T74] ( 4, 128 ) int -> rsi "Inline stloc first use temp"
+; V311 tmp263 [V311,T126] ( 3, 96 ) int -> r8 "Inline stloc first use temp"
+; V312 tmp264 [V312,T127] ( 3, 96 ) int -> r9 "Inline stloc first use temp"
+; V313 tmp265 [V313,T128] ( 3, 96 ) int -> rdx "Inline stloc first use temp"
+; V314 tmp266 [V314,T129] ( 3, 96 ) int -> r8 "Inline stloc first use temp"
+; V315 tmp267 [V315,T130] ( 3, 96 ) int -> [rbp-0x48] spill-single-def "Inline stloc first use temp"
; V316 tmp268 [V316,T34] ( 7, 224 ) ubyte -> rax "Inline stloc first use temp"
-; V317 tmp269 [V317,T419] ( 4, 40 ) int -> rdx "Inline return value spill temp"
-; V318 tmp270 [V318,T447] ( 3, 32 ) int -> rsi "Inline return value spill temp"
+; V317 tmp269 [V317,T333] ( 4, 40 ) int -> rdx "Inline return value spill temp"
+; V318 tmp270 [V318,T355] ( 3, 32 ) int -> rsi "Inline return value spill temp"
; V319 tmp271 [V319,T26] ( 6, 256 ) int -> rax "Inline stloc first use temp"
;* V320 tmp272 [V320 ] ( 0, 0 ) int -> zero-ref
;* V321 tmp273 [V321 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V322 tmp274 [V322 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V323 tmp275 [V323,T497] ( 2, 32 ) int -> rax "impAppendStmt"
+; V323 tmp275 [V323,T385] ( 2, 32 ) int -> rax "impAppendStmt"
;* V324 tmp276 [V324 ] ( 0, 0 ) ref -> zero-ref
;* V325 tmp277 [V325 ] ( 0, 0 ) int -> zero-ref
;* V326 tmp278 [V326 ] ( 0, 0 ) ref -> zero-ref
;* V327 tmp279 [V327 ] ( 0, 0 ) int -> zero-ref
-; V328 tmp280 [V328,T526] ( 3, 24 ) int -> rdx
-; V329 tmp281 [V329,T448] ( 3, 32 ) int -> rax "Inline return value spill temp"
-; V330 tmp282 [V330,T420] ( 4, 40 ) int -> r12 "Inline return value spill temp"
-; V331 tmp283 [V331,T449] ( 3, 32 ) int -> r13 "Inline return value spill temp"
-; V332 tmp284 [V332,T360] ( 3, 48 ) int -> rdi "Inlining Arg"
+; V328 tmp280 [V328,T407] ( 3, 24 ) int -> rdx
+; V329 tmp281 [V329,T356] ( 3, 32 ) int -> rax "Inline return value spill temp"
+; V330 tmp282 [V330,T334] ( 4, 40 ) int -> r12 "Inline return value spill temp"
+; V331 tmp283 [V331,T357] ( 3, 32 ) int -> r13 "Inline return value spill temp"
+; V332 tmp284 [V332,T290] ( 3, 48 ) int -> rdi "Inlining Arg"
;* V333 tmp285 [V333 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V334 tmp286 [V334 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V335 tmp287 [V335 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V336 tmp288 [V336 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V337 tmp289 [V337 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V338 tmp290 [V338 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V339 tmp291 [V339 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
;* V340 tmp292 [V340 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V341 tmp293 [V341,T418] ( 5, 40 ) int -> rax "Inline return value spill temp"
-; V342 tmp294 [V342,T238] ( 4, 64 ) short -> rsi "Inlining Arg"
+; V341 tmp293 [V341,T332] ( 5, 40 ) int -> rax "Inline return value spill temp"
+; V342 tmp294 [V342,T193] ( 4, 64 ) short -> rsi "Inlining Arg"
;* V343 tmp295 [V343 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V344 tmp296 [V344 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V345 tmp297 [V345,T28] ( 4, 256 ) int -> rax "Inline stloc first use temp"
;* V346 tmp298 [V346 ] ( 0, 0 ) int -> zero-ref
;* V347 tmp299 [V347 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V348 tmp300 [V348 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V349 tmp301 [V349,T450] ( 3, 32 ) int -> rax "Inline return value spill temp"
-; V350 tmp302 [V350,T421] ( 4, 40 ) int -> r12 "Inline return value spill temp"
-; V351 tmp303 [V351,T451] ( 3, 32 ) int -> r13 "Inline return value spill temp"
+; V349 tmp301 [V349,T358] ( 3, 32 ) int -> rax "Inline return value spill temp"
+; V350 tmp302 [V350,T335] ( 4, 40 ) int -> r12 "Inline return value spill temp"
+; V351 tmp303 [V351,T359] ( 3, 32 ) int -> r13 "Inline return value spill temp"
; V352 tmp304 [V352,T27] ( 6, 256 ) int -> rdi "Inline stloc first use temp"
;* V353 tmp305 [V353 ] ( 0, 0 ) int -> zero-ref
;* V354 tmp306 [V354 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V355 tmp307 [V355 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V356 tmp308 [V356,T147] ( 3, 96 ) ubyte -> rax "Inline return value spill temp"
+; V356 tmp308 [V356,T131] ( 3, 96 ) ubyte -> rax "Inline return value spill temp"
; V357 tmp309 [V357,T36] ( 5, 224 ) ref -> rsi class-hnd "Inline stloc first use temp" <uint[]>
-; V358 tmp310 [V358,T11] ( 6, 448 ) ushort -> rdi "Inlining Arg"
-; V359 tmp311 [V359,T84] ( 4, 128 ) int -> rdx "Inline stloc first use temp"
-; V360 tmp312 [V360,T148] ( 3, 96 ) int -> r8 "Inline stloc first use temp"
-; V361 tmp313 [V361,T149] ( 3, 96 ) int -> r9 "Inline stloc first use temp"
-; V362 tmp314 [V362,T452] ( 3, 32 ) int -> rdi "Inline return value spill temp"
-; V363 tmp315 [V363,T453] ( 3, 32 ) int -> rdi "Inline return value spill temp"
-; V364 tmp316 [V364,T422] ( 4, 40 ) int -> rdi "Inline return value spill temp"
-; V365 tmp317 [V365,T280] ( 4, 48 ) int -> rsi "Inline return value spill temp"
-; V366 tmp318 [V366,T277] ( 6, 48 ) int -> rax "Inline stloc first use temp"
+; V358 tmp310 [V358,T12] ( 6, 448 ) ushort -> rdi "Inlining Arg"
+; V359 tmp311 [V359,T75] ( 4, 128 ) int -> rdx "Inline stloc first use temp"
+; V360 tmp312 [V360,T132] ( 3, 96 ) int -> r8 "Inline stloc first use temp"
+; V361 tmp313 [V361,T133] ( 3, 96 ) int -> r9 "Inline stloc first use temp"
+; V362 tmp314 [V362,T360] ( 3, 32 ) int -> rdi "Inline return value spill temp"
+; V363 tmp315 [V363,T361] ( 3, 32 ) int -> rdi "Inline return value spill temp"
+; V364 tmp316 [V364,T336] ( 4, 40 ) int -> rdi "Inline return value spill temp"
+; V365 tmp317 [V365,T227] ( 4, 48 ) int -> rsi "Inline return value spill temp"
+; V366 tmp318 [V366,T224] ( 6, 48 ) int -> rax "Inline stloc first use temp"
;* V367 tmp319 [V367 ] ( 0, 0 ) int -> zero-ref
;* V368 tmp320 [V368 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V369 tmp321 [V369 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V370 tmp322 [V370,T454] ( 3, 32 ) int -> rdx "Inline return value spill temp"
-; V371 tmp323 [V371,T278] ( 6, 48 ) int -> rax "Inline stloc first use temp"
+; V370 tmp322 [V370,T362] ( 3, 32 ) int -> rdx "Inline return value spill temp"
+; V371 tmp323 [V371,T225] ( 6, 48 ) int -> rax "Inline stloc first use temp"
;* V372 tmp324 [V372 ] ( 0, 0 ) int -> zero-ref
;* V373 tmp325 [V373 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V374 tmp326 [V374 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V375 tmp327 [V375,T455] ( 3, 32 ) int -> rdx "Inline return value spill temp"
-; V376 tmp328 [V376,T279] ( 6, 48 ) int -> rdi "Inline stloc first use temp"
+; V375 tmp327 [V375,T363] ( 3, 32 ) int -> rdx "Inline return value spill temp"
+; V376 tmp328 [V376,T226] ( 6, 48 ) int -> rdi "Inline stloc first use temp"
;* V377 tmp329 [V377 ] ( 0, 0 ) int -> zero-ref
;* V378 tmp330 [V378 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V379 tmp331 [V379 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V380 tmp332 [V380,T527] ( 3, 24 ) ubyte -> rax "Inline return value spill temp"
-; V381 tmp333 [V381,T298] ( 3, 48 ) byref -> rax "Inlining Arg"
-; V382 tmp334 [V382,T416] ( 5, 40 ) ref -> rdi class-hnd "Inline stloc first use temp" <uint[]>
-; V383 tmp335 [V383,T91] ( 6, 96 ) ushort -> r12 "Inlining Arg"
-; V384 tmp336 [V384,T299] ( 3, 48 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "Inlining Arg" <System.String>
-; V385 tmp337 [V385,T443] ( 4, 32 ) int -> rsi "Inline stloc first use temp"
-; V386 tmp338 [V386,T528] ( 3, 24 ) int -> rcx "Inline stloc first use temp"
-; V387 tmp339 [V387,T529] ( 3, 24 ) int -> r8 "Inline stloc first use temp"
-; V388 tmp340 [V388,T456] ( 3, 32 ) int -> rdx "Inline return value spill temp"
+; V380 tmp332 [V380,T408] ( 3, 24 ) ubyte -> rax "Inline return value spill temp"
+; V381 tmp333 [V381,T239] ( 3, 48 ) byref -> rax "Inlining Arg"
+; V382 tmp334 [V382,T330] ( 5, 40 ) ref -> rdi class-hnd "Inline stloc first use temp" <uint[]>
+; V383 tmp335 [V383,T81] ( 6, 96 ) ushort -> r12 "Inlining Arg"
+; V384 tmp336 [V384,T240] ( 3, 48 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "Inlining Arg" <System.String>
+; V385 tmp337 [V385,T351] ( 4, 32 ) int -> rsi "Inline stloc first use temp"
+; V386 tmp338 [V386,T409] ( 3, 24 ) int -> rcx "Inline stloc first use temp"
+; V387 tmp339 [V387,T410] ( 3, 24 ) int -> r8 "Inline stloc first use temp"
+; V388 tmp340 [V388,T364] ( 3, 32 ) int -> rdx "Inline return value spill temp"
; V389 tmp341 [V389,T09] ( 23, 513 ) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V390 tmp342 [V390,T08] ( 28, 553 ) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V390 tmp342 [V390,T07] ( 28, 553 ) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V391 tmp343 [V391 ] ( 0, 0 ) byref -> zero-ref "field V74._reference (fldOffset=0x0)" P-INDEP
;* V392 tmp344 [V392 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP
;* V393 tmp345 [V393 ] ( 0, 0 ) byref -> zero-ref "field V269._reference (fldOffset=0x0)" P-INDEP
;* V394 tmp346 [V394 ] ( 0, 0 ) int -> zero-ref "field V269._length (fldOffset=0x8)" P-INDEP
;* V395 tmp347 [V395 ] ( 0, 0 ) byref -> zero-ref "field V274._reference (fldOffset=0x0)" P-INDEP
;* V396 tmp348 [V396 ] ( 0, 0 ) int -> zero-ref "field V274._length (fldOffset=0x8)" P-INDEP
;* V397 tmp349 [V397 ] ( 0, 0 ) byref -> zero-ref "field V279._reference (fldOffset=0x0)" P-INDEP
;* V398 tmp350 [V398 ] ( 0, 0 ) int -> zero-ref "field V279._length (fldOffset=0x8)" P-INDEP
;* V399 tmp351 [V399 ] ( 0, 0 ) byref -> zero-ref "field V296._reference (fldOffset=0x0)" P-INDEP
;* V400 tmp352 [V400 ] ( 0, 0 ) int -> zero-ref "field V296._length (fldOffset=0x8)" P-INDEP
;* V401 tmp353 [V401 ] ( 0, 0 ) byref -> zero-ref "field V301._reference (fldOffset=0x0)" P-INDEP
;* V402 tmp354 [V402 ] ( 0, 0 ) int -> zero-ref "field V301._length (fldOffset=0x8)" P-INDEP
;* V403 tmp355 [V403 ] ( 0, 0 ) byref -> zero-ref "field V306._reference (fldOffset=0x0)" P-INDEP
;* V404 tmp356 [V404 ] ( 0, 0 ) int -> zero-ref "field V306._length (fldOffset=0x8)" P-INDEP
;* V405 tmp357 [V405 ] ( 0, 0 ) byref -> zero-ref "field V322._reference (fldOffset=0x0)" P-INDEP
;* V406 tmp358 [V406 ] ( 0, 0 ) int -> zero-ref "field V322._length (fldOffset=0x8)" P-INDEP
-; V407 tmp359 [V407,T510] ( 3, 24 ) byref -> rdi "field V333._reference (fldOffset=0x0)" P-INDEP
+; V407 tmp359 [V407,T391] ( 3, 24 ) byref -> rdi "field V333._reference (fldOffset=0x0)" P-INDEP
;* V408 tmp360 [V408 ] ( 0, 0 ) int -> zero-ref "field V333._length (fldOffset=0x8)" P-INDEP
;* V409 tmp361 [V409 ] ( 0, 0 ) byref -> zero-ref "field V336._reference (fldOffset=0x0)" P-INDEP
;* V410 tmp362 [V410 ] ( 0, 0 ) int -> zero-ref "field V336._length (fldOffset=0x8)" P-INDEP
;* V411 tmp363 [V411 ] ( 0, 0 ) byref -> zero-ref "field V337._reference (fldOffset=0x0)" P-INDEP
;* V412 tmp364 [V412 ] ( 0, 0 ) int -> zero-ref "field V337._length (fldOffset=0x8)" P-INDEP
;* V413 tmp365 [V413 ] ( 0, 0 ) byref -> zero-ref "field V344._reference (fldOffset=0x0)" P-INDEP
;* V414 tmp366 [V414 ] ( 0, 0 ) int -> zero-ref "field V344._length (fldOffset=0x8)" P-INDEP
;* V415 tmp367 [V415 ] ( 0, 0 ) byref -> zero-ref "field V348._reference (fldOffset=0x0)" P-INDEP
;* V416 tmp368 [V416 ] ( 0, 0 ) int -> zero-ref "field V348._length (fldOffset=0x8)" P-INDEP
;* V417 tmp369 [V417 ] ( 0, 0 ) byref -> zero-ref "field V355._reference (fldOffset=0x0)" P-INDEP
;* V418 tmp370 [V418 ] ( 0, 0 ) int -> zero-ref "field V355._length (fldOffset=0x8)" P-INDEP
;* V419 tmp371 [V419 ] ( 0, 0 ) byref -> zero-ref "field V369._reference (fldOffset=0x0)" P-INDEP
;* V420 tmp372 [V420 ] ( 0, 0 ) int -> zero-ref "field V369._length (fldOffset=0x8)" P-INDEP
;* V421 tmp373 [V421 ] ( 0, 0 ) byref -> zero-ref "field V374._reference (fldOffset=0x0)" P-INDEP
;* V422 tmp374 [V422 ] ( 0, 0 ) int -> zero-ref "field V374._length (fldOffset=0x8)" P-INDEP
;* V423 tmp375 [V423 ] ( 0, 0 ) byref -> zero-ref "field V379._reference (fldOffset=0x0)" P-INDEP
;* V424 tmp376 [V424 ] ( 0, 0 ) int -> zero-ref "field V379._length (fldOffset=0x8)" P-INDEP
-; V425 tmp377 [V425,T536] ( 3, 6 ) ref -> rdi single-def "arr expr"
-; V426 tmp378 [V426,T300] ( 3, 48 ) ref -> rdi "arr expr"
-; V427 tmp379 [V427,T361] ( 3, 48 ) int -> rax "index expr"
-; V428 tmp380 [V428,T301] ( 3, 48 ) ref -> r13 "arr expr"
-; V429 tmp381 [V429,T362] ( 3, 48 ) int -> rdi "index expr"
-; V430 tmp382 [V430,T302] ( 3, 48 ) ref -> rcx "arr expr"
-; V431 tmp383 [V431,T363] ( 3, 48 ) int -> rdx "index expr"
-; V432 tmp384 [V432,T303] ( 3, 48 ) ref -> rax "arr expr"
-; V433 tmp385 [V433,T364] ( 3, 48 ) int -> rcx "index expr"
-; V434 tmp386 [V434,T457] ( 2, 32 ) ref -> rcx "arr expr"
-; V435 tmp387 [V435,T365] ( 3, 48 ) int -> rdi "index expr"
-; V436 tmp388 [V436,T304] ( 3, 48 ) ref -> rcx "arr expr"
-; V437 tmp389 [V437,T366] ( 3, 48 ) int -> rax "index expr"
-; V438 tmp390 [V438,T305] ( 3, 48 ) ref -> rdi "arr expr"
-; V439 tmp391 [V439,T367] ( 3, 48 ) int -> rax "index expr"
-; V440 tmp392 [V440,T15] ( 3, 384 ) ref -> rsi "arr expr"
-; V441 tmp393 [V441,T16] ( 3, 384 ) int -> rcx "index expr"
-; V442 tmp394 [V442,T42] ( 3, 192 ) ref -> rsi "arr expr"
-; V443 tmp395 [V443,T306] ( 3, 48 ) ref -> rsi "arr expr"
-; V444 tmp396 [V444,T368] ( 3, 48 ) int -> rax "index expr"
-; V445 tmp397 [V445,T307] ( 3, 48 ) ref -> rsi "arr expr"
-; V446 tmp398 [V446,T369] ( 3, 48 ) int -> rdi "index expr"
-; V447 tmp399 [V447,T308] ( 3, 48 ) ref -> rsi "arr expr"
-; V448 tmp400 [V448,T309] ( 3, 48 ) ref -> rdi "arr expr"
-; V449 tmp401 [V449,T370] ( 3, 48 ) int -> rsi "index expr"
-; V450 tmp402 [V450,T310] ( 3, 48 ) ref -> r9 "arr expr"
-; V451 tmp403 [V451,T371] ( 3, 48 ) int -> r11 "index expr"
-; V452 tmp404 [V452,T311] ( 3, 48 ) ref -> rsi "arr expr"
-; V453 tmp405 [V453,T96] ( 3, 96 ) ref -> rdi "arr expr"
-; V454 tmp406 [V454,T150] ( 3, 96 ) int -> rax "index expr"
-; V455 tmp407 [V455,T241] ( 2, 64 ) ref -> rdi "arr expr"
-; V456 tmp408 [V456,T151] ( 3, 96 ) int -> rcx "index expr"
-; V457 tmp409 [V457,T242] ( 2, 64 ) ref -> rcx "arr expr"
-; V458 tmp410 [V458,T152] ( 3, 96 ) int -> r8 "index expr"
-; V459 tmp411 [V459,T97] ( 3, 96 ) ref -> r8 "arr expr"
-; V460 tmp412 [V460,T153] ( 3, 96 ) int -> r9 "index expr"
-; V461 tmp413 [V461,T458] ( 2, 32 ) ref -> rdi "arr expr"
-; V462 tmp414 [V462,T372] ( 3, 48 ) int -> rax "index expr"
-; V463 tmp415 [V463,T459] ( 2, 32 ) ref -> rsi "arr expr"
-; V464 tmp416 [V464,T373] ( 3, 48 ) int -> rax "index expr"
-; V465 tmp417 [V465,T243] ( 2, 64 ) ref -> rsi "arr expr"
-; V466 tmp418 [V466,T154] ( 3, 96 ) int -> rcx "index expr"
-; V467 tmp419 [V467,T98] ( 3, 96 ) ref -> rdi "arr expr"
-; V468 tmp420 [V468,T155] ( 3, 96 ) int -> rax "index expr"
-; V469 tmp421 [V469,T99] ( 3, 96 ) ref -> rsi "arr expr"
-; V470 tmp422 [V470,T312] ( 3, 48 ) ref -> rdx "arr expr"
-; V471 tmp423 [V471,T374] ( 3, 48 ) int -> rdi "index expr"
-; V472 tmp424 [V472,T313] ( 3, 48 ) ref -> rdx "arr expr"
-; V473 tmp425 [V473,T375] ( 3, 48 ) int -> rax "index expr"
-;* V474 tmp426 [V474,T531] ( 0, 0 ) ref -> zero-ref "arr expr"
-;* V475 tmp427 [V475,T533] ( 0, 0 ) int -> zero-ref "index expr"
-; V476 tmp428 [V476,T460] ( 2, 32 ) ref -> rdx "arr expr"
-; V477 tmp429 [V477,T376] ( 3, 48 ) int -> rsi "index expr"
-; V478 tmp430 [V478,T314] ( 3, 48 ) ref -> rsi "arr expr"
-; V479 tmp431 [V479,T377] ( 3, 48 ) int -> rdx "index expr"
-;* V480 tmp432 [V480,T532] ( 0, 0 ) ref -> zero-ref "arr expr"
-;* V481 tmp433 [V481,T534] ( 0, 0 ) int -> zero-ref "index expr"
-; V482 tmp434 [V482,T498] ( 2, 32 ) int -> rsi "argument with side effect"
-; V483 tmp435 [V483,T499] ( 2, 32 ) int -> rdx "argument with side effect"
-; V484 tmp436 [V484,T100] ( 3, 96 ) ref -> rsi "arr expr"
-; V485 tmp437 [V485,T156] ( 3, 96 ) int -> rax "index expr"
-; V486 tmp438 [V486,T244] ( 2, 64 ) ref -> rsi "arr expr"
-; V487 tmp439 [V487,T157] ( 3, 96 ) int -> rdi "index expr"
-; V488 tmp440 [V488,T267] ( 2, 64 ) int -> rsi "argument with side effect"
-; V489 tmp441 [V489,T101] ( 3, 96 ) ref -> rdi "arr expr"
-; V490 tmp442 [V490,T158] ( 3, 96 ) int -> rax "index expr"
-; V491 tmp443 [V491,T102] ( 3, 96 ) ref -> rsi "arr expr"
-; V492 tmp444 [V492,T103] ( 3, 96 ) ref -> rsi "arr expr"
-; V493 tmp445 [V493,T159] ( 3, 96 ) int -> rax "index expr"
-; V494 tmp446 [V494,T245] ( 2, 64 ) ref -> rsi "arr expr"
-; V495 tmp447 [V495,T160] ( 3, 96 ) int -> rdi "index expr"
-; V496 tmp448 [V496,T268] ( 2, 64 ) int -> rsi "argument with side effect"
-; V497 tmp449 [V497,T104] ( 3, 96 ) ref -> rdi "arr expr"
-; V498 tmp450 [V498,T161] ( 3, 96 ) int -> rax "index expr"
-; V499 tmp451 [V499,T105] ( 3, 96 ) ref -> rdi "arr expr"
-; V500 tmp452 [V500,T162] ( 3, 96 ) int -> rax "index expr"
-; V501 tmp453 [V501,T106] ( 3, 96 ) ref -> rdi "arr expr"
-; V502 tmp454 [V502,T315] ( 3, 48 ) ref -> rsi "arr expr"
-; V503 tmp455 [V503,T378] ( 3, 48 ) int -> rdi "index expr"
-; V504 tmp456 [V504,T316] ( 3, 48 ) ref -> rdi "arr expr"
-; V505 tmp457 [V505,T379] ( 3, 48 ) int -> rsi "index expr"
-; V506 tmp458 [V506,T317] ( 3, 48 ) ref -> rdi "arr expr"
-; V507 tmp459 [V507,T107] ( 3, 96 ) ref -> rdx "arr expr"
-; V508 tmp460 [V508,T163] ( 3, 96 ) int -> rsi "index expr"
-; V509 tmp461 [V509,T318] ( 3, 48 ) ref -> rsi "arr expr"
-; V510 tmp462 [V510,T380] ( 3, 48 ) int -> rax "index expr"
-; V511 tmp463 [V511,T319] ( 3, 48 ) ref -> r8 "arr expr"
-; V512 tmp464 [V512,T381] ( 3, 48 ) int -> r9 "index expr"
-; V513 tmp465 [V513,T246] ( 2, 64 ) ref -> rdx "arr expr"
-; V514 tmp466 [V514,T164] ( 3, 96 ) int -> rdi "index expr"
-; V515 tmp467 [V515,T320] ( 3, 48 ) ref -> rsi "arr expr"
-; V516 tmp468 [V516,T382] ( 3, 48 ) int -> rax "index expr"
-; V517 tmp469 [V517,T321] ( 3, 48 ) ref -> r8 "arr expr"
-; V518 tmp470 [V518,T383] ( 3, 48 ) int -> r9 "index expr"
-; V519 tmp471 [V519,T247] ( 2, 64 ) ref -> rdx "arr expr"
-; V520 tmp472 [V520,T165] ( 3, 96 ) int -> rdi "index expr"
-; V521 tmp473 [V521,T108] ( 3, 96 ) ref -> rsi "arr expr"
-; V522 tmp474 [V522,T166] ( 3, 96 ) int -> rax "index expr"
-; V523 tmp475 [V523,T248] ( 2, 64 ) ref -> rdx "arr expr"
-; V524 tmp476 [V524,T167] ( 3, 96 ) int -> rdi "index expr"
-; V525 tmp477 [V525,T511] ( 3, 24 ) ref -> rdi "arr expr"
-; V526 tmp478 [V526,T530] ( 3, 24 ) int -> rsi "index expr"
-; V527 tmp479 [V527,T537] ( 3, 6 ) ref -> rax single-def "arr expr"
-; V528 tmp480 [V528,T109] ( 3, 96 ) ref -> rdi "arr expr"
-; V529 tmp481 [V529,T168] ( 3, 96 ) int -> rax "index expr"
-; V530 tmp482 [V530,T110] ( 3, 96 ) ref -> rdi "arr expr"
-; V531 tmp483 [V531,T322] ( 3, 48 ) ref -> rdi "arr expr"
-; V532 tmp484 [V532,T384] ( 3, 48 ) int -> rsi "index expr"
-; V533 tmp485 [V533,T323] ( 3, 48 ) ref -> rsi "arr expr"
-; V534 tmp486 [V534,T385] ( 3, 48 ) int -> rdi "index expr"
-; V535 tmp487 [V535,T461] ( 2, 32 ) ref -> rsi "arr expr"
-; V536 tmp488 [V536,T386] ( 3, 48 ) int -> rdi "index expr"
-; V537 tmp489 [V537,T500] ( 2, 32 ) int -> rsi "argument with side effect"
-; V538 tmp490 [V538,T324] ( 3, 48 ) ref -> rcx "arr expr"
-; V539 tmp491 [V539,T387] ( 3, 48 ) int -> rdx "index expr"
+; V425 tmp377 [V425,T533] ( 3, 6 ) ref -> rdi single-def "arr expr"
+; V426 tmp378 [V426,T241] ( 3, 48 ) ref -> rdi "arr expr"
+; V427 tmp379 [V427,T291] ( 3, 48 ) int -> rax "index expr"
+; V428 tmp380 [V428,T242] ( 3, 48 ) ref -> r13 "arr expr"
+; V429 tmp381 [V429,T292] ( 3, 48 ) int -> rdi "index expr"
+; V430 tmp382 [V430,T243] ( 3, 48 ) ref -> rcx "arr expr"
+; V431 tmp383 [V431,T293] ( 3, 48 ) int -> rdx "index expr"
+; V432 tmp384 [V432,T244] ( 3, 48 ) ref -> rax "arr expr"
+; V433 tmp385 [V433,T294] ( 3, 48 ) int -> rcx "index expr"
+; V434 tmp386 [V434,T365] ( 2, 32 ) ref -> rcx "arr expr"
+; V435 tmp387 [V435,T295] ( 3, 48 ) int -> rdi "index expr"
+; V436 tmp388 [V436,T245] ( 3, 48 ) ref -> rcx "arr expr"
+; V437 tmp389 [V437,T296] ( 3, 48 ) int -> rax "index expr"
+; V438 tmp390 [V438,T246] ( 3, 48 ) ref -> rdi "arr expr"
+; V439 tmp391 [V439,T297] ( 3, 48 ) int -> rax "index expr"
+; V440 tmp392 [V440,T16] ( 3, 384 ) ref -> rsi "arr expr"
+; V441 tmp393 [V441,T17] ( 3, 384 ) int -> rcx "index expr"
+; V442 tmp394 [V442,T41] ( 3, 192 ) ref -> rsi "arr expr"
+; V443 tmp395 [V443,T247] ( 3, 48 ) ref -> rsi "arr expr"
+; V444 tmp396 [V444,T298] ( 3, 48 ) int -> rax "index expr"
+; V445 tmp397 [V445,T248] ( 3, 48 ) ref -> rsi "arr expr"
+; V446 tmp398 [V446,T299] ( 3, 48 ) int -> rdi "index expr"
+; V447 tmp399 [V447,T249] ( 3, 48 ) ref -> rsi "arr expr"
+; V448 tmp400 [V448,T250] ( 3, 48 ) ref -> r9 "arr expr"
+; V449 tmp401 [V449,T300] ( 3, 48 ) int -> rsi "index expr"
+; V450 tmp402 [V450,T251] ( 3, 48 ) ref -> rdi "arr expr"
+; V451 tmp403 [V451,T301] ( 3, 48 ) int -> r11 "index expr"
+; V452 tmp404 [V452,T252] ( 3, 48 ) ref -> rsi "arr expr"
+; V453 tmp405 [V453,T84] ( 3, 96 ) ref -> rdi "arr expr"
+; V454 tmp406 [V454,T134] ( 3, 96 ) int -> rax "index expr"
+; V455 tmp407 [V455,T195] ( 2, 64 ) ref -> rdi "arr expr"
+; V456 tmp408 [V456,T135] ( 3, 96 ) int -> rcx "index expr"
+; V457 tmp409 [V457,T196] ( 2, 64 ) ref -> rcx "arr expr"
+; V458 tmp410 [V458,T136] ( 3, 96 ) int -> r8 "index expr"
+; V459 tmp411 [V459,T85] ( 3, 96 ) ref -> r8 "arr expr"
+; V460 tmp412 [V460,T137] ( 3, 96 ) int -> r9 "index expr"
+; V461 tmp413 [V461,T366] ( 2, 32 ) ref -> rdi "arr expr"
+; V462 tmp414 [V462,T302] ( 3, 48 ) int -> rax "index expr"
+; V463 tmp415 [V463,T367] ( 2, 32 ) ref -> rsi "arr expr"
+; V464 tmp416 [V464,T303] ( 3, 48 ) int -> rax "index expr"
+; V465 tmp417 [V465,T197] ( 2, 64 ) ref -> rsi "arr expr"
+; V466 tmp418 [V466,T138] ( 3, 96 ) int -> rcx "index expr"
+; V467 tmp419 [V467,T86] ( 3, 96 ) ref -> rdi "arr expr"
+; V468 tmp420 [V468,T139] ( 3, 96 ) int -> rax "index expr"
+; V469 tmp421 [V469,T87] ( 3, 96 ) ref -> rsi "arr expr"
+; V470 tmp422 [V470,T253] ( 3, 48 ) ref -> rdx "arr expr"
+; V471 tmp423 [V471,T304] ( 3, 48 ) int -> rdi "index expr"
+; V472 tmp424 [V472,T254] ( 3, 48 ) ref -> rdx "arr expr"
+; V473 tmp425 [V473,T305] ( 3, 48 ) int -> rax "index expr"
+;* V474 tmp426 [V474,T439] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V475 tmp427 [V475,T440] ( 0, 0 ) int -> zero-ref "index expr"
+; V476 tmp428 [V476,T495] ( 2, 8 ) ref -> rdx "arr expr"
+; V477 tmp429 [V477,T465] ( 3, 12 ) int -> rsi "index expr"
+; V478 tmp430 [V478,T450] ( 3, 12 ) ref -> rsi "arr expr"
+; V479 tmp431 [V479,T466] ( 3, 12 ) int -> rdx "index expr"
+;* V480 tmp432 [V480,T535] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V481 tmp433 [V481,T537] ( 0, 0 ) int -> zero-ref "index expr"
+; V482 tmp434 [V482,T524] ( 2, 8 ) int -> rsi "argument with side effect"
+; V483 tmp435 [V483,T525] ( 2, 8 ) int -> rdx "argument with side effect"
+; V484 tmp436 [V484,T88] ( 3, 96 ) ref -> rsi "arr expr"
+; V485 tmp437 [V485,T140] ( 3, 96 ) int -> rax "index expr"
+; V486 tmp438 [V486,T198] ( 2, 64 ) ref -> rsi "arr expr"
+; V487 tmp439 [V487,T141] ( 3, 96 ) int -> rdi "index expr"
+; V488 tmp440 [V488,T215] ( 2, 64 ) int -> rsi "argument with side effect"
+; V489 tmp441 [V489,T89] ( 3, 96 ) ref -> rdi "arr expr"
+; V490 tmp442 [V490,T142] ( 3, 96 ) int -> rax "index expr"
+; V491 tmp443 [V491,T90] ( 3, 96 ) ref -> rsi "arr expr"
+; V492 tmp444 [V492,T451] ( 3, 12 ) ref -> rsi "arr expr"
+; V493 tmp445 [V493,T467] ( 3, 12 ) int -> rax "index expr"
+; V494 tmp446 [V494,T496] ( 2, 8 ) ref -> rsi "arr expr"
+; V495 tmp447 [V495,T468] ( 3, 12 ) int -> rdi "index expr"
+; V496 tmp448 [V496,T526] ( 2, 8 ) int -> rsi "argument with side effect"
+; V497 tmp449 [V497,T91] ( 3, 96 ) ref -> rdi "arr expr"
+; V498 tmp450 [V498,T143] ( 3, 96 ) int -> rax "index expr"
+; V499 tmp451 [V499,T92] ( 3, 96 ) ref -> rdi "arr expr"
+; V500 tmp452 [V500,T144] ( 3, 96 ) int -> rax "index expr"
+; V501 tmp453 [V501,T93] ( 3, 96 ) ref -> rdi "arr expr"
+; V502 tmp454 [V502,T255] ( 3, 48 ) ref -> rsi "arr expr"
+; V503 tmp455 [V503,T306] ( 3, 48 ) int -> rdi "index expr"
+; V504 tmp456 [V504,T256] ( 3, 48 ) ref -> rdi "arr expr"
+; V505 tmp457 [V505,T307] ( 3, 48 ) int -> rsi "index expr"
+; V506 tmp458 [V506,T257] ( 3, 48 ) ref -> rdi "arr expr"
+; V507 tmp459 [V507,T94] ( 3, 96 ) ref -> rdx "arr expr"
+; V508 tmp460 [V508,T145] ( 3, 96 ) int -> rsi "index expr"
+; V509 tmp461 [V509,T258] ( 3, 48 ) ref -> rsi "arr expr"
+; V510 tmp462 [V510,T308] ( 3, 48 ) int -> rax "index expr"
+; V511 tmp463 [V511,T259] ( 3, 48 ) ref -> r8 "arr expr"
+; V512 tmp464 [V512,T309] ( 3, 48 ) int -> r9 "index expr"
+; V513 tmp465 [V513,T199] ( 2, 64 ) ref -> rdx "arr expr"
+; V514 tmp466 [V514,T146] ( 3, 96 ) int -> rdi "index expr"
+; V515 tmp467 [V515,T260] ( 3, 48 ) ref -> rsi "arr expr"
+; V516 tmp468 [V516,T310] ( 3, 48 ) int -> rax "index expr"
+; V517 tmp469 [V517,T261] ( 3, 48 ) ref -> r8 "arr expr"
+; V518 tmp470 [V518,T311] ( 3, 48 ) int -> r9 "index expr"
+; V519 tmp471 [V519,T200] ( 2, 64 ) ref -> rdx "arr expr"
+; V520 tmp472 [V520,T147] ( 3, 96 ) int -> rdi "index expr"
+; V521 tmp473 [V521,T95] ( 3, 96 ) ref -> rsi "arr expr"
+; V522 tmp474 [V522,T148] ( 3, 96 ) int -> rax "index expr"
+; V523 tmp475 [V523,T201] ( 2, 64 ) ref -> rdx "arr expr"
+; V524 tmp476 [V524,T149] ( 3, 96 ) int -> rdi "index expr"
+; V525 tmp477 [V525,T392] ( 3, 24 ) ref -> rdi "arr expr"
+; V526 tmp478 [V526,T411] ( 3, 24 ) int -> rsi "index expr"
+; V527 tmp479 [V527,T539] ( 3, 1.50) ref -> rax single-def "arr expr"
+; V528 tmp480 [V528,T96] ( 3, 96 ) ref -> rdi "arr expr"
+; V529 tmp481 [V529,T150] ( 3, 96 ) int -> rax "index expr"
+; V530 tmp482 [V530,T97] ( 3, 96 ) ref -> rdi "arr expr"
+; V531 tmp483 [V531,T262] ( 3, 48 ) ref -> rdi "arr expr"
+; V532 tmp484 [V532,T312] ( 3, 48 ) int -> rsi "index expr"
+; V533 tmp485 [V533,T452] ( 3, 12 ) ref -> rsi "arr expr"
+; V534 tmp486 [V534,T469] ( 3, 12 ) int -> rdi "index expr"
+; V535 tmp487 [V535,T497] ( 2, 8 ) ref -> rsi "arr expr"
+; V536 tmp488 [V536,T470] ( 3, 12 ) int -> rdi "index expr"
+; V537 tmp489 [V537,T527] ( 2, 8 ) int -> rsi "argument with side effect"
+; V538 tmp490 [V538,T263] ( 3, 48 ) ref -> rcx "arr expr"
+; V539 tmp491 [V539,T313] ( 3, 48 ) int -> rdx "index expr"
; V540 tmp492 [V540,T29] ( 2, 256 ) ref -> rdx "arr expr"
-; V541 tmp493 [V541,T17] ( 3, 384 ) int -> rsi "index expr"
-; V542 tmp494 [V542,T43] ( 3, 192 ) ref -> rdx "arr expr"
-; V543 tmp495 [V543,T325] ( 3, 48 ) ref -> rsi "arr expr"
-; V544 tmp496 [V544,T388] ( 3, 48 ) int -> rax "index expr"
-; V545 tmp497 [V545,T462] ( 2, 32 ) ref -> rsi "arr expr"
-; V546 tmp498 [V546,T389] ( 3, 48 ) int -> rdi "index expr"
-; V547 tmp499 [V547,T326] ( 3, 48 ) ref -> rsi "arr expr"
-; V548 tmp500 [V548,T390] ( 3, 48 ) int -> rax "index expr"
-; V549 tmp501 [V549,T327] ( 3, 48 ) ref -> rdi "arr expr"
-; V550 tmp502 [V550,T391] ( 3, 48 ) int -> rsi "index expr"
-; V551 tmp503 [V551,T328] ( 3, 48 ) ref -> rdi "arr expr"
-; V552 tmp504 [V552,T392] ( 3, 48 ) int -> rax "index expr"
-; V553 tmp505 [V553,T329] ( 3, 48 ) ref -> rdi "arr expr"
-; V554 tmp506 [V554,T393] ( 3, 48 ) int -> rax "index expr"
-; V555 tmp507 [V555,T330] ( 3, 48 ) ref -> rdi "arr expr"
-; V556 tmp508 [V556,T394] ( 3, 48 ) int -> rax "index expr"
-; V557 tmp509 [V557,T331] ( 3, 48 ) ref -> rsi "arr expr"
-; V558 tmp510 [V558,T395] ( 3, 48 ) int -> rdx "index expr"
-; V559 tmp511 [V559,T332] ( 3, 48 ) ref -> rdx "arr expr"
-; V560 tmp512 [V560,T396] ( 3, 48 ) int -> rcx "index expr"
-; V561 tmp513 [V561,T333] ( 3, 48 ) ref -> rcx "arr expr"
-; V562 tmp514 [V562,T397] ( 3, 48 ) int -> r8 "index expr"
-; V563 tmp515 [V563,T501] ( 2, 32 ) int -> rsi "argument with side effect"
-; V564 tmp516 [V564,T502] ( 2, 32 ) int -> rdx "argument with side effect"
-; V565 tmp517 [V565,T503] ( 2, 32 ) int -> rcx "argument with side effect"
-; V566 tmp518 [V566,T334] ( 3, 48 ) ref -> rcx "arr expr"
-; V567 tmp519 [V567,T398] ( 3, 48 ) int -> rdi "index expr"
-; V568 tmp520 [V568,T111] ( 3, 96 ) ref -> rcx "arr expr"
-; V569 tmp521 [V569,T169] ( 3, 96 ) int -> rdi "index expr"
-; V570 tmp522 [V570,T249] ( 2, 64 ) ref -> rcx "arr expr"
-; V571 tmp523 [V571,T170] ( 3, 96 ) int -> rdi "index expr"
-; V572 tmp524 [V572,T112] ( 3, 96 ) ref -> rdi "arr expr"
-; V573 tmp525 [V573,T171] ( 3, 96 ) int -> rax "index expr"
-; V574 tmp526 [V574,T113] ( 3, 96 ) ref -> rdi "arr expr"
-; V575 tmp527 [V575,T114] ( 3, 96 ) ref -> rdi "arr expr"
-; V576 tmp528 [V576,T172] ( 3, 96 ) int -> rcx "index expr"
-; V577 tmp529 [V577,T250] ( 2, 64 ) ref -> rdi "arr expr"
-; V578 tmp530 [V578,T173] ( 3, 96 ) int -> rdx "index expr"
-; V579 tmp531 [V579,T115] ( 3, 96 ) ref -> r10 "arr expr"
-; V580 tmp532 [V580,T174] ( 3, 96 ) int -> r12 "index expr"
-; V581 tmp533 [V581,T116] ( 3, 96 ) ref -> rdi "arr expr"
-; V582 tmp534 [V582,T175] ( 3, 96 ) int -> rax "index expr"
-; V583 tmp535 [V583,T117] ( 3, 96 ) ref -> rdi "arr expr"
-; V584 tmp536 [V584,T118] ( 3, 96 ) ref -> r9 "arr expr"
-; V585 tmp537 [V585,T176] ( 3, 96 ) int -> rsi "index expr"
-; V586 tmp538 [V586,T119] ( 3, 96 ) ref -> rsi "arr expr"
-; V587 tmp539 [V587,T177] ( 3, 96 ) int -> rdi "index expr"
-; V588 tmp540 [V588,T120] ( 3, 96 ) ref -> rsi "arr expr"
-; V589 tmp541 [V589,T178] ( 3, 96 ) int -> rax "index expr"
-; V590 tmp542 [V590,T251] ( 2, 64 ) ref -> rsi "arr expr"
-; V591 tmp543 [V591,T179] ( 3, 96 ) int -> rdi "index expr"
-; V592 tmp544 [V592,T269] ( 2, 64 ) int -> rsi "argument with side effect"
-; V593 tmp545 [V593,T121] ( 3, 96 ) ref -> rsi "arr expr"
-; V594 tmp546 [V594,T180] ( 3, 96 ) int -> rax "index expr"
-;* V595 tmp547 [V595,T506] ( 0, 0 ) ref -> zero-ref "arr expr"
-;* V596 tmp548 [V596,T508] ( 0, 0 ) int -> zero-ref "index expr"
-; V597 tmp549 [V597,T270] ( 2, 64 ) int -> rsi "argument with side effect"
-;* V598 tmp550 [V598,T507] ( 0, 0 ) ref -> zero-ref "arr expr"
-;* V599 tmp551 [V599,T509] ( 0, 0 ) int -> zero-ref "index expr"
-; V600 tmp552 [V600,T122] ( 3, 96 ) ref -> rdi "arr expr"
-; V601 tmp553 [V601,T181] ( 3, 96 ) int -> rax "index expr"
-; V602 tmp554 [V602,T123] ( 3, 96 ) ref -> rdi "arr expr"
-; V603 tmp555 [V603,T335] ( 3, 48 ) ref -> rdi "arr expr"
-; V604 tmp556 [V604,T399] ( 3, 48 ) int -> rsi "index expr"
-; V605 tmp557 [V605,T504] ( 2, 32 ) int -> r13 "argument with side effect"
-; V606 tmp558 [V606,T505] ( 2, 32 ) int -> rdx "argument with side effect"
-; V607 tmp559 [V607,T336] ( 3, 48 ) ref -> rsi "arr expr"
-; V608 tmp560 [V608,T400] ( 3, 48 ) int -> rdx "index expr"
-; V609 tmp561 [V609,T337] ( 3, 48 ) ref -> rdx "arr expr"
-; V610 tmp562 [V610,T401] ( 3, 48 ) int -> rcx "index expr"
-; V611 tmp563 [V611,T463] ( 2, 32 ) ref -> rsi "argument with side effect"
-; V612 tmp564 [V612,T338] ( 3, 48 ) ref -> rdi "arr expr"
-; V613 tmp565 [V613,T402] ( 3, 48 ) int -> rsi "index expr"
-; V614 tmp566 [V614,T339] ( 3, 48 ) ref -> rdi "arr expr"
-; V615 tmp567 [V615,T340] ( 3, 48 ) ref -> r9 "arr expr"
-; V616 tmp568 [V616,T403] ( 3, 48 ) int -> r11 "index expr"
-; V617 tmp569 [V617,T341] ( 3, 48 ) ref -> r9 "arr expr"
-; V618 tmp570 [V618,T404] ( 3, 48 ) int -> r11 "index expr"
-; V619 tmp571 [V619,T124] ( 3, 96 ) ref -> rdx "arr expr"
-; V620 tmp572 [V620,T182] ( 3, 96 ) int -> rsi "index expr"
-; V621 tmp573 [V621,T125] ( 3, 96 ) ref -> rdi "arr expr"
-; V622 tmp574 [V622,T183] ( 3, 96 ) int -> rsi "index expr"
-; V623 tmp575 [V623,T126] ( 3, 96 ) ref -> rdi "arr expr"
-; V624 tmp576 [V624,T184] ( 3, 96 ) int -> rsi "index expr"
-; V625 tmp577 [V625,T127] ( 3, 96 ) ref -> rdi "arr expr"
-; V626 tmp578 [V626,T128] ( 3, 96 ) ref -> rdi "arr expr"
-; V627 tmp579 [V627,T185] ( 3, 96 ) int -> rax "index expr"
-; V628 tmp580 [V628,T129] ( 3, 96 ) ref -> rdi "arr expr"
-; V629 tmp581 [V629,T186] ( 3, 96 ) int -> rax "index expr"
-; V630 tmp582 [V630,T130] ( 3, 96 ) ref -> rsi "arr expr"
-; V631 tmp583 [V631,T187] ( 3, 96 ) int -> rdx "index expr"
-; V632 tmp584 [V632,T131] ( 3, 96 ) ref -> rdx "arr expr"
-; V633 tmp585 [V633,T188] ( 3, 96 ) int -> rdi "index expr"
-; V634 tmp586 [V634,T342] ( 3, 48 ) ref -> rdi "arr expr"
-; V635 tmp587 [V635,T405] ( 3, 48 ) int -> rsi "index expr"
-; V636 tmp588 [V636,T343] ( 3, 48 ) ref -> rdi "arr expr"
-; V637 tmp589 [V637,T406] ( 3, 48 ) int -> rsi "index expr"
-; V638 tmp590 [V638,T344] ( 3, 48 ) ref -> rdi "arr expr"
-; V639 tmp591 [V639,T345] ( 3, 48 ) ref -> rdi "arr expr"
-; V640 tmp592 [V640,T407] ( 3, 48 ) int -> rsi "index expr"
-; V641 tmp593 [V641,T346] ( 3, 48 ) ref -> r9 "arr expr"
-; V642 tmp594 [V642,T408] ( 3, 48 ) int -> r11 "index expr"
-; V643 tmp595 [V643,T347] ( 3, 48 ) ref -> rdi "arr expr"
-; V644 tmp596 [V644,T409] ( 3, 48 ) int -> rsi "index expr"
-; V645 tmp597 [V645,T348] ( 3, 48 ) ref -> r9 "arr expr"
-; V646 tmp598 [V646,T410] ( 3, 48 ) int -> r11 "index expr"
-; V647 cse0 [V647,T85] ( 8, 112 ) int -> r12 multi-def "CSE #40: conservative"
-; V648 cse1 [V648,T51] ( 12, 128 ) int -> registers multi-def "CSE #56: conservative"
-; V649 cse2 [V649,T06] ( 59, 680 ) ref -> registers multi-def "CSE #02: aggressive"
-; V650 cse3 [V650,T18] ( 28, 352 ) int -> registers multi-def "CSE #44: moderate"
-; V651 cse4 [V651,T19] ( 27, 328 ) int -> rdi multi-def "CSE #42: moderate"
-; V652 cse5 [V652,T21] ( 25, 280 ) int -> registers multi-def "CSE #09: moderate"
-; V653 cse6 [V653,T22] ( 19, 232 ) int -> registers multi-def "CSE #36: moderate"
-; V654 cse7 [V654,T07] ( 52, 632 ) ref -> r13 multi-def "CSE #26: aggressive"
-; V655 cse8 [V655,T33] ( 9, 232 ) ref -> r12 hoist multi-def "CSE #31: moderate"
-; V656 cse9 [V656,T03] ( 75, 856 ) int -> registers multi-def "CSE #03: aggressive"
-; V657 cse10 [V657,T02] ( 72, 900 ) ref -> registers multi-def "CSE #15: aggressive"
-; V658 cse11 [V658,T04] ( 91, 828 ) int -> registers multi-def "CSE #41: aggressive"
-; V659 cse12 [V659,T05] ( 60, 728 ) int -> registers multi-def "CSE #28: aggressive"
-; V660 cse13 [V660,T01] ( 76, 968 ) int -> registers multi-def "CSE #17: aggressive"
-; V661 rat0 [V661,T414] ( 3, 45.71) int -> r12 "ReplaceWithLclVar is creating a new local variable"
-; V662 rat1 [V662,T189] ( 3, 95.09) int -> r13 "ReplaceWithLclVar is creating a new local variable"
+; V541 tmp493 [V541,T18] ( 3, 384 ) int -> rsi "index expr"
+; V542 tmp494 [V542,T42] ( 3, 192 ) ref -> rdx "arr expr"
+; V543 tmp495 [V543,T453] ( 3, 12 ) ref -> rsi "arr expr"
+; V544 tmp496 [V544,T471] ( 3, 12 ) int -> rax "index expr"
+; V545 tmp497 [V545,T498] ( 2, 8 ) ref -> rsi "arr expr"
+; V546 tmp498 [V546,T472] ( 3, 12 ) int -> rdi "index expr"
+; V547 tmp499 [V547,T264] ( 3, 48 ) ref -> rsi "arr expr"
+; V548 tmp500 [V548,T314] ( 3, 48 ) int -> rax "index expr"
+; V549 tmp501 [V549,T265] ( 3, 48 ) ref -> rdi "arr expr"
+; V550 tmp502 [V550,T315] ( 3, 48 ) int -> rsi "index expr"
+; V551 tmp503 [V551,T454] ( 3, 12 ) ref -> rdi "arr expr"
+; V552 tmp504 [V552,T473] ( 3, 12 ) int -> rax "index expr"
+; V553 tmp505 [V553,T455] ( 3, 12 ) ref -> rdi "arr expr"
+; V554 tmp506 [V554,T474] ( 3, 12 ) int -> rax "index expr"
+; V555 tmp507 [V555,T456] ( 3, 12 ) ref -> rdi "arr expr"
+; V556 tmp508 [V556,T475] ( 3, 12 ) int -> rax "index expr"
+; V557 tmp509 [V557,T457] ( 3, 12 ) ref -> rsi "arr expr"
+; V558 tmp510 [V558,T476] ( 3, 12 ) int -> rdx "index expr"
+; V559 tmp511 [V559,T458] ( 3, 12 ) ref -> rdx "arr expr"
+; V560 tmp512 [V560,T477] ( 3, 12 ) int -> rcx "index expr"
+; V561 tmp513 [V561,T459] ( 3, 12 ) ref -> rcx "arr expr"
+; V562 tmp514 [V562,T478] ( 3, 12 ) int -> r8 "index expr"
+; V563 tmp515 [V563,T528] ( 2, 8 ) int -> rsi "argument with side effect"
+; V564 tmp516 [V564,T529] ( 2, 8 ) int -> rdx "argument with side effect"
+; V565 tmp517 [V565,T530] ( 2, 8 ) int -> rcx "argument with side effect"
+; V566 tmp518 [V566,T460] ( 3, 12 ) ref -> rcx "arr expr"
+; V567 tmp519 [V567,T479] ( 3, 12 ) int -> rdi "index expr"
+; V568 tmp520 [V568,T98] ( 3, 96 ) ref -> rcx "arr expr"
+; V569 tmp521 [V569,T151] ( 3, 96 ) int -> rdi "index expr"
+; V570 tmp522 [V570,T202] ( 2, 64 ) ref -> rcx "arr expr"
+; V571 tmp523 [V571,T152] ( 3, 96 ) int -> rdi "index expr"
+; V572 tmp524 [V572,T99] ( 3, 96 ) ref -> rdi "arr expr"
+; V573 tmp525 [V573,T153] ( 3, 96 ) int -> rax "index expr"
+; V574 tmp526 [V574,T100] ( 3, 96 ) ref -> rdi "arr expr"
+; V575 tmp527 [V575,T101] ( 3, 96 ) ref -> rdi "arr expr"
+; V576 tmp528 [V576,T154] ( 3, 96 ) int -> rcx "index expr"
+; V577 tmp529 [V577,T203] ( 2, 64 ) ref -> rdi "arr expr"
+; V578 tmp530 [V578,T155] ( 3, 96 ) int -> rdx "index expr"
+; V579 tmp531 [V579,T102] ( 3, 96 ) ref -> r10 "arr expr"
+; V580 tmp532 [V580,T156] ( 3, 96 ) int -> r12 "index expr"
+; V581 tmp533 [V581,T103] ( 3, 96 ) ref -> rdi "arr expr"
+; V582 tmp534 [V582,T157] ( 3, 96 ) int -> rax "index expr"
+; V583 tmp535 [V583,T104] ( 3, 96 ) ref -> rdi "arr expr"
+; V584 tmp536 [V584,T461] ( 3, 12 ) ref -> r9 "arr expr"
+; V585 tmp537 [V585,T480] ( 3, 12 ) int -> rsi "index expr"
+; V586 tmp538 [V586,T462] ( 3, 12 ) ref -> rsi "arr expr"
+; V587 tmp539 [V587,T481] ( 3, 12 ) int -> rdi "index expr"
+; V588 tmp540 [V588,T463] ( 3, 12 ) ref -> rsi "arr expr"
+; V589 tmp541 [V589,T482] ( 3, 12 ) int -> rax "index expr"
+; V590 tmp542 [V590,T499] ( 2, 8 ) ref -> rsi "arr expr"
+; V591 tmp543 [V591,T483] ( 3, 12 ) int -> rdi "index expr"
+; V592 tmp544 [V592,T531] ( 2, 8 ) int -> rsi "argument with side effect"
+; V593 tmp545 [V593,T105] ( 3, 96 ) ref -> rsi "arr expr"
+; V594 tmp546 [V594,T158] ( 3, 96 ) int -> rax "index expr"
+;* V595 tmp547 [V595,T536] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V596 tmp548 [V596,T538] ( 0, 0 ) int -> zero-ref "index expr"
+; V597 tmp549 [V597,T532] ( 2, 8 ) int -> rsi "argument with side effect"
+;* V598 tmp550 [V598,T388] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V599 tmp551 [V599,T389] ( 0, 0 ) int -> zero-ref "index expr"
+; V600 tmp552 [V600,T106] ( 3, 96 ) ref -> rdi "arr expr"
+; V601 tmp553 [V601,T159] ( 3, 96 ) int -> rax "index expr"
+; V602 tmp554 [V602,T107] ( 3, 96 ) ref -> rdi "arr expr"
+; V603 tmp555 [V603,T266] ( 3, 48 ) ref -> rdi "arr expr"
+; V604 tmp556 [V604,T316] ( 3, 48 ) int -> rsi "index expr"
+; V605 tmp557 [V605,T386] ( 2, 32 ) int -> r13 "argument with side effect"
+; V606 tmp558 [V606,T387] ( 2, 32 ) int -> rdx "argument with side effect"
+; V607 tmp559 [V607,T267] ( 3, 48 ) ref -> rsi "arr expr"
+; V608 tmp560 [V608,T317] ( 3, 48 ) int -> rdx "index expr"
+; V609 tmp561 [V609,T268] ( 3, 48 ) ref -> rdx "arr expr"
+; V610 tmp562 [V610,T318] ( 3, 48 ) int -> rcx "index expr"
+; V611 tmp563 [V611,T368] ( 2, 32 ) ref -> rsi "argument with side effect"
+; V612 tmp564 [V612,T269] ( 3, 48 ) ref -> rdi "arr expr"
+; V613 tmp565 [V613,T319] ( 3, 48 ) int -> rsi "index expr"
+; V614 tmp566 [V614,T270] ( 3, 48 ) ref -> rdi "arr expr"
+; V615 tmp567 [V615,T271] ( 3, 48 ) ref -> r9 "arr expr"
+; V616 tmp568 [V616,T320] ( 3, 48 ) int -> rdi "index expr"
+; V617 tmp569 [V617,T272] ( 3, 48 ) ref -> r9 "arr expr"
+; V618 tmp570 [V618,T321] ( 3, 48 ) int -> rdi "index expr"
+; V619 tmp571 [V619,T108] ( 3, 96 ) ref -> rdx "arr expr"
+; V620 tmp572 [V620,T160] ( 3, 96 ) int -> rsi "index expr"
+; V621 tmp573 [V621,T109] ( 3, 96 ) ref -> rsi "arr expr"
+; V622 tmp574 [V622,T161] ( 3, 96 ) int -> rdx "index expr"
+; V623 tmp575 [V623,T110] ( 3, 96 ) ref -> rdi "arr expr"
+; V624 tmp576 [V624,T162] ( 3, 96 ) int -> rsi "index expr"
+; V625 tmp577 [V625,T111] ( 3, 96 ) ref -> rdi "arr expr"
+; V626 tmp578 [V626,T112] ( 3, 96 ) ref -> rax "arr expr"
+; V627 tmp579 [V627,T163] ( 3, 96 ) int -> rcx "index expr"
+; V628 tmp580 [V628,T113] ( 3, 96 ) ref -> rdi "arr expr"
+; V629 tmp581 [V629,T164] ( 3, 96 ) int -> rax "index expr"
+; V630 tmp582 [V630,T114] ( 3, 96 ) ref -> rsi "arr expr"
+; V631 tmp583 [V631,T165] ( 3, 96 ) int -> rdx "index expr"
+; V632 tmp584 [V632,T115] ( 3, 96 ) ref -> rdx "arr expr"
+; V633 tmp585 [V633,T166] ( 3, 96 ) int -> rdi "index expr"
+; V634 tmp586 [V634,T273] ( 3, 48 ) ref -> rsi "arr expr"
+; V635 tmp587 [V635,T322] ( 3, 48 ) int -> rdx "index expr"
+; V636 tmp588 [V636,T274] ( 3, 48 ) ref -> rdi "arr expr"
+; V637 tmp589 [V637,T323] ( 3, 48 ) int -> rsi "index expr"
+; V638 tmp590 [V638,T275] ( 3, 48 ) ref -> rdi "arr expr"
+; V639 tmp591 [V639,T276] ( 3, 48 ) ref -> r9 "arr expr"
+; V640 tmp592 [V640,T324] ( 3, 48 ) int -> rsi "index expr"
+; V641 tmp593 [V641,T277] ( 3, 48 ) ref -> rdi "arr expr"
+; V642 tmp594 [V642,T325] ( 3, 48 ) int -> r11 "index expr"
+; V643 tmp595 [V643,T278] ( 3, 48 ) ref -> r9 "arr expr"
+; V644 tmp596 [V644,T326] ( 3, 48 ) int -> rsi "index expr"
+; V645 tmp597 [V645,T279] ( 3, 48 ) ref -> rdi "arr expr"
+; V646 tmp598 [V646,T327] ( 3, 48 ) int -> r11 "index expr"
+; V647 cse0 [V647,T216] ( 8, 58 ) int -> r12 multi-def "CSE #40: conservative"
+; V648 cse1 [V648,T78] ( 12, 110 ) int -> registers multi-def "CSE #56: conservative"
+; V649 cse2 [V649,T05] ( 59, 624 ) ref -> registers multi-def "CSE #02: aggressive"
+; V650 cse3 [V650,T19] ( 28, 322 ) int -> registers multi-def "CSE #44: moderate"
+; V651 cse4 [V651,T22] ( 27, 272 ) int -> rdi multi-def "CSE #42: moderate"
+; V652 cse5 [V652,T21] ( 25, 274 ) int -> registers multi-def "CSE #09: moderate"
+; V653 cse6 [V653,T51] ( 19, 124 ) int -> registers multi-def "CSE #36: conservative"
+; V654 cse7 [V654,T33] ( 9, 232 ) ref -> r12 hoist multi-def "CSE #31: moderate"
+; V655 cse8 [V655,T06] ( 59, 608 ) ref -> registers multi-def "CSE #01: aggressive"
+; V656 cse9 [V656,T11] ( 52, 454 ) ref -> r13 multi-def "CSE #26: aggressive"
+; V657 cse10 [V657,T03] ( 72, 690 ) ref -> registers multi-def "CSE #15: aggressive"
+; V658 cse11 [V658,T04] ( 75, 684 ) int -> registers multi-def "CSE #03: aggressive"
+; V659 cse12 [V659,T02] ( 91, 702 ) int -> registers multi-def "CSE #41: aggressive"
+; V660 cse13 [V660,T08] ( 60, 522 ) int -> registers multi-def "CSE #28: aggressive"
+; V661 cse14 [V661,T01] ( 76, 726 ) int -> registers multi-def "CSE #17: aggressive"
+; V662 rat0 [V662,T328] ( 3, 45.71) int -> r12 "ReplaceWithLclVar is creating a new local variable"
+; V663 rat1 [V663,T167] ( 3, 95.09) int -> r13 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 56
G_M19968_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 56
lea rbp, [rsp+0x60]
mov rbx, rdi
mov r14, rsi
mov r15d, edx
;; size=28 bbWeight=1 PerfScore 7.50
G_M19968_IG02:
mov rdi, gword ptr [rbx+0x70]
mov rdi, gword ptr [rdi+0x10]
cmp dword ptr [rdi+0x08], 0
jbe G_M19968_IG245
mov edi, dword ptr [rdi+0x10]
mov esi, edi
and esi, -65
mov dword ptr [rbx+0x84], esi
test dil, 64
setne dil
mov byte ptr [rbx+0x69], dil
xor edi, edi
mov dword ptr [rbx+0x88], edi
jmp SHORT G_M19968_IG04
align [0 bytes for IG17]
;; size=54 bbWeight=1 PerfScore 17.00
G_M19968_IG03:
add edi, dword ptr [rbx+0x88]
inc edi
mov dword ptr [rbx+0x88], edi
mov rdi, gword ptr [rbx+0x70]
mov rdi, gword ptr [rdi+0x10]
mov eax, dword ptr [rbx+0x88]
cmp eax, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov edi, dword ptr [rdi+4*rax+0x10]
mov eax, edi
and eax, -65
mov dword ptr [rbx+0x84], eax
test dil, 64
setne dil
mov byte ptr [rbx+0x69], dil
;; size=64 bbWeight=8 PerfScore 160.00
G_M19968_IG04:
mov r13d, dword ptr [rbx+0x84]
cmp r13d, 164
jle G_M19968_IG12
;; size=20 bbWeight=32 PerfScore 104.00
G_M19968_IG05:
lea r12d, [r13-0x118]
cmp r12d, 5
ja SHORT G_M19968_IG07
;; size=13 bbWeight=8 PerfScore 14.00
G_M19968_IG06:
mov edi, r12d
lea rax, [reloc @RWD00]
mov eax, dword ptr [rax+4*rdi]
lea rcx, G_M19968_IG02
add rax, rcx
jmp rax
;; size=25 bbWeight=6.86 PerfScore 41.14
G_M19968_IG07:
cmp r13d, 525
je G_M19968_IG119
jmp G_M19968_IG240
;; size=18 bbWeight=8 PerfScore 26.00
G_M19968_IG08:
mov edi, dword ptr [rbx+0x50]
inc edi
mov dword ptr [rbx+0x50], edi
mov eax, dword ptr [rbx+0x54]
add eax, 2
mov dword ptr [rbx+0x54], eax
mov r13, gword ptr [rbx+0x10]
dec edi
mov r12d, dword ptr [r13+0x08]
cmp edi, r12d
jae G_M19968_IG245
mov edi, dword ptr [r13+4*rdi+0x10]
mov r13, gword ptr [rbx+0x18]
mov rcx, r13
lea edx, [rax-0x02]
mov esi, dword ptr [rcx+0x08]
cmp edx, esi
jae G_M19968_IG245
mov ecx, dword ptr [rcx+4*rdx+0x10]
dec ecx
dec eax
cmp eax, esi
jae G_M19968_IG245
mov edx, eax
mov dword ptr [r13+4*rdx+0x10], edi
dec eax
cmp eax, esi
jae G_M19968_IG245
mov esi, eax
mov dword ptr [r13+4*rsi+0x10], ecx
mov dword ptr [rbx+0x54], eax
jmp G_M19968_IG240
;; size=110 bbWeight=8 PerfScore 246.00
G_M19968_IG09:
mov edi, dword ptr [rbx+0x50]
add edi, 2
mov dword ptr [rbx+0x50], edi
mov r13, gword ptr [rbx+0x10]
mov rax, r13
lea ecx, [rdi-0x01]
mov r12d, dword ptr [rax+0x08]
cmp ecx, r12d
jae G_M19968_IG245
mov eax, dword ptr [rax+4*rcx+0x10]
mov rcx, r13
add edi, -2
cmp edi, r12d
jae G_M19968_IG245
mov edi, dword ptr [rcx+4*rdi+0x10]
mov r13, gword ptr [rbx+0x18]
mov rcx, r13
mov edx, dword ptr [rbx+0x54]
dec edx
mov esi, dword ptr [rcx+0x08]
cmp edx, esi
jae G_M19968_IG245
mov r8d, edx
mov dword ptr [rcx+4*r8+0x10], eax
dec edx
cmp edx, esi
jae G_M19968_IG245
mov esi, edx
mov dword ptr [rcx+4*rsi+0x10], edi
mov dword ptr [rbx+0x54], edx
jmp G_M19968_IG240
;; size=110 bbWeight=8 PerfScore 238.00
G_M19968_IG10:
mov edi, dword ptr [rbx+0x54]
inc edi
mov dword ptr [rbx+0x54], edi
mov eax, dword ptr [rbx+0x50]
inc eax
mov dword ptr [rbx+0x50], eax
mov r13, gword ptr [rbx+0x10]
mov rcx, r13
dec eax
mov r12d, dword ptr [rcx+0x08]
cmp eax, r12d
jae G_M19968_IG245
mov eax, dword ptr [rcx+4*rax+0x10]
mov r13, gword ptr [rbx+0x18]
mov rcx, r13
dec edi
mov dword ptr [rbx+0x54], edi
mov esi, dword ptr [rcx+0x08]
cmp edi, esi
jae G_M19968_IG245
mov esi, edi
mov dword ptr [rcx+4*rsi+0x10], eax
jmp G_M19968_IG240
;; size=76 bbWeight=8 PerfScore 194.00
G_M19968_IG11:
mov eax, dword ptr [rbx+0x50]
inc eax
mov dword ptr [rbx+0x50], eax
mov r13, gword ptr [rbx+0x10]
mov rdi, r13
dec eax
mov r12d, dword ptr [rdi+0x08]
cmp eax, r12d
jae G_M19968_IG245
mov edi, dword ptr [rdi+4*rax+0x10]
mov r13, gword ptr [rbx+0x18]
mov rax, r13
mov ecx, dword ptr [rbx+0x54]
dec ecx
mov dword ptr [rbx+0x54], ecx
mov esi, dword ptr [rax+0x08]
cmp ecx, esi
jae G_M19968_IG245
mov dword ptr [rax+4*rcx+0x10], edi
jmp G_M19968_IG240
;; size=69 bbWeight=8 PerfScore 182.00
G_M19968_IG12:
cmp r13d, 46
ja SHORT G_M19968_IG14
;; size=6 bbWeight=32 PerfScore 40.00
G_M19968_IG13:
mov edi, r13d
lea rsi, [reloc @RWD24]
mov esi, dword ptr [rsi+4*rdi]
lea rdx, G_M19968_IG02
add rsi, rdx
jmp rsi
;; size=25 bbWeight=31.33 PerfScore 188.00
G_M19968_IG14:
add r13d, -131
cmp r13d, 33
ja G_M19968_IG240
;; size=17 bbWeight=16 PerfScore 24.00
G_M19968_IG15:
mov edi, r13d
lea rsi, [reloc @RWD212]
mov esi, dword ptr [rsi+4*rdi]
lea rax, G_M19968_IG02
add rsi, rax
jmp rsi
;; size=25 bbWeight=15.54 PerfScore 93.26
G_M19968_IG16:
mov eax, dword ptr [rbx+0x50]
inc eax
mov dword ptr [rbx+0x50], eax
mov r12, gword ptr [rbx+0x20]
jmp SHORT G_M19968_IG18
;; size=14 bbWeight=8 PerfScore 58.00
G_M19968_IG17:
mov rdi, r12
mov esi, dword ptr [rbx+0x58]
lea ecx, [rsi+0x01]
mov dword ptr [rbx+0x58], ecx
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov edi, dword ptr [rdi+4*rsi+0x10]
mov rsi, gword ptr [rbx+0x28]
mov rsi, gword ptr [rsi+0x50]
cmp edi, dword ptr [rsi+0x08]
jae G_M19968_IG245
lea rdi, bword ptr [rsi+4*rdi+0x10]
dec dword ptr [rdi]
;; size=49 bbWeight=32 PerfScore 696.00
G_M19968_IG18:
mov edi, dword ptr [r12+0x08]
sub edi, dword ptr [rbx+0x58]
mov rsi, gword ptr [rbx+0x10]
lea ecx, [rax-0x01]
mov edx, dword ptr [rsi+0x08]
cmp ecx, edx
jae G_M19968_IG245
mov edx, ecx
cmp edi, dword ptr [rsi+4*rdx+0x10]
jne SHORT G_M19968_IG17
jmp G_M19968_IG240
;; size=39 bbWeight=64 PerfScore 1088.00
G_M19968_IG19:
mov eax, dword ptr [rbx+0x50]
inc eax
mov dword ptr [rbx+0x50], eax
mov rsi, gword ptr [rbx+0x10]
dec eax
mov edx, dword ptr [rsi+0x08]
cmp eax, edx
jae G_M19968_IG245
mov edx, eax
mov edi, dword ptr [rsi+4*rdx+0x10]
mov r13, gword ptr [rbx+0x18]
mov rsi, r13
mov eax, dword ptr [rbx+0x54]
dec eax
mov dword ptr [rbx+0x54], eax
mov ecx, dword ptr [rsi+0x08]
cmp eax, ecx
jae G_M19968_IG245
mov ecx, eax
mov dword ptr [rsi+4*rcx+0x10], edi
jmp G_M19968_IG240
;; size=68 bbWeight=8 PerfScore 184.00
G_M19968_IG20:
mov eax, dword ptr [rbx+0x50]
inc eax
mov dword ptr [rbx+0x50], eax
mov rsi, gword ptr [rbx+0x10]
lea edi, [rax-0x01]
mov edx, dword ptr [rsi+0x08]
cmp edi, edx
jae G_M19968_IG245
mov edx, edi
mov edi, dword ptr [rsi+4*rdx+0x10]
mov r13, gword ptr [rbx+0x18]
mov rsi, r13
mov eax, dword ptr [rbx+0x54]
dec eax
mov dword ptr [rbx+0x54], eax
mov ecx, dword ptr [rsi+0x08]
cmp eax, ecx
jae G_M19968_IG245
mov ecx, eax
mov dword ptr [rsi+4*rcx+0x10], edi
mov r12, gword ptr [rbx+0x20]
mov rdi, r12
mov esi, dword ptr [rbx+0x58]
lea eax, [rsi+0x01]
mov dword ptr [rbx+0x58], eax
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov edi, dword ptr [rdi+4*rsi+0x10]
mov rsi, gword ptr [rbx+0x28]
mov rsi, gword ptr [rsi+0x50]
cmp edi, dword ptr [rsi+0x08]
jae G_M19968_IG245
lea rdi, bword ptr [rsi+4*rdi+0x10]
dec dword ptr [rdi]
- mov rdi, gword ptr [rbx+0x70]
- mov r9, gword ptr [rdi+0x10]
- mov rdi, r9
+ mov r9, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [r9+0x10]
+ mov r9, rdi
mov r11d, dword ptr [rbx+0x88]
lea esi, [r11+0x01]
- cmp esi, dword ptr [rdi+0x08]
+ cmp esi, dword ptr [r9+0x08]
jae G_M19968_IG245
- cmp dword ptr [rdi+4*rsi+0x10], -1
+ cmp dword ptr [r9+4*rsi+0x10], -1
je G_M19968_IG240
add r11d, 2
- cmp r11d, dword ptr [r9+0x08]
+ cmp r11d, dword ptr [rdi+0x08]
jae G_M19968_IG245
- mov edi, r11d
- cmp dword ptr [r9+4*rdi+0x10], -1
+ mov esi, r11d
+ cmp dword ptr [rdi+4*rsi+0x10], -1
je G_M19968_IG240
mov edi, dword ptr [rbx+0x58]
lea esi, [rdi+0x01]
mov dword ptr [rbx+0x58], esi
- ;; size=197 bbWeight=8 PerfScore 574.00
+ ;; size=198 bbWeight=8 PerfScore 574.00
G_M19968_IG21:
cmp edi, dword ptr [r12+0x08]
jae G_M19968_IG245
mov edi, dword ptr [r12+4*rdi+0x10]
mov rsi, gword ptr [rbx+0x28]
mov rsi, gword ptr [rsi+0x50]
cmp edi, dword ptr [rsi+0x08]
jae G_M19968_IG245
lea rdi, bword ptr [rsi+4*rdi+0x10]
dec dword ptr [rdi]
jmp G_M19968_IG240
;; size=45 bbWeight=8 PerfScore 160.00
G_M19968_IG22:
mov edi, dword ptr [rbx+0x54]
inc edi
mov dword ptr [rbx+0x54], edi
jmp G_M19968_IG240
;; size=13 bbWeight=8 PerfScore 42.00
G_M19968_IG23:
add dword ptr [rbx+0x50], 3
mov rsi, gword ptr [rbx+0x10]
mov rdi, rsi
mov eax, dword ptr [rbx+0x50]
dec eax
mov edx, dword ptr [rdi+0x08]
cmp eax, edx
jae G_M19968_IG245
mov eax, dword ptr [rdi+4*rax+0x10]
mov rdi, rsi
mov ecx, dword ptr [rbx+0x50]
add ecx, -3
cmp ecx, edx
jae G_M19968_IG245
mov edi, dword ptr [rdi+4*rcx+0x10]
mov rcx, rsi
mov r8d, dword ptr [rbx+0x50]
add r8d, -2
cmp r8d, edx
jae G_M19968_IG245
mov ecx, dword ptr [rcx+4*r8+0x10]
- mov r8, gword ptr [rbx+0x70]
- mov r9, gword ptr [r8+0x10]
- mov r8, r9
+ mov r9, gword ptr [rbx+0x70]
+ mov r8, gword ptr [r9+0x10]
mov r11d, dword ptr [rbx+0x88]
lea r9d, [r11+0x02]
cmp r9d, dword ptr [r8+0x08]
jae G_M19968_IG245
cmp ecx, dword ptr [r8+4*r9+0x10]
jge SHORT G_M19968_IG24
cmp edi, eax
jne SHORT G_M19968_IG25
- ;; size=120 bbWeight=16 PerfScore 644.00
+ ;; size=117 bbWeight=16 PerfScore 640.00
G_M19968_IG24:
mov rdi, rsi
mov eax, dword ptr [rbx+0x50]
dec eax
cmp eax, edx
jae G_M19968_IG245
mov edi, dword ptr [rdi+4*rax+0x10]
mov eax, dword ptr [rbx+0x50]
add eax, -2
cmp eax, edx
jae G_M19968_IG245
mov edx, eax
mov esi, dword ptr [rsi+4*rdx+0x10]
mov r13, gword ptr [rbx+0x18]
mov rax, r13
mov ecx, dword ptr [rbx+0x54]
dec ecx
mov edx, dword ptr [rax+0x08]
cmp ecx, edx
jae G_M19968_IG245
mov r8d, ecx
mov dword ptr [rax+4*r8+0x10], edi
dec ecx
cmp ecx, edx
jae G_M19968_IG245
mov edx, ecx
mov dword ptr [rax+4*rdx+0x10], esi
mov dword ptr [rbx+0x54], ecx
jmp G_M19968_IG240
;; size=95 bbWeight=8 PerfScore 210.00
G_M19968_IG25:
mov dword ptr [rbx+0x4C], edi
mov ecx, dword ptr [rbx+0x50]
add ecx, -2
cmp ecx, edx
jae G_M19968_IG245
mov esi, dword ptr [rsi+4*rcx+0x10]
inc esi
mov r13, gword ptr [rbx+0x18]
mov rcx, r13
mov edx, dword ptr [rbx+0x54]
dec edx
mov r8d, dword ptr [rcx+0x08]
cmp edx, r8d
jae G_M19968_IG245
mov r9d, edx
mov dword ptr [rcx+4*r9+0x10], edi
dec edx
cmp edx, r8d
jae G_M19968_IG245
mov edi, edx
mov dword ptr [rcx+4*rdi+0x10], esi
mov dword ptr [rbx+0x54], edx
mov rdi, rbx
mov esi, eax
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush2(int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush2(int):this
mov rdi, gword ptr [rbx+0x70]
mov rdi, gword ptr [rdi+0x10]
mov eax, dword ptr [rbx+0x88]
inc eax
cmp eax, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov r13d, dword ptr [rdi+4*rax+0x10]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:EnsureStorage():this
call [rax]System.Text.RegularExpressions.RegexRunner:EnsureStorage():this
mov dword ptr [rbx+0x88], r13d
mov rsi, gword ptr [rbx+0x70]
mov rsi, gword ptr [rsi+0x10]
cmp r13d, dword ptr [rsi+0x08]
jae G_M19968_IG245
mov edx, r13d
mov esi, dword ptr [rsi+4*rdx+0x10]
mov edx, esi
and edx, -65
mov dword ptr [rbx+0x84], edx
test sil, 64
setne sil
mov byte ptr [rbx+0x69], sil
jmp G_M19968_IG04
;; size=198 bbWeight=16 PerfScore 896.00
G_M19968_IG26:
mov eax, dword ptr [rbx+0x50]
inc eax
mov dword ptr [rbx+0x50], eax
mov esi, dword ptr [rbx+0x54]
add esi, 2
mov dword ptr [rbx+0x54], esi
mov r13, gword ptr [rbx+0x18]
mov rdx, r13
lea edi, [rsi-0x02]
mov r8d, dword ptr [rdx+0x08]
cmp edi, r8d
jae G_M19968_IG245
mov edi, dword ptr [rdx+4*rdi+0x10]
test edi, edi
jg SHORT G_M19968_IG27
mov rdx, gword ptr [rbx+0x10]
dec eax
mov ecx, dword ptr [rdx+0x08]
cmp eax, ecx
jae G_M19968_IG245
mov ecx, eax
mov edx, dword ptr [rdx+4*rcx+0x10]
dec edi
mov rax, r13
dec esi
cmp esi, r8d
jae G_M19968_IG245
mov ecx, esi
mov dword ptr [rax+4*rcx+0x10], edx
dec esi
cmp esi, r8d
jae G_M19968_IG245
mov r8d, esi
mov dword ptr [rax+4*r8+0x10], edi
mov dword ptr [rbx+0x54], esi
jmp G_M19968_IG240
;; size=120 bbWeight=8 PerfScore 260.00
G_M19968_IG27:
mov rdx, r13
dec esi
cmp esi, r8d
jae G_M19968_IG245
mov esi, dword ptr [rdx+4*rsi+0x10]
mov dword ptr [rbx+0x4C], esi
mov rdx, gword ptr [rbx+0x10]
mov rsi, rdx
lea edx, [rax-0x01]
mov ecx, dword ptr [rsi+0x08]
cmp edx, ecx
jae G_M19968_IG245
mov esi, dword ptr [rsi+4*rdx+0x10]
lea edx, [rdi-0x01]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush2(int,int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush2(int,int):this
jmp G_M19968_IG242
- ;; size=69 bbWeight=8 PerfScore 150.00
+ align [0 bytes for IG78]
+ ;; size=69 bbWeight=2 PerfScore 37.50
G_M19968_IG28:
mov esi, dword ptr [rbx+0x54]
add esi, 2
mov dword ptr [rbx+0x54], esi
jmp G_M19968_IG240
;; size=14 bbWeight=8 PerfScore 42.00
G_M19968_IG29:
mov edi, dword ptr [rbx+0x50]
add edi, 2
mov dword ptr [rbx+0x50], edi
mov rdx, gword ptr [rbx+0x10]
mov rsi, rdx
lea eax, [rdi-0x02]
mov ecx, dword ptr [rsi+0x08]
cmp eax, ecx
jae G_M19968_IG245
mov r13d, dword ptr [rsi+4*rax+0x10]
mov rsi, rdx
dec edi
cmp edi, ecx
jae G_M19968_IG245
mov esi, dword ptr [rsi+4*rdi+0x10]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush2(int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush2(int):this
mov rdi, gword ptr [rbx+0x18]
mov eax, dword ptr [rbx+0x54]
dec eax
mov dword ptr [rbx+0x54], eax
cmp eax, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov dword ptr [rdi+4*rax+0x10], r13d
mov dword ptr [rbx+0x4C], r13d
mov rdi, gword ptr [rbx+0x70]
mov rdi, gword ptr [rdi+0x10]
mov eax, dword ptr [rbx+0x88]
inc eax
cmp eax, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov r13d, dword ptr [rdi+4*rax+0x10]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:EnsureStorage():this
call [rax]System.Text.RegularExpressions.RegexRunner:EnsureStorage():this
mov dword ptr [rbx+0x88], r13d
mov rsi, gword ptr [rbx+0x70]
mov rsi, gword ptr [rsi+0x10]
cmp r13d, dword ptr [rsi+0x08]
jae G_M19968_IG245
mov edi, r13d
mov esi, dword ptr [rsi+4*rdi+0x10]
mov edi, esi
and edi, -65
mov dword ptr [rbx+0x84], edi
test sil, 64
setne sil
mov byte ptr [rbx+0x69], sil
jmp G_M19968_IG04
;; size=202 bbWeight=16 PerfScore 1000.00
G_M19968_IG30:
mov edi, dword ptr [rbx+0x50]
add edi, 2
mov dword ptr [rbx+0x50], edi
mov esi, dword ptr [rbx+0x54]
inc esi
mov dword ptr [rbx+0x54], esi
mov rdx, gword ptr [rbx+0x10]
mov rsi, rdx
lea eax, [rdi-0x02]
mov ecx, dword ptr [rsi+0x08]
cmp eax, ecx
jae G_M19968_IG245
mov esi, dword ptr [rsi+4*rax+0x10]
mov dword ptr [rbx+0x4C], esi
mov rsi, rdx
dec edi
cmp edi, ecx
jae G_M19968_IG245
mov esi, dword ptr [rsi+4*rdi+0x10]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush2(int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush2(int):this
- ;; size=77 bbWeight=16 PerfScore 364.00
+ jmp G_M19968_IG143
+ ;; size=82 bbWeight=2 PerfScore 49.50
G_M19968_IG31:
- mov edi, 1
- jmp G_M19968_IG03
- ;; size=10 bbWeight=16 PerfScore 36.00
-G_M19968_IG32:
mov eax, dword ptr [rbx+0x50]
inc eax
mov dword ptr [rbx+0x50], eax
mov rdx, gword ptr [rbx+0x10]
mov rdi, rdx
dec eax
mov ecx, dword ptr [rdi+0x08]
cmp eax, ecx
jae G_M19968_IG245
mov edi, dword ptr [rdi+4*rax+0x10]
mov dword ptr [rbx+0x4C], edi
- mov rdi, gword ptr [rbx+0x70]
- mov r9, gword ptr [rdi+0x10]
- mov rdi, r9
+ mov r9, gword ptr [rbx+0x70]
+ mov r8, gword ptr [r9+0x10]
+ mov rdi, r8
mov r11d, dword ptr [rbx+0x88]
lea eax, [r11+0x01]
cmp eax, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov r13d, dword ptr [rdi+4*rax+0x10]
mov r12d, dword ptr [rbx+0x5C]
shl r12d, 2
cmp dword ptr [rbx+0x54], r12d
- jge SHORT G_M19968_IG34
+ jge SHORT G_M19968_IG33
;; size=85 bbWeight=16 PerfScore 500.00
-G_M19968_IG33:
+G_M19968_IG32:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:DoubleStack():this
call [rax]System.Text.RegularExpressions.RegexRunner:DoubleStack():this
;; size=15 bbWeight=8 PerfScore 28.00
-G_M19968_IG34:
+G_M19968_IG33:
cmp dword ptr [rbx+0x50], r12d
- jge SHORT G_M19968_IG36
+ jge SHORT G_M19968_IG35
;; size=6 bbWeight=16 PerfScore 64.00
-G_M19968_IG35:
+G_M19968_IG34:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:DoubleTrack():this
call [rax]System.Text.RegularExpressions.RegexRunner:DoubleTrack():this
;; size=15 bbWeight=8 PerfScore 28.00
-G_M19968_IG36:
+G_M19968_IG35:
mov dword ptr [rbx+0x88], r13d
mov rdi, gword ptr [rbx+0x70]
mov rdi, gword ptr [rdi+0x10]
cmp r13d, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov esi, r13d
mov edi, dword ptr [rdi+4*rsi+0x10]
mov esi, edi
and esi, -65
mov dword ptr [rbx+0x84], esi
test dil, 64
setne dil
mov byte ptr [rbx+0x69], dil
jmp G_M19968_IG04
;; size=60 bbWeight=16 PerfScore 272.00
-G_M19968_IG37:
+G_M19968_IG36:
mov edi, dword ptr [rbx+0x50]
add edi, 2
mov dword ptr [rbx+0x50], edi
mov rdx, gword ptr [rbx+0x10]
mov rsi, rdx
add edi, -2
mov ecx, dword ptr [rsi+0x08]
cmp edi, ecx
jae G_M19968_IG245
mov r13d, dword ptr [rsi+4*rdi+0x10]
mov dword ptr [rbx+0x4C], r13d
- mov rdi, gword ptr [rbx+0x70]
- mov r9, gword ptr [rdi+0x10]
- mov rdi, r9
+ mov r9, gword ptr [rbx+0x70]
+ mov r8, gword ptr [r9+0x10]
+ mov rdi, r8
mov r11d, dword ptr [rbx+0x88]
lea esi, [r11+0x01]
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov esi, dword ptr [rdi+4*rsi+0x10]
cmp byte ptr [rbx+0x69], 0
- je SHORT G_M19968_IG38
+ je SHORT G_M19968_IG37
mov edi, dword ptr [rbx+0x4C]
dec edi
mov dword ptr [rbx+0x4C], edi
- jmp SHORT G_M19968_IG39
+ jmp SHORT G_M19968_IG38
;; size=90 bbWeight=8 PerfScore 272.00
-G_M19968_IG38:
+G_M19968_IG37:
mov edi, dword ptr [rbx+0x4C]
lea edx, [rdi+0x01]
mov dword ptr [rbx+0x4C], edx
;; size=9 bbWeight=8 PerfScore 28.00
-G_M19968_IG39:
+G_M19968_IG38:
cmp edi, r15d
jae G_M19968_IG245
mov edi, edi
movzx r12, word ptr [r14+2*rdi]
- mov rdi, gword ptr [rbx+0x70]
- mov rdi, gword ptr [rdi+0x18]
+ mov rdi, gword ptr [r9+0x18]
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov edx, esi
mov rax, gword ptr [rdi+8*rdx+0x10]
mov gword ptr [rbp-0x60], rax
- mov rdi, gword ptr [rbx+0x70]
- mov rdi, gword ptr [rdi+0x20]
+ mov rdi, gword ptr [r9+0x20]
movsxd rsi, esi
mov rdx, 0xD1FFAB1E ; uint[]
mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_LDELEMA_REF
call [rcx]CORINFO_HELP_LDELEMA_REF
mov rdi, gword ptr [rax]
test rdi, rdi
- je SHORT G_M19968_IG40
+ je SHORT G_M19968_IG39
mov esi, r12d
sar esi, 4
cmp dword ptr [rdi+0x08], esi
- jbe SHORT G_M19968_IG40
+ jbe SHORT G_M19968_IG39
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov ecx, dword ptr [rdi+4*rsi+0x10]
mov edi, r12d
and edi, 15
add edi, edi
mov esi, 1
shlx r8d, esi, edi
test ecx, r8d
- jne SHORT G_M19968_IG43
- ;; size=132 bbWeight=8 PerfScore 314.00
-G_M19968_IG40:
+ jne SHORT G_M19968_IG42
+ ;; size=124 bbWeight=8 PerfScore 282.00
+G_M19968_IG39:
cmp r12d, 128
- jge SHORT G_M19968_IG41
+ jge SHORT G_M19968_IG40
mov edi, r12d
mov rsi, gword ptr [rbp-0x60]
mov rdx, rax
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:<CharInClass>g__InitializeValue|127_0(ushort,System.String,byref):ubyte
call [rax]System.Text.RegularExpressions.RegexCharClass:<CharInClass>g__InitializeValue|127_0(ushort,System.String,byref):ubyte
- jmp SHORT G_M19968_IG42
+ jmp SHORT G_M19968_IG41
;; size=33 bbWeight=8 PerfScore 64.00
-G_M19968_IG41:
+G_M19968_IG40:
mov edi, r12d
mov rsi, gword ptr [rbp-0x60]
xor edx, edx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:CharInClassRecursive(ushort,System.String,int):ubyte
call [rax]System.Text.RegularExpressions.RegexCharClass:CharInClassRecursive(ushort,System.String,int):ubyte
;; size=21 bbWeight=8 PerfScore 38.00
-G_M19968_IG42:
+G_M19968_IG41:
test eax, eax
je G_M19968_IG240
- jmp SHORT G_M19968_IG44
+ jmp SHORT G_M19968_IG43
;; size=10 bbWeight=8 PerfScore 26.00
-G_M19968_IG43:
+G_M19968_IG42:
add r8d, r8d
test ecx, r8d
je G_M19968_IG240
;; size=12 bbWeight=8 PerfScore 12.00
-G_M19968_IG44:
+G_M19968_IG43:
mov rdx, gword ptr [rbx+0x10]
mov esi, dword ptr [rbx+0x50]
dec esi
cmp esi, dword ptr [rdx+0x08]
jae G_M19968_IG245
mov esi, dword ptr [rdx+4*rsi+0x10]
test esi, esi
jle G_M19968_IG242
- ;; size=30 bbWeight=16 PerfScore 184.00
-G_M19968_IG45:
cmp byte ptr [rbx+0x69], 0
- je SHORT G_M19968_IG46
+ je SHORT G_M19968_IG45
+ ;; size=36 bbWeight=16 PerfScore 248.00
+G_M19968_IG44:
mov edx, -1
- jmp SHORT G_M19968_IG47
- ;; size=13 bbWeight=8 PerfScore 50.00
-G_M19968_IG46:
+ jmp SHORT G_M19968_IG46
+ ;; size=7 bbWeight=8 PerfScore 18.00
+G_M19968_IG45:
mov edx, 1
;; size=5 bbWeight=8 PerfScore 2.00
-G_M19968_IG47:
+G_M19968_IG46:
add edx, r13d
dec esi
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int):this
jmp G_M19968_IG242
;; size=25 bbWeight=16 PerfScore 96.00
-G_M19968_IG48:
+G_M19968_IG47:
mov edi, dword ptr [rbx+0x50]
add edi, 2
mov dword ptr [rbx+0x50], edi
mov rdx, gword ptr [rbx+0x10]
mov rsi, rdx
lea eax, [rdi-0x02]
mov ecx, dword ptr [rsi+0x08]
cmp eax, ecx
jae G_M19968_IG245
mov esi, dword ptr [rsi+4*rax+0x10]
mov dword ptr [rbx+0x4C], esi
cmp byte ptr [rbx+0x69], 0
- je SHORT G_M19968_IG49
+ je SHORT G_M19968_IG48
mov eax, dword ptr [rbx+0x4C]
dec eax
mov dword ptr [rbx+0x4C], eax
- jmp SHORT G_M19968_IG50
+ jmp SHORT G_M19968_IG49
;; size=53 bbWeight=8 PerfScore 172.00
-G_M19968_IG49:
+G_M19968_IG48:
mov eax, dword ptr [rbx+0x4C]
lea r8d, [rax+0x01]
mov dword ptr [rbx+0x4C], r8d
;; size=11 bbWeight=8 PerfScore 28.00
-G_M19968_IG50:
+G_M19968_IG49:
cmp eax, r15d
jae G_M19968_IG245
mov eax, eax
movzx rax, word ptr [r14+2*rax]
- mov r8, gword ptr [rbx+0x70]
- mov r9, gword ptr [r8+0x10]
- mov r8, r9
+ mov r9, gword ptr [rbx+0x70]
+ mov r8, gword ptr [r9+0x10]
mov r11d, dword ptr [rbx+0x88]
lea r9d, [r11+0x01]
cmp r9d, dword ptr [r8+0x08]
jae G_M19968_IG245
cmp ax, word ptr [r8+4*r9+0x10]
je G_M19968_IG240
- ;; size=60 bbWeight=8 PerfScore 146.00
-G_M19968_IG51:
+ ;; size=57 bbWeight=8 PerfScore 144.00
+G_M19968_IG50:
dec edi
cmp edi, ecx
jae G_M19968_IG245
mov edi, dword ptr [rdx+4*rdi+0x10]
test edi, edi
jle G_M19968_IG242
- ;; size=22 bbWeight=16 PerfScore 76.00
-G_M19968_IG52:
cmp byte ptr [rbx+0x69], 0
- je SHORT G_M19968_IG53
+ je SHORT G_M19968_IG52
+ ;; size=28 bbWeight=16 PerfScore 140.00
+G_M19968_IG51:
mov edx, -1
- jmp SHORT G_M19968_IG54
- ;; size=13 bbWeight=8 PerfScore 50.00
-G_M19968_IG53:
+ jmp SHORT G_M19968_IG53
+ ;; size=7 bbWeight=8 PerfScore 18.00
+G_M19968_IG52:
mov edx, 1
;; size=5 bbWeight=8 PerfScore 2.00
-G_M19968_IG54:
+G_M19968_IG53:
add edx, esi
lea esi, [rdi-0x01]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int):this
jmp G_M19968_IG242
;; size=25 bbWeight=16 PerfScore 100.00
-G_M19968_IG55:
+G_M19968_IG54:
mov edi, dword ptr [rbx+0x50]
add edi, 2
mov dword ptr [rbx+0x50], edi
mov rdx, gword ptr [rbx+0x10]
mov rsi, rdx
lea eax, [rdi-0x02]
mov ecx, dword ptr [rsi+0x08]
cmp eax, ecx
jae G_M19968_IG245
mov esi, dword ptr [rsi+4*rax+0x10]
mov dword ptr [rbx+0x4C], esi
cmp byte ptr [rbx+0x69], 0
- je SHORT G_M19968_IG56
+ je SHORT G_M19968_IG55
mov eax, dword ptr [rbx+0x4C]
dec eax
mov dword ptr [rbx+0x4C], eax
- jmp SHORT G_M19968_IG57
+ jmp SHORT G_M19968_IG56
;; size=53 bbWeight=8 PerfScore 172.00
-G_M19968_IG56:
+G_M19968_IG55:
mov eax, dword ptr [rbx+0x4C]
lea r8d, [rax+0x01]
mov dword ptr [rbx+0x4C], r8d
;; size=11 bbWeight=8 PerfScore 28.00
-G_M19968_IG57:
+G_M19968_IG56:
cmp eax, r15d
jae G_M19968_IG245
mov eax, eax
movzx rax, word ptr [r14+2*rax]
- mov r8, gword ptr [rbx+0x70]
- mov r9, gword ptr [r8+0x10]
- mov r8, r9
+ mov r9, gword ptr [rbx+0x70]
+ mov r8, gword ptr [r9+0x10]
mov r11d, dword ptr [rbx+0x88]
lea r9d, [r11+0x01]
cmp r9d, dword ptr [r8+0x08]
jae G_M19968_IG245
cmp ax, word ptr [r8+4*r9+0x10]
jne G_M19968_IG240
- ;; size=60 bbWeight=8 PerfScore 146.00
-G_M19968_IG58:
+ ;; size=57 bbWeight=8 PerfScore 144.00
+G_M19968_IG57:
dec edi
cmp edi, ecx
jae G_M19968_IG245
mov edi, dword ptr [rdx+4*rdi+0x10]
test edi, edi
jle G_M19968_IG242
- ;; size=22 bbWeight=16 PerfScore 76.00
-G_M19968_IG59:
cmp byte ptr [rbx+0x69], 0
- je SHORT G_M19968_IG60
+ je SHORT G_M19968_IG59
+ ;; size=28 bbWeight=16 PerfScore 140.00
+G_M19968_IG58:
mov edx, -1
- jmp SHORT G_M19968_IG61
- ;; size=13 bbWeight=8 PerfScore 50.00
-G_M19968_IG60:
+ jmp SHORT G_M19968_IG60
+ ;; size=7 bbWeight=8 PerfScore 18.00
+G_M19968_IG59:
mov edx, 1
;; size=5 bbWeight=8 PerfScore 2.00
-G_M19968_IG61:
+G_M19968_IG60:
add edx, esi
lea esi, [rdi-0x01]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int):this
jmp G_M19968_IG242
;; size=25 bbWeight=16 PerfScore 100.00
-G_M19968_IG62:
+G_M19968_IG61:
mov edi, dword ptr [rbx+0x50]
add edi, 2
mov dword ptr [rbx+0x50], edi
mov rdx, gword ptr [rbx+0x10]
mov rsi, rdx
lea eax, [rdi-0x01]
mov ecx, dword ptr [rsi+0x08]
cmp eax, ecx
jae G_M19968_IG245
mov esi, dword ptr [rsi+4*rax+0x10]
add edi, -2
cmp edi, ecx
jae G_M19968_IG245
mov edx, dword ptr [rdx+4*rdi+0x10]
mov dword ptr [rbx+0x4C], edx
test esi, esi
jle G_M19968_IG242
- ;; size=60 bbWeight=16 PerfScore 272.00
-G_M19968_IG63:
cmp byte ptr [rbx+0x69], 0
- je SHORT G_M19968_IG64
+ je SHORT G_M19968_IG63
+ ;; size=66 bbWeight=16 PerfScore 336.00
+G_M19968_IG62:
mov edi, -1
- jmp SHORT G_M19968_IG65
- ;; size=13 bbWeight=8 PerfScore 50.00
-G_M19968_IG64:
+ jmp SHORT G_M19968_IG64
+ ;; size=7 bbWeight=8 PerfScore 18.00
+G_M19968_IG63:
mov edi, 1
;; size=5 bbWeight=8 PerfScore 2.00
-G_M19968_IG65:
+G_M19968_IG64:
sub edx, edi
dec esi
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int):this
jmp G_M19968_IG242
;; size=24 bbWeight=16 PerfScore 96.00
-G_M19968_IG66:
+G_M19968_IG65:
mov r13, gword ptr [rbx+0x10]
mov rdi, r13
mov esi, dword ptr [r13+0x08]
dec esi
mov r12d, dword ptr [rdi+0x08]
cmp esi, r12d
jae G_M19968_IG245
lea rdi, bword ptr [rdi+4*rsi+0x10]
mov esi, dword ptr [rdi]
mov edx, dword ptr [rbx+0x4C]
cmp esi, edx
- jge G_M19968_IG78
+ jge G_M19968_IG118
mov dword ptr [rdi], edx
- jmp G_M19968_IG78
- align [0 bytes for IG80]
+ jmp G_M19968_IG118
;; size=51 bbWeight=4 PerfScore 68.00
-G_M19968_IG67:
+G_M19968_IG66:
mov rdi, r14
mov esi, r15d
mov edx, dword ptr [rbx+0x4C]
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:IsECMABoundary(System.ReadOnlySpan`1[ushort],int):ubyte
call [rax]System.Text.RegularExpressions.RegexRunner:IsECMABoundary(System.ReadOnlySpan`1[ushort],int):ubyte
test eax, eax
jne G_M19968_IG240
- jmp G_M19968_IG78
+ jmp G_M19968_IG118
;; size=34 bbWeight=8 PerfScore 72.00
-G_M19968_IG68:
+G_M19968_IG67:
mov rdi, r14
mov esi, r15d
mov edx, dword ptr [rbx+0x4C]
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:IsECMABoundary(System.ReadOnlySpan`1[ushort],int):ubyte
call [rax]System.Text.RegularExpressions.RegexRunner:IsECMABoundary(System.ReadOnlySpan`1[ushort],int):ubyte
test eax, eax
je G_M19968_IG240
- jmp G_M19968_IG78
+ jmp G_M19968_IG118
;; size=34 bbWeight=8 PerfScore 72.00
-G_M19968_IG69:
+G_M19968_IG68:
mov rax, gword ptr [rbx+0x28]
mov rax, gword ptr [rax+0x50]
cmp dword ptr [rax+0x08], 0
jbe G_M19968_IG245
cmp dword ptr [rax+0x10], 0
setg al
movzx rax, al
- ;; size=28 bbWeight=1 PerfScore 12.25
-G_M19968_IG70:
+ ;; size=28 bbWeight=0.25 PerfScore 3.06
+G_M19968_IG69:
add rsp, 56
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=1 PerfScore 4.25
-G_M19968_IG71:
- mov rdi, gword ptr [rbx+0x70]
- mov rdi, gword ptr [rdi+0x10]
+ ;; size=15 bbWeight=0.25 PerfScore 1.06
+G_M19968_IG70:
+ mov rax, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [rax+0x10]
mov esi, dword ptr [rbx+0x88]
lea eax, [rsi+0x01]
cmp eax, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov r13d, dword ptr [rdi+4*rax+0x10]
mov r12d, dword ptr [rbx+0x5C]
shl r12d, 2
cmp dword ptr [rbx+0x54], r12d
- jge SHORT G_M19968_IG73
+ jge SHORT G_M19968_IG72
;; size=45 bbWeight=16 PerfScore 304.00
-G_M19968_IG72:
+G_M19968_IG71:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:DoubleStack():this
call [rax]System.Text.RegularExpressions.RegexRunner:DoubleStack():this
;; size=15 bbWeight=8 PerfScore 28.00
-G_M19968_IG73:
+G_M19968_IG72:
cmp dword ptr [rbx+0x50], r12d
- jge SHORT G_M19968_IG75
+ jge SHORT G_M19968_IG74
;; size=6 bbWeight=16 PerfScore 64.00
-G_M19968_IG74:
+G_M19968_IG73:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:DoubleTrack():this
call [rax]System.Text.RegularExpressions.RegexRunner:DoubleTrack():this
;; size=15 bbWeight=8 PerfScore 28.00
-G_M19968_IG75:
+G_M19968_IG74:
mov dword ptr [rbx+0x88], r13d
mov rdi, gword ptr [rbx+0x70]
mov rdi, gword ptr [rdi+0x10]
cmp r13d, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov esi, r13d
mov edi, dword ptr [rdi+4*rsi+0x10]
mov esi, edi
and esi, -65
mov dword ptr [rbx+0x84], esi
test dil, 64
setne dil
mov byte ptr [rbx+0x69], dil
jmp G_M19968_IG04
;; size=60 bbWeight=16 PerfScore 272.00
-G_M19968_IG76:
- mov rdi, gword ptr [rbx+0x70]
- mov rdi, gword ptr [rdi+0x10]
+G_M19968_IG75:
+ mov rax, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [rax+0x10]
mov esi, dword ptr [rbx+0x88]
inc esi
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov esi, dword ptr [rdi+4*rsi+0x10]
mov rdi, gword ptr [rbx+0x28]
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Match:IsMatched(int):ubyte:this
cmp dword ptr [rdi], edi
call [rax]System.Text.RegularExpressions.Match:IsMatched(int):ubyte:this
test eax, eax
je G_M19968_IG240
- jmp G_M19968_IG31
+ jmp G_M19968_IG143
;; size=60 bbWeight=8 PerfScore 190.00
-G_M19968_IG77:
+G_M19968_IG76:
mov eax, dword ptr [rbx+0x54]
add eax, 2
mov dword ptr [rbx+0x54], eax
mov r13, gword ptr [rbx+0x18]
mov rsi, r13
lea edi, [rax-0x01]
mov ecx, dword ptr [rsi+0x08]
cmp edi, ecx
jae G_M19968_IG245
mov esi, dword ptr [rsi+4*rdi+0x10]
mov rdi, gword ptr [rbx+0x10]
mov edi, dword ptr [rdi+0x08]
sub edi, esi
mov dword ptr [rbx+0x50], edi
mov rsi, r13
lea edi, [rax-0x02]
cmp edi, ecx
jae G_M19968_IG245
mov ecx, dword ptr [rsi+4*rdi+0x10]
mov esi, ecx
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush(int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush(int):this
- ;; size=81 bbWeight=8 PerfScore 194.00
-G_M19968_IG78:
- xor edi, edi
- jmp G_M19968_IG03
- ;; size=7 bbWeight=64 PerfScore 144.00
-G_M19968_IG79:
+ jmp G_M19968_IG118
+ ;; size=86 bbWeight=2 PerfScore 52.50
+G_M19968_IG77:
mov eax, dword ptr [rbx+0x54]
add eax, 2
mov dword ptr [rbx+0x54], eax
mov r13, gword ptr [rbx+0x18]
mov rcx, r13
lea edx, [rax-0x01]
mov edi, dword ptr [rcx+0x08]
cmp edx, edi
jae G_M19968_IG245
mov ecx, dword ptr [rcx+4*rdx+0x10]
mov rdx, gword ptr [rbx+0x10]
mov edx, dword ptr [rdx+0x08]
sub edx, ecx
mov dword ptr [rbx+0x50], edx
mov r12, gword ptr [rbx+0x20]
- jmp SHORT G_M19968_IG81
+ jmp SHORT G_M19968_IG79
;; size=52 bbWeight=8 PerfScore 164.00
-G_M19968_IG80:
+G_M19968_IG78:
mov rcx, r12
mov edx, dword ptr [rbx+0x58]
lea esi, [rdx+0x01]
mov dword ptr [rbx+0x58], esi
cmp edx, dword ptr [rcx+0x08]
jae G_M19968_IG245
mov ecx, dword ptr [rcx+4*rdx+0x10]
mov rdx, gword ptr [rbx+0x28]
mov rdx, gword ptr [rdx+0x50]
cmp ecx, dword ptr [rdx+0x08]
jae G_M19968_IG245
lea rcx, bword ptr [rdx+4*rcx+0x10]
dec dword ptr [rcx]
;; size=49 bbWeight=32 PerfScore 696.00
-G_M19968_IG81:
+G_M19968_IG79:
mov ecx, dword ptr [r12+0x08]
sub ecx, dword ptr [rbx+0x58]
mov rdx, r13
lea esi, [rax-0x02]
cmp esi, edi
jae G_M19968_IG245
cmp ecx, dword ptr [rdx+4*rsi+0x10]
- jne SHORT G_M19968_IG80
+ jne SHORT G_M19968_IG78
jmp G_M19968_IG240
;; size=33 bbWeight=64 PerfScore 832.00
-G_M19968_IG82:
+G_M19968_IG80:
cmp byte ptr [rbx+0x68], 0
- je SHORT G_M19968_IG83
+ je SHORT G_M19968_IG81
call System.Environment:get_TickCount64():long
cmp rax, qword ptr [rbx+0x38]
jge G_M19968_IG243
- ;; size=21 bbWeight=8 PerfScore 72.00
-G_M19968_IG83:
+ ;; size=21 bbWeight=2 PerfScore 18.00
+G_M19968_IG81:
mov rdi, gword ptr [rbx+0x10]
mov edi, dword ptr [rdi+0x08]
sub edi, dword ptr [rbx+0x50]
mov rsi, gword ptr [rbx+0x20]
mov esi, dword ptr [rsi+0x08]
sub esi, dword ptr [rbx+0x58]
mov rax, gword ptr [rbx+0x18]
mov ecx, dword ptr [rbx+0x54]
dec ecx
cmp ecx, dword ptr [rax+0x08]
jae G_M19968_IG245
mov edx, ecx
mov dword ptr [rax+4*rdx+0x10], edi
dec ecx
cmp ecx, dword ptr [rax+0x08]
jae G_M19968_IG245
mov edi, ecx
mov dword ptr [rax+4*rdi+0x10], esi
mov dword ptr [rbx+0x54], ecx
mov rdi, gword ptr [rbx+0x10]
mov esi, dword ptr [rbx+0x50]
dec esi
mov dword ptr [rbx+0x50], esi
mov eax, dword ptr [rbx+0x88]
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov dword ptr [rdi+4*rsi+0x10], eax
- jmp G_M19968_IG78
- ;; size=100 bbWeight=8 PerfScore 354.00
-G_M19968_IG84:
+ jmp G_M19968_IG118
+ align [0 bytes for IG183]
+ ;; size=100 bbWeight=2 PerfScore 88.50
+G_M19968_IG82:
mov edi, dword ptr [rbx+0x54]
inc edi
mov dword ptr [rbx+0x54], edi
mov r13, gword ptr [rbx+0x18]
mov rsi, r13
lea eax, [rdi-0x01]
mov ecx, dword ptr [rsi+0x08]
cmp eax, ecx
jae G_M19968_IG245
mov r12d, dword ptr [rsi+4*rax+0x10]
mov rdx, gword ptr [rbx+0x10]
mov rsi, rdx
mov eax, dword ptr [rbx+0x50]
dec eax
mov edx, dword ptr [rsi+0x08]
cmp eax, edx
jae G_M19968_IG245
mov r8d, eax
mov dword ptr [rsi+4*r8+0x10], r12d
dec eax
mov r8d, dword ptr [rbx+0x88]
cmp eax, edx
jae G_M19968_IG245
mov edx, eax
mov dword ptr [rsi+4*rdx+0x10], r8d
mov dword ptr [rbx+0x50], eax
mov rsi, r13
dec edi
cmp edi, ecx
jae G_M19968_IG245
mov edi, dword ptr [rsi+4*rdi+0x10]
mov dword ptr [rbx+0x4C], edi
- jmp G_M19968_IG78
- ;; size=117 bbWeight=8 PerfScore 262.00
-G_M19968_IG85:
- mov rdi, gword ptr [rbx+0x70]
- mov rdi, gword ptr [rdi+0x10]
+ jmp G_M19968_IG118
+ ;; size=117 bbWeight=2 PerfScore 65.50
+G_M19968_IG83:
+ mov rax, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [rax+0x10]
mov rsi, rdi
mov r8d, dword ptr [rbx+0x88]
lea eax, [r8+0x02]
cmp eax, dword ptr [rsi+0x08]
jae G_M19968_IG245
cmp dword ptr [rsi+4*rax+0x10], -1
- je SHORT G_M19968_IG86
+ je SHORT G_M19968_IG84
lea esi, [r8+0x02]
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov esi, dword ptr [rdi+4*rsi+0x10]
mov rdi, gword ptr [rbx+0x28]
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Match:IsMatched(int):ubyte:this
cmp dword ptr [rdi], edi
call [rax]System.Text.RegularExpressions.Match:IsMatched(int):ubyte:this
test eax, eax
je G_M19968_IG240
;; size=81 bbWeight=8 PerfScore 246.00
-G_M19968_IG86:
+G_M19968_IG84:
inc dword ptr [rbx+0x54]
mov rdi, gword ptr [rbx+0x70]
mov rdi, gword ptr [rdi+0x10]
mov eax, dword ptr [rbx+0x88]
add eax, 2
cmp eax, dword ptr [rdi+0x08]
jae G_M19968_IG245
cmp dword ptr [rdi+4*rax+0x10], -1
- jne G_M19968_IG89
+ jne G_M19968_IG87
mov rdi, gword ptr [rbx+0x70]
mov rdi, gword ptr [rdi+0x10]
mov eax, dword ptr [rbx+0x88]
inc eax
cmp eax, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov r13d, dword ptr [rdi+4*rax+0x10]
mov rdi, gword ptr [rbx+0x18]
mov eax, dword ptr [rbx+0x54]
dec eax
cmp eax, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov r12d, dword ptr [rdi+4*rax+0x10]
mov edi, dword ptr [rbx+0x4C]
cmp edi, r12d
- jge SHORT G_M19968_IG87
+ jge SHORT G_M19968_IG85
mov dword ptr [rbp-0x40], r12d
mov eax, edi
mov r12d, eax
mov edi, dword ptr [rbp-0x40]
- ;; size=113 bbWeight=8 PerfScore 364.00
-G_M19968_IG87:
+ ;; size=113 bbWeight=2 PerfScore 91.00
+G_M19968_IG85:
cmp dword ptr [rbx+0x58], 0
- jne SHORT G_M19968_IG88
+ jne SHORT G_M19968_IG86
mov dword ptr [rbp-0x40], edi
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
call [rax]System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
mov edi, dword ptr [rbp-0x40]
- ;; size=27 bbWeight=8 PerfScore 76.00
-G_M19968_IG88:
+ ;; size=27 bbWeight=2 PerfScore 19.00
+G_M19968_IG86:
mov rcx, gword ptr [rbx+0x20]
mov esi, dword ptr [rbx+0x58]
dec esi
mov dword ptr [rbx+0x58], esi
cmp esi, dword ptr [rcx+0x08]
jae G_M19968_IG245
mov dword ptr [rcx+4*rsi+0x10], r13d
mov ecx, edi
sub ecx, r12d
mov rdi, gword ptr [rbx+0x28]
mov esi, r13d
mov edx, r12d
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Match:AddMatch(int,int,int):this
cmp dword ptr [rdi], edi
call [rax]System.Text.RegularExpressions.Match:AddMatch(int,int,int):this
- jmp SHORT G_M19968_IG90
- ;; size=57 bbWeight=8 PerfScore 172.00
-G_M19968_IG89:
+ jmp SHORT G_M19968_IG88
+ ;; size=57 bbWeight=2 PerfScore 43.00
+G_M19968_IG87:
mov rsi, gword ptr [rbx+0x70]
mov rsi, gword ptr [rsi+0x10]
mov edx, dword ptr [rbx+0x88]
inc edx
cmp edx, dword ptr [rsi+0x08]
jae G_M19968_IG245
mov esi, dword ptr [rsi+4*rdx+0x10]
mov rdx, gword ptr [rbx+0x70]
mov rdx, gword ptr [rdx+0x10]
mov ecx, dword ptr [rbx+0x88]
add ecx, 2
cmp ecx, dword ptr [rdx+0x08]
jae G_M19968_IG245
mov edx, dword ptr [rdx+4*rcx+0x10]
mov rcx, gword ptr [rbx+0x18]
mov r8d, dword ptr [rbx+0x54]
dec r8d
cmp r8d, dword ptr [rcx+0x08]
jae G_M19968_IG245
mov ecx, dword ptr [rcx+4*r8+0x10]
mov r8d, dword ptr [rbx+0x4C]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:TransferCapture(int,int,int,int):this
call [rax]System.Text.RegularExpressions.RegexRunner:TransferCapture(int,int,int,int):this
- ;; size=104 bbWeight=8 PerfScore 322.00
-G_M19968_IG90:
+ ;; size=104 bbWeight=2 PerfScore 80.50
+G_M19968_IG88:
mov rcx, gword ptr [rbx+0x18]
mov edi, dword ptr [rbx+0x54]
dec edi
cmp edi, dword ptr [rcx+0x08]
jae G_M19968_IG245
mov ecx, dword ptr [rcx+4*rdi+0x10]
mov rdi, gword ptr [rbx+0x10]
mov esi, dword ptr [rbx+0x50]
dec esi
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov edx, esi
mov dword ptr [rdi+4*rdx+0x10], ecx
dec esi
mov ecx, dword ptr [rbx+0x88]
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov edx, esi
mov dword ptr [rdi+4*rdx+0x10], ecx
mov dword ptr [rbx+0x50], esi
jmp G_M19968_IG242
- ;; size=77 bbWeight=8 PerfScore 242.00
-G_M19968_IG91:
+ ;; size=77 bbWeight=2 PerfScore 60.50
+G_M19968_IG89:
mov edx, dword ptr [rbx+0x4C]
mov r13, gword ptr [rbx+0x18]
mov rcx, r13
mov edi, dword ptr [rbx+0x54]
dec edi
mov dword ptr [rbx+0x54], edi
mov esi, dword ptr [rcx+0x08]
cmp edi, esi
jae G_M19968_IG245
mov esi, edi
mov dword ptr [rcx+4*rsi+0x10], edx
mov rdx, gword ptr [rbx+0x10]
mov ecx, dword ptr [rbx+0x50]
dec ecx
mov dword ptr [rbx+0x50], ecx
mov r8d, dword ptr [rbx+0x88]
mov edi, dword ptr [rdx+0x08]
cmp ecx, edi
jae G_M19968_IG245
mov edi, ecx
mov dword ptr [rdx+4*rdi+0x10], r8d
- jmp G_M19968_IG78
- ;; size=77 bbWeight=8 PerfScore 206.00
-G_M19968_IG92:
+ jmp G_M19968_IG118
+ ;; size=77 bbWeight=2 PerfScore 51.50
+G_M19968_IG90:
mov r13, gword ptr [rbx+0x18]
mov rcx, r13
mov edi, dword ptr [rbx+0x54]
dec edi
mov dword ptr [rbx+0x54], edi
mov esi, dword ptr [rcx+0x08]
cmp edi, esi
jae G_M19968_IG245
mov esi, edi
mov dword ptr [rcx+4*rsi+0x10], -1
mov rdx, gword ptr [rbx+0x10]
mov rcx, rdx
mov edi, dword ptr [rbx+0x50]
dec edi
mov dword ptr [rbx+0x50], edi
mov r8d, dword ptr [rbx+0x88]
mov esi, r8d
mov edx, dword ptr [rcx+0x08]
cmp edi, edx
jae G_M19968_IG245
mov dword ptr [rcx+4*rdi+0x10], esi
- jmp G_M19968_IG78
- ;; size=81 bbWeight=8 PerfScore 192.00
-G_M19968_IG93:
+ jmp G_M19968_IG118
+ ;; size=81 bbWeight=2 PerfScore 48.00
+G_M19968_IG91:
mov eax, dword ptr [rbx+0x54]
add eax, 2
mov dword ptr [rbx+0x54], eax
mov r13, gword ptr [rbx+0x18]
mov rcx, r13
lea edi, [rax-0x01]
mov esi, dword ptr [rcx+0x08]
cmp edi, esi
jae G_M19968_IG245
mov r8d, dword ptr [rcx+4*rdi+0x10]
mov rcx, r13
lea edi, [rax-0x02]
cmp edi, esi
jae G_M19968_IG245
mov ecx, dword ptr [rcx+4*rdi+0x10]
mov r13d, ecx
test r13d, r13d
- jl SHORT G_M19968_IG95
+ jl SHORT G_M19968_IG93
;; size=61 bbWeight=16 PerfScore 268.00
-G_M19968_IG94:
+G_M19968_IG92:
mov edx, dword ptr [rbx+0x4C]
mov ecx, edx
mov rdi, rbx
mov esi, r8d
mov edx, r13d
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int,int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int,int):this
jmp G_M19968_IG242
- ;; size=31 bbWeight=8 PerfScore 66.00
-G_M19968_IG95:
+ ;; size=31 bbWeight=2 PerfScore 16.50
+G_M19968_IG93:
mov rdi, rbx
mov esi, r8d
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush2(int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush2(int):this
mov edi, dword ptr [rbx+0x4C]
mov rax, gword ptr [rbx+0x18]
mov ecx, dword ptr [rbx+0x54]
dec ecx
cmp ecx, dword ptr [rax+0x08]
jae G_M19968_IG245
mov edx, ecx
mov dword ptr [rax+4*rdx+0x10], edi
dec ecx
cmp ecx, dword ptr [rax+0x08]
jae G_M19968_IG245
mov edi, ecx
inc r13d
mov dword ptr [rax+4*rdi+0x10], r13d
mov dword ptr [rbx+0x54], ecx
mov rdi, gword ptr [rbx+0x70]
mov rdi, gword ptr [rdi+0x10]
mov eax, dword ptr [rbx+0x88]
inc eax
cmp eax, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov r13d, dword ptr [rdi+4*rax+0x10]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:EnsureStorage():this
call [rax]System.Text.RegularExpressions.RegexRunner:EnsureStorage():this
mov dword ptr [rbx+0x88], r13d
mov rdi, gword ptr [rbx+0x70]
mov rdi, gword ptr [rdi+0x10]
cmp r13d, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov eax, r13d
mov edi, dword ptr [rdi+4*rax+0x10]
mov eax, edi
and eax, -65
mov dword ptr [rbx+0x84], eax
test dil, 64
setne dil
mov byte ptr [rbx+0x69], dil
jmp G_M19968_IG04
;; size=174 bbWeight=16 PerfScore 876.00
-G_M19968_IG96:
+G_M19968_IG94:
mov eax, dword ptr [rbx+0x54]
add eax, 2
mov dword ptr [rbx+0x54], eax
mov r13, gword ptr [rbx+0x18]
mov rdi, r13
lea ecx, [rax-0x01]
mov esi, dword ptr [rdi+0x08]
cmp ecx, esi
jae G_M19968_IG245
mov ecx, dword ptr [rdi+4*rcx+0x10]
mov dword ptr [rbp-0x2C], ecx
mov rdi, r13
lea edx, [rax-0x02]
cmp edx, esi
jae G_M19968_IG245
mov edi, dword ptr [rdi+4*rdx+0x10]
mov edx, edi
mov dword ptr [rbp-0x30], edx
mov edi, dword ptr [rbx+0x4C]
mov r8d, edi
mov edi, r8d
sub edi, ecx
mov r9, gword ptr [rbx+0x70]
mov r9, gword ptr [r9+0x10]
mov r10, r9
mov r11d, dword ptr [rbx+0x88]
lea r12d, [r11+0x02]
cmp r12d, dword ptr [r10+0x08]
jae G_M19968_IG245
cmp dword ptr [r10+4*r12+0x10], edx
- jle SHORT G_M19968_IG100
+ jle SHORT G_M19968_IG98
test edi, edi
- jne SHORT G_M19968_IG99
+ jne SHORT G_M19968_IG97
;; size=114 bbWeight=16 PerfScore 580.00
-G_M19968_IG97:
+G_M19968_IG95:
test edx, edx
- jl SHORT G_M19968_IG101
+ jl SHORT G_M19968_IG99
;; size=4 bbWeight=8 PerfScore 10.00
-G_M19968_IG98:
+G_M19968_IG96:
mov ecx, dword ptr [rbp-0x2C]
mov edx, dword ptr [rbp-0x30]
- jmp G_M19968_IG102
- align [0 bytes for IG183]
+ jmp G_M19968_IG100
;; size=11 bbWeight=4 PerfScore 16.00
-G_M19968_IG99:
- jmp SHORT G_M19968_IG101
+G_M19968_IG97:
+ jmp SHORT G_M19968_IG99
;; size=2 bbWeight=8 PerfScore 16.00
-G_M19968_IG100:
+G_M19968_IG98:
mov ecx, dword ptr [rbp-0x2C]
- jmp G_M19968_IG102
+ jmp G_M19968_IG100
;; size=8 bbWeight=8 PerfScore 24.00
-G_M19968_IG101:
+G_M19968_IG99:
mov rdi, gword ptr [rbx+0x10]
mov r10d, dword ptr [rbx+0x50]
dec r10d
mov r12d, dword ptr [rdi+0x08]
cmp r10d, r12d
jae G_M19968_IG245
mov ecx, r10d
mov edx, dword ptr [rbp-0x2C]
mov dword ptr [rdi+4*rcx+0x10], edx
dec r10d
mov ecx, r11d
cmp r10d, r12d
jae G_M19968_IG245
mov edx, r10d
mov dword ptr [rdi+4*rdx+0x10], ecx
mov dword ptr [rbx+0x50], r10d
mov edi, r8d
mov rcx, r13
dec eax
cmp eax, esi
jae G_M19968_IG245
mov edx, eax
mov dword ptr [rcx+4*rdx+0x10], edi
dec eax
cmp eax, esi
jae G_M19968_IG245
mov edi, eax
mov edx, dword ptr [rbp-0x30]
inc edx
mov dword ptr [rcx+4*rdi+0x10], edx
mov dword ptr [rbx+0x54], eax
mov rdi, r9
lea eax, [r11+0x01]
cmp eax, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov r13d, dword ptr [rdi+4*rax+0x10]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:EnsureStorage():this
call [rax]System.Text.RegularExpressions.RegexRunner:EnsureStorage():this
mov dword ptr [rbx+0x88], r13d
mov rdi, gword ptr [rbx+0x70]
mov rdi, gword ptr [rdi+0x10]
cmp r13d, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov esi, r13d
mov edi, dword ptr [rdi+4*rsi+0x10]
mov esi, edi
and esi, -65
mov dword ptr [rbx+0x84], esi
test dil, 64
setne dil
mov byte ptr [rbx+0x69], dil
jmp G_M19968_IG04
;; size=202 bbWeight=16 PerfScore 788.00
-G_M19968_IG102:
+G_M19968_IG100:
mov rdi, rbx
mov esi, ecx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush2(int,int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush2(int,int):this
jmp G_M19968_IG242
- ;; size=22 bbWeight=8 PerfScore 46.00
-G_M19968_IG103:
+ ;; size=22 bbWeight=2 PerfScore 11.50
+G_M19968_IG101:
mov r8d, dword ptr [rbx+0x4C]
- mov rsi, gword ptr [rbx+0x70]
- mov r9, gword ptr [rsi+0x10]
+ mov r9, gword ptr [rbx+0x70]
+ mov r9, gword ptr [r9+0x10]
mov r11d, dword ptr [rbx+0x88]
lea esi, [r11+0x01]
cmp esi, dword ptr [r9+0x08]
jae G_M19968_IG245
mov esi, dword ptr [r9+4*rsi+0x10]
mov r13, gword ptr [rbx+0x18]
mov rdi, r13
mov eax, dword ptr [rbx+0x54]
dec eax
mov ecx, dword ptr [rdi+0x08]
cmp eax, ecx
jae G_M19968_IG245
mov edx, eax
mov dword ptr [rdi+4*rdx+0x10], r8d
dec eax
cmp eax, ecx
jae G_M19968_IG245
mov ecx, eax
mov dword ptr [rdi+4*rcx+0x10], esi
mov dword ptr [rbx+0x54], eax
mov rdi, gword ptr [rbx+0x10]
mov esi, dword ptr [rbx+0x50]
dec esi
mov dword ptr [rbx+0x50], esi
mov r12d, dword ptr [rdi+0x08]
cmp esi, r12d
jae G_M19968_IG245
mov dword ptr [rdi+4*rsi+0x10], r11d
- jmp G_M19968_IG31
- ;; size=122 bbWeight=16 PerfScore 620.00
-G_M19968_IG104:
- mov rsi, gword ptr [rbx+0x70]
- mov r9, gword ptr [rsi+0x10]
+ jmp G_M19968_IG143
+ ;; size=122 bbWeight=2 PerfScore 77.50
+G_M19968_IG102:
+ mov r9, gword ptr [rbx+0x70]
+ mov r9, gword ptr [r9+0x10]
mov rsi, r9
mov r11d, dword ptr [rbx+0x88]
lea edi, [r11+0x01]
cmp edi, dword ptr [rsi+0x08]
jae G_M19968_IG245
mov esi, dword ptr [rsi+4*rdi+0x10]
mov r13, gword ptr [rbx+0x18]
mov rdi, r13
mov eax, dword ptr [rbx+0x54]
dec eax
mov ecx, dword ptr [rdi+0x08]
cmp eax, ecx
jae G_M19968_IG245
mov edx, eax
mov dword ptr [rdi+4*rdx+0x10], -1
dec eax
cmp eax, ecx
jae G_M19968_IG245
mov ecx, eax
mov dword ptr [rdi+4*rcx+0x10], esi
mov dword ptr [rbx+0x54], eax
mov rdi, gword ptr [rbx+0x10]
mov rsi, rdi
mov edi, dword ptr [rbx+0x50]
dec edi
mov dword ptr [rbx+0x50], edi
mov eax, r11d
mov r12d, dword ptr [rsi+0x08]
cmp edi, r12d
jae G_M19968_IG245
mov dword ptr [rsi+4*rdi+0x10], eax
- jmp G_M19968_IG31
- ;; size=127 bbWeight=16 PerfScore 600.00
-G_M19968_IG105:
+ jmp G_M19968_IG143
+ ;; size=127 bbWeight=2 PerfScore 75.00
+G_M19968_IG103:
mov edi, dword ptr [rbx+0x54]
inc edi
mov dword ptr [rbx+0x54], edi
mov r13, gword ptr [rbx+0x18]
mov rsi, r13
lea eax, [rdi-0x01]
mov ecx, dword ptr [rsi+0x08]
cmp eax, ecx
jae G_M19968_IG245
mov r12d, dword ptr [rsi+4*rax+0x10]
mov eax, r12d
mov r8d, dword ptr [rbx+0x4C]
cmp r8d, eax
- jne SHORT G_M19968_IG106
+ jne SHORT G_M19968_IG104
mov rsi, r13
dec edi
mov dword ptr [rbx+0x54], edi
cmp edi, ecx
jae G_M19968_IG245
mov dword ptr [rsi+4*rdi+0x10], eax
mov rsi, r13
mov edi, dword ptr [rbx+0x54]
dec edi
cmp edi, ecx
jae G_M19968_IG245
mov esi, dword ptr [rsi+4*rdi+0x10]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush2(int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush2(int):this
- jmp G_M19968_IG31
- ;; size=106 bbWeight=16 PerfScore 476.00
-G_M19968_IG106:
+ jmp G_M19968_IG143
+ ;; size=106 bbWeight=2 PerfScore 59.50
+G_M19968_IG104:
cmp eax, -1
- jne SHORT G_M19968_IG107
+ jne SHORT G_M19968_IG105
mov eax, r8d
mov rdi, gword ptr [rbx+0x10]
mov esi, dword ptr [rbx+0x50]
dec esi
mov r12d, dword ptr [rdi+0x08]
cmp esi, r12d
jae G_M19968_IG245
mov ecx, esi
mov dword ptr [rdi+4*rcx+0x10], eax
dec esi
cmp esi, r12d
jae G_M19968_IG245
mov eax, esi
mov dword ptr [rdi+4*rax+0x10], r8d
dec esi
mov r11d, dword ptr [rbx+0x88]
cmp esi, r12d
jae G_M19968_IG245
mov eax, esi
mov dword ptr [rdi+4*rax+0x10], r11d
mov dword ptr [rbx+0x50], esi
- jmp G_M19968_IG31
- ;; size=87 bbWeight=8 PerfScore 166.00
-G_M19968_IG107:
+ jmp G_M19968_IG143
+ ;; size=87 bbWeight=2 PerfScore 41.50
+G_M19968_IG105:
mov rdi, gword ptr [rbx+0x10]
mov rsi, rdi
mov edi, dword ptr [rbx+0x50]
dec edi
mov r12d, dword ptr [rsi+0x08]
cmp edi, r12d
jae G_M19968_IG245
mov ecx, edi
mov dword ptr [rsi+4*rcx+0x10], eax
dec edi
cmp edi, r12d
jae G_M19968_IG245
mov eax, edi
mov dword ptr [rsi+4*rax+0x10], r8d
dec edi
mov r11d, dword ptr [rbx+0x88]
mov eax, r11d
cmp edi, r12d
jae G_M19968_IG245
mov ecx, edi
mov dword ptr [rsi+4*rcx+0x10], eax
mov dword ptr [rbx+0x50], edi
- jmp G_M19968_IG31
- ;; size=84 bbWeight=8 PerfScore 158.00
-G_M19968_IG108:
+ jmp G_M19968_IG143
+ ;; size=84 bbWeight=2 PerfScore 39.50
+G_M19968_IG106:
mov edi, dword ptr [rbx+0x54]
inc edi
mov dword ptr [rbx+0x54], edi
mov r8d, dword ptr [rbx+0x4C]
mov r13, gword ptr [rbx+0x18]
mov rsi, r13
lea eax, [rdi-0x01]
mov ecx, dword ptr [rsi+0x08]
cmp eax, ecx
jae G_M19968_IG245
mov r12d, dword ptr [rsi+4*rax+0x10]
cmp r8d, r12d
- jne SHORT G_M19968_IG109
+ jne SHORT G_M19968_IG108
+ ;; size=43 bbWeight=16 PerfScore 232.00
+G_M19968_IG107:
mov esi, r12d
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush2(int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush2(int):this
- jmp G_M19968_IG31
- ;; size=66 bbWeight=16 PerfScore 324.00
-G_M19968_IG109:
+ jmp G_M19968_IG143
+ ;; size=23 bbWeight=2 PerfScore 11.50
+G_M19968_IG108:
mov eax, r12d
mov edx, r8d
mov rsi, gword ptr [rbx+0x10]
mov r9d, dword ptr [rbx+0x50]
dec r9d
mov r12d, dword ptr [rsi+0x08]
cmp r9d, r12d
jae G_M19968_IG245
mov r10d, r9d
mov dword ptr [rsi+4*r10+0x10], eax
dec r9d
cmp r9d, r12d
jae G_M19968_IG245
mov eax, r9d
mov dword ptr [rsi+4*rax+0x10], edx
dec r9d
mov r11d, dword ptr [rbx+0x88]
mov eax, r11d
cmp r9d, r12d
jae G_M19968_IG245
mov edx, r9d
mov dword ptr [rsi+4*rdx+0x10], eax
mov dword ptr [rbx+0x50], r9d
mov eax, r8d
mov rdx, r13
dec edi
mov dword ptr [rbx+0x54], edi
cmp edi, ecx
jae G_M19968_IG245
mov dword ptr [rdx+4*rdi+0x10], eax
- mov rdi, gword ptr [rbx+0x70]
- mov r9, gword ptr [rdi+0x10]
+ mov r9, gword ptr [rbx+0x70]
+ mov r9, gword ptr [r9+0x10]
mov rdi, r9
lea eax, [r11+0x01]
cmp eax, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov r12d, dword ptr [rdi+4*rax+0x10]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:EnsureStorage():this
call [rax]System.Text.RegularExpressions.RegexRunner:EnsureStorage():this
mov dword ptr [rbx+0x88], r12d
mov rdi, gword ptr [rbx+0x70]
mov rdi, gword ptr [rdi+0x10]
cmp r12d, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov esi, r12d
mov edi, dword ptr [rdi+4*rsi+0x10]
mov esi, edi
and esi, -65
mov dword ptr [rbx+0x84], esi
test dil, 64
setne dil
mov byte ptr [rbx+0x69], dil
jmp G_M19968_IG04
;; size=217 bbWeight=16 PerfScore 852.00
-G_M19968_IG110:
+G_M19968_IG109:
mov r8d, dword ptr [rbx+0x4C]
mov rsi, gword ptr [rbx+0x10]
mov rdi, rsi
mov esi, dword ptr [rbx+0x50]
dec esi
mov r12d, dword ptr [rdi+0x08]
cmp esi, r12d
jae G_M19968_IG245
mov edx, esi
mov dword ptr [rdi+4*rdx+0x10], r8d
dec esi
mov r11d, dword ptr [rbx+0x88]
mov edx, r11d
cmp esi, r12d
jae G_M19968_IG245
mov eax, esi
mov dword ptr [rdi+4*rax+0x10], edx
mov dword ptr [rbx+0x50], esi
- jmp G_M19968_IG31
- ;; size=71 bbWeight=16 PerfScore 304.00
-G_M19968_IG111:
+ jmp G_M19968_IG143
+ ;; size=71 bbWeight=2 PerfScore 38.00
+G_M19968_IG110:
mov r8d, dword ptr [rbx+0x4C]
cmp r8d, r15d
jl G_M19968_IG240
- jmp G_M19968_IG78
+ jmp G_M19968_IG118
;; size=18 bbWeight=8 PerfScore 42.00
-G_M19968_IG112:
+G_M19968_IG111:
mov r8d, dword ptr [rbx+0x4C]
lea edi, [r15-0x01]
cmp r8d, edi
jl G_M19968_IG240
cmp r8d, r15d
- jae G_M19968_IG78
+ jae G_M19968_IG118
cmp r8d, r15d
jae G_M19968_IG245
mov edi, r8d
cmp word ptr [r14+2*rdi], 10
jne G_M19968_IG240
- jmp G_M19968_IG78
+ jmp G_M19968_IG118
;; size=55 bbWeight=8 PerfScore 100.00
-G_M19968_IG113:
+G_M19968_IG112:
mov r8d, dword ptr [rbx+0x4C]
cmp r8d, dword ptr [rbx+0x48]
jne G_M19968_IG240
- jmp G_M19968_IG78
+ jmp G_M19968_IG118
;; size=19 bbWeight=8 PerfScore 64.00
-G_M19968_IG114:
+G_M19968_IG113:
mov r8d, dword ptr [rbx+0x4C]
test r8d, r8d
jg G_M19968_IG240
- jmp G_M19968_IG78
+ jmp G_M19968_IG118
;; size=18 bbWeight=8 PerfScore 42.00
+G_M19968_IG114:
+ mov rdi, r14
+ mov esi, r15d
+ mov r8d, dword ptr [rbx+0x4C]
+ mov edx, r8d
+ mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:IsBoundary(System.ReadOnlySpan`1[ushort],int):ubyte
+ call [rax]System.Text.RegularExpressions.RegexRunner:IsBoundary(System.ReadOnlySpan`1[ushort],int):ubyte
+ test eax, eax
+ jne G_M19968_IG240
+ jmp SHORT G_M19968_IG118
+ ;; size=35 bbWeight=8 PerfScore 74.00
G_M19968_IG115:
- mov rdi, r14
- mov esi, r15d
- mov r8d, dword ptr [rbx+0x4C]
- mov edx, r8d
- mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:IsBoundary(System.ReadOnlySpan`1[ushort],int):ubyte
- call [rax]System.Text.RegularExpressions.RegexRunner:IsBoundary(System.ReadOnlySpan`1[ushort],int):ubyte
- test eax, eax
- jne G_M19968_IG240
- jmp G_M19968_IG78
- ;; size=38 bbWeight=8 PerfScore 74.00
-G_M19968_IG116:
mov rdi, r14
mov esi, r15d
mov r8d, dword ptr [rbx+0x4C]
mov edx, r8d
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:IsBoundary(System.ReadOnlySpan`1[ushort],int):ubyte
call [rax]System.Text.RegularExpressions.RegexRunner:IsBoundary(System.ReadOnlySpan`1[ushort],int):ubyte
test eax, eax
je G_M19968_IG240
- jmp G_M19968_IG78
- ;; size=38 bbWeight=8 PerfScore 74.00
-G_M19968_IG117:
+ jmp SHORT G_M19968_IG118
+ ;; size=35 bbWeight=8 PerfScore 74.00
+G_M19968_IG116:
mov r8d, dword ptr [rbx+0x4C]
cmp r8d, r15d
- jae G_M19968_IG78
+ jae SHORT G_M19968_IG118
cmp r8d, r15d
jae G_M19968_IG245
mov esi, r8d
cmp word ptr [r14+2*rsi], 10
jne G_M19968_IG240
- jmp G_M19968_IG78
- ;; size=42 bbWeight=8 PerfScore 86.00
-G_M19968_IG118:
+ jmp SHORT G_M19968_IG118
+ ;; size=35 bbWeight=8 PerfScore 86.00
+G_M19968_IG117:
mov r8d, dword ptr [rbx+0x4C]
lea esi, [r8-0x01]
cmp esi, r15d
- jae G_M19968_IG78
+ jae SHORT G_M19968_IG118
cmp esi, r15d
jae G_M19968_IG245
cmp word ptr [r14+2*rsi], 10
jne G_M19968_IG240
- jmp G_M19968_IG78
- ;; size=43 bbWeight=8 PerfScore 88.00
+ ;; size=34 bbWeight=8 PerfScore 72.00
+G_M19968_IG118:
+ xor edi, edi
+ jmp G_M19968_IG03
+ ;; size=7 bbWeight=16 PerfScore 36.00
G_M19968_IG119:
- mov rdi, gword ptr [rbx+0x70]
- mov rdi, gword ptr [rdi+0x10]
+ mov rax, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [rax+0x10]
mov esi, dword ptr [rbx+0x88]
inc esi
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov r12d, dword ptr [rdi+4*rsi+0x10]
mov rdi, gword ptr [rbx+0x28]
mov esi, r12d
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Match:IsMatched(int):ubyte:this
cmp dword ptr [rdi], edi
call [rax]System.Text.RegularExpressions.Match:IsMatched(int):ubyte:this
test eax, eax
jne SHORT G_M19968_IG120
mov rdi, gword ptr [rbx+0x30]
test dword ptr [rdi+0x40], 256
je G_M19968_IG240
- jmp G_M19968_IG31
+ jmp G_M19968_IG143
;; size=77 bbWeight=8 PerfScore 240.00
G_M19968_IG120:
mov rdi, gword ptr [rbx+0x28]
mov esi, r12d
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Match:MatchIndex(int):int:this
cmp dword ptr [rdi], edi
call [rax]System.Text.RegularExpressions.Match:MatchIndex(int):int:this
mov r13d, eax
mov rdi, gword ptr [rbx+0x28]
mov esi, r12d
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Match:MatchLength(int):int:this
cmp dword ptr [rdi], edi
call [rax]System.Text.RegularExpressions.Match:MatchLength(int):int:this
mov edx, eax
mov esi, r13d
test dword ptr [rbx+0x84], 512
setne r9b
movzx r9, r9b
mov rcx, r14
mov r8d, r15d
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:MatchRef(int,int,System.ReadOnlySpan`1[ushort],ubyte):ubyte:this
call [rax]System.Text.RegularExpressions.RegexInterpreter:MatchRef(int,int,System.ReadOnlySpan`1[ushort],ubyte):ubyte:this
test eax, eax
- jne G_M19968_IG31
+ jne G_M19968_IG143
jmp G_M19968_IG240
;; size=102 bbWeight=8 PerfScore 234.00
G_M19968_IG121:
- mov rsi, gword ptr [rbx+0x70]
- mov rsi, gword ptr [rsi+0x18]
- mov rdx, gword ptr [rbx+0x70]
- mov r9, gword ptr [rdx+0x10]
+ mov r9, gword ptr [rbx+0x70]
+ mov rsi, gword ptr [r9+0x18]
+ mov r9, gword ptr [r9+0x10]
mov rdx, r9
mov r11d, dword ptr [rbx+0x88]
lea ecx, [r11+0x01]
cmp ecx, dword ptr [rdx+0x08]
jae G_M19968_IG245
mov edx, dword ptr [rdx+4*rcx+0x10]
cmp edx, dword ptr [rsi+0x08]
jae G_M19968_IG245
mov rsi, gword ptr [rsi+8*rdx+0x10]
mov rdx, r14
mov ecx, r15d
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:MatchString(System.String,System.ReadOnlySpan`1[ushort]):ubyte:this
call [rax]System.Text.RegularExpressions.RegexInterpreter:MatchString(System.String,System.ReadOnlySpan`1[ushort]):ubyte:this
test eax, eax
je G_M19968_IG240
- jmp G_M19968_IG31
- ;; size=91 bbWeight=8 PerfScore 240.00
+ jmp G_M19968_IG143
+ ;; size=87 bbWeight=8 PerfScore 224.00
G_M19968_IG122:
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG123
mov r8d, dword ptr [rbx+0x4C]
mov edi, r8d
jmp SHORT G_M19968_IG124
;; size=15 bbWeight=8 PerfScore 66.00
G_M19968_IG123:
mov edi, dword ptr [rbx+0x44]
mov r8d, dword ptr [rbx+0x4C]
sub edi, r8d
;; size=10 bbWeight=8 PerfScore 34.00
G_M19968_IG124:
test edi, edi
jle G_M19968_IG240
- mov rdi, gword ptr [rbx+0x70]
- mov r9, gword ptr [rdi+0x10]
- mov rdi, r9
+ mov r9, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [r9+0x10]
mov r11d, dword ptr [rbx+0x88]
lea esi, [r11+0x01]
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov esi, dword ptr [rdi+4*rsi+0x10]
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG125
lea edi, [r8-0x01]
mov dword ptr [rbx+0x4C], edi
jmp SHORT G_M19968_IG126
- ;; size=58 bbWeight=8 PerfScore 172.00
+ ;; size=55 bbWeight=8 PerfScore 170.00
G_M19968_IG125:
mov edi, r8d
lea edx, [rdi+0x01]
mov dword ptr [rbx+0x4C], edx
;; size=9 bbWeight=8 PerfScore 14.00
G_M19968_IG126:
cmp edi, r15d
jae G_M19968_IG245
mov edi, edi
movzx r12, word ptr [r14+2*rdi]
- mov rdi, gword ptr [rbx+0x70]
- mov rdi, gword ptr [rdi+0x18]
+ mov rdi, gword ptr [r9+0x18]
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov edx, esi
mov r13, gword ptr [rdi+8*rdx+0x10]
- mov rdi, gword ptr [rbx+0x70]
- mov rdi, gword ptr [rdi+0x20]
+ mov rdi, gword ptr [r9+0x20]
movsxd rsi, esi
mov rdx, 0xD1FFAB1E ; uint[]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_LDELEMA_REF
call [rax]CORINFO_HELP_LDELEMA_REF
mov rdi, gword ptr [rax]
test rdi, rdi
je SHORT G_M19968_IG127
mov esi, r12d
sar esi, 4
cmp dword ptr [rdi+0x08], esi
jbe SHORT G_M19968_IG127
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov ecx, dword ptr [rdi+4*rsi+0x10]
mov edi, r12d
and edi, 15
add edi, edi
mov esi, 1
shlx r8d, esi, edi
test ecx, r8d
jne G_M19968_IG132
- ;; size=132 bbWeight=8 PerfScore 306.00
+ ;; size=124 bbWeight=8 PerfScore 274.00
G_M19968_IG127:
cmp r12d, 128
jge SHORT G_M19968_IG128
mov edi, r12d
mov rsi, r13
mov rdx, rax
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:<CharInClass>g__InitializeValue|127_0(ushort,System.String,byref):ubyte
call [rax]System.Text.RegularExpressions.RegexCharClass:<CharInClass>g__InitializeValue|127_0(ushort,System.String,byref):ubyte
jmp G_M19968_IG131
;; size=35 bbWeight=8 PerfScore 58.00
G_M19968_IG128:
cmp dword ptr [r13+0x08], 1
jbe G_M19968_IG245
movzx rcx, word ptr [r13+0x0E]
cmp dword ptr [r13+0x08], 2
jbe G_M19968_IG245
movzx r8, word ptr [r13+0x10]
lea eax, [rcx+r8+0x03]
mov dword ptr [rbp-0x44], eax
mov edi, r12d
mov rsi, r13
xor edx, edx
mov r9, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:CharInClassInternal(ushort,System.String,int,int,int):ubyte
call [r9]System.Text.RegularExpressions.RegexCharClass:CharInClassInternal(ushort,System.String,int,int,int):ubyte
cmp dword ptr [r13+0x08], 0
jbe G_M19968_IG245
cmp word ptr [r13+0x0C], 1
je SHORT G_M19968_IG129
test eax, eax
je SHORT G_M19968_IG131
jmp SHORT G_M19968_IG130
;; size=86 bbWeight=8 PerfScore 234.00
G_M19968_IG129:
test eax, eax
sete al
movzx rax, al
test eax, eax
je SHORT G_M19968_IG131
;; size=12 bbWeight=8 PerfScore 22.00
G_M19968_IG130:
mov edx, dword ptr [rbp-0x44]
cmp dword ptr [r13+0x08], edx
jle SHORT G_M19968_IG131
mov edi, r12d
mov rsi, r13
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:CharInClassRecursive(ushort,System.String,int):ubyte
call [rax]System.Text.RegularExpressions.RegexCharClass:CharInClassRecursive(ushort,System.String,int):ubyte
test eax, eax
sete al
movzx rax, al
;; size=35 bbWeight=8 PerfScore 82.00
G_M19968_IG131:
test eax, eax
je G_M19968_IG240
- jmp G_M19968_IG31
+ jmp G_M19968_IG143
;; size=13 bbWeight=8 PerfScore 26.00
G_M19968_IG132:
add r8d, r8d
test ecx, r8d
je G_M19968_IG240
- jmp G_M19968_IG31
+ jmp G_M19968_IG143
;; size=17 bbWeight=8 PerfScore 28.00
G_M19968_IG133:
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG134
mov r8d, dword ptr [rbx+0x4C]
mov edx, r8d
jmp SHORT G_M19968_IG135
;; size=15 bbWeight=8 PerfScore 66.00
G_M19968_IG134:
mov edx, dword ptr [rbx+0x44]
mov r8d, dword ptr [rbx+0x4C]
sub edx, r8d
;; size=10 bbWeight=8 PerfScore 34.00
G_M19968_IG135:
test edx, edx
jle G_M19968_IG240
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG136
lea edx, [r8-0x01]
mov dword ptr [rbx+0x4C], edx
jmp SHORT G_M19968_IG137
;; size=23 bbWeight=8 PerfScore 70.00
G_M19968_IG136:
mov edx, r8d
lea r8d, [rdx+0x01]
mov dword ptr [rbx+0x4C], r8d
;; size=11 bbWeight=8 PerfScore 14.00
G_M19968_IG137:
cmp edx, r15d
jae G_M19968_IG245
mov edx, edx
movzx rdx, word ptr [r14+2*rdx]
- mov rsi, gword ptr [rbx+0x70]
- mov r9, gword ptr [rsi+0x10]
+ mov r9, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [r9+0x10]
+ mov r9, rdi
mov r11d, dword ptr [rbx+0x88]
- inc r11d
- cmp r11d, dword ptr [r9+0x08]
+ lea edi, [r11+0x01]
+ cmp edi, dword ptr [r9+0x08]
jae G_M19968_IG245
- mov esi, r11d
- cmp dx, word ptr [r9+4*rsi+0x10]
+ mov r11d, edi
+ cmp dx, word ptr [r9+4*r11+0x10]
je G_M19968_IG240
- jmp G_M19968_IG31
- ;; size=64 bbWeight=8 PerfScore 160.00
+ jmp SHORT G_M19968_IG143
+ ;; size=65 bbWeight=8 PerfScore 164.00
G_M19968_IG138:
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG139
mov r8d, dword ptr [rbx+0x4C]
mov edx, r8d
jmp SHORT G_M19968_IG140
;; size=15 bbWeight=8 PerfScore 66.00
G_M19968_IG139:
mov edx, dword ptr [rbx+0x44]
mov r8d, dword ptr [rbx+0x4C]
sub edx, r8d
;; size=10 bbWeight=8 PerfScore 34.00
G_M19968_IG140:
test edx, edx
jle G_M19968_IG240
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG141
lea edx, [r8-0x01]
mov dword ptr [rbx+0x4C], edx
jmp SHORT G_M19968_IG142
;; size=23 bbWeight=8 PerfScore 70.00
G_M19968_IG141:
mov edx, r8d
lea r8d, [rdx+0x01]
mov dword ptr [rbx+0x4C], r8d
;; size=11 bbWeight=8 PerfScore 14.00
G_M19968_IG142:
cmp edx, r15d
jae G_M19968_IG245
mov edx, edx
movzx rdx, word ptr [r14+2*rdx]
- mov rsi, gword ptr [rbx+0x70]
- mov r9, gword ptr [rsi+0x10]
+ mov r9, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [r9+0x10]
+ mov r9, rdi
mov r11d, dword ptr [rbx+0x88]
- inc r11d
- cmp r11d, dword ptr [r9+0x08]
+ lea edi, [r11+0x01]
+ cmp edi, dword ptr [r9+0x08]
jae G_M19968_IG245
- mov esi, r11d
- cmp dx, word ptr [r9+4*rsi+0x10]
+ mov r11d, edi
+ cmp dx, word ptr [r9+4*r11+0x10]
jne G_M19968_IG240
- jmp G_M19968_IG31
- ;; size=64 bbWeight=8 PerfScore 160.00
+ ;; size=63 bbWeight=8 PerfScore 148.00
G_M19968_IG143:
- mov rdx, gword ptr [rbx+0x70]
- mov r9, gword ptr [rdx+0x10]
- mov rdx, r9
+ mov edi, 1
+ jmp G_M19968_IG03
+ ;; size=10 bbWeight=16 PerfScore 36.00
+G_M19968_IG144:
+ mov r9, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [r9+0x10]
+ mov rdx, rdi
mov r11d, dword ptr [rbx+0x88]
lea esi, [r11+0x02]
cmp esi, dword ptr [rdx+0x08]
jae G_M19968_IG245
mov esi, dword ptr [rdx+4*rsi+0x10]
cmp byte ptr [rbx+0x69], 0
- je SHORT G_M19968_IG145
+ je SHORT G_M19968_IG146
;; size=41 bbWeight=16 PerfScore 268.00
-G_M19968_IG144:
+G_M19968_IG145:
mov r8d, dword ptr [rbx+0x4C]
mov edi, r8d
- jmp SHORT G_M19968_IG146
+ jmp SHORT G_M19968_IG147
;; size=9 bbWeight=8 PerfScore 34.00
-G_M19968_IG145:
+G_M19968_IG146:
mov edi, dword ptr [rbx+0x44]
mov r8d, dword ptr [rbx+0x4C]
sub edi, r8d
;; size=10 bbWeight=8 PerfScore 34.00
-G_M19968_IG146:
- cmp esi, edi
- jg SHORT G_M19968_IG148
- ;; size=4 bbWeight=16 PerfScore 20.00
G_M19968_IG147:
- jmp SHORT G_M19968_IG149
- ;; size=2 bbWeight=8 PerfScore 16.00
+ cmp esi, edi
+ jg SHORT G_M19968_IG149
+ ;; size=4 bbWeight=16 PerfScore 20.00
G_M19968_IG148:
+ jmp SHORT G_M19968_IG150
+ ;; size=2 bbWeight=8 PerfScore 16.00
+G_M19968_IG149:
mov esi, edi
;; size=2 bbWeight=8 PerfScore 2.00
-G_M19968_IG149:
+G_M19968_IG150:
test esi, esi
jle G_M19968_IG242
mov edx, r8d
dec esi
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int):this
jmp G_M19968_IG242
;; size=33 bbWeight=16 PerfScore 116.00
-G_M19968_IG150:
- mov rdi, gword ptr [rbx+0x70]
- mov r9, gword ptr [rdi+0x10]
- mov rdi, r9
- mov r11d, dword ptr [rbx+0x88]
- lea esi, [r11+0x02]
- cmp esi, dword ptr [rdi+0x08]
- jae G_M19968_IG245
- mov r13d, dword ptr [rdi+4*rsi+0x10]
- cmp byte ptr [rbx+0x69], 0
- je SHORT G_M19968_IG152
- ;; size=42 bbWeight=16 PerfScore 268.00
G_M19968_IG151:
+ mov r9, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [r9+0x10]
+ mov rsi, rdi
+ mov r11d, dword ptr [rbx+0x88]
+ lea edx, [r11+0x02]
+ cmp edx, dword ptr [rsi+0x08]
+ jae G_M19968_IG245
+ mov r13d, dword ptr [rsi+4*rdx+0x10]
+ cmp byte ptr [rbx+0x69], 0
+ je SHORT G_M19968_IG153
+ ;; size=42 bbWeight=16 PerfScore 268.00
+G_M19968_IG152:
mov r8d, dword ptr [rbx+0x4C]
mov r12d, r8d
- jmp SHORT G_M19968_IG153
+ jmp SHORT G_M19968_IG154
;; size=9 bbWeight=8 PerfScore 34.00
-G_M19968_IG152:
+G_M19968_IG153:
mov r12d, dword ptr [rbx+0x44]
mov r8d, dword ptr [rbx+0x4C]
sub r12d, r8d
;; size=11 bbWeight=8 PerfScore 34.00
-G_M19968_IG153:
- cmp r13d, r12d
- jg SHORT G_M19968_IG155
- ;; size=5 bbWeight=16 PerfScore 20.00
G_M19968_IG154:
- jmp SHORT G_M19968_IG156
- ;; size=2 bbWeight=8 PerfScore 16.00
+ cmp r13d, r12d
+ jg SHORT G_M19968_IG156
+ ;; size=5 bbWeight=16 PerfScore 20.00
G_M19968_IG155:
+ jmp SHORT G_M19968_IG157
+ ;; size=2 bbWeight=8 PerfScore 16.00
+G_M19968_IG156:
mov r13d, r12d
;; size=3 bbWeight=8 PerfScore 2.00
-G_M19968_IG156:
- mov rdi, r9
+G_M19968_IG157:
lea esi, [r11+0x01]
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov esi, dword ptr [rdi+4*rsi+0x10]
- mov rdi, gword ptr [rbx+0x70]
- mov rdi, gword ptr [rdi+0x18]
+ mov rdi, gword ptr [r9+0x18]
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov edx, esi
mov r12, gword ptr [rdi+8*rdx+0x10]
- mov rdi, gword ptr [rbx+0x70]
- mov rdi, gword ptr [rdi+0x20]
+ mov rdi, gword ptr [r9+0x20]
movsxd rsi, esi
mov rdx, 0xD1FFAB1E ; uint[]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_LDELEMA_REF
call [rax]CORINFO_HELP_LDELEMA_REF
mov bword ptr [rbp-0x58], rax
mov dword ptr [rbp-0x3C], r13d
test r13d, r13d
- jle SHORT G_M19968_IG158
- ;; size=90 bbWeight=16 PerfScore 448.00
-G_M19968_IG157:
- cmp byte ptr [rbx+0x69], 0
- jne SHORT G_M19968_IG159
- jmp SHORT G_M19968_IG160
- ;; size=8 bbWeight=64 PerfScore 384.00
+ jle SHORT G_M19968_IG159
+ ;; size=79 bbWeight=16 PerfScore 380.00
G_M19968_IG158:
- mov ecx, dword ptr [rbp-0x3C]
- jmp G_M19968_IG169
- ;; size=8 bbWeight=8 PerfScore 24.00
+ cmp byte ptr [rbx+0x69], 0
+ jne SHORT G_M19968_IG160
+ jmp SHORT G_M19968_IG161
+ ;; size=8 bbWeight=64 PerfScore 384.00
G_M19968_IG159:
+ mov ecx, dword ptr [rbp-0x3C]
+ jmp G_M19968_IG170
+ ;; size=8 bbWeight=8 PerfScore 24.00
+G_M19968_IG160:
mov edi, dword ptr [rbx+0x4C]
dec edi
mov dword ptr [rbx+0x4C], edi
- jmp SHORT G_M19968_IG161
+ jmp SHORT G_M19968_IG162
;; size=10 bbWeight=32 PerfScore 168.00
-G_M19968_IG160:
+G_M19968_IG161:
mov edi, dword ptr [rbx+0x4C]
lea esi, [rdi+0x01]
mov dword ptr [rbx+0x4C], esi
;; size=9 bbWeight=32 PerfScore 112.00
-G_M19968_IG161:
+G_M19968_IG162:
cmp edi, r15d
jae G_M19968_IG245
mov edi, edi
movzx rdi, word ptr [r14+2*rdi]
mov rsi, gword ptr [rax]
test rsi, rsi
- je SHORT G_M19968_IG163
+ je SHORT G_M19968_IG164
;; size=24 bbWeight=64 PerfScore 432.00
-G_M19968_IG162:
+G_M19968_IG163:
mov edx, edi
sar edx, 4
cmp dword ptr [rsi+0x08], edx
- jbe SHORT G_M19968_IG163
+ jbe SHORT G_M19968_IG164
cmp edx, dword ptr [rsi+0x08]
jae G_M19968_IG245
mov r8d, dword ptr [rsi+4*rdx+0x10]
mov esi, edi
and esi, 15
add esi, esi
mov edx, 1
shlx r9d, edx, esi
test r8d, r9d
- jne SHORT G_M19968_IG167
+ jne SHORT G_M19968_IG168
;; size=46 bbWeight=32 PerfScore 432.00
-G_M19968_IG163:
+G_M19968_IG164:
cmp edi, 128
- jge SHORT G_M19968_IG164
+ jge SHORT G_M19968_IG165
mov rsi, r12
mov rdx, rax
mov r8, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:<CharInClass>g__InitializeValue|127_0(ushort,System.String,byref):ubyte
call [r8]System.Text.RegularExpressions.RegexCharClass:<CharInClass>g__InitializeValue|127_0(ushort,System.String,byref):ubyte
- jmp SHORT G_M19968_IG165
+ jmp SHORT G_M19968_IG166
;; size=29 bbWeight=32 PerfScore 224.00
-G_M19968_IG164:
+G_M19968_IG165:
mov rsi, r12
xor edx, edx
mov r8, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:CharInClassRecursive(ushort,System.String,int):ubyte
call [r8]System.Text.RegularExpressions.RegexCharClass:CharInClassRecursive(ushort,System.String,int):ubyte
;; size=18 bbWeight=32 PerfScore 120.00
-G_M19968_IG165:
- test eax, eax
- jne SHORT G_M19968_IG168
- ;; size=4 bbWeight=32 PerfScore 40.00
G_M19968_IG166:
+ test eax, eax
+ jne SHORT G_M19968_IG169
+ ;; size=4 bbWeight=32 PerfScore 40.00
+G_M19968_IG167:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:Backwardnext():this
call [rax]System.Text.RegularExpressions.RegexInterpreter:Backwardnext():this
mov ecx, dword ptr [rbp-0x3C]
- jmp SHORT G_M19968_IG169
+ jmp SHORT G_M19968_IG170
;; size=20 bbWeight=8 PerfScore 52.00
-G_M19968_IG167:
+G_M19968_IG168:
add r9d, r9d
test r8d, r9d
- je SHORT G_M19968_IG166
+ je SHORT G_M19968_IG167
;; size=8 bbWeight=32 PerfScore 48.00
-G_M19968_IG168:
+G_M19968_IG169:
mov ecx, dword ptr [rbp-0x3C]
dec ecx
test ecx, ecx
mov rax, bword ptr [rbp-0x58]
jg SHORT G_M19968_IG171
;; size=13 bbWeight=64 PerfScore 224.00
-G_M19968_IG169:
+G_M19968_IG170:
cmp r13d, ecx
jle G_M19968_IG242
- ;; size=9 bbWeight=16 PerfScore 20.00
-G_M19968_IG170:
cmp dword ptr [rbx+0x84], 5
jne G_M19968_IG242
mov edx, dword ptr [rbx+0x4C]
cmp byte ptr [rbx+0x69], 0
jne SHORT G_M19968_IG172
jmp SHORT G_M19968_IG173
- ;; size=24 bbWeight=8 PerfScore 96.00
+ ;; size=33 bbWeight=16 PerfScore 212.00
G_M19968_IG171:
mov dword ptr [rbp-0x3C], ecx
- jmp G_M19968_IG157
+ jmp G_M19968_IG158
;; size=8 bbWeight=32 PerfScore 96.00
G_M19968_IG172:
mov edi, -1
jmp SHORT G_M19968_IG174
;; size=7 bbWeight=8 PerfScore 18.00
G_M19968_IG173:
mov edi, 1
;; size=5 bbWeight=8 PerfScore 2.00
G_M19968_IG174:
mov esi, r13d
sub esi, ecx
dec esi
sub edx, edi
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int):this
jmp G_M19968_IG242
;; size=29 bbWeight=16 PerfScore 104.00
G_M19968_IG175:
- mov rdi, gword ptr [rbx+0x70]
- mov r9, gword ptr [rdi+0x10]
- mov rdi, r9
+ mov r9, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [r9+0x10]
+ mov rax, rdi
mov r11d, dword ptr [rbx+0x88]
- lea eax, [r11+0x02]
- cmp eax, dword ptr [rdi+0x08]
+ lea ecx, [r11+0x02]
+ cmp ecx, dword ptr [rax+0x08]
jae G_M19968_IG245
- mov r13d, dword ptr [rdi+4*rax+0x10]
+ mov r13d, dword ptr [rax+4*rcx+0x10]
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG177
;; size=42 bbWeight=16 PerfScore 268.00
G_M19968_IG176:
mov r8d, dword ptr [rbx+0x4C]
mov r12d, r8d
jmp SHORT G_M19968_IG178
;; size=9 bbWeight=8 PerfScore 34.00
G_M19968_IG177:
mov r12d, dword ptr [rbx+0x44]
mov r8d, dword ptr [rbx+0x4C]
sub r12d, r8d
;; size=11 bbWeight=8 PerfScore 34.00
G_M19968_IG178:
cmp r13d, r12d
jg SHORT G_M19968_IG180
;; size=5 bbWeight=16 PerfScore 20.00
G_M19968_IG179:
jmp SHORT G_M19968_IG181
;; size=2 bbWeight=8 PerfScore 16.00
G_M19968_IG180:
mov r13d, r12d
;; size=3 bbWeight=8 PerfScore 2.00
G_M19968_IG181:
- mov rdi, r9
lea eax, [r11+0x01]
cmp eax, dword ptr [rdi+0x08]
jae G_M19968_IG245
movzx r12, word ptr [rdi+4*rax+0x10]
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG187
- ;; size=28 bbWeight=16 PerfScore 172.00
+ ;; NOP compensation instructions of 4 bytes.
+ ;; size=29 bbWeight=16 PerfScore 168.00
G_M19968_IG182:
mov edi, r13d
test r13d, r13d
jle SHORT G_M19968_IG184
;; size=8 bbWeight=8 PerfScore 12.00
G_M19968_IG183:
mov eax, dword ptr [rbx+0x4C]
dec eax
mov dword ptr [rbx+0x4C], eax
cmp eax, r15d
jae G_M19968_IG245
movzx rax, word ptr [r14+2*rax]
cmp eax, r12d
je SHORT G_M19968_IG186
dec edi
test edi, edi
jg SHORT G_M19968_IG183
;; size=33 bbWeight=64 PerfScore 592.00
G_M19968_IG184:
mov dword ptr [rbp-0x38], edi
cmp r13d, edi
jle G_M19968_IG242
- ;; size=12 bbWeight=16 PerfScore 36.00
-G_M19968_IG185:
cmp dword ptr [rbx+0x84], 4
jne G_M19968_IG242
mov edx, dword ptr [rbx+0x4C]
cmp byte ptr [rbx+0x69], 0
jne G_M19968_IG191
+ ;; size=38 bbWeight=16 PerfScore 196.00
+G_M19968_IG185:
mov eax, 1
jmp G_M19968_IG192
align [0 bytes for IG200]
- ;; size=36 bbWeight=8 PerfScore 98.00
+ ;; size=10 bbWeight=8 PerfScore 18.00
G_M19968_IG186:
mov dword ptr [rbp-0x38], edi
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:Backwardnext():this
call [rax]System.Text.RegularExpressions.RegexInterpreter:Backwardnext():this
mov edi, dword ptr [rbp-0x38]
jmp SHORT G_M19968_IG184
;; size=23 bbWeight=8 PerfScore 60.00
G_M19968_IG187:
mov edi, r8d
mov esi, edi
mov edx, r13d
add rsi, rdx
mov edx, r15d
cmp rsi, rdx
ja G_M19968_IG244
lea rdi, bword ptr [r14+2*rdi]
movsx rsi, r12w
movzx rdx, si
dec edx
cmp edx, 254
jb SHORT G_M19968_IG188
mov edx, r13d
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [rax]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
jmp SHORT G_M19968_IG189
;; size=61 bbWeight=8 PerfScore 84.00
G_M19968_IG188:
movsx rsi, si
mov edx, r13d
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
call [rax]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
;; size=19 bbWeight=8 PerfScore 30.00
G_M19968_IG189:
cmp eax, -1
je SHORT G_M19968_IG190
add dword ptr [rbx+0x4C], eax
mov edi, r13d
sub edi, eax
mov r12d, edi
mov edi, r12d
jmp G_M19968_IG184
;; size=24 bbWeight=8 PerfScore 58.00
G_M19968_IG190:
add dword ptr [rbx+0x4C], r13d
xor r12d, r12d
mov edi, r12d
jmp G_M19968_IG184
;; size=15 bbWeight=8 PerfScore 44.00
G_M19968_IG191:
mov eax, -1
;; size=5 bbWeight=8 PerfScore 2.00
G_M19968_IG192:
mov esi, r13d
sub esi, dword ptr [rbp-0x38]
dec esi
sub edx, eax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int):this
jmp G_M19968_IG242
;; size=30 bbWeight=16 PerfScore 132.00
G_M19968_IG193:
- mov rsi, gword ptr [rbx+0x70]
- mov r9, gword ptr [rsi+0x10]
- mov rsi, r9
+ mov r9, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [r9+0x10]
+ mov rsi, rdi
mov r11d, dword ptr [rbx+0x88]
lea edx, [r11+0x02]
cmp edx, dword ptr [rsi+0x08]
jae G_M19968_IG245
mov esi, dword ptr [rsi+4*rdx+0x10]
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG195
;; size=41 bbWeight=16 PerfScore 268.00
G_M19968_IG194:
mov r8d, dword ptr [rbx+0x4C]
mov edx, r8d
jmp SHORT G_M19968_IG196
;; size=9 bbWeight=8 PerfScore 34.00
G_M19968_IG195:
mov edx, dword ptr [rbx+0x44]
mov r8d, dword ptr [rbx+0x4C]
sub edx, r8d
;; size=10 bbWeight=8 PerfScore 34.00
G_M19968_IG196:
cmp esi, edx
jg SHORT G_M19968_IG198
;; size=4 bbWeight=16 PerfScore 20.00
G_M19968_IG197:
jmp SHORT G_M19968_IG199
;; size=2 bbWeight=8 PerfScore 16.00
G_M19968_IG198:
mov esi, edx
;; size=2 bbWeight=8 PerfScore 2.00
G_M19968_IG199:
- mov rdx, r9
+ mov rdx, rdi
lea edi, [r11+0x01]
cmp edi, dword ptr [rdx+0x08]
jae G_M19968_IG245
movzx rdx, word ptr [rdx+4*rdi+0x10]
mov edi, esi
test esi, esi
jle SHORT G_M19968_IG204
;; size=27 bbWeight=16 PerfScore 132.00
G_M19968_IG200:
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG202
;; size=6 bbWeight=64 PerfScore 256.00
G_M19968_IG201:
mov eax, dword ptr [rbx+0x4C]
dec eax
mov dword ptr [rbx+0x4C], eax
jmp SHORT G_M19968_IG203
;; size=10 bbWeight=32 PerfScore 168.00
G_M19968_IG202:
mov eax, dword ptr [rbx+0x4C]
lea ecx, [rax+0x01]
mov dword ptr [rbx+0x4C], ecx
;; size=9 bbWeight=32 PerfScore 112.00
G_M19968_IG203:
cmp eax, r15d
jae G_M19968_IG245
mov eax, eax
movzx rax, word ptr [r14+2*rax]
cmp eax, edx
jne SHORT G_M19968_IG206
dec edi
test edi, edi
jg SHORT G_M19968_IG200
;; size=26 bbWeight=64 PerfScore 400.00
G_M19968_IG204:
cmp esi, edi
jle G_M19968_IG242
- ;; size=8 bbWeight=16 PerfScore 20.00
-G_M19968_IG205:
cmp dword ptr [rbx+0x84], 3
jne G_M19968_IG242
mov edx, dword ptr [rbx+0x4C]
cmp byte ptr [rbx+0x69], 0
jne SHORT G_M19968_IG209
+ ;; size=30 bbWeight=16 PerfScore 180.00
+G_M19968_IG205:
mov eax, 1
jmp SHORT G_M19968_IG210
- align [0 bytes for IG229]
- ;; size=29 bbWeight=8 PerfScore 98.00
+ align [2 bytes for IG229]
+ ;; size=9 bbWeight=8 PerfScore 18.00
G_M19968_IG206:
mov eax, dword ptr [rbx+0x4C]
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG207
mov edx, 1
jmp SHORT G_M19968_IG208
;; size=16 bbWeight=8 PerfScore 66.00
G_M19968_IG207:
mov edx, -1
;; size=5 bbWeight=8 PerfScore 2.00
G_M19968_IG208:
add edx, eax
mov dword ptr [rbx+0x4C], edx
jmp SHORT G_M19968_IG204
;; size=7 bbWeight=8 PerfScore 26.00
G_M19968_IG209:
mov eax, -1
;; size=5 bbWeight=8 PerfScore 2.00
G_M19968_IG210:
sub esi, edi
dec esi
sub edx, eax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int):this
call [rax]System.Text.RegularExpressions.RegexInterpreter:TrackPush(int,int):this
jmp G_M19968_IG242
;; size=26 bbWeight=16 PerfScore 100.00
G_M19968_IG211:
- mov rdi, gword ptr [rbx+0x70]
- mov r9, gword ptr [rdi+0x10]
- mov rdi, r9
+ mov r9, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [r9+0x10]
+ mov rsi, rdi
mov r11d, dword ptr [rbx+0x88]
- lea esi, [r11+0x02]
- cmp esi, dword ptr [rdi+0x08]
+ lea edx, [r11+0x02]
+ cmp edx, dword ptr [rsi+0x08]
jae G_M19968_IG245
- mov r13d, dword ptr [rdi+4*rsi+0x10]
+ mov r13d, dword ptr [rsi+4*rdx+0x10]
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG212
mov r8d, dword ptr [rbx+0x4C]
- mov edi, r8d
+ mov esi, r8d
jmp SHORT G_M19968_IG213
;; size=51 bbWeight=8 PerfScore 168.00
G_M19968_IG212:
- mov edi, dword ptr [rbx+0x44]
+ mov esi, dword ptr [rbx+0x44]
mov r8d, dword ptr [rbx+0x4C]
- sub edi, r8d
+ sub esi, r8d
;; size=10 bbWeight=8 PerfScore 34.00
G_M19968_IG213:
- cmp edi, r13d
+ cmp esi, r13d
jl G_M19968_IG240
- mov rdi, r9
lea esi, [r11+0x01]
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov esi, dword ptr [rdi+4*rsi+0x10]
- mov rdi, gword ptr [rbx+0x70]
- mov rdi, gword ptr [rdi+0x18]
+ mov rdi, gword ptr [r9+0x18]
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov edx, esi
mov r12, gword ptr [rdi+8*rdx+0x10]
- mov rdi, gword ptr [rbx+0x70]
- mov rdi, gword ptr [rdi+0x20]
+ mov rdi, gword ptr [r9+0x20]
movsxd rsi, esi
mov rdx, 0xD1FFAB1E ; uint[]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_LDELEMA_REF
call [rax]CORINFO_HELP_LDELEMA_REF
mov bword ptr [rbp-0x50], rax
lea edi, [r13-0x01]
mov dword ptr [rbp-0x34], edi
test r13d, r13d
jle G_M19968_IG242
- ;; size=106 bbWeight=8 PerfScore 238.00
+ ;; size=95 bbWeight=8 PerfScore 204.00
G_M19968_IG214:
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG216
;; size=6 bbWeight=64 PerfScore 256.00
G_M19968_IG215:
mov edi, dword ptr [rbx+0x4C]
dec edi
mov dword ptr [rbx+0x4C], edi
jmp SHORT G_M19968_IG217
;; size=10 bbWeight=32 PerfScore 168.00
G_M19968_IG216:
mov edi, dword ptr [rbx+0x4C]
lea esi, [rdi+0x01]
mov dword ptr [rbx+0x4C], esi
;; size=9 bbWeight=32 PerfScore 112.00
G_M19968_IG217:
cmp edi, r15d
jae G_M19968_IG245
mov edi, edi
movzx r13, word ptr [r14+2*rdi]
mov rdi, gword ptr [rax]
test rdi, rdi
je SHORT G_M19968_IG219
;; size=24 bbWeight=64 PerfScore 432.00
G_M19968_IG218:
mov esi, r13d
sar esi, 4
cmp dword ptr [rdi+0x08], esi
jbe SHORT G_M19968_IG219
cmp esi, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov r8d, dword ptr [rdi+4*rsi+0x10]
mov edi, r13d
and edi, 15
add edi, edi
mov esi, 1
shlx r9d, esi, edi
test r8d, r9d
jne G_M19968_IG224
;; size=52 bbWeight=32 PerfScore 432.00
G_M19968_IG219:
cmp r13d, 128
jge SHORT G_M19968_IG220
mov edi, r13d
mov rsi, r12
mov rdx, rax
mov r8, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:<CharInClass>g__InitializeValue|127_0(ushort,System.String,byref):ubyte
call [r8]System.Text.RegularExpressions.RegexCharClass:<CharInClass>g__InitializeValue|127_0(ushort,System.String,byref):ubyte
jmp G_M19968_IG223
;; size=36 bbWeight=32 PerfScore 232.00
G_M19968_IG220:
cmp dword ptr [r12+0x08], 1
jbe G_M19968_IG245
movzx rdx, word ptr [r12+0x0E]
cmp dword ptr [r12+0x08], 2
jbe G_M19968_IG245
movzx r8, word ptr [r12+0x10]
lea r9d, [rdx+r8+0x03]
mov dword ptr [rbp-0x48], r9d
mov edi, r13d
mov rsi, r12
mov ecx, edx
xor edx, edx
mov r10, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:CharInClassInternal(ushort,System.String,int,int,int):ubyte
call [r10]System.Text.RegularExpressions.RegexCharClass:CharInClassInternal(ushort,System.String,int,int,int):ubyte
cmp dword ptr [r12+0x08], 0
jbe G_M19968_IG245
cmp word ptr [r12+0x0C], 1
je SHORT G_M19968_IG221
test eax, eax
je SHORT G_M19968_IG223
jmp SHORT G_M19968_IG222
;; size=95 bbWeight=32 PerfScore 944.00
G_M19968_IG221:
test eax, eax
sete al
movzx rax, al
test eax, eax
je SHORT G_M19968_IG223
;; size=12 bbWeight=32 PerfScore 88.00
G_M19968_IG222:
mov edx, dword ptr [rbp-0x48]
cmp dword ptr [r12+0x08], edx
jle SHORT G_M19968_IG223
mov edi, r13d
mov rsi, r12
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:CharInClassRecursive(ushort,System.String,int):ubyte
call [rax]System.Text.RegularExpressions.RegexCharClass:CharInClassRecursive(ushort,System.String,int):ubyte
test eax, eax
sete al
movzx rax, al
;; size=36 bbWeight=32 PerfScore 328.00
G_M19968_IG223:
test eax, eax
je G_M19968_IG240
jmp SHORT G_M19968_IG225
;; size=10 bbWeight=32 PerfScore 104.00
G_M19968_IG224:
add r9d, r9d
test r8d, r9d
je G_M19968_IG240
;; size=12 bbWeight=32 PerfScore 48.00
G_M19968_IG225:
mov ecx, dword ptr [rbp-0x34]
mov r13d, ecx
lea ecx, [r13-0x01]
test r13d, r13d
mov dword ptr [rbp-0x34], ecx
mov rax, bword ptr [rbp-0x50]
jg G_M19968_IG214
jmp G_M19968_IG242
;; size=31 bbWeight=64 PerfScore 448.00
G_M19968_IG226:
- mov rdi, gword ptr [rbx+0x70]
- mov r9, gword ptr [rdi+0x10]
- mov rdi, r9
+ mov r9, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [r9+0x10]
+ mov r9, rdi
mov r11d, dword ptr [rbx+0x88]
lea esi, [r11+0x02]
- cmp esi, dword ptr [rdi+0x08]
+ cmp esi, dword ptr [r9+0x08]
jae G_M19968_IG245
- mov edi, dword ptr [rdi+4*rsi+0x10]
+ mov esi, dword ptr [r9+4*rsi+0x10]
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG227
mov r8d, dword ptr [rbx+0x4C]
- mov esi, r8d
+ mov eax, r8d
jmp SHORT G_M19968_IG228
- ;; size=50 bbWeight=8 PerfScore 168.00
+ ;; size=52 bbWeight=8 PerfScore 168.00
G_M19968_IG227:
- mov esi, dword ptr [rbx+0x44]
+ mov eax, dword ptr [rbx+0x44]
mov r8d, dword ptr [rbx+0x4C]
- sub esi, r8d
+ sub eax, r8d
;; size=10 bbWeight=8 PerfScore 34.00
G_M19968_IG228:
- cmp esi, edi
+ cmp eax, esi
jl G_M19968_IG240
inc r11d
- cmp r11d, dword ptr [r9+0x08]
+ cmp r11d, dword ptr [rdi+0x08]
jae G_M19968_IG245
mov r8d, r11d
- movzx rsi, word ptr [r9+4*r8+0x10]
- lea eax, [rdi-0x01]
- test edi, edi
+ movzx rdi, word ptr [rdi+4*r8+0x10]
+ lea eax, [rsi-0x01]
+ test esi, esi
jle G_M19968_IG242
;; size=41 bbWeight=8 PerfScore 76.00
G_M19968_IG229:
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG231
;; size=6 bbWeight=64 PerfScore 256.00
G_M19968_IG230:
- mov edi, dword ptr [rbx+0x4C]
- dec edi
- mov dword ptr [rbx+0x4C], edi
+ mov esi, dword ptr [rbx+0x4C]
+ dec esi
+ mov dword ptr [rbx+0x4C], esi
jmp SHORT G_M19968_IG232
;; size=10 bbWeight=32 PerfScore 168.00
G_M19968_IG231:
- mov edi, dword ptr [rbx+0x4C]
- lea ecx, [rdi+0x01]
+ mov esi, dword ptr [rbx+0x4C]
+ lea ecx, [rsi+0x01]
mov dword ptr [rbx+0x4C], ecx
;; size=9 bbWeight=32 PerfScore 112.00
G_M19968_IG232:
- cmp edi, r15d
+ cmp esi, r15d
jae G_M19968_IG245
- mov edi, edi
- movzx rdi, word ptr [r14+2*rdi]
- cmp edi, esi
+ mov esi, esi
+ movzx rsi, word ptr [r14+2*rsi]
+ cmp esi, edi
je G_M19968_IG240
- mov edi, eax
- lea eax, [rdi-0x01]
- test edi, edi
+ mov esi, eax
+ lea eax, [rsi-0x01]
+ test esi, esi
jg SHORT G_M19968_IG229
jmp G_M19968_IG242
;; size=38 bbWeight=64 PerfScore 560.00
G_M19968_IG233:
- mov rdi, gword ptr [rbx+0x70]
- mov r9, gword ptr [rdi+0x10]
- mov rdi, r9
+ mov r9, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [r9+0x10]
+ mov r9, rdi
mov r11d, dword ptr [rbx+0x88]
lea esi, [r11+0x02]
- cmp esi, dword ptr [rdi+0x08]
+ cmp esi, dword ptr [r9+0x08]
jae G_M19968_IG245
- mov edi, dword ptr [rdi+4*rsi+0x10]
+ mov esi, dword ptr [r9+4*rsi+0x10]
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG234
mov r8d, dword ptr [rbx+0x4C]
- mov esi, r8d
+ mov eax, r8d
jmp SHORT G_M19968_IG235
align [0 bytes for IG236]
- ;; size=50 bbWeight=8 PerfScore 168.00
+ ;; size=52 bbWeight=8 PerfScore 168.00
G_M19968_IG234:
- mov esi, dword ptr [rbx+0x44]
+ mov eax, dword ptr [rbx+0x44]
mov r8d, dword ptr [rbx+0x4C]
- sub esi, r8d
+ sub eax, r8d
;; size=10 bbWeight=8 PerfScore 34.00
G_M19968_IG235:
- cmp esi, edi
+ cmp eax, esi
jl SHORT G_M19968_IG240
inc r11d
- cmp r11d, dword ptr [r9+0x08]
+ cmp r11d, dword ptr [rdi+0x08]
jae G_M19968_IG245
- mov esi, r11d
- movzx rsi, word ptr [r9+4*rsi+0x10]
- lea eax, [rdi-0x01]
- test edi, edi
+ mov eax, r11d
+ movzx rdi, word ptr [rdi+4*rax+0x10]
+ lea eax, [rsi-0x01]
+ test esi, esi
jle SHORT G_M19968_IG242
- ;; size=33 bbWeight=8 PerfScore 76.00
+ ;; size=32 bbWeight=8 PerfScore 76.00
G_M19968_IG236:
cmp byte ptr [rbx+0x69], 0
je SHORT G_M19968_IG238
;; size=6 bbWeight=64 PerfScore 256.00
G_M19968_IG237:
- mov edi, dword ptr [rbx+0x4C]
- dec edi
- mov dword ptr [rbx+0x4C], edi
+ mov esi, dword ptr [rbx+0x4C]
+ dec esi
+ mov dword ptr [rbx+0x4C], esi
jmp SHORT G_M19968_IG239
;; size=10 bbWeight=32 PerfScore 168.00
G_M19968_IG238:
- mov edi, dword ptr [rbx+0x4C]
- lea ecx, [rdi+0x01]
+ mov esi, dword ptr [rbx+0x4C]
+ lea ecx, [rsi+0x01]
mov dword ptr [rbx+0x4C], ecx
;; size=9 bbWeight=32 PerfScore 112.00
G_M19968_IG239:
- cmp edi, r15d
+ cmp esi, r15d
jae SHORT G_M19968_IG245
- mov edi, edi
- movzx rdi, word ptr [r14+2*rdi]
- cmp edi, esi
+ mov esi, esi
+ movzx rsi, word ptr [r14+2*rsi]
+ cmp esi, edi
je SHORT G_M19968_IG241
;; size=16 bbWeight=64 PerfScore 304.00
G_M19968_IG240:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexInterpreter:Backtrack():this
call [rax]System.Text.RegularExpressions.RegexInterpreter:Backtrack():this
jmp G_M19968_IG04
;; size=20 bbWeight=16 PerfScore 88.00
G_M19968_IG241:
- mov edi, eax
- lea eax, [rdi-0x01]
- test edi, edi
+ mov esi, eax
+ lea eax, [rsi-0x01]
+ test esi, esi
jg SHORT G_M19968_IG236
;; size=9 bbWeight=64 PerfScore 128.00
G_M19968_IG242:
mov edi, 2
jmp G_M19968_IG03
;; size=10 bbWeight=64 PerfScore 144.00
G_M19968_IG243:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:<CheckTimeout>g__ThrowRegexTimeout|25_0():this
call [rax]System.Text.RegularExpressions.RegexRunner:<CheckTimeout>g__ThrowRegexTimeout|25_0():this
int3
;; size=16 bbWeight=0 PerfScore 0.00
G_M19968_IG244:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M19968_IG245:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
RWD00 dd G_M19968_IG11 - G_M19968_IG02
dd G_M19968_IG10 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG09 - G_M19968_IG02
dd G_M19968_IG08 - G_M19968_IG02
RWD24 dd G_M19968_IG233 - G_M19968_IG02
dd G_M19968_IG226 - G_M19968_IG02
dd G_M19968_IG211 - G_M19968_IG02
dd G_M19968_IG193 - G_M19968_IG02
dd G_M19968_IG175 - G_M19968_IG02
- dd G_M19968_IG150 - G_M19968_IG02
- dd G_M19968_IG143 - G_M19968_IG02
- dd G_M19968_IG143 - G_M19968_IG02
- dd G_M19968_IG143 - G_M19968_IG02
+ dd G_M19968_IG151 - G_M19968_IG02
+ dd G_M19968_IG144 - G_M19968_IG02
+ dd G_M19968_IG144 - G_M19968_IG02
+ dd G_M19968_IG144 - G_M19968_IG02
dd G_M19968_IG138 - G_M19968_IG02
dd G_M19968_IG133 - G_M19968_IG02
dd G_M19968_IG122 - G_M19968_IG02
dd G_M19968_IG121 - G_M19968_IG02
dd G_M19968_IG119 - G_M19968_IG02
- dd G_M19968_IG118 - G_M19968_IG02
dd G_M19968_IG117 - G_M19968_IG02
dd G_M19968_IG116 - G_M19968_IG02
dd G_M19968_IG115 - G_M19968_IG02
dd G_M19968_IG114 - G_M19968_IG02
dd G_M19968_IG113 - G_M19968_IG02
dd G_M19968_IG112 - G_M19968_IG02
dd G_M19968_IG111 - G_M19968_IG02
- dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG110 - G_M19968_IG02
- dd G_M19968_IG108 - G_M19968_IG02
- dd G_M19968_IG105 - G_M19968_IG02
- dd G_M19968_IG104 - G_M19968_IG02
+ dd G_M19968_IG240 - G_M19968_IG02
+ dd G_M19968_IG109 - G_M19968_IG02
+ dd G_M19968_IG106 - G_M19968_IG02
dd G_M19968_IG103 - G_M19968_IG02
- dd G_M19968_IG96 - G_M19968_IG02
- dd G_M19968_IG93 - G_M19968_IG02
- dd G_M19968_IG92 - G_M19968_IG02
+ dd G_M19968_IG102 - G_M19968_IG02
+ dd G_M19968_IG101 - G_M19968_IG02
+ dd G_M19968_IG94 - G_M19968_IG02
dd G_M19968_IG91 - G_M19968_IG02
- dd G_M19968_IG85 - G_M19968_IG02
- dd G_M19968_IG84 - G_M19968_IG02
+ dd G_M19968_IG90 - G_M19968_IG02
+ dd G_M19968_IG89 - G_M19968_IG02
+ dd G_M19968_IG83 - G_M19968_IG02
dd G_M19968_IG82 - G_M19968_IG02
- dd G_M19968_IG79 - G_M19968_IG02
+ dd G_M19968_IG80 - G_M19968_IG02
dd G_M19968_IG77 - G_M19968_IG02
dd G_M19968_IG76 - G_M19968_IG02
- dd G_M19968_IG71 - G_M19968_IG02
+ dd G_M19968_IG75 - G_M19968_IG02
+ dd G_M19968_IG70 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
- dd G_M19968_IG69 - G_M19968_IG02
dd G_M19968_IG68 - G_M19968_IG02
dd G_M19968_IG67 - G_M19968_IG02
+ dd G_M19968_IG66 - G_M19968_IG02
dd G_M19968_IG193 - G_M19968_IG02
dd G_M19968_IG175 - G_M19968_IG02
- dd G_M19968_IG150 - G_M19968_IG02
- dd G_M19968_IG66 - G_M19968_IG02
-RWD212 dd G_M19968_IG62 - G_M19968_IG02
- dd G_M19968_IG62 - G_M19968_IG02
- dd G_M19968_IG62 - G_M19968_IG02
- dd G_M19968_IG55 - G_M19968_IG02
- dd G_M19968_IG48 - G_M19968_IG02
- dd G_M19968_IG37 - G_M19968_IG02
+ dd G_M19968_IG151 - G_M19968_IG02
+ dd G_M19968_IG65 - G_M19968_IG02
+RWD212 dd G_M19968_IG61 - G_M19968_IG02
+ dd G_M19968_IG61 - G_M19968_IG02
+ dd G_M19968_IG61 - G_M19968_IG02
+ dd G_M19968_IG54 - G_M19968_IG02
+ dd G_M19968_IG47 - G_M19968_IG02
+ dd G_M19968_IG36 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
- dd G_M19968_IG32 - G_M19968_IG02
+ dd G_M19968_IG31 - G_M19968_IG02
dd G_M19968_IG30 - G_M19968_IG02
dd G_M19968_IG29 - G_M19968_IG02
dd G_M19968_IG28 - G_M19968_IG02
dd G_M19968_IG28 - G_M19968_IG02
dd G_M19968_IG26 - G_M19968_IG02
dd G_M19968_IG23 - G_M19968_IG02
dd G_M19968_IG22 - G_M19968_IG02
dd G_M19968_IG22 - G_M19968_IG02
dd G_M19968_IG20 - G_M19968_IG02
dd G_M19968_IG19 - G_M19968_IG02
dd G_M19968_IG28 - G_M19968_IG02
dd G_M19968_IG240 - G_M19968_IG02
dd G_M19968_IG16 - G_M19968_IG02
-; Total bytes of code 9211, prolog size 28, PerfScore 40623.40, instruction count 2448, allocated bytes for code 9215 (MethodHash=588bb1ff) for method System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
+; Total bytes of code 9152, prolog size 28, PerfScore 36244.53, instruction count 2434, allocated bytes for code 9152 (MethodHash=588bb1ff) for method System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
; ============================================================
-47 (-2.78 % of base) - System.Net.Http.HPack.HPackDecoder:DecodeInternal(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this
; Assembly listing for method System.Net.Http.HPack.HPackDecoder:DecodeInternal(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):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; 7 single block inlinees; 22 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T06] ( 46,229 ) ref -> r15 this class-hnd single-def <System.Net.Http.HPack.HPackDecoder>
+; V00 this [V00,T01] ( 49,185 ) ref -> r15 this class-hnd single-def <System.Net.Http.HPack.HPackDecoder>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
-; V02 arg2 [V02,T21] ( 14, 44 ) ref -> r13 class-hnd single-def <System.Net.Http.IHttpStreamHeadersHandler>
-; V03 loc0 [V03 ] ( 66,961 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
+; V02 arg2 [V02,T20] ( 14, 26 ) ref -> r13 class-hnd single-def <System.Net.Http.IHttpStreamHeadersHandler>
+; V03 loc0 [V03 ] ( 66,529 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
;* V04 loc1 [V04 ] ( 0, 0 ) ubyte -> zero-ref
;* V05 loc2 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ubyte]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T62] ( 3, 0 ) ref -> rbx class-hnd exact "Single-def Box Helper" <System.Net.Http.HPack.HPackDecoder+State>
-; V08 tmp2 [V08,T63] ( 3, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <System.NotImplementedException>
+; V07 tmp1 [V07,T61] ( 3, 0 ) ref -> rbx class-hnd exact "Single-def Box Helper" <System.Net.Http.HPack.HPackDecoder+State>
+; V08 tmp2 [V08,T62] ( 3, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <System.NotImplementedException>
;* V09 tmp3 [V09 ] ( 0, 0 ) struct ( 8) zero-ref "location for address-of(RValue)" <System.ValueTuple`2[int,int]>
;* V10 tmp4 [V10 ] ( 0, 0 ) struct ( 8) zero-ref "location for address-of(RValue)" <System.ValueTuple`2[int,int]>
;* V11 tmp5 [V11 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V12 tmp6 [V12 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V13 tmp7 [V13 ] ( 3, 20 ) int -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V14 tmp8 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V16 tmp10 [V16,T09] ( 3, 96 ) int -> rsi "Span.get_Item index"
-; V17 tmp11 [V17,T15] ( 2, 64 ) byref -> rdi "impAppendStmt"
+; V16 tmp10 [V16,T03] ( 3, 96 ) int -> rsi "Span.get_Item index"
+; V17 tmp11 [V17,T10] ( 2, 64 ) byref -> rdi "impAppendStmt"
;* V18 tmp12 [V18 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V19 tmp13 [V19 ] ( 3, 20 ) int -> [rbp-0x40] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V20 tmp14 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V21 tmp15 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V22 tmp16 [V22,T10] ( 3, 96 ) int -> rsi "Span.get_Item index"
-; V23 tmp17 [V23,T16] ( 2, 64 ) byref -> rdi "impAppendStmt"
+; V22 tmp16 [V22,T04] ( 3, 96 ) int -> rsi "Span.get_Item index"
+; V23 tmp17 [V23,T11] ( 2, 64 ) byref -> rdi "impAppendStmt"
;* V24 tmp18 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V25 tmp19 [V25,T28] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
-; V26 tmp20 [V26,T32] ( 3, 6 ) ubyte -> rsi "Inline stloc first use temp"
-; V27 tmp21 [V27,T33] ( 3, 6 ) int -> r12 ld-addr-op "Inline ldloca(s) first use temp"
+; V25 tmp19 [V25,T27] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
+; V26 tmp20 [V26,T29] ( 3, 6 ) ubyte -> rsi "Inline stloc first use temp"
+; V27 tmp21 [V27,T30] ( 3, 6 ) int -> r12 ld-addr-op "Inline ldloca(s) first use temp"
;* V28 tmp22 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V29 tmp23 [V29,T24] ( 4, 16 ) ubyte -> rax "Inlining Arg"
-; V30 tmp24 [V30,T26] ( 3, 12 ) byref -> rdx "Inlining Arg"
+; V29 tmp23 [V29,T23] ( 4, 16 ) ubyte -> r12 "Inlining Arg"
+; V30 tmp24 [V30,T25] ( 3, 12 ) byref -> rdx "Inlining Arg"
;* V31 tmp25 [V31 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V32 tmp26 [V32 ] ( 3, 20 ) int -> [rbp-0x48] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V33 tmp27 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V34 tmp28 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V35 tmp29 [V35,T11] ( 3, 96 ) int -> rsi "Span.get_Item index"
-; V36 tmp30 [V36,T17] ( 2, 64 ) byref -> rdi "impAppendStmt"
+; V35 tmp29 [V35,T05] ( 3, 96 ) int -> rsi "Span.get_Item index"
+; V36 tmp30 [V36,T12] ( 2, 64 ) byref -> rdi "impAppendStmt"
;* V37 tmp31 [V37 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V38 tmp32 [V38 ] ( 3, 20 ) int -> [rbp-0x50] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V39 tmp33 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V40 tmp34 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V41 tmp35 [V41,T12] ( 3, 96 ) int -> rsi "Span.get_Item index"
-; V42 tmp36 [V42,T18] ( 2, 64 ) byref -> rdi "impAppendStmt"
+; V41 tmp35 [V41,T06] ( 3, 96 ) int -> rsi "Span.get_Item index"
+; V42 tmp36 [V42,T13] ( 2, 64 ) byref -> rdi "impAppendStmt"
;* V43 tmp37 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V44 tmp38 [V44,T29] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
-; V45 tmp39 [V45,T34] ( 3, 6 ) ubyte -> rsi "Inline stloc first use temp"
-; V46 tmp40 [V46,T35] ( 3, 6 ) int -> r12 ld-addr-op "Inline ldloca(s) first use temp"
+; V44 tmp38 [V44,T28] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
+; V45 tmp39 [V45,T31] ( 3, 6 ) ubyte -> rsi "Inline stloc first use temp"
+; V46 tmp40 [V46,T32] ( 3, 6 ) int -> r12 ld-addr-op "Inline ldloca(s) first use temp"
;* V47 tmp41 [V47 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V48 tmp42 [V48,T25] ( 4, 16 ) ubyte -> rax "Inlining Arg"
-; V49 tmp43 [V49,T27] ( 3, 12 ) byref -> rdx "Inlining Arg"
+; V48 tmp42 [V48,T24] ( 4, 16 ) ubyte -> r12 "Inlining Arg"
+; V49 tmp43 [V49,T26] ( 3, 12 ) byref -> rdx "Inlining Arg"
;* V50 tmp44 [V50 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V51 tmp45 [V51 ] ( 3, 80 ) int -> [rbp-0x58] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+; V51 tmp45 [V51 ] ( 3, 20 ) int -> [rbp-0x58] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V52 tmp46 [V52 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V53 tmp47 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V54 tmp48 [V54,T00] ( 3,384 ) int -> rsi "Span.get_Item index"
-; V55 tmp49 [V55,T04] ( 2,256 ) byref -> rdi "impAppendStmt"
+; V54 tmp48 [V54,T07] ( 3, 96 ) int -> rsi "Span.get_Item index"
+; V55 tmp49 [V55,T14] ( 2, 64 ) byref -> rdi "impAppendStmt"
;* V56 tmp50 [V56 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V57 tmp51 [V57 ] ( 3, 80 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+; V57 tmp51 [V57 ] ( 3, 20 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V58 tmp52 [V58 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V59 tmp53 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V60 tmp54 [V60,T01] ( 3,384 ) int -> rsi "Span.get_Item index"
-; V61 tmp55 [V61,T05] ( 2,256 ) byref -> rdi "impAppendStmt"
+; V60 tmp54 [V60,T08] ( 3, 96 ) int -> rsi "Span.get_Item index"
+; V61 tmp55 [V61,T15] ( 2, 64 ) byref -> rdi "impAppendStmt"
;* V62 tmp56 [V62 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V63 tmp57 [V63 ] ( 3, 20 ) int -> [rbp-0x68] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V64 tmp58 [V64 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V65 tmp59 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V66 tmp60 [V66,T13] ( 3, 96 ) int -> rsi "Span.get_Item index"
-; V67 tmp61 [V67,T19] ( 2, 64 ) byref -> rdi "impAppendStmt"
+; V66 tmp60 [V66,T09] ( 3, 96 ) int -> rsi "Span.get_Item index"
+; V67 tmp61 [V67,T16] ( 2, 64 ) byref -> rdi "impAppendStmt"
;* V68 tmp62 [V68 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V69 tmp63 [V69 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V70 tmp64 [V70 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V71 tmp65 [V71 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V72 tmp66 [V72 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V73 tmp67 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V74 tmp68 [V74 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V75 tmp69 [V75,T36] ( 4, 4 ) ref -> r12 class-hnd single-def "Inlining Arg" <ubyte[]>
+; V75 tmp69 [V75,T33] ( 4, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" <ubyte[]>
;* V76 tmp70 [V76 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V77 tmp71 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V78 tmp72 [V78 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V79 tmp73 [V79 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V80 tmp74 [V80 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V81 tmp75 [V81,T07] ( 22,183.50) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V82 tmp76 [V82,T02] ( 35,333.50) int -> rbx single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V81 tmp75 [V81,T02] ( 22,111.50) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V82 tmp76 [V82,T00] ( 35,213.50) int -> rbx single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V83 tmp77 [V83 ] ( 0, 0 ) byref -> zero-ref single-def "field V05._reference (fldOffset=0x0)" P-INDEP
;* V84 tmp78 [V84 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
-; V85 tmp79 [V85,T61] ( 2, 1 ) int -> rsi "field V09.Item1 (fldOffset=0x0)" P-INDEP
+; V85 tmp79 [V85,T60] ( 2, 1 ) int -> rdx "field V09.Item1 (fldOffset=0x0)" P-INDEP
;* V86 tmp80 [V86 ] ( 0, 0 ) int -> zero-ref "field V09.Item2 (fldOffset=0x4)" P-INDEP
;* V87 tmp81 [V87 ] ( 0, 0 ) int -> zero-ref "field V10.Item1 (fldOffset=0x0)" P-INDEP
-; V88 tmp82 [V88,T43] ( 4, 2 ) int -> rax "field V10.Item2 (fldOffset=0x4)" P-INDEP
+; V88 tmp82 [V88,T40] ( 4, 2 ) int -> rdi "field V10.Item2 (fldOffset=0x4)" P-INDEP
;* V89 tmp83 [V89 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
;* V90 tmp84 [V90 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
;* V91 tmp85 [V91 ] ( 0, 0 ) byref -> zero-ref "field V12._reference (fldOffset=0x0)" P-INDEP
;* V92 tmp86 [V92 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
-;* V93 tmp87 [V93,T44] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
-;* V94 tmp88 [V94,T50] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
-; V95 tmp89 [V95,T23] ( 2, 18 ) byref -> r12 "field V18._reference (fldOffset=0x0)" P-INDEP
-; V96 tmp90 [V96,T22] ( 4, 36 ) int -> [rbp-0x6C] spill-single-def "field V18._length (fldOffset=0x8)" P-INDEP
-;* V97 tmp91 [V97,T45] ( 0, 0 ) byref -> zero-ref "field V21._reference (fldOffset=0x0)" P-INDEP
-;* V98 tmp92 [V98,T51] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
+;* V93 tmp87 [V93,T41] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V94 tmp88 [V94,T48] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
+; V95 tmp89 [V95,T21] ( 2, 18 ) byref -> r12 "field V18._reference (fldOffset=0x0)" P-INDEP
+; V96 tmp90 [V96,T18] ( 4, 36 ) int -> [rbp-0x6C] spill-single-def "field V18._length (fldOffset=0x8)" P-INDEP
+;* V97 tmp91 [V97,T42] ( 0, 0 ) byref -> zero-ref "field V21._reference (fldOffset=0x0)" P-INDEP
+;* V98 tmp92 [V98,T49] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
;* V99 tmp93 [V99 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
;* V100 tmp94 [V100 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
-;* V101 tmp95 [V101,T37] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP
-;* V102 tmp96 [V102,T40] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
-;* V103 tmp97 [V103,T46] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP
-;* V104 tmp98 [V104,T52] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
-;* V105 tmp99 [V105,T38] ( 0, 0 ) byref -> zero-ref "field V37._reference (fldOffset=0x0)" P-INDEP
-;* V106 tmp100 [V106,T41] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
-;* V107 tmp101 [V107,T47] ( 0, 0 ) byref -> zero-ref "field V40._reference (fldOffset=0x0)" P-INDEP
-;* V108 tmp102 [V108,T53] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
+;* V101 tmp95 [V101,T34] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP
+;* V102 tmp96 [V102,T37] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
+;* V103 tmp97 [V103,T43] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP
+;* V104 tmp98 [V104,T50] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
+;* V105 tmp99 [V105,T35] ( 0, 0 ) byref -> zero-ref "field V37._reference (fldOffset=0x0)" P-INDEP
+;* V106 tmp100 [V106,T38] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
+;* V107 tmp101 [V107,T44] ( 0, 0 ) byref -> zero-ref "field V40._reference (fldOffset=0x0)" P-INDEP
+;* V108 tmp102 [V108,T51] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
;* V109 tmp103 [V109 ] ( 0, 0 ) byref -> zero-ref "field V43._reference (fldOffset=0x0)" P-INDEP
;* V110 tmp104 [V110 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
-;* V111 tmp105 [V111,T39] ( 0, 0 ) byref -> zero-ref "field V50._reference (fldOffset=0x0)" P-INDEP
-;* V112 tmp106 [V112,T42] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
-;* V113 tmp107 [V113,T48] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V114 tmp108 [V114,T54] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-; V115 tmp109 [V115,T14] ( 2, 72 ) byref -> r12 "field V56._reference (fldOffset=0x0)" P-INDEP
-; V116 tmp110 [V116,T08] ( 4,144 ) int -> [rbp-0x70] spill-single-def "field V56._length (fldOffset=0x8)" P-INDEP
-;* V117 tmp111 [V117,T30] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
-;* V118 tmp112 [V118,T31] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
+;* V111 tmp105 [V111,T36] ( 0, 0 ) byref -> zero-ref "field V50._reference (fldOffset=0x0)" P-INDEP
+;* V112 tmp106 [V112,T39] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
+;* V113 tmp107 [V113,T45] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V114 tmp108 [V114,T52] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
+; V115 tmp109 [V115,T22] ( 2, 18 ) byref -> r12 "field V56._reference (fldOffset=0x0)" P-INDEP
+; V116 tmp110 [V116,T19] ( 4, 36 ) int -> [rbp-0x70] spill-single-def "field V56._length (fldOffset=0x8)" P-INDEP
+;* V117 tmp111 [V117,T46] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
+;* V118 tmp112 [V118,T53] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
;* V119 tmp113 [V119 ] ( 0, 0 ) byref -> zero-ref "field V62._reference (fldOffset=0x0)" P-INDEP
;* V120 tmp114 [V120 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP
-;* V121 tmp115 [V121,T49] ( 0, 0 ) byref -> zero-ref "field V65._reference (fldOffset=0x0)" P-INDEP
-;* V122 tmp116 [V122,T55] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP
-; V123 tmp117 [V123,T60] ( 2, 1 ) byref -> rsi single-def "field V73._reference (fldOffset=0x0)" P-INDEP
+;* V121 tmp115 [V121,T47] ( 0, 0 ) byref -> zero-ref "field V65._reference (fldOffset=0x0)" P-INDEP
+;* V122 tmp116 [V122,T54] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP
+; V123 tmp117 [V123,T59] ( 2, 1 ) byref -> rsi single-def "field V73._reference (fldOffset=0x0)" P-INDEP
;* V124 tmp118 [V124 ] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP
-; V125 tmp119 [V125,T56] ( 3, 1.50) byref -> rdi "field V76._reference (fldOffset=0x0)" P-INDEP
-; V126 tmp120 [V126,T58] ( 3, 1.50) int -> rdx "field V76._length (fldOffset=0x8)" P-INDEP
+; V125 tmp119 [V125,T55] ( 3, 1.50) byref -> rax "field V76._reference (fldOffset=0x0)" P-INDEP
+; V126 tmp120 [V126,T57] ( 3, 1.50) int -> rdx "field V76._length (fldOffset=0x8)" P-INDEP
;* V127 tmp121 [V127 ] ( 0, 0 ) byref -> zero-ref single-def "field V77._reference (fldOffset=0x0)" P-INDEP
;* V128 tmp122 [V128 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x8)" P-INDEP
-; V129 tmp123 [V129,T64] ( 2, 0 ) ref -> rsi "argument with side effect"
-; V130 cse0 [V130,T59] ( 3, 1.50) long -> rsi "CSE #10: conservative"
-; V131 cse1 [V131,T57] ( 3, 1.50) ref -> r12 "CSE #11: conservative"
-; V132 cse2 [V132,T03] ( 15,342 ) byref -> [rbp-0x78] multi-def "CSE #02: aggressive"
-; V133 rat0 [V133,T20] ( 3, 46.55) int -> rsi "ReplaceWithLclVar is creating a new local variable"
+; V129 tmp123 [V129,T63] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V130 cse0 [V130,T58] ( 3, 1.50) long -> rsi "CSE #10: conservative"
+; V131 cse1 [V131,T56] ( 3, 1.50) ref -> r13 "CSE #11: conservative"
+; V132 rat0 [V132,T17] ( 3, 46.55) int -> rsi "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 88
+; Lcl frame size = 72
G_M46554_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 88
- lea rbp, [rsp+0x80]
+ sub rsp, 72
+ lea rbp, [rsp+0x70]
mov r15, rdi
mov r14, rsi
mov ebx, edx
mov r13, rcx
- ;; size=33 bbWeight=1 PerfScore 7.75
+ ;; size=30 bbWeight=1 PerfScore 7.75
G_M46554_IG02:
xor esi, esi
mov dword ptr [rbp-0x30], esi
;; size=5 bbWeight=1 PerfScore 1.25
G_M46554_IG03:
movzx rsi, byte ptr [r15+0x4C]
cmp esi, 9
- ja G_M46554_IG47
+ ja G_M46554_IG46
;; size=14 bbWeight=8 PerfScore 26.00
G_M46554_IG04:
mov esi, esi
lea rdx, [reloc @RWD00]
mov edx, dword ptr [rdx+4*rsi]
lea rdi, G_M46554_IG02
add rdx, rdi
jmp rdx
;; size=24 bbWeight=7.27 PerfScore 43.64
G_M46554_IG05:
cmp dword ptr [rbp-0x30], ebx
jge SHORT G_M46554_IG07
;; size=5 bbWeight=2 PerfScore 6.00
G_M46554_IG06:
- lea r12, bword ptr [r15+0x50]
- mov rdi, r12
+ lea rdi, bword ptr [r15+0x50]
mov esi, dword ptr [rbp-0x30]
cmp esi, ebx
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r14+rsi]
lea rdx, [rbp-0x68]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
call [rax]System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
test eax, eax
jne SHORT G_M46554_IG08
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
cmp dword ptr [rbp-0x30], ebx
jl SHORT G_M46554_IG06
- ;; size=56 bbWeight=16 PerfScore 244.00
+ ;; size=53 bbWeight=16 PerfScore 240.00
G_M46554_IG07:
xor edi, edi
mov dword ptr [rbp-0x68], edi
- jmp SHORT G_M46554_IG12
- ;; size=7 bbWeight=2 PerfScore 6.50
+ jmp G_M46554_IG40
+ ;; size=10 bbWeight=2 PerfScore 6.50
G_M46554_IG08:
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov rdi, r15
mov esi, dword ptr [rbp-0x68]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:SetDynamicHeaderTableSize(int):this
call [rax]System.Net.Http.HPack.HPackDecoder:SetDynamicHeaderTableSize(int):this
mov byte ptr [r15+0x4C], 0
- jmp SHORT G_M46554_IG12
- ;; size=33 bbWeight=2 PerfScore 19.50
+ jmp G_M46554_IG40
+ ;; size=36 bbWeight=2 PerfScore 19.50
G_M46554_IG09:
mov r12, r14
mov eax, ebx
mov dword ptr [rbp-0x70], eax
cmp dword ptr [rbp-0x30], eax
jge SHORT G_M46554_IG11
- ;; size=13 bbWeight=8 PerfScore 36.00
+ ;; size=13 bbWeight=2 PerfScore 9.00
G_M46554_IG10:
- lea rsi, bword ptr [r15+0x50]
- mov rcx, rsi
- mov rdi, rcx
+ lea rdi, bword ptr [r15+0x50]
mov esi, dword ptr [rbp-0x30]
cmp esi, eax
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r12+rsi]
lea rdx, [rbp-0x60]
mov rcx, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
call [rcx]System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
test eax, eax
- jne SHORT G_M46554_IG15
+ jne SHORT G_M46554_IG12
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov edi, dword ptr [rbp-0x70]
cmp dword ptr [rbp-0x30], edi
mov eax, edi
jl SHORT G_M46554_IG10
- ;; size=64 bbWeight=64 PerfScore 1072.00
+ ;; size=58 bbWeight=16 PerfScore 260.00
G_M46554_IG11:
xor edi, edi
mov dword ptr [rbp-0x60], edi
- ;; size=5 bbWeight=8 PerfScore 10.00
+ jmp G_M46554_IG40
+ ;; size=10 bbWeight=2 PerfScore 6.50
G_M46554_IG12:
- cmp dword ptr [rbp-0x30], ebx
- jl G_M46554_IG03
- ;; size=9 bbWeight=8 PerfScore 24.00
-G_M46554_IG13:
- cmp byte ptr [r15+0x58], 0
- je G_M46554_IG46
- ;; size=11 bbWeight=1 PerfScore 4.00
-G_M46554_IG14:
- mov edx, dword ptr [r15+0x44]
- lea rsi, bword ptr [r15+0x18]
- mov rdi, r15
- mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:EnsureStringCapacity(byref,int):this
- call [rax]System.Net.Http.HPack.HPackDecoder:EnsureStringCapacity(byref,int):this
- mov r12, gword ptr [r15+0x18]
- lea rdi, bword ptr [r15+0x28]
- mov rsi, r12
- call CORINFO_HELP_ASSIGN_REF
- mov esi, dword ptr [r15+0x60]
- mov eax, dword ptr [r15+0x64]
- mov edx, eax
- add rdx, rsi
- mov edi, ebx
- cmp rdx, rdi
- jbe G_M46554_IG43
- jmp G_M46554_IG49
- ;; size=68 bbWeight=0.50 PerfScore 8.88
-G_M46554_IG15:
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov rdi, r15
mov esi, dword ptr [rbp-0x60]
mov edx, 8
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
- ;; size=63 bbWeight=8 PerfScore 110.00
-G_M46554_IG16:
+ jmp G_M46554_IG40
+ ;; size=63 bbWeight=2 PerfScore 27.50
+G_M46554_IG13:
cmp dword ptr [rbp-0x30], ebx
- jge G_M46554_IG12
+ jge G_M46554_IG40
mov esi, dword ptr [rbp-0x30]
lea edx, [rsi+0x01]
mov dword ptr [rbp-0x30], edx
cmp esi, ebx
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r14+rsi]
test sil, 128
setne dl
mov byte ptr [r15+0x4E], dl
- lea rcx, bword ptr [r15+0x50]
- mov r12, rcx
- mov rdx, r12
+ lea rdx, bword ptr [r15+0x50]
and esi, -129
- movzx rax, sil
- cmp eax, 127
- jl G_M46554_IG20
- mov dword ptr [rdx], eax
+ movzx r12, sil
+ cmp r12d, 127
+ jl G_M46554_IG17
+ mov dword ptr [rdx], r12d
xor esi, esi
mov dword ptr [rdx+0x04], esi
mov byte ptr [r15+0x4C], 7
cmp dword ptr [rbp-0x30], ebx
- jge SHORT G_M46554_IG18
- ;; size=88 bbWeight=2 PerfScore 40.00
-G_M46554_IG17:
- mov rdi, r12
+ jge SHORT G_M46554_IG15
+ ;; size=84 bbWeight=2 PerfScore 39.00
+G_M46554_IG14:
+ lea rdi, bword ptr [r15+0x50]
mov esi, dword ptr [rbp-0x30]
cmp esi, ebx
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r14+rsi]
lea rdx, [rbp-0x58]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
call [rax]System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
test eax, eax
- jne SHORT G_M46554_IG19
+ jne SHORT G_M46554_IG16
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
cmp dword ptr [rbp-0x30], ebx
- jl SHORT G_M46554_IG17
- ;; size=52 bbWeight=64 PerfScore 944.00
-G_M46554_IG18:
+ jl SHORT G_M46554_IG14
+ ;; size=53 bbWeight=16 PerfScore 240.00
+G_M46554_IG15:
xor edi, edi
mov dword ptr [rbp-0x58], edi
- jmp G_M46554_IG12
- ;; size=10 bbWeight=8 PerfScore 26.00
-G_M46554_IG19:
+ jmp G_M46554_IG40
+ ;; size=10 bbWeight=2 PerfScore 6.50
+G_M46554_IG16:
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov rdi, r15
mov esi, dword ptr [rbp-0x58]
mov edx, 8
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
- ;; size=63 bbWeight=8 PerfScore 110.00
-G_M46554_IG20:
- mov r12d, eax
+ jmp G_M46554_IG40
+ ;; size=63 bbWeight=2 PerfScore 27.50
+G_M46554_IG17:
mov rdi, r15
mov esi, r12d
mov edx, 8
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
test r12d, r12d
- je SHORT G_M46554_IG22
- ;; size=31 bbWeight=2 PerfScore 11.00
-G_M46554_IG21:
+ je SHORT G_M46554_IG19
+ ;; size=28 bbWeight=2 PerfScore 10.50
+G_M46554_IG18:
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
- ;; size=32 bbWeight=8 PerfScore 54.00
-G_M46554_IG22:
+ jmp G_M46554_IG40
+ ;; size=32 bbWeight=2 PerfScore 13.50
+G_M46554_IG19:
mov rdi, r15
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnString(ubyte):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnString(ubyte):this
mov rsi, r14
mov edx, ebx
mov rdi, r15
mov rcx, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ProcessHeaderValue(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ProcessHeaderValue(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
+ jmp G_M46554_IG40
;; size=45 bbWeight=2 PerfScore 20.00
-G_M46554_IG23:
+G_M46554_IG20:
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ParseHeaderName(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ParseHeaderName(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
+ jmp G_M46554_IG40
;; size=32 bbWeight=2 PerfScore 13.50
-G_M46554_IG24:
+G_M46554_IG21:
cmp dword ptr [rbp-0x30], ebx
- jge SHORT G_M46554_IG26
+ jge SHORT G_M46554_IG23
;; size=5 bbWeight=2 PerfScore 6.00
-G_M46554_IG25:
- lea r12, bword ptr [r15+0x50]
- mov rdi, r12
+G_M46554_IG22:
+ lea rdi, bword ptr [r15+0x50]
mov esi, dword ptr [rbp-0x30]
cmp esi, ebx
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r14+rsi]
lea rdx, [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
call [rax]System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
test eax, eax
- jne SHORT G_M46554_IG27
+ jne SHORT G_M46554_IG24
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
cmp dword ptr [rbp-0x30], ebx
- jl SHORT G_M46554_IG25
- ;; size=56 bbWeight=16 PerfScore 244.00
-G_M46554_IG26:
+ jl SHORT G_M46554_IG22
+ ;; size=53 bbWeight=16 PerfScore 240.00
+G_M46554_IG23:
xor edi, edi
mov dword ptr [rbp-0x50], edi
- jmp G_M46554_IG12
+ jmp G_M46554_IG40
;; size=10 bbWeight=2 PerfScore 6.50
-G_M46554_IG27:
+G_M46554_IG24:
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov rdi, r15
mov esi, dword ptr [rbp-0x50]
mov edx, 5
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ParseHeaderName(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ParseHeaderName(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
+ jmp G_M46554_IG40
;; size=63 bbWeight=2 PerfScore 27.50
-G_M46554_IG28:
+G_M46554_IG25:
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ParseHeaderNameLength(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ParseHeaderNameLength(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
+ jmp G_M46554_IG40
;; size=32 bbWeight=2 PerfScore 13.50
-G_M46554_IG29:
+G_M46554_IG26:
mov r12, r14
mov eax, ebx
mov dword ptr [rbp-0x6C], eax
cmp dword ptr [rbp-0x30], eax
- jge SHORT G_M46554_IG31
+ jge SHORT G_M46554_IG28
;; size=13 bbWeight=2 PerfScore 9.00
-G_M46554_IG30:
- lea rsi, bword ptr [r15+0x50]
- mov rcx, rsi
- mov bword ptr [rbp-0x78], rcx
- mov rdi, rcx
+G_M46554_IG27:
+ lea rdi, bword ptr [r15+0x50]
mov esi, dword ptr [rbp-0x30]
cmp esi, eax
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r12+rsi]
lea rdx, [rbp-0x40]
- mov r8, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
- call [r8]System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
+ mov rcx, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
+ call [rcx]System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
test eax, eax
- jne SHORT G_M46554_IG32
+ jne SHORT G_M46554_IG29
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov edi, dword ptr [rbp-0x6C]
cmp dword ptr [rbp-0x30], edi
mov eax, edi
- jl SHORT G_M46554_IG30
- ;; size=69 bbWeight=16 PerfScore 284.00
-G_M46554_IG31:
+ jl SHORT G_M46554_IG27
+ ;; size=58 bbWeight=16 PerfScore 260.00
+G_M46554_IG28:
xor edi, edi
mov dword ptr [rbp-0x40], edi
- jmp G_M46554_IG12
+ jmp G_M46554_IG40
;; size=10 bbWeight=2 PerfScore 6.50
-G_M46554_IG32:
+G_M46554_IG29:
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov rdi, r15
mov esi, dword ptr [rbp-0x40]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnIndexedHeaderName(int):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnIndexedHeaderName(int):this
cmp dword ptr [rbp-0x30], ebx
- jge G_M46554_IG12
- mov r12, bword ptr [rbp-0x78]
+ jge G_M46554_IG40
mov esi, dword ptr [rbp-0x30]
lea edx, [rsi+0x01]
mov dword ptr [rbp-0x30], edx
cmp esi, ebx
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r14+rsi]
test sil, 128
setne dl
mov byte ptr [r15+0x4E], dl
- mov rdx, r12
+ lea rdx, bword ptr [r15+0x50]
and esi, -129
- movzx rax, sil
- cmp eax, 127
- jl G_M46554_IG36
- mov dword ptr [rdx], eax
+ movzx r12, sil
+ cmp r12d, 127
+ jl G_M46554_IG33
+ mov dword ptr [rdx], r12d
xor esi, esi
mov dword ptr [rdx+0x04], esi
mov byte ptr [r15+0x4C], 7
cmp dword ptr [rbp-0x30], ebx
- jge SHORT G_M46554_IG34
- ;; size=111 bbWeight=2 PerfScore 54.00
-G_M46554_IG33:
- mov rdi, r12
+ jge SHORT G_M46554_IG31
+ ;; size=110 bbWeight=2 PerfScore 52.50
+G_M46554_IG30:
+ lea rdi, bword ptr [r15+0x50]
mov esi, dword ptr [rbp-0x30]
cmp esi, ebx
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r14+rsi]
lea rdx, [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
call [rax]System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
test eax, eax
- jne SHORT G_M46554_IG35
+ jne SHORT G_M46554_IG32
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
cmp dword ptr [rbp-0x30], ebx
- jl SHORT G_M46554_IG33
- ;; size=52 bbWeight=16 PerfScore 236.00
-G_M46554_IG34:
+ jl SHORT G_M46554_IG30
+ ;; size=53 bbWeight=16 PerfScore 240.00
+G_M46554_IG31:
xor edi, edi
mov dword ptr [rbp-0x48], edi
- jmp G_M46554_IG12
+ jmp G_M46554_IG40
;; size=10 bbWeight=2 PerfScore 6.50
-G_M46554_IG35:
+G_M46554_IG32:
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov rdi, r15
mov esi, dword ptr [rbp-0x48]
mov edx, 8
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
+ jmp G_M46554_IG40
;; size=63 bbWeight=2 PerfScore 27.50
-G_M46554_IG36:
- mov r12d, eax
+G_M46554_IG33:
mov rdi, r15
mov esi, r12d
mov edx, 8
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
test r12d, r12d
- je SHORT G_M46554_IG37
+ je SHORT G_M46554_IG34
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
- ;; size=63 bbWeight=2 PerfScore 24.50
-G_M46554_IG37:
+ jmp G_M46554_IG40
+ ;; size=60 bbWeight=2 PerfScore 24.00
+G_M46554_IG34:
mov rdi, r15
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnString(ubyte):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnString(ubyte):this
mov rsi, r14
mov edx, ebx
mov rdi, r15
mov rcx, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ProcessHeaderValue(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ProcessHeaderValue(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
- ;; size=45 bbWeight=2 PerfScore 20.00
-G_M46554_IG38:
+ jmp SHORT G_M46554_IG40
+ ;; size=42 bbWeight=2 PerfScore 20.00
+G_M46554_IG35:
cmp dword ptr [rbp-0x30], ebx
- jge SHORT G_M46554_IG40
+ jge SHORT G_M46554_IG37
;; size=5 bbWeight=2 PerfScore 6.00
-G_M46554_IG39:
- lea r12, bword ptr [r15+0x50]
- mov rdi, r12
+G_M46554_IG36:
+ lea rdi, bword ptr [r15+0x50]
mov esi, dword ptr [rbp-0x30]
cmp esi, ebx
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r14+rsi]
lea rdx, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
call [rax]System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
test eax, eax
- jne SHORT G_M46554_IG41
+ jne SHORT G_M46554_IG38
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
cmp dword ptr [rbp-0x30], ebx
- jl SHORT G_M46554_IG39
- ;; size=56 bbWeight=16 PerfScore 244.00
-G_M46554_IG40:
+ jl SHORT G_M46554_IG36
+ ;; size=53 bbWeight=16 PerfScore 240.00
+G_M46554_IG37:
xor edi, edi
mov dword ptr [rbp-0x38], edi
- jmp G_M46554_IG12
- ;; size=10 bbWeight=2 PerfScore 6.50
-G_M46554_IG41:
+ jmp SHORT G_M46554_IG40
+ ;; size=7 bbWeight=2 PerfScore 6.50
+G_M46554_IG38:
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov rdi, r15
mov esi, dword ptr [rbp-0x38]
mov rdx, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnIndexedHeaderField(int,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnIndexedHeaderField(int,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
- ;; size=34 bbWeight=2 PerfScore 18.00
-G_M46554_IG42:
+ jmp SHORT G_M46554_IG40
+ ;; size=31 bbWeight=2 PerfScore 18.00
+G_M46554_IG39:
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:Parse(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:Parse(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
- ;; size=32 bbWeight=2 PerfScore 13.50
-G_M46554_IG43:
+ ;; size=27 bbWeight=2 PerfScore 9.50
+G_M46554_IG40:
+ cmp dword ptr [rbp-0x30], ebx
+ jl G_M46554_IG03
+ ;; size=9 bbWeight=8 PerfScore 24.00
+G_M46554_IG41:
+ cmp byte ptr [r15+0x58], 0
+ je SHORT G_M46554_IG45
+ ;; size=7 bbWeight=1 PerfScore 4.00
+G_M46554_IG42:
+ mov edx, dword ptr [r15+0x44]
+ lea rsi, bword ptr [r15+0x18]
+ mov rdi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:EnsureStringCapacity(byref,int):this
+ call [rax]System.Net.Http.HPack.HPackDecoder:EnsureStringCapacity(byref,int):this
+ mov r13, gword ptr [r15+0x18]
+ lea rdi, bword ptr [r15+0x28]
+ mov rsi, r13
+ call CORINFO_HELP_ASSIGN_REF
+ mov edx, dword ptr [r15+0x60]
+ mov edi, dword ptr [r15+0x64]
+ mov esi, edx
+ mov edx, edi
+ add rdx, rsi
+ mov eax, ebx
+ cmp rdx, rax
+ ja G_M46554_IG48
add rsi, r14
- test r12, r12
- je SHORT G_M46554_IG44
- lea rdi, bword ptr [r12+0x10]
- mov edx, dword ptr [r12+0x08]
- jmp SHORT G_M46554_IG45
- ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M46554_IG44:
- xor rdi, rdi
+ test r13, r13
+ je SHORT G_M46554_IG43
+ lea rax, bword ptr [r13+0x10]
+ mov edx, dword ptr [r13+0x08]
+ jmp SHORT G_M46554_IG44
+ ;; size=83 bbWeight=0.50 PerfScore 11.00
+G_M46554_IG43:
+ xor rax, rax
xor edx, edx
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M46554_IG45:
- cmp eax, edx
- ja G_M46554_IG48
- mov edx, eax
+G_M46554_IG44:
+ cmp edi, edx
+ ja G_M46554_IG47
+ mov edx, edi
+ mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [r15+0x58], xmm0
- ;; size=32 bbWeight=0.50 PerfScore 3.54
-G_M46554_IG46:
- add rsp, 88
+ ;; size=35 bbWeight=0.50 PerfScore 3.67
+G_M46554_IG45:
+ add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M46554_IG47:
+G_M46554_IG46:
mov rdi, 0xD1FFAB1E ; System.Net.Http.HPack.HPackDecoder+State
call CORINFO_HELP_NEWSFAST
mov rbx, rax
movzx rdi, byte ptr [r15+0x4C]
mov byte ptr [rbx+0x08], dil
mov rdi, 0xD1FFAB1E ; System.NotImplementedException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Enum:ToString():System.String:this
call [rax]System.Enum:ToString():System.String:this
mov rsi, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.NotImplementedException:.ctor(System.String):this
call [rax]System.NotImplementedException:.ctor(System.String):this
mov rdi, r15
call CORINFO_HELP_THROW
int3
;; size=87 bbWeight=0 PerfScore 0.00
-G_M46554_IG48:
+G_M46554_IG47:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M46554_IG49:
+G_M46554_IG48:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M46554_IG50:
+G_M46554_IG49:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M46554_IG42 - G_M46554_IG02
- dd G_M46554_IG38 - G_M46554_IG02
- dd G_M46554_IG29 - G_M46554_IG02
- dd G_M46554_IG28 - G_M46554_IG02
- dd G_M46554_IG24 - G_M46554_IG02
- dd G_M46554_IG23 - G_M46554_IG02
- dd G_M46554_IG16 - G_M46554_IG02
- dd G_M46554_IG09 - G_M46554_IG02
+RWD00 dd G_M46554_IG39 - G_M46554_IG02
+ dd G_M46554_IG35 - G_M46554_IG02
+ dd G_M46554_IG26 - G_M46554_IG02
+ dd G_M46554_IG25 - G_M46554_IG02
dd G_M46554_IG21 - G_M46554_IG02
+ dd G_M46554_IG20 - G_M46554_IG02
+ dd G_M46554_IG13 - G_M46554_IG02
+ dd G_M46554_IG09 - G_M46554_IG02
+ dd G_M46554_IG18 - G_M46554_IG02
dd G_M46554_IG05 - G_M46554_IG02
-; Total bytes of code 1692, prolog size 33, PerfScore 4102.55, instruction count 460, allocated bytes for code 1692 (MethodHash=10da4a25) for method System.Net.Http.HPack.HPackDecoder:DecodeInternal(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this (FullOpts)
+; Total bytes of code 1645, prolog size 30, PerfScore 2290.80, instruction count 448, allocated bytes for code 1645 (MethodHash=10da4a25) for method System.Net.Http.HPack.HPackDecoder:DecodeInternal(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this (FullOpts)
; ============================================================
-43 (-3.39 % 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
; Final local variable assignments
;
-; V00 this [V00,T16] ( 13, 102 ) ref -> rbx this class-hnd single-def <ILCompiler.Reflection.ReadyToRun.Amd64.GcInfo>
-; V01 arg1 [V01,T24] ( 10, 43 ) ref -> r14 class-hnd single-def <ubyte[]>
-; V02 arg2 [V02,T21] ( 17, 57.50) byref -> r15 single-def
-; V03 loc0 [V03,T35] ( 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,T26] ( 6, 38 ) int -> [rbp-0x2C] spill-single-def
-; V05 loc2 [V05,T39] ( 6, 11 ) int -> [rbp-0x30]
-; V06 loc3 [V06,T45] ( 3, 6.50) int -> [rbp-0x34] spill-single-def
-; V07 loc4 [V07,T36] ( 6, 16.50) int -> [rbp-0x38]
-; V08 loc5 [V08,T10] ( 16, 250 ) ref -> [rbp-0x68] class-hnd exact spill-single-def <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]>
+; V00 this [V00,T12] ( 13, 126 ) ref -> rbx this class-hnd single-def <ILCompiler.Reflection.ReadyToRun.Amd64.GcInfo>
+; V01 arg1 [V01,T24] ( 10, 91 ) ref -> r14 class-hnd single-def <ubyte[]>
+; V02 arg2 [V02,T18] ( 17, 117.50) byref -> r15 single-def
+; V03 loc0 [V03,T26] ( 13, 85.50) ref -> r13 class-hnd exact single-def <System.Collections.Generic.List`1[System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]]>
+; V04 loc1 [V04,T25] ( 6, 92 ) int -> r12 single-def
+; V05 loc2 [V05,T42] ( 6, 11 ) int -> [rbp-0x2C]
+; V06 loc3 [V06,T46] ( 3, 6.50) int -> [rbp-0x30] spill-single-def
+; V07 loc4 [V07,T41] ( 6, 22.50) int -> [rbp-0x34]
+; V08 loc5 [V08,T09] ( 16, 400 ) ref -> [rbp-0x58] class-hnd exact spill-single-def <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]>
; V09 loc6 [V09,T51] ( 2, 4 ) int -> rax
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
-; V11 loc8 [V11,T22] ( 7, 56 ) ubyte -> [rbp-0x3C]
-; V12 loc9 [V12,T23] ( 4, 50 ) ubyte -> [rbp-0x40]
-; V13 loc10 [V13,T19] ( 7, 68 ) int -> [rbp-0x44]
-; V14 loc11 [V14,T25] ( 3, 40 ) int -> [rbp-0x48] spill-single-def
-; V15 loc12 [V15,T06] ( 6, 1232 ) int -> [rbp-0x4C]
-; V16 loc13 [V16,T04] ( 4, 3136 ) int -> rdi
+; V11 loc8 [V11,T31] ( 7, 56 ) ubyte -> [rbp-0x38]
+; V12 loc9 [V12,T32] ( 4, 50 ) ubyte -> [rbp-0x3C]
+; V13 loc10 [V13,T27] ( 7, 68 ) int -> [rbp-0x40]
+; V14 loc11 [V14,T33] ( 3, 40 ) int -> [rbp-0x44] spill-single-def
+; V15 loc12 [V15,T07] ( 6, 1232 ) int -> [rbp-0x48]
+; V16 loc13 [V16,T05] ( 4, 3136 ) int -> rdi
;* 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,T08] ( 5, 305 ) int -> [rbp-0x50]
-; V20 loc17 [V20,T07] ( 4, 776 ) int -> rdi
+; V19 loc16 [V19,T08] ( 5, 1220 ) int -> [rbp-0x4C]
+; V20 loc17 [V20,T06] ( 4, 3104 ) int -> rdi
;* V21 loc18 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd <ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot>
;# V22 OutArgs [V22 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V23 tmp1 [V23,T46] ( 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]]>
-; V24 tmp2 [V24,T32] ( 3, 24 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]>
+; V23 tmp1 [V23,T47] ( 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]]>
+; V24 tmp2 [V24,T40] ( 3, 24 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]>
;* V25 tmp3 [V25 ] ( 0, 0 ) ref -> zero-ref
;* V26 tmp4 [V26 ] ( 0, 0 ) ref -> zero-ref
; V27 tmp5 [V27,T50] ( 3, 6 ) int -> rsi
;* V28 tmp6 [V28 ] ( 0, 0 ) ref -> zero-ref
;* V29 tmp7 [V29 ] ( 0, 0 ) ref -> zero-ref
-; V30 tmp8 [V30,T28] ( 3, 32 ) int -> rsi
-; V31 tmp9 [V31,T47] ( 3, 6 ) ref -> rax class-hnd single-def "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable>
+; V30 tmp8 [V30,T36] ( 3, 32 ) int -> rsi
+; V31 tmp9 [V31,T48] ( 3, 6 ) ref -> rax class-hnd single-def "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable>
;* V32 tmp10 [V32 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V33 tmp11 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
-; V34 tmp12 [V34,T42] ( 2, 8 ) ref -> rdi class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
-; V35 tmp13 [V35,T43] ( 2, 8 ) ref -> rdi class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
-; V36 tmp14 [V36,T29] ( 2, 32 ) ref -> rsi class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
-; V37 tmp15 [V37,T30] ( 2, 32 ) ref -> rdi class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
+; V34 tmp12 [V34,T44] ( 2, 8 ) ref -> rdi class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
+; V35 tmp13 [V35,T45] ( 2, 8 ) ref -> rdi class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
+; V36 tmp14 [V36,T37] ( 2, 32 ) ref -> rsi class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
+; V37 tmp15 [V37,T38] ( 2, 32 ) ref -> rdi class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcInfoTypes>
;* V38 tmp16 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable>
-; V39 tmp17 [V39,T09] ( 2, 256 ) ref -> rsi class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
+; V39 tmp17 [V39,T10] ( 2, 256 ) ref -> rsi class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
;* V40 tmp18 [V40 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
-; V41 tmp19 [V41,T17] ( 3, 96 ) ref -> rdi class-hnd "Inline stloc first use temp" <ILCompiler.Reflection.ReadyToRun.BaseGcSlot[]>
-; V42 tmp20 [V42,T12] ( 4, 128 ) int -> r12 "Inline stloc first use temp"
+; V41 tmp19 [V41,T20] ( 3, 96 ) ref -> rdi class-hnd "Inline stloc first use temp" <ILCompiler.Reflection.ReadyToRun.BaseGcSlot[]>
+; V42 tmp20 [V42,T13] ( 4, 128 ) int -> rcx "Inline stloc first use temp"
;* V43 tmp21 [V43 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V44 tmp22 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
-; V45 tmp23 [V45,T48] ( 3, 6 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot][]>
-; V46 tmp24 [V46,T40] ( 4, 8 ) int -> registers "Inline stloc first use temp"
+; V45 tmp23 [V45,T49] ( 3, 6 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot][]>
+; V46 tmp24 [V46,T43] ( 4, 8 ) int -> registers "Inline stloc first use temp"
;* V47 tmp25 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable>
-; V48 tmp26 [V48,T31] ( 2, 32 ) ref -> rax class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
+; V48 tmp26 [V48,T15] ( 2, 128 ) ref -> rax class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
;* V49 tmp27 [V49 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
-; V50 tmp28 [V50,T33] ( 3, 24 ) ref -> rdi class-hnd "Inline stloc first use temp" <ILCompiler.Reflection.ReadyToRun.BaseGcSlot[]>
-; V51 tmp29 [V51,T27] ( 4, 32 ) int -> rax "Inline stloc first use temp"
+; V50 tmp28 [V50,T21] ( 3, 96 ) ref -> rdi class-hnd "Inline stloc first use temp" <ILCompiler.Reflection.ReadyToRun.BaseGcSlot[]>
+; V51 tmp29 [V51,T14] ( 4, 128 ) int -> rax "Inline stloc first use temp"
;* V52 tmp30 [V52 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V53 tmp31 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
-; V54 tmp32 [V54,T49] ( 3, 6 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot][]>
-; V55 tmp33 [V55,T41] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
-; V56 tmp34 [V56,T03] ( 6, 5192 ) ref -> registers "field V17._list (fldOffset=0x0)" P-INDEP
-; V57 tmp35 [V57,T02] ( 8, 5200 ) ref -> registers "field V17._current (fldOffset=0x8)" P-INDEP
-; V58 tmp36 [V58,T00] ( 12,12872 ) int -> registers "field V17._index (fldOffset=0x10)" P-INDEP
-;* V59 tmp37 [V59,T18] ( 0, 0 ) int -> zero-ref "field V17._version (fldOffset=0x14)" P-INDEP
+; V54 tmp32 [V54,T35] ( 3, 34 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot][]>
+; V55 tmp33 [V55,T34] ( 4, 36 ) int -> rsi "Inline stloc first use temp"
+; V56 tmp34 [V56,T04] ( 6, 8288 ) ref -> registers "field V17._list (fldOffset=0x0)" P-INDEP
+; V57 tmp35 [V57,T03] ( 8, 8320 ) ref -> registers "field V17._current (fldOffset=0x8)" P-INDEP
+; V58 tmp36 [V58,T00] ( 12,20576 ) int -> registers "field V17._index (fldOffset=0x10)" P-INDEP
+;* V59 tmp37 [V59,T23] ( 0, 0 ) int -> zero-ref "field V17._version (fldOffset=0x14)" P-INDEP
; V60 tmp38 [V60,T11] ( 3, 192 ) ref -> rsi "field V40._list (fldOffset=0x0)" P-INDEP
;* V61 tmp39 [V61 ] ( 0, 0 ) ref -> zero-ref "field V40._current (fldOffset=0x8)" P-INDEP
-;* V62 tmp40 [V62,T20] ( 0, 0 ) int -> zero-ref "field V40._index (fldOffset=0x10)" P-INDEP
-;* V63 tmp41 [V63,T13] ( 0, 0 ) int -> zero-ref "field V40._version (fldOffset=0x14)" P-INDEP
-; V64 tmp42 [V64,T34] ( 3, 24 ) ref -> rax "field V49._list (fldOffset=0x0)" P-INDEP
+;* V62 tmp40 [V62,T30] ( 0, 0 ) int -> zero-ref "field V40._index (fldOffset=0x10)" P-INDEP
+;* V63 tmp41 [V63,T16] ( 0, 0 ) int -> zero-ref "field V40._version (fldOffset=0x14)" P-INDEP
+; V64 tmp42 [V64,T22] ( 3, 96 ) ref -> rax "field V49._list (fldOffset=0x0)" P-INDEP
;* V65 tmp43 [V65 ] ( 0, 0 ) ref -> zero-ref "field V49._current (fldOffset=0x8)" P-INDEP
-;* V66 tmp44 [V66,T44] ( 0, 0 ) int -> zero-ref "field V49._index (fldOffset=0x10)" P-INDEP
-;* V67 tmp45 [V67,T37] ( 0, 0 ) int -> zero-ref "field V49._version (fldOffset=0x14)" P-INDEP
-; V68 tmp46 [V68,T05] ( 3, 3072 ) ref -> rcx "arr expr"
-; V69 tmp47 [V69,T01] ( 3,12288 ) ref -> r11 "arr expr"
-;* V70 cse0 [V70,T14] ( 0, 0 ) int -> zero-ref "CSE #05: moderate"
-;* V71 cse1 [V71,T38] ( 0, 0 ) int -> zero-ref "CSE #09: moderate"
-; V72 cse2 [V72,T15] ( 5, 112 ) int -> [rbp-0x54] multi-def "CSE #07: moderate"
+;* V66 tmp44 [V66,T39] ( 0, 0 ) int -> zero-ref "field V49._index (fldOffset=0x10)" P-INDEP
+;* V67 tmp45 [V67,T28] ( 0, 0 ) int -> zero-ref "field V49._version (fldOffset=0x14)" P-INDEP
+; V68 tmp46 [V68,T01] ( 3,12288 ) ref -> rcx "arr expr"
+; V69 tmp47 [V69,T02] ( 3,12288 ) ref -> r11 "arr expr"
+;* V70 cse0 [V70,T17] ( 0, 0 ) int -> zero-ref "CSE #05: moderate"
+;* V71 cse1 [V71,T29] ( 0, 0 ) int -> zero-ref "CSE #09: moderate"
+; V72 cse2 [V72,T19] ( 5, 112 ) int -> [rbp-0x50] multi-def "CSE #07: moderate"
;
-; Lcl frame size = 72
+; Lcl frame size = 56
G_M54607_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 72
- lea rbp, [rsp+0x70]
+ sub rsp, 56
+ lea rbp, [rsp+0x60]
mov rbx, rdi
mov r14, rsi
mov r15, rdx
;; size=28 bbWeight=1 PerfScore 7.50
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 ; global ptr
test byte ptr [rdi], 1
- je G_M54607_IG49
+ je G_M54607_IG48
;; size=37 bbWeight=1 PerfScore 5.75
G_M54607_IG03:
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 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_IG06
- ;; size=47 bbWeight=1 PerfScore 14.00
+ ;; size=36 bbWeight=1 PerfScore 11.75
G_M54607_IG04:
xor rax, rax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M54607_IG05:
- add rsp, 72
+ add rsp, 56
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M54607_IG06:
xor eax, eax
- mov dword ptr [rbp-0x30], eax
+ mov dword ptr [rbp-0x2C], 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_IG07
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
+ mov dword ptr [rbp-0x2C], eax
;; size=62 bbWeight=0.50 PerfScore 7.75
G_M54607_IG07:
mov ecx, dword ptr [r15]
- mov dword ptr [rbp-0x34], ecx
+ mov dword ptr [rbp-0x30], ecx
xor edx, edx
- mov dword ptr [rbp-0x38], edx
+ mov dword ptr [rbp-0x34], edx
cmp dword ptr [rbx+0x74], 0
- je G_M54607_IG47
+ je G_M54607_IG45
;; size=21 bbWeight=0.50 PerfScore 4.12
G_M54607_IG08:
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-0x60], rax
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
- je G_M54607_IG50
+ je G_M54607_IG49
;; size=41 bbWeight=4 PerfScore 30.00
G_M54607_IG09:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]:s_emptyArray
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [rax+0x08]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x70]
- mov gword ptr [rbp-0x68], rax
- mov ecx, dword ptr [rbp-0x30]
+ mov rax, gword ptr [rbp-0x60]
+ mov gword ptr [rbp-0x58], rax
+ mov ecx, dword ptr [rbp-0x2C]
test ecx, ecx
- je G_M54607_IG11
+ je G_M54607_IG12
;; size=41 bbWeight=4 PerfScore 32.00
G_M54607_IG10:
- mov r8d, dword ptr [rbp-0x38]
+ mov r8d, dword ptr [rbp-0x34]
mov edi, ecx
imul edi, r8d
add dword ptr [r15], edi
mov rdi, r14
- mov dword ptr [rbp-0x30], ecx
+ mov dword ptr [rbp-0x2C], 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 ecx, dword ptr [rbp-0x2C]
mov edi, ecx
imul edi, dword ptr [rbx+0x74]
- mov r8d, dword ptr [rbp-0x34]
+ mov r8d, dword ptr [rbp-0x30]
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 SHORT G_M54607_IG12
+ je SHORT G_M54607_IG11
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
+ mov dword ptr [rbp-0x3C], 1
+ mov dword ptr [rbp-0x38], eax
test eax, eax
- jne G_M54607_IG22
+ jne G_M54607_IG24
mov rdi, gword ptr [rbx+0x28]
mov esi, dword ptr [rdi+0x70]
- jmp G_M54607_IG23
- align [0 bytes for IG15]
+ jmp G_M54607_IG25
;; size=151 bbWeight=2 PerfScore 82.00
G_M54607_IG11:
- 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
+ mov ecx, dword ptr [rbp-0x2C]
+ jmp SHORT G_M54607_IG13
+ align [4 bytes for IG16]
+ ;; size=9 bbWeight=1 PerfScore 3.00
G_M54607_IG12:
- xor r9d, r9d
- mov dword ptr [rbp-0x50], r9d
- ;; size=7 bbWeight=1 PerfScore 1.25
+ mov edi, r12d
+ imul edi, dword ptr [rbp-0x34]
+ add dword ptr [r15], edi
+ ;; size=10 bbWeight=8 PerfScore 58.00
G_M54607_IG13:
+ xor r9d, r9d
+ mov dword ptr [rbp-0x4C], r9d
+ mov dword ptr [rbp-0x2C], ecx
+ ;; size=10 bbWeight=4 PerfScore 9.00
+G_M54607_IG14:
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_IG20
- ;; size=32 bbWeight=16 PerfScore 84.00
-G_M54607_IG14:
+ je G_M54607_IG21
+ ;; size=32 bbWeight=64 PerfScore 336.00
+G_M54607_IG15:
xor edi, edi
mov rsi, gword ptr [rbx+0x40]
mov rax, gword ptr [rsi+0x08]
mov esi, dword ptr [rax+0x14]
xor esi, esi
- jmp SHORT G_M54607_IG16
- ;; size=17 bbWeight=8 PerfScore 68.00
-G_M54607_IG15:
- inc edi
- ;; size=2 bbWeight=256 PerfScore 64.00
+ jmp SHORT G_M54607_IG17
+ ;; size=17 bbWeight=32 PerfScore 272.00
G_M54607_IG16:
+ inc edi
+ ;; size=2 bbWeight=1024 PerfScore 256.00
+G_M54607_IG17:
cmp esi, dword ptr [rax+0x10]
- jae SHORT G_M54607_IG20
+ jae SHORT G_M54607_IG21
mov rcx, gword ptr [rax+0x08]
cmp esi, dword ptr [rcx+0x08]
- jae G_M54607_IG51
+ jae G_M54607_IG50
mov edx, esi
mov rdx, gword ptr [rcx+8*rdx+0x10]
inc esi
cmp dword ptr [rdx+0x18], 4
- je SHORT G_M54607_IG16
- ;; size=33 bbWeight=512 PerfScore 8448.00
-G_M54607_IG17:
- mov r8d, dword ptr [rbp-0x50]
+ je SHORT G_M54607_IG17
+ ;; size=33 bbWeight=2048 PerfScore 33792.00
+G_M54607_IG18:
+ mov r8d, dword ptr [rbp-0x4C]
movsxd r9, edi
cmp r8, r9
- jne SHORT G_M54607_IG15
- ;; size=12 bbWeight=256 PerfScore 640.00
-G_M54607_IG18:
- mov r8, gword ptr [rbp-0x68]
+ jne SHORT G_M54607_IG16
+ ;; size=12 bbWeight=1024 PerfScore 2560.00
+G_M54607_IG19:
+ mov r8, gword ptr [rbp-0x58]
inc dword ptr [r8+0x14]
mov rdi, gword ptr [r8+0x08]
mov eax, dword ptr [r8+0x10]
cmp dword ptr [rdi+0x08], eax
- ja SHORT G_M54607_IG19
+ ja SHORT G_M54607_IG20
mov rdi, r8
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
- jmp SHORT G_M54607_IG20
- ;; size=41 bbWeight=8 PerfScore 142.00
-G_M54607_IG19:
+ jmp SHORT G_M54607_IG21
+ ;; size=41 bbWeight=32 PerfScore 568.00
+G_M54607_IG20:
lea esi, [rax+0x01]
mov dword ptr [r8+0x10], esi
movsxd rsi, eax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- ;; size=22 bbWeight=8 PerfScore 40.00
-G_M54607_IG20:
- mov ecx, dword ptr [rbp-0x50]
+ ;; size=22 bbWeight=32 PerfScore 160.00
+G_M54607_IG21:
+ mov ecx, dword ptr [rbp-0x4C]
inc ecx
cmp ecx, r12d
- mov dword ptr [rbp-0x50], ecx
- jb G_M54607_IG13
- ;; size=17 bbWeight=16 PerfScore 56.00
-G_M54607_IG21:
- mov rax, gword ptr [rbp-0x68]
+ mov dword ptr [rbp-0x4C], ecx
+ jb G_M54607_IG14
+ ;; size=17 bbWeight=64 PerfScore 224.00
+G_M54607_IG22:
+ mov rax, gword ptr [rbp-0x58]
+ mov ecx, dword ptr [rbp-0x2C]
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_IG44
+ mov dword ptr [rbp-0x2C], ecx
+ jbe G_M54607_IG43
+ ;; size=31 bbWeight=16 PerfScore 224.00
+G_M54607_IG23:
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
- mov r13, gword ptr [rbp-0x60]
- jmp G_M54607_IG46
- ;; size=59 bbWeight=2 PerfScore 40.50
-G_M54607_IG22:
+ jmp G_M54607_IG44
+ align [0 bytes for IG33]
+ ;; size=30 bbWeight=2 PerfScore 14.50
+G_M54607_IG24:
mov rdi, gword ptr [rbx+0x28]
mov esi, dword ptr [rdi+0x74]
;; size=7 bbWeight=2 PerfScore 8.00
-G_M54607_IG23:
+G_M54607_IG25:
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
+ cmp dword ptr [rbp-0x38], 0
sete dil
movzx rdi, dil
mov ecx, edi
- mov dword ptr [rbp-0x44], eax
+ mov dword ptr [rbp-0x40], eax
cmp eax, r12d
- jae SHORT G_M54607_IG25
- ;; size=41 bbWeight=2 PerfScore 19.00
-G_M54607_IG24:
- mov dword ptr [rbp-0x3C], ecx
- test ecx, ecx
- jne SHORT G_M54607_IG26
- jmp SHORT G_M54607_IG27
- ;; size=9 bbWeight=16 PerfScore 68.00
-G_M54607_IG25:
- mov r12d, dword ptr [rbp-0x2C]
- jmp G_M54607_IG41
- align [2 bytes for IG32]
- ;; size=11 bbWeight=1 PerfScore 3.00
+ jae G_M54607_IG40
+ ;; size=45 bbWeight=2 PerfScore 19.00
G_M54607_IG26:
+ mov dword ptr [rbp-0x38], ecx
+ test ecx, ecx
+ je SHORT G_M54607_IG28
+ ;; size=7 bbWeight=16 PerfScore 36.00
+G_M54607_IG27:
mov rdi, gword ptr [rbx+0x28]
mov esi, dword ptr [rdi+0x74]
- jmp SHORT G_M54607_IG28
+ jmp SHORT G_M54607_IG29
;; size=9 bbWeight=8 PerfScore 48.00
-G_M54607_IG27:
+G_M54607_IG28:
mov rsi, gword ptr [rbx+0x28]
mov esi, dword ptr [rsi+0x70]
;; size=7 bbWeight=8 PerfScore 32.00
-G_M54607_IG28:
+G_M54607_IG29:
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_IG31
+ mov dword ptr [rbp-0x44], eax
+ cmp dword ptr [rbp-0x3C], 0
+ je SHORT G_M54607_IG32
;; size=30 bbWeight=16 PerfScore 128.00
-G_M54607_IG29:
- mov edx, dword ptr [rbp-0x44]
+G_M54607_IG30:
+ mov edx, dword ptr [rbp-0x40]
mov r8d, edx
lea r9d, [r8+rax]
- mov dword ptr [rbp-0x54], r9d
- mov dword ptr [rbp-0x44], edx
+ mov dword ptr [rbp-0x50], r9d
+ mov dword ptr [rbp-0x40], edx
cmp r9d, edx
- jbe G_M54607_IG40
+ jbe G_M54607_IG39
;; size=26 bbWeight=8 PerfScore 40.00
-G_M54607_IG30:
+G_M54607_IG31:
xor edi, edi
mov rsi, gword ptr [rbx+0x40]
mov rsi, gword ptr [rsi+0x08]
mov r10d, dword ptr [rsi+0x14]
xor r10d, r10d
- jmp SHORT G_M54607_IG33
+ jmp SHORT G_M54607_IG34
;; size=19 bbWeight=64 PerfScore 544.00
-G_M54607_IG31:
- jmp G_M54607_IG40
- ;; size=5 bbWeight=8 PerfScore 16.00
G_M54607_IG32:
- inc edi
- mov r8d, dword ptr [rbp-0x4C]
- mov r13, gword ptr [rbp-0x60]
- ;; size=10 bbWeight=1024 PerfScore 2304.00
+ jmp G_M54607_IG39
+ ;; size=5 bbWeight=8 PerfScore 16.00
G_M54607_IG33:
+ inc edi
+ mov r8d, dword ptr [rbp-0x48]
+ ;; size=6 bbWeight=1024 PerfScore 1280.00
+G_M54607_IG34:
cmp r10d, dword ptr [rsi+0x10]
- jae G_M54607_IG39
+ jae SHORT G_M54607_IG38
mov r11, gword ptr [rsi+0x08]
cmp r10d, dword ptr [r11+0x08]
- jae G_M54607_IG51
- mov r13d, r10d
- mov r11, gword ptr [r11+8*r13+0x10]
+ jae G_M54607_IG50
+ mov eax, r10d
+ mov rax, gword ptr [r11+8*rax+0x10]
inc r10d
- cmp dword ptr [r11+0x18], 4
- je SHORT G_M54607_IG36
- ;; size=42 bbWeight=2048 PerfScore 33792.00
-G_M54607_IG34:
- mov dword ptr [rbp-0x4C], r8d
- mov r13d, r8d
- movsxd r12, edi
- cmp r13, r12
- jne SHORT G_M54607_IG32
- ;; size=15 bbWeight=1024 PerfScore 2816.00
+ cmp dword ptr [rax+0x18], 4
+ je SHORT G_M54607_IG34
+ ;; size=37 bbWeight=2048 PerfScore 33792.00
G_M54607_IG35:
- mov r13, gword ptr [rbp-0x68]
- inc dword ptr [r13+0x14]
- mov rdi, gword ptr [r13+0x08]
- mov r12d, dword ptr [r13+0x10]
- cmp dword ptr [rdi+0x08], r12d
- jbe SHORT G_M54607_IG37
- jmp SHORT G_M54607_IG38
- ;; size=24 bbWeight=32 PerfScore 448.00
+ mov r11, rax
+ mov dword ptr [rbp-0x48], r8d
+ mov eax, r8d
+ movsxd rcx, edi
+ cmp rax, rcx
+ jne SHORT G_M54607_IG33
+ ;; size=18 bbWeight=1024 PerfScore 3072.00
G_M54607_IG36:
- mov r13, gword ptr [rbp-0x60]
- jmp SHORT G_M54607_IG33
- ;; size=6 bbWeight=1024 PerfScore 3072.00
-G_M54607_IG37:
- mov rdi, r13
+ mov rax, gword ptr [rbp-0x58]
+ inc dword ptr [rax+0x14]
+ mov rdi, gword ptr [rax+0x08]
+ mov ecx, dword ptr [rax+0x10]
+ cmp dword ptr [rdi+0x08], ecx
+ ja SHORT G_M54607_IG37
+ mov rdi, rax
mov rsi, r11
- 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
- mov r8d, dword ptr [rbp-0x4C]
- mov r13, gword ptr [rbp-0x60]
- jmp SHORT G_M54607_IG39
- ;; size=29 bbWeight=32 PerfScore 248.00
-G_M54607_IG38:
- lea esi, [r12+0x01]
- mov dword ptr [r13+0x10], esi
- movsxd rsi, r12d
+ 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 r8d, dword ptr [rbp-0x48]
+ jmp SHORT G_M54607_IG38
+ ;; size=43 bbWeight=32 PerfScore 600.00
+G_M54607_IG37:
+ lea esi, [rcx+0x01]
+ mov dword ptr [rax+0x10], esi
+ movsxd rsi, ecx
mov rdx, r11
- mov r10, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
- call [r10]CORINFO_HELP_ARRADDR_ST
- mov r8d, dword ptr [rbp-0x4C]
- mov r13, gword ptr [rbp-0x60]
- ;; size=36 bbWeight=32 PerfScore 232.00
-G_M54607_IG39:
+ mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
+ call [rcx]CORINFO_HELP_ARRADDR_ST
+ mov r8d, dword ptr [rbp-0x48]
+ ;; size=28 bbWeight=32 PerfScore 200.00
+G_M54607_IG38:
inc r8d
- mov r9d, dword ptr [rbp-0x54]
+ mov r9d, dword ptr [rbp-0x50]
cmp r9d, r8d
- mov dword ptr [rbp-0x54], r9d
- ja G_M54607_IG30
+ mov dword ptr [rbp-0x50], r9d
+ ja G_M54607_IG31
;; size=20 bbWeight=64 PerfScore 224.00
-G_M54607_IG40:
- mov edx, dword ptr [rbp-0x44]
+G_M54607_IG39:
+ mov edx, dword ptr [rbp-0x40]
mov r9d, edx
- add r9d, dword ptr [rbp-0x48]
+ add r9d, dword ptr [rbp-0x44]
mov edx, r9d
- cmp dword ptr [rbp-0x3C], 0
+ cmp dword ptr [rbp-0x38], 0
sete dil
movzx rdi, dil
- cmp dword ptr [rbp-0x40], 0
+ cmp dword ptr [rbp-0x3C], 0
sete cl
movzx rcx, cl
- mov r12d, dword ptr [rbp-0x2C]
cmp edx, r12d
- mov dword ptr [rbp-0x44], edx
- mov dword ptr [rbp-0x40], ecx
- jb SHORT G_M54607_IG43
- ;; size=50 bbWeight=16 PerfScore 228.00
-G_M54607_IG41:
+ mov dword ptr [rbp-0x40], edx
+ mov dword ptr [rbp-0x3C], ecx
+ jb SHORT G_M54607_IG42
+ ;; size=46 bbWeight=16 PerfScore 212.00
+G_M54607_IG40:
inc dword ptr [r13+0x14]
mov rdi, gword ptr [r13+0x08]
mov eax, dword ptr [r13+0x10]
cmp dword ptr [rdi+0x08], eax
- ja SHORT G_M54607_IG45
+ ja SHORT G_M54607_IG47
;; size=17 bbWeight=2 PerfScore 22.00
-G_M54607_IG42:
- mov rax, gword ptr [rbp-0x68]
- jmp SHORT G_M54607_IG44
+G_M54607_IG41:
+ mov rax, gword ptr [rbp-0x58]
+ jmp SHORT G_M54607_IG43
;; size=6 bbWeight=1 PerfScore 3.00
-G_M54607_IG43:
+G_M54607_IG42:
mov ecx, edi
- jmp G_M54607_IG24
+ jmp G_M54607_IG26
;; size=7 bbWeight=8 PerfScore 18.00
-G_M54607_IG44:
+G_M54607_IG43:
mov rdi, r13
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
- jmp SHORT G_M54607_IG46
- ;; size=20 bbWeight=2 PerfScore 11.50
-G_M54607_IG45:
- mov esi, eax
- mov rax, gword ptr [rbp-0x68]
- 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
- ;; size=31 bbWeight=2 PerfScore 13.00
-G_M54607_IG46:
- mov r8d, dword ptr [rbp-0x38]
+ ;; size=18 bbWeight=8 PerfScore 30.00
+G_M54607_IG44:
+ mov r8d, dword ptr [rbp-0x34]
inc r8d
cmp r8d, dword ptr [rbx+0x74]
- mov dword ptr [rbp-0x38], r8d
- mov ecx, dword ptr [rbp-0x34]
+ mov dword ptr [rbp-0x34], r8d
+ mov ecx, dword ptr [rbp-0x30]
jb G_M54607_IG08
;; size=24 bbWeight=4 PerfScore 29.00
-G_M54607_IG47:
+G_M54607_IG45:
mov rax, r13
;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M54607_IG48:
- add rsp, 72
+G_M54607_IG46:
+ add rsp, 56
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M54607_IG49:
+G_M54607_IG47:
+ mov esi, eax
+ mov rax, gword ptr [rbp-0x58]
+ 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_IG44
+ ;; size=33 bbWeight=2 PerfScore 17.00
+G_M54607_IG48:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M54607_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-G_M54607_IG50:
+G_M54607_IG49:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]
call CORINFO_HELP_GET_GCSTATIC_BASE
- mov rax, gword ptr [rbp-0x70]
+ mov rax, gword ptr [rbp-0x60]
jmp G_M54607_IG09
;; size=24 bbWeight=0 PerfScore 0.00
-G_M54607_IG51:
+G_M54607_IG50:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1269, prolog size 28, PerfScore 54154.38, instruction count 341, allocated bytes for code 1269 (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 1226, prolog size 28, PerfScore 79031.88, instruction count 332, allocated bytes for code 1226 (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)
; ============================================================
-43 (-6.20 % of base) - System.Enum:ToUInt64(System.Object):ulong
; Assembly listing for method System.Enum:ToUInt64(System.Object):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 34, 16.75) ref -> rbx class-hnd single-def <System.Object>
;* V01 loc0 [V01 ] ( 0, 0 ) int -> zero-ref
; V02 loc1 [V02,T03] ( 8, 4 ) ref -> r15 class-hnd <System.Type>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T01] ( 8, 9 ) long -> rax "Single return block return value"
-; V05 rat0 [V05,T02] ( 3, 5.80) int -> rax "ReplaceWithLclVar is creating a new local variable"
+; V05 cse0 [V05,T04] ( 3, 1.50) long -> rdi "CSE #10: moderate"
+; V06 cse1 [V06,T05] ( 3, 1.50) long -> rdi "CSE #11: moderate"
+; V07 cse2 [V07,T06] ( 3, 1.50) long -> rdi "CSE #13: moderate"
+; V08 cse3 [V08,T07] ( 3, 1.50) long -> rdi "CSE #14: moderate"
+; V09 rat0 [V09,T02] ( 3, 5.80) int -> rax "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
G_M38557_IG01:
push rbp
push r15
push rbx
lea rbp, [rsp+0x10]
mov rbx, rdi
;; size=12 bbWeight=1 PerfScore 3.75
G_M38557_IG02:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Convert:GetTypeCode(System.Object):int
call [rax]System.Convert:GetTypeCode(System.Object):int
add eax, -4
cmp eax, 8
ja SHORT G_M38557_IG04
;; size=23 bbWeight=1 PerfScore 5.00
G_M38557_IG03:
mov esi, eax
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rsi]
lea rax, G_M38557_IG02
add rdi, rax
jmp rdi
;; size=24 bbWeight=0.90 PerfScore 5.40
G_M38557_IG04:
test rbx, rbx
je G_M38557_IG31
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Object:GetType():System.Type:this
call [rax]System.Object:GetType():System.Type:this
mov r15, rax
mov rdi, r15
mov rax, qword ptr [r15]
mov rax, qword ptr [rax+0x70]
call [rax+0x30]System.Type:get_IsEnum():ubyte:this
test eax, eax
je SHORT G_M38557_IG05
mov rdi, r15
mov rax, qword ptr [r15]
mov rax, qword ptr [rax+0xA0]
call [rax+0x18]System.Type:GetEnumUnderlyingType():System.Type:this
mov r15, rax
;; size=63 bbWeight=0.50 PerfScore 10.50
G_M38557_IG05:
mov rsi, 0xD1FFAB1E ; 'System.IntPtr'
cmp r15, rsi
je SHORT G_M38557_IG07
mov rsi, 0xD1FFAB1E ; 'System.UIntPtr'
cmp r15, rsi
jne G_M38557_IG31
- mov rsi, 0xD1FFAB1E ; System.UIntPtr
- cmp qword ptr [rbx], rsi
+ mov rdi, 0xD1FFAB1E ; System.UIntPtr
+ cmp qword ptr [rbx], rdi
je SHORT G_M38557_IG06
mov rsi, rbx
- mov rdi, 0xD1FFAB1E ; System.UIntPtr
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
- ;; size=74 bbWeight=0.50 PerfScore 5.50
+ ;; size=64 bbWeight=0.50 PerfScore 5.38
G_M38557_IG06:
mov rax, qword ptr [rbx+0x08]
jmp G_M38557_IG30
;; size=9 bbWeight=0.50 PerfScore 2.00
G_M38557_IG07:
- mov rsi, 0xD1FFAB1E ; System.IntPtr
- cmp qword ptr [rbx], rsi
- je SHORT G_M38557_IG06
- mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.IntPtr
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
- call [rax]CORINFO_HELP_UNBOX
- jmp SHORT G_M38557_IG06
- ;; size=42 bbWeight=0.50 PerfScore 5.00
-G_M38557_IG08:
- mov rsi, 0xD1FFAB1E ; System.UInt64
- cmp qword ptr [rbx], rsi
+ cmp qword ptr [rbx], rdi
je SHORT G_M38557_IG06
mov rsi, rbx
- mov rdi, 0xD1FFAB1E ; System.UInt64
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
jmp SHORT G_M38557_IG06
- ;; size=42 bbWeight=0.50 PerfScore 5.00
+ ;; size=32 bbWeight=0.50 PerfScore 4.88
+G_M38557_IG08:
+ mov rdi, 0xD1FFAB1E ; System.UInt64
+ cmp qword ptr [rbx], rdi
+ je SHORT G_M38557_IG06
+ mov rsi, rbx
+ mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
+ call [rax]CORINFO_HELP_UNBOX
+ jmp SHORT G_M38557_IG06
+ ;; size=32 bbWeight=0.50 PerfScore 4.88
G_M38557_IG09:
mov rsi, 0xD1FFAB1E ; System.Int64
cmp qword ptr [rbx], rsi
je SHORT G_M38557_IG06
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M38557_IG10:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Int64
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
- jmp G_M38557_IG06
- ;; size=30 bbWeight=0.25 PerfScore 1.44
+ jmp SHORT G_M38557_IG06
+ ;; size=27 bbWeight=0.25 PerfScore 1.44
G_M38557_IG11:
mov rsi, 0xD1FFAB1E ; System.UInt32
cmp qword ptr [rbx], rsi
je SHORT G_M38557_IG13
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M38557_IG12:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.UInt32
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
;; size=25 bbWeight=0.25 PerfScore 0.94
G_M38557_IG13:
mov eax, dword ptr [rbx+0x08]
jmp G_M38557_IG30
;; size=8 bbWeight=0.50 PerfScore 2.00
G_M38557_IG14:
mov rsi, 0xD1FFAB1E ; System.Int32
cmp qword ptr [rbx], rsi
je SHORT G_M38557_IG16
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M38557_IG15:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Int32
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
;; size=25 bbWeight=0.25 PerfScore 0.94
G_M38557_IG16:
movsxd rax, dword ptr [rbx+0x08]
jmp G_M38557_IG30
;; size=9 bbWeight=0.50 PerfScore 3.00
G_M38557_IG17:
mov rsi, 0xD1FFAB1E ; System.UInt16
cmp qword ptr [rbx], rsi
je G_M38557_IG29
;; size=19 bbWeight=0.50 PerfScore 2.12
G_M38557_IG18:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.UInt16
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
jmp G_M38557_IG29
;; size=30 bbWeight=0.25 PerfScore 1.44
G_M38557_IG19:
mov rsi, 0xD1FFAB1E ; System.Int16
cmp qword ptr [rbx], rsi
je SHORT G_M38557_IG21
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M38557_IG20:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Int16
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
;; size=25 bbWeight=0.25 PerfScore 0.94
G_M38557_IG21:
movsx rax, word ptr [rbx+0x08]
jmp G_M38557_IG30
;; size=10 bbWeight=0.50 PerfScore 3.00
G_M38557_IG22:
mov rsi, 0xD1FFAB1E ; System.Byte
cmp qword ptr [rbx], rsi
je SHORT G_M38557_IG24
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M38557_IG23:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Byte
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
;; size=25 bbWeight=0.25 PerfScore 0.94
G_M38557_IG24:
movzx rax, byte ptr [rbx+0x08]
jmp SHORT G_M38557_IG30
;; size=6 bbWeight=0.50 PerfScore 2.00
G_M38557_IG25:
mov rsi, 0xD1FFAB1E ; System.SByte
cmp qword ptr [rbx], rsi
je SHORT G_M38557_IG27
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M38557_IG26:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.SByte
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
;; size=25 bbWeight=0.25 PerfScore 0.94
G_M38557_IG27:
movsx rax, byte ptr [rbx+0x08]
jmp SHORT G_M38557_IG30
;; size=7 bbWeight=0.50 PerfScore 3.00
G_M38557_IG28:
- mov rsi, 0xD1FFAB1E ; System.Char
- cmp qword ptr [rbx], rsi
+ mov rdi, 0xD1FFAB1E ; System.Char
+ cmp qword ptr [rbx], rdi
je SHORT G_M38557_IG29
mov rsi, rbx
- mov rdi, 0xD1FFAB1E ; System.Char
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
- ;; size=40 bbWeight=0.50 PerfScore 4.00
+ ;; size=30 bbWeight=0.50 PerfScore 3.88
G_M38557_IG29:
movzx rax, word ptr [rbx+0x08]
;; size=4 bbWeight=0.50 PerfScore 1.00
G_M38557_IG30:
pop rbx
pop r15
pop rbp
ret
;; size=5 bbWeight=1 PerfScore 2.50
G_M38557_IG31:
mov rax, 0xD1FFAB1E ; code for System.Enum:CreateUnknownEnumTypeException():System.InvalidOperationException
call [rax]System.Enum:CreateUnknownEnumTypeException():System.InvalidOperationException
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=21 bbWeight=0 PerfScore 0.00
RWD00 dd G_M38557_IG28 - G_M38557_IG02
dd G_M38557_IG25 - G_M38557_IG02
dd G_M38557_IG22 - G_M38557_IG02
dd G_M38557_IG19 - G_M38557_IG02
dd G_M38557_IG17 - G_M38557_IG02
dd G_M38557_IG14 - G_M38557_IG02
dd G_M38557_IG11 - G_M38557_IG02
dd G_M38557_IG09 - G_M38557_IG02
dd G_M38557_IG08 - G_M38557_IG02
-; Total bytes of code 693, prolog size 9, PerfScore 85.09, instruction count 143, allocated bytes for code 693 (MethodHash=6ce96962) for method System.Enum:ToUInt64(System.Object):ulong (FullOpts)
+; Total bytes of code 650, prolog size 9, PerfScore 84.59, instruction count 139, allocated bytes for code 650 (MethodHash=6ce96962) for method System.Enum:ToUInt64(System.Object):ulong (FullOpts)
; ============================================================
-33 (-5.34 % of base) - System.IO.Pipelines.Pipe:PrepareFlushUnsynchronized(byref,byref,System.Threading.CancellationToken):this
; Assembly listing for method System.IO.Pipelines.Pipe:PrepareFlushUnsynchronized(byref,byref,System.Threading.CancellationToken):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; 13 single block inlinees; 10 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 11, 8.50) ref -> rbx this class-hnd single-def <System.IO.Pipelines.Pipe>
; V01 arg1 [V01,T04] ( 7, 4.50) byref -> r14 single-def
; V02 arg2 [V02,T03] ( 9, 5.50) byref -> r15 single-def
;* V03 arg3 [V03 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Threading.CancellationToken>
;* V04 loc0 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.IO.Pipelines.FlushResult>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T08] ( 2, 4 ) int -> r12 "impAppendStmt"
;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref
;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.FlushResult]>
;* V09 tmp4 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 tmp5 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.FlushResult]>
; V11 tmp6 [V11 ] ( 6, 7 ) struct ( 8) [rbp-0x30] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
; V12 tmp7 [V12,T00] ( 8, 11 ) byref -> [rbp-0x38] spill-single-def "Inlining Arg"
; V13 tmp8 [V13,T12] ( 2, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Action`1[System.Object]>
;* V14 tmp9 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationTokenRegistration>
;* V15 tmp10 [V15 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Threading.CancellationTokenRegistration>
;* V16 tmp11 [V16 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.Threading.CancellationTokenRegistration>
; V17 tmp12 [V17,T26] ( 2, 1 ) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.Threading.CancellationTokenSource>
;* V18 tmp13 [V18 ] ( 0, 0 ) ref -> zero-ref
;* V19 tmp14 [V19 ] ( 0, 0 ) ref -> zero-ref
;* V20 tmp15 [V20 ] ( 0, 0 ) ref -> zero-ref
;* V21 tmp16 [V21 ] ( 0, 0 ) ref -> zero-ref
;* V22 tmp17 [V22 ] ( 0, 0 ) ref -> zero-ref
;* V23 tmp18 [V23 ] ( 0, 0 ) ref -> zero-ref
;* V24 tmp19 [V24 ] ( 0, 0 ) ref -> zero-ref
;* V25 tmp20 [V25 ] ( 0, 0 ) ref -> zero-ref
;* V26 tmp21 [V26 ] ( 0, 0 ) ref -> zero-ref
;* V27 tmp22 [V27 ] ( 0, 0 ) ref -> zero-ref
;* V28 tmp23 [V28 ] ( 0, 0 ) ref -> zero-ref
;* V29 tmp24 [V29 ] ( 0, 0 ) ref -> zero-ref
;* V30 tmp25 [V30 ] ( 0, 0 ) ref -> zero-ref
;* V31 tmp26 [V31 ] ( 0, 0 ) ref -> zero-ref
;* V32 tmp27 [V32 ] ( 0, 0 ) ref -> zero-ref
;* V33 tmp28 [V33 ] ( 0, 0 ) ref -> zero-ref
;* V34 tmp29 [V34 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Threading.CancellationTokenRegistration>
;* V35 tmp30 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationTokenRegistration>
;* V36 tmp31 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationTokenRegistration>
;* V37 tmp32 [V37 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Threading.CancellationTokenRegistration>
;* V38 tmp33 [V38,T35] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V39 tmp34 [V39,T36] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V40 tmp35 [V40,T13] ( 2, 2 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Threading.CancellationTokenSource>
; V41 tmp36 [V41,T06] ( 2, 4 ) byref -> rax single-def "Inlining Arg"
; V42 tmp37 [V42,T14] ( 2, 2 ) byref -> rax single-def "Inlining Arg"
; V43 tmp38 [V43,T16] ( 2, 2 ) int -> rcx "impAppendStmt"
;* V44 tmp39 [V44 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V45 tmp40 [V45,T15] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
; V46 tmp41 [V46,T25] ( 3, 1 ) ref -> rdi single-def "ISINST eval op1"
;* V47 tmp42 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
; V48 tmp43 [V48,T42] ( 2, 0 ) ref -> rdi class-hnd exact "Inline stloc first use temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
;* V49 tmp44 [V49 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.IO.Pipelines.FlushResult>
; V50 tmp45 [V50,T11] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.IO.Pipelines.Pipe+DefaultPipeWriter>
; V51 tmp46 [V51,T02] ( 9, 9 ) byref -> rbx single-def "Inlining Arg"
; V52 tmp47 [V52,T17] ( 3, 1.50) ref -> rsi class-hnd single-def "Inline stloc first use temp" <System.Action`1[System.Object]>
-; V53 tmp48 [V53,T27] ( 2, 1 ) ref -> r13 class-hnd single-def "Inline stloc first use temp" <System.Object>
-; V54 tmp49 [V54,T05] ( 4, 4 ) ref -> rax class-hnd exact single-def "dup spill" <System.IO.Pipelines.PipeAwaitable+SchedulingContext>
+; V53 tmp48 [V53,T27] ( 2, 1 ) ref -> r15 class-hnd single-def "Inline stloc first use temp" <System.Object>
+; V54 tmp49 [V54,T05] ( 4, 4 ) ref -> rdi class-hnd exact single-def "dup spill" <System.IO.Pipelines.PipeAwaitable+SchedulingContext>
;* V55 tmp50 [V55 ] ( 0, 0 ) ref -> zero-ref single-def
;* V56 tmp51 [V56 ] ( 0, 0 ) ref -> zero-ref single-def
;* V57 tmp52 [V57 ] ( 0, 0 ) ref -> zero-ref single-def
-; V58 tmp53 [V58,T18] ( 3, 1.50) ref -> r12
+; V58 tmp53 [V58,T18] ( 3, 1.50) ref -> r13
;* V59 tmp54 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.Threading.ExecutionContext>
;* V60 tmp55 [V60 ] ( 0, 0 ) ref -> zero-ref single-def
-; V61 tmp56 [V61,T19] ( 3, 1.50) ref -> r15
+; V61 tmp56 [V61,T19] ( 3, 1.50) ref -> r12
;* V62 tmp57 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.Threading.SynchronizationContext>
;* V63 tmp58 [V63 ] ( 0, 0 ) byref -> zero-ref single-def
;* V64 tmp59 [V64 ] ( 0, 0 ) struct (32) zero-ref ld-addr-op "NewObj constructor temp" <System.IO.Pipelines.CompletionData>
;* V65 tmp60 [V65 ] ( 0, 0 ) byref -> zero-ref
;* V66 tmp61 [V66 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] <System.IO.Pipelines.CompletionData>
;* V67 tmp62 [V67 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] ld-addr-op "Inline ldloca(s) first use temp" <System.IO.Pipelines.CompletionData>
; V68 tmp63 [V68,T07] ( 2, 2 ) ref -> r13 single-def "field V03._source (fldOffset=0x0)" P-INDEP
; V69 tmp64 [V69,T09] ( 6, 3 ) ubyte -> rsi "field V04._resultFlags (fldOffset=0x0)" P-INDEP
; V70 tmp65 [V70,T28] ( 2, 1 ) ref -> rsi single-def "field V08._obj (fldOffset=0x0)" P-INDEP
;* V71 tmp66 [V71,T37] ( 0, 0 ) short -> zero-ref "field V08._token (fldOffset=0x8)" P-INDEP
;* V72 tmp67 [V72,T38] ( 0, 0 ) ubyte -> zero-ref "field V08._continueOnCapturedContext (fldOffset=0xa)" P-INDEP
;* V73 tmp68 [V73,T39] ( 0, 0 ) ubyte -> zero-ref "field V08._result (fldOffset=0xb)" P-INDEP
;* V74 tmp69 [V74,T34] ( 0, 0 ) ref -> zero-ref single-def "field V10._obj (fldOffset=0x0)" P-INDEP
;* V75 tmp70 [V75,T40] ( 0, 0 ) short -> zero-ref "field V10._token (fldOffset=0x8)" P-INDEP
;* V76 tmp71 [V76,T41] ( 0, 0 ) ubyte -> zero-ref "field V10._continueOnCapturedContext (fldOffset=0xa)" P-INDEP
; V77 tmp72 [V77,T31] ( 2, 1 ) ubyte -> rdi "field V10._result (fldOffset=0xb)" P-INDEP
; V78 tmp73 [V78 ] ( 6, 3.50) ref -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V11._source (fldOffset=0x0)" P-DEP
;* V79 tmp74 [V79 ] ( 0, 0 ) ref -> zero-ref single-def "field V14._node (fldOffset=0x0)" P-INDEP
;* V80 tmp75 [V80 ] ( 0, 0 ) long -> zero-ref "field V14._id (fldOffset=0x8)" P-INDEP
; V81 tmp76 [V81,T29] ( 2, 1 ) ref -> rsi single-def "field V15._node (fldOffset=0x0)" P-INDEP
; V82 tmp77 [V82,T32] ( 2, 1 ) long -> registers "field V15._id (fldOffset=0x8)" P-INDEP
; V83 tmp78 [V83,T30] ( 2, 1 ) ref -> rax single-def "field V16._node (fldOffset=0x0)" P-INDEP
; V84 tmp79 [V84,T33] ( 2, 1 ) long -> r13 "field V16._id (fldOffset=0x8)" P-INDEP
;* V85 tmp80 [V85 ] ( 0, 0 ) ref -> zero-ref "field V34._node (fldOffset=0x0)" P-DEP
;* V86 tmp81 [V86 ] ( 0, 0 ) long -> zero-ref "field V34._id (fldOffset=0x8)" P-DEP
;* V87 tmp82 [V87 ] ( 0, 0 ) ref -> zero-ref single-def "field V35._node (fldOffset=0x0)" P-INDEP
;* V88 tmp83 [V88 ] ( 0, 0 ) long -> zero-ref "field V35._id (fldOffset=0x8)" P-INDEP
;* V89 tmp84 [V89 ] ( 0, 0 ) ref -> zero-ref single-def "field V36._node (fldOffset=0x0)" P-INDEP
;* V90 tmp85 [V90 ] ( 0, 0 ) long -> zero-ref "field V36._id (fldOffset=0x8)" P-INDEP
;* V91 tmp86 [V91 ] ( 0, 0 ) ref -> zero-ref single-def "field V37._node (fldOffset=0x0)" P-INDEP
;* V92 tmp87 [V92 ] ( 0, 0 ) long -> zero-ref "field V37._id (fldOffset=0x8)" P-INDEP
;* V93 tmp88 [V93 ] ( 0, 0 ) ubyte -> zero-ref "field V49._resultFlags (fldOffset=0x0)" P-INDEP
;* V94 tmp89 [V94 ] ( 0, 0 ) ref -> zero-ref single-def "field V64.<Completion>k__BackingField (fldOffset=0x0)" P-INDEP
;* V95 tmp90 [V95 ] ( 0, 0 ) ref -> zero-ref single-def "field V64.<CompletionState>k__BackingField (fldOffset=0x8)" P-INDEP
;* V96 tmp91 [V96 ] ( 0, 0 ) ref -> zero-ref single-def "field V64.<ExecutionContext>k__BackingField (fldOffset=0x10)" P-INDEP
;* V97 tmp92 [V97 ] ( 0, 0 ) ref -> zero-ref single-def "field V64.<SynchronizationContext>k__BackingField (fldOffset=0x18)" P-INDEP
; V98 tmp93 [V98,T20] ( 3, 1.50) ref -> rsi "V66.[000..008)"
-; V99 tmp94 [V99,T21] ( 3, 1.50) ref -> r13 "V66.[008..016)"
-; V100 tmp95 [V100,T22] ( 3, 1.50) ref -> r12 "V66.[016..024)"
-; V101 tmp96 [V101,T23] ( 3, 1.50) ref -> r15 "V66.[024..032)"
+; V99 tmp94 [V99,T21] ( 3, 1.50) ref -> r15 "V66.[008..016)"
+; V100 tmp95 [V100,T22] ( 3, 1.50) ref -> r13 "V66.[016..024)"
+; V101 tmp96 [V101,T23] ( 3, 1.50) ref -> r12 "V66.[024..032)"
;* V102 tmp97 [V102 ] ( 0, 0 ) ref -> zero-ref single-def "V67.[000..008)"
;* V103 tmp98 [V103 ] ( 0, 0 ) ref -> zero-ref single-def "V67.[008..016)"
;* V104 tmp99 [V104 ] ( 0, 0 ) ref -> zero-ref single-def "V67.[016..024)"
;* V105 tmp100 [V105 ] ( 0, 0 ) ref -> zero-ref single-def "V67.[024..032)"
; V106 cse0 [V106,T10] ( 4, 3 ) int -> rdi "CSE #02: moderate"
; V107 cse1 [V107,T24] ( 3, 1.25) ref -> rdi "CSE #03: moderate"
;
; Lcl frame size = 24
G_M5050_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
lea rbp, [rsp+0x40]
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov rbx, rdi
mov r14, rsi
mov r15, rdx
mov r13, rcx
;; size=37 bbWeight=1 PerfScore 9.00
G_M5050_IG02:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.IO.Pipelines.Pipe:CommitUnsynchronized():ubyte:this
call [rax]System.IO.Pipelines.Pipe:CommitUnsynchronized():ubyte:this
mov r12d, eax
cmp byte ptr [rbx], bl
lea rax, bword ptr [rbx+0xB0]
mov bword ptr [rbp-0x38], rax
mov gword ptr [rbp-0x30], r13
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
cmp gword ptr [rbp-0x30], 0
je SHORT G_M5050_IG06
;; size=55 bbWeight=1 PerfScore 14.50
G_M5050_IG03:
test byte ptr [rax+0x18], 5
jne SHORT G_M5050_IG05
mov rdi, gword ptr [rbp-0x30]
mov rdx, rbx
xor rcx, rcx
xor r8, r8
mov r9, 0xD1FFAB1E ; code for System.Threading.CancellationTokenSource:Register(System.Delegate,System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext):System.Threading.CancellationTokenRegistration:this
call [r9]System.Threading.CancellationTokenSource:Register(System.Delegate,System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext):System.Threading.CancellationTokenRegistration:this
mov r13, rdx
mov rcx, bword ptr [rbp-0x38]
lea rdi, bword ptr [rcx+0x20]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
mov rdi, bword ptr [rbp-0x38]
mov qword ptr [rdi+0x28], r13
mov rsi, gword ptr [rdi+0x20]
mov rax, qword ptr [rdi+0x28]
test rsi, rsi
- je G_M5050_IG13
- ;; size=75 bbWeight=0.50 PerfScore 9.62
+ je SHORT G_M5050_IG09
+ ;; size=71 bbWeight=0.50 PerfScore 9.62
G_M5050_IG04:
mov rax, rdi
jmp SHORT G_M5050_IG06
;; size=5 bbWeight=0.25 PerfScore 0.56
G_M5050_IG05:
mov rax, bword ptr [rbp-0x38]
;; size=4 bbWeight=0.25 PerfScore 0.25
G_M5050_IG06:
or dword ptr [rax+0x18], 2
lea rax, bword ptr [rbx+0xB0]
mov edi, dword ptr [rax+0x18]
test dil, 5
- je G_M5050_IG14
- ;; size=24 bbWeight=1 PerfScore 6.75
+ je SHORT G_M5050_IG10
+ ;; size=20 bbWeight=1 PerfScore 6.75
G_M5050_IG07:
xor esi, esi
lea rax, bword ptr [rbx+0xB0]
test dil, 4
setne cl
movzx rcx, cl
and edi, -7
mov dword ptr [rax+0x18], edi
mov edi, 1
test ecx, ecx
cmovne esi, edi
lea rdi, bword ptr [rbx+0xF0]
mov rdi, gword ptr [rdi]
test rdi, rdi
- je SHORT G_M5050_IG10
+ je SHORT G_M5050_IG12
;; size=50 bbWeight=0.50 PerfScore 4.00
G_M5050_IG08:
mov rax, 0xD1FFAB1E ; System.Runtime.ExceptionServices.ExceptionDispatchInfo
cmp qword ptr [rdi], rax
- je G_M5050_IG25
- ;; size=19 bbWeight=0.25 PerfScore 1.06
+ jne SHORT G_M5050_IG11
+ jmp G_M5050_IG25
+ ;; size=20 bbWeight=0.25 PerfScore 1.56
G_M5050_IG09:
- movzx rsi, sil
- or esi, 2
- ;; size=7 bbWeight=0.50 PerfScore 0.25
-G_M5050_IG10:
- movzx rdi, sil
- xor rsi, rsi
- mov gword ptr [r15], rsi
- mov word ptr [r15+0x08], 0
- mov byte ptr [r15+0x0A], 1
- mov byte ptr [r15+0x0B], dil
- ;; size=25 bbWeight=0.50 PerfScore 2.25
-G_M5050_IG11:
- test r12d, r12d
- je G_M5050_IG15
- ;; size=9 bbWeight=1 PerfScore 1.25
-G_M5050_IG12:
- add rbx, 128
- mov rsi, gword ptr [rbx]
- mov r13, gword ptr [rbx+0x08]
- mov rax, gword ptr [rbx+0x10]
- test rax, rax
- jne G_M5050_IG17
- xor r12, r12
- xor r15, r15
- jmp G_M5050_IG18
- ;; size=38 bbWeight=0.50 PerfScore 5.00
-G_M5050_IG13:
mov rcx, rax
mov rax, rdi
mov rdi, rcx
test rdi, rdi
- jne G_M5050_IG06
+ jne SHORT G_M5050_IG06
cmp gword ptr [rbp-0x30], 0
- je G_M5050_IG06
+ je SHORT G_M5050_IG06
mov rdi, gword ptr [rbp-0x30]
cmp dword ptr [rdi+0x20], 0
- je G_M5050_IG06
+ je SHORT G_M5050_IG06
jmp G_M5050_IG26
- ;; size=48 bbWeight=0.50 PerfScore 6.00
-G_M5050_IG14:
+ ;; size=36 bbWeight=0.50 PerfScore 6.00
+G_M5050_IG10:
mov rsi, gword ptr [rbx+0x10]
test rsi, rsi
je G_M5050_IG24
mov rdi, r15
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov word ptr [r15+0x08], 0
mov word ptr [r15+0x0A], 1
- jmp G_M5050_IG11
- ;; size=40 bbWeight=0.50 PerfScore 4.25
-G_M5050_IG15:
+ jmp SHORT G_M5050_IG13
+ ;; size=37 bbWeight=0.50 PerfScore 4.25
+G_M5050_IG11:
+ movzx rsi, sil
+ or esi, 2
+ ;; size=7 bbWeight=0.50 PerfScore 0.25
+G_M5050_IG12:
+ movzx rdi, sil
+ xor rsi, rsi
+ mov gword ptr [r15], rsi
+ mov word ptr [r15+0x08], 0
+ mov byte ptr [r15+0x0A], 1
+ mov byte ptr [r15+0x0B], dil
+ ;; size=25 bbWeight=0.50 PerfScore 2.25
+G_M5050_IG13:
+ test r12d, r12d
+ jne SHORT G_M5050_IG16
+ ;; size=5 bbWeight=1 PerfScore 1.25
+G_M5050_IG14:
xor edi, edi
mov qword ptr [r14], rdi
mov qword ptr [r14+0x08], rdi
mov qword ptr [r14+0x10], rdi
mov qword ptr [r14+0x18], rdi
;; size=17 bbWeight=0.50 PerfScore 2.12
-G_M5050_IG16:
+G_M5050_IG15:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M5050_IG16:
+ add rbx, 128
+ mov rsi, gword ptr [rbx]
+ mov r15, gword ptr [rbx+0x08]
+ mov rdi, gword ptr [rbx+0x10]
+ test rdi, rdi
+ je SHORT G_M5050_IG17
+ mov r13, gword ptr [rdi+0x10]
+ mov r12, gword ptr [rdi+0x08]
+ jmp SHORT G_M5050_IG18
+ ;; size=33 bbWeight=0.50 PerfScore 6.75
G_M5050_IG17:
- mov r12, gword ptr [rax+0x10]
- mov r15, gword ptr [rax+0x08]
- ;; size=8 bbWeight=0.50 PerfScore 2.00
+ xor r13, r13
+ xor r12, r12
+ ;; size=6 bbWeight=0.50 PerfScore 0.25
G_M5050_IG18:
xor rdi, rdi
mov gword ptr [rbx], rdi
;; size=5 bbWeight=0.50 PerfScore 0.62
G_M5050_IG19:
mov gword ptr [rbx+0x08], rdi
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M5050_IG20:
mov gword ptr [rbx+0x10], rdi
test rsi, rsi
je SHORT G_M5050_IG21
jmp SHORT G_M5050_IG22
;; size=11 bbWeight=0.50 PerfScore 2.12
G_M5050_IG21:
xor rsi, rsi
+ xor r15, r15
xor r13, r13
xor r12, r12
- xor r15, r15
;; size=11 bbWeight=0.50 PerfScore 0.50
G_M5050_IG22:
mov rdi, r14
call CORINFO_HELP_CHECKED_ASSIGN_REF
lea rdi, bword ptr [r14+0x08]
- mov rsi, r13
+ mov rsi, r15
call CORINFO_HELP_CHECKED_ASSIGN_REF
lea rdi, bword ptr [r14+0x10]
- mov rsi, r12
+ mov rsi, r13
call CORINFO_HELP_CHECKED_ASSIGN_REF
lea rdi, bword ptr [r14+0x18]
- mov rsi, r15
+ mov rsi, r12
call CORINFO_HELP_CHECKED_ASSIGN_REF
or dword ptr [rbx+0x18], 1
;; size=48 bbWeight=0.50 PerfScore 4.75
G_M5050_IG23:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M5050_IG24:
mov edi, 39
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
G_M5050_IG25:
mov rax, 0xD1FFAB1E ; code for System.Runtime.ExceptionServices.ExceptionDispatchInfo:Throw():this
call [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Throw():this
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M5050_IG26:
lea rdi, [rbp-0x30]
mov rax, 0xD1FFAB1E ; code for System.Threading.CancellationToken:ThrowOperationCanceledException():this
call [rax]System.Threading.CancellationToken:ThrowOperationCanceledException():this
int3
;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 618, prolog size 25, PerfScore 81.62, instruction count 165, allocated bytes for code 618 (MethodHash=f4acec45) for method System.IO.Pipelines.Pipe:PrepareFlushUnsynchronized(byref,byref,System.Threading.CancellationToken):this (FullOpts)
+; Total bytes of code 585, prolog size 25, PerfScore 82.12, instruction count 166, allocated bytes for code 585 (MethodHash=f4acec45) for method System.IO.Pipelines.Pipe:PrepareFlushUnsynchronized(byref,byref,System.Threading.CancellationToken):this (FullOpts)
; ============================================================
-28 (-15.73 % of base) - System.Xml.Serialization.SourceInfo:op_Inequality(System.Xml.Serialization.SourceInfo,System.Xml.Serialization.SourceInfo):ubyte
; Assembly listing for method System.Xml.Serialization.SourceInfo:op_Inequality(System.Xml.Serialization.SourceInfo,System.Xml.Serialization.SourceInfo):ubyte (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T01] ( 5, 4 ) ref -> r15 class-hnd single-def <System.Xml.Serialization.SourceInfo>
; V01 arg1 [V01,T00] ( 6, 4 ) ref -> rbx class-hnd single-def <System.Xml.Serialization.SourceInfo>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T04] ( 4, 2 ) ubyte -> r14 "Inline return value spill temp"
+; V03 tmp1 [V03,T07] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Xml.Serialization.SourceInfo>
;* V05 tmp3 [V05 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V06 tmp4 [V06,T02] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
; V07 tmp5 [V07,T03] ( 5, 5 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
-; V08 tmp6 [V08,T05] ( 4, 2 ) ubyte -> r14 "Inline return value spill temp"
-; V09 tmp7 [V09,T06] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
-; V10 cse0 [V10,T07] ( 3, 1.50) int -> rdx "CSE #01: moderate"
+; V08 tmp6 [V08,T04] ( 4, 2 ) ubyte -> rax "Inline return value spill temp"
+; V09 tmp7 [V09,T05] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
+; V10 cse0 [V10,T06] ( 3, 1.50) int -> rdx "CSE #01: moderate"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M8008_IG01:
push rbp
push r15
- push r14
push rbx
- push rax
- lea rbp, [rsp+0x20]
+ lea rbp, [rsp+0x10]
mov r15, rdi
mov rbx, rsi
- ;; size=18 bbWeight=1 PerfScore 6.00
+ ;; size=15 bbWeight=1 PerfScore 4.00
G_M8008_IG02:
test r15, r15
- jne SHORT G_M8008_IG05
+ jne SHORT G_M8008_IG06
;; size=5 bbWeight=1 PerfScore 1.25
G_M8008_IG03:
test rbx, rbx
- setne al
- movzx rax, al
- ;; size=9 bbWeight=0.50 PerfScore 0.75
+ jne SHORT G_M8008_IG13
+ ;; size=5 bbWeight=0.50 PerfScore 0.62
G_M8008_IG04:
- add rsp, 8
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
+G_M8008_IG05:
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M8008_IG05:
+ ;; size=5 bbWeight=0.25 PerfScore 0.62
+G_M8008_IG06:
test rbx, rbx
- je SHORT G_M8008_IG10
+ je SHORT G_M8008_IG12
mov rdi, rbx
xor rsi, rsi
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.SourceInfo:Equals(System.Object):ubyte:this
call [rax]System.Xml.Serialization.SourceInfo:Equals(System.Object):ubyte:this
test eax, eax
- je SHORT G_M8008_IG06
- xor r14d, r14d
- jmp SHORT G_M8008_IG11
- ;; size=31 bbWeight=0.50 PerfScore 4.25
-G_M8008_IG06:
+ jne SHORT G_M8008_IG13
mov rdi, gword ptr [r15+0x08]
mov rsi, gword ptr [rbx+0x08]
cmp rdi, rsi
je SHORT G_M8008_IG08
test rdi, rdi
je SHORT G_M8008_IG07
test rsi, rsi
je SHORT G_M8008_IG07
mov edx, dword ptr [rdi+0x08]
cmp edx, dword ptr [rsi+0x08]
jne SHORT G_M8008_IG07
add rdi, 12
add rsi, 12
add edx, edx
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
- mov r14d, eax
jmp SHORT G_M8008_IG09
- ;; size=58 bbWeight=0.50 PerfScore 10.00
+ ;; size=81 bbWeight=0.50 PerfScore 13.00
G_M8008_IG07:
- xor r14d, r14d
+ xor eax, eax
jmp SHORT G_M8008_IG09
- ;; size=5 bbWeight=0.50 PerfScore 1.12
+ ;; size=4 bbWeight=0.50 PerfScore 1.12
G_M8008_IG08:
- mov r14d, 1
- ;; size=6 bbWeight=0.50 PerfScore 0.12
+ mov eax, 1
+ ;; size=5 bbWeight=0.50 PerfScore 0.12
G_M8008_IG09:
- jmp SHORT G_M8008_IG11
- ;; size=2 bbWeight=0.50 PerfScore 1.00
+ test eax, eax
+ je SHORT G_M8008_IG13
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M8008_IG10:
- cmp gword ptr [r15+0x08], 0
- sete r14b
- movzx r14, r14b
- ;; size=13 bbWeight=0.50 PerfScore 2.12
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
G_M8008_IG11:
- test r14d, r14d
- sete al
- movzx rax, al
- ;; size=9 bbWeight=0.50 PerfScore 0.75
-G_M8008_IG12:
- add rsp, 8
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=0.50 PerfScore 1.62
+ ;; size=5 bbWeight=0.25 PerfScore 0.62
+G_M8008_IG12:
+ cmp gword ptr [r15+0x08], 0
+ je SHORT G_M8008_IG10
+ ;; size=7 bbWeight=0.50 PerfScore 2.00
+G_M8008_IG13:
+ mov eax, 1
+ ;; size=5 bbWeight=0.25 PerfScore 0.06
+G_M8008_IG14:
+ pop rbx
+ pop r15
+ pop rbp
+ ret
+ ;; size=5 bbWeight=0.25 PerfScore 0.62
-; Total bytes of code 178, prolog size 12, PerfScore 30.62, instruction count 63, allocated bytes for code 178 (MethodHash=6a7fe0b7) for method System.Xml.Serialization.SourceInfo:op_Inequality(System.Xml.Serialization.SourceInfo,System.Xml.Serialization.SourceInfo):ubyte (FullOpts)
+; Total bytes of code 150, prolog size 9, PerfScore 24.81, instruction count 57, allocated bytes for code 150 (MethodHash=6a7fe0b7) for method System.Xml.Serialization.SourceInfo:op_Inequality(System.Xml.Serialization.SourceInfo,System.Xml.Serialization.SourceInfo):ubyte (FullOpts)
; ============================================================
-25 (-50.00 % of base) - System.Data.ColumnTypeConverter:CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type):ubyte:this
; Assembly listing for method System.Data.ColumnTypeConverter:CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Data.ColumnTypeConverter>
;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.ComponentModel.ITypeDescriptorContext>
-; V02 arg2 [V02,T00] ( 3, 3 ) ref -> rdx class-hnd single-def <System.Type>
+; V02 arg2 [V02,T00] ( 3, 2.25) ref -> rdx class-hnd single-def <System.Type>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T01] ( 3, 2.50) ref -> rcx "CSE #01: aggressive"
;
; Lcl frame size = 8
G_M45673_IG01:
push rax
- ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=1 bbWeight=0.25 PerfScore 0.25
G_M45673_IG02:
- mov rcx, 0xD1FFAB1E ; 'System.String'
- cmp rdx, rcx
- jne SHORT G_M45673_IG05
- ;; size=15 bbWeight=1 PerfScore 1.50
-G_M45673_IG03:
- mov eax, 1
- ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M45673_IG04:
- add rsp, 8
- ret
- ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M45673_IG05:
- mov rax, 0xD1FFAB1E
- cmp rcx, rax
- setne al
+ mov rax, 0xD1FFAB1E ; 'System.String'
+ cmp rdx, rax
+ sete al
movzx rax, al
- ;; size=19 bbWeight=0.50 PerfScore 0.88
-G_M45673_IG06:
+ ;; size=19 bbWeight=0.25 PerfScore 0.44
+G_M45673_IG03:
add rsp, 8
ret
- ;; size=5 bbWeight=0.50 PerfScore 0.62
+ ;; size=5 bbWeight=0.25 PerfScore 0.31
-; Total bytes of code 50, prolog size 1, PerfScore 4.75, instruction count 13, allocated bytes for code 50 (MethodHash=6d854d96) for method System.Data.ColumnTypeConverter:CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type):ubyte:this (FullOpts)
+; Total bytes of code 25, prolog size 1, PerfScore 1.00, instruction count 7, allocated bytes for code 25 (MethodHash=6d854d96) for method System.Data.ColumnTypeConverter:CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type):ubyte:this (FullOpts)
; ============================================================
-25 (-50.00 % of base) - System.Data.PrimaryKeyTypeConverter:CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type):ubyte:this
; Assembly listing for method System.Data.PrimaryKeyTypeConverter:CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Data.PrimaryKeyTypeConverter>
;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.ComponentModel.ITypeDescriptorContext>
-; V02 arg2 [V02,T00] ( 3, 3 ) ref -> rdx class-hnd single-def <System.Type>
+; V02 arg2 [V02,T00] ( 3, 2.25) ref -> rdx class-hnd single-def <System.Type>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T01] ( 3, 2.50) ref -> rcx "CSE #01: aggressive"
;
; Lcl frame size = 8
G_M17449_IG01:
push rax
- ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=1 bbWeight=0.25 PerfScore 0.25
G_M17449_IG02:
- mov rcx, 0xD1FFAB1E ; 'System.String'
- cmp rdx, rcx
- jne SHORT G_M17449_IG05
- ;; size=15 bbWeight=1 PerfScore 1.50
-G_M17449_IG03:
- mov eax, 1
- ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M17449_IG04:
- add rsp, 8
- ret
- ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M17449_IG05:
- mov rax, 0xD1FFAB1E
- cmp rcx, rax
- setne al
+ mov rax, 0xD1FFAB1E ; 'System.String'
+ cmp rdx, rax
+ sete al
movzx rax, al
- ;; size=19 bbWeight=0.50 PerfScore 0.88
-G_M17449_IG06:
+ ;; size=19 bbWeight=0.25 PerfScore 0.44
+G_M17449_IG03:
add rsp, 8
ret
- ;; size=5 bbWeight=0.50 PerfScore 0.62
+ ;; size=5 bbWeight=0.25 PerfScore 0.31
-; Total bytes of code 50, prolog size 1, PerfScore 4.75, instruction count 13, allocated bytes for code 50 (MethodHash=405fbbd6) for method System.Data.PrimaryKeyTypeConverter:CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type):ubyte:this (FullOpts)
+; Total bytes of code 25, prolog size 1, PerfScore 1.00, instruction count 7, allocated bytes for code 25 (MethodHash=405fbbd6) for method System.Data.PrimaryKeyTypeConverter:CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type):ubyte:this (FullOpts)
; ============================================================
-23 (-31.94 % of base) - System.Reflection.Assembly:op_Inequality(System.Reflection.Assembly,System.Reflection.Assembly):ubyte
; Assembly listing for method System.Reflection.Assembly:op_Inequality(System.Reflection.Assembly,System.Reflection.Assembly):ubyte (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 7, 4.50) ref -> rdi class-hnd single-def <System.Reflection.Assembly>
; V01 arg1 [V01,T01] ( 5, 4 ) ref -> rsi class-hnd single-def <System.Reflection.Assembly>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 5, 3 ) ubyte -> rbx "Inline return value spill temp"
+; V03 tmp1 [V03,T02] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M13755_IG01:
push rbp
- push rbx
- push rax
- lea rbp, [rsp+0x10]
- ;; size=8 bbWeight=1 PerfScore 3.50
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M13755_IG02:
test rsi, rsi
je SHORT G_M13755_IG06
;; size=5 bbWeight=1 PerfScore 1.25
G_M13755_IG03:
cmp rdi, rsi
- je SHORT G_M13755_IG05
+ je SHORT G_M13755_IG04
test rdi, rdi
- jne SHORT G_M13755_IG04
- xor ebx, ebx
- jmp SHORT G_M13755_IG07
- ;; size=14 bbWeight=0.50 PerfScore 2.38
-G_M13755_IG04:
+ je SHORT G_M13755_IG07
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
- mov ebx, eax
- jmp SHORT G_M13755_IG07
- ;; size=14 bbWeight=0.50 PerfScore 4.62
+ test eax, eax
+ je SHORT G_M13755_IG07
+ ;; size=24 bbWeight=0.50 PerfScore 5.38
+G_M13755_IG04:
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
G_M13755_IG05:
- mov ebx, 1
- jmp SHORT G_M13755_IG07
- ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M13755_IG06:
- test rdi, rdi
- sete bl
- movzx rbx, bl
- ;; size=9 bbWeight=0.50 PerfScore 0.75
-G_M13755_IG07:
- test ebx, ebx
- sete al
- movzx rax, al
- ;; size=8 bbWeight=1 PerfScore 1.50
-G_M13755_IG08:
- add rsp, 8
- pop rbx
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
+G_M13755_IG06:
+ test rdi, rdi
+ je SHORT G_M13755_IG04
+ ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M13755_IG07:
+ mov eax, 1
+ ;; size=5 bbWeight=0.25 PerfScore 0.06
+G_M13755_IG08:
+ pop rbp
+ ret
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
-; Total bytes of code 72, prolog size 8, PerfScore 17.38, instruction count 29, allocated bytes for code 72 (MethodHash=f229ca44) for method System.Reflection.Assembly:op_Inequality(System.Reflection.Assembly,System.Reflection.Assembly):ubyte (FullOpts)
+; Total bytes of code 49, prolog size 4, PerfScore 9.38, instruction count 21, allocated bytes for code 49 (MethodHash=f229ca44) for method System.Reflection.Assembly:op_Inequality(System.Reflection.Assembly,System.Reflection.Assembly):ubyte (FullOpts)
; ============================================================
-23 (-31.94 % of base) - System.Reflection.ConstructorInfo:op_Inequality(System.Reflection.ConstructorInfo,System.Reflection.ConstructorInfo):ubyte
; Assembly listing for method System.Reflection.ConstructorInfo:op_Inequality(System.Reflection.ConstructorInfo,System.Reflection.ConstructorInfo):ubyte (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 7, 4.50) ref -> rdi class-hnd single-def <System.Reflection.ConstructorInfo>
; V01 arg1 [V01,T01] ( 5, 4 ) ref -> rsi class-hnd single-def <System.Reflection.ConstructorInfo>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 5, 3 ) ubyte -> rbx "Inline return value spill temp"
+; V03 tmp1 [V03,T02] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M65155_IG01:
push rbp
- push rbx
- push rax
- lea rbp, [rsp+0x10]
- ;; size=8 bbWeight=1 PerfScore 3.50
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M65155_IG02:
test rsi, rsi
je SHORT G_M65155_IG06
;; size=5 bbWeight=1 PerfScore 1.25
G_M65155_IG03:
cmp rdi, rsi
- je SHORT G_M65155_IG05
+ je SHORT G_M65155_IG04
test rdi, rdi
- jne SHORT G_M65155_IG04
- xor ebx, ebx
- jmp SHORT G_M65155_IG07
- ;; size=14 bbWeight=0.50 PerfScore 2.38
-G_M65155_IG04:
+ je SHORT G_M65155_IG07
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
- mov ebx, eax
- jmp SHORT G_M65155_IG07
- ;; size=14 bbWeight=0.50 PerfScore 4.62
+ test eax, eax
+ je SHORT G_M65155_IG07
+ ;; size=24 bbWeight=0.50 PerfScore 5.38
+G_M65155_IG04:
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
G_M65155_IG05:
- mov ebx, 1
- jmp SHORT G_M65155_IG07
- ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M65155_IG06:
- test rdi, rdi
- sete bl
- movzx rbx, bl
- ;; size=9 bbWeight=0.50 PerfScore 0.75
-G_M65155_IG07:
- test ebx, ebx
- sete al
- movzx rax, al
- ;; size=8 bbWeight=1 PerfScore 1.50
-G_M65155_IG08:
- add rsp, 8
- pop rbx
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
+G_M65155_IG06:
+ test rdi, rdi
+ je SHORT G_M65155_IG04
+ ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M65155_IG07:
+ mov eax, 1
+ ;; size=5 bbWeight=0.25 PerfScore 0.06
+G_M65155_IG08:
+ pop rbp
+ ret
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
-; Total bytes of code 72, prolog size 8, PerfScore 17.38, instruction count 29, allocated bytes for code 72 (MethodHash=03ca017c) for method System.Reflection.ConstructorInfo:op_Inequality(System.Reflection.ConstructorInfo,System.Reflection.ConstructorInfo):ubyte (FullOpts)
+; Total bytes of code 49, prolog size 4, PerfScore 9.38, instruction count 21, allocated bytes for code 49 (MethodHash=03ca017c) for method System.Reflection.ConstructorInfo:op_Inequality(System.Reflection.ConstructorInfo,System.Reflection.ConstructorInfo):ubyte (FullOpts)
; ============================================================
-23 (-31.94 % of base) - System.Reflection.EventInfo:op_Inequality(System.Reflection.EventInfo,System.Reflection.EventInfo):ubyte
; Assembly listing for method System.Reflection.EventInfo:op_Inequality(System.Reflection.EventInfo,System.Reflection.EventInfo):ubyte (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 7, 4.50) ref -> rdi class-hnd single-def <System.Reflection.EventInfo>
; V01 arg1 [V01,T01] ( 5, 4 ) ref -> rsi class-hnd single-def <System.Reflection.EventInfo>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 5, 3 ) ubyte -> rbx "Inline return value spill temp"
+; V03 tmp1 [V03,T02] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M57543_IG01:
push rbp
- push rbx
- push rax
- lea rbp, [rsp+0x10]
- ;; size=8 bbWeight=1 PerfScore 3.50
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M57543_IG02:
test rsi, rsi
je SHORT G_M57543_IG06
;; size=5 bbWeight=1 PerfScore 1.25
G_M57543_IG03:
cmp rdi, rsi
- je SHORT G_M57543_IG05
+ je SHORT G_M57543_IG04
test rdi, rdi
- jne SHORT G_M57543_IG04
- xor ebx, ebx
- jmp SHORT G_M57543_IG07
- ;; size=14 bbWeight=0.50 PerfScore 2.38
-G_M57543_IG04:
+ je SHORT G_M57543_IG07
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
- mov ebx, eax
- jmp SHORT G_M57543_IG07
- ;; size=14 bbWeight=0.50 PerfScore 4.62
+ test eax, eax
+ je SHORT G_M57543_IG07
+ ;; size=24 bbWeight=0.50 PerfScore 5.38
+G_M57543_IG04:
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
G_M57543_IG05:
- mov ebx, 1
- jmp SHORT G_M57543_IG07
- ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M57543_IG06:
- test rdi, rdi
- sete bl
- movzx rbx, bl
- ;; size=9 bbWeight=0.50 PerfScore 0.75
-G_M57543_IG07:
- test ebx, ebx
- sete al
- movzx rax, al
- ;; size=8 bbWeight=1 PerfScore 1.50
-G_M57543_IG08:
- add rsp, 8
- pop rbx
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
+G_M57543_IG06:
+ test rdi, rdi
+ je SHORT G_M57543_IG04
+ ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M57543_IG07:
+ mov eax, 1
+ ;; size=5 bbWeight=0.25 PerfScore 0.06
+G_M57543_IG08:
+ pop rbp
+ ret
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
-; Total bytes of code 72, prolog size 8, PerfScore 17.38, instruction count 29, allocated bytes for code 72 (MethodHash=c9c11f38) for method System.Reflection.EventInfo:op_Inequality(System.Reflection.EventInfo,System.Reflection.EventInfo):ubyte (FullOpts)
+; Total bytes of code 49, prolog size 4, PerfScore 9.38, instruction count 21, allocated bytes for code 49 (MethodHash=c9c11f38) for method System.Reflection.EventInfo:op_Inequality(System.Reflection.EventInfo,System.Reflection.EventInfo):ubyte (FullOpts)
; ============================================================
-23 (-31.94 % of base) - System.Reflection.FieldInfo:op_Inequality(System.Reflection.FieldInfo,System.Reflection.FieldInfo):ubyte
; Assembly listing for method System.Reflection.FieldInfo:op_Inequality(System.Reflection.FieldInfo,System.Reflection.FieldInfo):ubyte (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 7, 4.50) ref -> rdi class-hnd single-def <System.Reflection.FieldInfo>
; V01 arg1 [V01,T01] ( 5, 4 ) ref -> rsi class-hnd single-def <System.Reflection.FieldInfo>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 5, 3 ) ubyte -> rbx "Inline return value spill temp"
+; V03 tmp1 [V03,T02] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M14889_IG01:
push rbp
- push rbx
- push rax
- lea rbp, [rsp+0x10]
- ;; size=8 bbWeight=1 PerfScore 3.50
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M14889_IG02:
test rsi, rsi
je SHORT G_M14889_IG06
;; size=5 bbWeight=1 PerfScore 1.25
G_M14889_IG03:
cmp rdi, rsi
- je SHORT G_M14889_IG05
+ je SHORT G_M14889_IG04
test rdi, rdi
- jne SHORT G_M14889_IG04
- xor ebx, ebx
- jmp SHORT G_M14889_IG07
- ;; size=14 bbWeight=0.50 PerfScore 2.38
-G_M14889_IG04:
+ je SHORT G_M14889_IG07
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
- mov ebx, eax
- jmp SHORT G_M14889_IG07
- ;; size=14 bbWeight=0.50 PerfScore 4.62
+ test eax, eax
+ je SHORT G_M14889_IG07
+ ;; size=24 bbWeight=0.50 PerfScore 5.38
+G_M14889_IG04:
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
G_M14889_IG05:
- mov ebx, 1
- jmp SHORT G_M14889_IG07
- ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M14889_IG06:
- test rdi, rdi
- sete bl
- movzx rbx, bl
- ;; size=9 bbWeight=0.50 PerfScore 0.75
-G_M14889_IG07:
- test ebx, ebx
- sete al
- movzx rax, al
- ;; size=8 bbWeight=1 PerfScore 1.50
-G_M14889_IG08:
- add rsp, 8
- pop rbx
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
+G_M14889_IG06:
+ test rdi, rdi
+ je SHORT G_M14889_IG04
+ ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M14889_IG07:
+ mov eax, 1
+ ;; size=5 bbWeight=0.25 PerfScore 0.06
+G_M14889_IG08:
+ pop rbp
+ ret
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
-; Total bytes of code 72, prolog size 8, PerfScore 17.38, instruction count 29, allocated bytes for code 72 (MethodHash=3005c5d6) for method System.Reflection.FieldInfo:op_Inequality(System.Reflection.FieldInfo,System.Reflection.FieldInfo):ubyte (FullOpts)
+; Total bytes of code 49, prolog size 4, PerfScore 9.38, instruction count 21, allocated bytes for code 49 (MethodHash=3005c5d6) for method System.Reflection.FieldInfo:op_Inequality(System.Reflection.FieldInfo,System.Reflection.FieldInfo):ubyte (FullOpts)
; ============================================================
-23 (-31.94 % of base) - System.Reflection.MemberInfo:op_Inequality(System.Reflection.MemberInfo,System.Reflection.MemberInfo):ubyte
; Assembly listing for method System.Reflection.MemberInfo:op_Inequality(System.Reflection.MemberInfo,System.Reflection.MemberInfo):ubyte (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 7, 4.50) ref -> rdi class-hnd single-def <System.Reflection.MemberInfo>
; V01 arg1 [V01,T01] ( 5, 4 ) ref -> rsi class-hnd single-def <System.Reflection.MemberInfo>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 5, 3 ) ubyte -> rbx "Inline return value spill temp"
+; V03 tmp1 [V03,T02] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M38971_IG01:
push rbp
- push rbx
- push rax
- lea rbp, [rsp+0x10]
- ;; size=8 bbWeight=1 PerfScore 3.50
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M38971_IG02:
test rsi, rsi
je SHORT G_M38971_IG06
;; size=5 bbWeight=1 PerfScore 1.25
G_M38971_IG03:
cmp rdi, rsi
- je SHORT G_M38971_IG05
+ je SHORT G_M38971_IG04
test rdi, rdi
- jne SHORT G_M38971_IG04
- xor ebx, ebx
- jmp SHORT G_M38971_IG07
- ;; size=14 bbWeight=0.50 PerfScore 2.38
-G_M38971_IG04:
+ je SHORT G_M38971_IG07
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
- mov ebx, eax
- jmp SHORT G_M38971_IG07
- ;; size=14 bbWeight=0.50 PerfScore 4.62
+ test eax, eax
+ je SHORT G_M38971_IG07
+ ;; size=24 bbWeight=0.50 PerfScore 5.38
+G_M38971_IG04:
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
G_M38971_IG05:
- mov ebx, 1
- jmp SHORT G_M38971_IG07
- ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M38971_IG06:
- test rdi, rdi
- sete bl
- movzx rbx, bl
- ;; size=9 bbWeight=0.50 PerfScore 0.75
-G_M38971_IG07:
- test ebx, ebx
- sete al
- movzx rax, al
- ;; size=8 bbWeight=1 PerfScore 1.50
-G_M38971_IG08:
- add rsp, 8
- pop rbx
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
+G_M38971_IG06:
+ test rdi, rdi
+ je SHORT G_M38971_IG04
+ ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M38971_IG07:
+ mov eax, 1
+ ;; size=5 bbWeight=0.25 PerfScore 0.06
+G_M38971_IG08:
+ pop rbp
+ ret
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
-; Total bytes of code 72, prolog size 8, PerfScore 17.38, instruction count 29, allocated bytes for code 72 (MethodHash=664067c4) for method System.Reflection.MemberInfo:op_Inequality(System.Reflection.MemberInfo,System.Reflection.MemberInfo):ubyte (FullOpts)
+; Total bytes of code 49, prolog size 4, PerfScore 9.38, instruction count 21, allocated bytes for code 49 (MethodHash=664067c4) for method System.Reflection.MemberInfo:op_Inequality(System.Reflection.MemberInfo,System.Reflection.MemberInfo):ubyte (FullOpts)
; ============================================================
-23 (-31.94 % of base) - System.Reflection.MethodBase:op_Inequality(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte
; Assembly listing for method System.Reflection.MethodBase:op_Inequality(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 7, 4.50) ref -> rdi class-hnd single-def <System.Reflection.MethodBase>
; V01 arg1 [V01,T01] ( 5, 4 ) ref -> rsi class-hnd single-def <System.Reflection.MethodBase>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 5, 3 ) ubyte -> rbx "Inline return value spill temp"
+; V03 tmp1 [V03,T02] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M38607_IG01:
push rbp
- push rbx
- push rax
- lea rbp, [rsp+0x10]
- ;; size=8 bbWeight=1 PerfScore 3.50
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M38607_IG02:
test rsi, rsi
je SHORT G_M38607_IG06
;; size=5 bbWeight=1 PerfScore 1.25
G_M38607_IG03:
cmp rdi, rsi
- je SHORT G_M38607_IG05
+ je SHORT G_M38607_IG04
test rdi, rdi
- jne SHORT G_M38607_IG04
- xor ebx, ebx
- jmp SHORT G_M38607_IG07
- ;; size=14 bbWeight=0.50 PerfScore 2.38
-G_M38607_IG04:
+ je SHORT G_M38607_IG07
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
- mov ebx, eax
- jmp SHORT G_M38607_IG07
- ;; size=14 bbWeight=0.50 PerfScore 4.62
+ test eax, eax
+ je SHORT G_M38607_IG07
+ ;; size=24 bbWeight=0.50 PerfScore 5.38
+G_M38607_IG04:
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
G_M38607_IG05:
- mov ebx, 1
- jmp SHORT G_M38607_IG07
- ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M38607_IG06:
- test rdi, rdi
- sete bl
- movzx rbx, bl
- ;; size=9 bbWeight=0.50 PerfScore 0.75
-G_M38607_IG07:
- test ebx, ebx
- sete al
- movzx rax, al
- ;; size=8 bbWeight=1 PerfScore 1.50
-G_M38607_IG08:
- add rsp, 8
- pop rbx
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
+G_M38607_IG06:
+ test rdi, rdi
+ je SHORT G_M38607_IG04
+ ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M38607_IG07:
+ mov eax, 1
+ ;; size=5 bbWeight=0.25 PerfScore 0.06
+G_M38607_IG08:
+ pop rbp
+ ret
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
-; Total bytes of code 72, prolog size 8, PerfScore 17.38, instruction count 29, allocated bytes for code 72 (MethodHash=fc7e6930) for method System.Reflection.MethodBase:op_Inequality(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte (FullOpts)
+; Total bytes of code 49, prolog size 4, PerfScore 9.38, instruction count 21, allocated bytes for code 49 (MethodHash=fc7e6930) for method System.Reflection.MethodBase:op_Inequality(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte (FullOpts)
; ============================================================
-23 (-31.94 % of base) - System.Reflection.MethodInfo:op_Inequality(System.Reflection.MethodInfo,System.Reflection.MethodInfo):ubyte
; Assembly listing for method System.Reflection.MethodInfo:op_Inequality(System.Reflection.MethodInfo,System.Reflection.MethodInfo):ubyte (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 7, 4.50) ref -> rdi class-hnd single-def <System.Reflection.MethodInfo>
; V01 arg1 [V01,T01] ( 5, 4 ) ref -> rsi class-hnd single-def <System.Reflection.MethodInfo>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 5, 3 ) ubyte -> rbx "Inline return value spill temp"
+; V03 tmp1 [V03,T02] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M44692_IG01:
push rbp
- push rbx
- push rax
- lea rbp, [rsp+0x10]
- ;; size=8 bbWeight=1 PerfScore 3.50
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M44692_IG02:
test rsi, rsi
je SHORT G_M44692_IG06
;; size=5 bbWeight=1 PerfScore 1.25
G_M44692_IG03:
cmp rdi, rsi
- je SHORT G_M44692_IG05
+ je SHORT G_M44692_IG04
test rdi, rdi
- jne SHORT G_M44692_IG04
- xor ebx, ebx
- jmp SHORT G_M44692_IG07
- ;; size=14 bbWeight=0.50 PerfScore 2.38
-G_M44692_IG04:
+ je SHORT G_M44692_IG07
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
- mov ebx, eax
- jmp SHORT G_M44692_IG07
- ;; size=14 bbWeight=0.50 PerfScore 4.62
+ test eax, eax
+ je SHORT G_M44692_IG07
+ ;; size=24 bbWeight=0.50 PerfScore 5.38
+G_M44692_IG04:
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
G_M44692_IG05:
- mov ebx, 1
- jmp SHORT G_M44692_IG07
- ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M44692_IG06:
- test rdi, rdi
- sete bl
- movzx rbx, bl
- ;; size=9 bbWeight=0.50 PerfScore 0.75
-G_M44692_IG07:
- test ebx, ebx
- sete al
- movzx rax, al
- ;; size=8 bbWeight=1 PerfScore 1.50
-G_M44692_IG08:
- add rsp, 8
- pop rbx
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
+G_M44692_IG06:
+ test rdi, rdi
+ je SHORT G_M44692_IG04
+ ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M44692_IG07:
+ mov eax, 1
+ ;; size=5 bbWeight=0.25 PerfScore 0.06
+G_M44692_IG08:
+ pop rbp
+ ret
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
-; Total bytes of code 72, prolog size 8, PerfScore 17.38, instruction count 29, allocated bytes for code 72 (MethodHash=e373516b) for method System.Reflection.MethodInfo:op_Inequality(System.Reflection.MethodInfo,System.Reflection.MethodInfo):ubyte (FullOpts)
+; Total bytes of code 49, prolog size 4, PerfScore 9.38, instruction count 21, allocated bytes for code 49 (MethodHash=e373516b) for method System.Reflection.MethodInfo:op_Inequality(System.Reflection.MethodInfo,System.Reflection.MethodInfo):ubyte (FullOpts)
; ============================================================
-23 (-31.94 % of base) - System.Reflection.Module:op_Inequality(System.Reflection.Module,System.Reflection.Module):ubyte
; Assembly listing for method System.Reflection.Module:op_Inequality(System.Reflection.Module,System.Reflection.Module):ubyte (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 7, 4.50) ref -> rdi class-hnd single-def <System.Reflection.Module>
; V01 arg1 [V01,T01] ( 5, 4 ) ref -> rsi class-hnd single-def <System.Reflection.Module>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 5, 3 ) ubyte -> rbx "Inline return value spill temp"
+; V03 tmp1 [V03,T02] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M63807_IG01:
push rbp
- push rbx
- push rax
- lea rbp, [rsp+0x10]
- ;; size=8 bbWeight=1 PerfScore 3.50
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M63807_IG02:
test rsi, rsi
je SHORT G_M63807_IG06
;; size=5 bbWeight=1 PerfScore 1.25
G_M63807_IG03:
cmp rdi, rsi
- je SHORT G_M63807_IG05
+ je SHORT G_M63807_IG04
test rdi, rdi
- jne SHORT G_M63807_IG04
- xor ebx, ebx
- jmp SHORT G_M63807_IG07
- ;; size=14 bbWeight=0.50 PerfScore 2.38
-G_M63807_IG04:
+ je SHORT G_M63807_IG07
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
- mov ebx, eax
- jmp SHORT G_M63807_IG07
- ;; size=14 bbWeight=0.50 PerfScore 4.62
+ test eax, eax
+ je SHORT G_M63807_IG07
+ ;; size=24 bbWeight=0.50 PerfScore 5.38
+G_M63807_IG04:
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
G_M63807_IG05:
- mov ebx, 1
- jmp SHORT G_M63807_IG07
- ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M63807_IG06:
- test rdi, rdi
- sete bl
- movzx rbx, bl
- ;; size=9 bbWeight=0.50 PerfScore 0.75
-G_M63807_IG07:
- test ebx, ebx
- sete al
- movzx rax, al
- ;; size=8 bbWeight=1 PerfScore 1.50
-G_M63807_IG08:
- add rsp, 8
- pop rbx
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
+G_M63807_IG06:
+ test rdi, rdi
+ je SHORT G_M63807_IG04
+ ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M63807_IG07:
+ mov eax, 1
+ ;; size=5 bbWeight=0.25 PerfScore 0.06
+G_M63807_IG08:
+ pop rbp
+ ret
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
-; Total bytes of code 72, prolog size 8, PerfScore 17.38, instruction count 29, allocated bytes for code 72 (MethodHash=b11d06c0) for method System.Reflection.Module:op_Inequality(System.Reflection.Module,System.Reflection.Module):ubyte (FullOpts)
+; Total bytes of code 49, prolog size 4, PerfScore 9.38, instruction count 21, allocated bytes for code 49 (MethodHash=b11d06c0) for method System.Reflection.Module:op_Inequality(System.Reflection.Module,System.Reflection.Module):ubyte (FullOpts)
; ============================================================
-23 (-31.94 % of base) - System.Reflection.PropertyInfo:op_Inequality(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo):ubyte
; Assembly listing for method System.Reflection.PropertyInfo:op_Inequality(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo):ubyte (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 7, 4.50) ref -> rdi class-hnd single-def <System.Reflection.PropertyInfo>
; V01 arg1 [V01,T01] ( 5, 4 ) ref -> rsi class-hnd single-def <System.Reflection.PropertyInfo>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 5, 3 ) ubyte -> rbx "Inline return value spill temp"
+; V03 tmp1 [V03,T02] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M34892_IG01:
push rbp
- push rbx
- push rax
- lea rbp, [rsp+0x10]
- ;; size=8 bbWeight=1 PerfScore 3.50
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M34892_IG02:
test rsi, rsi
je SHORT G_M34892_IG06
;; size=5 bbWeight=1 PerfScore 1.25
G_M34892_IG03:
cmp rdi, rsi
- je SHORT G_M34892_IG05
+ je SHORT G_M34892_IG04
test rdi, rdi
- jne SHORT G_M34892_IG04
- xor ebx, ebx
- jmp SHORT G_M34892_IG07
- ;; size=14 bbWeight=0.50 PerfScore 2.38
-G_M34892_IG04:
+ je SHORT G_M34892_IG07
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
- mov ebx, eax
- jmp SHORT G_M34892_IG07
- ;; size=14 bbWeight=0.50 PerfScore 4.62
+ test eax, eax
+ je SHORT G_M34892_IG07
+ ;; size=24 bbWeight=0.50 PerfScore 5.38
+G_M34892_IG04:
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
G_M34892_IG05:
- mov ebx, 1
- jmp SHORT G_M34892_IG07
- ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M34892_IG06:
- test rdi, rdi
- sete bl
- movzx rbx, bl
- ;; size=9 bbWeight=0.50 PerfScore 0.75
-G_M34892_IG07:
- test ebx, ebx
- sete al
- movzx rax, al
- ;; size=8 bbWeight=1 PerfScore 1.50
-G_M34892_IG08:
- add rsp, 8
- pop rbx
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
+G_M34892_IG06:
+ test rdi, rdi
+ je SHORT G_M34892_IG04
+ ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M34892_IG07:
+ mov eax, 1
+ ;; size=5 bbWeight=0.25 PerfScore 0.06
+G_M34892_IG08:
+ pop rbp
+ ret
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
-; Total bytes of code 72, prolog size 8, PerfScore 17.38, instruction count 29, allocated bytes for code 72 (MethodHash=7d6977b3) for method System.Reflection.PropertyInfo:op_Inequality(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo):ubyte (FullOpts)
+; Total bytes of code 49, prolog size 4, PerfScore 9.38, instruction count 21, allocated bytes for code 49 (MethodHash=7d6977b3) for method System.Reflection.PropertyInfo:op_Inequality(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo):ubyte (FullOpts)
; ============================================================
-22 (-5.28 % of base) - System.Data.XDRSchema:IsTextOnlyContent(System.Xml.XmlElement):ubyte
; Assembly listing for method System.Data.XDRSchema:IsTextOnlyContent(System.Xml.XmlElement):ubyte (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 5 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 5, 4.50) ref -> rbx class-hnd single-def <System.Xml.XmlElement>
; V01 loc0 [V01,T01] ( 13, 4.75) ref -> r14 class-hnd exact single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V03 tmp1 [V03,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V04 tmp2 [V04,T07] ( 3, 1.50) ubyte -> rdi "Inline return value spill temp"
+;* V03 tmp1 [V03,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V04 tmp2 [V04,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V05 tmp3 [V05,T02] ( 3, 3 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
;* V07 tmp5 [V07 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
;* V09 tmp7 [V09 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V10 tmp8 [V10 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V11 tmp9 [V11,T05] ( 2, 2 ) int -> rax "spilling unroll qmark"
;* V12 tmp10 [V12 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
;* V13 tmp11 [V13 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V14 tmp12 [V14 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V15 tmp13 [V15,T06] ( 2, 2 ) int -> rax "spilling unroll qmark"
; V16 tmp14 [V16,T11] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
; V17 cse0 [V17,T04] ( 7, 2.25) int -> r13 "CSE #02: moderate"
; V18 cse1 [V18,T03] ( 3, 2.50) long -> r15 "CSE #01: aggressive"
; V19 rat0 [V19,T09] ( 3, 3 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V20 rat1 [V20,T10] ( 3, 3 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
G_M1327_IG01:
push rbp
push r15
push r14
push r13
push rbx
lea rbp, [rsp+0x20]
mov rbx, rdi
;; size=16 bbWeight=1 PerfScore 5.75
G_M1327_IG02:
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; 'content'
mov r15, qword ptr [rbx]
mov rax, qword ptr [r15+0x80]
call [rax+0x38]System.Xml.XmlElement:GetAttribute(System.String):System.String:this
mov r14, rax
test r14, r14
- jne SHORT G_M1327_IG04
+ jne SHORT G_M1327_IG06
;; size=34 bbWeight=1 PerfScore 9.00
G_M1327_IG03:
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; 'type'
mov rdx, 0xD1FFAB1E ; 'urn:schemas-microsoft-com:datatypes'
mov rax, qword ptr [r15+0x88]
call [rax+0x30]System.Xml.XmlElement:GetAttribute(System.String,System.String):System.String:this
test rax, rax
- je G_M1327_IG18
+ je SHORT G_M1327_IG04
cmp dword ptr [rax+0x08], 0
- sete dil
- movzx rdi, dil
- jmp G_M1327_IG19
- ;; size=59 bbWeight=0.50 PerfScore 6.62
+ jne G_M1327_IG17
+ ;; size=48 bbWeight=0.50 PerfScore 5.50
G_M1327_IG04:
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
+G_M1327_IG05:
+ pop rbx
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=9 bbWeight=0.25 PerfScore 0.88
+G_M1327_IG06:
mov r13d, dword ptr [r14+0x08]
test r13d, r13d
je SHORT G_M1327_IG03
;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M1327_IG05:
- cmp r13d, 5
- jne SHORT G_M1327_IG07
- ;; size=6 bbWeight=0.25 PerfScore 0.31
-G_M1327_IG06:
- mov rax, 0xD1FFAB1E
- xor rax, qword ptr [r14+0x0C]
- mov edi, dword ptr [r14+0x12]
- xor edi, 0xD1FFAB1E
- or rax, rdi
- je G_M1327_IG16
- ;; size=33 bbWeight=0.12 PerfScore 0.84
G_M1327_IG07:
- cmp r13d, 7
+ cmp r13d, 5
jne SHORT G_M1327_IG09
;; size=6 bbWeight=0.25 PerfScore 0.31
G_M1327_IG08:
mov rax, 0xD1FFAB1E
xor rax, qword ptr [r14+0x0C]
- mov rdi, 0xD1FFAB1E
- xor rdi, qword ptr [r14+0x12]
+ mov edi, dword ptr [r14+0x12]
+ xor edi, 0xD1FFAB1E
or rax, rdi
- je G_M1327_IG16
- ;; size=37 bbWeight=0.12 PerfScore 0.97
+ je G_M1327_IG19
+ ;; size=33 bbWeight=0.12 PerfScore 0.84
G_M1327_IG09:
- cmp r13d, 11
+ cmp r13d, 7
jne SHORT G_M1327_IG11
;; size=6 bbWeight=0.25 PerfScore 0.31
G_M1327_IG10:
+ mov rax, 0xD1FFAB1E
+ xor rax, qword ptr [r14+0x0C]
+ mov rdi, 0xD1FFAB1E
+ xor rdi, qword ptr [r14+0x12]
+ or rax, rdi
+ je G_M1327_IG19
+ ;; size=37 bbWeight=0.12 PerfScore 0.97
+G_M1327_IG11:
+ cmp r13d, 11
+ jne SHORT G_M1327_IG13
+ ;; size=6 bbWeight=0.25 PerfScore 0.31
+G_M1327_IG12:
vmovups xmm0, xmmword ptr [r14+0x0C]
vpxor xmm0, xmm0, xmmword ptr [reloc @RWD00]
vmovups xmm1, xmmword ptr [r14+0x12]
vpxor xmm1, xmm1, xmmword ptr [reloc @RWD16]
vpor xmm0, xmm1, xmm0
vptest xmm0, xmm0
sete al
movzx rax, al
test eax, eax
- jne SHORT G_M1327_IG16
+ jne SHORT G_M1327_IG19
;; size=47 bbWeight=0.50 PerfScore 8.92
-G_M1327_IG11:
+G_M1327_IG13:
cmp r13d, 5
- jne SHORT G_M1327_IG13
+ jne SHORT G_M1327_IG15
;; size=6 bbWeight=0.25 PerfScore 0.31
-G_M1327_IG12:
+G_M1327_IG14:
mov rax, 0xD1FFAB1E
xor rax, qword ptr [r14+0x0C]
mov edi, dword ptr [r14+0x12]
xor edi, 0xD1FFAB1E
or rax, rdi
- je SHORT G_M1327_IG16
+ je SHORT G_M1327_IG19
;; size=29 bbWeight=0.12 PerfScore 0.84
-G_M1327_IG13:
+G_M1327_IG15:
cmp r13d, 8
jne SHORT G_M1327_IG21
;; size=6 bbWeight=0.25 PerfScore 0.31
-G_M1327_IG14:
+G_M1327_IG16:
vmovups xmm0, xmmword ptr [r14+0x0C]
vpxor xmm0, xmm0, xmmword ptr [reloc @RWD32]
vptest xmm0, xmm0
sete al
movzx rax, al
test eax, eax
je SHORT G_M1327_IG21
+ ;; size=29 bbWeight=0.50 PerfScore 5.75
+G_M1327_IG17:
mov eax, 1
- ;; size=34 bbWeight=0.50 PerfScore 5.88
-G_M1327_IG15:
+ ;; size=5 bbWeight=0.25 PerfScore 0.06
+G_M1327_IG18:
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=9 bbWeight=0.50 PerfScore 1.75
-G_M1327_IG16:
+ ;; size=9 bbWeight=0.25 PerfScore 0.88
+G_M1327_IG19:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M1327_IG17:
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=9 bbWeight=0.50 PerfScore 1.75
-G_M1327_IG18:
- mov edi, 1
- ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M1327_IG19:
- test edi, edi
- sete al
- movzx rax, al
- ;; size=8 bbWeight=0.50 PerfScore 0.75
G_M1327_IG20:
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=9 bbWeight=0.50 PerfScore 1.75
G_M1327_IG21:
mov edi, 0x6D82
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for System.Data.ExceptionBuilder:InvalidAttributeValue(System.String,System.String):System.Exception
call [rax]System.Data.ExceptionBuilder:InvalidAttributeValue(System.String,System.String):System.Exception
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=47 bbWeight=0 PerfScore 0.00
RWD00 dq 006D0065006C0065h, 004F0074006E0065h
RWD16 dq 0074006E0065006Dh, 0079006C006E004Fh
RWD32 dq 0074007800650074h, 0079006C006E004Fh
-; Total bytes of code 417, prolog size 13, PerfScore 48.26, instruction count 108, allocated bytes for code 417 (MethodHash=9ffcfad0) for method System.Data.XDRSchema:IsTextOnlyContent(System.Xml.XmlElement):ubyte (FullOpts)
+; Total bytes of code 395, prolog size 13, PerfScore 44.51, instruction count 103, allocated bytes for code 395 (MethodHash=9ffcfad0) for method System.Data.XDRSchema:IsTextOnlyContent(System.Xml.XmlElement):ubyte (FullOpts)
; ============================================================
-21 (-41.18 % of base) - System.ModuleHandle:op_Inequality(System.ModuleHandle,System.ModuleHandle):ubyte
; Assembly listing for method System.ModuleHandle:op_Inequality(System.ModuleHandle,System.ModuleHandle):ubyte (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; 3 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.ModuleHandle>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.ModuleHandle>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 2 ) ubyte -> rax "Inline return value spill temp"
+;* V03 tmp1 [V03,T02] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Reflection.RuntimeModule>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Reflection.RuntimeModule>
; V06 tmp4 [V06,T01] ( 3, 2.50) ref -> rdi single-def "field V00.m_ptr (fldOffset=0x0)" P-INDEP
-; V07 tmp5 [V07,T00] ( 4, 2.50) ref -> rsi single-def "field V01.m_ptr (fldOffset=0x0)" P-INDEP
+; V07 tmp5 [V07,T00] ( 3, 2 ) ref -> rsi single-def "field V01.m_ptr (fldOffset=0x0)" P-INDEP
;
; Lcl frame size = 0
G_M7260_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M7260_IG02:
test rdi, rdi
- je SHORT G_M7260_IG04
+ je SHORT G_M7260_IG06
;; size=5 bbWeight=1 PerfScore 1.25
G_M7260_IG03:
- xor eax, eax
- xor ecx, ecx
- test rsi, rsi
- cmovne eax, ecx
- mov ecx, 1
cmp rsi, rdi
- cmove eax, ecx
- jmp SHORT G_M7260_IG05
- ;; size=23 bbWeight=0.50 PerfScore 1.88
+ je SHORT G_M7260_IG07
+ ;; size=5 bbWeight=0.50 PerfScore 0.62
G_M7260_IG04:
- test rsi, rsi
- sete al
- movzx rax, al
- ;; size=9 bbWeight=0.50 PerfScore 0.75
+ mov eax, 1
+ ;; size=5 bbWeight=0.25 PerfScore 0.06
G_M7260_IG05:
- test eax, eax
- sete al
- movzx rax, al
- ;; size=8 bbWeight=1 PerfScore 1.50
-G_M7260_IG06:
pop rbp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
+G_M7260_IG06:
+ test rsi, rsi
+ jne SHORT G_M7260_IG04
+ ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M7260_IG07:
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
+G_M7260_IG08:
+ pop rbp
+ ret
+ ;; size=2 bbWeight=0.25 PerfScore 0.38
-; Total bytes of code 51, prolog size 4, PerfScore 8.12, instruction count 20, allocated bytes for code 51 (MethodHash=073ae3a3) for method System.ModuleHandle:op_Inequality(System.ModuleHandle,System.ModuleHandle):ubyte (FullOpts)
+; Total bytes of code 30, prolog size 4, PerfScore 4.62, instruction count 14, allocated bytes for code 30 (MethodHash=073ae3a3) for method System.ModuleHandle:op_Inequality(System.ModuleHandle,System.ModuleHandle):ubyte (FullOpts)
; ============================================================
-21 (-6.02 % of base) - System.Net.Http.RuntimeSettingParser:QueryRuntimeSettingInt32(System.String,System.String,int):int
; Assembly listing for method System.Net.Http.RuntimeSettingParser:QueryRuntimeSettingInt32(System.String,System.String,int):int (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; 3 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 3, 3 ) ref -> rdi class-hnd single-def <System.String>
; V01 arg1 [V01,T01] ( 3, 2.50) ref -> rbx class-hnd single-def <System.String>
; V02 arg2 [V02,T02] ( 3, 2.50) int -> r15 single-def
;* V03 loc0 [V03 ] ( 0, 0 ) int -> zero-ref
; V04 loc1 [V04,T08] ( 3, 1.50) ref -> r14 class-hnd exact <System.String>
-; V05 loc2 [V05,T09] ( 3, 1.50) ref -> r13 class-hnd single-def <System.IConvertible>
+; V05 loc2 [V05,T09] ( 3, 1.50) ref -> r14 class-hnd single-def <System.IConvertible>
; V06 loc3 [V06,T03] ( 7, 4 ) ref -> r14 class-hnd single-def <System.Object>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) int -> zero-ref "spilling qmarkNull"
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.String>
; V10 tmp3 [V10,T04] ( 3, 3 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.Globalization.NumberFormatInfo>
;* V11 tmp4 [V11 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V12 tmp5 [V12 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V13 tmp6 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V14 tmp7 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V15 tmp8 [V15,T05] ( 2, 2 ) byref -> r13 single-def "Inlining Arg"
-; V16 tmp9 [V16,T07] ( 2, 2 ) int -> r14 "Inlining Arg"
+; V15 tmp8 [V15,T05] ( 2, 2 ) byref -> rbx single-def "Inlining Arg"
+; V16 tmp9 [V16,T07] ( 2, 2 ) int -> r15 "Inlining Arg"
; V17 tmp10 [V17,T10] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-; V18 tmp11 [V18 ] ( 2, 1 ) int -> [rbp-0x28] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+; V18 tmp11 [V18 ] ( 2, 1 ) int -> [rbp-0x20] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V19 tmp12 [V19,T12] ( 3, 1 ) int -> rax "Inline stloc first use temp"
;* V20 tmp13 [V20 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V21 tmp14 [V21 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
;* V22 tmp15 [V22 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-; V23 tmp16 [V23,T11] ( 3, 1 ) byref -> r13 single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-; V24 tmp17 [V24,T13] ( 3, 1 ) int -> r14 "field V12._length (fldOffset=0x8)" P-INDEP
-; V25 tmp18 [V25,T14] ( 2, 1 ) byref -> r13 single-def "field V13._reference (fldOffset=0x0)" P-INDEP
-; V26 tmp19 [V26,T15] ( 2, 1 ) int -> r14 "field V13._length (fldOffset=0x8)" P-INDEP
+; V23 tmp16 [V23,T11] ( 3, 1 ) byref -> rbx single-def "field V12._reference (fldOffset=0x0)" P-INDEP
+; V24 tmp17 [V24,T13] ( 3, 1 ) int -> r15 "field V12._length (fldOffset=0x8)" P-INDEP
+; V25 tmp18 [V25,T14] ( 2, 1 ) byref -> rbx single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+; V26 tmp19 [V26,T15] ( 2, 1 ) int -> r15 "field V13._length (fldOffset=0x8)" P-INDEP
;* V27 tmp20 [V27 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP
;* V28 tmp21 [V28 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
; V29 tmp22 [V29,T06] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M30760_IG01:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 16
- lea rbp, [rsp+0x30]
+ push rax
+ lea rbp, [rsp+0x20]
mov rbx, rsi
mov r15d, edx
- ;; size=23 bbWeight=1 PerfScore 6.25
+ ;; size=18 bbWeight=1 PerfScore 6.00
G_M30760_IG02:
mov rax, 0xD1FFAB1E ; code for System.AppContext:GetData(System.String):System.Object
call [rax]System.AppContext:GetData(System.String):System.Object
mov r14, rax
test r14, r14
- je G_M30760_IG11
- ;; size=24 bbWeight=1 PerfScore 4.75
+ je SHORT G_M30760_IG07
+ ;; size=20 bbWeight=1 PerfScore 4.75
G_M30760_IG03:
mov rax, 0xD1FFAB1E ; System.UInt32
cmp qword ptr [r14], rax
jne SHORT G_M30760_IG06
;; size=15 bbWeight=0.25 PerfScore 1.06
G_M30760_IG04:
mov eax, dword ptr [r14+0x08]
;; size=4 bbWeight=0.50 PerfScore 1.00
G_M30760_IG05:
- add rsp, 16
+ add rsp, 8
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0.50 PerfScore 1.88
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M30760_IG06:
- mov rax, 0xD1FFAB1E ; System.String
- cmp qword ptr [r14], rax
- jne SHORT G_M30760_IG11
+ mov rsi, 0xD1FFAB1E ; System.String
+ cmp qword ptr [r14], rsi
+ je SHORT G_M30760_IG11
;; size=15 bbWeight=0.25 PerfScore 1.06
G_M30760_IG07:
- mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_InvariantInfo():System.Globalization.NumberFormatInfo
- call [rax]System.Globalization.NumberFormatInfo:get_InvariantInfo():System.Globalization.NumberFormatInfo
- lea r13, bword ptr [r14+0x0C]
- mov r14d, dword ptr [r14+0x08]
- test rax, rax
- jne SHORT G_M30760_IG08
- mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
- call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
- jmp SHORT G_M30760_IG09
- ;; size=39 bbWeight=0.50 PerfScore 6.12
-G_M30760_IG08:
- mov rdi, rax
- mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
- ;; size=15 bbWeight=0.50 PerfScore 1.75
-G_M30760_IG09:
- mov rdi, r13
- mov esi, r14d
- lea r8, [rbp-0x28]
- mov rcx, rax
- mov edx, 511
- mov rax, 0xD1FFAB1E ; code for System.Number:TryParseBinaryIntegerNumber[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
- call [rax]System.Number:TryParseBinaryIntegerNumber[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
- test eax, eax
- jne G_M30760_IG15
- mov eax, dword ptr [rbp-0x28]
- ;; size=41 bbWeight=0.50 PerfScore 3.50
-G_M30760_IG10:
- add rsp, 16
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M30760_IG11:
mov rsi, r14
mov rdi, 0xD1FFAB1E ; System.IConvertible
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE
call [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE
- mov r13, rax
- test r13, r13
- je SHORT G_M30760_IG13
+ mov r14, rax
+ test r14, r14
+ je SHORT G_M30760_IG09
mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_InvariantInfo():System.Globalization.NumberFormatInfo
call [rax]System.Globalization.NumberFormatInfo:get_InvariantInfo():System.Globalization.NumberFormatInfo
mov rsi, rax
- mov rdi, r13
+ mov rdi, r14
mov r11, 0xD1FFAB1E ; code for System.IConvertible:ToInt32(System.IFormatProvider):int:this
call [r11]System.IConvertible:ToInt32(System.IFormatProvider):int:this
nop
;; size=65 bbWeight=0.50 PerfScore 6.25
-G_M30760_IG12:
- add rsp, 16
+G_M30760_IG08:
+ add rsp, 8
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M30760_IG13:
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
+G_M30760_IG09:
mov rdi, rbx
mov esi, r15d
mov rax, 0xD1FFAB1E ; code for System.Net.Http.RuntimeSettingParser:ParseInt32EnvironmentVariableValue(System.String,int):int
call [rax]System.Net.Http.RuntimeSettingParser:ParseInt32EnvironmentVariableValue(System.String,int):int
nop
;; size=19 bbWeight=0.50 PerfScore 2.00
-G_M30760_IG14:
- add rsp, 16
+G_M30760_IG10:
+ add rsp, 8
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0.50 PerfScore 1.88
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
+G_M30760_IG11:
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_InvariantInfo():System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:get_InvariantInfo():System.Globalization.NumberFormatInfo
+ lea rbx, bword ptr [r14+0x0C]
+ mov r15d, dword ptr [r14+0x08]
+ test rax, rax
+ jne SHORT G_M30760_IG12
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
+ jmp SHORT G_M30760_IG13
+ ;; size=39 bbWeight=0.50 PerfScore 6.12
+G_M30760_IG12:
+ mov rdi, rax
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
+ call [rax]System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
+ ;; size=15 bbWeight=0.50 PerfScore 1.75
+G_M30760_IG13:
+ mov rdi, rbx
+ mov esi, r15d
+ lea r8, [rbp-0x20]
+ mov rcx, rax
+ mov edx, 511
+ mov rax, 0xD1FFAB1E ; code for System.Number:TryParseBinaryIntegerNumber[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
+ call [rax]System.Number:TryParseBinaryIntegerNumber[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int
+ test eax, eax
+ jne SHORT G_M30760_IG15
+ mov eax, dword ptr [rbp-0x20]
+ ;; size=37 bbWeight=0.50 PerfScore 3.50
+G_M30760_IG14:
+ add rsp, 8
+ pop rbx
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M30760_IG15:
cmp eax, 1
je SHORT G_M30760_IG16
mov rax, 0xD1FFAB1E ; code for System.Number:ThrowOverflowException[int]()
call [rax]System.Number:ThrowOverflowException[int]()
int3
;; size=18 bbWeight=0 PerfScore 0.00
G_M30760_IG16:
- mov rdi, r13
- mov esi, r14d
+ mov rdi, rbx
+ mov esi, r15d
mov rax, 0xD1FFAB1E ; code for System.Number:ThrowFormatException[ushort](System.ReadOnlySpan`1[ushort])
call [rax]System.Number:ThrowFormatException[ushort](System.ReadOnlySpan`1[ushort])
int3
;; size=19 bbWeight=0 PerfScore 0.00
-; Total bytes of code 349, prolog size 17, PerfScore 41.25, instruction count 100, allocated bytes for code 349 (MethodHash=f39587d7) for method System.Net.Http.RuntimeSettingParser:QueryRuntimeSettingInt32(System.String,System.String,int):int (FullOpts)
+; Total bytes of code 328, prolog size 12, PerfScore 40.00, instruction count 95, allocated bytes for code 328 (MethodHash=f39587d7) for method System.Net.Http.RuntimeSettingParser:QueryRuntimeSettingInt32(System.String,System.String,int):int (FullOpts)
; ============================================================