-128 (-16.91 % of base) - System.Net.Http.Headers.UriHeaderParser:DecodeUtf8FromString(System.String):System.String
; Assembly listing for method System.Net.Http.Headers.UriHeaderParser:DecodeUtf8FromString(System.String):System.String (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 43 single block inlinees; 15 inlinees without PGO data
+; 0 inlinees with PGO data; 43 single block inlinees; 27 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 12, 15 ) ref -> [rbp-0x40] class-hnd EH-live single-def <System.String>
+; V00 arg0 [V00,T01] ( 12, 15 ) ref -> [rbp-0x30] class-hnd EH-live single-def <System.String>
;* V01 loc0 [V01 ] ( 0, 0 ) int -> zero-ref
;* V02 loc1 [V02 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op <System.Span`1[ubyte]>
;* V03 loc2 [V03 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[ubyte]>
-; V04 loc3 [V04,T27] ( 3, 3 ) int -> r15
+; V04 loc3 [V04,T23] ( 3, 3 ) int -> r15
;* V05 loc4 [V05 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[ubyte]>
; V06 loc5 [V06,T00] ( 6, 25 ) int -> rdx
;* V07 loc6 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Text.Encoding>
-; V08 loc7 [V08,T31] ( 2, 2 ) ref -> rax class-hnd exact single-def <System.String>
+; V08 loc7 [V08,T27] ( 2, 2 ) ref -> rax class-hnd exact single-def <System.String>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V10 tmp1 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V11 tmp2 [V11 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V12 tmp3 [V12,T09] ( 3, 6 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.Text.EncoderExceptionFallback>
+; V12 tmp3 [V12,T05] ( 3, 6 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.Text.EncoderExceptionFallback>
;* V13 tmp4 [V13 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]>
;* V14 tmp5 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.ArgumentException>
;* V15 tmp6 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V16 tmp7 [V16 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V17 tmp8 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V18 tmp9 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V19 tmp10 [V19,T19] ( 2, 4 ) byref -> rax single-def "Inlining Arg"
-; V20 tmp11 [V20,T22] ( 2, 4 ) int -> rbx "Inlining Arg"
-; V21 tmp12 [V21,T08] ( 6, 6 ) int -> rax "Inline return value spill temp"
-; V22 tmp13 [V22 ] ( 2, 4 ) ushort -> [rbp-0x2C] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V23 tmp14 [V23 ] ( 2, 4 ) ushort -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V19 tmp10 [V19,T11] ( 2, 4 ) byref -> rcx single-def "Inlining Arg"
+; V20 tmp11 [V20,T15] ( 2, 4 ) int -> rbx "Inlining Arg"
+; V21 tmp12 [V21,T04] ( 6, 6 ) int -> rax "Inline return value spill temp"
+;* V22 tmp13 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp14 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V24 tmp15 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V25 tmp16 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V26 tmp17 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V27 tmp18 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V28 tmp19 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V29 tmp20 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V27 tmp18 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V28 tmp19 [V28 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V29 tmp20 [V29 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V30 tmp21 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V31 tmp22 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V32 tmp23 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V33 tmp24 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V34 tmp25 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V35 tmp26 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V36 tmp27 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V37 tmp28 [V37 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V38 tmp29 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V39 tmp30 [V39 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V40 tmp31 [V40 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V41 tmp32 [V41 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V42 tmp33 [V42 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V43 tmp34 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V44 tmp35 [V44 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V45 tmp36 [V45,T03] ( 6, 12 ) ushort -> rsi "Inlining Arg"
-; V46 tmp37 [V46,T06] ( 5, 10 ) ushort -> rdx "Inlining Arg"
-;* V47 tmp38 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V48 tmp39 [V48,T28] ( 3, 3 ) int -> rax "Inline return value spill temp"
-;* V49 tmp40 [V49 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V50 tmp41 [V50 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V51 tmp42 [V51 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
+;* V33 tmp24 [V33 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V34 tmp25 [V34 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V35 tmp26 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V36 tmp27 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V37 tmp28 [V37 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V38 tmp29 [V38 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V39 tmp30 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V40 tmp31 [V40 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V41 tmp32 [V41 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V42 tmp33 [V42 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V43 tmp34 [V43 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V44 tmp35 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V45 tmp36 [V45 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V46 tmp37 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V47 tmp38 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V48 tmp39 [V48 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V49 tmp40 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V50 tmp41 [V50,T33] ( 2, 2 ) int -> rax "Inline return value spill temp"
+;* V51 tmp42 [V51 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
;* V52 tmp43 [V52 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V53 tmp44 [V53 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V54 tmp45 [V54 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V54 tmp45 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V55 tmp46 [V55 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V56 tmp47 [V56 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V57 tmp48 [V57 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V58 tmp49 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V59 tmp50 [V59 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V60 tmp51 [V60 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V61 tmp52 [V61 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V62 tmp53 [V62 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V63 tmp54 [V63 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V64 tmp55 [V64 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V65 tmp56 [V65 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V56 tmp47 [V56 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V57 tmp48 [V57 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V58 tmp49 [V58 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V59 tmp50 [V59 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V60 tmp51 [V60 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V61 tmp52 [V61 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V62 tmp53 [V62 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V63 tmp54 [V63 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V64 tmp55 [V64 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V65 tmp56 [V65 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V66 tmp57 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V67 tmp58 [V67 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V68 tmp59 [V68 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V69 tmp60 [V69 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V70 tmp61 [V70 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V71 tmp62 [V71 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V72 tmp63 [V72 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V73 tmp64 [V73 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V74 tmp65 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V75 tmp66 [V75 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V76 tmp67 [V76 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V77 tmp68 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V78 tmp69 [V78,T20] ( 2, 4 ) byref -> r8 single-def "Inlining Arg"
-; V79 tmp70 [V79,T23] ( 2, 4 ) int -> rcx "Inlining Arg"
-; V80 tmp71 [V80,T37] ( 2, 2 ) int -> rax "Inline return value spill temp"
-; V81 tmp72 [V81 ] ( 2, 4 ) ushort -> [rbp-0x34] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V82 tmp73 [V82 ] ( 2, 4 ) ushort -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V67 tmp58 [V67 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V68 tmp59 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V69 tmp60 [V69 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V70 tmp61 [V70,T12] ( 2, 4 ) byref -> rcx single-def "Inlining Arg"
+; V71 tmp62 [V71,T16] ( 2, 4 ) int -> rsi "Inlining Arg"
+; V72 tmp63 [V72,T34] ( 2, 2 ) int -> rax "Inline return value spill temp"
+;* V73 tmp64 [V73 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V74 tmp65 [V74 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V75 tmp66 [V75 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V76 tmp67 [V76 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V77 tmp68 [V77 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V78 tmp69 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V79 tmp70 [V79 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V80 tmp71 [V80 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
+;* V81 tmp72 [V81 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V82 tmp73 [V82 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V83 tmp74 [V83 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V84 tmp75 [V84 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V85 tmp76 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V84 tmp75 [V84 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V85 tmp76 [V85 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V86 tmp77 [V86 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V87 tmp78 [V87 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V88 tmp79 [V88 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V89 tmp80 [V89 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V90 tmp81 [V90 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V91 tmp82 [V91 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V92 tmp83 [V92 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V93 tmp84 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V94 tmp85 [V94 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V95 tmp86 [V95 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V96 tmp87 [V96 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V88 tmp79 [V88 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V89 tmp80 [V89 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V90 tmp81 [V90 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V91 tmp82 [V91 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V92 tmp83 [V92 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V93 tmp84 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V94 tmp85 [V94 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V95 tmp86 [V95 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V96 tmp87 [V96 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V97 tmp88 [V97 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V98 tmp89 [V98 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V99 tmp90 [V99 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V100 tmp91 [V100 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V101 tmp92 [V101 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V102 tmp93 [V102 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V103 tmp94 [V103 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V104 tmp95 [V104,T04] ( 6, 12 ) ushort -> rsi "Inlining Arg"
-; V105 tmp96 [V105,T07] ( 5, 10 ) ushort -> rdx "Inlining Arg"
-;* V106 tmp97 [V106 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V107 tmp98 [V107,T29] ( 3, 3 ) int -> rax "Inline return value spill temp"
-;* V108 tmp99 [V108 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V109 tmp100 [V109 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V110 tmp101 [V110 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
-;* V111 tmp102 [V111 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V112 tmp103 [V112 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V113 tmp104 [V113 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V114 tmp105 [V114 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V115 tmp106 [V115 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V116 tmp107 [V116 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V98 tmp89 [V98 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+; V99 tmp90 [V99,T13] ( 2, 4 ) byref -> rcx single-def "Inlining Arg"
+; V100 tmp91 [V100,T17] ( 2, 4 ) int -> rsi "Inlining Arg"
+; V101 tmp92 [V101,T35] ( 2, 2 ) int -> rax "Inline return value spill temp"
+;* V102 tmp93 [V102 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
+;* V103 tmp94 [V103 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V104 tmp95 [V104 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V105 tmp96 [V105 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V106 tmp97 [V106 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V107 tmp98 [V107 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V108 tmp99 [V108 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V109 tmp100 [V109 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V110 tmp101 [V110 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V111 tmp102 [V111 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V112 tmp103 [V112 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V113 tmp104 [V113 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V114 tmp105 [V114 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V115 tmp106 [V115 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V116 tmp107 [V116 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V117 tmp108 [V117 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V118 tmp109 [V118 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V119 tmp110 [V119 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V120 tmp111 [V120 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V121 tmp112 [V121 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V122 tmp113 [V122 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V123 tmp114 [V123 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V124 tmp115 [V124 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V125 tmp116 [V125 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V126 tmp117 [V126 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V127 tmp118 [V127 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V128 tmp119 [V128 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V129 tmp120 [V129 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V130 tmp121 [V130 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V131 tmp122 [V131 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V132 tmp123 [V132 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V133 tmp124 [V133 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V134 tmp125 [V134,T24] ( 2, 4 ) long -> r14 "Inlining Arg"
-; V135 tmp126 [V135,T10] ( 3, 6 ) ref -> rax class-hnd exact single-def "Inlining Arg" <ubyte[]>
-;* V136 tmp127 [V136 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-; V137 tmp128 [V137,T11] ( 3, 6 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Text.DecoderExceptionFallback>
-; V138 tmp129 [V138,T21] ( 2, 4 ) ref -> r12 class-hnd single-def "dup spill" <System.Text.Encoding>
-; V139 tmp130 [V139,T14] ( 4, 4 ) ref -> r12
-; V140 tmp131 [V140,T12] ( 3, 6 ) byref -> r14 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-; V141 tmp132 [V141,T13] ( 3, 6 ) int -> r15 "field V02._length (fldOffset=0x8)" P-INDEP
-; V142 tmp133 [V142,T26] ( 3, 3 ) byref -> r14 "field V03._reference (fldOffset=0x0)" P-INDEP
-; V143 tmp134 [V143,T30] ( 3, 3 ) int -> r15 "field V03._length (fldOffset=0x8)" P-INDEP
-;* V144 tmp135 [V144 ] ( 0, 0 ) byref -> zero-ref "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V145 tmp136 [V145 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
-;* V146 tmp137 [V146 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
-;* V147 tmp138 [V147 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
-;* V148 tmp139 [V148 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
-;* V149 tmp140 [V149 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-; V150 tmp141 [V150,T32] ( 2, 2 ) byref -> rsi "field V13._reference (fldOffset=0x0)" P-INDEP
-; V151 tmp142 [V151,T38] ( 2, 2 ) int -> rdx "field V13._length (fldOffset=0x8)" P-INDEP
-; V152 tmp143 [V152,T33] ( 2, 2 ) byref -> r14 single-def "field V15._reference (fldOffset=0x0)" P-INDEP
-; V153 tmp144 [V153,T39] ( 2, 2 ) int -> r15 "field V15._length (fldOffset=0x8)" P-INDEP
-; V154 tmp145 [V154,T15] ( 4, 4 ) byref -> rax "field V16._reference (fldOffset=0x0)" P-INDEP
-; V155 tmp146 [V155,T17] ( 4, 4 ) int -> rcx "field V16._length (fldOffset=0x8)" P-INDEP
-; V156 tmp147 [V156,T34] ( 2, 2 ) byref -> rax single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-; V157 tmp148 [V157,T40] ( 2, 2 ) int -> rcx "field V17._length (fldOffset=0x8)" P-INDEP
-;* V158 tmp149 [V158 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
-;* V159 tmp150 [V159 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
-;* V160 tmp151 [V160 ] ( 0, 0 ) byref -> zero-ref single-def "field V29._reference (fldOffset=0x0)" P-INDEP
-;* V161 tmp152 [V161 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP
-;* V162 tmp153 [V162 ] ( 0, 0 ) byref -> zero-ref "field V35._reference (fldOffset=0x0)" P-INDEP
-;* V163 tmp154 [V163 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
-;* V164 tmp155 [V164 ] ( 0, 0 ) byref -> zero-ref single-def "field V43._reference (fldOffset=0x0)" P-INDEP
-;* V165 tmp156 [V165 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
-;* V166 tmp157 [V166 ] ( 0, 0 ) byref -> zero-ref "field V58._reference (fldOffset=0x0)" P-INDEP
-;* V167 tmp158 [V167 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP
-;* V168 tmp159 [V168 ] ( 0, 0 ) byref -> zero-ref "field V66._reference (fldOffset=0x0)" P-INDEP
-;* V169 tmp160 [V169 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
-;* V170 tmp161 [V170 ] ( 0, 0 ) byref -> zero-ref "field V74._reference (fldOffset=0x0)" P-INDEP
-;* V171 tmp162 [V171 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP
-; V172 tmp163 [V172,T16] ( 4, 4 ) byref -> r8 "field V75._reference (fldOffset=0x0)" P-INDEP
-; V173 tmp164 [V173,T18] ( 4, 4 ) int -> rcx "field V75._length (fldOffset=0x8)" P-INDEP
-; V174 tmp165 [V174,T35] ( 2, 2 ) byref -> r8 single-def "field V76._reference (fldOffset=0x0)" P-INDEP
-; V175 tmp166 [V175,T41] ( 2, 2 ) int -> rcx "field V76._length (fldOffset=0x8)" P-INDEP
-;* V176 tmp167 [V176 ] ( 0, 0 ) byref -> zero-ref single-def "field V77._reference (fldOffset=0x0)" P-INDEP
-;* V177 tmp168 [V177 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x8)" P-INDEP
-;* V178 tmp169 [V178 ] ( 0, 0 ) byref -> zero-ref single-def "field V88._reference (fldOffset=0x0)" P-INDEP
-;* V179 tmp170 [V179 ] ( 0, 0 ) int -> zero-ref "field V88._length (fldOffset=0x8)" P-INDEP
-;* V180 tmp171 [V180 ] ( 0, 0 ) byref -> zero-ref "field V94._reference (fldOffset=0x0)" P-INDEP
-;* V181 tmp172 [V181 ] ( 0, 0 ) int -> zero-ref "field V94._length (fldOffset=0x8)" P-INDEP
-;* V182 tmp173 [V182 ] ( 0, 0 ) byref -> zero-ref single-def "field V102._reference (fldOffset=0x0)" P-INDEP
-;* V183 tmp174 [V183 ] ( 0, 0 ) int -> zero-ref "field V102._length (fldOffset=0x8)" P-INDEP
-;* V184 tmp175 [V184 ] ( 0, 0 ) byref -> zero-ref "field V117._reference (fldOffset=0x0)" P-INDEP
-;* V185 tmp176 [V185 ] ( 0, 0 ) int -> zero-ref "field V117._length (fldOffset=0x8)" P-INDEP
-;* V186 tmp177 [V186 ] ( 0, 0 ) byref -> zero-ref "field V125._reference (fldOffset=0x0)" P-INDEP
-;* V187 tmp178 [V187 ] ( 0, 0 ) int -> zero-ref "field V125._length (fldOffset=0x8)" P-INDEP
-;* V188 tmp179 [V188 ] ( 0, 0 ) byref -> zero-ref "field V133._reference (fldOffset=0x0)" P-INDEP
-;* V189 tmp180 [V189 ] ( 0, 0 ) int -> zero-ref "field V133._length (fldOffset=0x8)" P-INDEP
-; V190 tmp181 [V190,T36] ( 2, 2 ) byref -> r14 "field V136._reference (fldOffset=0x0)" P-INDEP
-; V191 tmp182 [V191,T42] ( 2, 2 ) int -> r15 "field V136._length (fldOffset=0x8)" P-INDEP
-; V192 tmp183 [V192,T25] ( 2, 4 ) int -> rdi "argument with side effect"
-; V193 GsCookie [V193 ] ( 1, 1 ) long -> [rbp-0x48] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V194 PSPSym [V194,T43] ( 1, 1 ) long -> [rbp-0x50] do-not-enreg[V] "PSPSym"
-; V195 cse0 [V195,T02] ( 10, 17 ) int -> rbx multi-def "CSE #01: aggressive"
-; V196 cse1 [V196,T05] ( 3, 12 ) long -> rsi "CSE #03: aggressive"
+; V118 tmp109 [V118,T18] ( 2, 4 ) long -> r14 "Inlining Arg"
+; V119 tmp110 [V119,T06] ( 3, 6 ) ref -> rax class-hnd exact single-def "Inlining Arg" <ubyte[]>
+;* V120 tmp111 [V120 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+; V121 tmp112 [V121,T07] ( 3, 6 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Text.DecoderExceptionFallback>
+; V122 tmp113 [V122,T14] ( 2, 4 ) ref -> r12 class-hnd single-def "dup spill" <System.Text.Encoding>
+; V123 tmp114 [V123,T10] ( 4, 4 ) ref -> r12
+; V124 tmp115 [V124,T08] ( 3, 6 ) byref -> r14 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+; V125 tmp116 [V125,T09] ( 3, 6 ) int -> r15 "field V02._length (fldOffset=0x8)" P-INDEP
+; V126 tmp117 [V126,T20] ( 3, 3 ) byref -> r14 "field V03._reference (fldOffset=0x0)" P-INDEP
+; V127 tmp118 [V127,T24] ( 3, 3 ) int -> r15 "field V03._length (fldOffset=0x8)" P-INDEP
+;* V128 tmp119 [V128 ] ( 0, 0 ) byref -> zero-ref "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V129 tmp120 [V129 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
+;* V130 tmp121 [V130 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
+;* V131 tmp122 [V131 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
+;* V132 tmp123 [V132 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V133 tmp124 [V133 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
+; V134 tmp125 [V134,T28] ( 2, 2 ) byref -> rsi "field V13._reference (fldOffset=0x0)" P-INDEP
+; V135 tmp126 [V135,T36] ( 2, 2 ) int -> rdx "field V13._length (fldOffset=0x8)" P-INDEP
+; V136 tmp127 [V136,T29] ( 2, 2 ) byref -> r14 single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+; V137 tmp128 [V137,T37] ( 2, 2 ) int -> r15 "field V15._length (fldOffset=0x8)" P-INDEP
+; V138 tmp129 [V138,T21] ( 3, 3 ) byref -> rcx "field V16._reference (fldOffset=0x0)" P-INDEP
+; V139 tmp130 [V139,T25] ( 3, 3 ) int -> rsi "field V16._length (fldOffset=0x8)" P-INDEP
+; V140 tmp131 [V140,T30] ( 2, 2 ) byref -> rcx single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+; V141 tmp132 [V141,T38] ( 2, 2 ) int -> rsi "field V17._length (fldOffset=0x8)" P-INDEP
+;* V142 tmp133 [V142 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
+;* V143 tmp134 [V143 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
+;* V144 tmp135 [V144 ] ( 0, 0 ) byref -> zero-ref single-def "field V27._reference (fldOffset=0x0)" P-INDEP
+;* V145 tmp136 [V145 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
+;* V146 tmp137 [V146 ] ( 0, 0 ) byref -> zero-ref "field V39._reference (fldOffset=0x0)" P-INDEP
+;* V147 tmp138 [V147 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
+;* V148 tmp139 [V148 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
+;* V149 tmp140 [V149 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
+;* V150 tmp141 [V150 ] ( 0, 0 ) byref -> zero-ref "field V54._reference (fldOffset=0x0)" P-INDEP
+;* V151 tmp142 [V151 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
+;* V152 tmp143 [V152 ] ( 0, 0 ) byref -> zero-ref "field V60._reference (fldOffset=0x0)" P-INDEP
+;* V153 tmp144 [V153 ] ( 0, 0 ) int -> zero-ref "field V60._length (fldOffset=0x8)" P-INDEP
+;* V154 tmp145 [V154 ] ( 0, 0 ) byref -> zero-ref "field V66._reference (fldOffset=0x0)" P-INDEP
+;* V155 tmp146 [V155 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
+; V156 tmp147 [V156,T22] ( 3, 3 ) byref -> rcx "field V67._reference (fldOffset=0x0)" P-INDEP
+; V157 tmp148 [V157,T26] ( 3, 3 ) int -> rsi "field V67._length (fldOffset=0x8)" P-INDEP
+; V158 tmp149 [V158,T31] ( 2, 2 ) byref -> rcx single-def "field V68._reference (fldOffset=0x0)" P-INDEP
+; V159 tmp150 [V159,T39] ( 2, 2 ) int -> rsi "field V68._length (fldOffset=0x8)" P-INDEP
+;* V160 tmp151 [V160 ] ( 0, 0 ) byref -> zero-ref single-def "field V69._reference (fldOffset=0x0)" P-INDEP
+;* V161 tmp152 [V161 ] ( 0, 0 ) int -> zero-ref "field V69._length (fldOffset=0x8)" P-INDEP
+;* V162 tmp153 [V162 ] ( 0, 0 ) byref -> zero-ref single-def "field V78._reference (fldOffset=0x0)" P-INDEP
+;* V163 tmp154 [V163 ] ( 0, 0 ) int -> zero-ref "field V78._length (fldOffset=0x8)" P-INDEP
+;* V164 tmp155 [V164 ] ( 0, 0 ) byref -> zero-ref "field V90._reference (fldOffset=0x0)" P-INDEP
+;* V165 tmp156 [V165 ] ( 0, 0 ) int -> zero-ref "field V90._length (fldOffset=0x8)" P-INDEP
+;* V166 tmp157 [V166 ] ( 0, 0 ) byref -> zero-ref single-def "field V98._reference (fldOffset=0x0)" P-INDEP
+;* V167 tmp158 [V167 ] ( 0, 0 ) int -> zero-ref "field V98._length (fldOffset=0x8)" P-INDEP
+;* V168 tmp159 [V168 ] ( 0, 0 ) byref -> zero-ref "field V105._reference (fldOffset=0x0)" P-INDEP
+;* V169 tmp160 [V169 ] ( 0, 0 ) int -> zero-ref "field V105._length (fldOffset=0x8)" P-INDEP
+;* V170 tmp161 [V170 ] ( 0, 0 ) byref -> zero-ref "field V111._reference (fldOffset=0x0)" P-INDEP
+;* V171 tmp162 [V171 ] ( 0, 0 ) int -> zero-ref "field V111._length (fldOffset=0x8)" P-INDEP
+;* V172 tmp163 [V172 ] ( 0, 0 ) byref -> zero-ref "field V117._reference (fldOffset=0x0)" P-INDEP
+;* V173 tmp164 [V173 ] ( 0, 0 ) int -> zero-ref "field V117._length (fldOffset=0x8)" P-INDEP
+; V174 tmp165 [V174,T32] ( 2, 2 ) byref -> r14 "field V120._reference (fldOffset=0x0)" P-INDEP
+; V175 tmp166 [V175,T40] ( 2, 2 ) int -> r15 "field V120._length (fldOffset=0x8)" P-INDEP
+; V176 tmp167 [V176,T19] ( 2, 4 ) int -> rdi "argument with side effect"
+; V177 GsCookie [V177 ] ( 1, 1 ) long -> [rbp-0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V178 PSPSym [V178,T41] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym"
+; V179 cse0 [V179,T02] ( 10, 17 ) int -> rbx multi-def "CSE #01: aggressive"
+; V180 cse1 [V180,T03] ( 3, 12 ) long -> rsi "CSE #03: aggressive"
;
-; Lcl frame size = 40
+; Lcl frame size = 24
G_M22867_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 40
- lea rbp, [rsp+0x50]
- mov qword ptr [rbp-0x50], rsp
- mov qword ptr [rbp-0x48], 0xD1FFAB1E
- mov gword ptr [rbp-0x40], rdi
+ sub rsp, 24
+ lea rbp, [rsp+0x40]
+ mov qword ptr [rbp-0x40], rsp
+ mov qword ptr [rbp-0x38], 0xD1FFAB1E
+ mov gword ptr [rbp-0x30], rdi
;; size=35 bbWeight=1 PerfScore 9.75
G_M22867_IG02:
mov rax, 0xD1FFAB1E ; code for System.String:IsNullOrWhiteSpace(System.String):ubyte
call [rax]System.String:IsNullOrWhiteSpace(System.String):ubyte
test eax, eax
- jne G_M22867_IG22
- mov rdi, gword ptr [rbp-0x40]
+ jne G_M22867_IG18
+ mov rdi, gword ptr [rbp-0x30]
test rdi, rdi
jne SHORT G_M22867_IG03
- xor rax, rax
- xor ecx, ecx
+ xor rcx, rcx
+ xor esi, esi
jmp SHORT G_M22867_IG04
- align [1 bytes for IG15]
- ;; size=36 bbWeight=1 PerfScore 9.25
+ align [13 bytes for IG11]
+ ;; size=48 bbWeight=1 PerfScore 9.25
G_M22867_IG03:
- lea rax, bword ptr [rdi+0x0C]
+ lea rcx, bword ptr [rdi+0x0C]
mov ebx, dword ptr [rdi+0x08]
- mov ecx, ebx
- mov rdi, gword ptr [rbp-0x40]
- ;; size=13 bbWeight=1 PerfScore 3.75
+ mov esi, ebx
+ ;; size=9 bbWeight=1 PerfScore 2.75
G_M22867_IG04:
- xor edx, edx
- mov dword ptr [rbp-0x2C], edx
- mov dword ptr [rbp-0x30], 127
- movzx rsi, word ptr [rbp-0x2C]
- movzx rdx, word ptr [rbp-0x30]
- lea r8d, [rsi-0x01]
- cmp r8d, 254
- jae SHORT G_M22867_IG05
- lea r8d, [rdx-0x01]
- cmp r8d, 254
- jae SHORT G_M22867_IG05
- cmp edx, esi
- jl SHORT G_M22867_IG05
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
- mov rdi, rax
- mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- jmp SHORT G_M22867_IG06
- ;; size=77 bbWeight=1 PerfScore 15.25
-G_M22867_IG05:
- mov rdi, rax
+ mov rdi, rcx
+ mov ecx, esi
+ xor esi, esi
+ mov edx, 127
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=15 bbWeight=1 PerfScore 3.50
-G_M22867_IG06:
test eax, eax
- jl G_M22867_IG22
- mov rdi, gword ptr [rbp-0x40]
+ jl G_M22867_IG18
+ mov rdi, gword ptr [rbp-0x30]
test rdi, rdi
- jne SHORT G_M22867_IG07
+ jne SHORT G_M22867_IG05
test eax, eax
- jne G_M22867_IG26
- xor r8, r8
- xor ecx, ecx
- jmp SHORT G_M22867_IG08
- ;; size=32 bbWeight=1 PerfScore 7.25
-G_M22867_IG07:
+ jne G_M22867_IG22
+ xor rcx, rcx
+ xor esi, esi
+ jmp SHORT G_M22867_IG06
+ ;; size=55 bbWeight=1 PerfScore 11.50
+G_M22867_IG05:
mov ebx, dword ptr [rdi+0x08]
cmp ebx, eax
- jb G_M22867_IG26
- mov r8d, eax
- lea r8, bword ptr [rdi+2*r8+0x0C]
- mov ecx, ebx
- sub ecx, eax
- mov rdi, gword ptr [rbp-0x40]
- ;; size=27 bbWeight=1 PerfScore 6.00
-G_M22867_IG08:
- xor edx, edx
- mov dword ptr [rbp-0x34], edx
- mov dword ptr [rbp-0x38], 255
- movzx rsi, word ptr [rbp-0x34]
- movzx rdx, word ptr [rbp-0x38]
- lea eax, [rsi-0x01]
- cmp eax, 254
- jae SHORT G_M22867_IG09
- lea eax, [rdx-0x01]
- cmp eax, 254
- jae SHORT G_M22867_IG09
- cmp edx, esi
- jl SHORT G_M22867_IG09
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
- mov rdi, r8
- mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- jmp SHORT G_M22867_IG10
- ;; size=71 bbWeight=1 PerfScore 15.25
-G_M22867_IG09:
- mov rdi, r8
+ jb G_M22867_IG22
+ mov ecx, eax
+ lea rcx, bword ptr [rdi+2*rcx+0x0C]
+ mov esi, ebx
+ sub esi, eax
+ ;; size=22 bbWeight=1 PerfScore 5.00
+G_M22867_IG06:
+ mov rdi, rcx
+ mov ecx, esi
+ xor esi, esi
+ mov edx, 255
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=15 bbWeight=1 PerfScore 3.50
-G_M22867_IG10:
test eax, eax
- jge G_M22867_IG22
- mov rdi, gword ptr [rbp-0x40]
+ jge G_M22867_IG18
+ mov rdi, gword ptr [rbp-0x30]
mov ebx, dword ptr [rdi+0x08]
cmp ebx, 256
- jg SHORT G_M22867_IG13
+ jg SHORT G_M22867_IG09
mov r15d, ebx
mov esi, r15d
mov r14, rsi
test r14, r14
- je SHORT G_M22867_IG12
+ je SHORT G_M22867_IG08
mov rax, r14
add rax, 15
and rax, -16
neg rax
add rax, rsp
- jb SHORT G_M22867_IG11
+ jb SHORT G_M22867_IG07
xor eax, eax
- ;; size=58 bbWeight=1 PerfScore 10.00
-G_M22867_IG11:
+ ;; size=82 bbWeight=1 PerfScore 14.25
+G_M22867_IG07:
test dword ptr [rsp], esp
sub rsp, 0x1000
cmp rsp, rax
- jae SHORT G_M22867_IG11
+ jae SHORT G_M22867_IG07
mov rsp, rax
lea r14, [rsp]
;; size=22 bbWeight=1 PerfScore 5.25
-G_M22867_IG12:
- jmp SHORT G_M22867_IG14
+G_M22867_IG08:
+ jmp SHORT G_M22867_IG10
;; size=2 bbWeight=1 PerfScore 2.00
-G_M22867_IG13:
+G_M22867_IG09:
mov esi, ebx
mov rdi, 0xD1FFAB1E ; ubyte[]
call CORINFO_HELP_NEWARR_1_VC
lea r14, bword ptr [rax+0x10]
mov r15d, dword ptr [rax+0x08]
;; size=25 bbWeight=1 PerfScore 4.00
-G_M22867_IG14:
+G_M22867_IG10:
xor edx, edx
- jmp SHORT G_M22867_IG16
+ jmp SHORT G_M22867_IG12
;; size=4 bbWeight=1 PerfScore 2.25
-G_M22867_IG15:
+G_M22867_IG11:
cmp edx, r15d
- jae G_M22867_IG25
+ jae G_M22867_IG21
mov esi, edx
- mov rdi, gword ptr [rbp-0x40]
+ mov rdi, gword ptr [rbp-0x30]
movzx rax, byte ptr [rdi+2*rsi+0x0C]
mov byte ptr [r14+rsi], al
inc edx
;; size=26 bbWeight=4 PerfScore 23.00
-G_M22867_IG16:
+G_M22867_IG12:
cmp ebx, edx
- jg SHORT G_M22867_IG15
+ jg SHORT G_M22867_IG11
;; size=4 bbWeight=8 PerfScore 10.00
-G_M22867_IG17:
+G_M22867_IG13:
mov rdx, 0xD1FFAB1E ; const ptr
mov rbx, gword ptr [rdx]
mov rdx, 0xD1FFAB1E ; const ptr
mov r13, gword ptr [rdx]
mov rdx, r13
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; 'utf-8'
mov rax, 0xD1FFAB1E ; code for System.Text.EncodingProvider:GetEncodingFromProvider(System.String,System.Text.EncoderFallback,System.Text.DecoderFallback):System.Text.Encoding
call [rax]System.Text.EncodingProvider:GetEncodingFromProvider(System.String,System.Text.EncoderFallback,System.Text.DecoderFallback):System.Text.Encoding
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Text.Encoding:FilterDisallowedEncodings(System.Text.Encoding):System.Text.Encoding
call [rax]System.Text.Encoding:FilterDisallowedEncodings(System.Text.Encoding):System.Text.Encoding
mov r12, rax
test r12, r12
- jne SHORT G_M22867_IG18
+ jne SHORT G_M22867_IG14
mov rdi, 0xD1FFAB1E ; 'utf-8'
mov rax, 0xD1FFAB1E ; code for System.Text.EncodingTable:GetCodePageFromName(System.String):int
call [rax]System.Text.EncodingTable:GetCodePageFromName(System.String):int
mov edi, eax
mov rsi, rbx
mov rdx, r13
mov rax, 0xD1FFAB1E ; code for System.Text.Encoding:GetEncoding(int,System.Text.EncoderFallback,System.Text.DecoderFallback):System.Text.Encoding
call [rax]System.Text.Encoding:GetEncoding(int,System.Text.EncoderFallback,System.Text.DecoderFallback):System.Text.Encoding
mov r12, rax
;; size=122 bbWeight=1 PerfScore 21.25
-G_M22867_IG18:
+G_M22867_IG14:
mov rdi, r14
mov esi, r15d
mov rax, 0xD1FFAB1E ; code for System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte]
call [rax]System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte]
mov rsi, rax
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Text.Encoding:GetString(System.ReadOnlySpan`1[ubyte]):System.String:this
cmp dword ptr [rdi], edi
call [rax]System.Text.Encoding:GetString(System.ReadOnlySpan`1[ubyte]):System.String:this
nop
;; size=39 bbWeight=1 PerfScore 10.75
-G_M22867_IG19:
- cmp qword ptr [rbp-0x48], 0xD1FFAB1E
- je SHORT G_M22867_IG20
+G_M22867_IG15:
+ cmp qword ptr [rbp-0x38], 0xD1FFAB1E
+ je SHORT G_M22867_IG16
call CORINFO_HELP_FAIL_FAST
;; size=15 bbWeight=1 PerfScore 4.00
-G_M22867_IG20:
+G_M22867_IG16:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M22867_IG21:
+G_M22867_IG17:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.50
-G_M22867_IG22:
- mov rax, gword ptr [rbp-0x40]
- cmp qword ptr [rbp-0x48], 0xD1FFAB1E
- je SHORT G_M22867_IG23
+G_M22867_IG18:
+ mov rax, gword ptr [rbp-0x30]
+ cmp qword ptr [rbp-0x38], 0xD1FFAB1E
+ je SHORT G_M22867_IG19
call CORINFO_HELP_FAIL_FAST
;; size=19 bbWeight=1 PerfScore 5.00
-G_M22867_IG23:
+G_M22867_IG19:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M22867_IG24:
+G_M22867_IG20:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.50
-G_M22867_IG25:
+G_M22867_IG21:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M22867_IG26:
+G_M22867_IG22:
mov edi, 33
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-G_M22867_IG27:
+G_M22867_IG23:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
- lea rbp, [rbp+0x50]
+ lea rbp, [rbp+0x40]
;; size=22 bbWeight=0 PerfScore 0.00
-G_M22867_IG28:
- lea rax, G_M22867_IG22
+G_M22867_IG24:
+ lea rax, G_M22867_IG18
;; size=7 bbWeight=0 PerfScore 0.00
-G_M22867_IG29:
+G_M22867_IG25:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 757, prolog size 35, PerfScore 180.50, instruction count 215, allocated bytes for code 757 (MethodHash=f9b6a6ac) for method System.Net.Http.Headers.UriHeaderParser:DecodeUtf8FromString(System.String):System.String (FullOpts)
+; Total bytes of code 629, prolog size 35, PerfScore 149.50, instruction count 179, allocated bytes for code 629 (MethodHash=f9b6a6ac) for method System.Net.Http.Headers.UriHeaderParser:DecodeUtf8FromString(System.String):System.String (FullOpts)
-99 (-6.75 % of base) - System.Buffers.SequenceReader`1[short]:TryReadToAny(byref,System.ReadOnlySpan`1[short],ubyte):ubyte:this
; Assembly listing for method System.Buffers.SequenceReader`1[short]:TryReadToAny(byref,System.ReadOnlySpan`1[short],ubyte):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 52 single block inlinees; 18 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T22] ( 3, 3 ) byref -> rdi this single-def
-; V01 arg1 [V01,T23] ( 3, 3 ) byref -> rsi single-def
-; V02 arg2 [V02,T25] ( 3, 3 ) struct (16) [rbp-0x80] do-not-enreg[SFA] multireg-arg ld-addr-op single-def ptr <System.ReadOnlySpan`1[short]>
-; V03 arg3 [V03,T26] ( 3, 3 ) ubyte -> r8 single-def
+; V00 this [V00,T17] ( 3, 3 ) byref -> rdi this single-def
+; V01 arg1 [V01,T18] ( 3, 3 ) byref -> rsi single-def
+; V02 arg2 [V02,T20] ( 3, 3 ) struct (16) [rbp-0x80] do-not-enreg[SFA] multireg-arg ld-addr-op single-def ptr <System.ReadOnlySpan`1[short]>
+; V03 arg3 [V03,T21] ( 3, 3 ) ubyte -> r8 single-def
;* V04 loc0 [V04 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[short]>
;* V05 loc1 [V05 ] ( 0, 0 ) int -> zero-ref ptr
; V06 OutArgs [V06 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T34] ( 6, 3.50) int -> rax
+; V07 tmp1 [V07,T32] ( 6, 3.50) int -> rax
;* V08 tmp2 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[short]>
; V09 tmp3 [V09,T09] ( 4, 8 ) int -> rdi "Inlining Arg"
;* V10 tmp4 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[short]>
-; V11 tmp5 [V11,T20] ( 2, 4 ) byref -> rcx single-def "Inlining Arg"
-; V12 tmp6 [V12,T21] ( 2, 4 ) int -> rax "Inlining Arg"
-; V13 tmp7 [V13,T27] ( 8, 4 ) int -> registers ptr "Inline return value spill temp"
+; V11 tmp5 [V11,T15] ( 2, 4 ) byref -> rcx single-def "Inlining Arg"
+; V12 tmp6 [V12,T16] ( 2, 4 ) int -> rax "Inlining Arg"
+; V13 tmp7 [V13,T22] ( 8, 4 ) int -> registers ptr "Inline return value spill temp"
;* V14 tmp8 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[short]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[short]>
;* V16 tmp10 [V16 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V17 tmp11 [V17 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V18 tmp12 [V18,T41] ( 4, 2 ) byref -> rsi single-def "Inline stloc first use temp"
-; V19 tmp13 [V19,T19] ( 2, 4.50) byref -> r8 single-def "Inline stloc first use temp"
+; V18 tmp12 [V18,T35] ( 4, 2 ) byref -> rsi single-def "Inline stloc first use temp"
+; V19 tmp13 [V19,T14] ( 2, 4.50) byref -> r8 single-def "Inline stloc first use temp"
;* V20 tmp14 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V21 tmp15 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[short]>
;* V22 tmp16 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[short]>
-; V23 tmp17 [V23,T29] ( 4, 4 ) short -> rsi "Inlining Arg"
+; V23 tmp17 [V23,T24] ( 4, 4 ) short -> rsi "Inlining Arg"
;* V24 tmp18 [V24 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
-; V25 tmp19 [V25,T48] ( 3, 1.50) int -> r8 "Inline return value spill temp"
-;* V26 tmp20 [V26 ] ( 0, 0 ) short -> zero-ref ld-addr-op ptr "Inlining Arg"
-;* V27 tmp21 [V27 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V28 tmp22 [V28 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V29 tmp23 [V29,T14] ( 6, 6 ) short -> rsi "Inlining Arg"
-; V30 tmp24 [V30,T15] ( 6, 6 ) short -> rdx "Inlining Arg"
-;* V31 tmp25 [V31 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
-; V32 tmp26 [V32,T42] ( 4, 2 ) int -> r8 "Inline return value spill temp"
-;* V33 tmp27 [V33 ] ( 0, 0 ) short -> zero-ref ld-addr-op ptr "Inlining Arg"
-;* V34 tmp28 [V34 ] ( 0, 0 ) short -> zero-ref ld-addr-op ptr "Inlining Arg"
-;* V35 tmp29 [V35 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V36 tmp30 [V36 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V37 tmp31 [V37 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-; V38 tmp32 [V38,T56] ( 2, 1 ) ushort -> rsi "Inline return value spill temp"
-; V39 tmp33 [V39,T35] ( 3, 3 ) ushort -> rsi "Inlining Arg"
-; V40 tmp34 [V40,T36] ( 3, 3 ) ushort -> rdi "Inlining Arg"
+; V25 tmp19 [V25,T41] ( 3, 1.50) int -> r8 "Inline return value spill temp"
+;* V26 tmp20 [V26 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+; V27 tmp21 [V27,T25] ( 4, 4 ) short -> rsi "Inlining Arg"
+; V28 tmp22 [V28,T26] ( 4, 4 ) short -> rdx "Inlining Arg"
+;* V29 tmp23 [V29,T63] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
+; V30 tmp24 [V30,T42] ( 3, 1.50) int -> r8 "Inline return value spill temp"
+; V31 tmp25 [V31,T51] ( 2, 1 ) ushort -> rsi "Inline stloc first use temp"
+; V32 tmp26 [V32,T52] ( 2, 1 ) ushort -> rdx "Inline stloc first use temp"
+;* V33 tmp27 [V33 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V34 tmp28 [V34 ] ( 0, 0 ) ushort -> zero-ref ptr "Inline return value spill temp"
+; V35 tmp29 [V35,T27] ( 4, 4 ) short -> rsi "Inlining Arg"
+; V36 tmp30 [V36,T28] ( 4, 4 ) short -> rdx "Inlining Arg"
+; V37 tmp31 [V37,T29] ( 4, 4 ) short -> r9 "Inlining Arg"
+;* V38 tmp32 [V38 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
+; V39 tmp33 [V39,T43] ( 3, 1.50) int -> r8 "Inline return value spill temp"
+;* V40 tmp34 [V40 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V41 tmp35 [V41 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V42 tmp36 [V42 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V43 tmp37 [V43,T30] ( 4, 4 ) short -> rsi "Inlining Arg"
-; V44 tmp38 [V44,T31] ( 4, 4 ) short -> rdx "Inlining Arg"
-; V45 tmp39 [V45,T32] ( 4, 4 ) short -> r9 "Inlining Arg"
-;* V46 tmp40 [V46 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
-; V47 tmp41 [V47,T49] ( 3, 1.50) int -> r8 "Inline return value spill temp"
-;* V48 tmp42 [V48 ] ( 0, 0 ) short -> zero-ref ld-addr-op ptr "Inlining Arg"
-;* V49 tmp43 [V49 ] ( 0, 0 ) short -> zero-ref ld-addr-op ptr "Inlining Arg"
-;* V50 tmp44 [V50 ] ( 0, 0 ) short -> zero-ref ld-addr-op ptr "Inlining Arg"
-;* V51 tmp45 [V51 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V52 tmp46 [V52 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V53 tmp47 [V53 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V54 tmp48 [V54 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V55 tmp49 [V55 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V56 tmp50 [V56 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V57 tmp51 [V57 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-;* V58 tmp52 [V58 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-;* V59 tmp53 [V59 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-;* V60 tmp54 [V60 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-;* V61 tmp55 [V61 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V62 tmp56 [V62 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-;* V63 tmp57 [V63 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-;* V64 tmp58 [V64 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-;* V65 tmp59 [V65 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-;* V66 tmp60 [V66 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-;* V67 tmp61 [V67 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V68 tmp62 [V68,T43] ( 4, 2 ) int -> registers ptr "Inline return value spill temp"
-; V69 tmp63 [V69,T05] ( 4, 11 ) int -> r9 "Inlining Arg"
-;* V70 tmp64 [V70 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V71 tmp65 [V71 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <System.ReadOnlySpan`1[ushort]>
-; V72 tmp66 [V72,T33] ( 4, 4 ) int -> rdi "Inlining Arg"
-; V73 tmp67 [V73 ] ( 3, 1.50) int -> [rbp-0x84] do-not-enreg[X] addr-exposed ld-addr-op ptr "Inline ldloca(s) first use temp"
-;* V74 tmp68 [V74,T57] ( 0, 0 ) ubyte -> zero-ref ptr "Inline return value spill temp"
-; V75 tmp69 [V75,T50] ( 3, 1.50) int -> rax "Inline return value spill temp"
-; V76 tmp70 [V76,T24] ( 3, 5 ) byref -> [rbp-0xA8] spill-single-def ptr "Inline stloc first use temp"
-; V77 tmp71 [V77,T01] ( 6, 17 ) byref -> [rbp-0xB0] ptr "Inline stloc first use temp"
-; V78 tmp72 [V78,T10] ( 2, 8 ) ushort -> rsi "Inline stloc first use temp"
-;* V79 tmp73 [V79 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V80 tmp74 [V80 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V81 tmp75 [V81 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V82 tmp76 [V82,T58] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V83 tmp77 [V83 ] ( 7, 3.50) struct (64) [rbp-0x70] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "Inline ldloca(s) first use temp" <System.Buffers.IndexOfAnyAsciiSearcher+AsciiState>
-; V84 tmp78 [V84,T51] ( 2, 1 ) ubyte -> rdx ld-addr-op "Inline ldloca(s) first use temp"
-;* V85 tmp79 [V85 ] ( 0, 0 ) byref -> zero-ref
-; V86 tmp80 [V86,T54] ( 2, 1 ) byref -> r13 single-def
-;* V87 tmp81 [V87 ] ( 0, 0 ) int -> zero-ref
-;* V88 tmp82 [V88 ] ( 0, 0 ) byref -> zero-ref
-;* V89 tmp83 [V89 ] ( 0, 0 ) byref -> zero-ref single-def ptr
-; V90 tmp84 [V90,T52] ( 3, 1.50) int -> rax
-; V91 tmp85 [V91,T64] ( 1, 1 ) int -> [rbp-0x88] do-not-enreg[V] "GSCookie dummy for inlinee"
-;* V92 tmp86 [V92 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V93 tmp87 [V93,T59] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V94 tmp88 [V94,T06] ( 3, 10 ) long -> rdx "Inlining Arg"
-;* V95 tmp89 [V95,T69] ( 0, 0 ) long -> zero-ref ptr "Inline stloc first use temp"
-;* V96 tmp90 [V96 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ushort]>
-;* V97 tmp91 [V97,T70] ( 0, 0 ) int -> zero-ref ptr "Inline stloc first use temp"
-; V98 tmp92 [V98,T03] ( 4, 16 ) ushort -> rsi "Inline stloc first use temp"
-; V99 tmp93 [V99,T11] ( 2, 8 ) int -> r10 "Inline stloc first use temp"
-;* V100 tmp94 [V100 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V101 tmp95 [V101,T00] ( 3, 24 ) long -> rsi "dup spill"
-;* V102 tmp96 [V102 ] ( 0, 0 ) simd16 -> zero-ref "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-;* V103 tmp97 [V103 ] ( 0, 0 ) simd16 -> zero-ref "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-;* V104 tmp98 [V104 ] ( 0, 0 ) simd32 -> zero-ref "Inline return value spill temp" <System.Runtime.Intrinsics.Vector256`1[ubyte]>
-;* V105 tmp99 [V105 ] ( 0, 0 ) simd32 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector256`1[ubyte]>
+;* V43 tmp37 [V43 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
+;* V44 tmp38 [V44 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
+;* V45 tmp39 [V45 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
+;* V46 tmp40 [V46 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
+;* V47 tmp41 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V48 tmp42 [V48 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
+;* V49 tmp43 [V49 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
+;* V50 tmp44 [V50 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
+;* V51 tmp45 [V51 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
+;* V52 tmp46 [V52 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
+;* V53 tmp47 [V53 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V54 tmp48 [V54,T36] ( 4, 2 ) int -> registers ptr "Inline return value spill temp"
+; V55 tmp49 [V55,T39] ( 2, 2 ) int -> rdi "Inlining Arg"
+;* V56 tmp50 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V57 tmp51 [V57 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <System.ReadOnlySpan`1[ushort]>
+;* V58 tmp52 [V58,T64] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
+; V59 tmp53 [V59 ] ( 3, 1.50) int -> [rbp-0x84] do-not-enreg[X] addr-exposed ld-addr-op ptr "Inline ldloca(s) first use temp"
+;* V60 tmp54 [V60,T53] ( 0, 0 ) ubyte -> zero-ref ptr "Inline return value spill temp"
+; V61 tmp55 [V61,T44] ( 3, 1.50) int -> rax "Inline return value spill temp"
+; V62 tmp56 [V62,T19] ( 3, 5 ) byref -> [rbp-0xA8] spill-single-def ptr "Inline stloc first use temp"
+; V63 tmp57 [V63,T01] ( 6, 17 ) byref -> [rbp-0xB0] ptr "Inline stloc first use temp"
+; V64 tmp58 [V64,T10] ( 2, 8 ) ushort -> rsi "Inline stloc first use temp"
+;* V65 tmp59 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V66 tmp60 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V67 tmp61 [V67 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V68 tmp62 [V68,T54] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V69 tmp63 [V69 ] ( 7, 3.50) struct (64) [rbp-0x70] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "Inline ldloca(s) first use temp" <System.Buffers.IndexOfAnyAsciiSearcher+AsciiState>
+; V70 tmp64 [V70,T45] ( 2, 1 ) ubyte -> rdx ld-addr-op "Inline ldloca(s) first use temp"
+;* V71 tmp65 [V71 ] ( 0, 0 ) byref -> zero-ref
+; V72 tmp66 [V72,T49] ( 2, 1 ) byref -> r13 single-def
+;* V73 tmp67 [V73 ] ( 0, 0 ) int -> zero-ref
+;* V74 tmp68 [V74 ] ( 0, 0 ) byref -> zero-ref
+;* V75 tmp69 [V75 ] ( 0, 0 ) byref -> zero-ref single-def ptr
+; V76 tmp70 [V76,T46] ( 3, 1.50) int -> rax
+; V77 tmp71 [V77,T65] ( 1, 1 ) int -> [rbp-0x88] do-not-enreg[V] "GSCookie dummy for inlinee"
+;* V78 tmp72 [V78 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V79 tmp73 [V79,T55] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V80 tmp74 [V80,T07] ( 3, 10 ) long -> rdx "Inlining Arg"
+;* V81 tmp75 [V81,T71] ( 0, 0 ) long -> zero-ref ptr "Inline stloc first use temp"
+;* V82 tmp76 [V82 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ushort]>
+;* V83 tmp77 [V83,T72] ( 0, 0 ) int -> zero-ref ptr "Inline stloc first use temp"
+; V84 tmp78 [V84,T03] ( 4, 16 ) ushort -> rsi "Inline stloc first use temp"
+; V85 tmp79 [V85,T11] ( 2, 8 ) int -> r9 "Inline stloc first use temp"
+;* V86 tmp80 [V86 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V87 tmp81 [V87,T00] ( 3, 24 ) long -> rsi "dup spill"
+;* V88 tmp82 [V88 ] ( 0, 0 ) simd16 -> zero-ref "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;* V89 tmp83 [V89 ] ( 0, 0 ) simd16 -> zero-ref "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;* V90 tmp84 [V90 ] ( 0, 0 ) simd32 -> zero-ref "Inline return value spill temp" <System.Runtime.Intrinsics.Vector256`1[ubyte]>
+;* V91 tmp85 [V91 ] ( 0, 0 ) simd32 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector256`1[ubyte]>
+;* V92 tmp86 [V92 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[short]>
+;* V93 tmp87 [V93 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[short]>
+;* V94 tmp88 [V94 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V95 tmp89 [V95 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[short]>
+; V96 tmp90 [V96,T30] ( 4, 4 ) short -> rsi "Inlining Arg"
+; V97 tmp91 [V97,T31] ( 4, 4 ) short -> rdx "Inlining Arg"
+;* V98 tmp92 [V98 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[short]>
+;* V99 tmp93 [V99,T61] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
+;* V100 tmp94 [V100,T66] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
+; V101 tmp95 [V101,T47] ( 3, 1.50) int -> rax "Inline return value spill temp"
+; V102 tmp96 [V102,T56] ( 2, 1 ) ushort -> rsi "Inline stloc first use temp"
+; V103 tmp97 [V103,T57] ( 2, 1 ) ushort -> rdx "Inline stloc first use temp"
+;* V104 tmp98 [V104 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V105 tmp99 [V105 ] ( 0, 0 ) ushort -> zero-ref ptr "Inline return value spill temp"
;* V106 tmp100 [V106 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[short]>
-;* V107 tmp101 [V107 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[short]>
-;* V108 tmp102 [V108 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V109 tmp103 [V109 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[short]>
-; V110 tmp104 [V110,T16] ( 6, 6 ) short -> rsi ld-addr-op "Inlining Arg"
-; V111 tmp105 [V111,T17] ( 6, 6 ) short -> rdx ld-addr-op "Inlining Arg"
-;* V112 tmp106 [V112 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[short]>
-;* V113 tmp107 [V113 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
-;* V114 tmp108 [V114 ] ( 0, 0 ) short -> zero-ref ptr "Inlining Arg"
-;* V115 tmp109 [V115 ] ( 0, 0 ) short -> zero-ref ptr "Inlining Arg"
-;* V116 tmp110 [V116 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
-; V117 tmp111 [V117,T44] ( 4, 2 ) int -> rax "Inline return value spill temp"
-;* V118 tmp112 [V118 ] ( 0, 0 ) short -> zero-ref ld-addr-op ptr "Inlining Arg"
-;* V119 tmp113 [V119 ] ( 0, 0 ) short -> zero-ref ld-addr-op ptr "Inlining Arg"
-;* V120 tmp114 [V120 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V121 tmp115 [V121 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V122 tmp116 [V122 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-; V123 tmp117 [V123,T60] ( 2, 1 ) ushort -> rsi "Inline return value spill temp"
-; V124 tmp118 [V124,T37] ( 3, 3 ) ushort -> rsi "Inlining Arg"
-; V125 tmp119 [V125,T38] ( 3, 3 ) ushort -> rdi "Inlining Arg"
-;* V126 tmp120 [V126 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V127 tmp121 [V127 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V128 tmp122 [V128 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[short]>
-;* V129 tmp123 [V129 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[short]>
-;* V130 tmp124 [V130 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V131 tmp125 [V131,T18] ( 6, 6 ) long -> rsi "Inlining Arg"
-;* V132 tmp126 [V132 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[short]>
-;* V133 tmp127 [V133 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V134 tmp128 [V134 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V135 tmp129 [V135 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V136 tmp130 [V136,T07] ( 19, 10 ) byref -> [rbp-0xB8] spill-single-def ptr "field V04._reference (fldOffset=0x0)" P-INDEP
-; V137 tmp131 [V137,T08] ( 19, 10 ) int -> [rbp-0x8C] spill-single-def ptr "field V04._length (fldOffset=0x8)" P-INDEP
-; V138 tmp132 [V138,T46] ( 2, 2 ) byref -> rsi single-def "field V08._reference (fldOffset=0x0)" P-INDEP
-; V139 tmp133 [V139,T39] ( 3, 3 ) int -> rax "field V08._length (fldOffset=0x8)" P-INDEP
-;* V140 tmp134 [V140,T63] ( 0, 0 ) byref -> zero-ref single-def ptr "field V10._reference (fldOffset=0x0)" P-INDEP
-;* V141 tmp135 [V141,T65] ( 0, 0 ) int -> zero-ref ptr "field V10._length (fldOffset=0x8)" P-INDEP
-;* V142 tmp136 [V142 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V14._reference (fldOffset=0x0)" P-INDEP
-;* V143 tmp137 [V143 ] ( 0, 0 ) int -> zero-ref ptr "field V14._length (fldOffset=0x8)" P-INDEP
-;* V144 tmp138 [V144 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V15._reference (fldOffset=0x0)" P-INDEP
-;* V145 tmp139 [V145 ] ( 0, 0 ) int -> zero-ref ptr "field V15._length (fldOffset=0x8)" P-INDEP
-;* V146 tmp140 [V146 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V21._reference (fldOffset=0x0)" P-INDEP
-;* V147 tmp141 [V147 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
-;* V148 tmp142 [V148 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V22._reference (fldOffset=0x0)" P-INDEP
-;* V149 tmp143 [V149 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
-;* V150 tmp144 [V150,T66] ( 0, 0 ) byref -> zero-ref single-def ptr "field V70._reference (fldOffset=0x0)" P-INDEP
-;* V151 tmp145 [V151,T71] ( 0, 0 ) int -> zero-ref ptr "field V70._length (fldOffset=0x8)" P-INDEP
-;* V152 tmp146 [V152,T67] ( 0, 0 ) byref -> zero-ref single-def ptr "field V71._reference (fldOffset=0x0)" P-INDEP
-;* V153 tmp147 [V153,T72] ( 0, 0 ) int -> zero-ref ptr "field V71._length (fldOffset=0x8)" P-INDEP
-;* V154 tmp148 [V154 ] ( 0, 0 ) byref -> zero-ref ptr "field V79._reference (fldOffset=0x0)" P-INDEP
-;* V155 tmp149 [V155 ] ( 0, 0 ) int -> zero-ref ptr "field V79._length (fldOffset=0x8)" P-INDEP
-;* V156 tmp150 [V156 ] ( 0, 0 ) byref -> zero-ref ptr "field V80._reference (fldOffset=0x0)" P-INDEP
-;* V157 tmp151 [V157 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-INDEP
-;* V158 tmp152 [V158,T68] ( 0, 0 ) byref -> zero-ref single-def ptr "field V96._reference (fldOffset=0x0)" P-INDEP
-;* V159 tmp153 [V159,T73] ( 0, 0 ) int -> zero-ref ptr "field V96._length (fldOffset=0x8)" P-INDEP
-;* V160 tmp154 [V160 ] ( 0, 0 ) byref -> zero-ref "field V106._reference (fldOffset=0x0)" P-INDEP
-;* V161 tmp155 [V161 ] ( 0, 0 ) int -> zero-ref "field V106._length (fldOffset=0x8)" P-INDEP
-;* V162 tmp156 [V162 ] ( 0, 0 ) byref -> zero-ref "field V107._reference (fldOffset=0x0)" P-INDEP
-;* V163 tmp157 [V163 ] ( 0, 0 ) int -> zero-ref "field V107._length (fldOffset=0x8)" P-INDEP
-;* V164 tmp158 [V164 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V109._reference (fldOffset=0x0)" P-INDEP
-;* V165 tmp159 [V165 ] ( 0, 0 ) int -> zero-ref ptr "field V109._length (fldOffset=0x8)" P-INDEP
-;* V166 tmp160 [V166 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V112._reference (fldOffset=0x0)" P-INDEP
-;* V167 tmp161 [V167 ] ( 0, 0 ) int -> zero-ref "field V112._length (fldOffset=0x8)" P-INDEP
-;* V168 tmp162 [V168 ] ( 0, 0 ) byref -> zero-ref "field V128._reference (fldOffset=0x0)" P-INDEP
-;* V169 tmp163 [V169 ] ( 0, 0 ) int -> zero-ref "field V128._length (fldOffset=0x8)" P-INDEP
-; V170 tmp164 [V170,T55] ( 2, 1 ) byref -> r13 single-def "field V129._reference (fldOffset=0x0)" P-INDEP
-; V171 tmp165 [V171,T61] ( 2, 1 ) int -> rdi "field V129._length (fldOffset=0x8)" P-INDEP
-;* V172 tmp166 [V172 ] ( 0, 0 ) byref -> zero-ref "field V132._reference (fldOffset=0x0)" P-INDEP
-; V173 tmp167 [V173,T62] ( 2, 1 ) int -> rdi "field V132._length (fldOffset=0x8)" P-INDEP
-; V174 tmp168 [V174,T04] ( 21, 14.50) byref -> r13 single-def "V02.[000..008)"
-; V175 tmp169 [V175,T12] ( 7, 7.93) int -> r12 "V02.[008..012)"
-; V176 tmp170 [V176,T47] ( 2, 2 ) long -> rdx "Cast away GC"
-; V177 GsCookie [V177 ] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V178 tmp172 [V178,T13] ( 11, 7.50) byref -> r14 single-def "shadowVar"
-; V179 tmp173 [V179,T40] ( 4, 2.50) byref -> r15 single-def "shadowVar"
-; V180 tmp174 [V180,T28] ( 5, 4 ) struct (16) [rbp-0xA0] do-not-enreg[SFA] multireg-arg must-init ptr "shadowVar" <System.ReadOnlySpan`1[short]>
-; V181 tmp175 [V181,T45] ( 3, 2 ) int -> rbx "shadowVar"
-; V182 cse0 [V182,T53] ( 3, 1.50) int -> rax "CSE #13: conservative"
-; V183 rat0 [V183,T02] ( 5, 16.50) long -> rdi "Widened IV V97"
+;* V107 tmp101 [V107 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[short]>
+;* V108 tmp102 [V108 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V109 tmp103 [V109,T13] ( 6, 6 ) long -> rsi "Inlining Arg"
+;* V110 tmp104 [V110 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[short]>
+;* V111 tmp105 [V111 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V112 tmp106 [V112 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V113 tmp107 [V113 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V114 tmp108 [V114,T08] ( 17, 9 ) byref -> [rbp-0xB8] spill-single-def ptr "field V04._reference (fldOffset=0x0)" P-INDEP
+; V115 tmp109 [V115,T06] ( 19, 10 ) int -> [rbp-0x8C] spill-single-def ptr "field V04._length (fldOffset=0x8)" P-INDEP
+; V116 tmp110 [V116,T38] ( 2, 2 ) byref -> rsi single-def "field V08._reference (fldOffset=0x0)" P-INDEP
+; V117 tmp111 [V117,T33] ( 3, 3 ) int -> rax "field V08._length (fldOffset=0x8)" P-INDEP
+;* V118 tmp112 [V118,T62] ( 0, 0 ) byref -> zero-ref single-def ptr "field V10._reference (fldOffset=0x0)" P-INDEP
+;* V119 tmp113 [V119,T67] ( 0, 0 ) int -> zero-ref ptr "field V10._length (fldOffset=0x8)" P-INDEP
+;* V120 tmp114 [V120 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V121 tmp115 [V121 ] ( 0, 0 ) int -> zero-ref ptr "field V14._length (fldOffset=0x8)" P-INDEP
+;* V122 tmp116 [V122 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V123 tmp117 [V123 ] ( 0, 0 ) int -> zero-ref ptr "field V15._length (fldOffset=0x8)" P-INDEP
+;* V124 tmp118 [V124 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V21._reference (fldOffset=0x0)" P-INDEP
+;* V125 tmp119 [V125 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
+;* V126 tmp120 [V126 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V22._reference (fldOffset=0x0)" P-INDEP
+;* V127 tmp121 [V127 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
+;* V128 tmp122 [V128,T68] ( 0, 0 ) byref -> zero-ref single-def ptr "field V56._reference (fldOffset=0x0)" P-INDEP
+; V129 tmp123 [V129,T58] ( 2, 1 ) int -> rdi "field V56._length (fldOffset=0x8)" P-INDEP
+;* V130 tmp124 [V130,T69] ( 0, 0 ) byref -> zero-ref single-def ptr "field V57._reference (fldOffset=0x0)" P-INDEP
+;* V131 tmp125 [V131,T73] ( 0, 0 ) int -> zero-ref ptr "field V57._length (fldOffset=0x8)" P-INDEP
+;* V132 tmp126 [V132 ] ( 0, 0 ) byref -> zero-ref ptr "field V65._reference (fldOffset=0x0)" P-INDEP
+;* V133 tmp127 [V133 ] ( 0, 0 ) int -> zero-ref ptr "field V65._length (fldOffset=0x8)" P-INDEP
+;* V134 tmp128 [V134 ] ( 0, 0 ) byref -> zero-ref ptr "field V66._reference (fldOffset=0x0)" P-INDEP
+;* V135 tmp129 [V135 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
+;* V136 tmp130 [V136,T70] ( 0, 0 ) byref -> zero-ref single-def ptr "field V82._reference (fldOffset=0x0)" P-INDEP
+;* V137 tmp131 [V137,T74] ( 0, 0 ) int -> zero-ref ptr "field V82._length (fldOffset=0x8)" P-INDEP
+;* V138 tmp132 [V138 ] ( 0, 0 ) byref -> zero-ref "field V92._reference (fldOffset=0x0)" P-INDEP
+;* V139 tmp133 [V139 ] ( 0, 0 ) int -> zero-ref "field V92._length (fldOffset=0x8)" P-INDEP
+;* V140 tmp134 [V140 ] ( 0, 0 ) byref -> zero-ref "field V93._reference (fldOffset=0x0)" P-INDEP
+;* V141 tmp135 [V141 ] ( 0, 0 ) int -> zero-ref "field V93._length (fldOffset=0x8)" P-INDEP
+;* V142 tmp136 [V142 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V95._reference (fldOffset=0x0)" P-INDEP
+;* V143 tmp137 [V143 ] ( 0, 0 ) int -> zero-ref ptr "field V95._length (fldOffset=0x8)" P-INDEP
+;* V144 tmp138 [V144 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V98._reference (fldOffset=0x0)" P-INDEP
+;* V145 tmp139 [V145 ] ( 0, 0 ) int -> zero-ref "field V98._length (fldOffset=0x8)" P-INDEP
+;* V146 tmp140 [V146 ] ( 0, 0 ) byref -> zero-ref "field V106._reference (fldOffset=0x0)" P-INDEP
+;* V147 tmp141 [V147 ] ( 0, 0 ) int -> zero-ref "field V106._length (fldOffset=0x8)" P-INDEP
+; V148 tmp142 [V148,T50] ( 2, 1 ) byref -> r13 single-def "field V107._reference (fldOffset=0x0)" P-INDEP
+; V149 tmp143 [V149,T59] ( 2, 1 ) int -> rdi "field V107._length (fldOffset=0x8)" P-INDEP
+;* V150 tmp144 [V150 ] ( 0, 0 ) byref -> zero-ref "field V110._reference (fldOffset=0x0)" P-INDEP
+; V151 tmp145 [V151,T60] ( 2, 1 ) int -> rdi "field V110._length (fldOffset=0x8)" P-INDEP
+; V152 tmp146 [V152,T04] ( 21, 14.50) byref -> r13 single-def "V02.[000..008)"
+; V153 tmp147 [V153,T05] ( 9, 12.43) int -> r12 "V02.[008..012)"
+; V154 tmp148 [V154,T40] ( 2, 2 ) long -> rdx "Cast away GC"
+; V155 GsCookie [V155 ] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V156 tmp150 [V156,T12] ( 11, 7.50) byref -> r14 single-def "shadowVar"
+; V157 tmp151 [V157,T34] ( 4, 2.50) byref -> r15 single-def "shadowVar"
+; V158 tmp152 [V158,T23] ( 5, 4 ) struct (16) [rbp-0xA0] do-not-enreg[SFA] multireg-arg must-init ptr "shadowVar" <System.ReadOnlySpan`1[short]>
+; V159 tmp153 [V159,T37] ( 3, 2 ) int -> rbx "shadowVar"
+; V160 cse0 [V160,T48] ( 3, 1.50) int -> rax "CSE #13: conservative"
+; V161 rat0 [V161,T02] ( 5, 16.50) long -> rdi "Widened IV V83"
;
; Lcl frame size = 152
G_M39104_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 152
lea rbp, [rsp+0xC0]
xor eax, eax
mov qword ptr [rbp-0xA0], rax
mov qword ptr [rbp-0x30], 0xD1FFAB1E
mov bword ptr [rbp-0x80], rdx
mov qword ptr [rbp-0x78], rcx
;; size=50 bbWeight=1 PerfScore 11.00
G_M39104_IG02:
mov ebx, r8d
;; size=3 bbWeight=1 PerfScore 0.25
G_M39104_IG03:
vmovdqu xmm0, xmmword ptr [rbp-0x80]
vmovdqu xmmword ptr [rbp-0xA0], xmm0
;; size=13 bbWeight=1 PerfScore 4.00
G_M39104_IG04:
mov r15, rsi
mov r14, rdi
mov r13, bword ptr [rbp-0xA0]
mov r12d, dword ptr [rbp-0x98]
mov rsi, bword ptr [r14+0x50]
mov eax, dword ptr [r14+0x58]
mov edi, dword ptr [r14+0x10]
cmp edi, eax
- ja G_M39104_IG50
+ ja G_M39104_IG48
mov edx, edi
lea rcx, bword ptr [rsi+2*rdx]
sub eax, edi
mov bword ptr [rbp-0xB8], rcx
mov dword ptr [rbp-0x8C], eax
cmp r12d, 2
- je G_M39104_IG37
+ je G_M39104_IG36
;; size=71 bbWeight=1 PerfScore 14.00
G_M39104_IG05:
mov rsi, rcx
mov r8, r13
cmp r12d, 5
- ja G_M39104_IG20
+ ja G_M39104_IG19
;; size=16 bbWeight=0.50 PerfScore 0.88
G_M39104_IG06:
mov rcx, bword ptr [rbp-0xB8]
mov esi, r12d
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rsi]
lea rdx, G_M39104_IG02
add rdi, rdx
jmp rdi
;; size=32 bbWeight=0.43 PerfScore 3.00
G_M39104_IG07:
mov r8d, -1
mov eax, r8d
mov r13, rcx
- jmp G_M39104_IG36
+ jmp G_M39104_IG35
;; size=17 bbWeight=0.50 PerfScore 1.38
G_M39104_IG08:
movsx rsi, word ptr [r13]
movzx rdi, si
dec edi
cmp edi, 254
jae SHORT G_M39104_IG09
mov rdi, rcx
mov edx, eax
mov r8, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
call [r8]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
mov r8d, eax
jmp SHORT G_M39104_IG10
;; size=41 bbWeight=0.50 PerfScore 5.88
G_M39104_IG09:
mov rdi, rcx
mov edx, eax
mov r8, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [r8]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
mov r8d, eax
;; size=21 bbWeight=0.50 PerfScore 2.00
G_M39104_IG10:
mov eax, r8d
mov r13, bword ptr [rbp-0xB8]
- jmp G_M39104_IG36
+ jmp G_M39104_IG35
;; size=15 bbWeight=0.50 PerfScore 1.62
G_M39104_IG11:
movsx rsi, word ptr [r13]
movsx rdx, word ptr [r13+0x02]
movzx rdi, si
dec edi
cmp edi, 254
- jae SHORT G_M39104_IG13
+ jae SHORT G_M39104_IG12
movzx rdi, dx
dec edi
cmp edi, 254
- jae SHORT G_M39104_IG13
- movzx rdi, si
- movzx r8, dx
- xor edi, r8d
- cmp edi, 32
- jne SHORT G_M39104_IG12
+ jae SHORT G_M39104_IG12
movzx rsi, si
- movzx rdi, dx
- cmp esi, edi
- cmovl esi, edi
- movsx rsi, si
- mov rdi, rcx
- mov edx, eax
- mov r8, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+Or20Transform](byref,short,int):int
- call [r8]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+Or20Transform](byref,short,int):int
- mov r8d, eax
- jmp SHORT G_M39104_IG14
- ;; size=89 bbWeight=0.50 PerfScore 10.38
-G_M39104_IG12:
+ movzx rdx, dx
movsx rdx, dx
movsx rsi, si
mov rdi, rcx
mov ecx, eax
mov r8, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,short,int):int
call [r8]System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,short,int):int
mov r8d, eax
- jmp SHORT G_M39104_IG14
- ;; size=31 bbWeight=0.50 PerfScore 3.25
-G_M39104_IG13:
+ jmp SHORT G_M39104_IG13
+ ;; size=73 bbWeight=0.50 PerfScore 9.25
+G_M39104_IG12:
mov rdi, rcx
mov ecx, eax
mov r8, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int
call [r8]System.SpanHelpers:NonPackedIndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int
mov r8d, eax
;; size=21 bbWeight=0.50 PerfScore 2.00
-G_M39104_IG14:
+G_M39104_IG13:
mov eax, r8d
mov r13, bword ptr [rbp-0xB8]
- jmp G_M39104_IG36
+ jmp G_M39104_IG35
;; size=15 bbWeight=0.50 PerfScore 1.62
-G_M39104_IG15:
+G_M39104_IG14:
movsx rsi, word ptr [r13]
movsx rdx, word ptr [r13+0x02]
movsx r9, word ptr [r13+0x04]
movzx rdi, si
dec edi
cmp edi, 254
- jae SHORT G_M39104_IG16
+ jae SHORT G_M39104_IG15
movzx rdi, dx
dec edi
cmp edi, 254
- jae SHORT G_M39104_IG16
+ jae SHORT G_M39104_IG15
movzx rdi, r9w
dec edi
cmp edi, 254
- jae SHORT G_M39104_IG16
+ jae SHORT G_M39104_IG15
movsx rcx, r9w
mov rdi, bword ptr [rbp-0xB8]
mov r8d, eax
mov r9, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int
call [r9]System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int
mov r8d, eax
- jmp SHORT G_M39104_IG17
+ jmp SHORT G_M39104_IG16
;; size=87 bbWeight=0.50 PerfScore 12.12
-G_M39104_IG16:
+G_M39104_IG15:
mov rdi, rcx
mov ecx, r9d
mov r8d, eax
mov r9, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int
call [r9]System.SpanHelpers:NonPackedIndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int
mov r8d, eax
;; size=25 bbWeight=0.50 PerfScore 2.12
-G_M39104_IG17:
+G_M39104_IG16:
mov eax, r8d
mov r13, bword ptr [rbp-0xB8]
- jmp G_M39104_IG36
+ jmp G_M39104_IG35
;; size=15 bbWeight=0.50 PerfScore 1.62
-G_M39104_IG18:
+G_M39104_IG17:
movsx r8, word ptr [r13+0x06]
movsx rsi, word ptr [r13]
movsx rdx, word ptr [r13+0x02]
movsx rcx, word ptr [r13+0x04]
mov rdi, bword ptr [rbp-0xB8]
mov r9d, eax
mov r10, 0xD1FFAB1E ; code for System.SpanHelpers:IndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,short,int):int
call [r10]System.SpanHelpers:IndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,short,int):int
mov r13, bword ptr [rbp-0xB8]
- jmp G_M39104_IG36
+ jmp G_M39104_IG35
;; size=55 bbWeight=0.50 PerfScore 11.75
-G_M39104_IG19:
+G_M39104_IG18:
mov dword ptr [rsp], eax
movsx r9, word ptr [r13+0x08]
movsx rsi, word ptr [r13]
movsx rdx, word ptr [r13+0x02]
movsx rcx, word ptr [r13+0x04]
movsx r8, word ptr [r13+0x06]
mov rdi, bword ptr [rbp-0xB8]
mov r10, 0xD1FFAB1E ; code for System.SpanHelpers:IndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,short,short,int):int
call [r10]System.SpanHelpers:IndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,short,short,int):int
mov r13, bword ptr [rbp-0xB8]
- jmp G_M39104_IG36
+ jmp G_M39104_IG35
;; size=60 bbWeight=0.50 PerfScore 14.12
-G_M39104_IG20:
- mov edi, eax
- mov r9d, r12d
- cmp edi, 8
- jl SHORT G_M39104_IG21
- cmp edi, 20
- jge SHORT G_M39104_IG25
- mov edx, r9d
- sar edx, 1
- cmp edi, edx
+G_M39104_IG19:
+ mov edi, r12d
+ cmp eax, 8
+ jl SHORT G_M39104_IG20
+ cmp eax, 20
jge SHORT G_M39104_IG24
- ;; size=24 bbWeight=0.50 PerfScore 2.50
-G_M39104_IG21:
+ sar edi, 1
+ cmp eax, edi
+ jge SHORT G_M39104_IG23
+ ;; size=19 bbWeight=0.50 PerfScore 2.25
+G_M39104_IG20:
movsxd rdi, eax
lea r8, bword ptr [rsi+2*rdi]
mov bword ptr [rbp-0xA8], r8
mov r9, rsi
cmp rsi, r8
- je SHORT G_M39104_IG23
+ je SHORT G_M39104_IG22
;; size=22 bbWeight=0.50 PerfScore 1.62
-G_M39104_IG22:
+G_M39104_IG21:
mov bword ptr [rbp-0xB0], r9
movzx rsi, word ptr [r9]
movsx rsi, si
mov rdi, r13
mov edx, r12d
mov r10, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedContainsValueType[short](byref,short,int):ubyte
call [r10]System.SpanHelpers:NonPackedContainsValueType[short](byref,short,int):ubyte
test eax, eax
- jne SHORT G_M39104_IG26
+ jne SHORT G_M39104_IG25
mov r9, bword ptr [rbp-0xB0]
add r9, 2
mov rdx, bword ptr [rbp-0xA8]
cmp r9, rdx
- jne SHORT G_M39104_IG22
+ jne SHORT G_M39104_IG21
;; size=61 bbWeight=4 PerfScore 47.00
-G_M39104_IG23:
+G_M39104_IG22:
mov eax, -1
mov r13, bword ptr [rbp-0xB8]
- jmp SHORT G_M39104_IG27
+ jmp SHORT G_M39104_IG26
;; size=14 bbWeight=0.50 PerfScore 1.62
-G_M39104_IG24:
+G_M39104_IG23:
mov rcx, bword ptr [rbp-0xB8]
- jmp SHORT G_M39104_IG28
- align [0 bytes for IG29]
+ jmp SHORT G_M39104_IG27
+ align [0 bytes for IG28]
;; size=9 bbWeight=0.25 PerfScore 0.75
-G_M39104_IG25:
+G_M39104_IG24:
mov rcx, bword ptr [rbp-0xB8]
- jmp SHORT G_M39104_IG28
+ jmp SHORT G_M39104_IG27
;; size=9 bbWeight=0.25 PerfScore 0.75
-G_M39104_IG26:
+G_M39104_IG25:
mov r9, bword ptr [rbp-0xB0]
mov r13, bword ptr [rbp-0xB8]
mov rax, r9
sub rax, r13
shr rax, 1
;; size=23 bbWeight=0.50 PerfScore 1.50
-G_M39104_IG27:
- jmp G_M39104_IG36
+G_M39104_IG26:
+ jmp G_M39104_IG35
;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M39104_IG28:
+G_M39104_IG27:
vxorps ymm0, ymm0, ymm0
vmovdqu ymmword ptr [rbp-0x70], ymm0
vmovdqu ymmword ptr [rbp-0x50], ymm0
lea rdx, bword ptr [rbp-0x70]
xor edi, edi
- test r9d, r9d
- jle SHORT G_M39104_IG30
+ test r12d, r12d
+ jle SHORT G_M39104_IG29
;; size=25 bbWeight=0.50 PerfScore 2.17
-G_M39104_IG29:
+G_M39104_IG28:
movzx rsi, word ptr [r8+2*rdi]
cmp esi, 127
- jg G_M39104_IG33
- mov r10d, esi
- sar r10d, 4
+ jg G_M39104_IG32
+ mov r9d, esi
+ sar r9d, 4
and esi, 15
add rsi, rdx
- mov r11d, 1
- shlx r10d, r11d, r10d
- movzx r10, r10b
- or byte ptr [rsi], r10b
+ mov r10d, 1
+ shlx r9d, r10d, r9d
+ movzx r9, r9b
+ or byte ptr [rsi], r9b
inc edi
- cmp edi, r9d
- jl SHORT G_M39104_IG29
+ cmp edi, r12d
+ jl SHORT G_M39104_IG28
;; size=52 bbWeight=4 PerfScore 40.00
-G_M39104_IG30:
+G_M39104_IG29:
movzx rdx, byte ptr [rdx]
and edx, 1
vmovups xmm0, xmmword ptr [rbp-0x70]
vinserti128 ymm0, ymm0, xmmword ptr [rbp-0x70], 1
vmovups ymmword ptr [rbp-0x70], ymm0
lea r13, bword ptr [rbp-0x84]
test dl, 1
- jne SHORT G_M39104_IG31
+ jne SHORT G_M39104_IG30
lea rdx, [rbp-0x70]
mov rdi, rcx
mov esi, eax
mov r8, 0xD1FFAB1E ; code for System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[int,System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[short]](byref,int,byref):int
call [r8]System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[int,System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[short]](byref,int,byref):int
- jmp SHORT G_M39104_IG32
+ jmp SHORT G_M39104_IG31
;; size=59 bbWeight=0.50 PerfScore 9.12
-G_M39104_IG31:
+G_M39104_IG30:
lea rdx, [rbp-0x70]
mov rdi, rcx
mov esi, eax
mov r8, 0xD1FFAB1E ; code for System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[int,System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Ssse3AndWasmHandleZeroInNeedle,System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[short]](byref,int,byref):int
call [r8]System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[int,System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Ssse3AndWasmHandleZeroInNeedle,System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[short]](byref,int,byref):int
;; size=22 bbWeight=0.50 PerfScore 2.12
-G_M39104_IG32:
+G_M39104_IG31:
mov dword ptr [r13], eax
- jmp SHORT G_M39104_IG34
+ jmp SHORT G_M39104_IG33
;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M39104_IG33:
+G_M39104_IG32:
xor edi, edi
mov dword ptr [rbp-0x84], edi
- jmp SHORT G_M39104_IG35
+ jmp SHORT G_M39104_IG34
;; size=10 bbWeight=0.50 PerfScore 1.62
-G_M39104_IG34:
+G_M39104_IG33:
mov eax, dword ptr [rbp-0x8C]
mov rcx, bword ptr [rbp-0xB8]
mov edi, dword ptr [rbp-0x84]
mov eax, edi
mov r13, rcx
- jmp SHORT G_M39104_IG36
+ jmp SHORT G_M39104_IG35
;; size=26 bbWeight=0.50 PerfScore 2.75
-G_M39104_IG35:
+G_M39104_IG34:
mov rdi, rcx
mov esi, eax
mov rdx, r13
mov ecx, r12d
mov r8, 0xD1FFAB1E ; code for System.Buffers.ProbabilisticMap:ProbabilisticIndexOfAny(byref,int,byref,int):int
call [r8]System.Buffers.ProbabilisticMap:ProbabilisticIndexOfAny(byref,int,byref,int):int
mov edi, eax
mov eax, edi
mov r13, bword ptr [rbp-0xB8]
;; size=35 bbWeight=0.50 PerfScore 2.88
+G_M39104_IG35:
+ jmp SHORT G_M39104_IG39
+ ;; size=2 bbWeight=0.50 PerfScore 1.00
G_M39104_IG36:
- jmp G_M39104_IG41
- ;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M39104_IG37:
movsx rsi, word ptr [r13]
movsx rdx, word ptr [r13+0x02]
movzx rdi, si
dec edi
cmp edi, 254
- jae SHORT G_M39104_IG39
+ jae SHORT G_M39104_IG37
movzx rdi, dx
dec edi
cmp edi, 254
- jae SHORT G_M39104_IG39
- movzx rdi, si
- movzx r8, dx
- xor edi, r8d
- cmp edi, 32
- jne SHORT G_M39104_IG38
+ jae SHORT G_M39104_IG37
movzx rsi, si
- movzx rdi, dx
- cmp esi, edi
- cmovl esi, edi
- movsx rsi, si
- mov rdi, rcx
- mov edx, eax
- mov r8, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+Or20Transform](byref,short,int):int
- call [r8]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+Or20Transform](byref,short,int):int
- jmp SHORT G_M39104_IG40
- ;; size=86 bbWeight=0.50 PerfScore 10.25
-G_M39104_IG38:
+ movzx rdx, dx
movsx rdx, dx
movsx rsi, si
mov rdi, rcx
mov ecx, eax
mov r8, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,short,int):int
call [r8]System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,short,int):int
- jmp SHORT G_M39104_IG40
- ;; size=28 bbWeight=0.50 PerfScore 3.12
-G_M39104_IG39:
+ jmp SHORT G_M39104_IG38
+ ;; size=70 bbWeight=0.50 PerfScore 9.12
+G_M39104_IG37:
mov rdi, rcx
mov ecx, eax
mov r8, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int
call [r8]System.SpanHelpers:NonPackedIndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int
;; size=18 bbWeight=0.50 PerfScore 1.88
-G_M39104_IG40:
+G_M39104_IG38:
mov r13, bword ptr [rbp-0xB8]
;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M39104_IG41:
+G_M39104_IG39:
cmp eax, -1
- je G_M39104_IG47
+ je G_M39104_IG45
;; size=9 bbWeight=1 PerfScore 1.25
-G_M39104_IG42:
+G_M39104_IG40:
cmp eax, dword ptr [rbp-0x8C]
- ja G_M39104_IG50
+ ja G_M39104_IG48
mov edi, eax
mov bword ptr [r15], r13
mov dword ptr [r15+0x08], edi
test bl, bl
setne dil
movzx rdi, dil
add edi, eax
movsxd rsi, edi
test rsi, 0xD1FFAB1E
- jne SHORT G_M39104_IG43
+ jne SHORT G_M39104_IG41
mov edi, dword ptr [r14+0x58]
mov eax, dword ptr [r14+0x10]
sub edi, eax
cmp edi, esi
- jle SHORT G_M39104_IG43
+ jle SHORT G_M39104_IG41
add eax, esi
mov dword ptr [r14+0x10], eax
add qword ptr [r14+0x08], rsi
- jmp SHORT G_M39104_IG44
+ jmp SHORT G_M39104_IG42
;; size=71 bbWeight=0.50 PerfScore 10.12
-G_M39104_IG43:
+G_M39104_IG41:
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Buffers.SequenceReader`1[short]:AdvanceToNextSpan(long):this
call [rax]System.Buffers.SequenceReader`1[short]:AdvanceToNextSpan(long):this
;; size=15 bbWeight=0.50 PerfScore 1.75
-G_M39104_IG44:
+G_M39104_IG42:
mov eax, 1
cmp qword ptr [rbp-0x30], 0xD1FFAB1E
- je SHORT G_M39104_IG45
+ je SHORT G_M39104_IG43
call CORINFO_HELP_FAIL_FAST
;; size=20 bbWeight=0.50 PerfScore 2.12
-G_M39104_IG45:
+G_M39104_IG43:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M39104_IG46:
+G_M39104_IG44:
vzeroupper
add rsp, 152
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=21 bbWeight=0.50 PerfScore 2.62
-G_M39104_IG47:
+G_M39104_IG45:
mov rdx, bword ptr [rbp-0xA0]
mov rcx, qword ptr [rbp-0x98]
movzx r8, bl
mov rdi, r14
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Buffers.SequenceReader`1[short]:TryReadToAnySlow(byref,System.ReadOnlySpan`1[short],ubyte):ubyte:this
call [rax]System.Buffers.SequenceReader`1[short]:TryReadToAnySlow(byref,System.ReadOnlySpan`1[short],ubyte):ubyte:this
cmp qword ptr [rbp-0x30], 0xD1FFAB1E
- je SHORT G_M39104_IG48
+ je SHORT G_M39104_IG46
call CORINFO_HELP_FAIL_FAST
;; size=51 bbWeight=0.50 PerfScore 5.00
-G_M39104_IG48:
+G_M39104_IG46:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M39104_IG49:
+G_M39104_IG47:
vzeroupper
add rsp, 152
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=21 bbWeight=0.50 PerfScore 2.62
-G_M39104_IG50:
+G_M39104_IG48:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
RWD00 dd G_M39104_IG07 - G_M39104_IG02
dd G_M39104_IG08 - G_M39104_IG02
dd G_M39104_IG11 - G_M39104_IG02
- dd G_M39104_IG15 - G_M39104_IG02
+ dd G_M39104_IG14 - G_M39104_IG02
+ dd G_M39104_IG17 - G_M39104_IG02
dd G_M39104_IG18 - G_M39104_IG02
- dd G_M39104_IG19 - G_M39104_IG02
-; Total bytes of code 1446, prolog size 50, PerfScore 264.42, instruction count 365, allocated bytes for code 1450 (MethodHash=5639673f) for method System.Buffers.SequenceReader`1[short]:TryReadToAny(byref,System.ReadOnlySpan`1[short],ubyte):ubyte:this (FullOpts)
+; Total bytes of code 1347, prolog size 50, PerfScore 255.54, instruction count 336, allocated bytes for code 1351 (MethodHash=5639673f) for method System.Buffers.SequenceReader`1[short]:TryReadToAny(byref,System.ReadOnlySpan`1[short],ubyte):ubyte:this (FullOpts)
-78 (-45.09 % of base) - System.Xml.XmlDeclaration:IsValidXmlVersion(System.String):ubyte
; Assembly listing for method System.Xml.XmlDeclaration:IsValidXmlVersion(System.String):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; 21 single block inlinees; 6 inlinees without PGO data
+; 0 inlinees with PGO data; 23 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 6, 4.50) ref -> rdi class-hnd single-def <System.String>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T03] ( 4, 4 ) int -> rcx "Inlining Arg"
+; V02 tmp1 [V02,T02] ( 3, 3 ) int -> rcx "Inlining Arg"
;* V03 tmp2 [V03 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V04 tmp3 [V04 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V05 tmp4 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V06 tmp5 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
;* V07 tmp6 [V07 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V08 tmp7 [V08,T07] ( 2, 1 ) int -> rax "Inline return value spill temp"
-; V09 tmp8 [V09 ] ( 2, 2 ) ushort -> [rbp-0x04] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V10 tmp9 [V10 ] ( 2, 2 ) ushort -> [rbp-0x08] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V08 tmp7 [V08,T04] ( 2, 1 ) int -> rax "Inline return value spill temp"
+;* V09 tmp8 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V10 tmp9 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V11 tmp10 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V12 tmp11 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V13 tmp12 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V14 tmp13 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V15 tmp14 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V16 tmp15 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V14 tmp13 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V15 tmp14 [V15 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V16 tmp15 [V16 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V17 tmp16 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V18 tmp17 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V19 tmp18 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V20 tmp19 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V21 tmp20 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V22 tmp21 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V23 tmp22 [V23 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V24 tmp23 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V25 tmp24 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V26 tmp25 [V26 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V27 tmp26 [V27 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V28 tmp27 [V28 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V29 tmp28 [V29 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V30 tmp29 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V31 tmp30 [V31 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V32 tmp31 [V32,T01] ( 6, 6 ) ushort -> rsi "Inlining Arg"
-; V33 tmp32 [V33,T02] ( 5, 5 ) ushort -> rdx "Inlining Arg"
-;* V34 tmp33 [V34 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V35 tmp34 [V35,T06] ( 3, 1.50) int -> rax "Inline return value spill temp"
-;* V36 tmp35 [V36 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V37 tmp36 [V37 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V20 tmp19 [V20 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V21 tmp20 [V21 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V22 tmp21 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp22 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V24 tmp23 [V24 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V25 tmp24 [V25 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V26 tmp25 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V27 tmp26 [V27 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V28 tmp27 [V28 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V29 tmp28 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V30 tmp29 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V31 tmp30 [V31 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V32 tmp31 [V32 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V33 tmp32 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V34 tmp33 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V35 tmp34 [V35 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V36 tmp35 [V36 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V37 tmp36 [V37,T05] ( 2, 1 ) int -> rax "Inline return value spill temp"
;* V38 tmp37 [V38 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
-;* V39 tmp38 [V39 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V39 tmp38 [V39,T06] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V40 tmp39 [V40 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V41 tmp40 [V41 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V41 tmp40 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V42 tmp41 [V42 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V43 tmp42 [V43 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V44 tmp43 [V44 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V45 tmp44 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V46 tmp45 [V46 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V47 tmp46 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V48 tmp47 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V49 tmp48 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V50 tmp49 [V50 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V51 tmp50 [V51 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V52 tmp51 [V52 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V43 tmp42 [V43 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V44 tmp43 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V45 tmp44 [V45 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V46 tmp45 [V46 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V47 tmp46 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V48 tmp47 [V48 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V49 tmp48 [V49 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V50 tmp49 [V50 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V51 tmp50 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V52 tmp51 [V52 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V53 tmp52 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V54 tmp53 [V54 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V55 tmp54 [V55 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V56 tmp55 [V56 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V57 tmp56 [V57 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V58 tmp57 [V58 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V59 tmp58 [V59 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V60 tmp59 [V60 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V61 tmp60 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V62 tmp61 [V62 ] ( 0, 0 ) byref -> zero-ref "field V03._reference (fldOffset=0x0)" P-INDEP
-;* V63 tmp62 [V63 ] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x8)" P-INDEP
-;* V64 tmp63 [V64 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V65 tmp64 [V65 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
-; V66 tmp65 [V66,T05] ( 3, 1.50) byref -> rdi single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V67 tmp66 [V67 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
-;* V68 tmp67 [V68 ] ( 0, 0 ) byref -> zero-ref "field V06._reference (fldOffset=0x0)" P-INDEP
-;* V69 tmp68 [V69 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP
-;* V70 tmp69 [V70 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
-;* V71 tmp70 [V71 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
-;* V72 tmp71 [V72 ] ( 0, 0 ) byref -> zero-ref "field V22._reference (fldOffset=0x0)" P-INDEP
-;* V73 tmp72 [V73 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
-;* V74 tmp73 [V74 ] ( 0, 0 ) byref -> zero-ref single-def "field V30._reference (fldOffset=0x0)" P-INDEP
-;* V75 tmp74 [V75 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
-;* V76 tmp75 [V76 ] ( 0, 0 ) byref -> zero-ref "field V45._reference (fldOffset=0x0)" P-INDEP
-;* V77 tmp76 [V77 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
-;* V78 tmp77 [V78 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V79 tmp78 [V79 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-;* V80 tmp79 [V80 ] ( 0, 0 ) byref -> zero-ref "field V61._reference (fldOffset=0x0)" P-INDEP
-;* V81 tmp80 [V81 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
-; V82 cse0 [V82,T04] ( 4, 3 ) int -> rdx "CSE #01: aggressive"
+;* V54 tmp53 [V54 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V55 tmp54 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V56 tmp55 [V56 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V57 tmp56 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V58 tmp57 [V58 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
+;* V59 tmp58 [V59 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V60 tmp59 [V60 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V61 tmp60 [V61 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V62 tmp61 [V62 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V63 tmp62 [V63 ] ( 0, 0 ) byref -> zero-ref "field V03._reference (fldOffset=0x0)" P-INDEP
+;* V64 tmp63 [V64 ] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x8)" P-INDEP
+;* V65 tmp64 [V65 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
+;* V66 tmp65 [V66 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
+; V67 tmp66 [V67,T03] ( 2, 1 ) byref -> rdi single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V68 tmp67 [V68 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
+;* V69 tmp68 [V69 ] ( 0, 0 ) byref -> zero-ref "field V06._reference (fldOffset=0x0)" P-INDEP
+;* V70 tmp69 [V70 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP
+;* V71 tmp70 [V71 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V72 tmp71 [V72 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
+;* V73 tmp72 [V73 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V74 tmp73 [V74 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
+;* V75 tmp74 [V75 ] ( 0, 0 ) byref -> zero-ref single-def "field V34._reference (fldOffset=0x0)" P-INDEP
+;* V76 tmp75 [V76 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
+;* V77 tmp76 [V77 ] ( 0, 0 ) byref -> zero-ref "field V41._reference (fldOffset=0x0)" P-INDEP
+;* V78 tmp77 [V78 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
+;* V79 tmp78 [V79 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
+;* V80 tmp79 [V80 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
+;* V81 tmp80 [V81 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V82 tmp81 [V82 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
+; V83 cse0 [V83,T01] ( 4, 3 ) int -> rdx "CSE #01: aggressive"
;
-; Lcl frame size = 16
+; Lcl frame size = 0
G_M14864_IG01:
push rbp
- sub rsp, 16
- lea rbp, [rsp+0x10]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M14864_IG02:
mov edx, dword ptr [rdi+0x08]
cmp edx, 3
- jl G_M14864_IG07
- ;; size=12 bbWeight=1 PerfScore 3.25
+ jl SHORT G_M14864_IG05
+ ;; size=8 bbWeight=1 PerfScore 3.25
G_M14864_IG03:
cmp word ptr [rdi+0x0C], 49
- jne SHORT G_M14864_IG07
+ jne SHORT G_M14864_IG05
cmp word ptr [rdi+0x0E], 46
- jne SHORT G_M14864_IG07
+ jne SHORT G_M14864_IG05
lea ecx, [rdx-0x02]
mov edx, edx
mov esi, ecx
add rsi, 2
cmp rdx, rsi
- jb SHORT G_M14864_IG09
+ jb SHORT G_M14864_IG07
add rdi, 16
- mov dword ptr [rbp-0x04], 48
- mov dword ptr [rbp-0x08], 57
- movzx rsi, word ptr [rbp-0x04]
- movzx rdx, word ptr [rbp-0x08]
- lea eax, [rsi-0x01]
- cmp eax, 254
- jae SHORT G_M14864_IG04
- lea eax, [rdx-0x01]
- cmp eax, 254
- jae SHORT G_M14864_IG04
- cmp edx, esi
- jl SHORT G_M14864_IG04
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
+ mov edx, 9
+ mov esi, 48
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- jmp SHORT G_M14864_IG05
- ;; size=104 bbWeight=0.50 PerfScore 12.75
-G_M14864_IG04:
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M14864_IG05:
shr eax, 31
- ;; size=3 bbWeight=0.50 PerfScore 0.25
-G_M14864_IG06:
- add rsp, 16
+ ;; size=59 bbWeight=0.50 PerfScore 7.50
+G_M14864_IG04:
pop rbp
ret
- ;; size=6 bbWeight=0.50 PerfScore 0.88
-G_M14864_IG07:
+ ;; size=2 bbWeight=0.50 PerfScore 0.75
+G_M14864_IG05:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M14864_IG08:
- add rsp, 16
+G_M14864_IG06:
pop rbp
ret
- ;; size=6 bbWeight=0.50 PerfScore 0.88
-G_M14864_IG09:
+ ;; size=2 bbWeight=0.50 PerfScore 0.75
+G_M14864_IG07:
mov edi, 33
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 173, prolog size 10, PerfScore 21.50, instruction count 49, allocated bytes for code 173 (MethodHash=f260c5ef) for method System.Xml.XmlDeclaration:IsValidXmlVersion(System.String):ubyte (FullOpts)
+; Total bytes of code 95, prolog size 4, PerfScore 13.62, instruction count 30, allocated bytes for code 95 (MethodHash=f260c5ef) for method System.Xml.XmlDeclaration:IsValidXmlVersion(System.String):ubyte (FullOpts)
-75 (-4.79 % of base) - System.Text.RegularExpressions.Generated.F2E36BBCB46D79A0BB144867AC899FDD2263642E5E752DEC0C254D0564F94D450__CreateIntegerRegex_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this
; Assembly listing for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F2E36BBCB46D79A0BB144867AC899FDD2263642E5E752DEC0C254D0564F94D450__CreateIntegerRegex_0+RunnerFactory+Runner: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; 61 single block inlinees; 31 inlinees without PGO data
+; 0 inlinees with PGO data; 63 single block inlinees; 38 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 54,800 ) ref -> rbx this class-hnd single-def <System.Text.RegularExpressions.Generated.<RegexGenerator_g>F2E36BBCB46D79A0BB144867AC899FDD2263642E5E752DEC0C254D0564F94D450__CreateIntegerRegex_0+RunnerFactory+Runner>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
; V02 loc0 [V02,T07] ( 34,216.50) int -> registers
-; V03 loc1 [V03,T86] ( 5, 5 ) int -> r13
+; V03 loc1 [V03,T85] ( 5, 5 ) int -> r13
;* V04 loc2 [V04 ] ( 0, 0 ) ushort -> zero-ref
-; V05 loc3 [V05,T59] ( 2, 20 ) int -> [rbp-0x2C] spill-single-def
-; V06 loc4 [V06,T19] ( 2,132 ) int -> rdx
-;* V07 loc5 [V07,T102] ( 0, 0 ) int -> zero-ref
-; V08 loc6 [V08,T72] ( 5, 8.50) int -> [rbp-0x30]
-; V09 loc7 [V09,T57] ( 3, 24 ) int -> r13
-; V10 loc8 [V10,T55] ( 5, 26 ) int -> [rbp-0x34]
+; V05 loc3 [V05,T58] ( 2, 20 ) int -> [rbp-0x2C] spill-single-def
+; V06 loc4 [V06,T18] ( 2,132 ) int -> rdx
+;* V07 loc5 [V07,T101] ( 0, 0 ) int -> zero-ref
+; V08 loc6 [V08,T71] ( 5, 8.50) int -> [rbp-0x30]
+; V09 loc7 [V09,T56] ( 3, 24 ) int -> r13
+; V10 loc8 [V10,T54] ( 5, 26 ) int -> [rbp-0x34]
; V11 loc9 [V11,T04] ( 7,276 ) int -> [rbp-0x38]
; V12 loc10 [V12 ] ( 9, 89 ) int -> [rbp-0x40] do-not-enreg[X] addr-exposed ld-addr-op
;* V13 loc11 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ushort]>
-; V14 loc12 [V14,T93] ( 5, 2.50) int -> r13
-; V15 loc13 [V15,T60] ( 3, 12 ) int -> rax
-; V16 loc14 [V16,T33] ( 4, 72 ) int -> r13
-; V17 loc15 [V17,T23] ( 8,120 ) int -> rax
+; V14 loc12 [V14,T92] ( 5, 2.50) int -> r13
+; V15 loc13 [V15,T59] ( 3, 12 ) int -> rax
+; V16 loc14 [V16,T31] ( 4, 72 ) int -> r13
+; V17 loc15 [V17,T21] ( 8,120 ) int -> rax
;# V18 OutArgs [V18 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V19 tmp1 [V19,T17] ( 3,144 ) byref -> rdi "impAppendStmt"
; V20 tmp2 [V20,T06] ( 2,256 ) int -> r10 "dup spill"
-; V21 tmp3 [V21,T77] ( 2, 8 ) int -> r8 "dup spill"
-; V22 tmp4 [V22,T35] ( 4, 64 ) int -> rsi "dup spill"
-; V23 tmp5 [V23,T41] ( 3, 48 ) ref -> rdx class-hnd "impAppendStmt" <int[]>
-; V24 tmp6 [V24,T36] ( 4, 64 ) int -> rdx "dup spill"
-; V25 tmp7 [V25,T42] ( 3, 48 ) ref -> rax class-hnd "impAppendStmt" <int[]>
-; V26 tmp8 [V26,T78] ( 2, 8 ) int -> rax "dup spill"
-; V27 tmp9 [V27,T26] ( 3, 96 ) int -> rax "dup spill"
+; V21 tmp3 [V21,T76] ( 2, 8 ) int -> r8 "dup spill"
+; V22 tmp4 [V22,T33] ( 4, 64 ) int -> rsi "dup spill"
+; V23 tmp5 [V23,T40] ( 3, 48 ) ref -> rdx class-hnd "impAppendStmt" <int[]>
+; V24 tmp6 [V24,T34] ( 4, 64 ) int -> rdx "dup spill"
+; V25 tmp7 [V25,T41] ( 3, 48 ) ref -> rax class-hnd "impAppendStmt" <int[]>
+; V26 tmp8 [V26,T77] ( 2, 8 ) int -> rax "dup spill"
+; V27 tmp9 [V27,T25] ( 3, 96 ) int -> rax "dup spill"
;* V28 tmp10 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V29 tmp11 [V29,T89] ( 2, 4 ) byref -> r12 single-def "Inlining Arg"
-; V30 tmp12 [V30,T91] ( 2, 4 ) int -> rcx "Inlining Arg"
-; V31 tmp13 [V31,T84] ( 3, 6 ) int -> rdi "Inline stloc first use temp"
-; V32 tmp14 [V32,T73] ( 4, 8 ) int -> rcx "Inline stloc first use temp"
-; V33 tmp15 [V33,T66] ( 3, 12 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+; V29 tmp11 [V29,T88] ( 2, 4 ) byref -> r12 single-def "Inlining Arg"
+; V30 tmp12 [V30,T90] ( 2, 4 ) int -> rcx "Inlining Arg"
+; V31 tmp13 [V31,T83] ( 3, 6 ) int -> rdi "Inline stloc first use temp"
+; V32 tmp14 [V32,T72] ( 4, 8 ) int -> rcx "Inline stloc first use temp"
+; V33 tmp15 [V33,T65] ( 3, 12 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
;* V34 tmp16 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V35 tmp17 [V35,T67] ( 3, 12 ) byref -> rdi "dup spill"
-; V36 tmp18 [V36,T79] ( 2, 8 ) ubyte -> rax "Inline return value spill temp"
-; V37 tmp19 [V37,T48] ( 4, 32 ) ushort -> rdi "Inlining Arg"
+; V35 tmp17 [V35,T66] ( 3, 12 ) byref -> rdi "dup spill"
+; V36 tmp18 [V36,T78] ( 2, 8 ) ubyte -> rax "Inline return value spill temp"
+; V37 tmp19 [V37,T46] ( 4, 32 ) ushort -> rdi "Inlining Arg"
;* V38 tmp20 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V39 tmp21 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V40 tmp22 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V41 tmp23 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V42 tmp24 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V43 tmp25 [V43,T96] ( 2, 2 ) byref -> r12 single-def "Inlining Arg"
-; V44 tmp26 [V44,T98] ( 2, 2 ) int -> rcx "Inlining Arg"
-; V45 tmp27 [V45,T58] ( 3, 24 ) int -> rax "Inline stloc first use temp"
-; V46 tmp28 [V46,T49] ( 4, 32 ) int -> rcx "Inline stloc first use temp"
-; V47 tmp29 [V47,T43] ( 3, 48 ) ref -> rax class-hnd "impAppendStmt" <int[]>
+; V43 tmp25 [V43,T95] ( 2, 2 ) byref -> r12 single-def "Inlining Arg"
+; V44 tmp26 [V44,T97] ( 2, 2 ) int -> rcx "Inlining Arg"
+; V45 tmp27 [V45,T57] ( 3, 24 ) int -> rax "Inline stloc first use temp"
+; V46 tmp28 [V46,T47] ( 4, 32 ) int -> rcx "Inline stloc first use temp"
+; V47 tmp29 [V47,T42] ( 3, 48 ) ref -> rax class-hnd "impAppendStmt" <int[]>
;* V48 tmp30 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V49 tmp31 [V49,T44] ( 3, 48 ) byref -> rax "dup spill"
-; V50 tmp32 [V50,T85] ( 3, 6 ) int -> rax "Inline stloc first use temp"
-; V51 tmp33 [V51,T74] ( 4, 8 ) int -> rcx "Inline stloc first use temp"
-; V52 tmp34 [V52,T68] ( 3, 12 ) ref -> rax class-hnd "impAppendStmt" <int[]>
+; V49 tmp31 [V49,T43] ( 3, 48 ) byref -> rax "dup spill"
+; V50 tmp32 [V50,T84] ( 3, 6 ) int -> rax "Inline stloc first use temp"
+; V51 tmp33 [V51,T73] ( 4, 8 ) int -> rcx "Inline stloc first use temp"
+; V52 tmp34 [V52,T67] ( 3, 12 ) ref -> rax class-hnd "impAppendStmt" <int[]>
;* V53 tmp35 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V54 tmp36 [V54,T69] ( 3, 12 ) byref -> rax "dup spill"
+; V54 tmp36 [V54,T68] ( 3, 12 ) byref -> rax "dup spill"
;* V55 tmp37 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V56 tmp38 [V56,T75] ( 2, 8 ) byref -> rcx "Inlining Arg"
-; V57 tmp39 [V57,T80] ( 2, 8 ) int -> rax "Inlining Arg"
-; V58 tmp40 [V58,T30] ( 5, 88 ) ref -> rsi class-hnd "Inline stloc first use temp" <int[]>
-; V59 tmp41 [V59,T31] ( 5, 88 ) int -> rcx "Inline stloc first use temp"
-; V60 tmp42 [V60,T27] ( 3, 96 ) int -> rdx "Inlining Arg"
+; V56 tmp38 [V56,T74] ( 2, 8 ) byref -> rcx "Inlining Arg"
+; V57 tmp39 [V57,T79] ( 2, 8 ) int -> rax "Inlining Arg"
+; V58 tmp40 [V58,T28] ( 5, 88 ) ref -> rsi class-hnd "Inline stloc first use temp" <int[]>
+; V59 tmp41 [V59,T29] ( 5, 88 ) int -> rcx "Inline stloc first use temp"
+; V60 tmp42 [V60,T26] ( 3, 96 ) int -> rdx "Inlining Arg"
;* V61 tmp43 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V62 tmp44 [V62,T38] ( 2, 64 ) byref -> rdi "Inlining Arg"
-; V63 tmp45 [V63,T39] ( 2, 64 ) int -> rax "Inlining Arg"
-; V64 tmp46 [V64,T24] ( 4,112 ) int -> [rbp-0x44] "Inlining Arg"
+; V62 tmp44 [V62,T36] ( 2, 64 ) byref -> rdi "Inlining Arg"
+; V63 tmp45 [V63,T37] ( 2, 64 ) int -> rax "Inlining Arg"
+; V64 tmp46 [V64,T22] ( 4,112 ) int -> [rbp-0x44] "Inlining Arg"
; V65 tmp47 [V65,T16] ( 5,144 ) int -> [rbp-0x48] "Inlining Arg"
;* V66 tmp48 [V66 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V67 tmp49 [V67,T37] ( 4, 64 ) int -> r11 "Inline stloc first use temp"
-; V68 tmp50 [V68,T25] ( 3, 96 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-; V69 tmp51 [V69,T15] ( 3,160 ) int -> rdx "Inlining Arg"
-; V70 tmp52 [V70,T12] ( 3,192 ) int -> rdi "Inline stloc first use temp"
+; V67 tmp49 [V67,T35] ( 4, 64 ) int -> r11 "Inline stloc first use temp"
+; V68 tmp50 [V68,T24] ( 3, 96 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+; V69 tmp51 [V69,T14] ( 3,160 ) int -> rdx "Inlining Arg"
+; V70 tmp52 [V70,T11] ( 3,192 ) int -> rdi "Inline stloc first use temp"
; V71 tmp53 [V71,T05] ( 4,256 ) int -> rcx "Inline stloc first use temp"
; V72 tmp54 [V72,T01] ( 3,384 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
;* V73 tmp55 [V73 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
; V74 tmp56 [V74,T02] ( 3,384 ) byref -> rdi "dup spill"
;* V75 tmp57 [V75 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V76 tmp58 [V76,T50] ( 2, 32 ) byref -> rdx "Inlining Arg"
-; V77 tmp59 [V77,T52] ( 2, 32 ) int -> rax "Inlining Arg"
-; V78 tmp60 [V78,T40] ( 2, 64 ) int -> rax "Inline return value spill temp"
-; V79 tmp61 [V79 ] ( 2,128 ) ushort -> [rbp-0x4C] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V80 tmp62 [V80 ] ( 2,128 ) ushort -> [rbp-0x50] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V76 tmp58 [V76,T48] ( 2, 32 ) byref -> rdx "Inlining Arg"
+; V77 tmp59 [V77,T50] ( 2, 32 ) int -> rax "Inlining Arg"
+; V78 tmp60 [V78,T38] ( 2, 64 ) int -> rax "Inline return value spill temp"
+;* V79 tmp61 [V79 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V80 tmp62 [V80 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V81 tmp63 [V81 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V82 tmp64 [V82 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V83 tmp65 [V83 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V84 tmp66 [V84 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V85 tmp67 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V86 tmp68 [V86 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V84 tmp66 [V84 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V85 tmp67 [V85 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V86 tmp68 [V86 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V87 tmp69 [V87 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V88 tmp70 [V88 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V89 tmp71 [V89 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V90 tmp72 [V90 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V91 tmp73 [V91 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V92 tmp74 [V92 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V93 tmp75 [V93 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V94 tmp76 [V94 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V95 tmp77 [V95 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V96 tmp78 [V96 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V97 tmp79 [V97 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V98 tmp80 [V98 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V99 tmp81 [V99 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V100 tmp82 [V100 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V101 tmp83 [V101 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V102 tmp84 [V102,T08] ( 6,192 ) ushort -> rsi "Inlining Arg"
-; V103 tmp85 [V103,T20] ( 5,128 ) ushort -> rdx "Inlining Arg"
-;* V104 tmp86 [V104 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V105 tmp87 [V105,T46] ( 3, 48 ) int -> rax "Inline return value spill temp"
-;* V106 tmp88 [V106 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V107 tmp89 [V107 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V90 tmp72 [V90 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V91 tmp73 [V91 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V92 tmp74 [V92 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V93 tmp75 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V94 tmp76 [V94 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V95 tmp77 [V95 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V96 tmp78 [V96 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V97 tmp79 [V97 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V98 tmp80 [V98 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V99 tmp81 [V99 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V100 tmp82 [V100 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V101 tmp83 [V101 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V102 tmp84 [V102 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V103 tmp85 [V103 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V104 tmp86 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V105 tmp87 [V105 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V106 tmp88 [V106 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V107 tmp89 [V107,T39] ( 2, 64 ) int -> rax "Inline return value spill temp"
;* V108 tmp90 [V108 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-;* V109 tmp91 [V109 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V109 tmp91 [V109,T53] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V110 tmp92 [V110 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V111 tmp93 [V111 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V111 tmp93 [V111 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V112 tmp94 [V112 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V113 tmp95 [V113 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V114 tmp96 [V114 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V115 tmp97 [V115 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V116 tmp98 [V116 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V117 tmp99 [V117 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V118 tmp100 [V118 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V119 tmp101 [V119 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V120 tmp102 [V120 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V121 tmp103 [V121 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V122 tmp104 [V122 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V113 tmp95 [V113 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V114 tmp96 [V114 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V115 tmp97 [V115 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V116 tmp98 [V116 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V117 tmp99 [V117 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V118 tmp100 [V118 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V119 tmp101 [V119 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V120 tmp102 [V120 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V121 tmp103 [V121 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V122 tmp104 [V122 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V123 tmp105 [V123 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V124 tmp106 [V124 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V125 tmp107 [V125 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V126 tmp108 [V126 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V127 tmp109 [V127 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V128 tmp110 [V128 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V129 tmp111 [V129 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V130 tmp112 [V130 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V131 tmp113 [V131 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V132 tmp114 [V132 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V133 tmp115 [V133,T61] ( 2, 16 ) byref -> r12 "Inlining Arg"
-; V134 tmp116 [V134,T63] ( 2, 16 ) int -> rcx "Inlining Arg"
-; V135 tmp117 [V135,T53] ( 2, 32 ) ubyte -> rax "Inline return value spill temp"
-; V136 tmp118 [V136,T21] ( 4,128 ) ushort -> rdi "Inlining Arg"
-;* V137 tmp119 [V137 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
-;* V138 tmp120 [V138 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V139 tmp121 [V139 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
-;* V140 tmp122 [V140 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V141 tmp123 [V141 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V142 tmp124 [V142 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V143 tmp125 [V143 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V144 tmp126 [V144,T28] ( 3, 96 ) int -> rdi "Inline stloc first use temp"
-; V145 tmp127 [V145,T22] ( 4,128 ) int -> rsi "Inline stloc first use temp"
-; V146 tmp128 [V146,T09] ( 3,192 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-;* V147 tmp129 [V147 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V148 tmp130 [V148,T10] ( 3,192 ) byref -> rdi "dup spill"
-;* V149 tmp131 [V149 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V150 tmp132 [V150 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V151 tmp133 [V151 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V152 tmp134 [V152,T88] ( 4, 4 ) int -> r14 "Inlining Arg"
-; V153 tmp135 [V153,T87] ( 5, 5 ) int -> r15 "Inlining Arg"
-;* V154 tmp136 [V154 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V155 tmp137 [V155,T95] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
-; V156 tmp138 [V156,T94] ( 3, 3 ) ref -> rcx class-hnd single-def "impAppendStmt" <int[]>
-; V157 tmp139 [V157,T47] ( 6, 32 ) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V158 tmp140 [V158,T34] ( 12, 65 ) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
-; V159 tmp141 [V159,T29] ( 13, 88 ) byref -> [rbp-0x68] "field V13._reference (fldOffset=0x0)" P-INDEP
-; V160 tmp142 [V160,T18] ( 17,136.50) int -> [rbp-0x54] "field V13._length (fldOffset=0x8)" P-INDEP
-; V161 tmp143 [V161,T97] ( 2, 2 ) byref -> r12 single-def "field V28._reference (fldOffset=0x0)" P-INDEP
-; V162 tmp144 [V162,T99] ( 2, 2 ) int -> rcx "field V28._length (fldOffset=0x8)" P-INDEP
-;* V163 tmp145 [V163 ] ( 0, 0 ) byref -> zero-ref "field V38._reference (fldOffset=0x0)" P-INDEP
-;* V164 tmp146 [V164 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
-;* V165 tmp147 [V165 ] ( 0, 0 ) byref -> zero-ref "field V39._reference (fldOffset=0x0)" P-INDEP
-;* V166 tmp148 [V166 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
-;* V167 tmp149 [V167 ] ( 0, 0 ) byref -> zero-ref "field V40._reference (fldOffset=0x0)" P-INDEP
-;* V168 tmp150 [V168 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
-;* V169 tmp151 [V169 ] ( 0, 0 ) byref -> zero-ref "field V41._reference (fldOffset=0x0)" P-INDEP
-;* V170 tmp152 [V170 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
-; V171 tmp153 [V171,T100] ( 2, 1 ) byref -> r12 single-def "field V42._reference (fldOffset=0x0)" P-INDEP
-; V172 tmp154 [V172,T101] ( 2, 1 ) int -> rcx "field V42._length (fldOffset=0x8)" P-INDEP
-; V173 tmp155 [V173,T90] ( 2, 4 ) byref -> rcx "field V55._reference (fldOffset=0x0)" P-INDEP
-; V174 tmp156 [V174,T92] ( 2, 4 ) int -> rax "field V55._length (fldOffset=0x8)" P-INDEP
-; V175 tmp157 [V175,T51] ( 2, 32 ) byref -> rdi "field V61._reference (fldOffset=0x0)" P-INDEP
-; V176 tmp158 [V176,T54] ( 2, 32 ) int -> rax "field V61._length (fldOffset=0x8)" P-INDEP
-; V177 tmp159 [V177,T62] ( 2, 16 ) byref -> rdx "field V75._reference (fldOffset=0x0)" P-INDEP
-; V178 tmp160 [V178,T64] ( 2, 16 ) int -> rax "field V75._length (fldOffset=0x8)" P-INDEP
-;* V179 tmp161 [V179 ] ( 0, 0 ) byref -> zero-ref "field V86._reference (fldOffset=0x0)" P-INDEP
-;* V180 tmp162 [V180 ] ( 0, 0 ) int -> zero-ref "field V86._length (fldOffset=0x8)" P-INDEP
-;* V181 tmp163 [V181 ] ( 0, 0 ) byref -> zero-ref "field V92._reference (fldOffset=0x0)" P-INDEP
-;* V182 tmp164 [V182 ] ( 0, 0 ) int -> zero-ref "field V92._length (fldOffset=0x8)" P-INDEP
-;* V183 tmp165 [V183 ] ( 0, 0 ) byref -> zero-ref "field V100._reference (fldOffset=0x0)" P-INDEP
-;* V184 tmp166 [V184 ] ( 0, 0 ) int -> zero-ref "field V100._length (fldOffset=0x8)" P-INDEP
-;* V185 tmp167 [V185 ] ( 0, 0 ) byref -> zero-ref "field V115._reference (fldOffset=0x0)" P-INDEP
-;* V186 tmp168 [V186 ] ( 0, 0 ) int -> zero-ref "field V115._length (fldOffset=0x8)" P-INDEP
-;* V187 tmp169 [V187 ] ( 0, 0 ) byref -> zero-ref "field V123._reference (fldOffset=0x0)" P-INDEP
-;* V188 tmp170 [V188 ] ( 0, 0 ) int -> zero-ref "field V123._length (fldOffset=0x8)" P-INDEP
-;* V189 tmp171 [V189 ] ( 0, 0 ) byref -> zero-ref "field V131._reference (fldOffset=0x0)" P-INDEP
-;* V190 tmp172 [V190 ] ( 0, 0 ) int -> zero-ref "field V131._length (fldOffset=0x8)" P-INDEP
-; V191 tmp173 [V191,T76] ( 2, 8 ) byref -> r12 "field V132._reference (fldOffset=0x0)" P-INDEP
-; V192 tmp174 [V192,T81] ( 2, 8 ) int -> rcx "field V132._length (fldOffset=0x8)" P-INDEP
-;* V193 tmp175 [V193 ] ( 0, 0 ) byref -> zero-ref "field V137._reference (fldOffset=0x0)" P-INDEP
-;* V194 tmp176 [V194 ] ( 0, 0 ) int -> zero-ref "field V137._length (fldOffset=0x8)" P-INDEP
-;* V195 tmp177 [V195 ] ( 0, 0 ) byref -> zero-ref "field V138._reference (fldOffset=0x0)" P-INDEP
-;* V196 tmp178 [V196 ] ( 0, 0 ) int -> zero-ref "field V138._length (fldOffset=0x8)" P-INDEP
-;* V197 tmp179 [V197 ] ( 0, 0 ) byref -> zero-ref "field V139._reference (fldOffset=0x0)" P-INDEP
-;* V198 tmp180 [V198 ] ( 0, 0 ) int -> zero-ref "field V139._length (fldOffset=0x8)" P-INDEP
-;* V199 tmp181 [V199 ] ( 0, 0 ) byref -> zero-ref "field V140._reference (fldOffset=0x0)" P-INDEP
-;* V200 tmp182 [V200 ] ( 0, 0 ) int -> zero-ref "field V140._length (fldOffset=0x8)" P-INDEP
-;* V201 tmp183 [V201 ] ( 0, 0 ) byref -> zero-ref "field V141._reference (fldOffset=0x0)" P-INDEP
-;* V202 tmp184 [V202 ] ( 0, 0 ) int -> zero-ref "field V141._length (fldOffset=0x8)" P-INDEP
-;* V203 tmp185 [V203 ] ( 0, 0 ) byref -> zero-ref "field V149._reference (fldOffset=0x0)" P-INDEP
-;* V204 tmp186 [V204 ] ( 0, 0 ) int -> zero-ref "field V149._length (fldOffset=0x8)" P-INDEP
-; V205 tmp187 [V205,T70] ( 3, 12 ) ref -> rcx "arr expr"
-; V206 tmp188 [V206,T11] ( 3,192 ) ref -> rsi "arr expr"
-; V207 tmp189 [V207,T45] ( 3, 48 ) ref -> rcx "arr expr"
-; V208 tmp190 [V208,T71] ( 3, 12 ) ref -> rcx "arr expr"
-; V209 tmp191 [V209,T03] ( 3,384 ) ref -> rcx "arr expr"
-; V210 cse0 [V210,T14] ( 4,168 ) ref -> rcx "CSE #14: moderate"
-; V211 cse1 [V211,T13] ( 7,169 ) ref -> registers hoist multi-def "CSE #03: moderate"
-; V212 cse2 [V212,T56] ( 3, 24 ) ref -> rax "CSE #07: conservative"
-; V213 cse3 [V213,T82] ( 3, 6.25) ref -> rax hoist "CSE #01: conservative"
-; V214 cse4 [V214,T83] ( 3, 6.25) ref -> rdi hoist "CSE #17: conservative"
-; V215 rat0 [V215,T65] ( 6, 13 ) long -> r13 "Widened IV V14"
-; V216 rat1 [V216,T32] ( 6, 72 ) long -> [rbp-0x60] "Widened IV V15"
+;* V124 tmp106 [V124 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V125 tmp107 [V125 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V126 tmp108 [V126 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V127 tmp109 [V127 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V128 tmp110 [V128 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
+;* V129 tmp111 [V129 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V130 tmp112 [V130 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V131 tmp113 [V131 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V132 tmp114 [V132 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V133 tmp115 [V133 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+; V134 tmp116 [V134,T60] ( 2, 16 ) byref -> r12 "Inlining Arg"
+; V135 tmp117 [V135,T62] ( 2, 16 ) int -> rcx "Inlining Arg"
+; V136 tmp118 [V136,T51] ( 2, 32 ) ubyte -> rax "Inline return value spill temp"
+; V137 tmp119 [V137,T19] ( 4,128 ) ushort -> rdi "Inlining Arg"
+;* V138 tmp120 [V138 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
+;* V139 tmp121 [V139 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V140 tmp122 [V140 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
+;* V141 tmp123 [V141 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V142 tmp124 [V142 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V143 tmp125 [V143 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V144 tmp126 [V144 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V145 tmp127 [V145,T27] ( 3, 96 ) int -> rdi "Inline stloc first use temp"
+; V146 tmp128 [V146,T20] ( 4,128 ) int -> rsi "Inline stloc first use temp"
+; V147 tmp129 [V147,T08] ( 3,192 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+;* V148 tmp130 [V148 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
+; V149 tmp131 [V149,T09] ( 3,192 ) byref -> rdi "dup spill"
+;* V150 tmp132 [V150 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V151 tmp133 [V151 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V152 tmp134 [V152 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V153 tmp135 [V153,T87] ( 4, 4 ) int -> r14 "Inlining Arg"
+; V154 tmp136 [V154,T86] ( 5, 5 ) int -> r15 "Inlining Arg"
+;* V155 tmp137 [V155 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V156 tmp138 [V156,T94] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
+; V157 tmp139 [V157,T93] ( 3, 3 ) ref -> rcx class-hnd single-def "impAppendStmt" <int[]>
+; V158 tmp140 [V158,T45] ( 6, 32 ) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V159 tmp141 [V159,T32] ( 12, 65 ) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V160 tmp142 [V160,T23] ( 12,104 ) byref -> [rbp-0x60] "field V13._reference (fldOffset=0x0)" P-INDEP
+; V161 tmp143 [V161,T15] ( 16,152.50) int -> [rbp-0x4C] "field V13._length (fldOffset=0x8)" P-INDEP
+; V162 tmp144 [V162,T96] ( 2, 2 ) byref -> r12 single-def "field V28._reference (fldOffset=0x0)" P-INDEP
+; V163 tmp145 [V163,T98] ( 2, 2 ) int -> rcx "field V28._length (fldOffset=0x8)" P-INDEP
+;* V164 tmp146 [V164 ] ( 0, 0 ) byref -> zero-ref "field V38._reference (fldOffset=0x0)" P-INDEP
+;* V165 tmp147 [V165 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
+;* V166 tmp148 [V166 ] ( 0, 0 ) byref -> zero-ref "field V39._reference (fldOffset=0x0)" P-INDEP
+;* V167 tmp149 [V167 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
+;* V168 tmp150 [V168 ] ( 0, 0 ) byref -> zero-ref "field V40._reference (fldOffset=0x0)" P-INDEP
+;* V169 tmp151 [V169 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
+;* V170 tmp152 [V170 ] ( 0, 0 ) byref -> zero-ref "field V41._reference (fldOffset=0x0)" P-INDEP
+;* V171 tmp153 [V171 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
+; V172 tmp154 [V172,T99] ( 2, 1 ) byref -> r12 single-def "field V42._reference (fldOffset=0x0)" P-INDEP
+; V173 tmp155 [V173,T100] ( 2, 1 ) int -> rcx "field V42._length (fldOffset=0x8)" P-INDEP
+; V174 tmp156 [V174,T89] ( 2, 4 ) byref -> rcx "field V55._reference (fldOffset=0x0)" P-INDEP
+; V175 tmp157 [V175,T91] ( 2, 4 ) int -> rax "field V55._length (fldOffset=0x8)" P-INDEP
+; V176 tmp158 [V176,T49] ( 2, 32 ) byref -> rdi "field V61._reference (fldOffset=0x0)" P-INDEP
+; V177 tmp159 [V177,T52] ( 2, 32 ) int -> rax "field V61._length (fldOffset=0x8)" P-INDEP
+; V178 tmp160 [V178,T61] ( 2, 16 ) byref -> rdx "field V75._reference (fldOffset=0x0)" P-INDEP
+; V179 tmp161 [V179,T63] ( 2, 16 ) int -> rax "field V75._length (fldOffset=0x8)" P-INDEP
+;* V180 tmp162 [V180 ] ( 0, 0 ) byref -> zero-ref "field V84._reference (fldOffset=0x0)" P-INDEP
+;* V181 tmp163 [V181 ] ( 0, 0 ) int -> zero-ref "field V84._length (fldOffset=0x8)" P-INDEP
+;* V182 tmp164 [V182 ] ( 0, 0 ) byref -> zero-ref "field V96._reference (fldOffset=0x0)" P-INDEP
+;* V183 tmp165 [V183 ] ( 0, 0 ) int -> zero-ref "field V96._length (fldOffset=0x8)" P-INDEP
+;* V184 tmp166 [V184 ] ( 0, 0 ) byref -> zero-ref "field V104._reference (fldOffset=0x0)" P-INDEP
+;* V185 tmp167 [V185 ] ( 0, 0 ) int -> zero-ref "field V104._length (fldOffset=0x8)" P-INDEP
+;* V186 tmp168 [V186 ] ( 0, 0 ) byref -> zero-ref "field V111._reference (fldOffset=0x0)" P-INDEP
+;* V187 tmp169 [V187 ] ( 0, 0 ) int -> zero-ref "field V111._length (fldOffset=0x8)" P-INDEP
+;* V188 tmp170 [V188 ] ( 0, 0 ) byref -> zero-ref "field V117._reference (fldOffset=0x0)" P-INDEP
+;* V189 tmp171 [V189 ] ( 0, 0 ) int -> zero-ref "field V117._length (fldOffset=0x8)" P-INDEP
+;* V190 tmp172 [V190 ] ( 0, 0 ) byref -> zero-ref "field V123._reference (fldOffset=0x0)" P-INDEP
+;* V191 tmp173 [V191 ] ( 0, 0 ) int -> zero-ref "field V123._length (fldOffset=0x8)" P-INDEP
+; V192 tmp174 [V192,T75] ( 2, 8 ) byref -> r12 "field V133._reference (fldOffset=0x0)" P-INDEP
+; V193 tmp175 [V193,T80] ( 2, 8 ) int -> rcx "field V133._length (fldOffset=0x8)" P-INDEP
+;* V194 tmp176 [V194 ] ( 0, 0 ) byref -> zero-ref "field V138._reference (fldOffset=0x0)" P-INDEP
+;* V195 tmp177 [V195 ] ( 0, 0 ) int -> zero-ref "field V138._length (fldOffset=0x8)" P-INDEP
+;* V196 tmp178 [V196 ] ( 0, 0 ) byref -> zero-ref "field V139._reference (fldOffset=0x0)" P-INDEP
+;* V197 tmp179 [V197 ] ( 0, 0 ) int -> zero-ref "field V139._length (fldOffset=0x8)" P-INDEP
+;* V198 tmp180 [V198 ] ( 0, 0 ) byref -> zero-ref "field V140._reference (fldOffset=0x0)" P-INDEP
+;* V199 tmp181 [V199 ] ( 0, 0 ) int -> zero-ref "field V140._length (fldOffset=0x8)" P-INDEP
+;* V200 tmp182 [V200 ] ( 0, 0 ) byref -> zero-ref "field V141._reference (fldOffset=0x0)" P-INDEP
+;* V201 tmp183 [V201 ] ( 0, 0 ) int -> zero-ref "field V141._length (fldOffset=0x8)" P-INDEP
+;* V202 tmp184 [V202 ] ( 0, 0 ) byref -> zero-ref "field V142._reference (fldOffset=0x0)" P-INDEP
+;* V203 tmp185 [V203 ] ( 0, 0 ) int -> zero-ref "field V142._length (fldOffset=0x8)" P-INDEP
+;* V204 tmp186 [V204 ] ( 0, 0 ) byref -> zero-ref "field V150._reference (fldOffset=0x0)" P-INDEP
+;* V205 tmp187 [V205 ] ( 0, 0 ) int -> zero-ref "field V150._length (fldOffset=0x8)" P-INDEP
+; V206 tmp188 [V206,T69] ( 3, 12 ) ref -> rcx "arr expr"
+; V207 tmp189 [V207,T10] ( 3,192 ) ref -> rsi "arr expr"
+; V208 tmp190 [V208,T44] ( 3, 48 ) ref -> rcx "arr expr"
+; V209 tmp191 [V209,T70] ( 3, 12 ) ref -> rcx "arr expr"
+; V210 tmp192 [V210,T03] ( 3,384 ) ref -> rcx "arr expr"
+; V211 cse0 [V211,T13] ( 4,168 ) ref -> rcx "CSE #14: moderate"
+; V212 cse1 [V212,T12] ( 7,169 ) ref -> registers hoist multi-def "CSE #03: moderate"
+; V213 cse2 [V213,T55] ( 3, 24 ) ref -> rax "CSE #07: conservative"
+; V214 cse3 [V214,T81] ( 3, 6.25) ref -> rax hoist "CSE #01: conservative"
+; V215 cse4 [V215,T82] ( 3, 6.25) ref -> rdi hoist "CSE #17: conservative"
+; V216 rat0 [V216,T64] ( 6, 13 ) long -> r13 "Widened IV V14"
+; V217 rat1 [V217,T30] ( 6, 72 ) long -> [rbp-0x58] "Widened IV V15"
;
-; Lcl frame size = 72
+; Lcl frame size = 56
G_M8267_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 r15d, edx
;; size=28 bbWeight=1 PerfScore 7.50
G_M8267_IG02:
mov r13d, dword ptr [rbx+0x4C]
xor eax, eax
mov dword ptr [rbp-0x40], eax
cmp r13d, r15d
- ja G_M8267_IG65
+ ja G_M8267_IG62
mov eax, r13d
lea r12, bword ptr [r14+2*rax]
mov ecx, r15d
sub ecx, r13d
test r13d, r13d
je SHORT G_M8267_IG08
;; size=36 bbWeight=1 PerfScore 7.00
G_M8267_IG03:
mov rax, gword ptr [rbx+0x20]
jmp SHORT G_M8267_IG05
align [0 bytes for IG14]
;; size=6 bbWeight=0.25 PerfScore 1.00
G_M8267_IG04:
mov rdi, rax
mov ecx, dword ptr [rbx+0x58]
lea edx, [rcx+0x01]
mov dword ptr [rbx+0x58], edx
cmp ecx, dword ptr [rdi+0x08]
- jae G_M8267_IG63
+ jae G_M8267_IG60
mov edi, dword ptr [rdi+4*rcx+0x10]
mov rcx, gword ptr [rbx+0x28]
mov rcx, gword ptr [rcx+0x50]
cmp edi, dword ptr [rcx+0x08]
- jae G_M8267_IG63
+ jae G_M8267_IG60
lea rdi, bword ptr [rcx+4*rdi+0x10]
dec dword ptr [rdi]
;; size=49 bbWeight=2 PerfScore 43.50
G_M8267_IG05:
mov ecx, dword ptr [rax+0x08]
sub ecx, dword ptr [rbx+0x58]
test ecx, ecx
jg SHORT G_M8267_IG04
;; size=10 bbWeight=4 PerfScore 25.00
G_M8267_IG06:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M8267_IG07:
- 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_M8267_IG08:
xor r13d, r13d
jmp SHORT G_M8267_IG10
;; size=5 bbWeight=0.50 PerfScore 1.12
G_M8267_IG09:
inc r13d
- mov ecx, dword ptr [rbp-0x54]
+ mov ecx, dword ptr [rbp-0x4C]
;; size=6 bbWeight=2 PerfScore 2.50
G_M8267_IG10:
- mov dword ptr [rbp-0x54], ecx
+ mov dword ptr [rbp-0x4C], ecx
cmp r13d, ecx
jae SHORT G_M8267_IG12
movzx rdi, word ptr [r12+2*r13]
cmp edi, 256
jae SHORT G_M8267_IG11
mov rax, 0xD1FFAB1E ; static handle
test byte ptr [rdi+rax], 128
jne SHORT G_M8267_IG09
jmp SHORT G_M8267_IG12
;; size=39 bbWeight=4 PerfScore 47.00
G_M8267_IG11:
mov rax, 0xD1FFAB1E ; code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
call [rax]System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
test eax, eax
jne SHORT G_M8267_IG09
;; size=16 bbWeight=4 PerfScore 18.00
G_M8267_IG12:
- mov ecx, dword ptr [rbp-0x54]
+ mov ecx, dword ptr [rbp-0x4C]
cmp r13d, ecx
- ja G_M8267_IG65
+ ja G_M8267_IG62
mov esi, r13d
lea r12, bword ptr [r12+2*rsi]
sub ecx, r13d
- mov dword ptr [rbp-0x54], ecx
+ mov dword ptr [rbp-0x4C], ecx
mov dword ptr [rbp-0x30], r13d
jmp G_M8267_IG18
;; size=34 bbWeight=0.50 PerfScore 3.62
G_M8267_IG13:
mov r13, gword ptr [rbx+0x20]
jmp SHORT G_M8267_IG15
;; size=6 bbWeight=1 PerfScore 4.00
G_M8267_IG14:
mov rax, r13
mov ecx, dword ptr [rbx+0x58]
lea edx, [rcx+0x01]
mov dword ptr [rbx+0x58], edx
cmp ecx, dword ptr [rax+0x08]
- jae G_M8267_IG63
+ jae G_M8267_IG60
mov eax, dword ptr [rax+4*rcx+0x10]
mov rcx, gword ptr [rbx+0x28]
mov rcx, gword ptr [rcx+0x50]
cmp eax, dword ptr [rcx+0x08]
- jae G_M8267_IG63
+ jae G_M8267_IG60
lea rax, bword ptr [rcx+4*rax+0x10]
dec dword ptr [rax]
;; size=49 bbWeight=8 PerfScore 174.00
G_M8267_IG15:
mov eax, dword ptr [r13+0x08]
sub eax, dword ptr [rbx+0x58]
mov r9d, dword ptr [rbp-0x2C]
cmp eax, r9d
jg SHORT G_M8267_IG14
;; size=16 bbWeight=16 PerfScore 116.00
G_M8267_IG16:
cmp byte ptr [rbx+0x68], 0
je SHORT G_M8267_IG17
call System.Environment:get_TickCount64():long
cmp rax, qword ptr [rbx+0x38]
- jge G_M8267_IG64
+ jge G_M8267_IG61
;; size=21 bbWeight=2 PerfScore 18.00
G_M8267_IG17:
mov r8d, dword ptr [rbp-0x30]
test r8d, r8d
- jle G_M8267_IG60
+ jle G_M8267_IG57
dec r8d
mov r13d, r8d
mov dword ptr [rbp-0x30], r13d
mov r12d, r13d
cmp r12d, r15d
- ja G_M8267_IG65
+ ja G_M8267_IG62
mov edx, r12d
lea rcx, bword ptr [r14+2*rdx]
mov eax, r15d
sub eax, r12d
mov r8, rcx
- mov dword ptr [rbp-0x54], eax
+ mov dword ptr [rbp-0x4C], eax
mov r13d, r12d
mov r12, r8
;; size=60 bbWeight=2 PerfScore 16.50
G_M8267_IG18:
mov rsi, gword ptr [rbx+0x20]
mov r9d, dword ptr [rsi+0x08]
sub r9d, dword ptr [rbx+0x58]
mov dword ptr [rbp-0x2C], r9d
xor r10d, r10d
mov dword ptr [rbp-0x38], r10d
;; size=23 bbWeight=4 PerfScore 37.00
G_M8267_IG19:
lea rdi, bword ptr [rbx+0x18]
mov rsi, gword ptr [rbx+0x20]
mov edx, dword ptr [rsi+0x08]
sub edx, dword ptr [rbx+0x58]
mov rsi, gword ptr [rdi]
mov ecx, dword ptr [rbp-0x40]
lea r11d, [rcx+0x01]
cmp dword ptr [rsi+0x08], r11d
jbe SHORT G_M8267_IG21
;; size=30 bbWeight=32 PerfScore 480.00
G_M8267_IG20:
cmp ecx, dword ptr [rsi+0x08]
- jae G_M8267_IG63
+ jae G_M8267_IG60
mov edi, ecx
mov dword ptr [rsi+4*rdi+0x10], edx
inc ecx
mov edi, ecx
mov dword ptr [rsi+4*rdi+0x10], r13d
mov esi, dword ptr [rbp-0x40]
add esi, 2
mov dword ptr [rbp-0x40], esi
jmp SHORT G_M8267_IG22
align [8 bytes for IG32]
;; size=43 bbWeight=8 PerfScore 88.00
G_M8267_IG21:
lea rsi, [rbp-0x40]
mov ecx, r13d
mov r11, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Generated.<RegexGenerator_g>F2E36BBCB46D79A0BB144867AC899FDD2263642E5E752DEC0C254D0564F94D450__Utilities:<StackPush>g__WithResize|0_0(byref,byref,int,int)
call [r11]System.Text.RegularExpressions.Generated.<RegexGenerator_g>F2E36BBCB46D79A0BB144867AC899FDD2263642E5E752DEC0C254D0564F94D450__Utilities:<StackPush>g__WithResize|0_0(byref,byref,int,int)
;; size=20 bbWeight=8 PerfScore 32.00
G_M8267_IG22:
mov r10d, dword ptr [rbp-0x38]
inc r10d
mov dword ptr [rbp-0x38], r10d
- cmp dword ptr [rbp-0x54], 0
+ cmp dword ptr [rbp-0x4C], 0
je G_M8267_IG30
;; size=21 bbWeight=32 PerfScore 168.00
G_M8267_IG23:
movzx rax, word ptr [r12]
cmp eax, 43
setne dil
movzx rdi, dil
cmp eax, 45
setne al
movzx rax, al
test edi, eax
jne G_M8267_IG30
lea edi, [r13+0x01]
mov r12d, edi
cmp r12d, r15d
- ja G_M8267_IG65
+ ja G_M8267_IG62
mov edi, r12d
lea rdi, bword ptr [r14+2*rdi]
mov eax, r15d
sub eax, r12d
- mov bword ptr [rbp-0x68], rdi
- mov dword ptr [rbp-0x54], eax
+ mov bword ptr [rbp-0x60], rdi
+ mov dword ptr [rbp-0x4C], eax
mov edx, r13d
mov esi, r12d
cmp esi, edx
jge SHORT G_M8267_IG25
;; size=79 bbWeight=16 PerfScore 212.00
G_M8267_IG24:
mov dword ptr [rbp-0x44], r13d
mov dword ptr [rbp-0x48], r12d
mov edx, dword ptr [rbp-0x48]
mov esi, dword ptr [rbp-0x44]
;; size=14 bbWeight=8 PerfScore 32.00
G_M8267_IG25:
cmp dword ptr [rbx+0x58], 0
jne SHORT G_M8267_IG27
;; size=6 bbWeight=16 PerfScore 64.00
G_M8267_IG26:
mov dword ptr [rbp-0x48], edx
mov dword ptr [rbp-0x44], esi
mov rdi, rbx
mov r11, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
call [r11]System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
mov edx, dword ptr [rbp-0x48]
mov esi, dword ptr [rbp-0x44]
;; size=28 bbWeight=8 PerfScore 60.00
G_M8267_IG27:
mov rdi, gword ptr [rbx+0x20]
mov r11d, dword ptr [rbx+0x58]
dec r11d
mov dword ptr [rbx+0x58], r11d
cmp r11d, dword ptr [rdi+0x08]
- jae G_M8267_IG63
+ jae G_M8267_IG60
mov dword ptr [rdi+4*r11+0x10], 1
sub esi, edx
mov ecx, esi
mov rdi, gword ptr [rbx+0x28]
mov esi, 1
mov r11, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Match:AddMatch(int,int,int):this
cmp dword ptr [rdi], edi
call [r11]System.Text.RegularExpressions.Match:AddMatch(int,int,int):this
mov r13d, dword ptr [rbp-0x38]
test r13d, r13d
jne SHORT G_M8267_IG29
;; size=71 bbWeight=16 PerfScore 344.00
G_M8267_IG28:
mov dword ptr [rbp-0x38], r13d
mov r13d, r12d
- mov r12, bword ptr [rbp-0x68]
+ mov r12, bword ptr [rbp-0x60]
jmp G_M8267_IG19
;; size=16 bbWeight=8 PerfScore 34.00
G_M8267_IG29:
- mov eax, dword ptr [rbp-0x54]
- mov r10, bword ptr [rbp-0x68]
+ mov eax, dword ptr [rbp-0x4C]
+ mov r10, bword ptr [rbp-0x60]
jmp G_M8267_IG34
;; size=12 bbWeight=8 PerfScore 32.00
G_M8267_IG30:
mov r10d, dword ptr [rbp-0x38]
dec r10d
mov r13d, r10d
mov dword ptr [rbp-0x38], r13d
test r13d, r13d
jl G_M8267_IG13
;; size=23 bbWeight=64 PerfScore 240.00
G_M8267_IG31:
mov rax, gword ptr [rbx+0x18]
mov rdx, rax
mov esi, dword ptr [rbp-0x40]
dec esi
mov dword ptr [rbp-0x40], esi
cmp esi, dword ptr [rdx+0x08]
- jae G_M8267_IG63
+ jae G_M8267_IG60
mov r12d, dword ptr [rdx+4*rsi+0x10]
mov edx, dword ptr [rbp-0x40]
dec edx
mov dword ptr [rbp-0x40], edx
cmp edx, dword ptr [rax+0x08]
- jae G_M8267_IG63
+ jae G_M8267_IG60
mov edx, dword ptr [rax+4*rdx+0x10]
mov rsi, gword ptr [rbx+0x20]
mov edi, dword ptr [rsi+0x08]
sub edi, dword ptr [rbx+0x58]
cmp edi, edx
jle SHORT G_M8267_IG33
;; size=64 bbWeight=8 PerfScore 216.00
G_M8267_IG32:
mov rdi, rsi
mov ecx, dword ptr [rbx+0x58]
lea eax, [rcx+0x01]
mov dword ptr [rbx+0x58], eax
cmp ecx, dword ptr [rdi+0x08]
- jae G_M8267_IG63
+ jae G_M8267_IG60
mov edi, dword ptr [rdi+4*rcx+0x10]
mov rcx, gword ptr [rbx+0x28]
mov rcx, gword ptr [rcx+0x50]
cmp edi, dword ptr [rcx+0x08]
- jae G_M8267_IG63
+ jae G_M8267_IG60
lea rdi, bword ptr [rcx+4*rdi+0x10]
dec dword ptr [rdi]
mov edi, dword ptr [rsi+0x08]
sub edi, dword ptr [rbx+0x58]
cmp edi, edx
jg SHORT G_M8267_IG32
;; size=59 bbWeight=64 PerfScore 1792.00
G_M8267_IG33:
cmp r12d, r15d
- ja G_M8267_IG65
+ ja G_M8267_IG62
mov edx, r12d
lea rdx, bword ptr [r14+2*rdx]
mov eax, r15d
sub eax, r12d
mov r10, rdx
mov r13d, dword ptr [rbp-0x38]
;; size=29 bbWeight=8 PerfScore 30.00
G_M8267_IG34:
- mov dword ptr [rbp-0x4C], 48
- mov dword ptr [rbp-0x50], 57
- movzx rsi, word ptr [rbp-0x4C]
- movzx rdx, word ptr [rbp-0x50]
- lea edi, [rsi-0x01]
- cmp edi, 254
- jae SHORT G_M8267_IG36
- ;; size=33 bbWeight=32 PerfScore 184.00
-G_M8267_IG35:
- lea edi, [rdx-0x01]
- cmp edi, 254
- jae SHORT G_M8267_IG36
- cmp edx, esi
- jl SHORT G_M8267_IG36
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
- mov bword ptr [rbp-0x68], r10
+ mov edx, 9
+ mov esi, 48
+ mov bword ptr [rbp-0x60], r10
mov rdi, r10
- mov dword ptr [rbp-0x54], eax
+ mov dword ptr [rbp-0x4C], eax
mov ecx, eax
mov r11, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
call [r11]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- jmp SHORT G_M8267_IG37
- ;; size=52 bbWeight=8 PerfScore 92.00
-G_M8267_IG36:
- mov bword ptr [rbp-0x68], r10
- mov rdi, r10
- mov dword ptr [rbp-0x54], eax
- mov ecx, eax
- mov r11, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- call [r11]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=25 bbWeight=8 PerfScore 46.00
-G_M8267_IG37:
test eax, eax
- jge SHORT G_M8267_IG39
- ;; size=4 bbWeight=32 PerfScore 40.00
-G_M8267_IG38:
- mov ecx, dword ptr [rbp-0x54]
+ jge SHORT G_M8267_IG36
+ ;; size=39 bbWeight=32 PerfScore 240.00
+G_M8267_IG35:
+ mov ecx, dword ptr [rbp-0x4C]
mov eax, ecx
- mov dword ptr [rbp-0x54], ecx
+ mov dword ptr [rbp-0x4C], ecx
;; size=8 bbWeight=8 PerfScore 18.00
-G_M8267_IG39:
+G_M8267_IG36:
test eax, eax
mov dword ptr [rbp-0x38], r13d
je G_M8267_IG30
;; size=12 bbWeight=32 PerfScore 72.00
-G_M8267_IG40:
+G_M8267_IG37:
mov r13d, r12d
- mov ecx, dword ptr [rbp-0x54]
- mov r12, bword ptr [rbp-0x68]
+ mov ecx, dword ptr [rbp-0x4C]
+ mov r12, bword ptr [rbp-0x60]
cmp eax, ecx
- ja G_M8267_IG65
+ ja G_M8267_IG62
mov edi, eax
lea r12, bword ptr [r12+2*rdi]
sub ecx, eax
add r13d, eax
xor eax, eax
- jmp SHORT G_M8267_IG42
- align [0 bytes for IG48]
+ jmp SHORT G_M8267_IG39
+ align [0 bytes for IG45]
;; size=33 bbWeight=4 PerfScore 28.00
-G_M8267_IG41:
- mov rax, qword ptr [rbp-0x60]
+G_M8267_IG38:
+ mov rax, qword ptr [rbp-0x58]
inc eax
- mov ecx, dword ptr [rbp-0x54]
+ mov ecx, dword ptr [rbp-0x4C]
;; size=9 bbWeight=8 PerfScore 18.00
-G_M8267_IG42:
- mov dword ptr [rbp-0x54], ecx
+G_M8267_IG39:
+ mov dword ptr [rbp-0x4C], ecx
cmp eax, ecx
- jae SHORT G_M8267_IG47
+ jae SHORT G_M8267_IG44
;; size=7 bbWeight=32 PerfScore 72.00
-G_M8267_IG43:
- mov qword ptr [rbp-0x60], rax
+G_M8267_IG40:
+ mov qword ptr [rbp-0x58], rax
movzx rdi, word ptr [r12+2*rax]
cmp edi, 256
- jae SHORT G_M8267_IG45
+ jae SHORT G_M8267_IG42
mov rdx, 0xD1FFAB1E ; static handle
test byte ptr [rdi+rdx], 128
- jne SHORT G_M8267_IG41
+ jne SHORT G_M8267_IG38
;; size=33 bbWeight=16 PerfScore 136.00
-G_M8267_IG44:
- mov rax, qword ptr [rbp-0x60]
- jmp SHORT G_M8267_IG47
+G_M8267_IG41:
+ mov rax, qword ptr [rbp-0x58]
+ jmp SHORT G_M8267_IG44
;; size=6 bbWeight=8 PerfScore 24.00
-G_M8267_IG45:
+G_M8267_IG42:
mov rdx, 0xD1FFAB1E ; code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
call [rdx]System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
test eax, eax
- jne SHORT G_M8267_IG41
+ jne SHORT G_M8267_IG38
;; size=16 bbWeight=16 PerfScore 72.00
-G_M8267_IG46:
- mov rax, qword ptr [rbp-0x60]
+G_M8267_IG43:
+ mov rax, qword ptr [rbp-0x58]
;; size=4 bbWeight=8 PerfScore 8.00
-G_M8267_IG47:
- mov ecx, dword ptr [rbp-0x54]
+G_M8267_IG44:
+ mov ecx, dword ptr [rbp-0x4C]
cmp eax, ecx
- ja G_M8267_IG65
+ ja G_M8267_IG62
add eax, r13d
mov r12d, eax
mov dword ptr [rbp-0x34], r12d
- jmp SHORT G_M8267_IG55
+ jmp SHORT G_M8267_IG52
;; size=23 bbWeight=4 PerfScore 23.00
-G_M8267_IG48:
+G_M8267_IG45:
mov rdi, rcx
mov esi, dword ptr [rbx+0x58]
lea r11d, [rsi+0x01]
mov dword ptr [rbx+0x58], r11d
cmp esi, dword ptr [rdi+0x08]
- jae G_M8267_IG63
+ jae G_M8267_IG60
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_M8267_IG63
+ jae G_M8267_IG60
lea rdi, bword ptr [rsi+4*rdi+0x10]
dec dword ptr [rdi]
;; size=51 bbWeight=32 PerfScore 696.00
-G_M8267_IG49:
+G_M8267_IG46:
mov edi, dword ptr [rcx+0x08]
sub edi, dword ptr [rbx+0x58]
cmp edi, edx
- jg SHORT G_M8267_IG48
+ jg SHORT G_M8267_IG45
;; size=10 bbWeight=128 PerfScore 800.00
-G_M8267_IG50:
+G_M8267_IG47:
cmp byte ptr [rbx+0x68], 0
- je SHORT G_M8267_IG52
+ je SHORT G_M8267_IG49
;; size=6 bbWeight=16 PerfScore 64.00
-G_M8267_IG51:
+G_M8267_IG48:
call System.Environment:get_TickCount64():long
cmp rax, qword ptr [rbx+0x38]
- jge G_M8267_IG64
+ jge G_M8267_IG61
;; size=15 bbWeight=8 PerfScore 40.00
-G_M8267_IG52:
+G_M8267_IG49:
mov eax, dword ptr [rbp-0x34]
cmp r13d, eax
jge G_M8267_IG30
;; size=12 bbWeight=16 PerfScore 36.00
-G_M8267_IG53:
+G_M8267_IG50:
dec eax
mov r12d, eax
mov edi, r12d
cmp edi, r15d
mov dword ptr [rbp-0x34], r12d
- ja G_M8267_IG65
+ ja G_M8267_IG62
;; size=21 bbWeight=2 PerfScore 6.00
-G_M8267_IG54:
+G_M8267_IG51:
mov r12d, edi
;; size=3 bbWeight=1 PerfScore 0.25
-G_M8267_IG55:
+G_M8267_IG52:
mov rcx, gword ptr [rbx+0x20]
mov edx, dword ptr [rcx+0x08]
sub edx, dword ptr [rbx+0x58]
lea edi, [r15-0x01]
cmp r12d, edi
- jl SHORT G_M8267_IG49
+ jl SHORT G_M8267_IG46
cmp r12d, r15d
- jae SHORT G_M8267_IG56
+ jae SHORT G_M8267_IG53
mov edi, r12d
cmp word ptr [r14+2*rdi], 10
- jne SHORT G_M8267_IG49
+ jne SHORT G_M8267_IG46
;; size=35 bbWeight=4 PerfScore 57.00
-G_M8267_IG56:
+G_M8267_IG53:
mov dword ptr [rbx+0x4C], r12d
xor r15d, r15d
mov r14d, r12d
cmp r14d, r15d
- jge SHORT G_M8267_IG57
+ jge SHORT G_M8267_IG54
xor r14d, r14d
mov r15d, r12d
;; size=21 bbWeight=0.50 PerfScore 1.62
-G_M8267_IG57:
+G_M8267_IG54:
cmp dword ptr [rbx+0x58], 0
- jne SHORT G_M8267_IG58
+ jne SHORT G_M8267_IG55
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
call [rax]System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
;; size=21 bbWeight=0.50 PerfScore 3.75
-G_M8267_IG58:
+G_M8267_IG55:
mov rcx, gword ptr [rbx+0x20]
mov edi, dword ptr [rbx+0x58]
dec edi
mov dword ptr [rbx+0x58], edi
cmp edi, dword ptr [rcx+0x08]
- jae SHORT G_M8267_IG63
+ jae SHORT G_M8267_IG60
xor edx, edx
mov dword ptr [rcx+4*rdi+0x10], edx
mov ecx, r14d
sub ecx, r15d
mov rdi, gword ptr [rbx+0x28]
mov edx, r15d
xor esi, esi
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
mov eax, 1
;; size=57 bbWeight=0.50 PerfScore 10.00
-G_M8267_IG59:
- add rsp, 72
+G_M8267_IG56:
+ 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_M8267_IG60:
+G_M8267_IG57:
mov rdi, gword ptr [rbx+0x20]
- jmp SHORT G_M8267_IG62
+ jmp SHORT G_M8267_IG59
;; size=6 bbWeight=0.25 PerfScore 1.00
-G_M8267_IG61:
+G_M8267_IG58:
mov rax, rdi
mov ecx, dword ptr [rbx+0x58]
lea edx, [rcx+0x01]
mov dword ptr [rbx+0x58], edx
cmp ecx, dword ptr [rax+0x08]
- jae SHORT G_M8267_IG63
+ jae SHORT G_M8267_IG60
mov eax, dword ptr [rax+4*rcx+0x10]
mov rcx, gword ptr [rbx+0x28]
mov rcx, gword ptr [rcx+0x50]
cmp eax, dword ptr [rcx+0x08]
- jae SHORT G_M8267_IG63
+ jae SHORT G_M8267_IG60
lea rax, bword ptr [rcx+4*rax+0x10]
dec dword ptr [rax]
;; size=41 bbWeight=2 PerfScore 43.50
-G_M8267_IG62:
+G_M8267_IG59:
mov eax, dword ptr [rdi+0x08]
sub eax, dword ptr [rbx+0x58]
test eax, eax
- jg SHORT G_M8267_IG61
+ jg SHORT G_M8267_IG58
jmp G_M8267_IG06
;; size=15 bbWeight=4 PerfScore 33.00
-G_M8267_IG63:
+G_M8267_IG60:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M8267_IG64:
+G_M8267_IG61:
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_M8267_IG65:
+G_M8267_IG62:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1565, prolog size 28, PerfScore 6975.25, instruction count 450, allocated bytes for code 1565 (MethodHash=fffddfb4) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F2E36BBCB46D79A0BB144867AC899FDD2263642E5E752DEC0C254D0564F94D450__CreateIntegerRegex_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
+; Total bytes of code 1490, prolog size 28, PerfScore 6853.25, instruction count 430, allocated bytes for code 1490 (MethodHash=fffddfb4) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F2E36BBCB46D79A0BB144867AC899FDD2263642E5E752DEC0C254D0564F94D450__CreateIntegerRegex_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
-74 (-38.14 % of base) - System.IO.Compression.ZipHelper:GetEncoding(System.String):System.Text.Encoding
; Assembly listing for method System.IO.Compression.ZipHelper:GetEncoding(System.String):System.Text.Encoding (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; 22 single block inlinees; 6 inlinees without PGO data
+; 0 inlinees with PGO data; 24 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 5, 4 ) ref -> rdi class-hnd single-def <System.String>
+; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rdi class-hnd single-def <System.String>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V03 tmp2 [V03 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V04 tmp3 [V04 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V05 tmp4 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V06 tmp5 [V06,T06] ( 2, 2 ) byref -> rcx single-def "Inlining Arg"
-; V07 tmp6 [V07,T07] ( 2, 2 ) int -> rdx "Inlining Arg"
-; V08 tmp7 [V08,T08] ( 2, 2 ) int -> rax "Inline return value spill temp"
-; V09 tmp8 [V09 ] ( 2, 4 ) ushort -> [rbp-0x04] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V10 tmp9 [V10 ] ( 2, 4 ) ushort -> [rbp-0x08] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V06 tmp5 [V06,T03] ( 2, 2 ) byref -> rcx single-def "Inlining Arg"
+; V07 tmp6 [V07,T04] ( 2, 2 ) int -> rdx "Inlining Arg"
+; V08 tmp7 [V08,T05] ( 2, 2 ) int -> rax "Inline return value spill temp"
+;* V09 tmp8 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V10 tmp9 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V11 tmp10 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V12 tmp11 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V13 tmp12 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V14 tmp13 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V15 tmp14 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V16 tmp15 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V14 tmp13 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V15 tmp14 [V15 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V16 tmp15 [V16 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V17 tmp16 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V18 tmp17 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V19 tmp18 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V20 tmp19 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V21 tmp20 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V22 tmp21 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V23 tmp22 [V23 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V24 tmp23 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V25 tmp24 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V26 tmp25 [V26 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V27 tmp26 [V27 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V28 tmp27 [V28 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V29 tmp28 [V29 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V30 tmp29 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V31 tmp30 [V31 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V32 tmp31 [V32,T00] ( 6, 8 ) ushort -> rsi "Inlining Arg"
-; V33 tmp32 [V33,T02] ( 5, 6 ) ushort -> rdx "Inlining Arg"
-;* V34 tmp33 [V34 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V35 tmp34 [V35,T05] ( 3, 2 ) int -> rax "Inline return value spill temp"
-;* V36 tmp35 [V36 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V37 tmp36 [V37 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V20 tmp19 [V20 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V21 tmp20 [V21 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V22 tmp21 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp22 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V24 tmp23 [V24 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V25 tmp24 [V25 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V26 tmp25 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V27 tmp26 [V27 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V28 tmp27 [V28 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V29 tmp28 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V30 tmp29 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V31 tmp30 [V31 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V32 tmp31 [V32 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V33 tmp32 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V34 tmp33 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V35 tmp34 [V35 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V36 tmp35 [V36 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V37 tmp36 [V37,T06] ( 2, 2 ) int -> rax "Inline return value spill temp"
;* V38 tmp37 [V38 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
-;* V39 tmp38 [V39 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V39 tmp38 [V39,T09] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V40 tmp39 [V40 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V41 tmp40 [V41 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V41 tmp40 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V42 tmp41 [V42 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V43 tmp42 [V43 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V44 tmp43 [V44 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V45 tmp44 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V46 tmp45 [V46 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V47 tmp46 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V48 tmp47 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V49 tmp48 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V50 tmp49 [V50 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V51 tmp50 [V51 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V52 tmp51 [V52 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V43 tmp42 [V43 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V44 tmp43 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V45 tmp44 [V45 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V46 tmp45 [V46 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V47 tmp46 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V48 tmp47 [V48 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V49 tmp48 [V49 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V50 tmp49 [V50 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V51 tmp50 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V52 tmp51 [V52 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V53 tmp52 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V54 tmp53 [V54 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V55 tmp54 [V55 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V56 tmp55 [V56 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V57 tmp56 [V57 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V58 tmp57 [V58 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V59 tmp58 [V59 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V60 tmp59 [V60 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V61 tmp60 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V62 tmp61 [V62 ] ( 0, 0 ) byref -> zero-ref "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V63 tmp62 [V63 ] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
-; V64 tmp63 [V64,T03] ( 4, 2 ) byref -> rdi "field V03._reference (fldOffset=0x0)" P-INDEP
-; V65 tmp64 [V65,T04] ( 4, 2 ) int -> rcx "field V03._length (fldOffset=0x8)" P-INDEP
-; V66 tmp65 [V66,T09] ( 2, 1 ) byref -> rdi single-def "field V04._reference (fldOffset=0x0)" P-INDEP
-; V67 tmp66 [V67,T10] ( 2, 1 ) int -> rcx "field V04._length (fldOffset=0x8)" P-INDEP
-;* V68 tmp67 [V68 ] ( 0, 0 ) byref -> zero-ref single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V69 tmp68 [V69 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
-;* V70 tmp69 [V70 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
-;* V71 tmp70 [V71 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
-;* V72 tmp71 [V72 ] ( 0, 0 ) byref -> zero-ref "field V22._reference (fldOffset=0x0)" P-INDEP
-;* V73 tmp72 [V73 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
-;* V74 tmp73 [V74 ] ( 0, 0 ) byref -> zero-ref single-def "field V30._reference (fldOffset=0x0)" P-INDEP
-;* V75 tmp74 [V75 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
-;* V76 tmp75 [V76 ] ( 0, 0 ) byref -> zero-ref "field V45._reference (fldOffset=0x0)" P-INDEP
-;* V77 tmp76 [V77 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
-;* V78 tmp77 [V78 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V79 tmp78 [V79 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-;* V80 tmp79 [V80 ] ( 0, 0 ) byref -> zero-ref "field V61._reference (fldOffset=0x0)" P-INDEP
-;* V81 tmp80 [V81 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
+;* V54 tmp53 [V54 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V55 tmp54 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V56 tmp55 [V56 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V57 tmp56 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V58 tmp57 [V58 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
+;* V59 tmp58 [V59 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V60 tmp59 [V60 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V61 tmp60 [V61 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V62 tmp61 [V62 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V63 tmp62 [V63 ] ( 0, 0 ) byref -> zero-ref "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V64 tmp63 [V64 ] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
+; V65 tmp64 [V65,T01] ( 3, 2 ) byref -> rdi "field V03._reference (fldOffset=0x0)" P-INDEP
+; V66 tmp65 [V66,T02] ( 3, 2 ) int -> rcx "field V03._length (fldOffset=0x8)" P-INDEP
+; V67 tmp66 [V67,T07] ( 2, 1 ) byref -> rdi single-def "field V04._reference (fldOffset=0x0)" P-INDEP
+; V68 tmp67 [V68,T08] ( 2, 1 ) int -> rcx "field V04._length (fldOffset=0x8)" P-INDEP
+;* V69 tmp68 [V69 ] ( 0, 0 ) byref -> zero-ref single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V70 tmp69 [V70 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
+;* V71 tmp70 [V71 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V72 tmp71 [V72 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
+;* V73 tmp72 [V73 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V74 tmp73 [V74 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
+;* V75 tmp74 [V75 ] ( 0, 0 ) byref -> zero-ref single-def "field V34._reference (fldOffset=0x0)" P-INDEP
+;* V76 tmp75 [V76 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
+;* V77 tmp76 [V77 ] ( 0, 0 ) byref -> zero-ref "field V41._reference (fldOffset=0x0)" P-INDEP
+;* V78 tmp77 [V78 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
+;* V79 tmp78 [V79 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
+;* V80 tmp79 [V80 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
+;* V81 tmp80 [V81 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V82 tmp81 [V82 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 16
+; Lcl frame size = 0
G_M16013_IG01:
push rbp
- sub rsp, 16
- lea rbp, [rsp+0x10]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M16013_IG02:
test rdi, rdi
jne SHORT G_M16013_IG04
;; size=5 bbWeight=1 PerfScore 1.25
G_M16013_IG03:
xor rdi, rdi
xor ecx, ecx
jmp SHORT G_M16013_IG05
;; size=6 bbWeight=0.50 PerfScore 1.25
G_M16013_IG04:
lea rcx, bword ptr [rdi+0x0C]
mov edx, dword ptr [rdi+0x08]
mov rdi, rcx
mov ecx, edx
;; size=12 bbWeight=0.50 PerfScore 1.50
G_M16013_IG05:
- mov dword ptr [rbp-0x04], 32
- mov dword ptr [rbp-0x08], 126
- movzx rsi, word ptr [rbp-0x04]
- movzx rdx, word ptr [rbp-0x08]
- lea eax, [rsi-0x01]
- cmp eax, 254
- jae SHORT G_M16013_IG07
- ;; size=32 bbWeight=1 PerfScore 5.75
-G_M16013_IG06:
- lea eax, [rdx-0x01]
- cmp eax, 254
- jae SHORT G_M16013_IG07
- cmp edx, esi
- jl SHORT G_M16013_IG07
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
+ mov edx, 94
+ mov esi, 32
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- jmp SHORT G_M16013_IG08
- ;; size=38 bbWeight=0.50 PerfScore 4.50
-G_M16013_IG07:
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M16013_IG08:
test eax, eax
- jl SHORT G_M16013_IG11
- ;; size=4 bbWeight=1 PerfScore 1.25
-G_M16013_IG09:
+ jl SHORT G_M16013_IG08
+ ;; size=26 bbWeight=1 PerfScore 5.00
+G_M16013_IG06:
mov rax, 0xD1FFAB1E ; const ptr
mov rax, gword ptr [rax]
;; size=13 bbWeight=0.50 PerfScore 1.12
-G_M16013_IG10:
- add rsp, 16
+G_M16013_IG07:
pop rbp
ret
- ;; size=6 bbWeight=0.50 PerfScore 0.88
-G_M16013_IG11:
+ ;; size=2 bbWeight=0.50 PerfScore 0.75
+G_M16013_IG08:
mov rax, 0xD1FFAB1E ; global ptr
test byte ptr [rax], 1
- je SHORT G_M16013_IG14
+ je SHORT G_M16013_IG11
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M16013_IG12:
+G_M16013_IG09:
mov rax, 0xD1FFAB1E ; data for System.Text.ASCIIEncoding:s_default
mov rax, gword ptr [rax]
;; size=13 bbWeight=0.50 PerfScore 1.12
-G_M16013_IG13:
- add rsp, 16
+G_M16013_IG10:
pop rbp
ret
- ;; size=6 bbWeight=0.50 PerfScore 0.88
-G_M16013_IG14:
+ ;; size=2 bbWeight=0.50 PerfScore 0.75
+G_M16013_IG11:
mov rdi, 0xD1FFAB1E
mov esi, 0x455
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- jmp SHORT G_M16013_IG12
+ jmp SHORT G_M16013_IG09
;; size=22 bbWeight=0 PerfScore 0.00
-; Total bytes of code 194, prolog size 10, PerfScore 25.00, instruction count 51, allocated bytes for code 194 (MethodHash=4a07c172) for method System.IO.Compression.ZipHelper:GetEncoding(System.String):System.Text.Encoding (FullOpts)
+; Total bytes of code 120, prolog size 4, PerfScore 16.12, instruction count 32, allocated bytes for code 120 (MethodHash=4a07c172) for method System.IO.Compression.ZipHelper:GetEncoding(System.String):System.Text.Encoding (FullOpts)
-72 (-26.97 % of base) - System.Buffers.StringSearchValues:ContainsIncompleteSurrogatePairs(System.ReadOnlySpan`1[System.String]):ubyte
; Assembly listing for method System.Buffers.StringSearchValues:ContainsIncompleteSurrogatePairs(System.ReadOnlySpan`1[System.String]):ubyte (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 25 single block inlinees; 6 inlinees without PGO data
+; 0 inlinees with PGO data; 27 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[System.String]>
;* V01 loc0 [V01 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[System.String]>
;* V02 loc1 [V02,T20] ( 0, 0 ) int -> zero-ref
-; V03 loc2 [V03,T03] ( 7, 29 ) ref -> r13 class-hnd <System.String>
+; V03 loc2 [V03,T02] ( 7, 29 ) ref -> r13 class-hnd <System.String>
; V04 loc3 [V04,T00] ( 8, 64 ) int -> rax
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V10 tmp5 [V10,T11] ( 2, 8 ) byref -> rdi "Inlining Arg"
-; V11 tmp6 [V11,T12] ( 2, 8 ) int -> rcx "Inlining Arg"
-; V12 tmp7 [V12,T13] ( 2, 8 ) int -> rax "Inline return value spill temp"
-; V13 tmp8 [V13 ] ( 2, 16 ) ushort -> [rbp-0x24] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V14 tmp9 [V14 ] ( 2, 16 ) ushort -> [rbp-0x28] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V10 tmp5 [V10,T10] ( 2, 8 ) byref -> rdi "Inlining Arg"
+; V11 tmp6 [V11,T11] ( 2, 8 ) int -> rcx "Inlining Arg"
+; V12 tmp7 [V12,T12] ( 2, 8 ) int -> rax "Inline return value spill temp"
+;* V13 tmp8 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V14 tmp9 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V15 tmp10 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V16 tmp11 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V17 tmp12 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V18 tmp13 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V19 tmp14 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V20 tmp15 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V18 tmp13 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V19 tmp14 [V19 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V20 tmp15 [V20 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V21 tmp16 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V22 tmp17 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V23 tmp18 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V24 tmp19 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V25 tmp20 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V26 tmp21 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V27 tmp22 [V27 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V28 tmp23 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V29 tmp24 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V30 tmp25 [V30 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V31 tmp26 [V31 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V32 tmp27 [V32 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V33 tmp28 [V33 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V34 tmp29 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V35 tmp30 [V35 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V36 tmp31 [V36,T01] ( 6, 32 ) ushort -> rsi "Inlining Arg"
-; V37 tmp32 [V37,T05] ( 5, 24 ) ushort -> rdx "Inlining Arg"
-;* V38 tmp33 [V38 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V39 tmp34 [V39,T10] ( 3, 8 ) int -> rax "Inline return value spill temp"
-;* V40 tmp35 [V40 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V41 tmp36 [V41 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V24 tmp19 [V24 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V26 tmp21 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V27 tmp22 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V28 tmp23 [V28 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V29 tmp24 [V29 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V30 tmp25 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V31 tmp26 [V31 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V32 tmp27 [V32 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V33 tmp28 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V34 tmp29 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V35 tmp30 [V35 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V36 tmp31 [V36 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V37 tmp32 [V37 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V38 tmp33 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+; V39 tmp34 [V39,T06] ( 2, 16 ) byref -> rdi "Inlining Arg"
+; V40 tmp35 [V40,T07] ( 2, 16 ) int -> rcx "Inlining Arg"
+; V41 tmp36 [V41,T13] ( 2, 8 ) int -> rax "Inline return value spill temp"
;* V42 tmp37 [V42 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
;* V43 tmp38 [V43 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V44 tmp39 [V44 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V45 tmp40 [V45 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V45 tmp40 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V46 tmp41 [V46 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V47 tmp42 [V47 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V48 tmp43 [V48 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V49 tmp44 [V49 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V50 tmp45 [V50 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V52 tmp47 [V52 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V53 tmp48 [V53 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V54 tmp49 [V54 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V55 tmp50 [V55 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V56 tmp51 [V56 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V47 tmp42 [V47 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V48 tmp43 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V49 tmp44 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V50 tmp45 [V50 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V51 tmp46 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V52 tmp47 [V52 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V53 tmp48 [V53 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V54 tmp49 [V54 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V55 tmp50 [V55 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V56 tmp51 [V56 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V57 tmp52 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V58 tmp53 [V58 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V59 tmp54 [V59 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V60 tmp55 [V60 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V62 tmp57 [V62 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V63 tmp58 [V63 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V64 tmp59 [V64 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V65 tmp60 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V58 tmp53 [V58 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V59 tmp54 [V59 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V60 tmp55 [V60 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V61 tmp56 [V61 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V62 tmp57 [V62 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
+;* V63 tmp58 [V63 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V64 tmp59 [V64 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V65 tmp60 [V65 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V66 tmp61 [V66 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V67 tmp62 [V67 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V68 tmp63 [V68 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V69 tmp64 [V69,T16] ( 2, 2 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-; V70 tmp65 [V70,T18] ( 2, 2 ) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP
-; V71 tmp66 [V71,T15] ( 2, 5 ) byref -> rbx single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V72 tmp67 [V72,T14] ( 3, 6 ) int -> r15 "field V01._length (fldOffset=0x8)" P-INDEP
-;* V73 tmp68 [V73 ] ( 0, 0 ) byref -> zero-ref "field V06._reference (fldOffset=0x0)" P-INDEP
-;* V74 tmp69 [V74 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP
-; V75 tmp70 [V75,T08] ( 4, 8 ) byref -> rdi "field V07._reference (fldOffset=0x0)" P-INDEP
-; V76 tmp71 [V76,T09] ( 4, 8 ) int -> rcx "field V07._length (fldOffset=0x8)" P-INDEP
-; V77 tmp72 [V77,T17] ( 2, 4 ) byref -> rdi "field V08._reference (fldOffset=0x0)" P-INDEP
-; V78 tmp73 [V78,T19] ( 2, 4 ) int -> rcx "field V08._length (fldOffset=0x8)" P-INDEP
-;* V79 tmp74 [V79 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
-;* V80 tmp75 [V80 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
-;* V81 tmp76 [V81 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP
-;* V82 tmp77 [V82 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
-;* V83 tmp78 [V83 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
-;* V84 tmp79 [V84 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
-;* V85 tmp80 [V85 ] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP
-;* V86 tmp81 [V86 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
-;* V87 tmp82 [V87 ] ( 0, 0 ) byref -> zero-ref "field V49._reference (fldOffset=0x0)" P-INDEP
-;* V88 tmp83 [V88 ] ( 0, 0 ) int -> zero-ref "field V49._length (fldOffset=0x8)" P-INDEP
-;* V89 tmp84 [V89 ] ( 0, 0 ) byref -> zero-ref "field V57._reference (fldOffset=0x0)" P-INDEP
-;* V90 tmp85 [V90 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
-;* V91 tmp86 [V91 ] ( 0, 0 ) byref -> zero-ref "field V65._reference (fldOffset=0x0)" P-INDEP
-;* V92 tmp87 [V92 ] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP
-; V93 cse0 [V93,T06] ( 3, 24 ) int -> rdx "CSE #05: aggressive"
-; V94 cse1 [V94,T04] ( 5, 29 ) int -> rcx hoist multi-def "CSE #01: aggressive"
-; V95 cse2 [V95,T02] ( 4, 32 ) int -> rax "CSE #02: aggressive"
-; V96 rat0 [V96,T07] ( 5, 17 ) long -> r14 "Widened IV V02"
+;* V69 tmp64 [V69 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+; V70 tmp65 [V70,T16] ( 2, 2 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+; V71 tmp66 [V71,T18] ( 2, 2 ) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP
+; V72 tmp67 [V72,T15] ( 2, 5 ) byref -> rbx single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V73 tmp68 [V73,T14] ( 3, 6 ) int -> r15 "field V01._length (fldOffset=0x8)" P-INDEP
+;* V74 tmp69 [V74 ] ( 0, 0 ) byref -> zero-ref "field V06._reference (fldOffset=0x0)" P-INDEP
+;* V75 tmp70 [V75 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP
+; V76 tmp71 [V76,T08] ( 3, 8 ) byref -> rdi "field V07._reference (fldOffset=0x0)" P-INDEP
+; V77 tmp72 [V77,T09] ( 3, 8 ) int -> rcx "field V07._length (fldOffset=0x8)" P-INDEP
+; V78 tmp73 [V78,T17] ( 2, 4 ) byref -> rdi "field V08._reference (fldOffset=0x0)" P-INDEP
+; V79 tmp74 [V79,T19] ( 2, 4 ) int -> rcx "field V08._length (fldOffset=0x8)" P-INDEP
+;* V80 tmp75 [V80 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
+;* V81 tmp76 [V81 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
+;* V82 tmp77 [V82 ] ( 0, 0 ) byref -> zero-ref "field V18._reference (fldOffset=0x0)" P-INDEP
+;* V83 tmp78 [V83 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
+;* V84 tmp79 [V84 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
+;* V85 tmp80 [V85 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
+;* V86 tmp81 [V86 ] ( 0, 0 ) byref -> zero-ref "field V38._reference (fldOffset=0x0)" P-INDEP
+;* V87 tmp82 [V87 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
+;* V88 tmp83 [V88 ] ( 0, 0 ) byref -> zero-ref "field V45._reference (fldOffset=0x0)" P-INDEP
+;* V89 tmp84 [V89 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
+;* V90 tmp85 [V90 ] ( 0, 0 ) byref -> zero-ref "field V51._reference (fldOffset=0x0)" P-INDEP
+;* V91 tmp86 [V91 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
+;* V92 tmp87 [V92 ] ( 0, 0 ) byref -> zero-ref "field V57._reference (fldOffset=0x0)" P-INDEP
+;* V93 tmp88 [V93 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
+; V94 cse0 [V94,T04] ( 3, 24 ) int -> rdx "CSE #05: aggressive"
+; V95 cse1 [V95,T03] ( 5, 29 ) int -> rcx hoist multi-def "CSE #01: aggressive"
+; V96 cse2 [V96,T01] ( 4, 32 ) int -> rax "CSE #02: aggressive"
+; V97 rat0 [V97,T05] ( 5, 17 ) long -> r14 "Widened IV V02"
;
-; Lcl frame size = 16
+; Lcl frame size = 0
G_M18675_IG01:
push rbp
push r15
push r14
push r13
push rbx
- sub rsp, 16
- lea rbp, [rsp+0x30]
- ;; size=17 bbWeight=1 PerfScore 5.75
+ lea rbp, [rsp+0x20]
+ ;; size=13 bbWeight=1 PerfScore 5.50
G_M18675_IG02:
mov rbx, rdi
mov r15d, esi
xor r14d, r14d
test r15d, r15d
- jle G_M18675_IG16
+ jle G_M18675_IG13
;; size=18 bbWeight=1 PerfScore 2.00
G_M18675_IG03:
mov r13, gword ptr [rbx+8*r14]
test r13, r13
jne SHORT G_M18675_IG05
;; size=9 bbWeight=4 PerfScore 13.00
G_M18675_IG04:
xor rdi, rdi
xor ecx, ecx
jmp SHORT G_M18675_IG06
;; size=6 bbWeight=2 PerfScore 5.00
G_M18675_IG05:
lea rdi, bword ptr [r13+0x0C]
mov ecx, dword ptr [r13+0x08]
;; size=8 bbWeight=2 PerfScore 5.00
G_M18675_IG06:
- mov dword ptr [rbp-0x24], 0xD800
- mov dword ptr [rbp-0x28], 0xDFFF
- movzx rsi, word ptr [rbp-0x24]
- movzx rdx, word ptr [rbp-0x28]
- lea eax, [rsi-0x01]
- cmp eax, 254
- jae SHORT G_M18675_IG08
- ;; size=32 bbWeight=4 PerfScore 23.00
-G_M18675_IG07:
- lea eax, [rdx-0x01]
- cmp eax, 254
- jae SHORT G_M18675_IG08
- cmp edx, esi
- jl SHORT G_M18675_IG08
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
- mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int
- call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int
- jmp SHORT G_M18675_IG09
- ;; size=38 bbWeight=2 PerfScore 18.00
-G_M18675_IG08:
+ mov esi, 0xD800
+ mov edx, 0xDFFF
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+DontNegate`1[ushort]](byref,ushort,ushort,int):int
call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+DontNegate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=12 bbWeight=2 PerfScore 6.50
-G_M18675_IG09:
test eax, eax
- jl SHORT G_M18675_IG15
- ;; size=4 bbWeight=4 PerfScore 5.00
-G_M18675_IG10:
+ jl SHORT G_M18675_IG12
+ ;; size=26 bbWeight=4 PerfScore 20.00
+G_M18675_IG07:
mov ecx, dword ptr [r13+0x08]
- jmp SHORT G_M18675_IG14
- align [0 bytes for IG11]
+ jmp SHORT G_M18675_IG11
+ align [0 bytes for IG08]
;; size=6 bbWeight=1 PerfScore 4.00
-G_M18675_IG11:
+G_M18675_IG08:
mov edx, eax
movzx rdx, word ptr [r13+2*rdx+0x0C]
lea edi, [rdx-0xD800]
cmp edi, 0x3FF
- ja SHORT G_M18675_IG12
+ ja SHORT G_M18675_IG09
inc eax
cmp ecx, eax
- jbe SHORT G_M18675_IG18
+ jbe SHORT G_M18675_IG15
mov edx, eax
movzx rdx, word ptr [r13+2*rdx+0x0C]
add edx, -0xDC00
cmp edx, 0x3FF
- ja SHORT G_M18675_IG18
- jmp SHORT G_M18675_IG13
+ ja SHORT G_M18675_IG15
+ jmp SHORT G_M18675_IG10
;; size=52 bbWeight=8 PerfScore 90.00
-G_M18675_IG12:
+G_M18675_IG09:
add edx, -0xDC00
cmp edx, 0x3FF
- jbe SHORT G_M18675_IG18
+ jbe SHORT G_M18675_IG15
;; size=14 bbWeight=8 PerfScore 12.00
-G_M18675_IG13:
+G_M18675_IG10:
inc eax
;; size=2 bbWeight=8 PerfScore 2.00
-G_M18675_IG14:
+G_M18675_IG11:
cmp ecx, eax
- ja SHORT G_M18675_IG11
+ ja SHORT G_M18675_IG08
;; size=4 bbWeight=16 PerfScore 20.00
-G_M18675_IG15:
+G_M18675_IG12:
inc r14d
cmp r14d, r15d
jl G_M18675_IG03
;; size=12 bbWeight=4 PerfScore 6.00
-G_M18675_IG16:
+G_M18675_IG13:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M18675_IG17:
- add rsp, 16
+G_M18675_IG14:
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M18675_IG18:
+ ;; size=9 bbWeight=0.50 PerfScore 1.75
+G_M18675_IG15:
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M18675_IG19:
- add rsp, 16
+G_M18675_IG16:
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0.50 PerfScore 1.88
+ ;; size=9 bbWeight=0.50 PerfScore 1.75
-; Total bytes of code 267, prolog size 17, PerfScore 221.25, instruction count 84, allocated bytes for code 267 (MethodHash=644bb70c) for method System.Buffers.StringSearchValues:ContainsIncompleteSurrogatePairs(System.ReadOnlySpan`1[System.String]):ubyte (FullOpts)
+; Total bytes of code 195, prolog size 13, PerfScore 188.25, instruction count 65, allocated bytes for code 195 (MethodHash=644bb70c) for method System.Buffers.StringSearchValues:ContainsIncompleteSurrogatePairs(System.ReadOnlySpan`1[System.String]):ubyte (FullOpts)
-72 (-45.28 % of base) - System.Net.HttpValidationHelpers:IsValidToken(System.String):ubyte
; Assembly listing for method System.Net.HttpValidationHelpers:IsValidToken(System.String):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; 21 single block inlinees; 6 inlinees without PGO data
+; 0 inlinees with PGO data; 23 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 5, 4 ) ref -> rbx class-hnd single-def <System.String>
+; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rbx class-hnd single-def <System.String>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V03 tmp2 [V03 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V04 tmp3 [V04 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V05 tmp4 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V06 tmp5 [V06,T04] ( 2, 2 ) byref -> rbx single-def "Inlining Arg"
-; V07 tmp6 [V07,T05] ( 2, 2 ) int -> r15 "Inlining Arg"
-; V08 tmp7 [V08,T10] ( 2, 1 ) int -> rax "Inline return value spill temp"
-; V09 tmp8 [V09 ] ( 2, 2 ) ushort -> [rbp-0x14] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V10 tmp9 [V10 ] ( 2, 2 ) ushort -> [rbp-0x18] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V06 tmp5 [V06,T02] ( 2, 2 ) byref -> rbx single-def "Inlining Arg"
+; V07 tmp6 [V07,T03] ( 2, 2 ) int -> r15 "Inlining Arg"
+; V08 tmp7 [V08,T06] ( 2, 1 ) int -> rax "Inline return value spill temp"
+;* V09 tmp8 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V10 tmp9 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V11 tmp10 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V12 tmp11 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V13 tmp12 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V14 tmp13 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V15 tmp14 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V16 tmp15 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V14 tmp13 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V15 tmp14 [V15 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V16 tmp15 [V16 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V17 tmp16 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V18 tmp17 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V19 tmp18 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V20 tmp19 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V21 tmp20 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V22 tmp21 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V23 tmp22 [V23 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V24 tmp23 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V25 tmp24 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V26 tmp25 [V26 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V27 tmp26 [V27 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V28 tmp27 [V28 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V29 tmp28 [V29 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V30 tmp29 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V31 tmp30 [V31 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V32 tmp31 [V32,T00] ( 6, 6 ) ushort -> rsi "Inlining Arg"
-; V33 tmp32 [V33,T02] ( 5, 5 ) ushort -> rdx "Inlining Arg"
-;* V34 tmp33 [V34 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V35 tmp34 [V35,T07] ( 3, 1.50) int -> rax "Inline return value spill temp"
-;* V36 tmp35 [V36 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V37 tmp36 [V37 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V20 tmp19 [V20 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V21 tmp20 [V21 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V22 tmp21 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp22 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V24 tmp23 [V24 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V25 tmp24 [V25 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V26 tmp25 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V27 tmp26 [V27 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V28 tmp27 [V28 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V29 tmp28 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V30 tmp29 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V31 tmp30 [V31 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V32 tmp31 [V32 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V33 tmp32 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V34 tmp33 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V35 tmp34 [V35 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V36 tmp35 [V36 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V37 tmp36 [V37,T07] ( 2, 1 ) int -> rax "Inline return value spill temp"
;* V38 tmp37 [V38 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
-;* V39 tmp38 [V39 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V39 tmp38 [V39,T10] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V40 tmp39 [V40 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V41 tmp40 [V41 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V41 tmp40 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V42 tmp41 [V42 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V43 tmp42 [V43 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V44 tmp43 [V44 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V45 tmp44 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V46 tmp45 [V46 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V47 tmp46 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V48 tmp47 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V49 tmp48 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V50 tmp49 [V50 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V51 tmp50 [V51 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V52 tmp51 [V52 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V43 tmp42 [V43 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V44 tmp43 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V45 tmp44 [V45 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V46 tmp45 [V46 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V47 tmp46 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V48 tmp47 [V48 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V49 tmp48 [V49 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V50 tmp49 [V50 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V51 tmp50 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V52 tmp51 [V52 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V53 tmp52 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V54 tmp53 [V54 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V55 tmp54 [V55 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V56 tmp55 [V56 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V57 tmp56 [V57 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V58 tmp57 [V58 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V59 tmp58 [V59 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V60 tmp59 [V60 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V61 tmp60 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V62 tmp61 [V62 ] ( 0, 0 ) byref -> zero-ref "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V63 tmp62 [V63 ] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
-; V64 tmp63 [V64,T06] ( 3, 1.50) byref -> rdi single-def "field V03._reference (fldOffset=0x0)" P-INDEP
-; V65 tmp64 [V65,T08] ( 3, 1.50) int -> rcx "field V03._length (fldOffset=0x8)" P-INDEP
-; V66 tmp65 [V66,T09] ( 2, 1 ) byref -> rdi single-def "field V04._reference (fldOffset=0x0)" P-INDEP
-; V67 tmp66 [V67,T11] ( 2, 1 ) int -> rcx "field V04._length (fldOffset=0x8)" P-INDEP
-;* V68 tmp67 [V68 ] ( 0, 0 ) byref -> zero-ref "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V69 tmp68 [V69 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
-;* V70 tmp69 [V70 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
-;* V71 tmp70 [V71 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
-;* V72 tmp71 [V72 ] ( 0, 0 ) byref -> zero-ref "field V22._reference (fldOffset=0x0)" P-INDEP
-;* V73 tmp72 [V73 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
-;* V74 tmp73 [V74 ] ( 0, 0 ) byref -> zero-ref single-def "field V30._reference (fldOffset=0x0)" P-INDEP
-;* V75 tmp74 [V75 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
-;* V76 tmp75 [V76 ] ( 0, 0 ) byref -> zero-ref "field V45._reference (fldOffset=0x0)" P-INDEP
-;* V77 tmp76 [V77 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
-;* V78 tmp77 [V78 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V79 tmp78 [V79 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-;* V80 tmp79 [V80 ] ( 0, 0 ) byref -> zero-ref "field V61._reference (fldOffset=0x0)" P-INDEP
-;* V81 tmp80 [V81 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
-; V82 cse0 [V82,T03] ( 3, 2.50) int -> r15 "CSE #01: aggressive"
+;* V54 tmp53 [V54 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V55 tmp54 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V56 tmp55 [V56 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V57 tmp56 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V58 tmp57 [V58 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
+;* V59 tmp58 [V59 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V60 tmp59 [V60 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V61 tmp60 [V61 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V62 tmp61 [V62 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V63 tmp62 [V63 ] ( 0, 0 ) byref -> zero-ref "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V64 tmp63 [V64 ] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
+; V65 tmp64 [V65,T04] ( 2, 1 ) byref -> rdi single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+; V66 tmp65 [V66,T08] ( 2, 1 ) int -> rcx "field V03._length (fldOffset=0x8)" P-INDEP
+; V67 tmp66 [V67,T05] ( 2, 1 ) byref -> rdi single-def "field V04._reference (fldOffset=0x0)" P-INDEP
+; V68 tmp67 [V68,T09] ( 2, 1 ) int -> rcx "field V04._length (fldOffset=0x8)" P-INDEP
+;* V69 tmp68 [V69 ] ( 0, 0 ) byref -> zero-ref "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V70 tmp69 [V70 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
+;* V71 tmp70 [V71 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V72 tmp71 [V72 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
+;* V73 tmp72 [V73 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V74 tmp73 [V74 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
+;* V75 tmp74 [V75 ] ( 0, 0 ) byref -> zero-ref single-def "field V34._reference (fldOffset=0x0)" P-INDEP
+;* V76 tmp75 [V76 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
+;* V77 tmp76 [V77 ] ( 0, 0 ) byref -> zero-ref "field V41._reference (fldOffset=0x0)" P-INDEP
+;* V78 tmp77 [V78 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
+;* V79 tmp78 [V79 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
+;* V80 tmp79 [V80 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
+;* V81 tmp80 [V81 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V82 tmp81 [V82 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
+; V83 cse0 [V83,T01] ( 3, 2.50) int -> r15 "CSE #01: aggressive"
;
-; Lcl frame size = 16
+; Lcl frame size = 0
G_M9969_IG01:
push rbp
push r15
push rbx
- sub rsp, 16
- lea rbp, [rsp+0x20]
+ lea rbp, [rsp+0x10]
mov rbx, rdi
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=12 bbWeight=1 PerfScore 3.75
G_M9969_IG02:
mov r15d, dword ptr [rbx+0x08]
test r15d, r15d
- jle SHORT G_M9969_IG07
+ jle SHORT G_M9969_IG05
;; size=9 bbWeight=1 PerfScore 3.25
G_M9969_IG03:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.HttpValidationHelpers:IsInvalidMethodOrHeaderString(System.String):ubyte
call [rax]System.Net.HttpValidationHelpers:IsInvalidMethodOrHeaderString(System.String):ubyte
test eax, eax
- jne SHORT G_M9969_IG07
+ jne SHORT G_M9969_IG05
add rbx, 12
mov rdi, rbx
mov ecx, r15d
- mov dword ptr [rbp-0x14], 32
- mov dword ptr [rbp-0x18], 126
- movzx rsi, word ptr [rbp-0x14]
- movzx rdx, word ptr [rbp-0x18]
- lea eax, [rsi-0x01]
- cmp eax, 254
- jae SHORT G_M9969_IG04
- lea eax, [rdx-0x01]
- cmp eax, 254
- jae SHORT G_M9969_IG04
- cmp edx, esi
- jl SHORT G_M9969_IG04
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
+ mov edx, 94
+ mov esi, 32
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- jmp SHORT G_M9969_IG05
- ;; size=99 bbWeight=0.50 PerfScore 10.12
-G_M9969_IG04:
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M9969_IG05:
shr eax, 31
- ;; size=3 bbWeight=0.50 PerfScore 0.25
-G_M9969_IG06:
- add rsp, 16
+ ;; size=54 bbWeight=0.50 PerfScore 4.88
+G_M9969_IG04:
pop rbx
pop r15
pop rbp
ret
- ;; size=9 bbWeight=0.50 PerfScore 1.38
-G_M9969_IG07:
+ ;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M9969_IG05:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M9969_IG08:
- add rsp, 16
+G_M9969_IG06:
pop rbx
pop r15
pop rbp
ret
- ;; size=9 bbWeight=0.50 PerfScore 1.38
+ ;; size=5 bbWeight=0.50 PerfScore 1.25
-; Total bytes of code 159, prolog size 13, PerfScore 22.12, instruction count 49, allocated bytes for code 159 (MethodHash=7afcd90e) for method System.Net.HttpValidationHelpers:IsValidToken(System.String):ubyte (FullOpts)
+; Total bytes of code 87, prolog size 9, PerfScore 14.50, instruction count 30, allocated bytes for code 87 (MethodHash=7afcd90e) for method System.Net.HttpValidationHelpers:IsValidToken(System.String):ubyte (FullOpts)
-70 (-55.56 % of base) - System.Net.HttpValidationHelpers:ContainsNonAsciiChars(System.String):ubyte
; Assembly listing for method System.Net.HttpValidationHelpers:ContainsNonAsciiChars(System.String):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; 20 single block inlinees; 6 inlinees without PGO data
+; 0 inlinees with PGO data; 22 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 5, 4 ) ref -> rdi class-hnd single-def <System.String>
+; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rdi class-hnd single-def <System.String>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V03 tmp2 [V03 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V04 tmp3 [V04 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V05 tmp4 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V06 tmp5 [V06,T06] ( 2, 2 ) byref -> rcx single-def "Inlining Arg"
-; V07 tmp6 [V07,T07] ( 2, 2 ) int -> rdx "Inlining Arg"
-; V08 tmp7 [V08,T08] ( 2, 2 ) int -> rax "Inline return value spill temp"
-; V09 tmp8 [V09 ] ( 2, 4 ) ushort -> [rbp-0x04] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V10 tmp9 [V10 ] ( 2, 4 ) ushort -> [rbp-0x08] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V06 tmp5 [V06,T03] ( 2, 2 ) byref -> rcx single-def "Inlining Arg"
+; V07 tmp6 [V07,T04] ( 2, 2 ) int -> rdx "Inlining Arg"
+; V08 tmp7 [V08,T05] ( 2, 2 ) int -> rax "Inline return value spill temp"
+;* V09 tmp8 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V10 tmp9 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V11 tmp10 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V12 tmp11 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V13 tmp12 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V14 tmp13 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V15 tmp14 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V16 tmp15 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V14 tmp13 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V15 tmp14 [V15 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V16 tmp15 [V16 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V17 tmp16 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V18 tmp17 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V19 tmp18 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V20 tmp19 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V21 tmp20 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V22 tmp21 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V23 tmp22 [V23 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V24 tmp23 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V25 tmp24 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V26 tmp25 [V26 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V27 tmp26 [V27 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V28 tmp27 [V28 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V29 tmp28 [V29 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V30 tmp29 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V31 tmp30 [V31 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V32 tmp31 [V32,T00] ( 6, 8 ) ushort -> rsi "Inlining Arg"
-; V33 tmp32 [V33,T02] ( 5, 6 ) ushort -> rdx "Inlining Arg"
-;* V34 tmp33 [V34 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V35 tmp34 [V35,T05] ( 3, 2 ) int -> rax "Inline return value spill temp"
-;* V36 tmp35 [V36 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V37 tmp36 [V37 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V20 tmp19 [V20 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V21 tmp20 [V21 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V22 tmp21 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp22 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V24 tmp23 [V24 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V25 tmp24 [V25 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V26 tmp25 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V27 tmp26 [V27 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V28 tmp27 [V28 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V29 tmp28 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V30 tmp29 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V31 tmp30 [V31 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V32 tmp31 [V32 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V33 tmp32 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V34 tmp33 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V35 tmp34 [V35 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V36 tmp35 [V36 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V37 tmp36 [V37,T06] ( 2, 2 ) int -> rax "Inline return value spill temp"
;* V38 tmp37 [V38 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
-;* V39 tmp38 [V39 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V39 tmp38 [V39,T09] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V40 tmp39 [V40 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V41 tmp40 [V41 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V41 tmp40 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V42 tmp41 [V42 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V43 tmp42 [V43 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V44 tmp43 [V44 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V45 tmp44 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V46 tmp45 [V46 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V47 tmp46 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V48 tmp47 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V49 tmp48 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V50 tmp49 [V50 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V51 tmp50 [V51 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V52 tmp51 [V52 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V43 tmp42 [V43 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V44 tmp43 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V45 tmp44 [V45 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V46 tmp45 [V46 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V47 tmp46 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V48 tmp47 [V48 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V49 tmp48 [V49 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V50 tmp49 [V50 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V51 tmp50 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V52 tmp51 [V52 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V53 tmp52 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V54 tmp53 [V54 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V55 tmp54 [V55 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V56 tmp55 [V56 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V57 tmp56 [V57 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V58 tmp57 [V58 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V59 tmp58 [V59 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V60 tmp59 [V60 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V61 tmp60 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V62 tmp61 [V62 ] ( 0, 0 ) byref -> zero-ref "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V63 tmp62 [V63 ] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
-; V64 tmp63 [V64,T03] ( 4, 2 ) byref -> rdi "field V03._reference (fldOffset=0x0)" P-INDEP
-; V65 tmp64 [V65,T04] ( 4, 2 ) int -> rcx "field V03._length (fldOffset=0x8)" P-INDEP
-; V66 tmp65 [V66,T09] ( 2, 1 ) byref -> rdi single-def "field V04._reference (fldOffset=0x0)" P-INDEP
-; V67 tmp66 [V67,T10] ( 2, 1 ) int -> rcx "field V04._length (fldOffset=0x8)" P-INDEP
-;* V68 tmp67 [V68 ] ( 0, 0 ) byref -> zero-ref single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V69 tmp68 [V69 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
-;* V70 tmp69 [V70 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
-;* V71 tmp70 [V71 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
-;* V72 tmp71 [V72 ] ( 0, 0 ) byref -> zero-ref "field V22._reference (fldOffset=0x0)" P-INDEP
-;* V73 tmp72 [V73 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
-;* V74 tmp73 [V74 ] ( 0, 0 ) byref -> zero-ref single-def "field V30._reference (fldOffset=0x0)" P-INDEP
-;* V75 tmp74 [V75 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
-;* V76 tmp75 [V76 ] ( 0, 0 ) byref -> zero-ref "field V45._reference (fldOffset=0x0)" P-INDEP
-;* V77 tmp76 [V77 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
-;* V78 tmp77 [V78 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V79 tmp78 [V79 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-;* V80 tmp79 [V80 ] ( 0, 0 ) byref -> zero-ref "field V61._reference (fldOffset=0x0)" P-INDEP
-;* V81 tmp80 [V81 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
+;* V54 tmp53 [V54 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V55 tmp54 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V56 tmp55 [V56 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V57 tmp56 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V58 tmp57 [V58 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
+;* V59 tmp58 [V59 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V60 tmp59 [V60 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V61 tmp60 [V61 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V62 tmp61 [V62 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V63 tmp62 [V63 ] ( 0, 0 ) byref -> zero-ref "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V64 tmp63 [V64 ] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
+; V65 tmp64 [V65,T01] ( 3, 2 ) byref -> rdi "field V03._reference (fldOffset=0x0)" P-INDEP
+; V66 tmp65 [V66,T02] ( 3, 2 ) int -> rcx "field V03._length (fldOffset=0x8)" P-INDEP
+; V67 tmp66 [V67,T07] ( 2, 1 ) byref -> rdi single-def "field V04._reference (fldOffset=0x0)" P-INDEP
+; V68 tmp67 [V68,T08] ( 2, 1 ) int -> rcx "field V04._length (fldOffset=0x8)" P-INDEP
+;* V69 tmp68 [V69 ] ( 0, 0 ) byref -> zero-ref single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V70 tmp69 [V70 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
+;* V71 tmp70 [V71 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V72 tmp71 [V72 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
+;* V73 tmp72 [V73 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V74 tmp73 [V74 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
+;* V75 tmp74 [V75 ] ( 0, 0 ) byref -> zero-ref single-def "field V34._reference (fldOffset=0x0)" P-INDEP
+;* V76 tmp75 [V76 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
+;* V77 tmp76 [V77 ] ( 0, 0 ) byref -> zero-ref "field V41._reference (fldOffset=0x0)" P-INDEP
+;* V78 tmp77 [V78 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
+;* V79 tmp78 [V79 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
+;* V80 tmp79 [V80 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
+;* V81 tmp80 [V81 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V82 tmp81 [V82 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 16
+; Lcl frame size = 0
G_M5936_IG01:
push rbp
- sub rsp, 16
- lea rbp, [rsp+0x10]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M5936_IG02:
test rdi, rdi
jne SHORT G_M5936_IG04
;; size=5 bbWeight=1 PerfScore 1.25
G_M5936_IG03:
xor rdi, rdi
xor ecx, ecx
jmp SHORT G_M5936_IG05
;; size=6 bbWeight=0.50 PerfScore 1.25
G_M5936_IG04:
lea rcx, bword ptr [rdi+0x0C]
mov edx, dword ptr [rdi+0x08]
mov rdi, rcx
mov ecx, edx
;; size=12 bbWeight=0.50 PerfScore 1.50
G_M5936_IG05:
- mov dword ptr [rbp-0x04], 32
- mov dword ptr [rbp-0x08], 126
- movzx rsi, word ptr [rbp-0x04]
- movzx rdx, word ptr [rbp-0x08]
- lea eax, [rsi-0x01]
- cmp eax, 254
- jae SHORT G_M5936_IG07
- ;; size=32 bbWeight=1 PerfScore 5.75
-G_M5936_IG06:
- lea eax, [rdx-0x01]
- cmp eax, 254
- jae SHORT G_M5936_IG07
- cmp edx, esi
- jl SHORT G_M5936_IG07
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
+ mov edx, 94
+ mov esi, 32
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- jmp SHORT G_M5936_IG08
- ;; size=38 bbWeight=0.50 PerfScore 4.50
-G_M5936_IG07:
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M5936_IG08:
not eax
shr eax, 31
- ;; size=5 bbWeight=1 PerfScore 0.75
-G_M5936_IG09:
- add rsp, 16
+ ;; size=27 bbWeight=1 PerfScore 4.50
+G_M5936_IG06:
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 126, prolog size 10, PerfScore 20.12, instruction count 37, allocated bytes for code 126 (MethodHash=3a6fe8cf) for method System.Net.HttpValidationHelpers:ContainsNonAsciiChars(System.String):ubyte (FullOpts)
+; Total bytes of code 56, prolog size 4, PerfScore 11.25, instruction count 19, allocated bytes for code 56 (MethodHash=3a6fe8cf) for method System.Net.HttpValidationHelpers:ContainsNonAsciiChars(System.String):ubyte (FullOpts)
-70 (-55.56 % of base) - System.Net.HttpValidationHelpers:ContainsNonAsciiChars(System.String):ubyte
; Assembly listing for method System.Net.HttpValidationHelpers:ContainsNonAsciiChars(System.String):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; 20 single block inlinees; 6 inlinees without PGO data
+; 0 inlinees with PGO data; 22 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 5, 4 ) ref -> rdi class-hnd single-def <System.String>
+; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rdi class-hnd single-def <System.String>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V03 tmp2 [V03 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V04 tmp3 [V04 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V05 tmp4 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V06 tmp5 [V06,T06] ( 2, 2 ) byref -> rcx single-def "Inlining Arg"
-; V07 tmp6 [V07,T07] ( 2, 2 ) int -> rdx "Inlining Arg"
-; V08 tmp7 [V08,T08] ( 2, 2 ) int -> rax "Inline return value spill temp"
-; V09 tmp8 [V09 ] ( 2, 4 ) ushort -> [rbp-0x04] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V10 tmp9 [V10 ] ( 2, 4 ) ushort -> [rbp-0x08] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V06 tmp5 [V06,T03] ( 2, 2 ) byref -> rcx single-def "Inlining Arg"
+; V07 tmp6 [V07,T04] ( 2, 2 ) int -> rdx "Inlining Arg"
+; V08 tmp7 [V08,T05] ( 2, 2 ) int -> rax "Inline return value spill temp"
+;* V09 tmp8 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V10 tmp9 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V11 tmp10 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V12 tmp11 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V13 tmp12 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V14 tmp13 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V15 tmp14 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V16 tmp15 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V14 tmp13 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V15 tmp14 [V15 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V16 tmp15 [V16 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V17 tmp16 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V18 tmp17 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V19 tmp18 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V20 tmp19 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V21 tmp20 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V22 tmp21 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V23 tmp22 [V23 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V24 tmp23 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V25 tmp24 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V26 tmp25 [V26 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V27 tmp26 [V27 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V28 tmp27 [V28 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V29 tmp28 [V29 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V30 tmp29 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V31 tmp30 [V31 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V32 tmp31 [V32,T00] ( 6, 8 ) ushort -> rsi "Inlining Arg"
-; V33 tmp32 [V33,T02] ( 5, 6 ) ushort -> rdx "Inlining Arg"
-;* V34 tmp33 [V34 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V35 tmp34 [V35,T05] ( 3, 2 ) int -> rax "Inline return value spill temp"
-;* V36 tmp35 [V36 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V37 tmp36 [V37 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V20 tmp19 [V20 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V21 tmp20 [V21 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V22 tmp21 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp22 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V24 tmp23 [V24 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V25 tmp24 [V25 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V26 tmp25 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V27 tmp26 [V27 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V28 tmp27 [V28 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V29 tmp28 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V30 tmp29 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V31 tmp30 [V31 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V32 tmp31 [V32 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V33 tmp32 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V34 tmp33 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V35 tmp34 [V35 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V36 tmp35 [V36 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V37 tmp36 [V37,T06] ( 2, 2 ) int -> rax "Inline return value spill temp"
;* V38 tmp37 [V38 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
-;* V39 tmp38 [V39 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V39 tmp38 [V39,T09] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V40 tmp39 [V40 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V41 tmp40 [V41 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V41 tmp40 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V42 tmp41 [V42 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V43 tmp42 [V43 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V44 tmp43 [V44 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V45 tmp44 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V46 tmp45 [V46 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V47 tmp46 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V48 tmp47 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V49 tmp48 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V50 tmp49 [V50 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V51 tmp50 [V51 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V52 tmp51 [V52 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V43 tmp42 [V43 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V44 tmp43 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V45 tmp44 [V45 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V46 tmp45 [V46 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V47 tmp46 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V48 tmp47 [V48 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V49 tmp48 [V49 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V50 tmp49 [V50 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V51 tmp50 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V52 tmp51 [V52 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V53 tmp52 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V54 tmp53 [V54 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V55 tmp54 [V55 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V56 tmp55 [V56 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V57 tmp56 [V57 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V58 tmp57 [V58 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V59 tmp58 [V59 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V60 tmp59 [V60 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V61 tmp60 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V62 tmp61 [V62 ] ( 0, 0 ) byref -> zero-ref "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V63 tmp62 [V63 ] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
-; V64 tmp63 [V64,T03] ( 4, 2 ) byref -> rdi "field V03._reference (fldOffset=0x0)" P-INDEP
-; V65 tmp64 [V65,T04] ( 4, 2 ) int -> rcx "field V03._length (fldOffset=0x8)" P-INDEP
-; V66 tmp65 [V66,T09] ( 2, 1 ) byref -> rdi single-def "field V04._reference (fldOffset=0x0)" P-INDEP
-; V67 tmp66 [V67,T10] ( 2, 1 ) int -> rcx "field V04._length (fldOffset=0x8)" P-INDEP
-;* V68 tmp67 [V68 ] ( 0, 0 ) byref -> zero-ref single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V69 tmp68 [V69 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
-;* V70 tmp69 [V70 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
-;* V71 tmp70 [V71 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
-;* V72 tmp71 [V72 ] ( 0, 0 ) byref -> zero-ref "field V22._reference (fldOffset=0x0)" P-INDEP
-;* V73 tmp72 [V73 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
-;* V74 tmp73 [V74 ] ( 0, 0 ) byref -> zero-ref single-def "field V30._reference (fldOffset=0x0)" P-INDEP
-;* V75 tmp74 [V75 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
-;* V76 tmp75 [V76 ] ( 0, 0 ) byref -> zero-ref "field V45._reference (fldOffset=0x0)" P-INDEP
-;* V77 tmp76 [V77 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
-;* V78 tmp77 [V78 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V79 tmp78 [V79 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-;* V80 tmp79 [V80 ] ( 0, 0 ) byref -> zero-ref "field V61._reference (fldOffset=0x0)" P-INDEP
-;* V81 tmp80 [V81 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
+;* V54 tmp53 [V54 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V55 tmp54 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V56 tmp55 [V56 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V57 tmp56 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V58 tmp57 [V58 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
+;* V59 tmp58 [V59 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V60 tmp59 [V60 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V61 tmp60 [V61 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V62 tmp61 [V62 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V63 tmp62 [V63 ] ( 0, 0 ) byref -> zero-ref "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V64 tmp63 [V64 ] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
+; V65 tmp64 [V65,T01] ( 3, 2 ) byref -> rdi "field V03._reference (fldOffset=0x0)" P-INDEP
+; V66 tmp65 [V66,T02] ( 3, 2 ) int -> rcx "field V03._length (fldOffset=0x8)" P-INDEP
+; V67 tmp66 [V67,T07] ( 2, 1 ) byref -> rdi single-def "field V04._reference (fldOffset=0x0)" P-INDEP
+; V68 tmp67 [V68,T08] ( 2, 1 ) int -> rcx "field V04._length (fldOffset=0x8)" P-INDEP
+;* V69 tmp68 [V69 ] ( 0, 0 ) byref -> zero-ref single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V70 tmp69 [V70 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
+;* V71 tmp70 [V71 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V72 tmp71 [V72 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
+;* V73 tmp72 [V73 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V74 tmp73 [V74 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
+;* V75 tmp74 [V75 ] ( 0, 0 ) byref -> zero-ref single-def "field V34._reference (fldOffset=0x0)" P-INDEP
+;* V76 tmp75 [V76 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
+;* V77 tmp76 [V77 ] ( 0, 0 ) byref -> zero-ref "field V41._reference (fldOffset=0x0)" P-INDEP
+;* V78 tmp77 [V78 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
+;* V79 tmp78 [V79 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
+;* V80 tmp79 [V80 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
+;* V81 tmp80 [V81 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V82 tmp81 [V82 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 16
+; Lcl frame size = 0
G_M5936_IG01:
push rbp
- sub rsp, 16
- lea rbp, [rsp+0x10]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M5936_IG02:
test rdi, rdi
jne SHORT G_M5936_IG04
;; size=5 bbWeight=1 PerfScore 1.25
G_M5936_IG03:
xor rdi, rdi
xor ecx, ecx
jmp SHORT G_M5936_IG05
;; size=6 bbWeight=0.50 PerfScore 1.25
G_M5936_IG04:
lea rcx, bword ptr [rdi+0x0C]
mov edx, dword ptr [rdi+0x08]
mov rdi, rcx
mov ecx, edx
;; size=12 bbWeight=0.50 PerfScore 1.50
G_M5936_IG05:
- mov dword ptr [rbp-0x04], 32
- mov dword ptr [rbp-0x08], 126
- movzx rsi, word ptr [rbp-0x04]
- movzx rdx, word ptr [rbp-0x08]
- lea eax, [rsi-0x01]
- cmp eax, 254
- jae SHORT G_M5936_IG07
- ;; size=32 bbWeight=1 PerfScore 5.75
-G_M5936_IG06:
- lea eax, [rdx-0x01]
- cmp eax, 254
- jae SHORT G_M5936_IG07
- cmp edx, esi
- jl SHORT G_M5936_IG07
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
+ mov edx, 94
+ mov esi, 32
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- jmp SHORT G_M5936_IG08
- ;; size=38 bbWeight=0.50 PerfScore 4.50
-G_M5936_IG07:
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M5936_IG08:
not eax
shr eax, 31
- ;; size=5 bbWeight=1 PerfScore 0.75
-G_M5936_IG09:
- add rsp, 16
+ ;; size=27 bbWeight=1 PerfScore 4.50
+G_M5936_IG06:
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 126, prolog size 10, PerfScore 20.12, instruction count 37, allocated bytes for code 126 (MethodHash=3a6fe8cf) for method System.Net.HttpValidationHelpers:ContainsNonAsciiChars(System.String):ubyte (FullOpts)
+; Total bytes of code 56, prolog size 4, PerfScore 11.25, instruction count 19, allocated bytes for code 56 (MethodHash=3a6fe8cf) for method System.Net.HttpValidationHelpers:ContainsNonAsciiChars(System.String):ubyte (FullOpts)
-70 (-44.30 % of base) - System.Xml.XmlCharType:IsOnlyDigits(System.String,int,int):ubyte
; Assembly listing for method System.Xml.XmlCharType:IsOnlyDigits(System.String,int,int):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; 20 single block inlinees; 6 inlinees without PGO data
+; 0 inlinees with PGO data; 22 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 5, 4 ) ref -> rdi class-hnd single-def <System.String>
-; V01 arg1 [V01,T03] ( 5, 3.50) int -> rsi single-def
-; V02 arg2 [V02,T04] ( 5, 3.50) int -> rdx single-def
+; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rdi class-hnd single-def <System.String>
+; V01 arg1 [V01,T01] ( 5, 3.50) int -> rsi single-def
+; V02 arg2 [V02,T02] ( 5, 3.50) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V05 tmp2 [V05 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V07 tmp4 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
;* V08 tmp5 [V08 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V09 tmp6 [V09,T08] ( 2, 2 ) int -> rax "Inline return value spill temp"
-; V10 tmp7 [V10 ] ( 2, 4 ) ushort -> [rbp-0x04] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V11 tmp8 [V11 ] ( 2, 4 ) ushort -> [rbp-0x08] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V09 tmp6 [V09,T05] ( 2, 2 ) int -> rax "Inline return value spill temp"
+;* V10 tmp7 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V11 tmp8 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V12 tmp9 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V13 tmp10 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V14 tmp11 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V15 tmp12 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V16 tmp13 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V17 tmp14 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V15 tmp12 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V16 tmp13 [V16 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V17 tmp14 [V17 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V18 tmp15 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V19 tmp16 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V20 tmp17 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V21 tmp18 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V22 tmp19 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V23 tmp20 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V24 tmp21 [V24 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V25 tmp22 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V26 tmp23 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V27 tmp24 [V27 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V28 tmp25 [V28 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V29 tmp26 [V29 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V30 tmp27 [V30 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V31 tmp28 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V32 tmp29 [V32 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V33 tmp30 [V33,T00] ( 6, 8 ) ushort -> rsi "Inlining Arg"
-; V34 tmp31 [V34,T02] ( 5, 6 ) ushort -> rdx "Inlining Arg"
-;* V35 tmp32 [V35 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V36 tmp33 [V36,T07] ( 3, 2 ) int -> rax "Inline return value spill temp"
-;* V37 tmp34 [V37 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V38 tmp35 [V38 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V21 tmp18 [V21 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V22 tmp19 [V22 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V23 tmp20 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V24 tmp21 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V25 tmp22 [V25 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V26 tmp23 [V26 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V27 tmp24 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V28 tmp25 [V28 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V29 tmp26 [V29 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V30 tmp27 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V31 tmp28 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V32 tmp29 [V32 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V33 tmp30 [V33 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V34 tmp31 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V35 tmp32 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V36 tmp33 [V36 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V37 tmp34 [V37 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V38 tmp35 [V38,T06] ( 2, 2 ) int -> rax "Inline return value spill temp"
;* V39 tmp36 [V39 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
-;* V40 tmp37 [V40 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V40 tmp37 [V40,T09] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V41 tmp38 [V41 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V42 tmp39 [V42 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V42 tmp39 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V43 tmp40 [V43 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V44 tmp41 [V44 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V45 tmp42 [V45 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V46 tmp43 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V47 tmp44 [V47 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V48 tmp45 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V49 tmp46 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V50 tmp47 [V50 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V51 tmp48 [V51 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V52 tmp49 [V52 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V53 tmp50 [V53 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V44 tmp41 [V44 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V45 tmp42 [V45 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V46 tmp43 [V46 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V47 tmp44 [V47 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V48 tmp45 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V49 tmp46 [V49 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V50 tmp47 [V50 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V51 tmp48 [V51 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V52 tmp49 [V52 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V53 tmp50 [V53 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V54 tmp51 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V55 tmp52 [V55 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V56 tmp53 [V56 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V57 tmp54 [V57 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V58 tmp55 [V58 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V59 tmp56 [V59 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V60 tmp57 [V60 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V61 tmp58 [V61 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V62 tmp59 [V62 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V63 tmp60 [V63 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V64 tmp61 [V64 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
-; V65 tmp62 [V65,T05] ( 4, 2 ) byref -> rdi "field V05._reference (fldOffset=0x0)" P-INDEP
-; V66 tmp63 [V66,T06] ( 4, 2 ) int -> rcx "field V05._length (fldOffset=0x8)" P-INDEP
-; V67 tmp64 [V67,T09] ( 2, 1 ) byref -> rdi single-def "field V06._reference (fldOffset=0x0)" P-INDEP
-; V68 tmp65 [V68,T10] ( 2, 1 ) int -> rcx "field V06._length (fldOffset=0x8)" P-INDEP
-;* V69 tmp66 [V69 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V70 tmp67 [V70 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
-;* V71 tmp68 [V71 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-;* V72 tmp69 [V72 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
-;* V73 tmp70 [V73 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP
-;* V74 tmp71 [V74 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
-;* V75 tmp72 [V75 ] ( 0, 0 ) byref -> zero-ref single-def "field V31._reference (fldOffset=0x0)" P-INDEP
-;* V76 tmp73 [V76 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
-;* V77 tmp74 [V77 ] ( 0, 0 ) byref -> zero-ref "field V46._reference (fldOffset=0x0)" P-INDEP
-;* V78 tmp75 [V78 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP
-;* V79 tmp76 [V79 ] ( 0, 0 ) byref -> zero-ref "field V54._reference (fldOffset=0x0)" P-INDEP
-;* V80 tmp77 [V80 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
-;* V81 tmp78 [V81 ] ( 0, 0 ) byref -> zero-ref "field V62._reference (fldOffset=0x0)" P-INDEP
-;* V82 tmp79 [V82 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP
+;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V56 tmp53 [V56 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V57 tmp54 [V57 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V58 tmp55 [V58 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V59 tmp56 [V59 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
+;* V60 tmp57 [V60 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V61 tmp58 [V61 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V62 tmp59 [V62 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V63 tmp60 [V63 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V64 tmp61 [V64 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
+;* V65 tmp62 [V65 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
+; V66 tmp63 [V66,T03] ( 3, 2 ) byref -> rdi "field V05._reference (fldOffset=0x0)" P-INDEP
+; V67 tmp64 [V67,T04] ( 3, 2 ) int -> rcx "field V05._length (fldOffset=0x8)" P-INDEP
+; V68 tmp65 [V68,T07] ( 2, 1 ) byref -> rdi single-def "field V06._reference (fldOffset=0x0)" P-INDEP
+; V69 tmp66 [V69,T08] ( 2, 1 ) int -> rcx "field V06._length (fldOffset=0x8)" P-INDEP
+;* V70 tmp67 [V70 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V71 tmp68 [V71 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
+;* V72 tmp69 [V72 ] ( 0, 0 ) byref -> zero-ref single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V73 tmp70 [V73 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
+;* V74 tmp71 [V74 ] ( 0, 0 ) byref -> zero-ref "field V27._reference (fldOffset=0x0)" P-INDEP
+;* V75 tmp72 [V75 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
+;* V76 tmp73 [V76 ] ( 0, 0 ) byref -> zero-ref single-def "field V35._reference (fldOffset=0x0)" P-INDEP
+;* V77 tmp74 [V77 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
+;* V78 tmp75 [V78 ] ( 0, 0 ) byref -> zero-ref "field V42._reference (fldOffset=0x0)" P-INDEP
+;* V79 tmp76 [V79 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP
+;* V80 tmp77 [V80 ] ( 0, 0 ) byref -> zero-ref "field V48._reference (fldOffset=0x0)" P-INDEP
+;* V81 tmp78 [V81 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
+;* V82 tmp79 [V82 ] ( 0, 0 ) byref -> zero-ref "field V54._reference (fldOffset=0x0)" P-INDEP
+;* V83 tmp80 [V83 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 16
+; Lcl frame size = 0
G_M51221_IG01:
push rbp
- sub rsp, 16
- lea rbp, [rsp+0x10]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M51221_IG02:
test rdi, rdi
jne SHORT G_M51221_IG04
;; size=5 bbWeight=1 PerfScore 1.25
G_M51221_IG03:
or esi, edx
- jne SHORT G_M51221_IG10
+ jne SHORT G_M51221_IG07
xor rdi, rdi
xor ecx, ecx
jmp SHORT G_M51221_IG05
;; size=10 bbWeight=0.50 PerfScore 1.88
G_M51221_IG04:
mov ecx, esi
mov eax, edx
add rcx, rax
mov eax, dword ptr [rdi+0x08]
cmp rcx, rax
- ja SHORT G_M51221_IG10
+ ja SHORT G_M51221_IG07
mov esi, esi
lea rdi, bword ptr [rdi+2*rsi+0x0C]
mov ecx, edx
;; size=24 bbWeight=0.50 PerfScore 2.75
G_M51221_IG05:
- mov dword ptr [rbp-0x04], 48
- mov dword ptr [rbp-0x08], 57
- movzx rsi, word ptr [rbp-0x04]
- movzx rdx, word ptr [rbp-0x08]
- lea eax, [rsi-0x01]
- cmp eax, 254
- jae SHORT G_M51221_IG07
- ;; size=32 bbWeight=1 PerfScore 5.75
-G_M51221_IG06:
- lea eax, [rdx-0x01]
- cmp eax, 254
- jae SHORT G_M51221_IG07
- cmp edx, esi
- jl SHORT G_M51221_IG07
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
+ mov edx, 9
+ mov esi, 48
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- jmp SHORT G_M51221_IG08
- ;; size=38 bbWeight=0.50 PerfScore 4.50
-G_M51221_IG07:
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M51221_IG08:
shr eax, 31
- ;; size=3 bbWeight=1 PerfScore 0.50
-G_M51221_IG09:
- add rsp, 16
+ ;; size=25 bbWeight=1 PerfScore 4.25
+G_M51221_IG06:
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
-G_M51221_IG10:
+ ;; size=2 bbWeight=1 PerfScore 1.50
+G_M51221_IG07:
mov edi, 33
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 158, prolog size 10, PerfScore 21.75, instruction count 47, allocated bytes for code 158 (MethodHash=917f37ea) for method System.Xml.XmlCharType:IsOnlyDigits(System.String,int,int):ubyte (FullOpts)
+; Total bytes of code 88, prolog size 4, PerfScore 12.88, instruction count 29, allocated bytes for code 88 (MethodHash=917f37ea) for method System.Xml.XmlCharType:IsOnlyDigits(System.String,int,int):ubyte (FullOpts)
-69 (-2.71 % of base) - System.Text.RegularExpressions.Generated.F17570F3C63F49E0EDC8B9EB3FA2CFADF55F73E11043596DBD6C1553B39463343__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this
; Assembly listing for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F17570F3C63F49E0EDC8B9EB3FA2CFADF55F73E11043596DBD6C1553B39463343__EnsureArrayIndexRegex_5+RunnerFactory+Runner: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; 95 single block inlinees; 50 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 67,202.50) ref -> rbx this class-hnd single-def <System.Text.RegularExpressions.Generated.<RegexGenerator_g>F17570F3C63F49E0EDC8B9EB3FA2CFADF55F73E11043596DBD6C1553B39463343__EnsureArrayIndexRegex_5+RunnerFactory+Runner>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
; V02 loc0 [V02,T01] ( 60,162 ) int -> [rbp-0x2C]
; V03 loc1 [V03,T76] ( 10, 7 ) int -> r13
-;* V04 loc2 [V04,T139] ( 0, 0 ) int -> zero-ref
+;* V04 loc2 [V04,T136] ( 0, 0 ) int -> zero-ref
; V05 loc3 [V05,T54] ( 4, 14 ) int -> [rbp-0x30]
; V06 loc4 [V06,T55] ( 4, 14 ) int -> [rbp-0x34]
; V07 loc5 [V07,T56] ( 4, 14 ) int -> [rbp-0x38]
; V08 loc6 [V08,T57] ( 4, 14 ) int -> [rbp-0x3C]
-; V09 loc7 [V09,T38] ( 2, 20 ) int -> [rbp-0x40] spill-single-def
+; V09 loc7 [V09,T39] ( 2, 20 ) int -> [rbp-0x40] spill-single-def
; V10 loc8 [V10,T58] ( 9, 12 ) int -> r12
; V11 loc9 [V11,T75] ( 5, 8.50) int -> [rbp-0x44]
;* V12 loc10 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ushort]>
-; V13 loc11 [V13,T114] ( 9, 4.50) int -> rax
-; V14 loc12 [V14,T101] ( 9, 7 ) int -> rax
-; V15 loc13 [V15,T17] ( 8, 30 ) int -> rax
-; V16 loc14 [V16,T18] ( 8, 30 ) int -> rax
-; V17 loc15 [V17,T19] ( 8, 30 ) int -> registers
-; V18 loc16 [V18,T20] ( 8, 30 ) int -> rax
-; V19 loc17 [V19,T21] ( 8, 30 ) int -> rax
+; V13 loc11 [V13,T103] ( 9, 4.50) int -> rax
+; V14 loc12 [V14,T90] ( 9, 7 ) int -> rax
+; V15 loc13 [V15,T14] ( 8, 30 ) int -> rax
+; V16 loc14 [V16,T15] ( 8, 30 ) int -> rax
+; V17 loc15 [V17,T16] ( 8, 30 ) int -> registers
+; V18 loc16 [V18,T17] ( 8, 30 ) int -> rax
+; V19 loc17 [V19,T18] ( 8, 30 ) int -> rax
;# V20 OutArgs [V20 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V21 tmp1 [V21 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
-;* V22 tmp2 [V22,T140] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V22 tmp2 [V22,T137] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V23 tmp3 [V23 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
; V24 tmp4 [V24,T45] ( 2, 16 ) int -> rdi "spilling unroll qmark"
;* V25 tmp5 [V25 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V26 tmp6 [V26 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V27 tmp7 [V27,T71] ( 3, 12 ) int -> rax "dup spill"
;* V28 tmp8 [V28 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
-;* V29 tmp9 [V29,T89] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V29 tmp9 [V29,T88] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V30 tmp10 [V30 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V31 tmp11 [V31 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
-;* V32 tmp12 [V32,T90] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V32 tmp12 [V32,T89] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V33 tmp13 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V34 tmp14 [V34,T113] ( 3, 5 ) byref -> r12 single-def "Inlining Arg"
-; V35 tmp15 [V35,T77] ( 5, 8 ) int -> [rbp-0x48] spill-single-def "Inlining Arg"
+; V34 tmp14 [V34,T95] ( 2, 4 ) byref -> r12 single-def "Inlining Arg"
+; V35 tmp15 [V35,T96] ( 2, 4 ) int -> rax "Inlining Arg"
;* V36 tmp16 [V36 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V37 tmp17 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V38 tmp18 [V38,T134] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V39 tmp19 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V40 tmp20 [V40 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-;* V41 tmp21 [V41,T135] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-;* V42 tmp22 [V42 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V43 tmp23 [V43,T131] ( 2, 2 ) int -> rax "Inline return value spill temp"
-;* V44 tmp24 [V44 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V45 tmp25 [V45 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V46 tmp26 [V46 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V47 tmp27 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V48 tmp28 [V48,T106] ( 3, 6 ) int -> rdi "Inline stloc first use temp"
-; V49 tmp29 [V49,T78] ( 4, 8 ) int -> rcx "Inline stloc first use temp"
-; V50 tmp30 [V50,T59] ( 3, 12 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-;* V51 tmp31 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V52 tmp32 [V52,T60] ( 3, 12 ) byref -> rdi "dup spill"
-;* V53 tmp33 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V54 tmp34 [V54,T129] ( 3, 2 ) byref -> r12 single-def "Inlining Arg"
-; V55 tmp35 [V55,T132] ( 2, 2 ) int -> [rbp-0x4C] spill-single-def "Inlining Arg"
-; V56 tmp36 [V56,T115] ( 4, 4 ) int -> [rbp-0x50] "Inlining Arg"
-; V57 tmp37 [V57,T116] ( 4, 4 ) int -> [rbp-0x54] "Inlining Arg"
-;* V58 tmp38 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V59 tmp39 [V59,T127] ( 4, 2 ) int -> r8 "Inline stloc first use temp"
-; V60 tmp40 [V60,T124] ( 3, 3 ) ref -> rdi class-hnd single-def "impAppendStmt" <int[]>
-; V61 tmp41 [V61,T107] ( 3, 6 ) int -> rdi "Inline stloc first use temp"
-; V62 tmp42 [V62,T79] ( 4, 8 ) int -> rdx "Inline stloc first use temp"
-; V63 tmp43 [V63,T61] ( 3, 12 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-;* V64 tmp44 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V65 tmp45 [V65,T62] ( 3, 12 ) byref -> rdi "dup spill"
-;* V66 tmp46 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V67 tmp47 [V67,T125] ( 3, 3 ) byref -> [rbp-0xA0] spill-single-def "Inlining Arg"
-; V68 tmp48 [V68,T111] ( 5, 5 ) int -> [rbp-0x58] spill-single-def "Inlining Arg"
-;* V69 tmp49 [V69 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V38 tmp18 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V39 tmp19 [V39 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V40 tmp20 [V40 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V41 tmp21 [V41,T129] ( 2, 2 ) int -> rax "Inline return value spill temp"
+;* V42 tmp22 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+; V43 tmp23 [V43,T97] ( 3, 6 ) int -> rdi "Inline stloc first use temp"
+; V44 tmp24 [V44,T77] ( 4, 8 ) int -> rcx "Inline stloc first use temp"
+; V45 tmp25 [V45,T59] ( 3, 12 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+;* V46 tmp26 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
+; V47 tmp27 [V47,T60] ( 3, 12 ) byref -> rdi "dup spill"
+;* V48 tmp28 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+; V49 tmp29 [V49,T127] ( 3, 2 ) byref -> r12 single-def "Inlining Arg"
+; V50 tmp30 [V50,T130] ( 2, 2 ) int -> [rbp-0x48] spill-single-def "Inlining Arg"
+; V51 tmp31 [V51,T104] ( 4, 4 ) int -> [rbp-0x4C] "Inlining Arg"
+; V52 tmp32 [V52,T105] ( 4, 4 ) int -> [rbp-0x50] "Inlining Arg"
+;* V53 tmp33 [V53 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V54 tmp34 [V54,T125] ( 4, 2 ) int -> r8 "Inline stloc first use temp"
+; V55 tmp35 [V55,T121] ( 3, 3 ) ref -> rdi class-hnd single-def "impAppendStmt" <int[]>
+; V56 tmp36 [V56,T98] ( 3, 6 ) int -> rdx "Inline stloc first use temp"
+; V57 tmp37 [V57,T78] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
+; V58 tmp38 [V58,T61] ( 3, 12 ) ref -> rdx class-hnd "impAppendStmt" <int[]>
+;* V59 tmp39 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
+; V60 tmp40 [V60,T62] ( 3, 12 ) byref -> rdx "dup spill"
+;* V61 tmp41 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+; V62 tmp42 [V62,T122] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
+; V63 tmp43 [V63,T124] ( 2, 2 ) int -> rcx "Inlining Arg"
+;* V64 tmp44 [V64 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V65 tmp45 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V66 tmp46 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V67 tmp47 [V67 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V68 tmp48 [V68 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V69 tmp49 [V69,T133] ( 2, 1 ) int -> rax "Inline return value spill temp"
;* V70 tmp50 [V70 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V71 tmp51 [V71,T141] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V72 tmp52 [V72 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V73 tmp53 [V73 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-;* V74 tmp54 [V74,T142] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-;* V75 tmp55 [V75 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V76 tmp56 [V76,T137] ( 2, 1 ) int -> rax "Inline return value spill temp"
-;* V77 tmp57 [V77 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V78 tmp58 [V78 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V79 tmp59 [V79 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V80 tmp60 [V80 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V81 tmp61 [V81,T108] ( 3, 6 ) int -> rdi "Inline stloc first use temp"
-; V82 tmp62 [V82,T80] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
-; V83 tmp63 [V83,T63] ( 3, 12 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-;* V84 tmp64 [V84 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V85 tmp65 [V85,T64] ( 3, 12 ) byref -> rdi "dup spill"
-;* V86 tmp66 [V86 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V87 tmp67 [V87,T130] ( 2, 2 ) byref -> r9 single-def "Inlining Arg"
-; V88 tmp68 [V88,T133] ( 2, 2 ) int -> r8 "Inlining Arg"
-; V89 tmp69 [V89,T36] ( 3, 24 ) int -> rdx "Inline stloc first use temp"
-; V90 tmp70 [V90,T16] ( 4, 32 ) int -> rcx "Inline stloc first use temp"
-; V91 tmp71 [V91,T03] ( 3, 48 ) ref -> rdx class-hnd "impAppendStmt" <int[]>
-;* V92 tmp72 [V92 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V93 tmp73 [V93,T04] ( 3, 48 ) byref -> rdx "dup spill"
-; V94 tmp74 [V94,T109] ( 3, 6 ) int -> rsi "Inline return value spill temp"
-;* V95 tmp75 [V95 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V96 tmp76 [V96,T72] ( 3, 12 ) int -> rsi "Inlining Arg"
-; V97 tmp77 [V97,T73] ( 3, 12 ) int -> rsi "Inlining Arg"
-;* V98 tmp78 [V98 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V99 tmp79 [V99 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V100 tmp80 [V100 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V101 tmp81 [V101 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V102 tmp82 [V102 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V103 tmp83 [V103 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V104 tmp84 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V105 tmp85 [V105 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V106 tmp86 [V106 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-;* V107 tmp87 [V107 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V108 tmp88 [V108 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-;* V109 tmp89 [V109 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V110 tmp90 [V110 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V111 tmp91 [V111 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V112 tmp92 [V112 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V113 tmp93 [V113 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V114 tmp94 [V114,T110] ( 3, 6 ) int -> rcx "Inline stloc first use temp"
-; V115 tmp95 [V115,T81] ( 4, 8 ) int -> rdx "Inline stloc first use temp"
-; V116 tmp96 [V116,T65] ( 3, 12 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
-;* V117 tmp97 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V118 tmp98 [V118,T66] ( 3, 12 ) byref -> rcx "dup spill"
-;* V119 tmp99 [V119 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V120 tmp100 [V120,T82] ( 2, 8 ) byref -> r9 "Inlining Arg"
-; V121 tmp101 [V121,T83] ( 2, 8 ) int -> r8 "Inlining Arg"
+; V71 tmp51 [V71,T99] ( 3, 6 ) int -> rdi "Inline stloc first use temp"
+; V72 tmp52 [V72,T79] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
+; V73 tmp53 [V73,T63] ( 3, 12 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+;* V74 tmp54 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
+; V75 tmp55 [V75,T64] ( 3, 12 ) byref -> rdi "dup spill"
+;* V76 tmp56 [V76 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+; V77 tmp57 [V77,T128] ( 2, 2 ) byref -> r9 single-def "Inlining Arg"
+; V78 tmp58 [V78,T131] ( 2, 2 ) int -> r8 "Inlining Arg"
+; V79 tmp59 [V79,T33] ( 3, 24 ) int -> rdx "Inline stloc first use temp"
+; V80 tmp60 [V80,T13] ( 4, 32 ) int -> rcx "Inline stloc first use temp"
+; V81 tmp61 [V81,T05] ( 3, 48 ) ref -> rdx class-hnd "impAppendStmt" <int[]>
+;* V82 tmp62 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
+; V83 tmp63 [V83,T06] ( 3, 48 ) byref -> rdx "dup spill"
+; V84 tmp64 [V84,T100] ( 3, 6 ) int -> rsi "Inline return value spill temp"
+;* V85 tmp65 [V85 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V86 tmp66 [V86,T72] ( 3, 12 ) int -> rsi "Inlining Arg"
+; V87 tmp67 [V87,T73] ( 3, 12 ) int -> rsi "Inlining Arg"
+;* V88 tmp68 [V88 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V89 tmp69 [V89 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V90 tmp70 [V90 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V91 tmp71 [V91 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V92 tmp72 [V92 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V93 tmp73 [V93 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V94 tmp74 [V94 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V95 tmp75 [V95 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V96 tmp76 [V96 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V97 tmp77 [V97 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V98 tmp78 [V98 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V99 tmp79 [V99 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V100 tmp80 [V100 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V101 tmp81 [V101 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V102 tmp82 [V102 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V103 tmp83 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+; V104 tmp84 [V104,T101] ( 3, 6 ) int -> rcx "Inline stloc first use temp"
+; V105 tmp85 [V105,T80] ( 4, 8 ) int -> rdx "Inline stloc first use temp"
+; V106 tmp86 [V106,T65] ( 3, 12 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
+;* V107 tmp87 [V107 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
+; V108 tmp88 [V108,T66] ( 3, 12 ) byref -> rcx "dup spill"
+;* V109 tmp89 [V109 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+; V110 tmp90 [V110,T81] ( 2, 8 ) byref -> r9 "Inlining Arg"
+; V111 tmp91 [V111,T82] ( 2, 8 ) int -> r8 "Inlining Arg"
+;* V112 tmp92 [V112 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+; V113 tmp93 [V113,T24] ( 2, 16 ) byref -> r9 "Inlining Arg"
+; V114 tmp94 [V114,T34] ( 2, 16 ) int -> r8 "Inlining Arg"
+;* V115 tmp95 [V115 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V116 tmp96 [V116 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V117 tmp97 [V117 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V118 tmp98 [V118 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V119 tmp99 [V119 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V120 tmp100 [V120,T83] ( 2, 8 ) int -> rax "Inline return value spill temp"
+;* V121 tmp101 [V121 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V122 tmp102 [V122 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V123 tmp103 [V123,T28] ( 3, 24 ) byref -> [rbp-0xA8] "Inlining Arg"
-; V124 tmp104 [V124,T08] ( 5, 36 ) int -> [rbp-0x5C] "Inlining Arg"
-;* V125 tmp105 [V125 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V126 tmp106 [V126 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V127 tmp107 [V127,T91] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V128 tmp108 [V128 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V129 tmp109 [V129 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V130 tmp110 [V130,T92] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-;* V131 tmp111 [V131 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V132 tmp112 [V132,T84] ( 2, 8 ) int -> rax "Inline return value spill temp"
-;* V133 tmp113 [V133 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V134 tmp114 [V134 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V135 tmp115 [V135 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V136 tmp116 [V136 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V137 tmp117 [V137 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V138 tmp118 [V138,T74] ( 2, 12 ) byref -> [rbp-0xB0] "Inlining Arg"
-; V139 tmp119 [V139,T49] ( 2, 16 ) int -> [rbp-0x60] spill-single-def "Inlining Arg"
-; V140 tmp120 [V140,T22] ( 4, 28 ) int -> [rbp-0x64] "Inlining Arg"
-; V141 tmp121 [V141,T09] ( 5, 36 ) int -> [rbp-0x68] "Inlining Arg"
-;* V142 tmp122 [V142 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V143 tmp123 [V143,T40] ( 4, 16 ) int -> rdx "Inline stloc first use temp"
-; V144 tmp124 [V144,T29] ( 3, 24 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-;* V145 tmp125 [V145 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V146 tmp126 [V146,T30] ( 3, 24 ) byref -> [rbp-0xB8] "Inlining Arg"
-; V147 tmp127 [V147,T10] ( 5, 36 ) int -> [rbp-0x6C] "Inlining Arg"
-;* V148 tmp128 [V148 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V149 tmp129 [V149 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V150 tmp130 [V150,T93] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V151 tmp131 [V151 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V152 tmp132 [V152 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V153 tmp133 [V153,T94] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-;* V154 tmp134 [V154 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V155 tmp135 [V155,T85] ( 2, 8 ) int -> rax "Inline return value spill temp"
-;* V156 tmp136 [V156 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V157 tmp137 [V157 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V158 tmp138 [V158 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V159 tmp139 [V159 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V160 tmp140 [V160 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V161 tmp141 [V161,T15] ( 4, 32 ) byref -> [rbp-0xC0] "Inlining Arg"
-; V162 tmp142 [V162,T06] ( 6, 44 ) int -> [rbp-0x70] "Inlining Arg"
-; V163 tmp143 [V163,T23] ( 4, 28 ) int -> [rbp-0x74] "Inlining Arg"
-; V164 tmp144 [V164,T11] ( 5, 36 ) int -> [rbp-0x78] "Inlining Arg"
-;* V165 tmp145 [V165 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V166 tmp146 [V166,T41] ( 4, 16 ) int -> rdx "Inline stloc first use temp"
-; V167 tmp147 [V167,T31] ( 3, 24 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-;* V168 tmp148 [V168 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V169 tmp149 [V169,T46] ( 2, 16 ) byref -> rdi "Inlining Arg"
-; V170 tmp150 [V170,T50] ( 2, 16 ) int -> rdx "Inlining Arg"
-;* V171 tmp151 [V171 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V172 tmp152 [V172 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V173 tmp153 [V173,T95] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V174 tmp154 [V174 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V175 tmp155 [V175 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V176 tmp156 [V176,T96] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-;* V177 tmp157 [V177 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V178 tmp158 [V178,T86] ( 2, 8 ) int -> rax "Inline return value spill temp"
-;* V179 tmp159 [V179 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V180 tmp160 [V180 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V181 tmp161 [V181 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V182 tmp162 [V182 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V183 tmp163 [V183 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V184 tmp164 [V184,T47] ( 2, 16 ) byref -> rdx "Inlining Arg"
-; V185 tmp165 [V185,T51] ( 2, 16 ) int -> rdi "Inlining Arg"
-;* V186 tmp166 [V186 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V187 tmp167 [V187,T32] ( 3, 24 ) byref -> [rbp-0xC8] "Inlining Arg"
-; V188 tmp168 [V188,T12] ( 5, 36 ) int -> [rbp-0x7C] "Inlining Arg"
-;* V189 tmp169 [V189 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V190 tmp170 [V190 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V191 tmp171 [V191,T97] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V192 tmp172 [V192 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V193 tmp173 [V193 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V194 tmp174 [V194,T98] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-;* V195 tmp175 [V195 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V196 tmp176 [V196,T87] ( 2, 8 ) int -> rax "Inline return value spill temp"
-;* V197 tmp177 [V197 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V198 tmp178 [V198 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V199 tmp179 [V199 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V200 tmp180 [V200 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V201 tmp181 [V201 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V202 tmp182 [V202,T48] ( 2, 16 ) byref -> [rbp-0xD0] "Inlining Arg"
-; V203 tmp183 [V203,T52] ( 2, 16 ) int -> [rbp-0x80] spill-single-def "Inlining Arg"
-; V204 tmp184 [V204,T24] ( 4, 28 ) int -> [rbp-0x84] "Inlining Arg"
-; V205 tmp185 [V205,T13] ( 5, 36 ) int -> [rbp-0x88] "Inlining Arg"
-;* V206 tmp186 [V206 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V207 tmp187 [V207,T42] ( 4, 16 ) int -> rdx "Inline stloc first use temp"
-; V208 tmp188 [V208,T33] ( 3, 24 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-;* V209 tmp189 [V209 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V210 tmp190 [V210,T34] ( 2, 16 ) byref -> r9 "Inlining Arg"
-; V211 tmp191 [V211,T37] ( 2, 16 ) int -> r8 "Inlining Arg"
-;* V212 tmp192 [V212 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V213 tmp193 [V213 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V214 tmp194 [V214,T99] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V215 tmp195 [V215 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V216 tmp196 [V216 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V217 tmp197 [V217,T100] ( 0, 0 ) short -> zero-ref "Inlining Arg"
-;* V218 tmp198 [V218 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V219 tmp199 [V219,T88] ( 2, 8 ) int -> rax "Inline return value spill temp"
-;* V220 tmp200 [V220 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V221 tmp201 [V221 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V222 tmp202 [V222 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V223 tmp203 [V223 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V224 tmp204 [V224 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V225 tmp205 [V225,T44] ( 3, 16 ) byref -> [rbp-0xD8] "Inlining Arg"
-; V226 tmp206 [V226,T53] ( 2, 16 ) int -> [rbp-0x8C] spill-single-def "Inlining Arg"
-; V227 tmp207 [V227,T25] ( 4, 28 ) int -> [rbp-0x90] "Inlining Arg"
-; V228 tmp208 [V228,T14] ( 5, 36 ) int -> [rbp-0x94] "Inlining Arg"
-;* V229 tmp209 [V229 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V230 tmp210 [V230,T43] ( 4, 16 ) int -> rdx "Inline stloc first use temp"
-; V231 tmp211 [V231,T35] ( 3, 24 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-; V232 tmp212 [V232,T117] ( 4, 4 ) int -> r14 "Inlining Arg"
-; V233 tmp213 [V233,T112] ( 5, 5 ) int -> r15 "Inlining Arg"
-;* V234 tmp214 [V234 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V235 tmp215 [V235,T128] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
-; V236 tmp216 [V236,T126] ( 3, 3 ) ref -> rcx class-hnd single-def "impAppendStmt" <int[]>
-; V237 tmp217 [V237,T26] ( 9, 22.50) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V238 tmp218 [V238,T02] ( 18, 46 ) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
-; V239 tmp219 [V239,T39] ( 7, 22.50) byref -> [rbp-0xE0] "field V12._reference (fldOffset=0x0)" P-INDEP
-; V240 tmp220 [V240,T27] ( 8, 24.50) int -> [rbp-0x98] "field V12._length (fldOffset=0x8)" P-INDEP
-;* V241 tmp221 [V241 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
-;* V242 tmp222 [V242 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
-;* V243 tmp223 [V243 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP
-;* V244 tmp224 [V244 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
-;* V245 tmp225 [V245 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
-;* V246 tmp226 [V246 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
-;* V247 tmp227 [V247 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
-;* V248 tmp228 [V248 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
-;* V249 tmp229 [V249 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP
-;* V250 tmp230 [V250 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
-;* V251 tmp231 [V251 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
-;* V252 tmp232 [V252 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
-;* V253 tmp233 [V253 ] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP
-;* V254 tmp234 [V254 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
-;* V255 tmp235 [V255 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
-;* V256 tmp236 [V256 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
-;* V257 tmp237 [V257 ] ( 0, 0 ) byref -> zero-ref single-def "field V37._reference (fldOffset=0x0)" P-INDEP
-;* V258 tmp238 [V258 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
-;* V259 tmp239 [V259 ] ( 0, 0 ) byref -> zero-ref single-def "field V39._reference (fldOffset=0x0)" P-INDEP
-;* V260 tmp240 [V260 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
-;* V261 tmp241 [V261 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
-;* V262 tmp242 [V262 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
-;* V263 tmp243 [V263 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V264 tmp244 [V264 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-;* V265 tmp245 [V265 ] ( 0, 0 ) byref -> zero-ref single-def "field V66._reference (fldOffset=0x0)" P-INDEP
-;* V266 tmp246 [V266 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
-;* V267 tmp247 [V267 ] ( 0, 0 ) byref -> zero-ref single-def "field V70._reference (fldOffset=0x0)" P-INDEP
-;* V268 tmp248 [V268 ] ( 0, 0 ) int -> zero-ref "field V70._length (fldOffset=0x8)" P-INDEP
-;* V269 tmp249 [V269 ] ( 0, 0 ) byref -> zero-ref single-def "field V72._reference (fldOffset=0x0)" P-INDEP
-;* V270 tmp250 [V270 ] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-INDEP
-;* V271 tmp251 [V271 ] ( 0, 0 ) byref -> zero-ref "field V80._reference (fldOffset=0x0)" P-INDEP
-;* V272 tmp252 [V272 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-INDEP
-; V273 tmp253 [V273,T136] ( 2, 1 ) byref -> r9 single-def "field V86._reference (fldOffset=0x0)" P-INDEP
-; V274 tmp254 [V274,T138] ( 2, 1 ) int -> r8 "field V86._length (fldOffset=0x8)" P-INDEP
-; V275 tmp255 [V275,T118] ( 2, 4 ) byref -> rdi "field V98._reference (fldOffset=0x0)" P-INDEP
-;* V276 tmp256 [V276 ] ( 0, 0 ) int -> zero-ref "field V98._length (fldOffset=0x8)" P-INDEP
-;* V277 tmp257 [V277 ] ( 0, 0 ) byref -> zero-ref "field V100._reference (fldOffset=0x0)" P-INDEP
-;* V278 tmp258 [V278 ] ( 0, 0 ) int -> zero-ref "field V100._length (fldOffset=0x8)" P-INDEP
-; V279 tmp259 [V279,T119] ( 2, 4 ) byref -> rdx "field V101._reference (fldOffset=0x0)" P-INDEP
-;* V280 tmp260 [V280 ] ( 0, 0 ) int -> zero-ref "field V101._length (fldOffset=0x8)" P-INDEP
-;* V281 tmp261 [V281 ] ( 0, 0 ) byref -> zero-ref "field V104._reference (fldOffset=0x0)" P-INDEP
-;* V282 tmp262 [V282 ] ( 0, 0 ) int -> zero-ref "field V104._length (fldOffset=0x8)" P-INDEP
-;* V283 tmp263 [V283 ] ( 0, 0 ) byref -> zero-ref "field V105._reference (fldOffset=0x0)" P-INDEP
-;* V284 tmp264 [V284 ] ( 0, 0 ) int -> zero-ref "field V105._length (fldOffset=0x8)" P-INDEP
-;* V285 tmp265 [V285 ] ( 0, 0 ) byref -> zero-ref "field V110._reference (fldOffset=0x0)" P-INDEP
-;* V286 tmp266 [V286 ] ( 0, 0 ) int -> zero-ref "field V110._length (fldOffset=0x8)" P-INDEP
-;* V287 tmp267 [V287 ] ( 0, 0 ) byref -> zero-ref "field V111._reference (fldOffset=0x0)" P-INDEP
-;* V288 tmp268 [V288 ] ( 0, 0 ) int -> zero-ref "field V111._length (fldOffset=0x8)" P-INDEP
-;* V289 tmp269 [V289 ] ( 0, 0 ) byref -> zero-ref "field V112._reference (fldOffset=0x0)" P-INDEP
-;* V290 tmp270 [V290 ] ( 0, 0 ) int -> zero-ref "field V112._length (fldOffset=0x8)" P-INDEP
-;* V291 tmp271 [V291 ] ( 0, 0 ) byref -> zero-ref "field V113._reference (fldOffset=0x0)" P-INDEP
-;* V292 tmp272 [V292 ] ( 0, 0 ) int -> zero-ref "field V113._length (fldOffset=0x8)" P-INDEP
-; V293 tmp273 [V293,T120] ( 2, 4 ) byref -> r9 "field V119._reference (fldOffset=0x0)" P-INDEP
-; V294 tmp274 [V294,T121] ( 2, 4 ) int -> r8 "field V119._length (fldOffset=0x8)" P-INDEP
-;* V295 tmp275 [V295 ] ( 0, 0 ) byref -> zero-ref "field V122._reference (fldOffset=0x0)" P-INDEP
-;* V296 tmp276 [V296 ] ( 0, 0 ) int -> zero-ref "field V122._length (fldOffset=0x8)" P-INDEP
-;* V297 tmp277 [V297 ] ( 0, 0 ) byref -> zero-ref "field V126._reference (fldOffset=0x0)" P-INDEP
-;* V298 tmp278 [V298 ] ( 0, 0 ) int -> zero-ref "field V126._length (fldOffset=0x8)" P-INDEP
-;* V299 tmp279 [V299 ] ( 0, 0 ) byref -> zero-ref "field V128._reference (fldOffset=0x0)" P-INDEP
-;* V300 tmp280 [V300 ] ( 0, 0 ) int -> zero-ref "field V128._length (fldOffset=0x8)" P-INDEP
-;* V301 tmp281 [V301 ] ( 0, 0 ) byref -> zero-ref "field V136._reference (fldOffset=0x0)" P-INDEP
-;* V302 tmp282 [V302 ] ( 0, 0 ) int -> zero-ref "field V136._length (fldOffset=0x8)" P-INDEP
-;* V303 tmp283 [V303 ] ( 0, 0 ) byref -> zero-ref "field V137._reference (fldOffset=0x0)" P-INDEP
-;* V304 tmp284 [V304 ] ( 0, 0 ) int -> zero-ref "field V137._length (fldOffset=0x8)" P-INDEP
-;* V305 tmp285 [V305 ] ( 0, 0 ) byref -> zero-ref "field V145._reference (fldOffset=0x0)" P-INDEP
-;* V306 tmp286 [V306 ] ( 0, 0 ) int -> zero-ref "field V145._length (fldOffset=0x8)" P-INDEP
-;* V307 tmp287 [V307 ] ( 0, 0 ) byref -> zero-ref "field V149._reference (fldOffset=0x0)" P-INDEP
-;* V308 tmp288 [V308 ] ( 0, 0 ) int -> zero-ref "field V149._length (fldOffset=0x8)" P-INDEP
-;* V309 tmp289 [V309 ] ( 0, 0 ) byref -> zero-ref "field V151._reference (fldOffset=0x0)" P-INDEP
-;* V310 tmp290 [V310 ] ( 0, 0 ) int -> zero-ref "field V151._length (fldOffset=0x8)" P-INDEP
-;* V311 tmp291 [V311 ] ( 0, 0 ) byref -> zero-ref "field V159._reference (fldOffset=0x0)" P-INDEP
-;* V312 tmp292 [V312 ] ( 0, 0 ) int -> zero-ref "field V159._length (fldOffset=0x8)" P-INDEP
-;* V313 tmp293 [V313 ] ( 0, 0 ) byref -> zero-ref "field V160._reference (fldOffset=0x0)" P-INDEP
-;* V314 tmp294 [V314 ] ( 0, 0 ) int -> zero-ref "field V160._length (fldOffset=0x8)" P-INDEP
-;* V315 tmp295 [V315 ] ( 0, 0 ) byref -> zero-ref "field V168._reference (fldOffset=0x0)" P-INDEP
-;* V316 tmp296 [V316 ] ( 0, 0 ) int -> zero-ref "field V168._length (fldOffset=0x8)" P-INDEP
-;* V317 tmp297 [V317 ] ( 0, 0 ) byref -> zero-ref "field V172._reference (fldOffset=0x0)" P-INDEP
-;* V318 tmp298 [V318 ] ( 0, 0 ) int -> zero-ref "field V172._length (fldOffset=0x8)" P-INDEP
-;* V319 tmp299 [V319 ] ( 0, 0 ) byref -> zero-ref "field V174._reference (fldOffset=0x0)" P-INDEP
-;* V320 tmp300 [V320 ] ( 0, 0 ) int -> zero-ref "field V174._length (fldOffset=0x8)" P-INDEP
-;* V321 tmp301 [V321 ] ( 0, 0 ) byref -> zero-ref "field V182._reference (fldOffset=0x0)" P-INDEP
-;* V322 tmp302 [V322 ] ( 0, 0 ) int -> zero-ref "field V182._length (fldOffset=0x8)" P-INDEP
-;* V323 tmp303 [V323 ] ( 0, 0 ) byref -> zero-ref "field V183._reference (fldOffset=0x0)" P-INDEP
-;* V324 tmp304 [V324 ] ( 0, 0 ) int -> zero-ref "field V183._length (fldOffset=0x8)" P-INDEP
-;* V325 tmp305 [V325 ] ( 0, 0 ) byref -> zero-ref "field V186._reference (fldOffset=0x0)" P-INDEP
-;* V326 tmp306 [V326 ] ( 0, 0 ) int -> zero-ref "field V186._length (fldOffset=0x8)" P-INDEP
-;* V327 tmp307 [V327 ] ( 0, 0 ) byref -> zero-ref "field V190._reference (fldOffset=0x0)" P-INDEP
-;* V328 tmp308 [V328 ] ( 0, 0 ) int -> zero-ref "field V190._length (fldOffset=0x8)" P-INDEP
-;* V329 tmp309 [V329 ] ( 0, 0 ) byref -> zero-ref "field V192._reference (fldOffset=0x0)" P-INDEP
-;* V330 tmp310 [V330 ] ( 0, 0 ) int -> zero-ref "field V192._length (fldOffset=0x8)" P-INDEP
-;* V331 tmp311 [V331 ] ( 0, 0 ) byref -> zero-ref "field V200._reference (fldOffset=0x0)" P-INDEP
-;* V332 tmp312 [V332 ] ( 0, 0 ) int -> zero-ref "field V200._length (fldOffset=0x8)" P-INDEP
-;* V333 tmp313 [V333 ] ( 0, 0 ) byref -> zero-ref "field V201._reference (fldOffset=0x0)" P-INDEP
-;* V334 tmp314 [V334 ] ( 0, 0 ) int -> zero-ref "field V201._length (fldOffset=0x8)" P-INDEP
-;* V335 tmp315 [V335,T122] ( 0, 0 ) byref -> zero-ref "field V209._reference (fldOffset=0x0)" P-INDEP
-;* V336 tmp316 [V336,T123] ( 0, 0 ) int -> zero-ref "field V209._length (fldOffset=0x8)" P-INDEP
-;* V337 tmp317 [V337 ] ( 0, 0 ) byref -> zero-ref "field V213._reference (fldOffset=0x0)" P-INDEP
-;* V338 tmp318 [V338 ] ( 0, 0 ) int -> zero-ref "field V213._length (fldOffset=0x8)" P-INDEP
-;* V339 tmp319 [V339 ] ( 0, 0 ) byref -> zero-ref "field V215._reference (fldOffset=0x0)" P-INDEP
-;* V340 tmp320 [V340 ] ( 0, 0 ) int -> zero-ref "field V215._length (fldOffset=0x8)" P-INDEP
-;* V341 tmp321 [V341 ] ( 0, 0 ) byref -> zero-ref "field V223._reference (fldOffset=0x0)" P-INDEP
-;* V342 tmp322 [V342 ] ( 0, 0 ) int -> zero-ref "field V223._length (fldOffset=0x8)" P-INDEP
-;* V343 tmp323 [V343 ] ( 0, 0 ) byref -> zero-ref "field V224._reference (fldOffset=0x0)" P-INDEP
-;* V344 tmp324 [V344 ] ( 0, 0 ) int -> zero-ref "field V224._length (fldOffset=0x8)" P-INDEP
-; V345 tmp325 [V345,T67] ( 3, 12 ) ref -> rsi "arr expr"
-; V346 tmp326 [V346,T68] ( 3, 12 ) ref -> rdx "arr expr"
-; V347 tmp327 [V347,T69] ( 3, 12 ) ref -> rcx "arr expr"
-; V348 tmp328 [V348,T05] ( 3, 48 ) ref -> rcx "arr expr"
-; V349 tmp329 [V349,T70] ( 3, 12 ) ref -> rdx "arr expr"
-; V350 cse0 [V350,T07] ( 3, 39.50) ref -> rdi hoist "CSE #07: aggressive"
-; V351 cse1 [V351,T104] ( 3, 6.25) ref -> rax hoist "CSE #01: conservative"
-; V352 cse2 [V352,T105] ( 3, 6.25) ref -> rax hoist "CSE #05: conservative"
-; V353 cse3 [V353,T103] ( 3, 6.50) ref -> rsi hoist "CSE #03: conservative"
-; V354 cse4 [V354,T102] ( 3, 6.50) ref -> rax hoist "CSE #11: conservative"
-; V355 rat0 [V355,T143] ( 3, 24 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+; V123 tmp103 [V123,T74] ( 2, 12 ) byref -> [rbp-0x88] "Inlining Arg"
+; V124 tmp104 [V124,T49] ( 2, 16 ) int -> [rbp-0x54] spill-single-def "Inlining Arg"
+; V125 tmp105 [V125,T19] ( 4, 28 ) int -> [rbp-0x58] "Inlining Arg"
+; V126 tmp106 [V126,T09] ( 5, 36 ) int -> [rbp-0x5C] "Inlining Arg"
+;* V127 tmp107 [V127 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V128 tmp108 [V128,T40] ( 4, 16 ) int -> rdx "Inline stloc first use temp"
+; V129 tmp109 [V129,T25] ( 3, 24 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+;* V130 tmp110 [V130 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+; V131 tmp111 [V131,T26] ( 2, 16 ) byref -> r9 "Inlining Arg"
+; V132 tmp112 [V132,T35] ( 2, 16 ) int -> rcx "Inlining Arg"
+;* V133 tmp113 [V133 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V134 tmp114 [V134 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V135 tmp115 [V135 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V136 tmp116 [V136 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V137 tmp117 [V137 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V138 tmp118 [V138,T84] ( 2, 8 ) int -> rax "Inline return value spill temp"
+;* V139 tmp119 [V139 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V140 tmp120 [V140 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+; V141 tmp121 [V141,T27] ( 2, 16 ) byref -> r9 "Inlining Arg"
+; V142 tmp122 [V142,T36] ( 2, 16 ) int -> rcx "Inlining Arg"
+; V143 tmp123 [V143,T20] ( 4, 28 ) int -> [rbp-0x60] "Inlining Arg"
+; V144 tmp124 [V144,T10] ( 5, 36 ) int -> [rbp-0x64] "Inlining Arg"
+;* V145 tmp125 [V145 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V146 tmp126 [V146,T41] ( 4, 16 ) int -> rdx "Inline stloc first use temp"
+; V147 tmp127 [V147,T28] ( 3, 24 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+;* V148 tmp128 [V148 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+; V149 tmp129 [V149,T46] ( 2, 16 ) byref -> rdi "Inlining Arg"
+; V150 tmp130 [V150,T50] ( 2, 16 ) int -> rdx "Inlining Arg"
+;* V151 tmp131 [V151 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V152 tmp132 [V152 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V153 tmp133 [V153 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V154 tmp134 [V154 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V155 tmp135 [V155 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V156 tmp136 [V156,T85] ( 2, 8 ) int -> rax "Inline return value spill temp"
+;* V157 tmp137 [V157 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V158 tmp138 [V158 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+; V159 tmp139 [V159,T47] ( 2, 16 ) byref -> r9 "Inlining Arg"
+; V160 tmp140 [V160,T51] ( 2, 16 ) int -> rcx "Inlining Arg"
+;* V161 tmp141 [V161 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+; V162 tmp142 [V162,T29] ( 2, 16 ) byref -> r9 "Inlining Arg"
+; V163 tmp143 [V163,T37] ( 2, 16 ) int -> rcx "Inlining Arg"
+;* V164 tmp144 [V164 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V165 tmp145 [V165 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V166 tmp146 [V166 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V167 tmp147 [V167 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V168 tmp148 [V168 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V169 tmp149 [V169,T86] ( 2, 8 ) int -> rax "Inline return value spill temp"
+;* V170 tmp150 [V170 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V171 tmp151 [V171 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+; V172 tmp152 [V172,T48] ( 2, 16 ) byref -> [rbp-0x90] "Inlining Arg"
+; V173 tmp153 [V173,T52] ( 2, 16 ) int -> [rbp-0x68] spill-single-def "Inlining Arg"
+; V174 tmp154 [V174,T21] ( 4, 28 ) int -> [rbp-0x6C] "Inlining Arg"
+; V175 tmp155 [V175,T11] ( 5, 36 ) int -> [rbp-0x70] "Inlining Arg"
+;* V176 tmp156 [V176 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V177 tmp157 [V177,T42] ( 4, 16 ) int -> rdx "Inline stloc first use temp"
+; V178 tmp158 [V178,T30] ( 3, 24 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+;* V179 tmp159 [V179 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+; V180 tmp160 [V180,T31] ( 2, 16 ) byref -> r9 "Inlining Arg"
+; V181 tmp161 [V181,T38] ( 2, 16 ) int -> rcx "Inlining Arg"
+;* V182 tmp162 [V182 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V183 tmp163 [V183 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V184 tmp164 [V184 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V185 tmp165 [V185 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V186 tmp166 [V186 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V187 tmp167 [V187,T87] ( 2, 8 ) int -> rax "Inline return value spill temp"
+;* V188 tmp168 [V188 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V189 tmp169 [V189 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+; V190 tmp170 [V190,T44] ( 3, 16 ) byref -> [rbp-0x98] "Inlining Arg"
+; V191 tmp171 [V191,T53] ( 2, 16 ) int -> [rbp-0x74] spill-single-def "Inlining Arg"
+; V192 tmp172 [V192,T22] ( 4, 28 ) int -> [rbp-0x78] "Inlining Arg"
+; V193 tmp173 [V193,T12] ( 5, 36 ) int -> [rbp-0x7C] "Inlining Arg"
+;* V194 tmp174 [V194 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V195 tmp175 [V195,T43] ( 4, 16 ) int -> rdi "Inline stloc first use temp"
+; V196 tmp176 [V196,T32] ( 3, 24 ) ref -> rcx class-hnd "impAppendStmt" <int[]>
+; V197 tmp177 [V197,T106] ( 4, 4 ) int -> r14 "Inlining Arg"
+; V198 tmp178 [V198,T102] ( 5, 5 ) int -> r15 "Inlining Arg"
+;* V199 tmp179 [V199 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V200 tmp180 [V200,T126] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
+; V201 tmp181 [V201,T123] ( 3, 3 ) ref -> rcx class-hnd single-def "impAppendStmt" <int[]>
+; V202 tmp182 [V202,T23] ( 9, 22.50) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V203 tmp183 [V203,T04] ( 18, 46 ) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V204 tmp184 [V204,T03] ( 26, 78.50) byref -> [rbp-0xA0] "field V12._reference (fldOffset=0x0)" P-INDEP
+; V205 tmp185 [V205,T02] ( 39,107 ) int -> [rbp-0x80] "field V12._length (fldOffset=0x8)" P-INDEP
+;* V206 tmp186 [V206 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
+;* V207 tmp187 [V207 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
+;* V208 tmp188 [V208 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP
+;* V209 tmp189 [V209 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
+;* V210 tmp190 [V210 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
+;* V211 tmp191 [V211 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
+;* V212 tmp192 [V212 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V213 tmp193 [V213 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
+;* V214 tmp194 [V214 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP
+;* V215 tmp195 [V215 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
+;* V216 tmp196 [V216 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
+;* V217 tmp197 [V217 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
+;* V218 tmp198 [V218 ] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP
+;* V219 tmp199 [V219 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
+;* V220 tmp200 [V220,T135] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
+;* V221 tmp201 [V221,T138] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
+;* V222 tmp202 [V222 ] ( 0, 0 ) byref -> zero-ref single-def "field V37._reference (fldOffset=0x0)" P-INDEP
+;* V223 tmp203 [V223 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
+;* V224 tmp204 [V224 ] ( 0, 0 ) byref -> zero-ref single-def "field V38._reference (fldOffset=0x0)" P-INDEP
+;* V225 tmp205 [V225 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
+;* V226 tmp206 [V226 ] ( 0, 0 ) byref -> zero-ref "field V42._reference (fldOffset=0x0)" P-INDEP
+;* V227 tmp207 [V227 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP
+;* V228 tmp208 [V228 ] ( 0, 0 ) byref -> zero-ref single-def "field V48._reference (fldOffset=0x0)" P-INDEP
+;* V229 tmp209 [V229 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
+;* V230 tmp210 [V230,T139] ( 0, 0 ) byref -> zero-ref single-def "field V61._reference (fldOffset=0x0)" P-INDEP
+;* V231 tmp211 [V231,T140] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
+;* V232 tmp212 [V232 ] ( 0, 0 ) byref -> zero-ref single-def "field V65._reference (fldOffset=0x0)" P-INDEP
+;* V233 tmp213 [V233 ] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP
+;* V234 tmp214 [V234 ] ( 0, 0 ) byref -> zero-ref single-def "field V66._reference (fldOffset=0x0)" P-INDEP
+;* V235 tmp215 [V235 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
+;* V236 tmp216 [V236 ] ( 0, 0 ) byref -> zero-ref "field V70._reference (fldOffset=0x0)" P-INDEP
+;* V237 tmp217 [V237 ] ( 0, 0 ) int -> zero-ref "field V70._length (fldOffset=0x8)" P-INDEP
+; V238 tmp218 [V238,T132] ( 2, 1 ) byref -> r9 single-def "field V76._reference (fldOffset=0x0)" P-INDEP
+; V239 tmp219 [V239,T134] ( 2, 1 ) int -> r8 "field V76._length (fldOffset=0x8)" P-INDEP
+; V240 tmp220 [V240,T107] ( 2, 4 ) byref -> rdi "field V88._reference (fldOffset=0x0)" P-INDEP
+;* V241 tmp221 [V241 ] ( 0, 0 ) int -> zero-ref "field V88._length (fldOffset=0x8)" P-INDEP
+;* V242 tmp222 [V242 ] ( 0, 0 ) byref -> zero-ref "field V90._reference (fldOffset=0x0)" P-INDEP
+;* V243 tmp223 [V243 ] ( 0, 0 ) int -> zero-ref "field V90._length (fldOffset=0x8)" P-INDEP
+; V244 tmp224 [V244,T108] ( 2, 4 ) byref -> rdx "field V91._reference (fldOffset=0x0)" P-INDEP
+;* V245 tmp225 [V245 ] ( 0, 0 ) int -> zero-ref "field V91._length (fldOffset=0x8)" P-INDEP
+;* V246 tmp226 [V246 ] ( 0, 0 ) byref -> zero-ref "field V94._reference (fldOffset=0x0)" P-INDEP
+;* V247 tmp227 [V247 ] ( 0, 0 ) int -> zero-ref "field V94._length (fldOffset=0x8)" P-INDEP
+;* V248 tmp228 [V248 ] ( 0, 0 ) byref -> zero-ref "field V95._reference (fldOffset=0x0)" P-INDEP
+;* V249 tmp229 [V249 ] ( 0, 0 ) int -> zero-ref "field V95._length (fldOffset=0x8)" P-INDEP
+;* V250 tmp230 [V250 ] ( 0, 0 ) byref -> zero-ref "field V100._reference (fldOffset=0x0)" P-INDEP
+;* V251 tmp231 [V251 ] ( 0, 0 ) int -> zero-ref "field V100._length (fldOffset=0x8)" P-INDEP
+;* V252 tmp232 [V252 ] ( 0, 0 ) byref -> zero-ref "field V101._reference (fldOffset=0x0)" P-INDEP
+;* V253 tmp233 [V253 ] ( 0, 0 ) int -> zero-ref "field V101._length (fldOffset=0x8)" P-INDEP
+;* V254 tmp234 [V254 ] ( 0, 0 ) byref -> zero-ref "field V102._reference (fldOffset=0x0)" P-INDEP
+;* V255 tmp235 [V255 ] ( 0, 0 ) int -> zero-ref "field V102._length (fldOffset=0x8)" P-INDEP
+;* V256 tmp236 [V256 ] ( 0, 0 ) byref -> zero-ref "field V103._reference (fldOffset=0x0)" P-INDEP
+;* V257 tmp237 [V257 ] ( 0, 0 ) int -> zero-ref "field V103._length (fldOffset=0x8)" P-INDEP
+; V258 tmp238 [V258,T109] ( 2, 4 ) byref -> r9 "field V109._reference (fldOffset=0x0)" P-INDEP
+; V259 tmp239 [V259,T110] ( 2, 4 ) int -> r8 "field V109._length (fldOffset=0x8)" P-INDEP
+;* V260 tmp240 [V260,T111] ( 0, 0 ) byref -> zero-ref "field V112._reference (fldOffset=0x0)" P-INDEP
+;* V261 tmp241 [V261,T116] ( 0, 0 ) int -> zero-ref "field V112._length (fldOffset=0x8)" P-INDEP
+;* V262 tmp242 [V262 ] ( 0, 0 ) byref -> zero-ref "field V116._reference (fldOffset=0x0)" P-INDEP
+;* V263 tmp243 [V263 ] ( 0, 0 ) int -> zero-ref "field V116._length (fldOffset=0x8)" P-INDEP
+;* V264 tmp244 [V264 ] ( 0, 0 ) byref -> zero-ref "field V117._reference (fldOffset=0x0)" P-INDEP
+;* V265 tmp245 [V265 ] ( 0, 0 ) int -> zero-ref "field V117._length (fldOffset=0x8)" P-INDEP
+;* V266 tmp246 [V266 ] ( 0, 0 ) byref -> zero-ref "field V121._reference (fldOffset=0x0)" P-INDEP
+;* V267 tmp247 [V267 ] ( 0, 0 ) int -> zero-ref "field V121._length (fldOffset=0x8)" P-INDEP
+;* V268 tmp248 [V268 ] ( 0, 0 ) byref -> zero-ref "field V122._reference (fldOffset=0x0)" P-INDEP
+;* V269 tmp249 [V269 ] ( 0, 0 ) int -> zero-ref "field V122._length (fldOffset=0x8)" P-INDEP
+;* V270 tmp250 [V270,T112] ( 0, 0 ) byref -> zero-ref "field V130._reference (fldOffset=0x0)" P-INDEP
+;* V271 tmp251 [V271,T117] ( 0, 0 ) int -> zero-ref "field V130._length (fldOffset=0x8)" P-INDEP
+;* V272 tmp252 [V272 ] ( 0, 0 ) byref -> zero-ref "field V134._reference (fldOffset=0x0)" P-INDEP
+;* V273 tmp253 [V273 ] ( 0, 0 ) int -> zero-ref "field V134._length (fldOffset=0x8)" P-INDEP
+;* V274 tmp254 [V274 ] ( 0, 0 ) byref -> zero-ref "field V135._reference (fldOffset=0x0)" P-INDEP
+;* V275 tmp255 [V275 ] ( 0, 0 ) int -> zero-ref "field V135._length (fldOffset=0x8)" P-INDEP
+;* V276 tmp256 [V276 ] ( 0, 0 ) byref -> zero-ref "field V139._reference (fldOffset=0x0)" P-INDEP
+;* V277 tmp257 [V277 ] ( 0, 0 ) int -> zero-ref "field V139._length (fldOffset=0x8)" P-INDEP
+;* V278 tmp258 [V278,T113] ( 0, 0 ) byref -> zero-ref "field V140._reference (fldOffset=0x0)" P-INDEP
+;* V279 tmp259 [V279,T118] ( 0, 0 ) int -> zero-ref "field V140._length (fldOffset=0x8)" P-INDEP
+;* V280 tmp260 [V280 ] ( 0, 0 ) byref -> zero-ref "field V148._reference (fldOffset=0x0)" P-INDEP
+;* V281 tmp261 [V281 ] ( 0, 0 ) int -> zero-ref "field V148._length (fldOffset=0x8)" P-INDEP
+;* V282 tmp262 [V282 ] ( 0, 0 ) byref -> zero-ref "field V152._reference (fldOffset=0x0)" P-INDEP
+;* V283 tmp263 [V283 ] ( 0, 0 ) int -> zero-ref "field V152._length (fldOffset=0x8)" P-INDEP
+;* V284 tmp264 [V284 ] ( 0, 0 ) byref -> zero-ref "field V153._reference (fldOffset=0x0)" P-INDEP
+;* V285 tmp265 [V285 ] ( 0, 0 ) int -> zero-ref "field V153._length (fldOffset=0x8)" P-INDEP
+;* V286 tmp266 [V286 ] ( 0, 0 ) byref -> zero-ref "field V157._reference (fldOffset=0x0)" P-INDEP
+;* V287 tmp267 [V287 ] ( 0, 0 ) int -> zero-ref "field V157._length (fldOffset=0x8)" P-INDEP
+;* V288 tmp268 [V288 ] ( 0, 0 ) byref -> zero-ref "field V158._reference (fldOffset=0x0)" P-INDEP
+;* V289 tmp269 [V289 ] ( 0, 0 ) int -> zero-ref "field V158._length (fldOffset=0x8)" P-INDEP
+;* V290 tmp270 [V290,T114] ( 0, 0 ) byref -> zero-ref "field V161._reference (fldOffset=0x0)" P-INDEP
+;* V291 tmp271 [V291,T119] ( 0, 0 ) int -> zero-ref "field V161._length (fldOffset=0x8)" P-INDEP
+;* V292 tmp272 [V292 ] ( 0, 0 ) byref -> zero-ref "field V165._reference (fldOffset=0x0)" P-INDEP
+;* V293 tmp273 [V293 ] ( 0, 0 ) int -> zero-ref "field V165._length (fldOffset=0x8)" P-INDEP
+;* V294 tmp274 [V294 ] ( 0, 0 ) byref -> zero-ref "field V166._reference (fldOffset=0x0)" P-INDEP
+;* V295 tmp275 [V295 ] ( 0, 0 ) int -> zero-ref "field V166._length (fldOffset=0x8)" P-INDEP
+;* V296 tmp276 [V296 ] ( 0, 0 ) byref -> zero-ref "field V170._reference (fldOffset=0x0)" P-INDEP
+;* V297 tmp277 [V297 ] ( 0, 0 ) int -> zero-ref "field V170._length (fldOffset=0x8)" P-INDEP
+;* V298 tmp278 [V298 ] ( 0, 0 ) byref -> zero-ref "field V171._reference (fldOffset=0x0)" P-INDEP
+;* V299 tmp279 [V299 ] ( 0, 0 ) int -> zero-ref "field V171._length (fldOffset=0x8)" P-INDEP
+;* V300 tmp280 [V300,T115] ( 0, 0 ) byref -> zero-ref "field V179._reference (fldOffset=0x0)" P-INDEP
+;* V301 tmp281 [V301,T120] ( 0, 0 ) int -> zero-ref "field V179._length (fldOffset=0x8)" P-INDEP
+;* V302 tmp282 [V302 ] ( 0, 0 ) byref -> zero-ref "field V183._reference (fldOffset=0x0)" P-INDEP
+;* V303 tmp283 [V303 ] ( 0, 0 ) int -> zero-ref "field V183._length (fldOffset=0x8)" P-INDEP
+;* V304 tmp284 [V304 ] ( 0, 0 ) byref -> zero-ref "field V184._reference (fldOffset=0x0)" P-INDEP
+;* V305 tmp285 [V305 ] ( 0, 0 ) int -> zero-ref "field V184._length (fldOffset=0x8)" P-INDEP
+;* V306 tmp286 [V306 ] ( 0, 0 ) byref -> zero-ref "field V188._reference (fldOffset=0x0)" P-INDEP
+;* V307 tmp287 [V307 ] ( 0, 0 ) int -> zero-ref "field V188._length (fldOffset=0x8)" P-INDEP
+;* V308 tmp288 [V308 ] ( 0, 0 ) byref -> zero-ref "field V189._reference (fldOffset=0x0)" P-INDEP
+;* V309 tmp289 [V309 ] ( 0, 0 ) int -> zero-ref "field V189._length (fldOffset=0x8)" P-INDEP
+; V310 tmp290 [V310,T67] ( 3, 12 ) ref -> rsi "arr expr"
+; V311 tmp291 [V311,T68] ( 3, 12 ) ref -> rsi "arr expr"
+; V312 tmp292 [V312,T69] ( 3, 12 ) ref -> rcx "arr expr"
+; V313 tmp293 [V313,T07] ( 3, 48 ) ref -> rcx "arr expr"
+; V314 tmp294 [V314,T70] ( 3, 12 ) ref -> rdx "arr expr"
+; V315 cse0 [V315,T08] ( 3, 39.50) ref -> rdi hoist "CSE #07: aggressive"
+; V316 cse1 [V316,T93] ( 3, 6.25) ref -> rax hoist "CSE #01: conservative"
+; V317 cse2 [V317,T94] ( 3, 6.25) ref -> rax hoist "CSE #05: conservative"
+; V318 cse3 [V318,T92] ( 3, 6.50) ref -> rdi hoist "CSE #03: conservative"
+; V319 cse4 [V319,T91] ( 3, 6.50) ref -> rax hoist "CSE #11: conservative"
+; V320 rat0 [V320,T141] ( 3, 24 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 184
+; Lcl frame size = 120
G_M4429_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 184
- lea rbp, [rsp+0xE0]
+ sub rsp, 120
+ lea rbp, [rsp+0xA0]
mov rbx, rdi
mov r14, rsi
mov r15d, edx
- ;; size=34 bbWeight=1 PerfScore 7.50
+ ;; size=31 bbWeight=1 PerfScore 7.50
G_M4429_IG02:
mov r13d, dword ptr [rbx+0x4C]
cmp r13d, r15d
ja G_M4429_IG65
- mov esi, r13d
- lea r12, bword ptr [r14+2*rsi]
+ mov edi, r13d
+ lea r12, bword ptr [r14+2*rdi]
mov eax, r15d
sub eax, r13d
- mov dword ptr [rbp-0x48], eax
- mov esi, 32
mov rdi, r12
+ mov dword ptr [rbp-0x80], eax
mov edx, eax
+ mov esi, 32
mov rcx, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
call [rcx]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
test eax, eax
- mov ecx, dword ptr [rbp-0x48]
+ mov ecx, dword ptr [rbp-0x80]
cmovl eax, ecx
test eax, eax
jne SHORT G_M4429_IG06
;; size=63 bbWeight=1 PerfScore 12.25
G_M4429_IG03:
mov rax, gword ptr [rbx+0x20]
jmp SHORT G_M4429_IG05
align [4 bytes for IG20]
;; size=10 bbWeight=0.25 PerfScore 1.00
G_M4429_IG04:
mov rdi, rax
mov ecx, dword ptr [rbx+0x58]
lea edx, [rcx+0x01]
mov dword ptr [rbx+0x58], edx
cmp ecx, dword ptr [rdi+0x08]
jae G_M4429_IG64
mov edi, dword ptr [rdi+4*rcx+0x10]
mov rcx, gword ptr [rbx+0x28]
mov rcx, gword ptr [rcx+0x50]
cmp edi, dword ptr [rcx+0x08]
jae G_M4429_IG64
lea rdi, bword ptr [rcx+4*rdi+0x10]
dec dword ptr [rdi]
;; size=49 bbWeight=2 PerfScore 43.50
G_M4429_IG05:
mov ecx, dword ptr [rax+0x08]
sub ecx, dword ptr [rbx+0x58]
test ecx, ecx
jg SHORT G_M4429_IG04
jmp G_M4429_IG62
;; size=15 bbWeight=4 PerfScore 33.00
G_M4429_IG06:
cmp eax, ecx
ja G_M4429_IG65
mov edi, eax
lea r12, bword ptr [r12+2*rdi]
sub ecx, eax
- mov dword ptr [rbp-0x4C], ecx
+ mov dword ptr [rbp-0x48], ecx
lea edi, [rax+r13]
mov eax, edi
mov edx, r13d
mov esi, eax
cmp esi, r13d
jge SHORT G_M4429_IG07
- mov dword ptr [rbp-0x50], r13d
+ mov dword ptr [rbp-0x4C], r13d
mov dword ptr [rbp-0x2C], eax
- mov dword ptr [rbp-0x54], eax
+ mov dword ptr [rbp-0x50], eax
mov eax, dword ptr [rbp-0x2C]
- mov edx, dword ptr [rbp-0x54]
- mov esi, dword ptr [rbp-0x50]
+ mov edx, dword ptr [rbp-0x50]
+ mov esi, dword ptr [rbp-0x4C]
;; size=54 bbWeight=0.50 PerfScore 5.88
G_M4429_IG07:
cmp dword ptr [rbx+0x58], 0
mov dword ptr [rbp-0x2C], eax
jne SHORT G_M4429_IG08
- mov dword ptr [rbp-0x50], esi
- mov dword ptr [rbp-0x54], edx
+ mov dword ptr [rbp-0x4C], esi
+ mov dword ptr [rbp-0x50], edx
mov rdi, rbx
mov r8, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
call [r8]System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
- mov edx, dword ptr [rbp-0x54]
- mov esi, dword ptr [rbp-0x50]
+ mov edx, dword ptr [rbp-0x50]
+ mov esi, dword ptr [rbp-0x4C]
;; size=37 bbWeight=0.50 PerfScore 6.25
G_M4429_IG08:
mov rdi, gword ptr [rbx+0x20]
mov r8d, dword ptr [rbx+0x58]
dec r8d
mov dword ptr [rbx+0x58], r8d
cmp r8d, dword ptr [rdi+0x08]
jae G_M4429_IG64
mov dword ptr [rdi+4*r8+0x10], 1
sub esi, edx
mov ecx, esi
mov rdi, gword ptr [rbx+0x28]
mov esi, 1
mov r8, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Match:AddMatch(int,int,int):this
cmp dword ptr [rdi], edi
call [r8]System.Text.RegularExpressions.Match:AddMatch(int,int,int):this
- cmp dword ptr [rbp-0x4C], 3
+ cmp dword ptr [rbp-0x48], 3
jl SHORT G_M4429_IG11
;; size=68 bbWeight=0.50 PerfScore 11.12
G_M4429_IG09:
- mov esi, dword ptr [r12]
- xor esi, 0xD1FFAB1E
- mov edi, dword ptr [r12+0x02]
+ mov edi, dword ptr [r12]
xor edi, 0xD1FFAB1E
- or esi, edi
+ mov edx, dword ptr [r12+0x02]
+ xor edx, 0xD1FFAB1E
+ or edi, edx
jne SHORT G_M4429_IG11
;; size=25 bbWeight=0.25 PerfScore 1.44
G_M4429_IG10:
mov r12d, dword ptr [rbp-0x2C]
add r12d, 3
cmp r12d, r15d
ja G_M4429_IG65
jmp SHORT G_M4429_IG14
;; size=19 bbWeight=0.50 PerfScore 2.25
G_M4429_IG11:
- mov rsi, gword ptr [rbx+0x20]
+ mov rdi, gword ptr [rbx+0x20]
jmp SHORT G_M4429_IG13
;; size=6 bbWeight=0.50 PerfScore 2.00
G_M4429_IG12:
- mov rdi, rsi
- mov edx, dword ptr [rbx+0x58]
- lea eax, [rdx+0x01]
+ mov rdx, rdi
+ mov esi, dword ptr [rbx+0x58]
+ lea eax, [rsi+0x01]
mov dword ptr [rbx+0x58], eax
- cmp edx, dword ptr [rdi+0x08]
+ cmp esi, dword ptr [rdx+0x08]
jae G_M4429_IG64
- mov edi, dword ptr [rdi+4*rdx+0x10]
- mov rdx, gword ptr [rbx+0x28]
- mov rdx, gword ptr [rdx+0x50]
- cmp edi, dword ptr [rdx+0x08]
+ mov edx, dword ptr [rdx+4*rsi+0x10]
+ mov rsi, gword ptr [rbx+0x28]
+ mov rsi, gword ptr [rsi+0x50]
+ cmp edx, dword ptr [rsi+0x08]
jae G_M4429_IG64
- lea rdi, bword ptr [rdx+4*rdi+0x10]
- dec dword ptr [rdi]
+ lea rdx, bword ptr [rsi+4*rdx+0x10]
+ dec dword ptr [rdx]
;; size=49 bbWeight=2 PerfScore 43.50
G_M4429_IG13:
- mov edi, dword ptr [rsi+0x08]
- sub edi, dword ptr [rbx+0x58]
- test edi, edi
+ mov edx, dword ptr [rdi+0x08]
+ sub edx, dword ptr [rbx+0x58]
+ test edx, edx
jg SHORT G_M4429_IG12
jmp G_M4429_IG62
;; size=15 bbWeight=4 PerfScore 33.00
G_M4429_IG14:
- mov esi, r12d
- lea rax, bword ptr [r14+2*rsi]
- mov bword ptr [rbp-0xA0], rax
+ mov edi, r12d
+ lea rdi, bword ptr [r14+2*rdi]
mov ecx, r15d
sub ecx, r12d
- mov dword ptr [rbp-0x58], ecx
- mov esi, 10
+ mov rax, rdi
+ mov bword ptr [rbp-0xA0], rax
mov rdi, rax
+ mov dword ptr [rbp-0x80], ecx
mov edx, ecx
+ mov esi, 10
mov r8, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
call [r8]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
test eax, eax
- mov r8d, dword ptr [rbp-0x58]
+ mov r8d, dword ptr [rbp-0x80]
cmovl eax, r8d
test eax, eax
jne SHORT G_M4429_IG18
- ;; size=60 bbWeight=0.50 PerfScore 5.00
+ ;; size=63 bbWeight=0.50 PerfScore 5.12
G_M4429_IG15:
mov rax, gword ptr [rbx+0x20]
jmp SHORT G_M4429_IG17
;; size=6 bbWeight=0.25 PerfScore 1.00
G_M4429_IG16:
mov rdi, rax
mov esi, dword ptr [rbx+0x58]
lea edx, [rsi+0x01]
mov dword ptr [rbx+0x58], edx
cmp esi, dword ptr [rdi+0x08]
jae G_M4429_IG64
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_M4429_IG64
lea rdi, bword ptr [rsi+4*rdi+0x10]
dec dword ptr [rdi]
;; size=49 bbWeight=2 PerfScore 43.50
G_M4429_IG17:
mov r8d, dword ptr [rax+0x08]
sub r8d, dword ptr [rbx+0x58]
test r8d, r8d
jg SHORT G_M4429_IG16
jmp G_M4429_IG62
;; size=18 bbWeight=4 PerfScore 33.00
G_M4429_IG18:
cmp eax, r8d
ja G_M4429_IG65
mov edi, eax
- mov rsi, bword ptr [rbp-0xA0]
- lea r9, bword ptr [rsi+2*rdi]
+ mov r9, bword ptr [rbp-0xA0]
+ lea r9, bword ptr [r9+2*rdi]
sub r8d, eax
lea edi, [r12+rax]
mov eax, edi
mov esi, eax
inc r12d
jmp G_M4429_IG25
;; size=41 bbWeight=0.50 PerfScore 3.25
G_M4429_IG19:
mov rdi, gword ptr [rbx+0x20]
jmp SHORT G_M4429_IG21
;; size=6 bbWeight=15.50 PerfScore 62.00
G_M4429_IG20:
mov rdx, rdi
mov ecx, dword ptr [rbx+0x58]
lea eax, [rcx+0x01]
mov dword ptr [rbx+0x58], eax
cmp ecx, dword ptr [rdx+0x08]
jae G_M4429_IG64
mov edx, dword ptr [rdx+4*rcx+0x10]
mov rcx, gword ptr [rbx+0x28]
mov rcx, gword ptr [rcx+0x50]
cmp edx, dword ptr [rcx+0x08]
jae G_M4429_IG64
lea rdx, bword ptr [rcx+4*rdx+0x10]
dec dword ptr [rdx]
;; size=49 bbWeight=8 PerfScore 174.00
G_M4429_IG21:
mov edx, dword ptr [rdi+0x08]
sub edx, dword ptr [rbx+0x58]
cmp edx, r10d
jg SHORT G_M4429_IG20
;; size=11 bbWeight=16 PerfScore 100.00
G_M4429_IG22:
cmp r12d, esi
jge G_M4429_IG59
add esi, 16
cmp r15d, esi
jle SHORT G_M4429_IG23
jmp SHORT G_M4429_IG24
;; size=19 bbWeight=2 PerfScore 9.50
G_M4429_IG23:
mov esi, r15d
;; size=3 bbWeight=2 PerfScore 0.50
G_M4429_IG24:
sub esi, r12d
mov edi, r12d
mov edx, esi
add rdi, rdx
mov edx, r15d
cmp rdi, rdx
ja G_M4429_IG65
mov edi, r12d
lea rdi, bword ptr [r14+2*rdi]
mov rdx, 0xD1FFAB1E
mov ecx, 17
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:LastIndexOf(byref,int,byref,int):int
call [rax]System.SpanHelpers:LastIndexOf(byref,int,byref,int):int
test eax, eax
jl G_M4429_IG59
lea esi, [rax+r12]
mov eax, esi
mov dword ptr [rbp-0x44], eax
mov ecx, eax
cmp ecx, r15d
ja G_M4429_IG65
- mov esi, ecx
- lea r9, bword ptr [r14+2*rsi]
+ mov edi, ecx
+ lea r9, bword ptr [r14+2*rdi]
mov r8d, r15d
sub r8d, ecx
mov eax, ecx
mov esi, dword ptr [rbp-0x44]
;; size=102 bbWeight=2 PerfScore 28.00
G_M4429_IG25:
mov rdi, gword ptr [rbx+0x20]
mov r10d, dword ptr [rdi+0x08]
sub r10d, dword ptr [rbx+0x58]
mov dword ptr [rbp-0x40], r10d
cmp r8d, 17
jl G_M4429_IG19
vmovups ymm0, ymmword ptr [r9]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [r9+0x02]
vpxor ymm1, ymm1, ymmword ptr [reloc @RWD32]
vpor ymm0, ymm1, ymm0
vptest ymm0, ymm0
sete dil
movzx rdi, dil
test edi, edi
je G_M4429_IG19
add eax, 17
cmp eax, r15d
mov dword ptr [rbp-0x44], esi
ja G_M4429_IG65
- mov edi, eax
- lea rcx, bword ptr [r14+2*rdi]
+ mov r9d, eax
+ lea r9, bword ptr [r14+2*r9]
mov r8d, r15d
sub r8d, eax
+ mov rcx, r9
mov dword ptr [rbp-0x30], eax
- mov esi, 44
- mov bword ptr [rbp-0xA8], rcx
+ mov bword ptr [rbp-0xA0], rcx
mov rdi, rcx
- mov dword ptr [rbp-0x5C], r8d
+ mov dword ptr [rbp-0x80], r8d
mov edx, r8d
+ mov esi, 44
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
test eax, eax
jge SHORT G_M4429_IG27
- ;; size=146 bbWeight=4 PerfScore 172.33
+ ;; size=150 bbWeight=4 PerfScore 173.33
G_M4429_IG26:
- mov ecx, dword ptr [rbp-0x5C]
+ mov ecx, dword ptr [rbp-0x80]
mov eax, ecx
- mov dword ptr [rbp-0x5C], ecx
+ mov dword ptr [rbp-0x80], ecx
;; size=8 bbWeight=2 PerfScore 4.50
G_M4429_IG27:
test eax, eax
mov esi, dword ptr [rbp-0x44]
mov r10d, dword ptr [rbp-0x40]
je G_M4429_IG19
- mov ecx, dword ptr [rbp-0x5C]
+ mov ecx, dword ptr [rbp-0x80]
mov edx, dword ptr [rbp-0x30]
- mov rdi, bword ptr [rbp-0xA8]
+ mov r9, bword ptr [rbp-0xA0]
cmp eax, ecx
ja G_M4429_IG65
- mov r8d, eax
- lea r8, bword ptr [rdi+2*r8]
- mov bword ptr [rbp-0xB0], r8
+ mov edi, eax
+ lea r8, bword ptr [r9+2*rdi]
+ mov bword ptr [rbp-0x88], r8
sub ecx, eax
- mov dword ptr [rbp-0x60], ecx
+ mov dword ptr [rbp-0x54], ecx
add eax, edx
mov r9d, edx
mov r11d, eax
cmp r11d, r9d
jge SHORT G_M4429_IG29
- ;; size=68 bbWeight=4 PerfScore 50.00
+ ;; size=67 bbWeight=4 PerfScore 50.00
G_M4429_IG28:
- mov dword ptr [rbp-0x64], edx
+ mov dword ptr [rbp-0x58], edx
mov dword ptr [rbp-0x2C], eax
- mov dword ptr [rbp-0x68], eax
+ mov dword ptr [rbp-0x5C], eax
mov eax, dword ptr [rbp-0x2C]
- mov r9d, dword ptr [rbp-0x68]
- mov r11d, dword ptr [rbp-0x64]
+ mov r9d, dword ptr [rbp-0x5C]
+ mov r11d, dword ptr [rbp-0x58]
;; size=20 bbWeight=2 PerfScore 12.00
G_M4429_IG29:
cmp dword ptr [rbx+0x58], 0
mov dword ptr [rbp-0x2C], eax
mov dword ptr [rbp-0x44], esi
jne SHORT G_M4429_IG31
;; size=12 bbWeight=4 PerfScore 24.00
G_M4429_IG30:
- mov dword ptr [rbp-0x68], r9d
- mov dword ptr [rbp-0x64], r11d
+ mov dword ptr [rbp-0x5C], r9d
+ mov dword ptr [rbp-0x58], r11d
mov rdi, rbx
mov rdx, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
call [rdx]System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
- mov r9d, dword ptr [rbp-0x68]
- mov r11d, dword ptr [rbp-0x64]
+ mov r9d, dword ptr [rbp-0x5C]
+ mov r11d, dword ptr [rbp-0x58]
;; size=31 bbWeight=2 PerfScore 15.00
G_M4429_IG31:
mov rdi, gword ptr [rbx+0x20]
mov edx, dword ptr [rbx+0x58]
dec edx
mov dword ptr [rbx+0x58], edx
cmp edx, dword ptr [rdi+0x08]
jae G_M4429_IG64
mov dword ptr [rdi+4*rdx+0x10], 2
sub r11d, r9d
mov ecx, r11d
mov rdi, gword ptr [rbx+0x28]
mov edx, r9d
mov esi, 2
mov r9, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Match:AddMatch(int,int,int):this
cmp dword ptr [rdi], edi
call [r9]System.Text.RegularExpressions.Match:AddMatch(int,int,int):this
- cmp dword ptr [rbp-0x60], 2
+ cmp dword ptr [rbp-0x54], 2
mov esi, dword ptr [rbp-0x44]
mov r10d, dword ptr [rbp-0x40]
jl G_M4429_IG19
;; size=79 bbWeight=4 PerfScore 98.00
G_M4429_IG32:
mov eax, dword ptr [rbp-0x2C]
- mov rdi, bword ptr [rbp-0xB0]
+ mov rdi, bword ptr [rbp-0x88]
cmp dword ptr [rdi], 0xD1FFAB1E
jne G_M4429_IG19
;; size=22 bbWeight=2 PerfScore 12.00
G_M4429_IG33:
add eax, 2
cmp eax, r15d
mov dword ptr [rbp-0x44], esi
ja G_M4429_IG65
mov edi, eax
- lea rcx, bword ptr [r14+2*rdi]
- mov r8d, r15d
- sub r8d, eax
+ lea r9, bword ptr [r14+2*rdi]
+ mov ecx, r15d
+ sub ecx, eax
+ mov r8, r9
mov dword ptr [rbp-0x34], eax
+ mov bword ptr [rbp-0xA0], r8
+ mov rdi, r8
+ mov dword ptr [rbp-0x80], ecx
+ mov edx, ecx
mov esi, 44
- mov bword ptr [rbp-0xB8], rcx
- mov rdi, rcx
- mov dword ptr [rbp-0x6C], r8d
- mov edx, r8d
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
test eax, eax
jge SHORT G_M4429_IG35
- ;; size=68 bbWeight=4 PerfScore 48.00
+ ;; size=68 bbWeight=4 PerfScore 49.00
G_M4429_IG34:
- mov ecx, dword ptr [rbp-0x6C]
+ mov ecx, dword ptr [rbp-0x80]
mov eax, ecx
- mov dword ptr [rbp-0x6C], ecx
+ mov dword ptr [rbp-0x80], ecx
;; size=8 bbWeight=2 PerfScore 4.50
G_M4429_IG35:
test eax, eax
mov esi, dword ptr [rbp-0x44]
mov r10d, dword ptr [rbp-0x40]
je G_M4429_IG19
- mov ecx, dword ptr [rbp-0x6C]
+ mov ecx, dword ptr [rbp-0x80]
mov edx, dword ptr [rbp-0x34]
- mov rdi, bword ptr [rbp-0xB8]
+ mov r9, bword ptr [rbp-0xA0]
cmp eax, ecx
ja G_M4429_IG65
- mov r8d, eax
- lea r8, bword ptr [rdi+2*r8]
- mov bword ptr [rbp-0xC0], r8
+ mov edi, eax
+ lea r9, bword ptr [r9+2*rdi]
sub ecx, eax
- mov dword ptr [rbp-0x70], ecx
+ mov bword ptr [rbp-0xA0], r9
+ mov dword ptr [rbp-0x80], ecx
add eax, edx
mov r9d, edx
mov r11d, eax
cmp r11d, r9d
jge SHORT G_M4429_IG37
- ;; size=68 bbWeight=4 PerfScore 50.00
+ ;; size=67 bbWeight=4 PerfScore 50.00
G_M4429_IG36:
- mov dword ptr [rbp-0x74], edx
+ mov dword ptr [rbp-0x60], edx
mov dword ptr [rbp-0x2C], eax
- mov dword ptr [rbp-0x78], eax
+ mov dword ptr [rbp-0x64], eax
mov eax, dword ptr [rbp-0x2C]
- mov r9d, dword ptr [rbp-0x78]
- mov r11d, dword ptr [rbp-0x74]
+ mov r9d, dword ptr [rbp-0x64]
+ mov r11d, dword ptr [rbp-0x60]
;; size=20 bbWeight=2 PerfScore 12.00
G_M4429_IG37:
cmp dword ptr [rbx+0x58], 0
mov dword ptr [rbp-0x2C], eax
mov dword ptr [rbp-0x44], esi
jne SHORT G_M4429_IG39
;; size=12 bbWeight=4 PerfScore 24.00
G_M4429_IG38:
- mov dword ptr [rbp-0x78], r9d
- mov dword ptr [rbp-0x74], r11d
+ mov dword ptr [rbp-0x64], r9d
+ mov dword ptr [rbp-0x60], r11d
mov rdi, rbx
mov rdx, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
call [rdx]System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
- mov r9d, dword ptr [rbp-0x78]
- mov r11d, dword ptr [rbp-0x74]
+ mov r9d, dword ptr [rbp-0x64]
+ mov r11d, dword ptr [rbp-0x60]
;; size=31 bbWeight=2 PerfScore 15.00
G_M4429_IG39:
mov rdi, gword ptr [rbx+0x20]
mov edx, dword ptr [rbx+0x58]
dec edx
mov dword ptr [rbx+0x58], edx
cmp edx, dword ptr [rdi+0x08]
jae G_M4429_IG64
mov dword ptr [rdi+4*rdx+0x10], 3
sub r11d, r9d
mov ecx, r11d
mov rdi, gword ptr [rbx+0x28]
mov edx, r9d
mov esi, 3
mov r9, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Match:AddMatch(int,int,int):this
cmp dword ptr [rdi], edi
call [r9]System.Text.RegularExpressions.Match:AddMatch(int,int,int):this
- mov eax, dword ptr [rbp-0x70]
+ mov eax, dword ptr [rbp-0x80]
test eax, eax
mov esi, dword ptr [rbp-0x44]
mov r10d, dword ptr [rbp-0x40]
je G_M4429_IG19
mov ecx, eax
mov eax, dword ptr [rbp-0x2C]
- mov r8, bword ptr [rbp-0xC0]
- cmp word ptr [r8], 44
+ mov r9, bword ptr [rbp-0xA0]
+ cmp word ptr [r9], 44
mov dword ptr [rbp-0x2C], eax
jne G_M4429_IG19
mov dword ptr [rbp-0x44], esi
- mov bword ptr [rbp-0xC0], r8
- lea rdi, bword ptr [r8+0x02]
- mov dword ptr [rbp-0x70], ecx
+ mov bword ptr [rbp-0xA0], r9
+ lea rdi, bword ptr [r9+0x02]
+ mov dword ptr [rbp-0x80], ecx
lea edx, [rcx-0x01]
mov esi, 59
- mov r9, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
- call [r9]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
+ mov r8, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
+ call [r8]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
test eax, eax
jge SHORT G_M4429_IG41
;; size=148 bbWeight=4 PerfScore 159.00
G_M4429_IG40:
- mov esi, dword ptr [rbp-0x70]
- lea eax, [rsi-0x01]
- mov dword ptr [rbp-0x70], esi
+ mov ecx, dword ptr [rbp-0x80]
+ lea eax, [rcx-0x01]
+ mov dword ptr [rbp-0x80], ecx
;; size=9 bbWeight=2 PerfScore 5.00
G_M4429_IG41:
test eax, eax
mov esi, dword ptr [rbp-0x44]
mov r10d, dword ptr [rbp-0x40]
je G_M4429_IG19
- mov ecx, eax
+ mov edi, eax
mov eax, dword ptr [rbp-0x2C]
- mov rdx, bword ptr [rbp-0xC0]
- mov edi, dword ptr [rbp-0x70]
- cmp ecx, edi
+ mov ecx, dword ptr [rbp-0x80]
+ mov r9, bword ptr [rbp-0xA0]
+ cmp edi, ecx
ja G_M4429_IG65
- mov r8d, ecx
- lea rdx, bword ptr [rdx+2*r8]
- sub edi, ecx
- add eax, ecx
- cmp edi, 2
+ mov edx, edi
+ lea r9, bword ptr [r9+2*rdx]
+ sub ecx, edi
+ add eax, edi
+ cmp ecx, 2
jb G_M4429_IG19
- cmp word ptr [rdx+0x02], 59
+ cmp word ptr [r9+0x02], 59
jne G_M4429_IG19
add eax, 2
cmp eax, r15d
mov dword ptr [rbp-0x44], esi
ja G_M4429_IG65
mov edi, eax
- lea rcx, bword ptr [r14+2*rdi]
- mov r8d, r15d
- sub r8d, eax
+ lea r9, bword ptr [r14+2*rdi]
+ mov ecx, r15d
+ sub ecx, eax
+ mov r8, r9
mov dword ptr [rbp-0x38], eax
+ mov bword ptr [rbp-0xA0], r8
+ mov rdi, r8
+ mov dword ptr [rbp-0x80], ecx
+ mov edx, ecx
mov esi, 91
- mov bword ptr [rbp-0xC8], rcx
- mov rdi, rcx
- mov dword ptr [rbp-0x7C], r8d
- mov edx, r8d
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
test eax, eax
jge SHORT G_M4429_IG43
- ;; size=137 bbWeight=4 PerfScore 105.00
+ ;; size=137 bbWeight=4 PerfScore 106.00
G_M4429_IG42:
- mov ecx, dword ptr [rbp-0x7C]
+ mov ecx, dword ptr [rbp-0x80]
mov eax, ecx
- mov dword ptr [rbp-0x7C], ecx
+ mov dword ptr [rbp-0x80], ecx
;; size=8 bbWeight=2 PerfScore 4.50
G_M4429_IG43:
test eax, eax
mov esi, dword ptr [rbp-0x44]
mov r10d, dword ptr [rbp-0x40]
je G_M4429_IG19
- mov ecx, dword ptr [rbp-0x7C]
+ mov ecx, dword ptr [rbp-0x80]
mov edx, dword ptr [rbp-0x38]
- mov rdi, bword ptr [rbp-0xC8]
+ mov r9, bword ptr [rbp-0xA0]
cmp eax, ecx
ja G_M4429_IG65
- mov r8d, eax
- lea r8, bword ptr [rdi+2*r8]
- mov bword ptr [rbp-0xD0], r8
+ mov edi, eax
+ lea r8, bword ptr [r9+2*rdi]
+ mov bword ptr [rbp-0x90], r8
sub ecx, eax
- mov dword ptr [rbp-0x80], ecx
+ mov dword ptr [rbp-0x68], ecx
add eax, edx
mov r9d, edx
mov r11d, eax
cmp r11d, r9d
jge SHORT G_M4429_IG45
- ;; size=68 bbWeight=4 PerfScore 50.00
+ ;; size=67 bbWeight=4 PerfScore 50.00
G_M4429_IG44:
- mov dword ptr [rbp-0x84], edx
+ mov dword ptr [rbp-0x6C], edx
mov dword ptr [rbp-0x2C], eax
- mov dword ptr [rbp-0x88], eax
+ mov dword ptr [rbp-0x70], eax
mov eax, dword ptr [rbp-0x2C]
- mov r9d, dword ptr [rbp-0x88]
- mov r11d, dword ptr [rbp-0x84]
- ;; size=32 bbWeight=2 PerfScore 12.00
+ mov r9d, dword ptr [rbp-0x70]
+ mov r11d, dword ptr [rbp-0x6C]
+ ;; size=20 bbWeight=2 PerfScore 12.00
G_M4429_IG45:
cmp dword ptr [rbx+0x58], 0
mov dword ptr [rbp-0x2C], eax
mov dword ptr [rbp-0x44], esi
jne SHORT G_M4429_IG47
;; size=12 bbWeight=4 PerfScore 24.00
G_M4429_IG46:
- mov dword ptr [rbp-0x88], r9d
- mov dword ptr [rbp-0x84], r11d
+ mov dword ptr [rbp-0x70], r9d
+ mov dword ptr [rbp-0x6C], r11d
mov rdi, rbx
mov rdx, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
call [rdx]System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
- mov r9d, dword ptr [rbp-0x88]
- mov r11d, dword ptr [rbp-0x84]
- ;; size=43 bbWeight=2 PerfScore 15.00
+ mov r9d, dword ptr [rbp-0x70]
+ mov r11d, dword ptr [rbp-0x6C]
+ ;; size=31 bbWeight=2 PerfScore 15.00
G_M4429_IG47:
mov rdi, gword ptr [rbx+0x20]
mov edx, dword ptr [rbx+0x58]
dec edx
mov dword ptr [rbx+0x58], edx
cmp edx, dword ptr [rdi+0x08]
jae G_M4429_IG64
mov dword ptr [rdi+4*rdx+0x10], 4
sub r11d, r9d
mov ecx, r11d
mov rdi, gword ptr [rbx+0x28]
mov edx, r9d
mov esi, 4
mov r9, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Match:AddMatch(int,int,int):this
cmp dword ptr [rdi], edi
call [r9]System.Text.RegularExpressions.Match:AddMatch(int,int,int):this
- cmp dword ptr [rbp-0x80], 0
+ cmp dword ptr [rbp-0x68], 0
mov esi, dword ptr [rbp-0x44]
mov r10d, dword ptr [rbp-0x40]
je G_M4429_IG19
mov eax, dword ptr [rbp-0x2C]
- mov rdi, bword ptr [rbp-0xD0]
+ mov rdi, bword ptr [rbp-0x90]
cmp word ptr [rdi], 91
jne G_M4429_IG19
inc eax
cmp eax, r15d
mov dword ptr [rbp-0x44], esi
ja G_M4429_IG65
mov edi, eax
lea r9, bword ptr [r14+2*rdi]
- mov r8d, r15d
- sub r8d, eax
- mov rcx, r9
+ mov ecx, r15d
+ sub ecx, eax
+ mov r8, r9
mov dword ptr [rbp-0x3C], eax
+ mov bword ptr [rbp-0xA0], r8
+ mov rdi, r8
+ mov dword ptr [rbp-0x80], ecx
+ mov edx, ecx
mov esi, 43
- mov bword ptr [rbp-0xE0], rcx
- mov rdi, rcx
- mov dword ptr [rbp-0x98], r8d
- mov edx, r8d
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
test eax, eax
jge SHORT G_M4429_IG49
- ;; size=172 bbWeight=4 PerfScore 171.00
+ ;; size=166 bbWeight=4 PerfScore 171.00
G_M4429_IG48:
- mov ecx, dword ptr [rbp-0x98]
- mov eax, ecx
- mov dword ptr [rbp-0x98], ecx
- ;; size=14 bbWeight=2 PerfScore 4.50
+ mov edi, dword ptr [rbp-0x80]
+ mov eax, edi
+ mov dword ptr [rbp-0x80], edi
+ ;; size=8 bbWeight=2 PerfScore 4.50
G_M4429_IG49:
test eax, eax
mov esi, dword ptr [rbp-0x44]
mov r10d, dword ptr [rbp-0x40]
je G_M4429_IG19
- mov ecx, dword ptr [rbp-0x98]
- mov edx, dword ptr [rbp-0x3C]
- mov r9, bword ptr [rbp-0xE0]
- cmp eax, ecx
+ mov ecx, dword ptr [rbp-0x3C]
+ mov edi, dword ptr [rbp-0x80]
+ mov r9, bword ptr [rbp-0xA0]
+ cmp eax, edi
ja G_M4429_IG65
- mov edi, eax
- lea r8, bword ptr [r9+2*rdi]
- mov bword ptr [rbp-0xD8], r8
- sub ecx, eax
- mov dword ptr [rbp-0x8C], ecx
- add eax, edx
- mov r9d, edx
+ mov edx, eax
+ lea rdx, bword ptr [r9+2*rdx]
+ mov bword ptr [rbp-0x98], rdx
+ mov r8d, edi
+ sub r8d, eax
+ mov dword ptr [rbp-0x74], r8d
+ add eax, ecx
+ mov r9d, ecx
mov r11d, eax
cmp r11d, r9d
jge SHORT G_M4429_IG51
- ;; size=73 bbWeight=4 PerfScore 50.00
+ ;; size=72 bbWeight=4 PerfScore 51.00
G_M4429_IG50:
- mov dword ptr [rbp-0x90], edx
+ mov dword ptr [rbp-0x78], ecx
mov dword ptr [rbp-0x2C], eax
- mov dword ptr [rbp-0x94], eax
+ mov dword ptr [rbp-0x7C], eax
mov eax, dword ptr [rbp-0x2C]
- mov r9d, dword ptr [rbp-0x94]
- mov r11d, dword ptr [rbp-0x90]
- ;; size=32 bbWeight=2 PerfScore 12.00
+ mov r9d, dword ptr [rbp-0x7C]
+ mov r11d, dword ptr [rbp-0x78]
+ ;; size=20 bbWeight=2 PerfScore 12.00
G_M4429_IG51:
cmp dword ptr [rbx+0x58], 0
mov dword ptr [rbp-0x2C], eax
mov dword ptr [rbp-0x44], esi
jne SHORT G_M4429_IG53
;; size=12 bbWeight=4 PerfScore 24.00
G_M4429_IG52:
- mov dword ptr [rbp-0x94], r9d
- mov dword ptr [rbp-0x90], r11d
+ mov dword ptr [rbp-0x7C], r9d
+ mov dword ptr [rbp-0x78], r11d
mov rdi, rbx
- mov rdx, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
- call [rdx]System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
- mov r9d, dword ptr [rbp-0x94]
- mov r11d, dword ptr [rbp-0x90]
- ;; size=43 bbWeight=2 PerfScore 15.00
+ mov rcx, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
+ call [rcx]System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
+ mov r9d, dword ptr [rbp-0x7C]
+ mov r11d, dword ptr [rbp-0x78]
+ ;; size=31 bbWeight=2 PerfScore 15.00
G_M4429_IG53:
- mov rdi, gword ptr [rbx+0x20]
- mov edx, dword ptr [rbx+0x58]
- dec edx
- mov dword ptr [rbx+0x58], edx
- cmp edx, dword ptr [rdi+0x08]
+ mov rcx, gword ptr [rbx+0x20]
+ mov edi, dword ptr [rbx+0x58]
+ dec edi
+ mov dword ptr [rbx+0x58], edi
+ cmp edi, dword ptr [rcx+0x08]
jae G_M4429_IG64
- mov dword ptr [rdi+4*rdx+0x10], 5
- sub r11d, r9d
+ mov dword ptr [rcx+4*rdi+0x10], 5
mov ecx, r11d
+ sub ecx, r9d
mov rdi, gword ptr [rbx+0x28]
mov edx, r9d
mov esi, 5
mov r9, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Match:AddMatch(int,int,int):this
cmp dword ptr [rdi], edi
call [r9]System.Text.RegularExpressions.Match:AddMatch(int,int,int):this
- cmp dword ptr [rbp-0x8C], 3
+ cmp dword ptr [rbp-0x74], 3
mov esi, dword ptr [rbp-0x44]
mov r10d, dword ptr [rbp-0x40]
jl G_M4429_IG19
- ;; size=82 bbWeight=4 PerfScore 98.00
+ ;; size=79 bbWeight=4 PerfScore 98.00
G_M4429_IG54:
mov eax, dword ptr [rbp-0x2C]
- mov rdi, bword ptr [rbp-0xD8]
+ mov rdi, bword ptr [rbp-0x98]
mov ecx, dword ptr [rdi]
xor ecx, 0xD1FFAB1E
mov edi, dword ptr [rdi+0x02]
xor edi, 0xD1FFAB1E
or edi, ecx
jne G_M4429_IG19
;; size=35 bbWeight=2 PerfScore 15.50
G_M4429_IG55:
add eax, 3
mov dword ptr [rbx+0x4C], eax
mov r15d, r13d
mov r14d, eax
cmp r14d, r15d
jge SHORT G_M4429_IG56
mov r14d, r13d
mov r15d, eax
;; size=23 bbWeight=0.50 PerfScore 1.75
G_M4429_IG56:
cmp dword ptr [rbx+0x58], 0
jne SHORT G_M4429_IG57
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
call [rax]System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
;; size=21 bbWeight=0.50 PerfScore 3.75
G_M4429_IG57:
mov rcx, gword ptr [rbx+0x20]
mov edi, dword ptr [rbx+0x58]
dec edi
mov dword ptr [rbx+0x58], edi
cmp edi, dword ptr [rcx+0x08]
jae G_M4429_IG64
xor edx, edx
mov dword ptr [rcx+4*rdi+0x10], edx
mov ecx, r14d
sub ecx, r15d
mov rdi, gword ptr [rbx+0x28]
mov edx, r15d
xor esi, esi
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
mov eax, 1
;; size=61 bbWeight=0.50 PerfScore 10.00
G_M4429_IG58:
vzeroupper
- add rsp, 184
+ add rsp, 120
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=21 bbWeight=0.50 PerfScore 2.62
+ ;; size=18 bbWeight=0.50 PerfScore 2.62
G_M4429_IG59:
mov rax, gword ptr [rbx+0x20]
jmp SHORT G_M4429_IG61
;; size=6 bbWeight=0.50 PerfScore 2.00
G_M4429_IG60:
mov rcx, rax
mov edx, dword ptr [rbx+0x58]
lea edi, [rdx+0x01]
mov dword ptr [rbx+0x58], edi
cmp edx, dword ptr [rcx+0x08]
jae SHORT G_M4429_IG64
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 SHORT G_M4429_IG64
lea rcx, bword ptr [rdx+4*rcx+0x10]
dec dword ptr [rcx]
;; size=41 bbWeight=2 PerfScore 43.50
G_M4429_IG61:
mov ecx, dword ptr [rax+0x08]
sub ecx, dword ptr [rbx+0x58]
test ecx, ecx
jg SHORT G_M4429_IG60
;; size=10 bbWeight=4 PerfScore 25.00
G_M4429_IG62:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M4429_IG63:
vzeroupper
- add rsp, 184
+ add rsp, 120
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=21 bbWeight=0.50 PerfScore 2.62
+ ;; size=18 bbWeight=0.50 PerfScore 2.62
G_M4429_IG64:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
G_M4429_IG65:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
RWD00 dq 00750073006E0045h, 0072004100650072h, 0049007900610072h, 007800650064006Eh
RWD32 dq 007200750073006Eh, 0072007200410065h, 006E004900790061h, 0028007800650064h
-; Total bytes of code 2546, prolog size 34, PerfScore 2059.65, instruction count 673, allocated bytes for code 2546 (MethodHash=72caeeb2) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F17570F3C63F49E0EDC8B9EB3FA2CFADF55F73E11043596DBD6C1553B39463343__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
+; Total bytes of code 2477, prolog size 31, PerfScore 2063.77, instruction count 678, allocated bytes for code 2477 (MethodHash=72caeeb2) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F17570F3C63F49E0EDC8B9EB3FA2CFADF55F73E11043596DBD6C1553B39463343__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
-68 (-19.26 % of base) - System.Net.HttpValidationHelpers:CheckBadHeaderNameChars(System.String):System.String
; Assembly listing for method System.Net.HttpValidationHelpers:CheckBadHeaderNameChars(System.String):System.String (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 21 single block inlinees; 6 inlinees without PGO data
+; 0 inlinees with PGO data; 23 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 9, 6 ) ref -> rbx class-hnd single-def <System.String>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T11] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
-; V03 tmp2 [V03,T12] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+; V02 tmp1 [V02,T10] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+; V03 tmp2 [V03,T11] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
;* V04 tmp3 [V04 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V05 tmp4 [V05 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V06 tmp5 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V07 tmp6 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V08 tmp7 [V08,T06] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
-; V09 tmp8 [V09,T07] ( 2, 2 ) int -> rcx "Inlining Arg"
-; V10 tmp9 [V10,T08] ( 2, 2 ) int -> rax "Inline return value spill temp"
-; V11 tmp10 [V11 ] ( 2, 4 ) ushort -> [rbp-0x14] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V12 tmp11 [V12 ] ( 2, 4 ) ushort -> [rbp-0x18] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V08 tmp7 [V08,T03] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
+; V09 tmp8 [V09,T04] ( 2, 2 ) int -> rcx "Inlining Arg"
+; V10 tmp9 [V10,T05] ( 2, 2 ) int -> rax "Inline return value spill temp"
+;* V11 tmp10 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V12 tmp11 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V13 tmp12 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V14 tmp13 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V15 tmp14 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V16 tmp15 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V17 tmp16 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V18 tmp17 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V16 tmp15 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V17 tmp16 [V17 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V18 tmp17 [V18 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V19 tmp18 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V20 tmp19 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V21 tmp20 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V22 tmp21 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V23 tmp22 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V24 tmp23 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V25 tmp24 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V26 tmp25 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V27 tmp26 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V28 tmp27 [V28 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V29 tmp28 [V29 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V30 tmp29 [V30 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V31 tmp30 [V31 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V32 tmp31 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V33 tmp32 [V33 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V34 tmp33 [V34,T01] ( 6, 8 ) ushort -> rsi "Inlining Arg"
-; V35 tmp34 [V35,T02] ( 5, 6 ) ushort -> rdx "Inlining Arg"
-;* V36 tmp35 [V36 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V37 tmp36 [V37,T05] ( 3, 2 ) int -> rax "Inline return value spill temp"
-;* V38 tmp37 [V38 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V39 tmp38 [V39 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V22 tmp21 [V22 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V24 tmp23 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V25 tmp24 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V26 tmp25 [V26 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V27 tmp26 [V27 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V28 tmp27 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V29 tmp28 [V29 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V30 tmp29 [V30 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V31 tmp30 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V32 tmp31 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V33 tmp32 [V33 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V34 tmp33 [V34 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V35 tmp34 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V36 tmp35 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V37 tmp36 [V37 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V38 tmp37 [V38 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V39 tmp38 [V39,T06] ( 2, 2 ) int -> rax "Inline return value spill temp"
;* V40 tmp39 [V40 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
-;* V41 tmp40 [V41 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V41 tmp40 [V41,T09] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V42 tmp41 [V42 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V43 tmp42 [V43 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V43 tmp42 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V44 tmp43 [V44 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V45 tmp44 [V45 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V46 tmp45 [V46 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V47 tmp46 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V48 tmp47 [V48 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V49 tmp48 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V50 tmp49 [V50 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V51 tmp50 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V52 tmp51 [V52 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V53 tmp52 [V53 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V54 tmp53 [V54 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V45 tmp44 [V45 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V46 tmp45 [V46 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V47 tmp46 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V48 tmp47 [V48 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V49 tmp48 [V49 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V50 tmp49 [V50 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V51 tmp50 [V51 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V52 tmp51 [V52 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V53 tmp52 [V53 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V54 tmp53 [V54 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V55 tmp54 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V56 tmp55 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V57 tmp56 [V57 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V58 tmp57 [V58 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V59 tmp58 [V59 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V60 tmp59 [V60 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V61 tmp60 [V61 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V62 tmp61 [V62 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V63 tmp62 [V63 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V64 tmp63 [V64 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V65 tmp64 [V65 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
-; V66 tmp65 [V66,T03] ( 4, 2 ) byref -> rdi "field V05._reference (fldOffset=0x0)" P-INDEP
-; V67 tmp66 [V67,T04] ( 4, 2 ) int -> rcx "field V05._length (fldOffset=0x8)" P-INDEP
-; V68 tmp67 [V68,T09] ( 2, 1 ) byref -> rdi single-def "field V06._reference (fldOffset=0x0)" P-INDEP
-; V69 tmp68 [V69,T10] ( 2, 1 ) int -> rcx "field V06._length (fldOffset=0x8)" P-INDEP
-;* V70 tmp69 [V70 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V71 tmp70 [V71 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
-;* V72 tmp71 [V72 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
-;* V73 tmp72 [V73 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
-;* V74 tmp73 [V74 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
-;* V75 tmp74 [V75 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
-;* V76 tmp75 [V76 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
-;* V77 tmp76 [V77 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
-;* V78 tmp77 [V78 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
-;* V79 tmp78 [V79 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
-;* V80 tmp79 [V80 ] ( 0, 0 ) byref -> zero-ref "field V55._reference (fldOffset=0x0)" P-INDEP
-;* V81 tmp80 [V81 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
-;* V82 tmp81 [V82 ] ( 0, 0 ) byref -> zero-ref "field V63._reference (fldOffset=0x0)" P-INDEP
-;* V83 tmp82 [V83 ] ( 0, 0 ) int -> zero-ref "field V63._length (fldOffset=0x8)" P-INDEP
-; V84 tmp83 [V84,T13] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
-; V85 tmp84 [V85,T14] ( 2, 0 ) ref -> rbx single-def "argument with side effect"
-; V86 tmp85 [V86,T15] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V87 tmp86 [V87,T16] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
-; V88 tmp87 [V88,T17] ( 2, 0 ) ref -> rbx single-def "argument with side effect"
-; V89 tmp88 [V89,T18] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+;* V56 tmp55 [V56 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V57 tmp56 [V57 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V58 tmp57 [V58 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V59 tmp58 [V59 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V60 tmp59 [V60 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
+;* V61 tmp60 [V61 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V62 tmp61 [V62 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V63 tmp62 [V63 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V64 tmp63 [V64 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V65 tmp64 [V65 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
+;* V66 tmp65 [V66 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
+; V67 tmp66 [V67,T01] ( 3, 2 ) byref -> rdi "field V05._reference (fldOffset=0x0)" P-INDEP
+; V68 tmp67 [V68,T02] ( 3, 2 ) int -> rcx "field V05._length (fldOffset=0x8)" P-INDEP
+; V69 tmp68 [V69,T07] ( 2, 1 ) byref -> rdi single-def "field V06._reference (fldOffset=0x0)" P-INDEP
+; V70 tmp69 [V70,T08] ( 2, 1 ) int -> rcx "field V06._length (fldOffset=0x8)" P-INDEP
+;* V71 tmp70 [V71 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V72 tmp71 [V72 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
+;* V73 tmp72 [V73 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
+;* V74 tmp73 [V74 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
+;* V75 tmp74 [V75 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP
+;* V76 tmp75 [V76 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
+;* V77 tmp76 [V77 ] ( 0, 0 ) byref -> zero-ref single-def "field V36._reference (fldOffset=0x0)" P-INDEP
+;* V78 tmp77 [V78 ] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
+;* V79 tmp78 [V79 ] ( 0, 0 ) byref -> zero-ref "field V43._reference (fldOffset=0x0)" P-INDEP
+;* V80 tmp79 [V80 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
+;* V81 tmp80 [V81 ] ( 0, 0 ) byref -> zero-ref "field V49._reference (fldOffset=0x0)" P-INDEP
+;* V82 tmp81 [V82 ] ( 0, 0 ) int -> zero-ref "field V49._length (fldOffset=0x8)" P-INDEP
+;* V83 tmp82 [V83 ] ( 0, 0 ) byref -> zero-ref "field V55._reference (fldOffset=0x0)" P-INDEP
+;* V84 tmp83 [V84 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
+; V85 tmp84 [V85,T12] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
+; V86 tmp85 [V86,T13] ( 2, 0 ) ref -> rbx single-def "argument with side effect"
+; V87 tmp86 [V87,T14] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V88 tmp87 [V88,T15] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
+; V89 tmp88 [V89,T16] ( 2, 0 ) ref -> rbx single-def "argument with side effect"
+; V90 tmp89 [V90,T17] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;
-; Lcl frame size = 16
+; Lcl frame size = 0
G_M27797_IG01:
push rbp
push r15
push rbx
- sub rsp, 16
- lea rbp, [rsp+0x20]
+ lea rbp, [rsp+0x10]
mov rbx, rdi
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=12 bbWeight=1 PerfScore 3.75
G_M27797_IG02:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.HttpValidationHelpers:IsInvalidMethodOrHeaderString(System.String):ubyte
call [rax]System.Net.HttpValidationHelpers:IsInvalidMethodOrHeaderString(System.String):ubyte
test eax, eax
- jne SHORT G_M27797_IG10
+ jne SHORT G_M27797_IG07
test rbx, rbx
jne SHORT G_M27797_IG04
;; size=24 bbWeight=1 PerfScore 6.00
G_M27797_IG03:
xor rdi, rdi
xor ecx, ecx
jmp SHORT G_M27797_IG05
;; size=6 bbWeight=0.50 PerfScore 1.25
G_M27797_IG04:
lea rdi, bword ptr [rbx+0x0C]
mov ecx, dword ptr [rbx+0x08]
;; size=7 bbWeight=0.50 PerfScore 1.25
G_M27797_IG05:
- mov dword ptr [rbp-0x14], 32
- mov dword ptr [rbp-0x18], 126
- movzx rsi, word ptr [rbp-0x14]
- movzx rdx, word ptr [rbp-0x18]
- lea eax, [rsi-0x01]
- cmp eax, 254
- jae SHORT G_M27797_IG07
- ;; size=32 bbWeight=1 PerfScore 5.75
-G_M27797_IG06:
- lea eax, [rdx-0x01]
- cmp eax, 254
- jae SHORT G_M27797_IG07
- cmp edx, esi
- jl SHORT G_M27797_IG07
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
+ mov edx, 94
+ mov esi, 32
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- jmp SHORT G_M27797_IG08
- ;; size=38 bbWeight=0.50 PerfScore 4.50
-G_M27797_IG07:
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M27797_IG08:
test eax, eax
- jge SHORT G_M27797_IG11
+ jge SHORT G_M27797_IG08
mov rax, rbx
- ;; size=7 bbWeight=1 PerfScore 1.50
-G_M27797_IG09:
- add rsp, 16
+ ;; size=29 bbWeight=1 PerfScore 5.25
+G_M27797_IG06:
pop rbx
pop r15
pop rbp
ret
- ;; size=9 bbWeight=1 PerfScore 2.75
-G_M27797_IG10:
+ ;; size=5 bbWeight=1 PerfScore 2.50
+G_M27797_IG07:
mov rdi, 0xD1FFAB1E ; System.ArgumentException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_net_WebHeaderInvalidHeaderChars():System.String
call [rax]System.SR:get_net_WebHeaderInvalidHeaderChars():System.String
mov rdi, rax
mov rsi, rbx
mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object):System.String
call [rax]System.SR:Format(System.String,System.Object):System.String
mov rbx, rax
mov edi, 391
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdx, rax
mov rsi, rbx
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this
call [rax]System.ArgumentException:.ctor(System.String,System.String):this
mov rdi, r15
call CORINFO_HELP_THROW
int3
;; size=101 bbWeight=0 PerfScore 0.00
-G_M27797_IG11:
+G_M27797_IG08:
mov rdi, 0xD1FFAB1E ; System.ArgumentException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_net_WebHeaderInvalidHeaderChars():System.String
call [rax]System.SR:get_net_WebHeaderInvalidHeaderChars():System.String
mov rdi, rax
mov rsi, rbx
mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object):System.String
call [rax]System.SR:Format(System.String,System.Object):System.String
mov rbx, rax
mov edi, 391
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdx, rax
mov rsi, rbx
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this
call [rax]System.ArgumentException:.ctor(System.String,System.String):this
mov rdi, r15
call CORINFO_HELP_THROW
int3
;; size=101 bbWeight=0 PerfScore 0.00
-; Total bytes of code 353, prolog size 13, PerfScore 28.62, instruction count 88, allocated bytes for code 353 (MethodHash=8e90936a) for method System.Net.HttpValidationHelpers:CheckBadHeaderNameChars(System.String):System.String (FullOpts)
+; Total bytes of code 285, prolog size 9, PerfScore 20.00, instruction count 70, allocated bytes for code 285 (MethodHash=8e90936a) for method System.Net.HttpValidationHelpers:CheckBadHeaderNameChars(System.String):System.String (FullOpts)
-68 (-8.97 % of base) - System.Text.RegularExpressions.Generated.F17570F3C63F49E0EDC8B9EB3FA2CFADF55F73E11043596DBD6C1553B39463343__ParamsReadRegex_11+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this
; Assembly listing for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F17570F3C63F49E0EDC8B9EB3FA2CFADF55F73E11043596DBD6C1553B39463343__ParamsReadRegex_11+RunnerFactory+Runner: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; 33 single block inlinees; 15 inlinees without PGO data
+; 0 inlinees with PGO data; 33 single block inlinees; 21 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 31, 40.62) ref -> rbx this class-hnd single-def <System.Text.RegularExpressions.Generated.<RegexGenerator_g>F17570F3C63F49E0EDC8B9EB3FA2CFADF55F73E11043596DBD6C1553B39463343__ParamsReadRegex_11+RunnerFactory+Runner>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
; V02 loc0 [V02,T10] ( 15, 8.50) int -> [rbp-0x2C]
-; V03 loc1 [V03,T22] ( 7, 5.50) int -> r15
-; V04 loc2 [V04,T38] ( 4, 2 ) int -> r14
+; V03 loc1 [V03,T21] ( 7, 5.50) int -> r15
+; V04 loc2 [V04,T35] ( 4, 2 ) int -> r14
;* V05 loc3 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ushort]>
-; V06 loc4 [V06,T26] ( 9, 4.50) int -> rax
+; V06 loc4 [V06,T24] ( 9, 4.50) int -> rax
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
-; V09 tmp2 [V09,T41] ( 2, 2 ) int -> rax "spilling unroll qmark"
+; V09 tmp2 [V09,T38] ( 2, 2 ) int -> rax "spilling unroll qmark"
;* V10 tmp3 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V11 tmp4 [V11,T32] ( 3, 4 ) byref -> rax single-def "Inlining Arg"
-; V12 tmp5 [V12,T30] ( 2, 4 ) int -> rdi "Inlining Arg"
-; V13 tmp6 [V13,T19] ( 3, 6 ) int -> rdx "Inline stloc first use temp"
+; V11 tmp4 [V11,T29] ( 3, 4 ) byref -> rax single-def "Inlining Arg"
+; V12 tmp5 [V12,T28] ( 2, 4 ) int -> rdi "Inlining Arg"
+; V13 tmp6 [V13,T18] ( 3, 6 ) int -> rdx "Inline stloc first use temp"
; V14 tmp7 [V14,T11] ( 4, 8 ) int -> rdx "Inline stloc first use temp"
; V15 tmp8 [V15,T01] ( 3, 12 ) ref -> rsi class-hnd "impAppendStmt" <int[]>
;* V16 tmp9 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
; V17 tmp10 [V17,T02] ( 3, 12 ) byref -> rdx "dup spill"
;* V18 tmp11 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V19 tmp12 [V19,T33] ( 2, 2 ) byref -> r13 single-def "Inlining Arg"
-; V20 tmp13 [V20,T36] ( 2, 2 ) int -> r12 "Inlining Arg"
-; V21 tmp14 [V21,T45] ( 2, 1 ) int -> rax "Inline return value spill temp"
-; V22 tmp15 [V22 ] ( 2, 2 ) ushort -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V23 tmp16 [V23 ] ( 2, 2 ) ushort -> [rbp-0x34] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V19 tmp12 [V19,T30] ( 2, 2 ) byref -> r13 single-def "Inlining Arg"
+; V20 tmp13 [V20,T33] ( 2, 2 ) int -> r12 "Inlining Arg"
+; V21 tmp14 [V21,T42] ( 2, 1 ) int -> rax "Inline return value spill temp"
+;* V22 tmp15 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp16 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V24 tmp17 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V27 tmp20 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V28 tmp21 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V29 tmp22 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V27 tmp20 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V28 tmp21 [V28 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V29 tmp22 [V29 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V30 tmp23 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V31 tmp24 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V32 tmp25 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V33 tmp26 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V34 tmp27 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V35 tmp28 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V36 tmp29 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V37 tmp30 [V37 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V38 tmp31 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V39 tmp32 [V39 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V40 tmp33 [V40 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V41 tmp34 [V41 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V42 tmp35 [V42 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V43 tmp36 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V44 tmp37 [V44 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V45 tmp38 [V45,T17] ( 6, 6 ) ushort -> rsi "Inlining Arg"
-; V46 tmp39 [V46,T23] ( 5, 5 ) ushort -> rdx "Inlining Arg"
-;* V47 tmp40 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V48 tmp41 [V48,T44] ( 3, 1.50) int -> rax "Inline return value spill temp"
-;* V49 tmp42 [V49 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V50 tmp43 [V50 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V33 tmp26 [V33 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V34 tmp27 [V34 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V35 tmp28 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V36 tmp29 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V37 tmp30 [V37 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V38 tmp31 [V38 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V39 tmp32 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V40 tmp33 [V40 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V41 tmp34 [V41 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V42 tmp35 [V42 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V43 tmp36 [V43 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V44 tmp37 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V45 tmp38 [V45 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V46 tmp39 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V47 tmp40 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V48 tmp41 [V48 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V49 tmp42 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V50 tmp43 [V50,T43] ( 2, 1 ) int -> rax "Inline return value spill temp"
;* V51 tmp44 [V51 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
-;* V52 tmp45 [V52 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V52 tmp45 [V52,T45] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V53 tmp46 [V53 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V54 tmp47 [V54 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V54 tmp47 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V55 tmp48 [V55 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V56 tmp49 [V56 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V57 tmp50 [V57 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V58 tmp51 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V59 tmp52 [V59 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V60 tmp53 [V60 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V61 tmp54 [V61 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V62 tmp55 [V62 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V63 tmp56 [V63 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V64 tmp57 [V64 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V65 tmp58 [V65 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V56 tmp49 [V56 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V57 tmp50 [V57 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V58 tmp51 [V58 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V59 tmp52 [V59 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V60 tmp53 [V60 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V61 tmp54 [V61 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V62 tmp55 [V62 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V63 tmp56 [V63 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V64 tmp57 [V64 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V65 tmp58 [V65 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V66 tmp59 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V67 tmp60 [V67 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V68 tmp61 [V68 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V69 tmp62 [V69 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V70 tmp63 [V70 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V71 tmp64 [V71 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V72 tmp65 [V72 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V73 tmp66 [V73 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V74 tmp67 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V75 tmp68 [V75,T20] ( 3, 6 ) int -> rdi "Inline stloc first use temp"
-; V76 tmp69 [V76,T12] ( 4, 8 ) int -> rcx "Inline stloc first use temp"
-; V77 tmp70 [V77,T03] ( 3, 12 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
-;* V78 tmp71 [V78 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V79 tmp72 [V79,T04] ( 3, 12 ) byref -> rdi "dup spill"
-;* V80 tmp73 [V80 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V81 tmp74 [V81,T42] ( 2, 2 ) byref -> r13 single-def "Inlining Arg"
-; V82 tmp75 [V82,T43] ( 2, 2 ) int -> r12 "Inlining Arg"
-; V83 tmp76 [V83,T28] ( 4, 4 ) int -> [rbp-0x38] "Inlining Arg"
-; V84 tmp77 [V84,T24] ( 5, 5 ) int -> [rbp-0x3C] "Inlining Arg"
-;* V85 tmp78 [V85 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V86 tmp79 [V86,T39] ( 4, 2 ) int -> rsi "Inline stloc first use temp"
-; V87 tmp80 [V87,T34] ( 3, 3 ) ref -> rdi class-hnd single-def "impAppendStmt" <int[]>
-; V88 tmp81 [V88,T21] ( 3, 6 ) int -> rax "Inline stloc first use temp"
-; V89 tmp82 [V89,T13] ( 4, 8 ) int -> rcx "Inline stloc first use temp"
-; V90 tmp83 [V90,T05] ( 3, 12 ) ref -> rax class-hnd "impAppendStmt" <int[]>
-;* V91 tmp84 [V91 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V92 tmp85 [V92,T06] ( 3, 12 ) byref -> rax "dup spill"
-; V93 tmp86 [V93,T29] ( 4, 4 ) int -> r12 "Inlining Arg"
-; V94 tmp87 [V94,T25] ( 5, 5 ) int -> r13 "Inlining Arg"
-;* V95 tmp88 [V95 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V96 tmp89 [V96,T40] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
-; V97 tmp90 [V97,T35] ( 3, 3 ) ref -> rcx class-hnd single-def "impAppendStmt" <int[]>
-; V98 tmp91 [V98,T27] ( 3, 2.50) byref -> rsi single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V99 tmp92 [V99,T18] ( 5, 4 ) int -> rdx single-def "field V01._length (fldOffset=0x8)" P-INDEP
-; V100 tmp93 [V100,T37] ( 4, 2 ) byref -> r13 "field V05._reference (fldOffset=0x0)" P-INDEP
-; V101 tmp94 [V101,T31] ( 6, 3 ) int -> r12 "field V05._length (fldOffset=0x8)" P-INDEP
-;* V102 tmp95 [V102 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP
-;* V103 tmp96 [V103 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
-;* V104 tmp97 [V104 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;* V105 tmp98 [V105 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
-;* V106 tmp99 [V106,T46] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
-;* V107 tmp100 [V107,T47] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
-;* V108 tmp101 [V108 ] ( 0, 0 ) byref -> zero-ref single-def "field V29._reference (fldOffset=0x0)" P-INDEP
-;* V109 tmp102 [V109 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP
-;* V110 tmp103 [V110 ] ( 0, 0 ) byref -> zero-ref "field V35._reference (fldOffset=0x0)" P-INDEP
-;* V111 tmp104 [V111 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
-;* V112 tmp105 [V112 ] ( 0, 0 ) byref -> zero-ref single-def "field V43._reference (fldOffset=0x0)" P-INDEP
-;* V113 tmp106 [V113 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
-;* V114 tmp107 [V114 ] ( 0, 0 ) byref -> zero-ref "field V58._reference (fldOffset=0x0)" P-INDEP
-;* V115 tmp108 [V115 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP
-;* V116 tmp109 [V116 ] ( 0, 0 ) byref -> zero-ref "field V66._reference (fldOffset=0x0)" P-INDEP
-;* V117 tmp110 [V117 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
-;* V118 tmp111 [V118 ] ( 0, 0 ) byref -> zero-ref "field V74._reference (fldOffset=0x0)" P-INDEP
-;* V119 tmp112 [V119 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP
-;* V120 tmp113 [V120 ] ( 0, 0 ) byref -> zero-ref single-def "field V80._reference (fldOffset=0x0)" P-INDEP
-;* V121 tmp114 [V121 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-INDEP
-; V122 tmp115 [V122,T07] ( 3, 12 ) ref -> rcx "arr expr"
-; V123 tmp116 [V123,T08] ( 3, 12 ) ref -> rsi "arr expr"
-; V124 tmp117 [V124,T09] ( 3, 12 ) ref -> rcx "arr expr"
-; V125 cse0 [V125,T16] ( 3, 6.25) ref -> rax hoist "CSE #03: moderate"
-; V126 cse1 [V126,T15] ( 3, 6.38) ref -> rax hoist "CSE #01: moderate"
-; V127 cse2 [V127,T14] ( 3, 6.50) ref -> rdi hoist "CSE #05: moderate"
-; V128 rat0 [V128,T48] ( 3, 3 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+; V67 tmp60 [V67,T19] ( 3, 6 ) int -> rdi "Inline stloc first use temp"
+; V68 tmp61 [V68,T12] ( 4, 8 ) int -> rcx "Inline stloc first use temp"
+; V69 tmp62 [V69,T03] ( 3, 12 ) ref -> rdi class-hnd "impAppendStmt" <int[]>
+;* V70 tmp63 [V70 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
+; V71 tmp64 [V71,T04] ( 3, 12 ) byref -> rdi "dup spill"
+;* V72 tmp65 [V72 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+; V73 tmp66 [V73,T39] ( 2, 2 ) byref -> r13 single-def "Inlining Arg"
+; V74 tmp67 [V74,T40] ( 2, 2 ) int -> r12 "Inlining Arg"
+; V75 tmp68 [V75,T26] ( 4, 4 ) int -> [rbp-0x30] "Inlining Arg"
+; V76 tmp69 [V76,T22] ( 5, 5 ) int -> [rbp-0x34] "Inlining Arg"
+;* V77 tmp70 [V77 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V78 tmp71 [V78,T36] ( 4, 2 ) int -> rsi "Inline stloc first use temp"
+; V79 tmp72 [V79,T31] ( 3, 3 ) ref -> rdi class-hnd single-def "impAppendStmt" <int[]>
+; V80 tmp73 [V80,T20] ( 3, 6 ) int -> rax "Inline stloc first use temp"
+; V81 tmp74 [V81,T13] ( 4, 8 ) int -> rcx "Inline stloc first use temp"
+; V82 tmp75 [V82,T05] ( 3, 12 ) ref -> rax class-hnd "impAppendStmt" <int[]>
+;* V83 tmp76 [V83 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
+; V84 tmp77 [V84,T06] ( 3, 12 ) byref -> rax "dup spill"
+; V85 tmp78 [V85,T27] ( 4, 4 ) int -> r12 "Inlining Arg"
+; V86 tmp79 [V86,T23] ( 5, 5 ) int -> r13 "Inlining Arg"
+;* V87 tmp80 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V88 tmp81 [V88,T37] ( 4, 2 ) int -> rdi "Inline stloc first use temp"
+; V89 tmp82 [V89,T32] ( 3, 3 ) ref -> rcx class-hnd single-def "impAppendStmt" <int[]>
+; V90 tmp83 [V90,T25] ( 3, 2.50) byref -> rsi single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V91 tmp84 [V91,T17] ( 5, 4 ) int -> rdx single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V92 tmp85 [V92,T41] ( 3, 1.50) byref -> r13 "field V05._reference (fldOffset=0x0)" P-INDEP
+; V93 tmp86 [V93,T34] ( 5, 2.50) int -> r12 "field V05._length (fldOffset=0x8)" P-INDEP
+;* V94 tmp87 [V94 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP
+;* V95 tmp88 [V95 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
+;* V96 tmp89 [V96 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP
+;* V97 tmp90 [V97 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
+;* V98 tmp91 [V98,T44] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
+;* V99 tmp92 [V99,T46] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
+;* V100 tmp93 [V100 ] ( 0, 0 ) byref -> zero-ref single-def "field V27._reference (fldOffset=0x0)" P-INDEP
+;* V101 tmp94 [V101 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
+;* V102 tmp95 [V102 ] ( 0, 0 ) byref -> zero-ref "field V39._reference (fldOffset=0x0)" P-INDEP
+;* V103 tmp96 [V103 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
+;* V104 tmp97 [V104 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
+;* V105 tmp98 [V105 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
+;* V106 tmp99 [V106 ] ( 0, 0 ) byref -> zero-ref "field V54._reference (fldOffset=0x0)" P-INDEP
+;* V107 tmp100 [V107 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
+;* V108 tmp101 [V108 ] ( 0, 0 ) byref -> zero-ref "field V60._reference (fldOffset=0x0)" P-INDEP
+;* V109 tmp102 [V109 ] ( 0, 0 ) int -> zero-ref "field V60._length (fldOffset=0x8)" P-INDEP
+;* V110 tmp103 [V110 ] ( 0, 0 ) byref -> zero-ref "field V66._reference (fldOffset=0x0)" P-INDEP
+;* V111 tmp104 [V111 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
+;* V112 tmp105 [V112 ] ( 0, 0 ) byref -> zero-ref single-def "field V72._reference (fldOffset=0x0)" P-INDEP
+;* V113 tmp106 [V113 ] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-INDEP
+; V114 tmp107 [V114,T07] ( 3, 12 ) ref -> rcx "arr expr"
+; V115 tmp108 [V115,T08] ( 3, 12 ) ref -> rsi "arr expr"
+; V116 tmp109 [V116,T09] ( 3, 12 ) ref -> rcx "arr expr"
+; V117 cse0 [V117,T16] ( 3, 6.25) ref -> rax hoist "CSE #03: moderate"
+; V118 cse1 [V118,T15] ( 3, 6.38) ref -> rax hoist "CSE #01: moderate"
+; V119 cse2 [V119,T14] ( 3, 6.50) ref -> rdi hoist "CSE #05: moderate"
+; V120 rat0 [V120,T47] ( 3, 3 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 24
G_M63403_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
lea rbp, [rsp+0x40]
mov rbx, rdi
;; size=22 bbWeight=1 PerfScore 7.00
G_M63403_IG02:
mov r15d, dword ptr [rbx+0x4C]
cmp r15d, edx
- ja G_M63403_IG26
+ ja G_M63403_IG24
mov eax, r15d
lea rax, bword ptr [rsi+2*rax]
mov edi, edx
sub edi, r15d
cmp edi, 11
jl SHORT G_M63403_IG04
;; size=30 bbWeight=1 PerfScore 5.75
G_M63403_IG03:
vmovups xmm0, xmmword ptr [rax]
vpxor xmm0, xmm0, xmmword ptr [reloc @RWD00]
vmovups xmm1, xmmword ptr [rax+0x06]
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_M63403_IG09
;; size=44 bbWeight=0.50 PerfScore 8.92
G_M63403_IG04:
mov rax, gword ptr [rbx+0x20]
jmp SHORT G_M63403_IG06
;; size=6 bbWeight=0.38 PerfScore 1.50
G_M63403_IG05:
mov rsi, rax
mov edx, dword ptr [rbx+0x58]
lea edi, [rdx+0x01]
mov dword ptr [rbx+0x58], edi
cmp edx, dword ptr [rsi+0x08]
- jae G_M63403_IG25
+ jae G_M63403_IG23
mov edx, dword ptr [rsi+4*rdx+0x10]
mov rsi, gword ptr [rbx+0x28]
mov rsi, gword ptr [rsi+0x50]
cmp edx, dword ptr [rsi+0x08]
- jae G_M63403_IG25
+ jae G_M63403_IG23
lea rdx, bword ptr [rsi+4*rdx+0x10]
dec dword ptr [rdx]
;; size=49 bbWeight=2 PerfScore 43.50
G_M63403_IG06:
mov edx, dword ptr [rax+0x08]
sub edx, dword ptr [rbx+0x58]
test edx, edx
jg SHORT G_M63403_IG05
;; size=10 bbWeight=4 PerfScore 25.00
G_M63403_IG07:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M63403_IG08:
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_M63403_IG09:
lea edi, [r15+0x0B]
mov r14d, edi
cmp r14d, edx
- ja G_M63403_IG26
+ ja G_M63403_IG24
mov edi, r14d
lea r13, bword ptr [rsi+2*rdi]
sub edx, r14d
mov r12d, edx
- mov dword ptr [rbp-0x30], 48
- mov dword ptr [rbp-0x34], 57
- movzx rsi, word ptr [rbp-0x30]
- movzx rdx, word ptr [rbp-0x34]
- lea edi, [rsi-0x01]
- cmp edi, 254
- jae SHORT G_M63403_IG10
- lea edi, [rdx-0x01]
- cmp edi, 254
- jae SHORT G_M63403_IG10
- cmp edx, esi
- jl SHORT G_M63403_IG10
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
+ mov edx, 9
+ mov esi, 48
mov rdi, r13
mov ecx, r12d
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- jmp SHORT G_M63403_IG11
- ;; size=107 bbWeight=0.50 PerfScore 9.25
-G_M63403_IG10:
- mov rdi, r13
- mov ecx, r12d
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=18 bbWeight=0.50 PerfScore 1.88
-G_M63403_IG11:
test eax, eax
cmovl eax, r12d
test eax, eax
- jne SHORT G_M63403_IG15
- ;; size=10 bbWeight=0.50 PerfScore 0.88
-G_M63403_IG12:
+ jne SHORT G_M63403_IG13
+ ;; size=67 bbWeight=0.50 PerfScore 4.62
+G_M63403_IG10:
mov rax, gword ptr [rbx+0x20]
- jmp SHORT G_M63403_IG14
+ jmp SHORT G_M63403_IG12
;; size=6 bbWeight=0.25 PerfScore 1.00
-G_M63403_IG13:
+G_M63403_IG11:
mov rdi, rax
mov ecx, dword ptr [rbx+0x58]
lea edx, [rcx+0x01]
mov dword ptr [rbx+0x58], edx
cmp ecx, dword ptr [rdi+0x08]
- jae G_M63403_IG25
+ jae G_M63403_IG23
mov edi, dword ptr [rdi+4*rcx+0x10]
mov rcx, gword ptr [rbx+0x28]
mov rcx, gword ptr [rcx+0x50]
cmp edi, dword ptr [rcx+0x08]
- jae G_M63403_IG25
+ jae G_M63403_IG23
lea rdi, bword ptr [rcx+4*rdi+0x10]
dec dword ptr [rdi]
;; size=49 bbWeight=2 PerfScore 43.50
-G_M63403_IG14:
+G_M63403_IG12:
mov edi, dword ptr [rax+0x08]
sub edi, dword ptr [rbx+0x58]
test edi, edi
- jg SHORT G_M63403_IG13
+ jg SHORT G_M63403_IG11
jmp G_M63403_IG07
;; size=15 bbWeight=4 PerfScore 33.00
-G_M63403_IG15:
+G_M63403_IG13:
cmp eax, r12d
- ja G_M63403_IG26
+ ja G_M63403_IG24
mov edi, eax
lea r13, bword ptr [r13+2*rdi]
sub r12d, eax
lea edi, [r14+rax]
mov eax, edi
mov ecx, r14d
mov edx, eax
cmp edx, ecx
- jge SHORT G_M63403_IG16
- mov dword ptr [rbp-0x38], r14d
+ jge SHORT G_M63403_IG14
+ mov dword ptr [rbp-0x30], r14d
mov dword ptr [rbp-0x2C], eax
- mov dword ptr [rbp-0x3C], eax
+ mov dword ptr [rbp-0x34], eax
mov eax, dword ptr [rbp-0x2C]
- mov ecx, dword ptr [rbp-0x3C]
- mov edx, dword ptr [rbp-0x38]
+ mov ecx, dword ptr [rbp-0x34]
+ mov edx, dword ptr [rbp-0x30]
;; size=53 bbWeight=0.50 PerfScore 6.12
-G_M63403_IG16:
+G_M63403_IG14:
cmp dword ptr [rbx+0x58], 0
mov dword ptr [rbp-0x2C], eax
- jne SHORT G_M63403_IG17
- mov dword ptr [rbp-0x3C], ecx
- mov dword ptr [rbp-0x38], edx
+ jne SHORT G_M63403_IG15
+ mov dword ptr [rbp-0x34], ecx
+ mov dword ptr [rbp-0x30], edx
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
call [rsi]System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
- mov ecx, dword ptr [rbp-0x3C]
- mov edx, dword ptr [rbp-0x38]
+ mov ecx, dword ptr [rbp-0x34]
+ mov edx, dword ptr [rbp-0x30]
;; size=36 bbWeight=0.50 PerfScore 6.25
-G_M63403_IG17:
+G_M63403_IG15:
mov rdi, gword ptr [rbx+0x20]
mov esi, dword ptr [rbx+0x58]
dec esi
mov dword ptr [rbx+0x58], esi
cmp esi, dword ptr [rdi+0x08]
- jae G_M63403_IG25
+ jae G_M63403_IG23
mov dword ptr [rdi+4*rsi+0x10], 1
- mov dword ptr [rbp-0x3C], ecx
+ mov dword ptr [rbp-0x34], ecx
sub edx, ecx
mov ecx, edx
mov rdi, gword ptr [rbx+0x28]
- mov edx, dword ptr [rbp-0x3C]
+ mov edx, dword ptr [rbp-0x34]
mov esi, 1
mov r8, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Match:AddMatch(int,int,int):this
cmp dword ptr [rdi], edi
call [r8]System.Text.RegularExpressions.Match:AddMatch(int,int,int):this
test r12d, r12d
- je SHORT G_M63403_IG18
+ je SHORT G_M63403_IG16
cmp word ptr [r13], 93
- je SHORT G_M63403_IG21
+ je SHORT G_M63403_IG19
;; size=76 bbWeight=0.50 PerfScore 13.25
-G_M63403_IG18:
+G_M63403_IG16:
mov rdi, gword ptr [rbx+0x20]
- jmp SHORT G_M63403_IG20
+ jmp SHORT G_M63403_IG18
;; size=6 bbWeight=0.50 PerfScore 2.00
-G_M63403_IG19:
+G_M63403_IG17:
mov rax, rdi
mov ecx, dword ptr [rbx+0x58]
lea edx, [rcx+0x01]
mov dword ptr [rbx+0x58], edx
cmp ecx, dword ptr [rax+0x08]
- jae G_M63403_IG25
+ jae G_M63403_IG23
mov eax, dword ptr [rax+4*rcx+0x10]
mov rcx, gword ptr [rbx+0x28]
mov rcx, gword ptr [rcx+0x50]
cmp eax, dword ptr [rcx+0x08]
- jae G_M63403_IG25
+ jae G_M63403_IG23
lea rax, bword ptr [rcx+4*rax+0x10]
dec dword ptr [rax]
;; size=49 bbWeight=2 PerfScore 43.50
-G_M63403_IG20:
+G_M63403_IG18:
mov eax, dword ptr [rdi+0x08]
sub eax, dword ptr [rbx+0x58]
test eax, eax
- jg SHORT G_M63403_IG19
+ jg SHORT G_M63403_IG17
jmp G_M63403_IG07
;; size=15 bbWeight=4 PerfScore 33.00
-G_M63403_IG21:
+G_M63403_IG19:
mov r14d, dword ptr [rbp-0x2C]
inc r14d
mov dword ptr [rbx+0x4C], r14d
mov r13d, r15d
mov r12d, r14d
cmp r12d, r13d
- jge SHORT G_M63403_IG22
+ jge SHORT G_M63403_IG20
mov r12d, r15d
mov r13d, r14d
;; size=28 bbWeight=0.50 PerfScore 2.25
-G_M63403_IG22:
+G_M63403_IG20:
cmp dword ptr [rbx+0x58], 0
- jne SHORT G_M63403_IG23
+ jne SHORT G_M63403_IG21
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
call [rax]System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
;; size=21 bbWeight=0.50 PerfScore 3.75
-G_M63403_IG23:
+G_M63403_IG21:
mov rcx, gword ptr [rbx+0x20]
mov edi, dword ptr [rbx+0x58]
dec edi
mov dword ptr [rbx+0x58], edi
cmp edi, dword ptr [rcx+0x08]
- jae SHORT G_M63403_IG25
+ jae SHORT G_M63403_IG23
xor edx, edx
mov dword ptr [rcx+4*rdi+0x10], edx
mov ecx, r12d
sub ecx, r13d
mov rdi, gword ptr [rbx+0x28]
mov edx, r13d
xor esi, esi
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
mov eax, 1
;; size=57 bbWeight=0.50 PerfScore 10.00
-G_M63403_IG24:
+G_M63403_IG22:
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_M63403_IG25:
+G_M63403_IG23:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M63403_IG26:
+G_M63403_IG24:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
RWD00 dq 0061007200610070h, 006500520073006Dh
RWD16 dq 00520073006D0061h, 005B006400610065h
-; Total bytes of code 758, prolog size 22, PerfScore 305.67, instruction count 223, allocated bytes for code 758 (MethodHash=55a40854) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F17570F3C63F49E0EDC8B9EB3FA2CFADF55F73E11043596DBD6C1553B39463343__ParamsReadRegex_11+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
+; Total bytes of code 690, prolog size 22, PerfScore 298.29, instruction count 205, allocated bytes for code 690 (MethodHash=55a40854) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F17570F3C63F49E0EDC8B9EB3FA2CFADF55F73E11043596DBD6C1553B39463343__ParamsReadRegex_11+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
-67 (-14.44 % of base) - System.UriHelper:StripBidiControlCharacters(System.ReadOnlySpan`1[ushort],System.String):System.String
; Assembly listing for method System.UriHelper:StripBidiControlCharacters(System.ReadOnlySpan`1[ushort],System.String):System.String (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 18 single block inlinees; 7 inlinees without PGO data
+; 0 inlinees with PGO data; 18 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
-; V01 arg1 [V01,T08] ( 3, 2.50) ref -> r14 class-hnd single-def <System.String>
-; V02 loc0 [V02,T02] ( 5, 6.50) int -> r13
+; V01 arg1 [V01,T06] ( 3, 2.50) ref -> r14 class-hnd single-def <System.String>
+; V02 loc0 [V02,T03] ( 5, 6.50) int -> r13
;* V03 loc1 [V03 ] ( 0, 0 ) int -> zero-ref
; V04 loc2 [V04 ] ( 4, 2 ) struct (16) [rbp-0x38] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[ushort]>
;* V05 loc3 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ushort]>
;* V06 loc4 [V06,T22] ( 0, 0 ) int -> zero-ref
;* V07 loc5 [V07 ] ( 0, 0 ) ushort -> zero-ref
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V09 tmp1 [V09,T15] ( 2, 2 ) ref -> rdx class-hnd single-def "dup spill" <System.Buffers.SpanAction`2[ushort,long]>
-; V10 tmp2 [V10,T17] ( 2, 2 ) int -> rbx "impAppendStmt"
+; V09 tmp1 [V09,T12] ( 2, 2 ) ref -> rdx class-hnd single-def "dup spill" <System.Buffers.SpanAction`2[ushort,long]>
+; V10 tmp2 [V10,T14] ( 2, 2 ) int -> rbx "impAppendStmt"
;* V11 tmp3 [V11 ] ( 0, 0 ) int -> zero-ref
; V12 tmp4 [V12,T20] ( 2, 1 ) long -> r15
-; V13 tmp5 [V13,T12] ( 4, 2 ) ref -> rdx
-; V14 tmp6 [V14,T06] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SpanAction`2[ushort,long]>
-; V15 tmp7 [V15,T13] ( 4, 2 ) ref -> rax
-; V16 tmp8 [V16,T10] ( 5, 3.50) int -> rax "Inline return value spill temp"
-; V17 tmp9 [V17 ] ( 2, 4 ) ushort -> [rbp-0x3C] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V18 tmp10 [V18 ] ( 2, 4 ) ushort -> [rbp-0x40] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V13 tmp5 [V13,T10] ( 4, 2 ) ref -> rdx
+; V14 tmp6 [V14,T04] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SpanAction`2[ushort,long]>
+; V15 tmp7 [V15,T11] ( 4, 2 ) ref -> rax
+; V16 tmp8 [V16,T08] ( 5, 3.50) int -> rax "Inline return value spill temp"
+;* V17 tmp9 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V18 tmp10 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V19 tmp11 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V20 tmp12 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V21 tmp13 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V22 tmp14 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V23 tmp15 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V24 tmp16 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V22 tmp14 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V23 tmp15 [V23 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V24 tmp16 [V24 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V25 tmp17 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V26 tmp18 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V27 tmp19 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V28 tmp20 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V29 tmp21 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V30 tmp22 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V31 tmp23 [V31 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V32 tmp24 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V33 tmp25 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V34 tmp26 [V34 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V35 tmp27 [V35 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V36 tmp28 [V36 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V37 tmp29 [V37 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V38 tmp30 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V39 tmp31 [V39 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V40 tmp32 [V40,T01] ( 6, 8 ) ushort -> rsi "Inlining Arg"
-; V41 tmp33 [V41,T04] ( 5, 6 ) ushort -> rdx "Inlining Arg"
-;* V42 tmp34 [V42 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V43 tmp35 [V43,T14] ( 3, 2 ) int -> rax "Inline return value spill temp"
-;* V44 tmp36 [V44 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V45 tmp37 [V45 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V46 tmp38 [V46 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
+;* V28 tmp20 [V28 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V29 tmp21 [V29 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V30 tmp22 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V31 tmp23 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V32 tmp24 [V32 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V33 tmp25 [V33 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V34 tmp26 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V35 tmp27 [V35 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V36 tmp28 [V36 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V37 tmp29 [V37 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V38 tmp30 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V39 tmp31 [V39 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V40 tmp32 [V40 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V41 tmp33 [V41 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V42 tmp34 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V43 tmp35 [V43,T17] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V44 tmp36 [V44,T18] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V45 tmp37 [V45,T15] ( 2, 2 ) int -> rax "Inline return value spill temp"
+;* V46 tmp38 [V46 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
;* V47 tmp39 [V47 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V48 tmp40 [V48 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V49 tmp41 [V49 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V49 tmp41 [V49 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V50 tmp42 [V50 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V51 tmp43 [V51 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V52 tmp44 [V52 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V53 tmp45 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V54 tmp46 [V54 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V55 tmp47 [V55 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V56 tmp48 [V56 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V57 tmp49 [V57 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V58 tmp50 [V58 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V59 tmp51 [V59 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V60 tmp52 [V60 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V51 tmp43 [V51 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V52 tmp44 [V52 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V53 tmp45 [V53 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V54 tmp46 [V54 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V55 tmp47 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V56 tmp48 [V56 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V57 tmp49 [V57 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V58 tmp50 [V58 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V59 tmp51 [V59 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V60 tmp52 [V60 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V61 tmp53 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V62 tmp54 [V62 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V63 tmp55 [V63 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V64 tmp56 [V64 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V65 tmp57 [V65 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V66 tmp58 [V66 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V67 tmp59 [V67 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V68 tmp60 [V68 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V69 tmp61 [V69 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V70 tmp62 [V70 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V71 tmp63 [V71,T16] ( 2, 2 ) byref -> r12 single-def "Inlining Arg"
-; V72 tmp64 [V72,T18] ( 2, 2 ) int -> rcx "Inlining Arg"
-; V73 tmp65 [V73,T11] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.UriHelper+<>c>
-; V74 tmp66 [V74,T05] ( 6, 3.50) byref -> r15 single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-; V75 tmp67 [V75,T03] ( 7, 4 ) int -> rbx single-def "field V00._length (fldOffset=0x8)" P-INDEP
-; V76 tmp68 [V76 ] ( 2, 1 ) byref -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V04._reference (fldOffset=0x0)" P-DEP
-; V77 tmp69 [V77 ] ( 3, 1.50) int -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V04._length (fldOffset=0x8)" P-DEP
-; V78 tmp70 [V78,T09] ( 2, 4.50) byref -> r12 single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-; V79 tmp71 [V79,T07] ( 3, 5 ) int -> [rbp-0x44] spill-single-def "field V05._length (fldOffset=0x8)" P-INDEP
-;* V80 tmp72 [V80 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP
-;* V81 tmp73 [V81 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
-;* V82 tmp74 [V82 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
-;* V83 tmp75 [V83 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
-;* V84 tmp76 [V84 ] ( 0, 0 ) byref -> zero-ref single-def "field V38._reference (fldOffset=0x0)" P-INDEP
-;* V85 tmp77 [V85 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
-;* V86 tmp78 [V86 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V87 tmp79 [V87 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-;* V88 tmp80 [V88 ] ( 0, 0 ) byref -> zero-ref "field V61._reference (fldOffset=0x0)" P-INDEP
-;* V89 tmp81 [V89 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
-;* V90 tmp82 [V90 ] ( 0, 0 ) byref -> zero-ref "field V69._reference (fldOffset=0x0)" P-INDEP
-;* V91 tmp83 [V91 ] ( 0, 0 ) int -> zero-ref "field V69._length (fldOffset=0x8)" P-INDEP
-; V92 tmp84 [V92,T19] ( 2, 1 ) byref -> r12 single-def "field V70._reference (fldOffset=0x0)" P-INDEP
-; V93 tmp85 [V93,T21] ( 2, 1 ) int -> rax "field V70._length (fldOffset=0x8)" P-INDEP
-;* V94 cse0 [V94,T23] ( 0, 0 ) long -> zero-ref "CSE #01: moderate"
-; V95 rat0 [V95,T00] ( 5, 16.50) long -> [rbp-0x50] "Widened IV V06"
+;* V62 tmp54 [V62 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+; V63 tmp55 [V63,T13] ( 2, 2 ) byref -> r12 single-def "Inlining Arg"
+; V64 tmp56 [V64,T16] ( 2, 2 ) int -> rcx "Inlining Arg"
+; V65 tmp57 [V65,T09] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.UriHelper+<>c>
+; V66 tmp58 [V66,T02] ( 5, 3.50) byref -> r15 single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+; V67 tmp59 [V67,T01] ( 6, 4 ) int -> rbx single-def "field V00._length (fldOffset=0x8)" P-INDEP
+; V68 tmp60 [V68 ] ( 2, 1 ) byref -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V04._reference (fldOffset=0x0)" P-DEP
+; V69 tmp61 [V69 ] ( 3, 1.50) int -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V04._length (fldOffset=0x8)" P-DEP
+; V70 tmp62 [V70,T07] ( 2, 4.50) byref -> r12 single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+; V71 tmp63 [V71,T05] ( 3, 5 ) int -> [rbp-0x3C] spill-single-def "field V05._length (fldOffset=0x8)" P-INDEP
+;* V72 tmp64 [V72 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
+;* V73 tmp65 [V73 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
+;* V74 tmp66 [V74 ] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP
+;* V75 tmp67 [V75 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
+;* V76 tmp68 [V76 ] ( 0, 0 ) byref -> zero-ref single-def "field V42._reference (fldOffset=0x0)" P-INDEP
+;* V77 tmp69 [V77 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP
+;* V78 tmp70 [V78 ] ( 0, 0 ) byref -> zero-ref "field V49._reference (fldOffset=0x0)" P-INDEP
+;* V79 tmp71 [V79 ] ( 0, 0 ) int -> zero-ref "field V49._length (fldOffset=0x8)" P-INDEP
+;* V80 tmp72 [V80 ] ( 0, 0 ) byref -> zero-ref "field V55._reference (fldOffset=0x0)" P-INDEP
+;* V81 tmp73 [V81 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
+;* V82 tmp74 [V82 ] ( 0, 0 ) byref -> zero-ref "field V61._reference (fldOffset=0x0)" P-INDEP
+;* V83 tmp75 [V83 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
+; V84 tmp76 [V84,T19] ( 2, 1 ) byref -> r12 single-def "field V62._reference (fldOffset=0x0)" P-INDEP
+; V85 tmp77 [V85,T21] ( 2, 1 ) int -> rax "field V62._length (fldOffset=0x8)" P-INDEP
+;* V86 cse0 [V86,T23] ( 0, 0 ) long -> zero-ref "CSE #01: moderate"
+; V87 rat0 [V87,T00] ( 5, 16.50) long -> [rbp-0x48] "Widened IV V06"
;
; Lcl frame size = 40
G_M4258_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 40
lea rbp, [rsp+0x50]
xor eax, eax
mov qword ptr [rbp-0x38], rax
mov r15, rdi
mov ebx, esi
mov r14, rdx
;; size=33 bbWeight=1 PerfScore 8.75
G_M4258_IG02:
xor r13d, r13d
- mov dword ptr [rbp-0x3C], 0x200E
- mov dword ptr [rbp-0x40], 0x202E
- movzx rsi, word ptr [rbp-0x3C]
- movzx rdx, word ptr [rbp-0x40]
- lea edi, [rsi-0x01]
- cmp edi, 254
- jae SHORT G_M4258_IG04
- ;; size=36 bbWeight=1 PerfScore 6.00
-G_M4258_IG03:
- lea edi, [rdx-0x01]
- cmp edi, 254
- jae SHORT G_M4258_IG04
- cmp edx, esi
- jl SHORT G_M4258_IG04
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
- mov rdi, r15
- mov ecx, ebx
- mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int
- call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int
- jmp SHORT G_M4258_IG05
- ;; size=44 bbWeight=0.50 PerfScore 4.75
-G_M4258_IG04:
mov rdi, r15
mov ecx, ebx
+ mov esi, 0x200E
+ mov edx, 0x202E
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+DontNegate`1[ushort]](byref,ushort,ushort,int):int
call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+DontNegate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=17 bbWeight=0.50 PerfScore 1.88
-G_M4258_IG05:
test eax, eax
- jl SHORT G_M4258_IG10
- ;; size=4 bbWeight=1 PerfScore 1.25
-G_M4258_IG06:
+ jl SHORT G_M4258_IG07
+ ;; size=34 bbWeight=1 PerfScore 5.75
+G_M4258_IG03:
cmp eax, ebx
- ja G_M4258_IG18
+ ja G_M4258_IG15
mov edi, eax
lea r12, bword ptr [r15+2*rdi]
mov ecx, ebx
sub ecx, eax
mov eax, ecx
- mov dword ptr [rbp-0x44], eax
+ mov dword ptr [rbp-0x3C], eax
xor ecx, ecx
test eax, eax
- jle SHORT G_M4258_IG10
+ jle SHORT G_M4258_IG07
;; size=29 bbWeight=0.50 PerfScore 2.62
-G_M4258_IG07:
- mov qword ptr [rbp-0x50], rcx
+G_M4258_IG04:
+ mov qword ptr [rbp-0x48], rcx
movzx rdi, word ptr [r12+2*rcx]
mov rdx, 0xD1FFAB1E ; code for System.UriHelper:IsBidiControlCharacter(ushort):ubyte
call [rdx]System.UriHelper:IsBidiControlCharacter(ushort):ubyte
test eax, eax
- je SHORT G_M4258_IG09
+ je SHORT G_M4258_IG06
;; size=25 bbWeight=4 PerfScore 30.00
-G_M4258_IG08:
+G_M4258_IG05:
inc r13d
;; size=3 bbWeight=2 PerfScore 0.50
-G_M4258_IG09:
- mov rdi, qword ptr [rbp-0x50]
+G_M4258_IG06:
+ mov rdi, qword ptr [rbp-0x48]
inc edi
- mov esi, dword ptr [rbp-0x44]
+ mov esi, dword ptr [rbp-0x3C]
cmp edi, esi
mov rcx, rdi
- jl SHORT G_M4258_IG07
+ jl SHORT G_M4258_IG04
;; size=16 bbWeight=4 PerfScore 15.00
-G_M4258_IG10:
+G_M4258_IG07:
test r13d, r13d
- jne SHORT G_M4258_IG14
+ jne SHORT G_M4258_IG11
;; size=5 bbWeight=1 PerfScore 1.25
-G_M4258_IG11:
+G_M4258_IG08:
mov rax, r14
test rax, rax
- jne SHORT G_M4258_IG12
+ jne SHORT G_M4258_IG09
mov rdi, r15
mov esi, ebx
call System.String:.ctor(System.ReadOnlySpan`1[ushort]):this
;; size=18 bbWeight=0.50 PerfScore 1.50
-G_M4258_IG12:
+G_M4258_IG09:
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M4258_IG13:
+G_M4258_IG10:
add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M4258_IG14:
+G_M4258_IG11:
mov bword ptr [rbp-0x38], r15
mov dword ptr [rbp-0x30], ebx
mov ebx, dword ptr [rbp-0x30]
sub ebx, r13d
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
- je G_M4258_IG19
+ je G_M4258_IG16
;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M4258_IG15:
+G_M4258_IG12:
mov rdi, 0xD1FFAB1E ; data for System.UriHelper+<>c:<>9__25_0
mov rdx, gword ptr [rdi]
lea r15, [rbp-0x38]
test rdx, rdx
- jne SHORT G_M4258_IG16
+ jne SHORT G_M4258_IG13
mov rdi, 0xD1FFAB1E ; System.Buffers.SpanAction`2[ushort,long]
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov rdi, 0xD1FFAB1E ; data for System.UriHelper+<>c:<>9
mov rsi, gword ptr [rdi]
test rsi, rsi
- je SHORT G_M4258_IG20
+ je SHORT G_M4258_IG17
lea rdi, bword ptr [r14+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.UriHelper+<>c:<StripBidiControlCharacters>b__25_0(System.Span`1[ushort],long):this
mov qword ptr [r14+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for System.UriHelper+<>c:<>9__25_0
mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
mov rdx, r14
;; size=102 bbWeight=0.50 PerfScore 6.75
-G_M4258_IG16:
+G_M4258_IG13:
mov edi, ebx
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.String:Create[long](int,long,System.Buffers.SpanAction`2[ushort,long]):System.String
call [rax]System.String:Create[long](int,long,System.Buffers.SpanAction`2[ushort,long]):System.String
nop
;; size=18 bbWeight=0.50 PerfScore 2.00
-G_M4258_IG17:
+G_M4258_IG14:
add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M4258_IG18:
+G_M4258_IG15:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M4258_IG19:
+G_M4258_IG16:
mov rdi, 0xD1FFAB1E
mov esi, 28
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- jmp G_M4258_IG15
+ jmp G_M4258_IG12
;; size=25 bbWeight=0 PerfScore 0.00
-G_M4258_IG20:
+G_M4258_IG17:
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 464, prolog size 25, PerfScore 90.38, instruction count 131, allocated bytes for code 464 (MethodHash=c968ef5d) for method System.UriHelper:StripBidiControlCharacters(System.ReadOnlySpan`1[ushort],System.String):System.String (FullOpts)
+; Total bytes of code 397, prolog size 25, PerfScore 82.25, instruction count 113, allocated bytes for code 397 (MethodHash=c968ef5d) for method System.UriHelper:StripBidiControlCharacters(System.ReadOnlySpan`1[ushort],System.String):System.String (FullOpts)
-64 (-11.15 % of base) - System.DomainNameHelper:ParseCanonicalName(System.String,int,int,byref):System.String
; Assembly listing for method System.DomainNameHelper:ParseCanonicalName(System.String,int,int,byref):System.String (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 27 single block inlinees; 10 inlinees without PGO data
+; 0 inlinees with PGO data; 27 single block inlinees; 16 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 16, 9.50) ref -> rbx class-hnd single-def <System.String>
; V01 arg1 [V01,T01] ( 15, 9 ) int -> r15 single-def
; V02 arg2 [V02,T02] ( 7, 5 ) int -> r14
-; V03 arg3 [V03,T08] ( 3, 2.50) byref -> r13 single-def
-; V04 loc0 [V04,T05] ( 7, 5 ) int -> rax
+; V03 arg3 [V03,T06] ( 3, 2.50) byref -> r13 single-def
+; V04 loc0 [V04,T04] ( 7, 5 ) int -> rax
;* V05 loc1 [V05 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ushort]>
-;* V06 loc2 [V06,T28] ( 0, 0 ) ubyte -> zero-ref
+;* V06 loc2 [V06,T24] ( 0, 0 ) ubyte -> zero-ref
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V09 tmp2 [V09,T15] ( 2, 2 ) int -> rsi "spilling unroll qmark"
-; V10 tmp3 [V10,T16] ( 2, 2 ) int -> rdx "spilling unroll qmark"
+; V09 tmp2 [V09,T13] ( 2, 2 ) int -> rsi "spilling unroll qmark"
+; V10 tmp3 [V10,T14] ( 2, 2 ) int -> rdx "spilling unroll qmark"
;* 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 "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V13 tmp6 [V13 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V14 tmp7 [V14,T07] ( 4, 5 ) int -> rdx "Inlining Arg"
+; V14 tmp7 [V14,T05] ( 4, 5 ) int -> rdx "Inlining Arg"
;* V15 tmp8 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V16 tmp9 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
;* V17 tmp10 [V17 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V18 tmp11 [V18,T11] ( 2, 4 ) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Default]>
+; V18 tmp11 [V18,T09] ( 2, 4 ) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Default]>
;* V19 tmp12 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V20 tmp13 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V21 tmp14 [V21 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V22 tmp15 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V23 tmp16 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
;* V24 tmp17 [V24 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V25 tmp18 [V25,T29] ( 2, 1 ) int -> rax "Inline return value spill temp"
-; V26 tmp19 [V26 ] ( 2, 2 ) ushort -> [rbp-0x2C] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V27 tmp20 [V27 ] ( 2, 2 ) ushort -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V25 tmp18 [V25,T25] ( 2, 1 ) int -> rax "Inline return value spill temp"
+;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V27 tmp20 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V28 tmp21 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V29 tmp22 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V30 tmp23 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V31 tmp24 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V32 tmp25 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V33 tmp26 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V31 tmp24 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V32 tmp25 [V32 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V33 tmp26 [V33 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V34 tmp27 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V35 tmp28 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V36 tmp29 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V37 tmp30 [V37 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V38 tmp31 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V39 tmp32 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V40 tmp33 [V40 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V41 tmp34 [V41 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V42 tmp35 [V42 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V43 tmp36 [V43 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V44 tmp37 [V44 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V45 tmp38 [V45 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V46 tmp39 [V46 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V47 tmp40 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V48 tmp41 [V48 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V49 tmp42 [V49,T04] ( 6, 6 ) ushort -> rsi "Inlining Arg"
-; V50 tmp43 [V50,T06] ( 5, 5 ) ushort -> rdx "Inlining Arg"
-;* V51 tmp44 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V52 tmp45 [V52,T21] ( 3, 1.50) int -> rax "Inline return value spill temp"
-;* V53 tmp46 [V53 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V54 tmp47 [V54 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V37 tmp30 [V37 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V38 tmp31 [V38 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V39 tmp32 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V40 tmp33 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V41 tmp34 [V41 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V42 tmp35 [V42 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V43 tmp36 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V44 tmp37 [V44 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V45 tmp38 [V45 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V46 tmp39 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V47 tmp40 [V47 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V48 tmp41 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V49 tmp42 [V49 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V50 tmp43 [V50 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V51 tmp44 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V52 tmp45 [V52 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V53 tmp46 [V53 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V54 tmp47 [V54,T26] ( 2, 1 ) int -> rax "Inline return value spill temp"
;* V55 tmp48 [V55 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
-;* V56 tmp49 [V56 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V56 tmp49 [V56,T32] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V57 tmp50 [V57 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V58 tmp51 [V58 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V58 tmp51 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V59 tmp52 [V59 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V60 tmp53 [V60 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V61 tmp54 [V61 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V62 tmp55 [V62 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V63 tmp56 [V63 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V64 tmp57 [V64 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V65 tmp58 [V65 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V66 tmp59 [V66 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V67 tmp60 [V67 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V68 tmp61 [V68 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V69 tmp62 [V69 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V60 tmp53 [V60 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V61 tmp54 [V61 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V62 tmp55 [V62 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V63 tmp56 [V63 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V64 tmp57 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V65 tmp58 [V65 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V66 tmp59 [V66 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V67 tmp60 [V67 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V68 tmp61 [V68 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V69 tmp62 [V69 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V70 tmp63 [V70 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V71 tmp64 [V71 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V72 tmp65 [V72 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V73 tmp66 [V73 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V74 tmp67 [V74 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V75 tmp68 [V75 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V76 tmp69 [V76 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V77 tmp70 [V77 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V78 tmp71 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V79 tmp72 [V79 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V80 tmp73 [V80,T09] ( 4, 4 ) int -> r14 "Inlining Arg"
-;* V81 tmp74 [V81 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V82 tmp75 [V82 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;* V83 tmp76 [V83 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V84 tmp77 [V84 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V85 tmp78 [V85,T10] ( 4, 4 ) int -> rdx "Inlining Arg"
-;* V86 tmp79 [V86 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V87 tmp80 [V87 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;* V88 tmp81 [V88 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V89 tmp82 [V89 ] ( 0, 0 ) byref -> zero-ref single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V90 tmp83 [V90 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
-;* V91 tmp84 [V91 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP
-;* V92 tmp85 [V92 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
-;* V93 tmp86 [V93 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
-;* V94 tmp87 [V94 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-;* V95 tmp88 [V95 ] ( 0, 0 ) byref -> zero-ref "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V96 tmp89 [V96 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
-; V97 tmp90 [V97,T14] ( 3, 2 ) byref -> rdi "field V13._reference (fldOffset=0x0)" P-INDEP
-; V98 tmp91 [V98,T17] ( 3, 2 ) int -> rsi "field V13._length (fldOffset=0x8)" P-INDEP
-; V99 tmp92 [V99,T24] ( 2, 1 ) byref -> rdi single-def "field V15._reference (fldOffset=0x0)" P-INDEP
-; V100 tmp93 [V100,T30] ( 2, 1 ) int -> rsi "field V15._length (fldOffset=0x8)" P-INDEP
-;* V101 tmp94 [V101 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
-;* V102 tmp95 [V102 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
-;* V103 tmp96 [V103 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
-;* V104 tmp97 [V104 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
-;* V105 tmp98 [V105 ] ( 0, 0 ) byref -> zero-ref single-def "field V20._reference (fldOffset=0x0)" P-INDEP
-;* V106 tmp99 [V106 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
-; V107 tmp100 [V107,T19] ( 3, 1.50) byref -> rdi single-def "field V21._reference (fldOffset=0x0)" P-INDEP
-; V108 tmp101 [V108,T22] ( 3, 1.50) int -> rcx "field V21._length (fldOffset=0x8)" P-INDEP
-; V109 tmp102 [V109,T25] ( 2, 1 ) byref -> rdi single-def "field V22._reference (fldOffset=0x0)" P-INDEP
-; V110 tmp103 [V110,T31] ( 2, 1 ) int -> rcx "field V22._length (fldOffset=0x8)" P-INDEP
-;* V111 tmp104 [V111 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP
-;* V112 tmp105 [V112 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
-;* V113 tmp106 [V113 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
-;* V114 tmp107 [V114 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
-;* V115 tmp108 [V115 ] ( 0, 0 ) byref -> zero-ref "field V39._reference (fldOffset=0x0)" P-INDEP
-;* V116 tmp109 [V116 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
-;* V117 tmp110 [V117 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
-;* V118 tmp111 [V118 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
-;* V119 tmp112 [V119 ] ( 0, 0 ) byref -> zero-ref "field V62._reference (fldOffset=0x0)" P-INDEP
-;* V120 tmp113 [V120 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP
-;* V121 tmp114 [V121 ] ( 0, 0 ) byref -> zero-ref "field V70._reference (fldOffset=0x0)" P-INDEP
-;* V122 tmp115 [V122 ] ( 0, 0 ) int -> zero-ref "field V70._length (fldOffset=0x8)" P-INDEP
-;* V123 tmp116 [V123 ] ( 0, 0 ) byref -> zero-ref "field V78._reference (fldOffset=0x0)" P-INDEP
-;* V124 tmp117 [V124 ] ( 0, 0 ) int -> zero-ref "field V78._length (fldOffset=0x8)" P-INDEP
-; V125 tmp118 [V125,T20] ( 3, 1.50) byref -> rdi "field V79._reference (fldOffset=0x0)" P-INDEP
-; V126 tmp119 [V126,T23] ( 3, 1.50) int -> rsi "field V79._length (fldOffset=0x8)" P-INDEP
-; V127 tmp120 [V127,T26] ( 2, 1 ) byref -> rdi single-def "field V81._reference (fldOffset=0x0)" P-INDEP
-; V128 tmp121 [V128,T32] ( 2, 1 ) int -> rsi "field V81._length (fldOffset=0x8)" P-INDEP
-;* V129 tmp122 [V129 ] ( 0, 0 ) byref -> zero-ref single-def "field V82._reference (fldOffset=0x0)" P-INDEP
-;* V130 tmp123 [V130 ] ( 0, 0 ) int -> zero-ref "field V82._length (fldOffset=0x8)" P-INDEP
-; V131 tmp124 [V131,T18] ( 5, 2.50) byref -> registers "field V84._reference (fldOffset=0x0)" P-INDEP
-; V132 tmp125 [V132,T12] ( 4, 2 ) int -> registers "field V84._length (fldOffset=0x8)" P-INDEP
-; V133 tmp126 [V133,T27] ( 2, 1 ) byref -> rdi single-def "field V86._reference (fldOffset=0x0)" P-INDEP
-; V134 tmp127 [V134,T33] ( 2, 1 ) int -> rdx "field V86._length (fldOffset=0x8)" P-INDEP
-;* V135 tmp128 [V135 ] ( 0, 0 ) byref -> zero-ref single-def "field V87._reference (fldOffset=0x0)" P-INDEP
-;* V136 tmp129 [V136 ] ( 0, 0 ) int -> zero-ref "field V87._length (fldOffset=0x8)" P-INDEP
-; V137 cse0 [V137,T13] ( 4, 2 ) int -> rdx "CSE #03: moderate"
-; V138 cse1 [V138,T03] ( 12, 6 ) long -> r12 multi-def "CSE #01: aggressive"
-; V139 rat0 [V139,T34] ( 3, 3 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
-; V140 rat1 [V140,T35] ( 3, 3 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+;* V71 tmp64 [V71 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+; V72 tmp65 [V72,T07] ( 4, 4 ) int -> r14 "Inlining Arg"
+;* V73 tmp66 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V74 tmp67 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+;* V75 tmp68 [V75 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V76 tmp69 [V76 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+; V77 tmp70 [V77,T08] ( 4, 4 ) int -> rdx "Inlining Arg"
+;* V78 tmp71 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V79 tmp72 [V79 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+;* V80 tmp73 [V80 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V81 tmp74 [V81 ] ( 0, 0 ) byref -> zero-ref single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V82 tmp75 [V82 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
+;* V83 tmp76 [V83 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP
+;* V84 tmp77 [V84 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
+;* V85 tmp78 [V85 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V86 tmp79 [V86 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
+;* V87 tmp80 [V87 ] ( 0, 0 ) byref -> zero-ref "field V12._reference (fldOffset=0x0)" P-INDEP
+;* V88 tmp81 [V88 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
+; V89 tmp82 [V89,T12] ( 3, 2 ) byref -> rdi "field V13._reference (fldOffset=0x0)" P-INDEP
+; V90 tmp83 [V90,T15] ( 3, 2 ) int -> rsi "field V13._length (fldOffset=0x8)" P-INDEP
+; V91 tmp84 [V91,T19] ( 2, 1 ) byref -> rdi single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+; V92 tmp85 [V92,T27] ( 2, 1 ) int -> rsi "field V15._length (fldOffset=0x8)" P-INDEP
+;* V93 tmp86 [V93 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
+;* V94 tmp87 [V94 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
+;* V95 tmp88 [V95 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
+;* V96 tmp89 [V96 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
+;* V97 tmp90 [V97 ] ( 0, 0 ) byref -> zero-ref single-def "field V20._reference (fldOffset=0x0)" P-INDEP
+;* V98 tmp91 [V98 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
+; V99 tmp92 [V99,T20] ( 2, 1 ) byref -> rdi single-def "field V21._reference (fldOffset=0x0)" P-INDEP
+; V100 tmp93 [V100,T28] ( 2, 1 ) int -> rcx "field V21._length (fldOffset=0x8)" P-INDEP
+; V101 tmp94 [V101,T21] ( 2, 1 ) byref -> rdi single-def "field V22._reference (fldOffset=0x0)" P-INDEP
+; V102 tmp95 [V102,T29] ( 2, 1 ) int -> rcx "field V22._length (fldOffset=0x8)" P-INDEP
+;* V103 tmp96 [V103 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP
+;* V104 tmp97 [V104 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
+;* V105 tmp98 [V105 ] ( 0, 0 ) byref -> zero-ref single-def "field V31._reference (fldOffset=0x0)" P-INDEP
+;* V106 tmp99 [V106 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
+;* V107 tmp100 [V107 ] ( 0, 0 ) byref -> zero-ref "field V43._reference (fldOffset=0x0)" P-INDEP
+;* V108 tmp101 [V108 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
+;* V109 tmp102 [V109 ] ( 0, 0 ) byref -> zero-ref single-def "field V51._reference (fldOffset=0x0)" P-INDEP
+;* V110 tmp103 [V110 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
+;* V111 tmp104 [V111 ] ( 0, 0 ) byref -> zero-ref "field V58._reference (fldOffset=0x0)" P-INDEP
+;* V112 tmp105 [V112 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP
+;* V113 tmp106 [V113 ] ( 0, 0 ) byref -> zero-ref "field V64._reference (fldOffset=0x0)" P-INDEP
+;* V114 tmp107 [V114 ] ( 0, 0 ) int -> zero-ref "field V64._length (fldOffset=0x8)" P-INDEP
+;* V115 tmp108 [V115 ] ( 0, 0 ) byref -> zero-ref "field V70._reference (fldOffset=0x0)" P-INDEP
+;* V116 tmp109 [V116 ] ( 0, 0 ) int -> zero-ref "field V70._length (fldOffset=0x8)" P-INDEP
+; V117 tmp110 [V117,T17] ( 3, 1.50) byref -> rdi "field V71._reference (fldOffset=0x0)" P-INDEP
+; V118 tmp111 [V118,T18] ( 3, 1.50) int -> rsi "field V71._length (fldOffset=0x8)" P-INDEP
+; V119 tmp112 [V119,T22] ( 2, 1 ) byref -> rdi single-def "field V73._reference (fldOffset=0x0)" P-INDEP
+; V120 tmp113 [V120,T30] ( 2, 1 ) int -> rsi "field V73._length (fldOffset=0x8)" P-INDEP
+;* V121 tmp114 [V121 ] ( 0, 0 ) byref -> zero-ref single-def "field V74._reference (fldOffset=0x0)" P-INDEP
+;* V122 tmp115 [V122 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP
+; V123 tmp116 [V123,T16] ( 5, 2.50) byref -> registers "field V76._reference (fldOffset=0x0)" P-INDEP
+; V124 tmp117 [V124,T10] ( 4, 2 ) int -> registers "field V76._length (fldOffset=0x8)" P-INDEP
+; V125 tmp118 [V125,T23] ( 2, 1 ) byref -> rdi single-def "field V78._reference (fldOffset=0x0)" P-INDEP
+; V126 tmp119 [V126,T31] ( 2, 1 ) int -> rdx "field V78._length (fldOffset=0x8)" P-INDEP
+;* V127 tmp120 [V127 ] ( 0, 0 ) byref -> zero-ref single-def "field V79._reference (fldOffset=0x0)" P-INDEP
+;* V128 tmp121 [V128 ] ( 0, 0 ) int -> zero-ref "field V79._length (fldOffset=0x8)" P-INDEP
+; V129 cse0 [V129,T11] ( 4, 2 ) int -> rdx "CSE #03: moderate"
+; V130 cse1 [V130,T03] ( 12, 6 ) long -> r12 multi-def "CSE #01: aggressive"
+; V131 rat0 [V131,T33] ( 3, 3 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+; V132 rat1 [V132,T34] ( 3, 3 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 8
G_M18639_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r15d, esi
mov r14d, edx
mov r13, rcx
;; size=28 bbWeight=1 PerfScore 8.50
G_M18639_IG02:
mov edx, r14d
sub edx, r15d
test rbx, rbx
jne SHORT G_M18639_IG04
;; size=11 bbWeight=1 PerfScore 1.75
G_M18639_IG03:
or edx, r15d
- jne G_M18639_IG22
+ jne G_M18639_IG21
xor rdi, rdi
xor esi, esi
jmp SHORT G_M18639_IG05
;; size=15 bbWeight=0.50 PerfScore 1.88
G_M18639_IG04:
mov r12d, r15d
mov edi, edx
add rdi, r12
mov esi, dword ptr [rbx+0x08]
cmp rdi, rsi
- ja G_M18639_IG22
+ ja G_M18639_IG21
lea rdi, bword ptr [rbx+2*r12+0x0C]
mov esi, edx
;; size=27 bbWeight=0.50 PerfScore 2.62
G_M18639_IG05:
mov rdx, 0xD1FFAB1E ; const ptr
mov rdx, gword ptr [rdx]
add rdx, 8
mov rax, 0xD1FFAB1E ; code for System.Buffers.IndexOfAnyAsciiSearcher:LastIndexOfAny[System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default](byref,int,byref):int
call [rax]System.Buffers.IndexOfAnyAsciiSearcher:LastIndexOfAny[System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default](byref,int,byref):int
test eax, eax
- jl G_M18639_IG08
- ;; size=37 bbWeight=1 PerfScore 7.00
+ jl SHORT G_M18639_IG07
+ ;; size=33 bbWeight=1 PerfScore 7.00
G_M18639_IG06:
lea edx, [r15+rax]
cmp edx, dword ptr [rbx+0x08]
- jae G_M18639_IG21
+ jae G_M18639_IG20
mov esi, edx
cmp word ptr [rbx+2*rsi+0x0C], 58
- jne SHORT G_M18639_IG08
+ jne SHORT G_M18639_IG07
mov r14d, edx
mov r12d, r15d
mov edx, eax
add rdx, r12
mov esi, dword ptr [rbx+0x08]
cmp rdx, rsi
- ja G_M18639_IG22
+ ja G_M18639_IG21
lea rdi, bword ptr [rbx+2*r12+0x0C]
mov ecx, eax
- mov dword ptr [rbp-0x2C], 65
- mov dword ptr [rbp-0x30], 90
- movzx rsi, word ptr [rbp-0x2C]
- movzx rdx, word ptr [rbp-0x30]
- lea eax, [rsi-0x01]
- cmp eax, 254
- jae SHORT G_M18639_IG07
- lea eax, [rdx-0x01]
- cmp eax, 254
- jae SHORT G_M18639_IG07
- cmp edx, esi
- jl SHORT G_M18639_IG07
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
+ mov edx, 25
+ mov esi, 65
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int
call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int
- jmp SHORT G_M18639_IG08
- ;; size=123 bbWeight=0.50 PerfScore 14.50
+ ;; size=75 bbWeight=0.50 PerfScore 9.00
G_M18639_IG07:
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+DontNegate`1[ushort]](byref,ushort,ushort,int):int
- call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+DontNegate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M18639_IG08:
test eax, eax
- jl SHORT G_M18639_IG13
+ jl SHORT G_M18639_IG12
;; size=4 bbWeight=1 PerfScore 1.25
-G_M18639_IG09:
+G_M18639_IG08:
sub r14d, r15d
test rbx, rbx
- jne SHORT G_M18639_IG10
+ jne SHORT G_M18639_IG09
or r15d, r14d
- jne G_M18639_IG22
+ jne G_M18639_IG21
xor rdi, rdi
xor esi, esi
- jmp SHORT G_M18639_IG11
+ jmp SHORT G_M18639_IG10
;; size=23 bbWeight=0.50 PerfScore 2.62
-G_M18639_IG10:
+G_M18639_IG09:
mov r12d, r15d
mov edi, r14d
add rdi, r12
mov esi, dword ptr [rbx+0x08]
cmp rdi, rsi
- ja G_M18639_IG22
+ ja G_M18639_IG21
lea rdi, bword ptr [rbx+2*r12+0x0C]
mov esi, r14d
;; size=29 bbWeight=0.50 PerfScore 2.62
-G_M18639_IG11:
+G_M18639_IG10:
mov rax, 0xD1FFAB1E ; code for System.UriHelper:SpanToLowerInvariantString(System.ReadOnlySpan`1[ushort]):System.String
call [rax]System.UriHelper:SpanToLowerInvariantString(System.ReadOnlySpan`1[ushort]):System.String
nop
;; size=13 bbWeight=0.50 PerfScore 1.75
-G_M18639_IG12:
+G_M18639_IG11:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M18639_IG13:
+G_M18639_IG12:
mov edx, r14d
sub edx, r15d
test rbx, rbx
- jne SHORT G_M18639_IG14
+ jne SHORT G_M18639_IG13
or edx, r15d
- jne G_M18639_IG22
+ jne G_M18639_IG21
xor rdx, rdx
xor edi, edi
- jmp SHORT G_M18639_IG15
+ jmp SHORT G_M18639_IG14
;; size=26 bbWeight=0.50 PerfScore 2.75
-G_M18639_IG14:
+G_M18639_IG13:
mov r12d, r15d
mov edi, edx
add rdi, r12
mov esi, dword ptr [rbx+0x08]
cmp rdi, rsi
- ja G_M18639_IG22
+ ja G_M18639_IG21
lea rdi, bword ptr [rbx+2*r12+0x0C]
mov eax, edx
mov rdx, rdi
mov edi, eax
;; size=32 bbWeight=0.50 PerfScore 2.88
-G_M18639_IG15:
+G_M18639_IG14:
cmp edi, 9
- jne SHORT G_M18639_IG16
+ jne SHORT G_M18639_IG15
vmovups xmm0, xmmword ptr [rdx]
vpxor xmm0, xmm0, xmmword ptr [reloc @RWD00]
vmovups xmm1, xmmword ptr [rdx+0x02]
vpxor xmm1, xmm1, xmmword ptr [reloc @RWD16]
vpor xmm0, xmm1, xmm0
vptest xmm0, xmm0
sete sil
movzx rsi, sil
test esi, esi
- jne SHORT G_M18639_IG19
+ jne SHORT G_M18639_IG18
;; size=51 bbWeight=0.50 PerfScore 9.54
-G_M18639_IG16:
+G_M18639_IG15:
cmp edi, 8
- jne SHORT G_M18639_IG17
+ jne SHORT G_M18639_IG16
vmovups xmm0, xmmword ptr [rdx]
vpxor xmm0, xmm0, xmmword ptr [reloc @RWD32]
vptest xmm0, xmm0
sete dl
movzx rdx, dl
test edx, edx
- jne SHORT G_M18639_IG19
+ jne SHORT G_M18639_IG18
;; size=32 bbWeight=0.50 PerfScore 6.38
-G_M18639_IG17:
+G_M18639_IG16:
mov edx, r14d
sub edx, r15d
mov rdi, rbx
mov esi, r15d
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this
cmp dword ptr [rdi], edi
call [rax]System.String:Substring(int,int):System.String:this
nop
;; size=27 bbWeight=0.50 PerfScore 3.75
-G_M18639_IG18:
+G_M18639_IG17:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M18639_IG19:
+G_M18639_IG18:
mov byte ptr [r13], 1
mov rax, 0xD1FFAB1E ; 'localhost'
;; size=15 bbWeight=0.50 PerfScore 0.62
-G_M18639_IG20:
+G_M18639_IG19:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M18639_IG21:
+G_M18639_IG20:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M18639_IG22:
+G_M18639_IG21:
mov edi, 33
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
RWD00 dq 00610063006F006Ch, 0073006F0068006Ch
RWD16 dq 006C00610063006Fh, 00740073006F0068h
RWD32 dq 0070006F006F006Ch, 006B006300610062h
-; Total bytes of code 574, prolog size 16, PerfScore 78.42, instruction count 172, allocated bytes for code 574 (MethodHash=d41db730) for method System.DomainNameHelper:ParseCanonicalName(System.String,int,int,byref):System.String (FullOpts)
+; Total bytes of code 510, prolog size 16, PerfScore 71.29, instruction count 156, allocated bytes for code 510 (MethodHash=d41db730) for method System.DomainNameHelper:ParseCanonicalName(System.String,int,int,byref):System.String (FullOpts)
-64 (-37.21 % of base) - System.Globalization.TimeSpanParse+StringParser:NextNonDigit():ushort:this
; Assembly listing for method System.Globalization.TimeSpanParse+StringParser:NextNonDigit():ushort: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; 18 single block inlinees; 6 inlinees without PGO data
+; 0 inlinees with PGO data; 20 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 8, 6.50) byref -> rbx this single-def
;* V01 loc0 [V01 ] ( 0, 0 ) int -> zero-ref
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V04 tmp2 [V04,T06] ( 3, 3 ) int -> rax "Span.get_Item index"
+; V04 tmp2 [V04,T04] ( 3, 3 ) int -> rax "Span.get_Item index"
;* V05 tmp3 [V05 ] ( 0, 0 ) byref -> zero-ref single-def "Span.get_Item ptrToSpan"
-; V06 tmp4 [V06,T02] ( 4, 8 ) int -> rdx "Inlining Arg"
+; V06 tmp4 [V06,T01] ( 4, 8 ) int -> rdx "Inlining Arg"
;* V07 tmp5 [V07 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V08 tmp6 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V09 tmp7 [V09,T04] ( 3, 4 ) byref -> rdi single-def "Inlining Arg"
-; V10 tmp8 [V10,T05] ( 3, 4 ) int -> rcx "Inlining Arg"
-; V11 tmp9 [V11,T08] ( 3, 2.50) int -> rax "Inline return value spill temp"
-; V12 tmp10 [V12 ] ( 2, 4 ) ushort -> [rbp-0x0C] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V13 tmp11 [V13 ] ( 2, 4 ) ushort -> [rbp-0x10] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V09 tmp7 [V09,T02] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
+; V10 tmp8 [V10,T03] ( 2, 4 ) int -> rcx "Inlining Arg"
+; V11 tmp9 [V11,T06] ( 3, 2.50) int -> rax "Inline return value spill temp"
+;* V12 tmp10 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V13 tmp11 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V14 tmp12 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V15 tmp13 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V16 tmp14 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V17 tmp15 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V18 tmp16 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V19 tmp17 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V17 tmp15 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V18 tmp16 [V18 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V19 tmp17 [V19 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V20 tmp18 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V21 tmp19 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V22 tmp20 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V23 tmp21 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V24 tmp22 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V25 tmp23 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V26 tmp24 [V26 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V27 tmp25 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V28 tmp26 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V29 tmp27 [V29 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V30 tmp28 [V30 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V31 tmp29 [V31 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V32 tmp30 [V32 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V33 tmp31 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V34 tmp32 [V34 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V35 tmp33 [V35,T01] ( 6, 8 ) ushort -> rsi "Inlining Arg"
-; V36 tmp34 [V36,T03] ( 5, 6 ) ushort -> rdx "Inlining Arg"
-;* V37 tmp35 [V37 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V38 tmp36 [V38,T09] ( 3, 2 ) int -> rax "Inline return value spill temp"
-;* V39 tmp37 [V39 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V40 tmp38 [V40 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V23 tmp21 [V23 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V24 tmp22 [V24 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V25 tmp23 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V26 tmp24 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V27 tmp25 [V27 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V28 tmp26 [V28 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V29 tmp27 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V30 tmp28 [V30 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V31 tmp29 [V31 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V32 tmp30 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V33 tmp31 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V34 tmp32 [V34 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V35 tmp33 [V35 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V36 tmp34 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V37 tmp35 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V38 tmp36 [V38 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V39 tmp37 [V39 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V40 tmp38 [V40,T07] ( 2, 2 ) int -> rax "Inline return value spill temp"
;* V41 tmp39 [V41 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
-;* V42 tmp40 [V42 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V42 tmp40 [V42,T08] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V43 tmp41 [V43 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V44 tmp42 [V44 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V44 tmp42 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V45 tmp43 [V45 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V46 tmp44 [V46 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V47 tmp45 [V47 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V48 tmp46 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V49 tmp47 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V50 tmp48 [V50 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V51 tmp49 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V52 tmp50 [V52 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V53 tmp51 [V53 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V54 tmp52 [V54 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V55 tmp53 [V55 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V46 tmp44 [V46 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V47 tmp45 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V48 tmp46 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V49 tmp47 [V49 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V50 tmp48 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V51 tmp49 [V51 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V52 tmp50 [V52 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V53 tmp51 [V53 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V54 tmp52 [V54 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V55 tmp53 [V55 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V56 tmp54 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V57 tmp55 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V58 tmp56 [V58 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V59 tmp57 [V59 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V60 tmp58 [V60 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V61 tmp59 [V61 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V62 tmp60 [V62 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V63 tmp61 [V63 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V64 tmp62 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V65 tmp63 [V65 ] ( 0, 0 ) byref -> zero-ref "field V03._reference (fldOffset=0x0)" P-INDEP
-;* V66 tmp64 [V66 ] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x8)" P-INDEP
-;* V67 tmp65 [V67 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP
-;* V68 tmp66 [V68 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
-;* V69 tmp67 [V69 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
-;* V70 tmp68 [V70 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
-;* V71 tmp69 [V71 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
-;* V72 tmp70 [V72 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
-;* V73 tmp71 [V73 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
-;* V74 tmp72 [V74 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
-;* V75 tmp73 [V75 ] ( 0, 0 ) byref -> zero-ref "field V48._reference (fldOffset=0x0)" P-INDEP
-;* V76 tmp74 [V76 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
-;* V77 tmp75 [V77 ] ( 0, 0 ) byref -> zero-ref "field V56._reference (fldOffset=0x0)" P-INDEP
-;* V78 tmp76 [V78 ] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP
-;* V79 tmp77 [V79 ] ( 0, 0 ) byref -> zero-ref "field V64._reference (fldOffset=0x0)" P-INDEP
-;* V80 tmp78 [V80 ] ( 0, 0 ) int -> zero-ref "field V64._length (fldOffset=0x8)" P-INDEP
-; V81 cse0 [V81,T07] ( 3, 3 ) int -> rcx "CSE #01: moderate"
+;* V57 tmp55 [V57 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V58 tmp56 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V59 tmp57 [V59 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V60 tmp58 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V61 tmp59 [V61 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
+;* V62 tmp60 [V62 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V63 tmp61 [V63 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V64 tmp62 [V64 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V65 tmp63 [V65 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V66 tmp64 [V66 ] ( 0, 0 ) byref -> zero-ref "field V03._reference (fldOffset=0x0)" P-INDEP
+;* V67 tmp65 [V67 ] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x8)" P-INDEP
+;* V68 tmp66 [V68 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP
+;* V69 tmp67 [V69 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
+;* V70 tmp68 [V70 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+;* V71 tmp69 [V71 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
+;* V72 tmp70 [V72 ] ( 0, 0 ) byref -> zero-ref "field V29._reference (fldOffset=0x0)" P-INDEP
+;* V73 tmp71 [V73 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP
+;* V74 tmp72 [V74 ] ( 0, 0 ) byref -> zero-ref single-def "field V37._reference (fldOffset=0x0)" P-INDEP
+;* V75 tmp73 [V75 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
+;* V76 tmp74 [V76 ] ( 0, 0 ) byref -> zero-ref "field V44._reference (fldOffset=0x0)" P-INDEP
+;* V77 tmp75 [V77 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP
+;* V78 tmp76 [V78 ] ( 0, 0 ) byref -> zero-ref "field V50._reference (fldOffset=0x0)" P-INDEP
+;* V79 tmp77 [V79 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
+;* V80 tmp78 [V80 ] ( 0, 0 ) byref -> zero-ref "field V56._reference (fldOffset=0x0)" P-INDEP
+;* V81 tmp79 [V81 ] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP
+; V82 cse0 [V82,T05] ( 3, 3 ) int -> rcx "CSE #01: moderate"
;
; Lcl frame size = 8
G_M34666_IG01:
push rbp
push rbx
push rax
lea rbp, [rsp+0x10]
mov rbx, rdi
;; size=11 bbWeight=1 PerfScore 3.75
G_M34666_IG02:
mov edx, dword ptr [rbx+0x14]
mov ecx, dword ptr [rbx+0x08]
cmp edx, ecx
- ja G_M34666_IG11
+ ja SHORT G_M34666_IG08
mov rsi, bword ptr [rbx]
mov edi, edx
lea rdi, bword ptr [rsi+2*rdi]
sub ecx, edx
- mov dword ptr [rbp-0x0C], 48
- mov dword ptr [rbp-0x10], 57
- movzx rsi, word ptr [rbp-0x0C]
- movzx rdx, word ptr [rbp-0x10]
- lea eax, [rsi-0x01]
- cmp eax, 254
- jae SHORT G_M34666_IG04
- ;; size=57 bbWeight=1 PerfScore 14.00
-G_M34666_IG03:
- lea eax, [rdx-0x01]
- cmp eax, 254
- jae SHORT G_M34666_IG04
- cmp edx, esi
- jl SHORT G_M34666_IG04
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
+ mov edx, 9
+ mov esi, 48
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- jmp SHORT G_M34666_IG05
- ;; size=38 bbWeight=0.50 PerfScore 4.50
-G_M34666_IG04:
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M34666_IG05:
test eax, eax
- jl SHORT G_M34666_IG08
- ;; size=4 bbWeight=1 PerfScore 1.25
-G_M34666_IG06:
+ jl SHORT G_M34666_IG05
+ ;; size=47 bbWeight=1 PerfScore 13.25
+G_M34666_IG03:
add eax, dword ptr [rbx+0x14]
cmp eax, dword ptr [rbx+0x08]
- jae SHORT G_M34666_IG10
+ jae SHORT G_M34666_IG07
mov rcx, bword ptr [rbx]
movzx rax, word ptr [rcx+2*rax]
;; size=15 bbWeight=0.50 PerfScore 5.50
-G_M34666_IG07:
+G_M34666_IG04:
add rsp, 8
pop rbx
pop rbp
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M34666_IG08:
+G_M34666_IG05:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M34666_IG09:
+G_M34666_IG06:
add rsp, 8
pop rbx
pop rbp
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M34666_IG10:
+G_M34666_IG07:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M34666_IG11:
+G_M34666_IG08:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 172, prolog size 8, PerfScore 33.00, instruction count 54, allocated bytes for code 172 (MethodHash=7e897895) for method System.Globalization.TimeSpanParse+StringParser:NextNonDigit():ushort:this (FullOpts)
+; Total bytes of code 108, prolog size 8, PerfScore 24.88, instruction count 38, allocated bytes for code 108 (MethodHash=7e897895) for method System.Globalization.TimeSpanParse+StringParser:NextNonDigit():ushort:this (FullOpts)
-63 (-20.32 % of base) - System.Environment:FindAndParseNextNumber(System.String,byref):int
; Assembly listing for method System.Environment:FindAndParseNextNumber(System.String,byref):int (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; 21 single block inlinees; 6 inlinees without PGO data
+; 0 inlinees with PGO data; 21 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T06] ( 8, 15 ) ref -> r15 class-hnd single-def <System.String>
; V01 arg1 [V01,T01] ( 9, 30 ) byref -> rbx single-def
;* V02 loc0 [V02 ] ( 0, 0 ) int -> zero-ref
; V03 loc1 [V03,T05] ( 4, 18 ) int -> rax
; V04 loc2 [V04,T02] ( 3, 24 ) ushort -> rdx
;* V05 loc3 [V05 ] ( 0, 0 ) int -> zero-ref
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V08 tmp2 [V08 ] ( 0, 0 ) byref -> zero-ref
;* V09 tmp3 [V09 ] ( 0, 0 ) byref -> zero-ref single-def
-; V10 tmp4 [V10,T14] ( 3, 3 ) int -> rcx
+; V10 tmp4 [V10,T11] ( 3, 3 ) int -> rcx
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.OverflowException>
;* V12 tmp6 [V12 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V13 tmp7 [V13,T08] ( 5, 10 ) int -> rdx "Inlining Arg"
+; V13 tmp7 [V13,T07] ( 5, 10 ) int -> rdx "Inlining Arg"
;* V14 tmp8 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V16 tmp10 [V16,T12] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
-; V17 tmp11 [V17,T13] ( 2, 4 ) int -> rcx "Inlining Arg"
-; V18 tmp12 [V18,T15] ( 3, 3 ) int -> rax "Inline return value spill temp"
-; V19 tmp13 [V19 ] ( 2, 4 ) ushort -> [rbp-0x14] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V20 tmp14 [V20 ] ( 2, 4 ) ushort -> [rbp-0x18] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V16 tmp10 [V16,T08] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
+; V17 tmp11 [V17,T09] ( 2, 4 ) int -> rcx "Inlining Arg"
+; V18 tmp12 [V18,T12] ( 3, 3 ) int -> rax "Inline return value spill temp"
+;* V19 tmp13 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V20 tmp14 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V21 tmp15 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V22 tmp16 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V23 tmp17 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V24 tmp18 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V25 tmp19 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V26 tmp20 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V24 tmp18 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V25 tmp19 [V25 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V26 tmp20 [V26 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V27 tmp21 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V28 tmp22 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V29 tmp23 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V30 tmp24 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V31 tmp25 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V32 tmp26 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V33 tmp27 [V33 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V34 tmp28 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V35 tmp29 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V36 tmp30 [V36 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V37 tmp31 [V37 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V38 tmp32 [V38 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V39 tmp33 [V39 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V40 tmp34 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V41 tmp35 [V41 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V42 tmp36 [V42,T07] ( 6, 12 ) ushort -> rsi "Inlining Arg"
-; V43 tmp37 [V43,T09] ( 5, 10 ) ushort -> rdx "Inlining Arg"
-;* V44 tmp38 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V45 tmp39 [V45,T16] ( 3, 3 ) int -> rax "Inline return value spill temp"
-;* V46 tmp40 [V46 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V47 tmp41 [V47 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V30 tmp24 [V30 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V31 tmp25 [V31 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V32 tmp26 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V33 tmp27 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V34 tmp28 [V34 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V35 tmp29 [V35 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V36 tmp30 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V37 tmp31 [V37 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V38 tmp32 [V38 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V39 tmp33 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V40 tmp34 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V41 tmp35 [V41 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V42 tmp36 [V42 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V43 tmp37 [V43 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V44 tmp38 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V45 tmp39 [V45 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V46 tmp40 [V46 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V47 tmp41 [V47,T15] ( 2, 2 ) int -> rax "Inline return value spill temp"
;* V48 tmp42 [V48 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
-;* V49 tmp43 [V49 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V49 tmp43 [V49,T17] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V50 tmp44 [V50 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V51 tmp45 [V51 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V51 tmp45 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V52 tmp46 [V52 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V53 tmp47 [V53 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V54 tmp48 [V54 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V55 tmp49 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V56 tmp50 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V57 tmp51 [V57 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V58 tmp52 [V58 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V59 tmp53 [V59 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V60 tmp54 [V60 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V61 tmp55 [V61 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V62 tmp56 [V62 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V53 tmp47 [V53 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V54 tmp48 [V54 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V55 tmp49 [V55 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V56 tmp50 [V56 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V57 tmp51 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V58 tmp52 [V58 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V59 tmp53 [V59 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V60 tmp54 [V60 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V61 tmp55 [V61 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V62 tmp56 [V62 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V63 tmp57 [V63 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V64 tmp58 [V64 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V65 tmp59 [V65 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V66 tmp60 [V66 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V67 tmp61 [V67 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V68 tmp62 [V68 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V69 tmp63 [V69 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V70 tmp64 [V70 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V71 tmp65 [V71 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V72 tmp66 [V72 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V73 tmp67 [V73 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
-; V74 tmp68 [V74,T10] ( 4, 4 ) byref -> rdi "field V12._reference (fldOffset=0x0)" P-INDEP
-; V75 tmp69 [V75,T11] ( 4, 4 ) int -> rcx "field V12._length (fldOffset=0x8)" P-INDEP
-; V76 tmp70 [V76,T17] ( 2, 2 ) byref -> rdi single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-; V77 tmp71 [V77,T18] ( 2, 2 ) int -> rcx "field V14._length (fldOffset=0x8)" P-INDEP
-;* V78 tmp72 [V78 ] ( 0, 0 ) byref -> zero-ref single-def "field V15._reference (fldOffset=0x0)" P-INDEP
-;* V79 tmp73 [V79 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
-;* V80 tmp74 [V80 ] ( 0, 0 ) byref -> zero-ref single-def "field V26._reference (fldOffset=0x0)" P-INDEP
-;* V81 tmp75 [V81 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
-;* V82 tmp76 [V82 ] ( 0, 0 ) byref -> zero-ref "field V32._reference (fldOffset=0x0)" P-INDEP
-;* V83 tmp77 [V83 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
-;* V84 tmp78 [V84 ] ( 0, 0 ) byref -> zero-ref single-def "field V40._reference (fldOffset=0x0)" P-INDEP
-;* V85 tmp79 [V85 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
-;* V86 tmp80 [V86 ] ( 0, 0 ) byref -> zero-ref "field V55._reference (fldOffset=0x0)" P-INDEP
-;* V87 tmp81 [V87 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
-;* V88 tmp82 [V88 ] ( 0, 0 ) byref -> zero-ref "field V63._reference (fldOffset=0x0)" P-INDEP
-;* V89 tmp83 [V89 ] ( 0, 0 ) int -> zero-ref "field V63._length (fldOffset=0x8)" P-INDEP
-;* V90 tmp84 [V90 ] ( 0, 0 ) byref -> zero-ref "field V71._reference (fldOffset=0x0)" P-INDEP
-;* V91 tmp85 [V91 ] ( 0, 0 ) int -> zero-ref "field V71._length (fldOffset=0x8)" P-INDEP
-; V92 tmp86 [V92,T00] ( 3, 48 ) int -> rdx "index expr"
-; V93 PSPSym [V93,T19] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"
-; V94 cse0 [V94,T04] ( 9, 23 ) int -> rcx multi-def "CSE #01: aggressive"
-; V95 cse1 [V95,T03] ( 3, 24 ) int -> rdi "CSE #02: aggressive"
+;* V64 tmp58 [V64 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V65 tmp59 [V65 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
+; V66 tmp60 [V66,T10] ( 3, 3 ) byref -> rdi "field V12._reference (fldOffset=0x0)" P-INDEP
+; V67 tmp61 [V67,T13] ( 3, 3 ) int -> rcx "field V12._length (fldOffset=0x8)" P-INDEP
+; V68 tmp62 [V68,T14] ( 2, 2 ) byref -> rdi single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+; V69 tmp63 [V69,T16] ( 2, 2 ) int -> rcx "field V14._length (fldOffset=0x8)" P-INDEP
+;* V70 tmp64 [V70 ] ( 0, 0 ) byref -> zero-ref single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V71 tmp65 [V71 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
+;* V72 tmp66 [V72 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP
+;* V73 tmp67 [V73 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
+;* V74 tmp68 [V74 ] ( 0, 0 ) byref -> zero-ref "field V36._reference (fldOffset=0x0)" P-INDEP
+;* V75 tmp69 [V75 ] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
+;* V76 tmp70 [V76 ] ( 0, 0 ) byref -> zero-ref single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+;* V77 tmp71 [V77 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP
+;* V78 tmp72 [V78 ] ( 0, 0 ) byref -> zero-ref "field V51._reference (fldOffset=0x0)" P-INDEP
+;* V79 tmp73 [V79 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
+;* V80 tmp74 [V80 ] ( 0, 0 ) byref -> zero-ref "field V57._reference (fldOffset=0x0)" P-INDEP
+;* V81 tmp75 [V81 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
+;* V82 tmp76 [V82 ] ( 0, 0 ) byref -> zero-ref "field V63._reference (fldOffset=0x0)" P-INDEP
+;* V83 tmp77 [V83 ] ( 0, 0 ) int -> zero-ref "field V63._length (fldOffset=0x8)" P-INDEP
+; V84 tmp78 [V84,T00] ( 3, 48 ) int -> rdx "index expr"
+; V85 PSPSym [V85,T18] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"
+; V86 cse0 [V86,T04] ( 9, 23 ) int -> rcx multi-def "CSE #01: aggressive"
+; V87 cse1 [V87,T03] ( 3, 24 ) int -> rdi "CSE #02: aggressive"
;
; Lcl frame size = 16
G_M49521_IG01:
push rbp
push r15
push rbx
sub rsp, 16
lea rbp, [rsp+0x20]
mov qword ptr [rbp-0x20], rsp
mov r15, rdi
mov rbx, rsi
;; size=23 bbWeight=1 PerfScore 5.25
G_M49521_IG02:
mov edx, dword ptr [rbx]
test r15, r15
jne SHORT G_M49521_IG03
test edx, edx
- jne G_M49521_IG15
+ jne G_M49521_IG13
xor rdi, rdi
xor ecx, ecx
jmp SHORT G_M49521_IG04
- align [3 bytes for IG09]
- ;; size=24 bbWeight=1 PerfScore 7.00
+ align [0 bytes for IG07]
+ ;; size=21 bbWeight=1 PerfScore 7.00
G_M49521_IG03:
mov ecx, dword ptr [r15+0x08]
cmp ecx, edx
- jb G_M49521_IG15
+ jb G_M49521_IG13
mov edi, edx
lea rdi, bword ptr [r15+2*rdi+0x0C]
sub ecx, edx
;; size=21 bbWeight=1 PerfScore 4.75
G_M49521_IG04:
- mov dword ptr [rbp-0x14], 48
- mov dword ptr [rbp-0x18], 57
- movzx rsi, word ptr [rbp-0x14]
- movzx rdx, word ptr [rbp-0x18]
- lea eax, [rsi-0x01]
- cmp eax, 254
- jae SHORT G_M49521_IG05
- lea eax, [rdx-0x01]
- cmp eax, 254
- jae SHORT G_M49521_IG05
- cmp edx, esi
- jl SHORT G_M49521_IG05
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
+ mov edx, 9
+ mov esi, 48
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int
call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int
- jmp SHORT G_M49521_IG06
- ;; size=70 bbWeight=1 PerfScore 14.75
-G_M49521_IG05:
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+DontNegate`1[ushort]](byref,ushort,ushort,int):int
- call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+DontNegate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=12 bbWeight=1 PerfScore 3.25
-G_M49521_IG06:
test eax, eax
- jge SHORT G_M49521_IG07
+ jge SHORT G_M49521_IG05
mov ecx, dword ptr [r15+0x08]
- jmp SHORT G_M49521_IG08
- ;; size=10 bbWeight=1 PerfScore 5.25
-G_M49521_IG07:
+ jmp SHORT G_M49521_IG06
+ ;; size=32 bbWeight=1 PerfScore 9.00
+G_M49521_IG05:
mov ecx, eax
add ecx, dword ptr [rbx]
;; size=4 bbWeight=1 PerfScore 3.25
-G_M49521_IG08:
+G_M49521_IG06:
mov dword ptr [rbx], ecx
xor eax, eax
mov ecx, dword ptr [r15+0x08]
cmp dword ptr [rbx], ecx
- jae SHORT G_M49521_IG13
+ jae SHORT G_M49521_IG11
;; size=12 bbWeight=1 PerfScore 7.25
-G_M49521_IG09:
+G_M49521_IG07:
mov edi, dword ptr [rbx]
mov edx, edi
cmp edx, ecx
- jae SHORT G_M49521_IG14
+ jae SHORT G_M49521_IG12
movzx rdx, word ptr [r15+2*rdx+0x0C]
lea esi, [rdx-0x30]
cmp esi, 9
- ja SHORT G_M49521_IG13
+ ja SHORT G_M49521_IG11
;; size=22 bbWeight=8 PerfScore 58.00
-G_M49521_IG10:
+G_M49521_IG08:
imul eax, eax, 10
- jo SHORT G_M49521_IG11
+ jo SHORT G_M49521_IG09
sub edx, 48
- jo SHORT G_M49521_IG11
+ jo SHORT G_M49521_IG09
add eax, edx
- jo SHORT G_M49521_IG11
- jmp SHORT G_M49521_IG12
+ jo SHORT G_M49521_IG09
+ jmp SHORT G_M49521_IG10
;; size=16 bbWeight=8 PerfScore 60.00
-G_M49521_IG11:
+G_M49521_IG09:
call CORINFO_HELP_OVERFLOW
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M49521_IG12:
+G_M49521_IG10:
inc edi
mov dword ptr [rbx], edi
cmp dword ptr [rbx], ecx
- jb SHORT G_M49521_IG09
+ jb SHORT G_M49521_IG07
;; size=8 bbWeight=8 PerfScore 42.00
-G_M49521_IG13:
+G_M49521_IG11:
add rsp, 16
pop rbx
pop r15
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 2.75
-G_M49521_IG14:
+G_M49521_IG12:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M49521_IG15:
+G_M49521_IG13:
mov edi, 33
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-G_M49521_IG16:
+G_M49521_IG14:
mov eax, 0xD1FFAB1E
;; size=5 bbWeight=0 PerfScore 0.00
-G_M49521_IG17:
+G_M49521_IG15:
add rsp, 16
pop rbx
pop r15
pop rbp
ret
;; size=9 bbWeight=0 PerfScore 0.00
-G_M49521_IG18:
+G_M49521_IG16:
push rbp
push r15
push rbx
sub rsp, 16
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x20]
;; size=19 bbWeight=0 PerfScore 0.00
-G_M49521_IG19:
- lea rax, G_M49521_IG16
+G_M49521_IG17:
+ lea rax, G_M49521_IG14
;; size=7 bbWeight=0 PerfScore 0.00
-G_M49521_IG20:
+G_M49521_IG18:
add rsp, 16
pop rbx
pop r15
pop rbp
ret
;; size=9 bbWeight=0 PerfScore 0.00
-; Total bytes of code 310, prolog size 23, PerfScore 213.50, instruction count 105, allocated bytes for code 310 (MethodHash=bc8e3e8e) for method System.Environment:FindAndParseNextNumber(System.String,byref):int (FullOpts)
+; Total bytes of code 247, prolog size 23, PerfScore 199.25, instruction count 89, allocated bytes for code 247 (MethodHash=bc8e3e8e) for method System.Environment:FindAndParseNextNumber(System.String,byref):int (FullOpts)
-62 (-2.46 % of base) - System.Uri:CheckAuthorityHelper(ulong,int,int,byref,byref,System.UriParser,byref):int:this
; Assembly listing for method System.Uri:CheckAuthorityHelper(ulong,int,int,byref,byref,System.UriParser,byref):int:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 92 single block inlinees; 27 inlinees without PGO data
+; 0 inlinees with PGO data; 92 single block inlinees; 33 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T38] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Uri>
+; V00 this [V00,T36] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Uri>
; V01 arg1 [V01,T01] ( 25, 52 ) long -> rbx single-def
; V02 arg2 [V02,T00] ( 25, 59 ) int -> [rbp-0x2C] do-not-enreg[Z] EH-live
; V03 arg3 [V03,T04] ( 11, 32 ) int -> r14 single-def
-; V04 arg4 [V04,T17] ( 10, 8 ) byref -> [rbp-0x68] EH-live single-def
+; V04 arg4 [V04,T16] ( 10, 8 ) byref -> [rbp-0x60] EH-live single-def
; V05 arg5 [V05,T03] ( 43, 45 ) byref -> r15 single-def
-; V06 arg6 [V06,T16] ( 11, 11 ) ref -> r12 class-hnd single-def <System.UriParser>
+; V06 arg6 [V06,T15] ( 11, 11 ) ref -> r12 class-hnd single-def <System.UriParser>
; V07 arg7 [V07,T11] ( 18, 18 ) byref -> r13 single-def
; V08 loc0 [V08 ] ( 37,113 ) int -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op
-; V09 loc1 [V09,T20] ( 8, 8 ) ushort -> [rbp-0x3C]
-; V10 loc2 [V10,T41] ( 4, 4 ) int -> [rbp-0x40] spill-single-def
+; V09 loc1 [V09,T18] ( 8, 8 ) ushort -> [rbp-0x3C]
+; V10 loc2 [V10,T39] ( 4, 4 ) int -> [rbp-0x40] spill-single-def
; V11 loc3 [V11,T02] ( 30, 49 ) int -> [rbp-0x44]
; V12 loc4 [V12,T14] ( 11, 13 ) ubyte -> [rbp-0x48] spill-single-def
-; V13 loc5 [V13,T42] ( 4, 4 ) int -> [rbp-0x4C] spill-single-def
+; V13 loc5 [V13,T40] ( 4, 4 ) int -> [rbp-0x4C] spill-single-def
; V14 loc6 [V14 ] ( 5, 5 ) int -> [rbp-0x58] do-not-enreg[X] addr-exposed ld-addr-op
; V15 loc7 [V15,T09] ( 5, 26 ) int -> rsi
-; V16 loc8 [V16,T93] ( 2, 2 ) int -> rcx
+; V16 loc8 [V16,T90] ( 2, 2 ) int -> rcx
; V17 loc9 [V17,T08] ( 6, 27 ) int -> r9
-; V18 loc10 [V18,T35] ( 5, 5 ) ref -> r12 class-hnd exact single-def <System.String>
+; V18 loc10 [V18,T33] ( 5, 5 ) ref -> r12 class-hnd exact single-def <System.String>
; V19 loc11 [V19,T12] ( 2, 16 ) ubyte -> rdx
-; V20 loc12 [V20,T70] ( 3, 3 ) int -> rsi
-; V21 loc13 [V21,T36] ( 5, 5 ) ref -> r12 class-hnd exact single-def <System.String>
+; V20 loc12 [V20,T67] ( 3, 3 ) int -> rsi
+; V21 loc13 [V21,T34] ( 5, 5 ) ref -> r12 class-hnd exact single-def <System.String>
;* V22 loc14 [V22 ] ( 0, 0 ) int -> zero-ref
; V23 OutArgs [V23 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V24 tmp1 [V24,T55] ( 2, 4 ) int -> r9 "dup spill"
-; V25 tmp2 [V25,T43] ( 2, 4 ) ref -> r15 class-hnd single-def "impAppendStmt" <System.Object>
+; V24 tmp1 [V24,T53] ( 2, 4 ) int -> r9 "dup spill"
+; V25 tmp2 [V25,T41] ( 2, 4 ) ref -> r15 class-hnd single-def "impAppendStmt" <System.Object>
;* V26 tmp3 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.ArgumentException>
-; V27 tmp4 [V27,T44] ( 2, 4 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Object>
+; V27 tmp4 [V27,T42] ( 2, 4 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Object>
;* V28 tmp5 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.ArgumentException>
; V29 tmp6 [V29,T07] ( 2, 32 ) int -> rsi "dup spill"
;* V30 tmp7 [V30 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V31 tmp8 [V31 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V32 tmp9 [V32 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V33 tmp10 [V33 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V34 tmp11 [V34 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V35 tmp12 [V35 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V36 tmp13 [V36 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V37 tmp14 [V37 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V38 tmp15 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V39 tmp16 [V39,T56] ( 2, 4 ) int -> r9 "impAppendStmt"
+; V39 tmp16 [V39,T54] ( 2, 4 ) int -> r9 "impAppendStmt"
;* V40 tmp17 [V40 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V41 tmp18 [V41 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V42 tmp19 [V42 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V43 tmp20 [V43 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V44 tmp21 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" <System.Object>
-; V45 tmp22 [V45,T39] ( 4, 4 ) ref -> r10 class-hnd "Inline return value spill temp" <System.String>
-; V46 tmp23 [V46,T18] ( 6, 10 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "Inlining Arg" <System.String>
+; V45 tmp22 [V45,T37] ( 4, 4 ) ref -> r10 class-hnd "Inline return value spill temp" <System.String>
+; V46 tmp23 [V46,T17] ( 6, 10 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "Inlining Arg" <System.String>
;* V47 tmp24 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-; V48 tmp25 [V48,T40] ( 4, 4 ) ref -> [rbp-0x78] class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
-; V49 tmp26 [V49,T94] ( 2, 2 ) long -> rdx "Inline stloc first use temp"
-; V50 tmp27 [V50,T45] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
-; V51 tmp28 [V51,T46] ( 2, 4 ) byref -> rsi single-def "Inlining Arg"
+; V48 tmp25 [V48,T38] ( 4, 4 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
+; V49 tmp26 [V49,T91] ( 2, 2 ) long -> rdx "Inline stloc first use temp"
+; V50 tmp27 [V50,T43] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
+; V51 tmp28 [V51,T44] ( 2, 4 ) byref -> rsi single-def "Inlining Arg"
;* V52 tmp29 [V52 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V53 tmp30 [V53 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V54 tmp31 [V54 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V55 tmp32 [V55,T21] ( 4, 8 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.String>
+; V55 tmp32 [V55,T19] ( 4, 8 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.String>
;* V56 tmp33 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V57 tmp34 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V58 tmp35 [V58,T47] ( 2, 4 ) byref -> rsi single-def "Inlining Arg"
-; V59 tmp36 [V59,T57] ( 2, 4 ) int -> rdi "Inlining Arg"
-; V60 tmp37 [V60,T27] ( 3, 6 ) int -> rcx "Inlining Arg"
+; V58 tmp35 [V58,T45] ( 2, 4 ) byref -> rsi single-def "Inlining Arg"
+; V59 tmp36 [V59,T55] ( 2, 4 ) int -> rdi "Inlining Arg"
+; V60 tmp37 [V60,T24] ( 3, 6 ) int -> rcx "Inlining Arg"
;* V61 tmp38 [V61 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V62 tmp39 [V62 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V63 tmp40 [V63,T95] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
+; V63 tmp40 [V63,T92] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
;* V64 tmp41 [V64 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V65 tmp42 [V65,T28] ( 3, 6 ) ubyte -> r9 "Inlining Arg"
-; V66 tmp43 [V66,T22] ( 4, 8 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.String>
+; V65 tmp42 [V65,T25] ( 3, 6 ) ubyte -> r9 "Inlining Arg"
+; V66 tmp43 [V66,T20] ( 4, 8 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.String>
;* V67 tmp44 [V67 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V68 tmp45 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V69 tmp46 [V69,T48] ( 2, 4 ) byref -> rsi single-def "Inlining Arg"
-; V70 tmp47 [V70,T58] ( 2, 4 ) int -> rdi "Inlining Arg"
-; V71 tmp48 [V71,T29] ( 3, 6 ) int -> rcx "Inlining Arg"
+; V69 tmp46 [V69,T46] ( 2, 4 ) byref -> rsi single-def "Inlining Arg"
+; V70 tmp47 [V70,T56] ( 2, 4 ) int -> rdi "Inlining Arg"
+; V71 tmp48 [V71,T26] ( 3, 6 ) int -> rcx "Inlining Arg"
;* V72 tmp49 [V72 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V73 tmp50 [V73 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V74 tmp51 [V74,T30] ( 3, 6 ) int -> rdi "Inlining Arg"
+; V74 tmp51 [V74,T27] ( 3, 6 ) int -> rdi "Inlining Arg"
;* V75 tmp52 [V75 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V76 tmp53 [V76 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V77 tmp54 [V77,T25] ( 4, 8 ) int -> rcx "Inlining Arg"
+; V77 tmp54 [V77,T28] ( 3, 6 ) int -> rcx "Inlining Arg"
;* V78 tmp55 [V78 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V79 tmp56 [V79 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V80 tmp57 [V80,T96] ( 2, 2 ) int -> rax "Inline return value spill temp"
-; V81 tmp58 [V81 ] ( 2, 4 ) ushort -> [rbp-0x5C] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V82 tmp59 [V82 ] ( 2, 4 ) ushort -> [rbp-0x60] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V80 tmp57 [V80,T93] ( 2, 2 ) int -> rax "Inline return value spill temp"
+;* V81 tmp58 [V81 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V82 tmp59 [V82 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V83 tmp60 [V83 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V84 tmp61 [V84 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V85 tmp62 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V86 tmp63 [V86 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V87 tmp64 [V87 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V88 tmp65 [V88 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V86 tmp63 [V86 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V87 tmp64 [V87 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V88 tmp65 [V88 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V89 tmp66 [V89 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V90 tmp67 [V90 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V91 tmp68 [V91 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V92 tmp69 [V92 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V93 tmp70 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V94 tmp71 [V94 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V95 tmp72 [V95 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V96 tmp73 [V96 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V97 tmp74 [V97 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V98 tmp75 [V98 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V99 tmp76 [V99 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V100 tmp77 [V100 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V101 tmp78 [V101 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V102 tmp79 [V102 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V103 tmp80 [V103 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V104 tmp81 [V104,T15] ( 6, 12 ) ushort -> rsi "Inlining Arg"
-; V105 tmp82 [V105,T19] ( 5, 10 ) ushort -> rdx "Inlining Arg"
-;* V106 tmp83 [V106 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V107 tmp84 [V107,T71] ( 3, 3 ) int -> rax "Inline return value spill temp"
-;* V108 tmp85 [V108 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V109 tmp86 [V109 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V92 tmp69 [V92 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V93 tmp70 [V93 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V94 tmp71 [V94 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V95 tmp72 [V95 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V96 tmp73 [V96 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V97 tmp74 [V97 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V98 tmp75 [V98 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V99 tmp76 [V99 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V100 tmp77 [V100 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V101 tmp78 [V101 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V102 tmp79 [V102 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V103 tmp80 [V103 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V104 tmp81 [V104 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V105 tmp82 [V105 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V106 tmp83 [V106 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V107 tmp84 [V107 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V108 tmp85 [V108 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V109 tmp86 [V109,T94] ( 2, 2 ) int -> rax "Inline return value spill temp"
;* V110 tmp87 [V110 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
-;* V111 tmp88 [V111 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V111 tmp88 [V111,T109] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V112 tmp89 [V112 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V113 tmp90 [V113 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V113 tmp90 [V113 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V114 tmp91 [V114 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V115 tmp92 [V115 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V116 tmp93 [V116 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V117 tmp94 [V117 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V118 tmp95 [V118 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V119 tmp96 [V119 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V120 tmp97 [V120 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V121 tmp98 [V121 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V122 tmp99 [V122 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V123 tmp100 [V123 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V124 tmp101 [V124 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V115 tmp92 [V115 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V116 tmp93 [V116 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V117 tmp94 [V117 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V118 tmp95 [V118 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V119 tmp96 [V119 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V120 tmp97 [V120 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V121 tmp98 [V121 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V122 tmp99 [V122 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V123 tmp100 [V123 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V124 tmp101 [V124 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V125 tmp102 [V125 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V126 tmp103 [V126 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V126 tmp103 [V126,T29] ( 3, 6 ) int -> rdi "Inlining Arg"
;* V127 tmp104 [V127 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V128 tmp105 [V128 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V129 tmp106 [V129 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V130 tmp107 [V130 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V131 tmp108 [V131 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V132 tmp109 [V132 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V133 tmp110 [V133 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V134 tmp111 [V134,T31] ( 3, 6 ) int -> rdi "Inlining Arg"
-;* V135 tmp112 [V135 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V129 tmp106 [V129 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V130 tmp107 [V130,T21] ( 4, 8 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.String>
+;* V131 tmp108 [V131 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V132 tmp109 [V132 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V133 tmp110 [V133,T47] ( 2, 4 ) byref -> rsi single-def "Inlining Arg"
+; V134 tmp111 [V134,T57] ( 2, 4 ) int -> rdi "Inlining Arg"
+; V135 tmp112 [V135,T30] ( 3, 6 ) int -> rcx "Inlining Arg"
;* V136 tmp113 [V136 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V137 tmp114 [V137 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V138 tmp115 [V138,T23] ( 4, 8 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.String>
-;* V139 tmp116 [V139 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V140 tmp117 [V140 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V141 tmp118 [V141,T49] ( 2, 4 ) byref -> rsi single-def "Inlining Arg"
-; V142 tmp119 [V142,T59] ( 2, 4 ) int -> rdi "Inlining Arg"
-; V143 tmp120 [V143,T32] ( 3, 6 ) int -> rcx "Inlining Arg"
-;* V144 tmp121 [V144 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V145 tmp122 [V145,T24] ( 4, 8 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.String>
-;* V146 tmp123 [V146 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V147 tmp124 [V147 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V148 tmp125 [V148,T50] ( 2, 4 ) byref -> rdx single-def "Inlining Arg"
-; V149 tmp126 [V149,T60] ( 2, 4 ) int -> rsi "Inlining Arg"
-; V150 tmp127 [V150,T33] ( 3, 6 ) int -> rcx "Inlining Arg"
-;* V151 tmp128 [V151 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V152 tmp129 [V152,T63] ( 3, 3 ) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
-;* V153 tmp130 [V153 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;* V154 tmp131 [V154 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V155 tmp132 [V155 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V156 tmp133 [V156 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V157 tmp134 [V157,T51] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
-; V158 tmp135 [V158,T61] ( 2, 4 ) int -> rsi "Inlining Arg"
-;* V159 tmp136 [V159 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V160 tmp137 [V160 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V161 tmp138 [V161 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
-; V162 tmp139 [V162,T64] ( 3, 3 ) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
-;* V163 tmp140 [V163 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;* V164 tmp141 [V164 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V165 tmp142 [V165 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V166 tmp143 [V166 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V167 tmp144 [V167,T52] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
-; V168 tmp145 [V168,T62] ( 2, 4 ) int -> rsi "Inlining Arg"
-;* V169 tmp146 [V169 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V170 tmp147 [V170 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V171 tmp148 [V171 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
-; V172 tmp149 [V172,T34] ( 3, 6 ) int -> rax "Single return block return value"
-; V173 tmp150 [V173,T79] ( 2, 2 ) byref -> r9 single-def "field V30._reference (fldOffset=0x0)" P-INDEP
-; V174 tmp151 [V174,T97] ( 2, 2 ) int -> rcx "field V30._length (fldOffset=0x8)" P-INDEP
-; V175 tmp152 [V175,T65] ( 3, 3 ) byref -> rdx "field V31._reference (fldOffset=0x0)" P-INDEP
-; V176 tmp153 [V176,T72] ( 3, 3 ) int -> rsi "field V31._length (fldOffset=0x8)" P-INDEP
-; V177 tmp154 [V177,T80] ( 2, 2 ) byref -> rdx single-def "field V32._reference (fldOffset=0x0)" P-INDEP
-; V178 tmp155 [V178,T98] ( 2, 2 ) int -> rcx "field V32._length (fldOffset=0x8)" P-INDEP
-; V179 tmp156 [V179,T66] ( 3, 3 ) byref -> registers "field V33._reference (fldOffset=0x0)" P-INDEP
-; V180 tmp157 [V180,T73] ( 3, 3 ) int -> registers "field V33._length (fldOffset=0x8)" P-INDEP
-; V181 tmp158 [V181,T81] ( 2, 2 ) byref -> r9 single-def "field V34._reference (fldOffset=0x0)" P-INDEP
-; V182 tmp159 [V182,T99] ( 2, 2 ) int -> r10 "field V34._length (fldOffset=0x8)" P-INDEP
-;* V183 tmp160 [V183 ] ( 0, 0 ) byref -> zero-ref "field V35._reference (fldOffset=0x0)" P-INDEP
-;* V184 tmp161 [V184 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
-; V185 tmp162 [V185,T82] ( 2, 2 ) byref -> r9 single-def "field V36._reference (fldOffset=0x0)" P-INDEP
-; V186 tmp163 [V186,T100] ( 2, 2 ) int -> r10 "field V36._length (fldOffset=0x8)" P-INDEP
-;* V187 tmp164 [V187 ] ( 0, 0 ) byref -> zero-ref "field V37._reference (fldOffset=0x0)" P-INDEP
-;* V188 tmp165 [V188 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
-; V189 tmp166 [V189,T67] ( 3, 3 ) byref -> rdi single-def "field V38._reference (fldOffset=0x0)" P-INDEP
-;* V190 tmp167 [V190 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
-; V191 tmp168 [V191,T83] ( 2, 2 ) byref -> rdx single-def "field V40._reference (fldOffset=0x0)" P-INDEP
-; V192 tmp169 [V192,T101] ( 2, 2 ) int -> rcx "field V40._length (fldOffset=0x8)" P-INDEP
-; V193 tmp170 [V193,T68] ( 3, 3 ) byref -> registers "field V41._reference (fldOffset=0x0)" P-INDEP
-; V194 tmp171 [V194,T74] ( 3, 3 ) int -> registers "field V41._length (fldOffset=0x8)" P-INDEP
-; V195 tmp172 [V195,T84] ( 2, 2 ) byref -> rdx single-def "field V42._reference (fldOffset=0x0)" P-INDEP
-; V196 tmp173 [V196,T102] ( 2, 2 ) int -> rcx "field V42._length (fldOffset=0x8)" P-INDEP
-; V197 tmp174 [V197,T69] ( 3, 3 ) byref -> registers "field V43._reference (fldOffset=0x0)" P-INDEP
-; V198 tmp175 [V198,T75] ( 3, 3 ) int -> registers "field V43._length (fldOffset=0x8)" P-INDEP
-; V199 tmp176 [V199,T85] ( 2, 2 ) byref -> rsi single-def "field V56._reference (fldOffset=0x0)" P-INDEP
-; V200 tmp177 [V200,T103] ( 2, 2 ) int -> rdi "field V56._length (fldOffset=0x8)" P-INDEP
-;* V201 tmp178 [V201 ] ( 0, 0 ) byref -> zero-ref single-def "field V57._reference (fldOffset=0x0)" P-INDEP
-;* V202 tmp179 [V202 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
-; V203 tmp180 [V203,T86] ( 2, 2 ) byref -> rsi single-def "field V67._reference (fldOffset=0x0)" P-INDEP
-; V204 tmp181 [V204,T104] ( 2, 2 ) int -> rdi "field V67._length (fldOffset=0x8)" P-INDEP
-;* V205 tmp182 [V205 ] ( 0, 0 ) byref -> zero-ref single-def "field V68._reference (fldOffset=0x0)" P-INDEP
-;* V206 tmp183 [V206 ] ( 0, 0 ) int -> zero-ref "field V68._length (fldOffset=0x8)" P-INDEP
-;* V207 tmp184 [V207 ] ( 0, 0 ) byref -> zero-ref "field V79._reference (fldOffset=0x0)" P-INDEP
-;* V208 tmp185 [V208 ] ( 0, 0 ) int -> zero-ref "field V79._length (fldOffset=0x8)" P-INDEP
-;* V209 tmp186 [V209 ] ( 0, 0 ) byref -> zero-ref single-def "field V88._reference (fldOffset=0x0)" P-INDEP
-;* V210 tmp187 [V210 ] ( 0, 0 ) int -> zero-ref "field V88._length (fldOffset=0x8)" P-INDEP
-;* V211 tmp188 [V211 ] ( 0, 0 ) byref -> zero-ref "field V94._reference (fldOffset=0x0)" P-INDEP
-;* V212 tmp189 [V212 ] ( 0, 0 ) int -> zero-ref "field V94._length (fldOffset=0x8)" P-INDEP
-;* V213 tmp190 [V213 ] ( 0, 0 ) byref -> zero-ref single-def "field V102._reference (fldOffset=0x0)" P-INDEP
-;* V214 tmp191 [V214 ] ( 0, 0 ) int -> zero-ref "field V102._length (fldOffset=0x8)" P-INDEP
-;* V215 tmp192 [V215 ] ( 0, 0 ) byref -> zero-ref "field V117._reference (fldOffset=0x0)" P-INDEP
-;* V216 tmp193 [V216 ] ( 0, 0 ) int -> zero-ref "field V117._length (fldOffset=0x8)" P-INDEP
-;* V217 tmp194 [V217 ] ( 0, 0 ) byref -> zero-ref "field V125._reference (fldOffset=0x0)" P-INDEP
-;* V218 tmp195 [V218 ] ( 0, 0 ) int -> zero-ref "field V125._length (fldOffset=0x8)" P-INDEP
-;* V219 tmp196 [V219 ] ( 0, 0 ) byref -> zero-ref "field V133._reference (fldOffset=0x0)" P-INDEP
-;* V220 tmp197 [V220 ] ( 0, 0 ) int -> zero-ref "field V133._length (fldOffset=0x8)" P-INDEP
-; V221 tmp198 [V221,T87] ( 2, 2 ) byref -> rsi single-def "field V139._reference (fldOffset=0x0)" P-INDEP
-; V222 tmp199 [V222,T105] ( 2, 2 ) int -> rdi "field V139._length (fldOffset=0x8)" P-INDEP
-;* V223 tmp200 [V223 ] ( 0, 0 ) byref -> zero-ref single-def "field V140._reference (fldOffset=0x0)" P-INDEP
-;* V224 tmp201 [V224 ] ( 0, 0 ) int -> zero-ref "field V140._length (fldOffset=0x8)" P-INDEP
-; V225 tmp202 [V225,T88] ( 2, 2 ) byref -> rdx single-def "field V146._reference (fldOffset=0x0)" P-INDEP
-; V226 tmp203 [V226,T106] ( 2, 2 ) int -> rsi "field V146._length (fldOffset=0x8)" P-INDEP
-;* V227 tmp204 [V227 ] ( 0, 0 ) byref -> zero-ref single-def "field V147._reference (fldOffset=0x0)" P-INDEP
-;* V228 tmp205 [V228 ] ( 0, 0 ) int -> zero-ref "field V147._length (fldOffset=0x8)" P-INDEP
-;* V229 tmp206 [V229 ] ( 0, 0 ) byref -> zero-ref "field V153._reference (fldOffset=0x0)" P-INDEP
-;* V230 tmp207 [V230 ] ( 0, 0 ) int -> zero-ref "field V153._length (fldOffset=0x8)" P-INDEP
-; V231 tmp208 [V231,T89] ( 2, 2 ) byref -> rdi single-def "field V154._reference (fldOffset=0x0)" P-INDEP
-; V232 tmp209 [V232,T107] ( 2, 2 ) int -> rsi "field V154._length (fldOffset=0x8)" P-INDEP
-; V233 tmp210 [V233,T90] ( 2, 2 ) byref -> rdi single-def "field V155._reference (fldOffset=0x0)" P-INDEP
-; V234 tmp211 [V234,T108] ( 2, 2 ) int -> rsi "field V155._length (fldOffset=0x8)" P-INDEP
-;* V235 tmp212 [V235 ] ( 0, 0 ) byref -> zero-ref "field V156._reference (fldOffset=0x0)" P-INDEP
-;* V236 tmp213 [V236 ] ( 0, 0 ) int -> zero-ref "field V156._length (fldOffset=0x8)" P-INDEP
-;* V237 tmp214 [V237 ] ( 0, 0 ) byref -> zero-ref single-def "field V159._reference (fldOffset=0x0)" P-INDEP
-;* V238 tmp215 [V238 ] ( 0, 0 ) int -> zero-ref "field V159._length (fldOffset=0x8)" P-INDEP
-;* V239 tmp216 [V239 ] ( 0, 0 ) byref -> zero-ref single-def "field V160._reference (fldOffset=0x0)" P-INDEP
-;* V240 tmp217 [V240 ] ( 0, 0 ) int -> zero-ref "field V160._length (fldOffset=0x8)" P-INDEP
-;* V241 tmp218 [V241 ] ( 0, 0 ) byref -> zero-ref "field V163._reference (fldOffset=0x0)" P-INDEP
-;* V242 tmp219 [V242 ] ( 0, 0 ) int -> zero-ref "field V163._length (fldOffset=0x8)" P-INDEP
-; V243 tmp220 [V243,T91] ( 2, 2 ) byref -> rdi single-def "field V164._reference (fldOffset=0x0)" P-INDEP
-; V244 tmp221 [V244,T109] ( 2, 2 ) int -> rsi "field V164._length (fldOffset=0x8)" P-INDEP
-; V245 tmp222 [V245,T92] ( 2, 2 ) byref -> rdi single-def "field V165._reference (fldOffset=0x0)" P-INDEP
-; V246 tmp223 [V246,T110] ( 2, 2 ) int -> rsi "field V165._length (fldOffset=0x8)" P-INDEP
-;* V247 tmp224 [V247 ] ( 0, 0 ) byref -> zero-ref "field V166._reference (fldOffset=0x0)" P-INDEP
-;* V248 tmp225 [V248 ] ( 0, 0 ) int -> zero-ref "field V166._length (fldOffset=0x8)" P-INDEP
-;* V249 tmp226 [V249 ] ( 0, 0 ) byref -> zero-ref single-def "field V169._reference (fldOffset=0x0)" P-INDEP
-;* V250 tmp227 [V250 ] ( 0, 0 ) int -> zero-ref "field V169._length (fldOffset=0x8)" P-INDEP
-;* V251 tmp228 [V251 ] ( 0, 0 ) byref -> zero-ref single-def "field V170._reference (fldOffset=0x0)" P-INDEP
-;* V252 tmp229 [V252 ] ( 0, 0 ) int -> zero-ref "field V170._length (fldOffset=0x8)" P-INDEP
-; V253 tmp230 [V253,T53] ( 2, 4 ) ref -> rsi "argument with side effect"
-; V254 tmp231 [V254,T54] ( 2, 4 ) ref -> [rbp-0x80] spill-single-def "argument with side effect"
-; V255 PSPSym [V255,T111] ( 1, 1 ) long -> [rbp-0x88] do-not-enreg[V] "PSPSym"
-; V256 cse0 [V256,T06] ( 4, 32 ) int -> rdx "CSE #19: aggressive"
-; V257 cse1 [V257,T05] ( 6, 32 ) int -> rdx multi-def "CSE #22: aggressive"
-; V258 cse2 [V258,T76] ( 3, 3 ) int -> rsi "CSE #14: conservative"
-; V259 cse3 [V259,T13] ( 4, 16 ) int -> r10 "CSE #04: aggressive"
-; V260 cse4 [V260,T37] ( 5, 5 ) int -> r12 "CSE #20: conservative"
-; V261 cse5 [V261,T26] ( 7, 7 ) int -> rdx multi-def "CSE #12: moderate"
-; V262 cse6 [V262,T77] ( 3, 3 ) long -> rdi "CSE #13: conservative"
-; V263 cse7 [V263,T78] ( 3, 3 ) int -> rdi "CSE #07: conservative"
-; V264 rat0 [V264,T10] ( 3, 23.98) int -> r11 "ReplaceWithLclVar is creating a new local variable"
+; V137 tmp114 [V137,T22] ( 4, 8 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.String>
+;* V138 tmp115 [V138 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V139 tmp116 [V139 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V140 tmp117 [V140,T48] ( 2, 4 ) byref -> rdx single-def "Inlining Arg"
+; V141 tmp118 [V141,T58] ( 2, 4 ) int -> rsi "Inlining Arg"
+; V142 tmp119 [V142,T31] ( 3, 6 ) int -> rcx "Inlining Arg"
+;* V143 tmp120 [V143 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V144 tmp121 [V144,T61] ( 3, 3 ) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
+;* V145 tmp122 [V145 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+;* V146 tmp123 [V146 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V147 tmp124 [V147 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V148 tmp125 [V148 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V149 tmp126 [V149,T49] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
+; V150 tmp127 [V150,T59] ( 2, 4 ) int -> rsi "Inlining Arg"
+;* V151 tmp128 [V151 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V152 tmp129 [V152 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V153 tmp130 [V153 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
+; V154 tmp131 [V154,T62] ( 3, 3 ) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
+;* V155 tmp132 [V155 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+;* V156 tmp133 [V156 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V157 tmp134 [V157 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V158 tmp135 [V158 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V159 tmp136 [V159,T50] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
+; V160 tmp137 [V160,T60] ( 2, 4 ) int -> rsi "Inlining Arg"
+;* V161 tmp138 [V161 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V162 tmp139 [V162 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V163 tmp140 [V163 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
+; V164 tmp141 [V164,T32] ( 3, 6 ) int -> rax "Single return block return value"
+; V165 tmp142 [V165,T75] ( 2, 2 ) byref -> r9 single-def "field V30._reference (fldOffset=0x0)" P-INDEP
+; V166 tmp143 [V166,T95] ( 2, 2 ) int -> rcx "field V30._length (fldOffset=0x8)" P-INDEP
+; V167 tmp144 [V167,T63] ( 3, 3 ) byref -> rdx "field V31._reference (fldOffset=0x0)" P-INDEP
+; V168 tmp145 [V168,T68] ( 3, 3 ) int -> rsi "field V31._length (fldOffset=0x8)" P-INDEP
+; V169 tmp146 [V169,T76] ( 2, 2 ) byref -> rdx single-def "field V32._reference (fldOffset=0x0)" P-INDEP
+; V170 tmp147 [V170,T96] ( 2, 2 ) int -> rcx "field V32._length (fldOffset=0x8)" P-INDEP
+; V171 tmp148 [V171,T64] ( 3, 3 ) byref -> registers "field V33._reference (fldOffset=0x0)" P-INDEP
+; V172 tmp149 [V172,T69] ( 3, 3 ) int -> registers "field V33._length (fldOffset=0x8)" P-INDEP
+; V173 tmp150 [V173,T77] ( 2, 2 ) byref -> r9 single-def "field V34._reference (fldOffset=0x0)" P-INDEP
+; V174 tmp151 [V174,T97] ( 2, 2 ) int -> r10 "field V34._length (fldOffset=0x8)" P-INDEP
+;* V175 tmp152 [V175 ] ( 0, 0 ) byref -> zero-ref "field V35._reference (fldOffset=0x0)" P-INDEP
+;* V176 tmp153 [V176 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
+; V177 tmp154 [V177,T78] ( 2, 2 ) byref -> r9 single-def "field V36._reference (fldOffset=0x0)" P-INDEP
+; V178 tmp155 [V178,T98] ( 2, 2 ) int -> r10 "field V36._length (fldOffset=0x8)" P-INDEP
+;* V179 tmp156 [V179 ] ( 0, 0 ) byref -> zero-ref "field V37._reference (fldOffset=0x0)" P-INDEP
+;* V180 tmp157 [V180 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
+; V181 tmp158 [V181,T79] ( 2, 2 ) byref -> rdi single-def "field V38._reference (fldOffset=0x0)" P-INDEP
+;* V182 tmp159 [V182 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
+; V183 tmp160 [V183,T80] ( 2, 2 ) byref -> rdx single-def "field V40._reference (fldOffset=0x0)" P-INDEP
+; V184 tmp161 [V184,T99] ( 2, 2 ) int -> rcx "field V40._length (fldOffset=0x8)" P-INDEP
+; V185 tmp162 [V185,T65] ( 3, 3 ) byref -> registers "field V41._reference (fldOffset=0x0)" P-INDEP
+; V186 tmp163 [V186,T70] ( 3, 3 ) int -> registers "field V41._length (fldOffset=0x8)" P-INDEP
+; V187 tmp164 [V187,T81] ( 2, 2 ) byref -> rdx single-def "field V42._reference (fldOffset=0x0)" P-INDEP
+; V188 tmp165 [V188,T100] ( 2, 2 ) int -> rcx "field V42._length (fldOffset=0x8)" P-INDEP
+; V189 tmp166 [V189,T66] ( 3, 3 ) byref -> registers "field V43._reference (fldOffset=0x0)" P-INDEP
+; V190 tmp167 [V190,T71] ( 3, 3 ) int -> registers "field V43._length (fldOffset=0x8)" P-INDEP
+; V191 tmp168 [V191,T82] ( 2, 2 ) byref -> rsi single-def "field V56._reference (fldOffset=0x0)" P-INDEP
+; V192 tmp169 [V192,T101] ( 2, 2 ) int -> rdi "field V56._length (fldOffset=0x8)" P-INDEP
+;* V193 tmp170 [V193 ] ( 0, 0 ) byref -> zero-ref single-def "field V57._reference (fldOffset=0x0)" P-INDEP
+;* V194 tmp171 [V194 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
+; V195 tmp172 [V195,T83] ( 2, 2 ) byref -> rsi single-def "field V67._reference (fldOffset=0x0)" P-INDEP
+; V196 tmp173 [V196,T102] ( 2, 2 ) int -> rdi "field V67._length (fldOffset=0x8)" P-INDEP
+;* V197 tmp174 [V197 ] ( 0, 0 ) byref -> zero-ref single-def "field V68._reference (fldOffset=0x0)" P-INDEP
+;* V198 tmp175 [V198 ] ( 0, 0 ) int -> zero-ref "field V68._length (fldOffset=0x8)" P-INDEP
+;* V199 tmp176 [V199 ] ( 0, 0 ) byref -> zero-ref "field V79._reference (fldOffset=0x0)" P-INDEP
+;* V200 tmp177 [V200 ] ( 0, 0 ) int -> zero-ref "field V79._length (fldOffset=0x8)" P-INDEP
+;* V201 tmp178 [V201 ] ( 0, 0 ) byref -> zero-ref single-def "field V86._reference (fldOffset=0x0)" P-INDEP
+;* V202 tmp179 [V202 ] ( 0, 0 ) int -> zero-ref "field V86._length (fldOffset=0x8)" P-INDEP
+;* V203 tmp180 [V203 ] ( 0, 0 ) byref -> zero-ref "field V98._reference (fldOffset=0x0)" P-INDEP
+;* V204 tmp181 [V204 ] ( 0, 0 ) int -> zero-ref "field V98._length (fldOffset=0x8)" P-INDEP
+;* V205 tmp182 [V205 ] ( 0, 0 ) byref -> zero-ref single-def "field V106._reference (fldOffset=0x0)" P-INDEP
+;* V206 tmp183 [V206 ] ( 0, 0 ) int -> zero-ref "field V106._length (fldOffset=0x8)" P-INDEP
+;* V207 tmp184 [V207 ] ( 0, 0 ) byref -> zero-ref "field V113._reference (fldOffset=0x0)" P-INDEP
+;* V208 tmp185 [V208 ] ( 0, 0 ) int -> zero-ref "field V113._length (fldOffset=0x8)" P-INDEP
+;* V209 tmp186 [V209 ] ( 0, 0 ) byref -> zero-ref "field V119._reference (fldOffset=0x0)" P-INDEP
+;* V210 tmp187 [V210 ] ( 0, 0 ) int -> zero-ref "field V119._length (fldOffset=0x8)" P-INDEP
+;* V211 tmp188 [V211 ] ( 0, 0 ) byref -> zero-ref "field V125._reference (fldOffset=0x0)" P-INDEP
+;* V212 tmp189 [V212 ] ( 0, 0 ) int -> zero-ref "field V125._length (fldOffset=0x8)" P-INDEP
+; V213 tmp190 [V213,T84] ( 2, 2 ) byref -> rsi single-def "field V131._reference (fldOffset=0x0)" P-INDEP
+; V214 tmp191 [V214,T103] ( 2, 2 ) int -> rdi "field V131._length (fldOffset=0x8)" P-INDEP
+;* V215 tmp192 [V215 ] ( 0, 0 ) byref -> zero-ref single-def "field V132._reference (fldOffset=0x0)" P-INDEP
+;* V216 tmp193 [V216 ] ( 0, 0 ) int -> zero-ref "field V132._length (fldOffset=0x8)" P-INDEP
+; V217 tmp194 [V217,T85] ( 2, 2 ) byref -> rdx single-def "field V138._reference (fldOffset=0x0)" P-INDEP
+; V218 tmp195 [V218,T104] ( 2, 2 ) int -> rsi "field V138._length (fldOffset=0x8)" P-INDEP
+;* V219 tmp196 [V219 ] ( 0, 0 ) byref -> zero-ref single-def "field V139._reference (fldOffset=0x0)" P-INDEP
+;* V220 tmp197 [V220 ] ( 0, 0 ) int -> zero-ref "field V139._length (fldOffset=0x8)" P-INDEP
+;* V221 tmp198 [V221 ] ( 0, 0 ) byref -> zero-ref "field V145._reference (fldOffset=0x0)" P-INDEP
+;* V222 tmp199 [V222 ] ( 0, 0 ) int -> zero-ref "field V145._length (fldOffset=0x8)" P-INDEP
+; V223 tmp200 [V223,T86] ( 2, 2 ) byref -> rdi single-def "field V146._reference (fldOffset=0x0)" P-INDEP
+; V224 tmp201 [V224,T105] ( 2, 2 ) int -> rsi "field V146._length (fldOffset=0x8)" P-INDEP
+; V225 tmp202 [V225,T87] ( 2, 2 ) byref -> rdi single-def "field V147._reference (fldOffset=0x0)" P-INDEP
+; V226 tmp203 [V226,T106] ( 2, 2 ) int -> rsi "field V147._length (fldOffset=0x8)" P-INDEP
+;* V227 tmp204 [V227 ] ( 0, 0 ) byref -> zero-ref "field V148._reference (fldOffset=0x0)" P-INDEP
+;* V228 tmp205 [V228 ] ( 0, 0 ) int -> zero-ref "field V148._length (fldOffset=0x8)" P-INDEP
+;* V229 tmp206 [V229 ] ( 0, 0 ) byref -> zero-ref single-def "field V151._reference (fldOffset=0x0)" P-INDEP
+;* V230 tmp207 [V230 ] ( 0, 0 ) int -> zero-ref "field V151._length (fldOffset=0x8)" P-INDEP
+;* V231 tmp208 [V231 ] ( 0, 0 ) byref -> zero-ref single-def "field V152._reference (fldOffset=0x0)" P-INDEP
+;* V232 tmp209 [V232 ] ( 0, 0 ) int -> zero-ref "field V152._length (fldOffset=0x8)" P-INDEP
+;* V233 tmp210 [V233 ] ( 0, 0 ) byref -> zero-ref "field V155._reference (fldOffset=0x0)" P-INDEP
+;* V234 tmp211 [V234 ] ( 0, 0 ) int -> zero-ref "field V155._length (fldOffset=0x8)" P-INDEP
+; V235 tmp212 [V235,T88] ( 2, 2 ) byref -> rdi single-def "field V156._reference (fldOffset=0x0)" P-INDEP
+; V236 tmp213 [V236,T107] ( 2, 2 ) int -> rsi "field V156._length (fldOffset=0x8)" P-INDEP
+; V237 tmp214 [V237,T89] ( 2, 2 ) byref -> rdi single-def "field V157._reference (fldOffset=0x0)" P-INDEP
+; V238 tmp215 [V238,T108] ( 2, 2 ) int -> rsi "field V157._length (fldOffset=0x8)" P-INDEP
+;* V239 tmp216 [V239 ] ( 0, 0 ) byref -> zero-ref "field V158._reference (fldOffset=0x0)" P-INDEP
+;* V240 tmp217 [V240 ] ( 0, 0 ) int -> zero-ref "field V158._length (fldOffset=0x8)" P-INDEP
+;* V241 tmp218 [V241 ] ( 0, 0 ) byref -> zero-ref single-def "field V161._reference (fldOffset=0x0)" P-INDEP
+;* V242 tmp219 [V242 ] ( 0, 0 ) int -> zero-ref "field V161._length (fldOffset=0x8)" P-INDEP
+;* V243 tmp220 [V243 ] ( 0, 0 ) byref -> zero-ref single-def "field V162._reference (fldOffset=0x0)" P-INDEP
+;* V244 tmp221 [V244 ] ( 0, 0 ) int -> zero-ref "field V162._length (fldOffset=0x8)" P-INDEP
+; V245 tmp222 [V245,T51] ( 2, 4 ) ref -> rsi "argument with side effect"
+; V246 tmp223 [V246,T52] ( 2, 4 ) ref -> [rbp-0x78] spill-single-def "argument with side effect"
+; V247 PSPSym [V247,T110] ( 1, 1 ) long -> [rbp-0x88] do-not-enreg[V] "PSPSym"
+; V248 cse0 [V248,T06] ( 4, 32 ) int -> rdx "CSE #19: aggressive"
+; V249 cse1 [V249,T05] ( 6, 32 ) int -> rdx multi-def "CSE #22: aggressive"
+; V250 cse2 [V250,T72] ( 3, 3 ) int -> rsi "CSE #14: conservative"
+; V251 cse3 [V251,T13] ( 4, 16 ) int -> r10 "CSE #04: aggressive"
+; V252 cse4 [V252,T35] ( 5, 5 ) int -> r12 "CSE #20: moderate"
+; V253 cse5 [V253,T23] ( 7, 7 ) int -> rdx multi-def "CSE #12: moderate"
+; V254 cse6 [V254,T73] ( 3, 3 ) long -> rdi "CSE #13: conservative"
+; V255 cse7 [V255,T74] ( 3, 3 ) int -> rdi "CSE #07: conservative"
+; V256 rat0 [V256,T10] ( 3, 23.98) int -> r11 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 104
G_M46231_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 104
lea rbp, [rsp+0x90]
mov qword ptr [rbp-0x88], rsp
mov dword ptr [rbp-0x2C], edx
- mov bword ptr [rbp-0x68], r8
+ mov bword ptr [rbp-0x60], r8
mov rbx, rsi
mov r14d, ecx
mov r15, r9
mov r12, gword ptr [rbp+0x10]
mov r13, bword ptr [rbp+0x18]
;; size=53 bbWeight=1 PerfScore 12.50
G_M46231_IG02:
mov dword ptr [rbp-0x38], r14d
mov eax, dword ptr [rbp-0x2C]
mov dword ptr [rbp-0x40], eax
mov ecx, dword ptr [rbp-0x2C]
mov dword ptr [rbp-0x44], ecx
xor rdx, rdx
mov gword ptr [r13], rdx
mov rdx, 0xD1FFAB1E
test qword ptr [r15], rdx
setne dl
movzx rdx, dl
mov dword ptr [rbp-0x48], edx
mov esi, dword ptr [r12+0x10]
mov dword ptr [rbp-0x4C], esi
test edx, edx
mov eax, dword ptr [rbp-0x40]
je SHORT G_M46231_IG06
mov r9, gword ptr [rdi+0x10]
- mov gword ptr [rbp-0x70], r9
+ mov gword ptr [rbp-0x68], r9
mov edi, dword ptr [r9+0x08]
cmp edi, dword ptr [rbp-0x2C]
- jb G_M46231_IG73
+ jb G_M46231_IG70
cmp dword ptr [rbp-0x2C], 0
jne SHORT G_M46231_IG03
mov r10, 0xD1FFAB1E ; ''
jmp SHORT G_M46231_IG05
;; size=98 bbWeight=1 PerfScore 30.25
G_M46231_IG03:
mov r10d, dword ptr [r9+0x08]
cmp r10d, dword ptr [rbp-0x2C]
jne SHORT G_M46231_IG04
mov r10, r9
jmp SHORT G_M46231_IG05
;; size=15 bbWeight=1 PerfScore 7.25
G_M46231_IG04:
mov edi, dword ptr [rbp-0x2C]
call System.String:FastAllocateString(int):System.String
mov r10, rax
- mov gword ptr [rbp-0x78], r10
+ mov gword ptr [rbp-0x70], r10
mov edx, dword ptr [rbp-0x2C]
cmp byte ptr [r10], r10b
lea rdi, bword ptr [r10+0x0C]
- mov rax, gword ptr [rbp-0x70]
+ mov rax, gword ptr [rbp-0x68]
lea rsi, bword ptr [rax+0x0C]
add rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
- mov r10, gword ptr [rbp-0x78]
+ mov r10, gword ptr [rbp-0x70]
;; size=52 bbWeight=1 PerfScore 13.75
G_M46231_IG05:
mov rdi, r13
mov rsi, r10
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov eax, dword ptr [rbp-0x40]
;; size=14 bbWeight=1 PerfScore 2.50
G_M46231_IG06:
cmp dword ptr [rbp-0x2C], r14d
je SHORT G_M46231_IG08
movsxd rdi, dword ptr [rbp-0x2C]
movzx r9, word ptr [rbx+2*rdi]
cmp r9d, 47
je SHORT G_M46231_IG08
cmp r9d, 92
jne SHORT G_M46231_IG07
test dword ptr [r12+0x10], 0x2000
jne SHORT G_M46231_IG08
;; size=38 bbWeight=1 PerfScore 14.50
G_M46231_IG07:
cmp r9d, 35
je SHORT G_M46231_IG08
cmp r9d, 63
jne SHORT G_M46231_IG10
;; size=12 bbWeight=1 PerfScore 2.50
G_M46231_IG08:
test byte ptr [r12+0x10], 128
je SHORT G_M46231_IG09
and qword ptr [r15], 0xD1FFAB1E
test dword ptr [r15], 0xD1FFAB1E
jne SHORT G_M46231_IG09
or qword ptr [r15], 0xD1FFAB1E
- jmp G_M46231_IG71
+ jmp G_M46231_IG68
;; size=36 bbWeight=1 PerfScore 16.00
G_M46231_IG09:
- mov r8, bword ptr [rbp-0x68]
+ mov r8, bword ptr [rbp-0x60]
mov dword ptr [r8], 8
- jmp G_M46231_IG71
+ jmp G_M46231_IG68
;; size=16 bbWeight=1 PerfScore 4.00
G_M46231_IG10:
test byte ptr [rbp-0x4C], 4
jne SHORT G_M46231_IG15
;; size=6 bbWeight=1 PerfScore 3.00
G_M46231_IG11:
mov ecx, dword ptr [rbp-0x44]
jmp G_M46231_IG19
align [0 bytes for IG12]
;; size=8 bbWeight=0.50 PerfScore 1.50
G_M46231_IG12:
mov edi, dword ptr [rbp-0x38]
dec edi
cmp ecx, edi
je SHORT G_M46231_IG16
movsxd rdi, ecx
movzx r10, word ptr [rbx+2*rdi]
cmp r10d, 63
je SHORT G_M46231_IG16
mov r11d, r10d
sub r11d, 35
cmp r11d, 57
ja SHORT G_M46231_IG14
;; size=36 bbWeight=4 PerfScore 31.00
G_M46231_IG13:
mov rdi, 0xD1FFAB1E
bt rdi, r11
jb SHORT G_M46231_IG16
;; size=16 bbWeight=3.99 PerfScore 6.98
G_M46231_IG14:
cmp r10d, 64
je SHORT G_M46231_IG17
inc ecx
mov dword ptr [rbp-0x44], ecx
;; size=11 bbWeight=4 PerfScore 10.00
G_M46231_IG15:
mov ecx, dword ptr [rbp-0x44]
cmp ecx, dword ptr [rbp-0x38]
jl SHORT G_M46231_IG12
jmp G_M46231_IG19
;; size=13 bbWeight=8 PerfScore 48.00
G_M46231_IG16:
mov ecx, dword ptr [rbp-0x2C]
jmp G_M46231_IG19
;; size=8 bbWeight=1 PerfScore 3.00
G_M46231_IG17:
or qword ptr [r15], 0xD1FFAB1E
cmp dword ptr [rbp-0x48], 0
je SHORT G_M46231_IG18
mov r9, gword ptr [r13]
- mov gword ptr [rbp-0x80], r9
+ mov gword ptr [rbp-0x78], r9
mov dword ptr [rbp-0x44], ecx
lea edx, [rcx+0x01]
mov rdi, rbx
mov esi, eax
mov ecx, 2
mov r10, 0xD1FFAB1E ; code for System.IriHelper:EscapeUnescapeIri(ulong,int,int,int):System.String
call [r10]System.IriHelper:EscapeUnescapeIri(ulong,int,int,int):System.String
mov rsi, rax
- mov rdi, gword ptr [rbp-0x80]
+ mov rdi, gword ptr [rbp-0x78]
mov rax, 0xD1FFAB1E ; code for System.String:Concat(System.String,System.String):System.String
call [rax]System.String:Concat(System.String,System.String):System.String
mov rsi, rax
mov rdi, r13
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov rsi, gword ptr [r13]
cmp dword ptr [rsi+0x08], 0xFFFF
mov eax, dword ptr [rbp-0x40]
mov ecx, dword ptr [rbp-0x44]
jle SHORT G_M46231_IG18
- mov r8, bword ptr [rbp-0x68]
+ mov r8, bword ptr [rbp-0x60]
mov dword ptr [r8], 6
- jmp G_M46231_IG71
+ jmp G_M46231_IG68
;; size=115 bbWeight=1 PerfScore 32.50
G_M46231_IG18:
inc ecx
movsxd rdi, ecx
movzx r9, word ptr [rbx+2*rdi]
;; size=10 bbWeight=1 PerfScore 2.50
G_M46231_IG19:
mov dword ptr [rbp-0x3C], r9d
cmp r9d, 91
jne G_M46231_IG23
test dword ptr [r12+0x10], 0x800
je G_M46231_IG23
mov dword ptr [rbp-0x44], ecx
lea esi, [rcx+0x01]
lea rdx, [rbp-0x38]
mov rdi, rbx
xor ecx, ecx
mov r10, 0xD1FFAB1E ; code for System.IPv6AddressHelper:InternalIsValid(ulong,int,byref,ubyte):ubyte
call [r10]System.IPv6AddressHelper:InternalIsValid(ulong,int,byref,ubyte):ubyte
test eax, eax
je SHORT G_M46231_IG20
or qword ptr [r15], 0x10000
cmp dword ptr [rbp-0x48], 0
- je G_M46231_IG42
+ je G_M46231_IG39
mov rdi, gword ptr [r13]
test rdi, rdi
jne SHORT G_M46231_IG21
xor rdi, rdi
xor esi, esi
jmp SHORT G_M46231_IG22
;; size=93 bbWeight=1 PerfScore 25.00
G_M46231_IG20:
mov eax, dword ptr [rbp-0x40]
mov ecx, dword ptr [rbp-0x44]
jmp SHORT G_M46231_IG23
- align [0 bytes for IG44]
+ align [0 bytes for IG41]
;; size=8 bbWeight=0.50 PerfScore 2.00
G_M46231_IG21:
lea rsi, bword ptr [rdi+0x0C]
mov edi, dword ptr [rdi+0x08]
mov edx, edi
mov rdi, rsi
mov esi, edx
;; size=14 bbWeight=1 PerfScore 3.25
G_M46231_IG22:
mov ecx, dword ptr [rbp-0x38]
mov r8d, dword ptr [rbp-0x44]
sub ecx, r8d
- js G_M46231_IG74
+ js G_M46231_IG71
movsxd rdx, r8d
lea rdx, [rbx+2*rdx]
mov r8, 0xD1FFAB1E ; code for System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
call [r8]System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
mov rsi, rax
mov rdi, r13
call CORINFO_HELP_CHECKED_ASSIGN_REF
- jmp G_M46231_IG42
+ jmp G_M46231_IG39
;; size=52 bbWeight=1 PerfScore 10.75
G_M46231_IG23:
mov r9d, dword ptr [rbp-0x3C]
add r9d, -48
cmp r9d, 9
ja G_M46231_IG31
mov edi, dword ptr [r12+0x10]
test edi, 0x400
je G_M46231_IG31
test dword ptr [r15], 0xD1FFAB1E
sete r9b
movzx r9, r9b
test edi, 0x10000
je SHORT G_M46231_IG24
lea rdx, [rbp-0x38]
mov rdi, rbx
mov dword ptr [rbp-0x44], ecx
mov esi, ecx
mov r8d, r9d
xor ecx, ecx
mov r9, 0xD1FFAB1E ; code for System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte
call [r9]System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte
jmp SHORT G_M46231_IG26
;; size=90 bbWeight=1 PerfScore 19.00
G_M46231_IG24:
lea rdx, [rbp-0x38]
mov rdi, rbx
mov dword ptr [rbp-0x44], ecx
mov esi, ecx
mov ecx, r9d
mov r9, 0xD1FFAB1E ; code for System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long
call [r9]System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long
cmp rax, -1
jne SHORT G_M46231_IG27
;; size=34 bbWeight=1 PerfScore 6.75
G_M46231_IG25:
mov eax, dword ptr [rbp-0x40]
mov ecx, dword ptr [rbp-0x44]
jmp SHORT G_M46231_IG31
;; size=8 bbWeight=0.50 PerfScore 2.00
G_M46231_IG26:
test eax, eax
je SHORT G_M46231_IG28
;; size=4 bbWeight=1 PerfScore 1.25
G_M46231_IG27:
or qword ptr [r15], 0x20000
cmp dword ptr [rbp-0x48], 0
- je G_M46231_IG42
+ je G_M46231_IG39
mov rdi, gword ptr [r13]
test rdi, rdi
jne SHORT G_M46231_IG29
xor rdi, rdi
xor esi, esi
jmp SHORT G_M46231_IG30
;; size=32 bbWeight=1 PerfScore 11.75
G_M46231_IG28:
mov eax, dword ptr [rbp-0x40]
mov ecx, dword ptr [rbp-0x44]
jmp SHORT G_M46231_IG31
;; size=8 bbWeight=0.50 PerfScore 2.00
G_M46231_IG29:
lea rsi, bword ptr [rdi+0x0C]
mov edi, dword ptr [rdi+0x08]
mov edx, edi
mov rdi, rsi
mov esi, edx
;; size=14 bbWeight=1 PerfScore 3.25
G_M46231_IG30:
mov ecx, dword ptr [rbp-0x38]
mov r8d, dword ptr [rbp-0x44]
sub ecx, r8d
- js G_M46231_IG74
+ js G_M46231_IG71
movsxd rdx, r8d
lea rdx, [rbx+2*rdx]
mov r8, 0xD1FFAB1E ; code for System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
call [r8]System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
mov rsi, rax
mov rdi, r13
call CORINFO_HELP_CHECKED_ASSIGN_REF
- jmp G_M46231_IG42
+ jmp G_M46231_IG39
;; size=52 bbWeight=1 PerfScore 10.75
G_M46231_IG31:
test dword ptr [rbp-0x4C], 512
- je G_M46231_IG39
+ je G_M46231_IG36
test dword ptr [r12+0x10], 0xD1FFAB1E
- jne G_M46231_IG36
+ jne G_M46231_IG33
mov edi, dword ptr [rbp-0x38]
sub edi, ecx
- js G_M46231_IG74
+ js G_M46231_IG71
mov dword ptr [rbp-0x44], ecx
movsxd r9, ecx
lea r9, [rbx+2*r9]
mov r10d, edi
test dword ptr [r15], 0xD1FFAB1E
sete cl
movzx rcx, cl
mov rdi, r9
mov esi, r10d
lea r8, [rbp-0x58]
xor edx, edx
mov r9, 0xD1FFAB1E ; code for System.DomainNameHelper:IsValid(System.ReadOnlySpan`1[ushort],ubyte,ubyte,byref):ubyte
call [r9]System.DomainNameHelper:IsValid(System.ReadOnlySpan`1[ushort],ubyte,ubyte,byref):ubyte
test eax, eax
- je SHORT G_M46231_IG33
+ je SHORT G_M46231_IG32
mov eax, dword ptr [rbp-0x44]
mov edx, eax
add edx, dword ptr [rbp-0x58]
mov dword ptr [rbp-0x38], edx
or qword ptr [r15], 0x30000
mov ecx, dword ptr [rbp-0x58]
test ecx, ecx
- jl G_M46231_IG74
+ jl G_M46231_IG71
movsxd rdx, eax
lea rdi, [rbx+2*rdx]
- mov dword ptr [rbp-0x5C], 65
- mov dword ptr [rbp-0x60], 90
- movzx rsi, word ptr [rbp-0x5C]
- movzx rdx, word ptr [rbp-0x60]
- lea eax, [rsi-0x01]
- cmp eax, 254
- jae SHORT G_M46231_IG34
- lea eax, [rdx-0x01]
- cmp eax, 254
- jae SHORT G_M46231_IG34
- cmp edx, esi
- jl SHORT G_M46231_IG34
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
+ mov edx, 25
+ mov esi, 65
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int
call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int
- ;; size=198 bbWeight=1 PerfScore 44.25
+ test eax, eax
+ jge G_M46231_IG39
+ or qword ptr [r15], 0xD1FFAB1E
+ jmp G_M46231_IG39
+ ;; size=172 bbWeight=1 PerfScore 41.50
G_M46231_IG32:
- jmp SHORT G_M46231_IG35
- ;; size=2 bbWeight=1 PerfScore 2.00
-G_M46231_IG33:
mov eax, dword ptr [rbp-0x40]
mov ecx, dword ptr [rbp-0x44]
- jmp SHORT G_M46231_IG36
- ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M46231_IG34:
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+DontNegate`1[ushort]](byref,ushort,ushort,int):int
- call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+DontNegate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=12 bbWeight=1 PerfScore 3.25
-G_M46231_IG35:
- test eax, eax
- jge G_M46231_IG42
- or qword ptr [r15], 0xD1FFAB1E
- jmp G_M46231_IG42
- ;; size=20 bbWeight=1 PerfScore 6.25
-G_M46231_IG36:
+ ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M46231_IG33:
cmp dword ptr [rbp-0x48], 0
- jne SHORT G_M46231_IG37
+ jne SHORT G_M46231_IG34
test dword ptr [r12+0x10], 0xD1FFAB1E
- je G_M46231_IG39
+ je G_M46231_IG36
;; size=21 bbWeight=1 PerfScore 7.00
-G_M46231_IG37:
+G_M46231_IG34:
mov edi, dword ptr [rbp-0x38]
sub edi, ecx
- js G_M46231_IG74
+ js G_M46231_IG71
mov dword ptr [rbp-0x44], ecx
movsxd r9, ecx
lea r9, [rbx+2*r9]
mov r10d, edi
test dword ptr [r15], 0xD1FFAB1E
sete cl
movzx rcx, cl
mov rdi, r9
mov esi, r10d
lea r8, [rbp-0x58]
mov edx, 1
mov r9, 0xD1FFAB1E ; code for System.DomainNameHelper:IsValid(System.ReadOnlySpan`1[ushort],ubyte,ubyte,byref):ubyte
call [r9]System.DomainNameHelper:IsValid(System.ReadOnlySpan`1[ushort],ubyte,ubyte,byref):ubyte
test eax, eax
- je SHORT G_M46231_IG38
+ je SHORT G_M46231_IG35
mov eax, dword ptr [rbp-0x44]
mov edi, eax
add edi, dword ptr [rbp-0x58]
mov dword ptr [rbp-0x38], edi
- mov r8, bword ptr [rbp-0x68]
+ mov r8, bword ptr [rbp-0x60]
mov bword ptr [rsp], r8
mov rdi, rbx
mov esi, eax
mov edx, dword ptr [rbp-0x38]
mov ecx, dword ptr [rbp-0x48]
mov r8, r15
mov r9, r13
mov rax, 0xD1FFAB1E ; code for System.Uri:CheckAuthorityHelperHandleDnsIri(ulong,int,int,ubyte,byref,byref,byref)
call [rax]System.Uri:CheckAuthorityHelperHandleDnsIri(ulong,int,int,ubyte,byref,byref,byref)
- jmp G_M46231_IG42
+ jmp G_M46231_IG39
;; size=122 bbWeight=1 PerfScore 28.75
-G_M46231_IG38:
+G_M46231_IG35:
mov eax, dword ptr [rbp-0x40]
mov ecx, dword ptr [rbp-0x44]
;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M46231_IG39:
+G_M46231_IG36:
test dword ptr [rbp-0x4C], 256
mov dword ptr [rbp-0x44], ecx
- je G_M46231_IG42
+ je G_M46231_IG39
test dword ptr [r15], 0xD1FFAB1E
sete cl
movzx rcx, cl
lea rdx, [rbp-0x38]
mov rdi, rbx
mov esi, dword ptr [rbp-0x44]
mov r9, 0xD1FFAB1E ; code for System.UncNameHelper:IsValid(ulong,int,byref,ubyte):ubyte
call [r9]System.UncNameHelper:IsValid(ulong,int,byref,ubyte):ubyte
test eax, eax
- je SHORT G_M46231_IG42
+ je SHORT G_M46231_IG39
mov edi, dword ptr [rbp-0x38]
mov eax, dword ptr [rbp-0x44]
sub edi, eax
cmp edi, 256
- jg SHORT G_M46231_IG42
+ jg SHORT G_M46231_IG39
or qword ptr [r15], 0xD1FFAB1E
cmp dword ptr [rbp-0x48], 0
- je SHORT G_M46231_IG42
+ je SHORT G_M46231_IG39
mov rdi, gword ptr [r13]
test rdi, rdi
- jne SHORT G_M46231_IG40
+ jne SHORT G_M46231_IG37
xor rdi, rdi
xor esi, esi
- jmp SHORT G_M46231_IG41
+ jmp SHORT G_M46231_IG38
;; size=100 bbWeight=1 PerfScore 29.75
-G_M46231_IG40:
+G_M46231_IG37:
lea rsi, bword ptr [rdi+0x0C]
mov edi, dword ptr [rdi+0x08]
mov edx, edi
mov rdi, rsi
mov esi, edx
;; size=14 bbWeight=1 PerfScore 3.25
-G_M46231_IG41:
+G_M46231_IG38:
mov ecx, dword ptr [rbp-0x38]
sub ecx, eax
- js G_M46231_IG74
+ js G_M46231_IG71
movsxd rdx, eax
lea rdx, [rbx+2*rdx]
mov rax, 0xD1FFAB1E ; code for System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
call [rax]System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
mov rsi, rax
mov rdi, r13
call CORINFO_HELP_CHECKED_ASSIGN_REF
;; size=41 bbWeight=1 PerfScore 7.75
-G_M46231_IG42:
+G_M46231_IG39:
cmp dword ptr [rbp-0x38], r14d
- jge G_M46231_IG52
+ jge G_M46231_IG49
movsxd rdi, dword ptr [rbp-0x38]
movzx rsi, word ptr [rbx+2*rdi]
cmp esi, 92
- jne SHORT G_M46231_IG43
+ jne SHORT G_M46231_IG40
test dword ptr [r15], 0xD1FFAB1E
- je SHORT G_M46231_IG43
+ je SHORT G_M46231_IG40
mov edx, dword ptr [r12+0x10]
test edx, 0x2000
- jne SHORT G_M46231_IG43
+ jne SHORT G_M46231_IG40
test edx, 0x10000
- je G_M46231_IG51
- mov r8, bword ptr [rbp-0x68]
+ je G_M46231_IG48
+ mov r8, bword ptr [rbp-0x60]
mov dword ptr [r8], 8
or qword ptr [r15], 0xD1FFAB1E
- jmp G_M46231_IG70
+ jmp G_M46231_IG67
;; size=80 bbWeight=1 PerfScore 24.75
-G_M46231_IG43:
+G_M46231_IG40:
cmp esi, 58
- jne G_M46231_IG52
+ jne G_M46231_IG49
mov edx, dword ptr [r12+0x10]
test dl, 8
- je G_M46231_IG51
+ je G_M46231_IG48
xor esi, esi
mov ecx, dword ptr [rbp-0x38]
mov r9d, dword ptr [rbp-0x38]
inc r9d
mov dword ptr [rbp-0x2C], r9d
cmp dword ptr [rbp-0x2C], r14d
- jge SHORT G_M46231_IG47
+ jge SHORT G_M46231_IG44
;; size=45 bbWeight=1 PerfScore 11.00
-G_M46231_IG44:
+G_M46231_IG41:
movsxd r9, dword ptr [rbp-0x2C]
movzx r9, word ptr [rbx+2*r9]
add r9d, -48
cmp r9d, 9
- ja SHORT G_M46231_IG45
+ ja SHORT G_M46231_IG42
lea esi, [rsi+4*rsi]
lea esi, [r9+2*rsi]
cmp esi, 0xFFFF
- jg SHORT G_M46231_IG47
+ jg SHORT G_M46231_IG44
mov r9d, dword ptr [rbp-0x2C]
inc r9d
mov dword ptr [rbp-0x2C], r9d
cmp dword ptr [rbp-0x2C], r14d
- jl SHORT G_M46231_IG44
- jmp SHORT G_M46231_IG47
+ jl SHORT G_M46231_IG41
+ jmp SHORT G_M46231_IG44
;; size=53 bbWeight=8 PerfScore 128.00
-G_M46231_IG45:
+G_M46231_IG42:
cmp r9d, -1
- je SHORT G_M46231_IG47
+ je SHORT G_M46231_IG44
cmp r9d, 15
- je SHORT G_M46231_IG47
+ je SHORT G_M46231_IG44
cmp r9d, -13
- je SHORT G_M46231_IG47
+ je SHORT G_M46231_IG44
test edx, 0x1000
- je SHORT G_M46231_IG46
+ je SHORT G_M46231_IG43
test edx, 0x10000
- jne SHORT G_M46231_IG46
+ jne SHORT G_M46231_IG43
and qword ptr [r15], 0xD1FFAB1E
- jmp SHORT G_M46231_IG47
- align [0 bytes for IG53]
+ jmp SHORT G_M46231_IG44
+ align [0 bytes for IG50]
;; size=43 bbWeight=1 PerfScore 11.25
-G_M46231_IG46:
- mov r8, bword ptr [rbp-0x68]
+G_M46231_IG43:
+ mov r8, bword ptr [rbp-0x60]
mov dword ptr [r8], 10
- jmp G_M46231_IG71
+ jmp G_M46231_IG68
;; size=16 bbWeight=1 PerfScore 4.00
-G_M46231_IG47:
+G_M46231_IG44:
cmp esi, 0xFFFF
- jle SHORT G_M46231_IG48
+ jle SHORT G_M46231_IG45
test dword ptr [r12+0x10], 0x1000
- je SHORT G_M46231_IG46
+ je SHORT G_M46231_IG43
and qword ptr [r15], 0xD1FFAB1E
;; size=26 bbWeight=1 PerfScore 8.25
-G_M46231_IG48:
+G_M46231_IG45:
cmp dword ptr [rbp-0x48], 0
- je SHORT G_M46231_IG52
+ je SHORT G_M46231_IG49
mov rsi, gword ptr [r13]
test rsi, rsi
- jne SHORT G_M46231_IG49
+ jne SHORT G_M46231_IG46
xor rdx, rdx
xor esi, esi
- jmp SHORT G_M46231_IG50
+ jmp SHORT G_M46231_IG47
;; size=21 bbWeight=1 PerfScore 8.75
-G_M46231_IG49:
+G_M46231_IG46:
lea rdx, bword ptr [rsi+0x0C]
mov esi, dword ptr [rsi+0x08]
;; size=7 bbWeight=1 PerfScore 2.50
-G_M46231_IG50:
+G_M46231_IG47:
mov r9d, dword ptr [rbp-0x2C]
sub r9d, ecx
mov ecx, r9d
test ecx, ecx
- jl G_M46231_IG74
+ jl G_M46231_IG71
lea r9, [rbx+2*rdi]
mov rdi, rdx
mov rdx, r9
mov r9, 0xD1FFAB1E ; code for System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
call [r9]System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
mov rsi, rax
mov rdi, r13
call CORINFO_HELP_CHECKED_ASSIGN_REF
- jmp SHORT G_M46231_IG52
+ jmp SHORT G_M46231_IG49
;; size=54 bbWeight=1 PerfScore 10.50
-G_M46231_IG51:
+G_M46231_IG48:
and qword ptr [r15], 0xD1FFAB1E
;; size=7 bbWeight=1 PerfScore 3.00
-G_M46231_IG52:
+G_M46231_IG49:
test dword ptr [r15], 0xD1FFAB1E
- jne G_M46231_IG70
+ jne G_M46231_IG67
and qword ptr [r15], 0xD1FFAB1E
mov r12d, dword ptr [r12+0x10]
test r12d, 0x1000
- je G_M46231_IG59
+ je G_M46231_IG56
or qword ptr [r15], 0xD1FFAB1E
mov edx, dword ptr [rbp-0x2C]
mov dword ptr [rbp-0x38], edx
cmp dword ptr [rbp-0x38], r14d
- jge SHORT G_M46231_IG54
+ jge SHORT G_M46231_IG51
;; size=57 bbWeight=1 PerfScore 18.25
-G_M46231_IG53:
+G_M46231_IG50:
movsxd rdx, dword ptr [rbp-0x38]
movzx rdx, word ptr [rbx+2*rdx]
cmp edx, 47
- je SHORT G_M46231_IG54
+ je SHORT G_M46231_IG51
cmp edx, 63
- je SHORT G_M46231_IG54
+ je SHORT G_M46231_IG51
cmp edx, 35
- je SHORT G_M46231_IG54
+ je SHORT G_M46231_IG51
mov edx, dword ptr [rbp-0x38]
inc edx
mov dword ptr [rbp-0x38], edx
cmp dword ptr [rbp-0x38], r14d
- jl SHORT G_M46231_IG53
+ jl SHORT G_M46231_IG50
;; size=37 bbWeight=8 PerfScore 112.00
-G_M46231_IG54:
+G_M46231_IG51:
cmp dword ptr [rbp-0x48], 0
- je G_M46231_IG70
+ je G_M46231_IG67
;; size=10 bbWeight=2 PerfScore 6.00
-G_M46231_IG55:
+G_M46231_IG52:
mov edx, dword ptr [rbp-0x38]
mov r15d, dword ptr [rbp-0x40]
sub edx, r15d
mov rdi, rbx
mov esi, r15d
call System.String:.ctor(ulong,int,int):this
mov r12, rax
;; size=24 bbWeight=1 PerfScore 4.00
-G_M46231_IG56:
+G_M46231_IG53:
mov r14, gword ptr [r13]
lea rdi, bword ptr [r12+0x0C]
mov esi, dword ptr [r12+0x08]
mov rax, 0xD1FFAB1E ; code for System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte
call [rax]System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte
test eax, eax
- je SHORT G_M46231_IG57
+ je SHORT G_M46231_IG54
mov rsi, r12
- jmp SHORT G_M46231_IG58
- align [0 bytes for IG60]
+ jmp SHORT G_M46231_IG55
+ align [0 bytes for IG57]
;; size=35 bbWeight=1 PerfScore 11.25
-G_M46231_IG57:
+G_M46231_IG54:
mov rdi, r12
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.Globalization.Normalization:IcuNormalize(System.String,int):System.String
call [rax]System.Globalization.Normalization:IcuNormalize(System.String,int):System.String
mov rsi, rax
;; size=23 bbWeight=1 PerfScore 4.00
-G_M46231_IG58:
+G_M46231_IG55:
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.String:Concat(System.String,System.String):System.String
call [rax]System.String:Concat(System.String,System.String):System.String
mov rsi, rax
mov rdi, r13
call CORINFO_HELP_CHECKED_ASSIGN_REF
- jmp G_M46231_IG70
+ jmp G_M46231_IG67
;; size=31 bbWeight=1 PerfScore 7.00
-G_M46231_IG59:
+G_M46231_IG56:
test r12d, 0x10000
- je G_M46231_IG69
+ je G_M46231_IG66
mov esi, dword ptr [rbp-0x2C]
mov edx, dword ptr [rbp-0x2C]
mov dword ptr [rbp-0x38], edx
cmp dword ptr [rbp-0x38], r14d
- jge SHORT G_M46231_IG63
- jmp SHORT G_M46231_IG62
+ jge SHORT G_M46231_IG60
+ jmp SHORT G_M46231_IG59
;; size=30 bbWeight=1 PerfScore 9.25
-G_M46231_IG60:
+G_M46231_IG57:
test edx, edx
- je SHORT G_M46231_IG62
+ je SHORT G_M46231_IG59
;; size=4 bbWeight=8 PerfScore 10.00
-G_M46231_IG61:
+G_M46231_IG58:
movsxd rdx, dword ptr [rbp-0x38]
movzx rdx, word ptr [rbx+2*rdx]
cmp edx, 47
- je SHORT G_M46231_IG63
+ je SHORT G_M46231_IG60
cmp edx, 63
- je SHORT G_M46231_IG63
+ je SHORT G_M46231_IG60
cmp edx, 35
- je SHORT G_M46231_IG63
+ je SHORT G_M46231_IG60
;; size=23 bbWeight=4 PerfScore 35.00
-G_M46231_IG62:
+G_M46231_IG59:
mov edx, dword ptr [rbp-0x2C]
add edx, 2
cmp dword ptr [rbp-0x38], edx
- jge SHORT G_M46231_IG65
+ jge SHORT G_M46231_IG62
movsxd rdx, dword ptr [rbp-0x38]
movzx rdx, word ptr [rbx+2*rdx]
cmp edx, 46
- jne SHORT G_M46231_IG65
+ jne SHORT G_M46231_IG62
mov edx, 1
mov edi, dword ptr [rbp-0x38]
inc edi
mov dword ptr [rbp-0x38], edi
cmp dword ptr [rbp-0x38], r14d
- jl SHORT G_M46231_IG60
+ jl SHORT G_M46231_IG57
;; size=43 bbWeight=8 PerfScore 128.00
-G_M46231_IG63:
+G_M46231_IG60:
or qword ptr [r15], 0xD1FFAB1E
cmp dword ptr [rbp-0x48], 0
- je G_M46231_IG70
+ je G_M46231_IG67
;; size=17 bbWeight=2 PerfScore 12.00
-G_M46231_IG64:
+G_M46231_IG61:
mov edx, dword ptr [rbp-0x38]
sub edx, esi
mov rdi, rbx
call System.String:.ctor(ulong,int,int):this
mov r12, rax
- jmp SHORT G_M46231_IG66
+ jmp SHORT G_M46231_IG63
;; size=18 bbWeight=1 PerfScore 4.75
-G_M46231_IG65:
- mov r8, bword ptr [rbp-0x68]
+G_M46231_IG62:
+ mov r8, bword ptr [rbp-0x60]
mov dword ptr [r8], 8
or qword ptr [r15], 0xD1FFAB1E
- jmp SHORT G_M46231_IG71
+ jmp SHORT G_M46231_IG68
;; size=20 bbWeight=1 PerfScore 7.00
-G_M46231_IG66:
+G_M46231_IG63:
mov r15, gword ptr [r13]
lea rdi, bword ptr [r12+0x0C]
mov esi, dword ptr [r12+0x08]
mov rax, 0xD1FFAB1E ; code for System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte
call [rax]System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte
test eax, eax
- je SHORT G_M46231_IG67
+ je SHORT G_M46231_IG64
mov rsi, r12
- jmp SHORT G_M46231_IG68
+ jmp SHORT G_M46231_IG65
;; size=35 bbWeight=1 PerfScore 11.25
-G_M46231_IG67:
+G_M46231_IG64:
mov rdi, r12
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.Globalization.Normalization:IcuNormalize(System.String,int):System.String
call [rax]System.Globalization.Normalization:IcuNormalize(System.String,int):System.String
mov rsi, rax
;; size=23 bbWeight=1 PerfScore 4.00
-G_M46231_IG68:
+G_M46231_IG65:
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.String:Concat(System.String,System.String):System.String
call [rax]System.String:Concat(System.String,System.String):System.String
mov rsi, rax
mov rdi, r13
call CORINFO_HELP_CHECKED_ASSIGN_REF
- jmp SHORT G_M46231_IG70
+ jmp SHORT G_M46231_IG67
;; size=28 bbWeight=1 PerfScore 7.00
-G_M46231_IG69:
+G_M46231_IG66:
test r12b, 1
- jne SHORT G_M46231_IG65
+ jne SHORT G_M46231_IG62
test r12d, 0x4000
- jne SHORT G_M46231_IG65
+ jne SHORT G_M46231_IG62
;; size=15 bbWeight=1 PerfScore 2.50
-G_M46231_IG70:
+G_M46231_IG67:
mov eax, dword ptr [rbp-0x38]
- jmp SHORT G_M46231_IG72
+ jmp SHORT G_M46231_IG69
;; size=5 bbWeight=1 PerfScore 3.00
-G_M46231_IG71:
+G_M46231_IG68:
mov eax, dword ptr [rbp-0x2C]
;; size=3 bbWeight=1 PerfScore 1.00
-G_M46231_IG72:
+G_M46231_IG69:
add rsp, 104
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M46231_IG73:
+G_M46231_IG70:
mov rdi, r9
mov edx, dword ptr [rbp-0x2C]
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this
call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this
int3
;; size=21 bbWeight=0 PerfScore 0.00
-G_M46231_IG74:
+G_M46231_IG71:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M46231_IG75:
+G_M46231_IG72:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
lea rbp, [rbp+0x90]
;; size=30 bbWeight=0 PerfScore 0.00
-G_M46231_IG76:
- mov r8, bword ptr [rbp-0x68]
+G_M46231_IG73:
+ mov r8, bword ptr [rbp-0x60]
mov dword ptr [r8], 8
- lea rax, G_M46231_IG70
+ lea rax, G_M46231_IG67
;; size=18 bbWeight=0 PerfScore 0.00
-G_M46231_IG77:
+G_M46231_IG74:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-G_M46231_IG78:
+G_M46231_IG75:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
lea rbp, [rbp+0x90]
;; size=30 bbWeight=0 PerfScore 0.00
-G_M46231_IG79:
- mov r8, bword ptr [rbp-0x68]
+G_M46231_IG76:
+ mov r8, bword ptr [rbp-0x60]
mov dword ptr [r8], 1
- lea rax, G_M46231_IG71
+ lea rax, G_M46231_IG68
;; size=18 bbWeight=0 PerfScore 0.00
-G_M46231_IG80:
+G_M46231_IG77:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2518, prolog size 53, PerfScore 1088.23, instruction count 673, allocated bytes for code 2523 (MethodHash=8b574b68) for method System.Uri:CheckAuthorityHelper(ulong,int,int,byref,byref,System.UriParser,byref):int:this (FullOpts)
+; Total bytes of code 2456, prolog size 53, PerfScore 1072.98, instruction count 656, allocated bytes for code 2461 (MethodHash=8b574b68) for method System.Uri:CheckAuthorityHelper(ulong,int,int,byref,byref,System.UriParser,byref):int:this (FullOpts)
-60 (-15.15 % of base) - System.Globalization.TextInfo:ToLowerAsciiInvariant(System.String):System.String
; Assembly listing for method System.Globalization.TextInfo:ToLowerAsciiInvariant(System.String):System.String (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 27 single block inlinees; 12 inlinees without PGO data
+; 0 inlinees with PGO data; 27 single block inlinees; 18 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T05] ( 5, 4 ) ref -> rbx class-hnd single-def <System.String>
+; V00 arg0 [V00,T04] ( 5, 4 ) ref -> rbx class-hnd single-def <System.String>
; V01 loc0 [V01,T01] ( 14, 21 ) int -> r13
-; V02 loc1 [V02,T08] ( 3, 5 ) long -> rbx
+; V02 loc1 [V02,T06] ( 3, 5 ) long -> rbx
; V03 loc2 [V03 ] ( 2, 1 ) byref -> [rbp-0x30] must-init pinned single-def
-; V04 loc3 [V04,T09] ( 5, 2.50) ref -> r12 class-hnd exact single-def <System.String>
-; V05 loc4 [V05,T06] ( 4, 5.50) long -> [rbp-0x38] spill-single-def
+; V04 loc3 [V04,T07] ( 5, 2.50) ref -> r12 class-hnd exact single-def <System.String>
+; V05 loc4 [V05,T05] ( 4, 5.50) long -> [rbp-0x38] spill-single-def
; V06 loc5 [V06 ] ( 3, 1.50) byref -> [rbp-0x40] must-init pinned
;* V07 loc6 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ushort]>
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V09 tmp1 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V10 tmp2 [V10,T25] ( 2, 1 ) long -> rbx
-; V11 tmp3 [V11,T18] ( 3, 1.50) long -> rax
+; V10 tmp2 [V10,T21] ( 2, 1 ) long -> rbx
+; V11 tmp3 [V11,T15] ( 3, 1.50) long -> rax
;* V12 tmp4 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V13 tmp5 [V13 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V14 tmp6 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V15 tmp7 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V16 tmp8 [V16,T11] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
-; V17 tmp9 [V17,T12] ( 2, 2 ) int -> rcx "Inlining Arg"
-; V18 tmp10 [V18,T26] ( 2, 1 ) int -> r13 "Inline return value spill temp"
-; V19 tmp11 [V19 ] ( 2, 2 ) ushort -> [rbp-0x44] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V20 tmp12 [V20 ] ( 2, 2 ) ushort -> [rbp-0x48] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V16 tmp8 [V16,T09] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
+; V17 tmp9 [V17,T10] ( 2, 2 ) int -> rcx "Inlining Arg"
+; V18 tmp10 [V18,T22] ( 2, 1 ) int -> r13 "Inline return value spill temp"
+;* V19 tmp11 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V20 tmp12 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V21 tmp13 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V22 tmp14 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V23 tmp15 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V24 tmp16 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V25 tmp17 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V26 tmp18 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V24 tmp16 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V25 tmp17 [V25 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V26 tmp18 [V26 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V27 tmp19 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V28 tmp20 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V29 tmp21 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V30 tmp22 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V31 tmp23 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V32 tmp24 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V33 tmp25 [V33 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V34 tmp26 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V35 tmp27 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V36 tmp28 [V36 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V37 tmp29 [V37 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V38 tmp30 [V38 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V39 tmp31 [V39 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V40 tmp32 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V41 tmp33 [V41 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V42 tmp34 [V42,T04] ( 6, 6 ) ushort -> rsi "Inlining Arg"
-; V43 tmp35 [V43,T07] ( 5, 5 ) ushort -> rdx "Inlining Arg"
-;* V44 tmp36 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V45 tmp37 [V45,T19] ( 3, 1.50) int -> rax "Inline return value spill temp"
-;* V46 tmp38 [V46 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V47 tmp39 [V47 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V30 tmp22 [V30 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V31 tmp23 [V31 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V32 tmp24 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V33 tmp25 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V34 tmp26 [V34 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V35 tmp27 [V35 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V36 tmp28 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V37 tmp29 [V37 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V38 tmp30 [V38 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V39 tmp31 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V40 tmp32 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V41 tmp33 [V41 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V42 tmp34 [V42 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V43 tmp35 [V43 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V44 tmp36 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V45 tmp37 [V45 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V46 tmp38 [V46 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V47 tmp39 [V47,T23] ( 2, 1 ) int -> rax "Inline return value spill temp"
;* V48 tmp40 [V48 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
-;* V49 tmp41 [V49 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V49 tmp41 [V49,T26] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V50 tmp42 [V50 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V51 tmp43 [V51 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V51 tmp43 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V52 tmp44 [V52 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V53 tmp45 [V53 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V54 tmp46 [V54 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V55 tmp47 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V56 tmp48 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V57 tmp49 [V57 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V58 tmp50 [V58 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V59 tmp51 [V59 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V60 tmp52 [V60 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V61 tmp53 [V61 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V62 tmp54 [V62 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V53 tmp45 [V53 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V54 tmp46 [V54 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V55 tmp47 [V55 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V56 tmp48 [V56 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V57 tmp49 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V58 tmp50 [V58 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V59 tmp51 [V59 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V60 tmp52 [V60 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V61 tmp53 [V61 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V62 tmp54 [V62 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V63 tmp55 [V63 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V64 tmp56 [V64 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V65 tmp57 [V65 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V66 tmp58 [V66 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V67 tmp59 [V67 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V68 tmp60 [V68 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V69 tmp61 [V69 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V70 tmp62 [V70 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V71 tmp63 [V71 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V72 tmp64 [V72 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V73 tmp65 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V74 tmp66 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;* V75 tmp67 [V75 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V76 tmp68 [V76,T13] ( 2, 2 ) int -> rdx "Inlining Arg"
-;* V77 tmp69 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V78 tmp70 [V78 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-;* V79 tmp71 [V79 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V80 tmp72 [V80,T14] ( 2, 2 ) long -> rdx "Inlining Arg"
-;* V81 tmp73 [V81 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V82 tmp74 [V82,T00] ( 5, 32 ) ushort -> rdi "Inlining Arg"
-;* V83 tmp75 [V83 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V84 tmp76 [V84 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
-;* V85 tmp77 [V85 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
-;* V86 tmp78 [V86 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
-; V87 tmp79 [V87,T21] ( 2, 1 ) byref -> rdi single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V88 tmp80 [V88 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
-; V89 tmp81 [V89,T17] ( 3, 1.50) byref -> rdi single-def "field V13._reference (fldOffset=0x0)" P-INDEP
-; V90 tmp82 [V90,T20] ( 3, 1.50) int -> rcx "field V13._length (fldOffset=0x8)" P-INDEP
-; V91 tmp83 [V91,T22] ( 2, 1 ) byref -> rdi single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-; V92 tmp84 [V92,T27] ( 2, 1 ) int -> rcx "field V14._length (fldOffset=0x8)" P-INDEP
-;* V93 tmp85 [V93 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
-;* V94 tmp86 [V94 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
-;* V95 tmp87 [V95 ] ( 0, 0 ) byref -> zero-ref single-def "field V26._reference (fldOffset=0x0)" P-INDEP
-;* V96 tmp88 [V96 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
-;* V97 tmp89 [V97 ] ( 0, 0 ) byref -> zero-ref "field V32._reference (fldOffset=0x0)" P-INDEP
-;* V98 tmp90 [V98 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
-;* V99 tmp91 [V99 ] ( 0, 0 ) byref -> zero-ref single-def "field V40._reference (fldOffset=0x0)" P-INDEP
-;* V100 tmp92 [V100 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
-;* V101 tmp93 [V101 ] ( 0, 0 ) byref -> zero-ref "field V55._reference (fldOffset=0x0)" P-INDEP
-;* V102 tmp94 [V102 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
-;* V103 tmp95 [V103 ] ( 0, 0 ) byref -> zero-ref "field V63._reference (fldOffset=0x0)" P-INDEP
-;* V104 tmp96 [V104 ] ( 0, 0 ) int -> zero-ref "field V63._length (fldOffset=0x8)" P-INDEP
-;* V105 tmp97 [V105 ] ( 0, 0 ) byref -> zero-ref "field V71._reference (fldOffset=0x0)" P-INDEP
-;* V106 tmp98 [V106 ] ( 0, 0 ) int -> zero-ref "field V71._length (fldOffset=0x8)" P-INDEP
-; V107 tmp99 [V107,T23] ( 2, 1 ) byref -> rsi single-def "field V72._reference (fldOffset=0x0)" P-INDEP
-;* V108 tmp100 [V108,T28] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-INDEP
-; V109 tmp101 [V109,T24] ( 2, 1 ) byref -> rsi single-def "field V73._reference (fldOffset=0x0)" P-INDEP
-;* V110 tmp102 [V110,T29] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP
-;* V111 tmp103 [V111 ] ( 0, 0 ) byref -> zero-ref "field V74._reference (fldOffset=0x0)" P-INDEP
-;* V112 tmp104 [V112 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP
-;* V113 tmp105 [V113 ] ( 0, 0 ) byref -> zero-ref single-def "field V77._reference (fldOffset=0x0)" P-INDEP
-;* V114 tmp106 [V114 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x8)" P-INDEP
-; V115 tmp107 [V115,T15] ( 2, 2 ) long -> rbx "Cast away GC"
-; V116 tmp108 [V116,T16] ( 2, 2 ) long -> rax "Cast away GC"
-; V117 cse0 [V117,T03] ( 7, 8 ) int -> r15 "CSE #01: aggressive"
-; V118 cse1 [V118,T10] ( 4, 2 ) byref -> r14 "CSE #02: moderate"
-; V119 cse2 [V119,T02] ( 3, 12 ) long -> rax "CSE #04: aggressive"
+;* V64 tmp56 [V64 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V65 tmp57 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V66 tmp58 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+;* V67 tmp59 [V67 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V68 tmp60 [V68,T11] ( 2, 2 ) int -> rdx "Inlining Arg"
+;* V69 tmp61 [V69 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V70 tmp62 [V70 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V71 tmp63 [V71 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V72 tmp64 [V72,T12] ( 2, 2 ) long -> rdx "Inlining Arg"
+;* V73 tmp65 [V73 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V74 tmp66 [V74,T00] ( 5, 32 ) ushort -> rdi "Inlining Arg"
+;* V75 tmp67 [V75 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V76 tmp68 [V76 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
+;* V77 tmp69 [V77 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
+;* V78 tmp70 [V78 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
+; V79 tmp71 [V79,T16] ( 2, 1 ) byref -> rdi single-def "field V12._reference (fldOffset=0x0)" P-INDEP
+;* V80 tmp72 [V80 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
+; V81 tmp73 [V81,T17] ( 2, 1 ) byref -> rdi single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+; V82 tmp74 [V82,T24] ( 2, 1 ) int -> rcx "field V13._length (fldOffset=0x8)" P-INDEP
+; V83 tmp75 [V83,T18] ( 2, 1 ) byref -> rdi single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+; V84 tmp76 [V84,T25] ( 2, 1 ) int -> rcx "field V14._length (fldOffset=0x8)" P-INDEP
+;* V85 tmp77 [V85 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V86 tmp78 [V86 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
+;* V87 tmp79 [V87 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP
+;* V88 tmp80 [V88 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
+;* V89 tmp81 [V89 ] ( 0, 0 ) byref -> zero-ref "field V36._reference (fldOffset=0x0)" P-INDEP
+;* V90 tmp82 [V90 ] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
+;* V91 tmp83 [V91 ] ( 0, 0 ) byref -> zero-ref single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+;* V92 tmp84 [V92 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP
+;* V93 tmp85 [V93 ] ( 0, 0 ) byref -> zero-ref "field V51._reference (fldOffset=0x0)" P-INDEP
+;* V94 tmp86 [V94 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
+;* V95 tmp87 [V95 ] ( 0, 0 ) byref -> zero-ref "field V57._reference (fldOffset=0x0)" P-INDEP
+;* V96 tmp88 [V96 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
+;* V97 tmp89 [V97 ] ( 0, 0 ) byref -> zero-ref "field V63._reference (fldOffset=0x0)" P-INDEP
+;* V98 tmp90 [V98 ] ( 0, 0 ) int -> zero-ref "field V63._length (fldOffset=0x8)" P-INDEP
+; V99 tmp91 [V99,T19] ( 2, 1 ) byref -> rsi single-def "field V64._reference (fldOffset=0x0)" P-INDEP
+;* V100 tmp92 [V100,T27] ( 0, 0 ) int -> zero-ref "field V64._length (fldOffset=0x8)" P-INDEP
+; V101 tmp93 [V101,T20] ( 2, 1 ) byref -> rsi single-def "field V65._reference (fldOffset=0x0)" P-INDEP
+;* V102 tmp94 [V102,T28] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP
+;* V103 tmp95 [V103 ] ( 0, 0 ) byref -> zero-ref "field V66._reference (fldOffset=0x0)" P-INDEP
+;* V104 tmp96 [V104 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
+;* V105 tmp97 [V105 ] ( 0, 0 ) byref -> zero-ref single-def "field V69._reference (fldOffset=0x0)" P-INDEP
+;* V106 tmp98 [V106 ] ( 0, 0 ) int -> zero-ref "field V69._length (fldOffset=0x8)" P-INDEP
+; V107 tmp99 [V107,T13] ( 2, 2 ) long -> rbx "Cast away GC"
+; V108 tmp100 [V108,T14] ( 2, 2 ) long -> rax "Cast away GC"
+; V109 cse0 [V109,T03] ( 7, 8 ) int -> r15 "CSE #01: aggressive"
+; V110 cse1 [V110,T08] ( 4, 2 ) byref -> r14 "CSE #02: moderate"
+; V111 cse2 [V111,T02] ( 3, 12 ) long -> rax "CSE #04: aggressive"
;
-; Lcl frame size = 40
+; Lcl frame size = 24
G_M34513_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 40
- lea rbp, [rsp+0x50]
+ sub rsp, 24
+ lea rbp, [rsp+0x40]
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov qword ptr [rbp-0x40], rax
mov rbx, rdi
;; size=32 bbWeight=1 PerfScore 9.25
G_M34513_IG02:
mov r15d, dword ptr [rbx+0x08]
test r15d, r15d
jne SHORT G_M34513_IG05
;; size=9 bbWeight=1 PerfScore 3.25
G_M34513_IG03:
mov rax, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
G_M34513_IG04:
- add rsp, 40
+ 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_M34513_IG05:
lea r14, bword ptr [rbx+0x0C]
mov rdi, r14
mov ecx, r15d
- mov dword ptr [rbp-0x44], 65
- mov dword ptr [rbp-0x48], 90
- movzx rsi, word ptr [rbp-0x44]
- movzx rdx, word ptr [rbp-0x48]
- lea eax, [rsi-0x01]
- cmp eax, 254
- jae SHORT G_M34513_IG06
- lea eax, [rdx-0x01]
- cmp eax, 254
- jae SHORT G_M34513_IG06
- cmp edx, esi
- jl SHORT G_M34513_IG06
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
+ mov edx, 25
+ mov esi, 65
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int
call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int
- jmp SHORT G_M34513_IG07
- align [0 bytes for IG12]
- ;; size=80 bbWeight=0.50 PerfScore 7.88
-G_M34513_IG06:
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+DontNegate`1[ushort]](byref,ushort,ushort,int):int
- call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+DontNegate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M34513_IG07:
mov r13d, eax
test r13d, r13d
- jge SHORT G_M34513_IG09
+ jge SHORT G_M34513_IG07
mov rax, rbx
- ;; size=11 bbWeight=0.50 PerfScore 0.88
-G_M34513_IG08:
- add rsp, 40
+ ;; size=43 bbWeight=0.50 PerfScore 3.25
+G_M34513_IG06:
+ 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_M34513_IG09:
+G_M34513_IG07:
mov bword ptr [rbp-0x30], r14
mov rbx, bword ptr [rbp-0x30]
mov edi, r15d
call System.String:FastAllocateString(int):System.String
mov r12, rax
test r12, r12
- jne SHORT G_M34513_IG10
+ jne SHORT G_M34513_IG08
xor eax, eax
- jmp SHORT G_M34513_IG11
+ jmp SHORT G_M34513_IG09
+ align [0 bytes for IG10]
;; size=28 bbWeight=0.50 PerfScore 3.50
-G_M34513_IG10:
+G_M34513_IG08:
lea rax, bword ptr [r12+0x0C]
mov bword ptr [rbp-0x40], rax
mov rax, bword ptr [rbp-0x40]
;; size=13 bbWeight=0.50 PerfScore 1.25
-G_M34513_IG11:
+G_M34513_IG09:
mov qword ptr [rbp-0x38], rax
cmp r15d, r13d
- jb G_M34513_IG17
+ jb G_M34513_IG15
mov rsi, r14
mov edx, dword ptr [r12+0x08]
mov rdi, rax
cmp r13d, edx
- ja G_M34513_IG18
+ ja G_M34513_IG16
mov edx, r13d
add rdx, rdx
mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
movsxd rax, r13d
movzx rax, word ptr [rbx+2*rax]
or eax, 32
movsxd rdi, r13d
mov r14, qword ptr [rbp-0x38]
mov word ptr [r14+2*rdi], ax
inc r13d
cmp r15d, r13d
- jle SHORT G_M34513_IG15
+ jle SHORT G_M34513_IG13
;; size=81 bbWeight=0.50 PerfScore 8.00
-G_M34513_IG12:
+G_M34513_IG10:
movsxd rax, r13d
movzx rdi, word ptr [rbx+2*rax]
lea ecx, [rdi-0x41]
cmp ecx, 25
- ja SHORT G_M34513_IG14
+ ja SHORT G_M34513_IG12
;; size=15 bbWeight=4 PerfScore 16.00
-G_M34513_IG13:
+G_M34513_IG11:
or edi, 32
movzx rdi, dil
;; size=7 bbWeight=2 PerfScore 1.00
-G_M34513_IG14:
+G_M34513_IG12:
mov word ptr [r14+2*rax], di
inc r13d
cmp r15d, r13d
- jg SHORT G_M34513_IG12
+ jg SHORT G_M34513_IG10
;; size=13 bbWeight=4 PerfScore 10.00
-G_M34513_IG15:
+G_M34513_IG13:
xor eax, eax
mov bword ptr [rbp-0x40], rax
mov rax, r12
;; size=9 bbWeight=0.50 PerfScore 0.75
-G_M34513_IG16:
- add rsp, 40
+G_M34513_IG14:
+ 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_M34513_IG17:
+G_M34513_IG15:
mov edi, 33
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-G_M34513_IG18:
+G_M34513_IG16:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 396, prolog size 32, PerfScore 69.88, instruction count 122, allocated bytes for code 396 (MethodHash=7383792e) for method System.Globalization.TextInfo:ToLowerAsciiInvariant(System.String):System.String (FullOpts)
+; Total bytes of code 336, prolog size 32, PerfScore 62.75, instruction count 106, allocated bytes for code 336 (MethodHash=7383792e) for method System.Globalization.TextInfo:ToLowerAsciiInvariant(System.String):System.String (FullOpts)
-60 (-10.05 % of base) - System.Globalization.TimeSpanParse+StringParser:TryParse(System.ReadOnlySpan`1[ushort],byref):ubyte:this
; Assembly listing for method System.Globalization.TimeSpanParse+StringParser:TryParse(System.ReadOnlySpan`1[ushort],byref):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; 19 single block inlinees; 10 inlinees without PGO data
+; 0 inlinees with PGO data; 19 single block inlinees; 16 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 32, 56.50) byref -> rbx this single-def
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ushort]>
; V02 arg2 [V02,T05] ( 9, 6 ) byref -> r15 single-def
-; V03 loc0 [V03,T19] ( 3, 2 ) ubyte -> r14
+; V03 loc0 [V03,T17] ( 3, 2 ) ubyte -> r14
; V04 loc1 [V04 ] ( 9, 4.50) long -> [rbp-0x20] do-not-enreg[X] addr-exposed ld-addr-op
; V05 loc2 [V05 ] ( 2, 1 ) int -> [rbp-0x28] do-not-enreg[X] addr-exposed ld-addr-op
; V06 loc3 [V06 ] ( 2, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V09 tmp2 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ushort]>
; V10 tmp3 [V10,T03] ( 3, 10 ) int -> rcx "Inline stloc first use temp"
;* V11 tmp4 [V11 ] ( 0, 0 ) byref -> zero-ref
;* V12 tmp5 [V12 ] ( 0, 0 ) byref -> zero-ref
-; V13 tmp6 [V13,T08] ( 3, 8 ) int -> rax
-; V14 tmp7 [V14,T22] ( 2, 1 ) ushort -> rsi "Inline return value spill temp"
+; V13 tmp6 [V13,T07] ( 3, 8 ) int -> rax
+; V14 tmp7 [V14,T20] ( 2, 1 ) ushort -> rsi "Inline return value spill temp"
;* V15 tmp8 [V15 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V16 tmp9 [V16 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V17 tmp10 [V17,T15] ( 3, 3 ) int -> rax "Span.get_Item index"
+; V17 tmp10 [V17,T13] ( 3, 3 ) int -> rax "Span.get_Item index"
;* V18 tmp11 [V18 ] ( 0, 0 ) byref -> zero-ref single-def "Span.get_Item ptrToSpan"
-; V19 tmp12 [V19,T07] ( 4, 8 ) int -> rdx "Inlining Arg"
+; V19 tmp12 [V19,T06] ( 4, 8 ) int -> rdx "Inlining Arg"
;* V20 tmp13 [V20 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V21 tmp14 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V22 tmp15 [V22,T11] ( 3, 4 ) byref -> rdi single-def "Inlining Arg"
-; V23 tmp16 [V23,T12] ( 3, 4 ) int -> rcx "Inlining Arg"
-; V24 tmp17 [V24,T18] ( 3, 2.50) int -> rax "Inline return value spill temp"
-; V25 tmp18 [V25 ] ( 2, 4 ) ushort -> [rbp-0x34] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V26 tmp19 [V26 ] ( 2, 4 ) ushort -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V22 tmp15 [V22,T09] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
+; V23 tmp16 [V23,T11] ( 2, 4 ) int -> rcx "Inlining Arg"
+; V24 tmp17 [V24,T16] ( 3, 2.50) int -> rax "Inline return value spill temp"
+;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V27 tmp20 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V28 tmp21 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V29 tmp22 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V30 tmp23 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V31 tmp24 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V32 tmp25 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V30 tmp23 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V31 tmp24 [V31 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V32 tmp25 [V32 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V33 tmp26 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V34 tmp27 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V35 tmp28 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V36 tmp29 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V37 tmp30 [V37 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V38 tmp31 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V39 tmp32 [V39 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V40 tmp33 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V41 tmp34 [V41 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V42 tmp35 [V42 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V43 tmp36 [V43 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V44 tmp37 [V44 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V45 tmp38 [V45 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V46 tmp39 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V47 tmp40 [V47 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V48 tmp41 [V48,T06] ( 6, 8 ) ushort -> rsi "Inlining Arg"
-; V49 tmp42 [V49,T09] ( 5, 6 ) ushort -> rdx "Inlining Arg"
-;* V50 tmp43 [V50 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V51 tmp44 [V51,T20] ( 3, 2 ) int -> rax "Inline return value spill temp"
-;* V52 tmp45 [V52 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V53 tmp46 [V53 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V36 tmp29 [V36 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V37 tmp30 [V37 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V38 tmp31 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V39 tmp32 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V40 tmp33 [V40 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V41 tmp34 [V41 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V42 tmp35 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V43 tmp36 [V43 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V44 tmp37 [V44 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V45 tmp38 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V46 tmp39 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V47 tmp40 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V48 tmp41 [V48 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V49 tmp42 [V49 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V50 tmp43 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V51 tmp44 [V51 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V52 tmp45 [V52 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V53 tmp46 [V53,T18] ( 2, 2 ) int -> rax "Inline return value spill temp"
;* V54 tmp47 [V54 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
-;* V55 tmp48 [V55 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V55 tmp48 [V55,T22] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V56 tmp49 [V56 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V57 tmp50 [V57 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V57 tmp50 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V58 tmp51 [V58 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V59 tmp52 [V59 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V60 tmp53 [V60 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V61 tmp54 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V62 tmp55 [V62 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V63 tmp56 [V63 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V64 tmp57 [V64 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V65 tmp58 [V65 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V66 tmp59 [V66 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V67 tmp60 [V67 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V68 tmp61 [V68 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V59 tmp52 [V59 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V60 tmp53 [V60 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V61 tmp54 [V61 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V62 tmp55 [V62 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V63 tmp56 [V63 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V64 tmp57 [V64 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V65 tmp58 [V65 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V66 tmp59 [V66 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V67 tmp60 [V67 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V68 tmp61 [V68 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V69 tmp62 [V69 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V70 tmp63 [V70 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V71 tmp64 [V71 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V72 tmp65 [V72 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V73 tmp66 [V73 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V74 tmp67 [V74 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V75 tmp68 [V75 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V76 tmp69 [V76 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V77 tmp70 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V78 tmp71 [V78,T21] ( 2, 2 ) long -> rax "Inlining Arg"
-; V79 tmp72 [V79,T16] ( 3, 3 ) int -> rax "Single return block return value"
-; V80 tmp73 [V80,T13] ( 2, 2 ) byref -> rsi single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V81 tmp74 [V81,T14] ( 2, 2 ) int -> rdx single-def "field V01._length (fldOffset=0x8)" P-INDEP
-; V82 tmp75 [V82,T23] ( 2, 1 ) long -> rax "field V08._ticks (fldOffset=0x0)" P-INDEP
-; V83 tmp76 [V83,T10] ( 2, 6 ) byref -> rdi "field V09._reference (fldOffset=0x0)" P-INDEP
-; V84 tmp77 [V84,T01] ( 3, 12 ) int -> rax "field V09._length (fldOffset=0x8)" P-INDEP
-;* V85 tmp78 [V85 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
-;* V86 tmp79 [V86 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
-;* V87 tmp80 [V87 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
-;* V88 tmp81 [V88 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
-;* V89 tmp82 [V89 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
-;* V90 tmp83 [V90 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
-;* V91 tmp84 [V91 ] ( 0, 0 ) byref -> zero-ref "field V38._reference (fldOffset=0x0)" P-INDEP
-;* V92 tmp85 [V92 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
-;* V93 tmp86 [V93 ] ( 0, 0 ) byref -> zero-ref single-def "field V46._reference (fldOffset=0x0)" P-INDEP
-;* V94 tmp87 [V94 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP
-;* V95 tmp88 [V95 ] ( 0, 0 ) byref -> zero-ref "field V61._reference (fldOffset=0x0)" P-INDEP
-;* V96 tmp89 [V96 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
-;* V97 tmp90 [V97 ] ( 0, 0 ) byref -> zero-ref "field V69._reference (fldOffset=0x0)" P-INDEP
-;* V98 tmp91 [V98 ] ( 0, 0 ) int -> zero-ref "field V69._length (fldOffset=0x8)" P-INDEP
-;* V99 tmp92 [V99 ] ( 0, 0 ) byref -> zero-ref "field V77._reference (fldOffset=0x0)" P-INDEP
-;* V100 tmp93 [V100 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x8)" P-INDEP
-; V101 cse0 [V101,T02] ( 3, 12 ) int -> rdi "CSE #04: aggressive"
-; V102 cse1 [V102,T04] ( 3, 10 ) int -> rcx "CSE #01: aggressive"
-; V103 cse2 [V103,T17] ( 3, 3 ) int -> rcx "CSE #03: moderate"
+; V70 tmp63 [V70,T19] ( 2, 2 ) long -> rax "Inlining Arg"
+; V71 tmp64 [V71,T14] ( 3, 3 ) int -> rax "Single return block return value"
+; V72 tmp65 [V72,T10] ( 2, 2 ) byref -> rsi single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V73 tmp66 [V73,T12] ( 2, 2 ) int -> rdx single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V74 tmp67 [V74,T21] ( 2, 1 ) long -> rax "field V08._ticks (fldOffset=0x0)" P-INDEP
+; V75 tmp68 [V75,T08] ( 2, 6 ) byref -> rdi "field V09._reference (fldOffset=0x0)" P-INDEP
+; V76 tmp69 [V76,T01] ( 3, 12 ) int -> rax "field V09._length (fldOffset=0x8)" P-INDEP
+;* V77 tmp70 [V77 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V78 tmp71 [V78 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
+;* V79 tmp72 [V79 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
+;* V80 tmp73 [V80 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
+;* V81 tmp74 [V81 ] ( 0, 0 ) byref -> zero-ref single-def "field V30._reference (fldOffset=0x0)" P-INDEP
+;* V82 tmp75 [V82 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
+;* V83 tmp76 [V83 ] ( 0, 0 ) byref -> zero-ref "field V42._reference (fldOffset=0x0)" P-INDEP
+;* V84 tmp77 [V84 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP
+;* V85 tmp78 [V85 ] ( 0, 0 ) byref -> zero-ref single-def "field V50._reference (fldOffset=0x0)" P-INDEP
+;* V86 tmp79 [V86 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
+;* V87 tmp80 [V87 ] ( 0, 0 ) byref -> zero-ref "field V57._reference (fldOffset=0x0)" P-INDEP
+;* V88 tmp81 [V88 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
+;* V89 tmp82 [V89 ] ( 0, 0 ) byref -> zero-ref "field V63._reference (fldOffset=0x0)" P-INDEP
+;* V90 tmp83 [V90 ] ( 0, 0 ) int -> zero-ref "field V63._length (fldOffset=0x8)" P-INDEP
+;* V91 tmp84 [V91 ] ( 0, 0 ) byref -> zero-ref "field V69._reference (fldOffset=0x0)" P-INDEP
+;* V92 tmp85 [V92 ] ( 0, 0 ) int -> zero-ref "field V69._length (fldOffset=0x8)" P-INDEP
+; V93 cse0 [V93,T02] ( 3, 12 ) int -> rdi "CSE #04: aggressive"
+; V94 cse1 [V94,T04] ( 3, 10 ) int -> rcx "CSE #01: aggressive"
+; V95 cse2 [V95,T15] ( 3, 3 ) int -> rcx "CSE #03: moderate"
;
-; Lcl frame size = 40
+; Lcl frame size = 24
G_M50896_IG01:
push rbp
push r15
push r14
push rbx
- sub rsp, 40
- lea rbp, [rsp+0x40]
+ sub rsp, 24
+ lea rbp, [rsp+0x30]
mov rbx, rdi
mov r15, rcx
;; size=21 bbWeight=1 PerfScore 5.25
G_M50896_IG02:
xor edi, edi
mov qword ptr [r15], rdi
mov bword ptr [rbx], rsi
mov dword ptr [rbx+0x08], edx
mov dword ptr [rbx+0x14], -1
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Globalization.TimeSpanParse+StringParser:NextChar():this
call [rax]System.Globalization.TimeSpanParse+StringParser:NextChar():this
cmp word ptr [rbx+0x10], 32
jne SHORT G_M50896_IG09
;; size=40 bbWeight=1 PerfScore 11.75
G_M50896_IG03:
mov rdi, bword ptr [rbx]
mov eax, dword ptr [rbx+0x08]
mov ecx, dword ptr [rbx+0x14]
cmp ecx, eax
jge SHORT G_M50896_IG05
;; size=13 bbWeight=4 PerfScore 29.00
G_M50896_IG04:
inc ecx
mov dword ptr [rbx+0x14], ecx
;; size=5 bbWeight=2 PerfScore 2.50
G_M50896_IG05:
mov ecx, dword ptr [rbx+0x14]
cmp ecx, eax
jb SHORT G_M50896_IG07
;; size=7 bbWeight=4 PerfScore 13.00
G_M50896_IG06:
xor eax, eax
jmp SHORT G_M50896_IG08
;; size=4 bbWeight=2 PerfScore 4.50
G_M50896_IG07:
mov eax, ecx
movzx rax, word ptr [rdi+2*rax]
;; size=6 bbWeight=2 PerfScore 4.50
G_M50896_IG08:
mov word ptr [rbx+0x10], ax
cmp word ptr [rbx+0x10], 32
je SHORT G_M50896_IG03
;; size=11 bbWeight=4 PerfScore 20.00
G_M50896_IG09:
cmp word ptr [rbx+0x10], 9
je SHORT G_M50896_IG03
;; size=7 bbWeight=8 PerfScore 32.00
G_M50896_IG10:
xor r14d, r14d
cmp word ptr [rbx+0x10], 45
jne SHORT G_M50896_IG12
;; size=10 bbWeight=1 PerfScore 4.25
G_M50896_IG11:
mov r14d, 1
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Globalization.TimeSpanParse+StringParser:NextChar():this
call [rax]System.Globalization.TimeSpanParse+StringParser:NextChar():this
;; size=21 bbWeight=0.50 PerfScore 1.88
G_M50896_IG12:
mov edx, dword ptr [rbx+0x14]
mov ecx, dword ptr [rbx+0x08]
cmp edx, ecx
- ja G_M50896_IG32
+ ja G_M50896_IG29
mov rsi, bword ptr [rbx]
mov edi, edx
lea rdi, bword ptr [rsi+2*rdi]
sub ecx, edx
- mov dword ptr [rbp-0x34], 48
- mov dword ptr [rbp-0x38], 57
- movzx rsi, word ptr [rbp-0x34]
- movzx rdx, word ptr [rbp-0x38]
- lea eax, [rsi-0x01]
- cmp eax, 254
- jae SHORT G_M50896_IG14
- ;; size=57 bbWeight=1 PerfScore 14.00
-G_M50896_IG13:
- lea eax, [rdx-0x01]
- cmp eax, 254
- jae SHORT G_M50896_IG14
- cmp edx, esi
- jl SHORT G_M50896_IG14
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
+ mov edx, 9
+ mov esi, 48
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- jmp SHORT G_M50896_IG15
- ;; size=38 bbWeight=0.50 PerfScore 4.50
-G_M50896_IG14:
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M50896_IG15:
test eax, eax
- jl SHORT G_M50896_IG17
- ;; size=4 bbWeight=1 PerfScore 1.25
-G_M50896_IG16:
+ jl SHORT G_M50896_IG14
+ ;; size=51 bbWeight=1 PerfScore 13.25
+G_M50896_IG13:
add eax, dword ptr [rbx+0x14]
cmp eax, dword ptr [rbx+0x08]
- jae G_M50896_IG31
+ jae G_M50896_IG28
mov rsi, bword ptr [rbx]
mov edi, eax
movzx rsi, word ptr [rsi+2*rdi]
cmp esi, 58
- jne SHORT G_M50896_IG17
+ jne SHORT G_M50896_IG14
lea rsi, [rbp-0x20]
mov rdi, rbx
mov rdx, r15
mov rax, 0xD1FFAB1E ; code for System.Globalization.TimeSpanParse+StringParser:ParseTime(byref,byref):ubyte:this
call [rax]System.Globalization.TimeSpanParse+StringParser:ParseTime(byref,byref):ubyte:this
test eax, eax
- jne G_M50896_IG21
- jmp SHORT G_M50896_IG18
+ jne G_M50896_IG18
+ jmp SHORT G_M50896_IG15
;; size=58 bbWeight=0.50 PerfScore 10.00
-G_M50896_IG17:
+G_M50896_IG14:
lea rdx, [rbp-0x28]
mov rdi, rbx
mov rcx, r15
mov esi, 0xD1FFAB1E
mov rax, 0xD1FFAB1E ; code for System.Globalization.TimeSpanParse+StringParser:ParseInt(int,byref,byref):ubyte:this
call [rax]System.Globalization.TimeSpanParse+StringParser:ParseInt(int,byref,byref):ubyte:this
test eax, eax
- je SHORT G_M50896_IG18
+ je SHORT G_M50896_IG15
movsxd rdi, dword ptr [rbp-0x28]
mov rax, 0xD1FFAB1E
imul rdi, rax
mov qword ptr [rbp-0x20], rdi
cmp word ptr [rbx+0x10], 46
- jne SHORT G_M50896_IG21
+ jne SHORT G_M50896_IG18
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Globalization.TimeSpanParse+StringParser:NextChar():this
call [rax]System.Globalization.TimeSpanParse+StringParser:NextChar():this
lea rsi, [rbp-0x30]
mov rdi, rbx
mov rdx, r15
mov rax, 0xD1FFAB1E ; code for System.Globalization.TimeSpanParse+StringParser:ParseTime(byref,byref):ubyte:this
call [rax]System.Globalization.TimeSpanParse+StringParser:ParseTime(byref,byref):ubyte:this
test eax, eax
- jne SHORT G_M50896_IG20
+ jne SHORT G_M50896_IG17
;; size=101 bbWeight=0.50 PerfScore 12.50
-G_M50896_IG18:
+G_M50896_IG15:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M50896_IG19:
- add rsp, 40
+G_M50896_IG16:
+ add rsp, 24
pop rbx
pop r14
pop r15
pop rbp
ret
;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M50896_IG20:
+G_M50896_IG17:
mov rdi, qword ptr [rbp-0x20]
add rdi, qword ptr [rbp-0x30]
mov qword ptr [rbp-0x20], rdi
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M50896_IG21:
+G_M50896_IG18:
test r14d, r14d
- je SHORT G_M50896_IG23
+ je SHORT G_M50896_IG20
mov rdi, qword ptr [rbp-0x20]
neg rdi
mov qword ptr [rbp-0x20], rdi
cmp qword ptr [rbp-0x20], 0
- jle SHORT G_M50896_IG25
+ jle SHORT G_M50896_IG22
;; size=23 bbWeight=0.50 PerfScore 3.25
-G_M50896_IG22:
+G_M50896_IG19:
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Globalization.TimeSpanParse+TimeSpanResult:SetOverflowFailure():ubyte:this
call [rax]System.Globalization.TimeSpanParse+TimeSpanResult:SetOverflowFailure():ubyte:this
- jmp SHORT G_M50896_IG27
+ jmp SHORT G_M50896_IG24
;; size=17 bbWeight=0.50 PerfScore 2.75
-G_M50896_IG23:
+G_M50896_IG20:
cmp qword ptr [rbp-0x20], 0
- jl SHORT G_M50896_IG22
- jmp SHORT G_M50896_IG25
+ jl SHORT G_M50896_IG19
+ jmp SHORT G_M50896_IG22
;; size=9 bbWeight=0.50 PerfScore 2.50
-G_M50896_IG24:
+G_M50896_IG21:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Globalization.TimeSpanParse+StringParser:NextChar():this
call [rax]System.Globalization.TimeSpanParse+StringParser:NextChar():this
;; size=15 bbWeight=2 PerfScore 7.00
-G_M50896_IG25:
+G_M50896_IG22:
movzx rdi, word ptr [rbx+0x10]
cmp edi, 32
- je SHORT G_M50896_IG24
+ je SHORT G_M50896_IG21
cmp edi, 9
- je SHORT G_M50896_IG24
+ je SHORT G_M50896_IG21
;; size=14 bbWeight=4 PerfScore 18.00
-G_M50896_IG26:
+G_M50896_IG23:
mov edi, dword ptr [rbx+0x14]
cmp edi, dword ptr [rbx+0x08]
- jge SHORT G_M50896_IG29
+ jge SHORT G_M50896_IG26
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Globalization.TimeSpanParse+TimeSpanResult:SetBadTimeSpanFailure():ubyte:this
call [rax]System.Globalization.TimeSpanParse+TimeSpanResult:SetBadTimeSpanFailure():ubyte:this
;; size=23 bbWeight=0.50 PerfScore 4.75
-G_M50896_IG27:
+G_M50896_IG24:
movzx rax, al
;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M50896_IG28:
- add rsp, 40
+G_M50896_IG25:
+ add rsp, 24
pop rbx
pop r14
pop r15
pop rbp
ret
;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M50896_IG29:
+G_M50896_IG26:
mov rax, qword ptr [rbp-0x20]
mov qword ptr [r15], rax
mov eax, 1
;; size=12 bbWeight=0.50 PerfScore 1.12
-G_M50896_IG30:
- add rsp, 40
+G_M50896_IG27:
+ add rsp, 24
pop rbx
pop r14
pop r15
pop rbp
ret
;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M50896_IG31:
+G_M50896_IG28:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M50896_IG32:
+G_M50896_IG29:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 597, prolog size 21, PerfScore 219.00, instruction count 173, allocated bytes for code 597 (MethodHash=8030392f) for method System.Globalization.TimeSpanParse+StringParser:TryParse(System.ReadOnlySpan`1[ushort],byref):ubyte:this (FullOpts)
+; Total bytes of code 537, prolog size 21, PerfScore 210.88, instruction count 157, allocated bytes for code 537 (MethodHash=8030392f) for method System.Globalization.TimeSpanParse+StringParser:TryParse(System.ReadOnlySpan`1[ushort],byref):ubyte:this (FullOpts)