-136 (-16.27 % of base) - System.Text.Json.Serialization.Converters.Int128Converter:Format(System.Span`1[ubyte],System.Int128,byref)
; Assembly listing for method System.Text.Json.Serialization.Converters.Int128Converter:Format(System.Span`1[ubyte],System.Int128,byref) (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 30 single block inlinees; 14 inlinees without PGO data
+; 0 inlinees with PGO data; 29 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.Span`1[ubyte]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.Int128>
-; V02 arg2 [V02,T14] ( 5, 3.50) byref -> x19 single-def
-; V03 loc0 [V03,T38] ( 2, 1.50) ref -> x0 class-hnd exact single-def <System.Globalization.CultureInfo>
+; V02 arg2 [V02,T10] ( 5, 3.50) byref -> x21 single-def
+; V03 loc0 [V03,T29] ( 2, 1.50) ref -> x0 class-hnd exact single-def <System.Globalization.CultureInfo>
;* V04 loc1 [V04 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ushort]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V07 tmp2 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inlining Arg" <System.Int128>
;* V10 tmp5 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
;* V11 tmp6 [V11 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V12 tmp7 [V12,T28] ( 4, 2 ) ref -> x24 class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V12 tmp7 [V12,T19] ( 4, 2 ) ref -> x24 class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V13 tmp8 [V13 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
-; V14 tmp9 [V14,T30] ( 2, 2 ) ref -> x2 class-hnd single-def "dup spill" <ubyte[]>
-; V15 tmp10 [V15,T24] ( 6, 3 ) ref -> x2
-; V16 tmp11 [V16,T25] ( 3, 3 ) ref -> x2 class-hnd single-def "dup spill" <ubyte[]>
+; V14 tmp9 [V14,T21] ( 2, 2 ) ref -> x2 class-hnd single-def "dup spill" <ubyte[]>
+; V15 tmp10 [V15,T15] ( 6, 3 ) ref -> x2
+; V16 tmp11 [V16,T16] ( 3, 3 ) ref -> x2 class-hnd single-def "dup spill" <ubyte[]>
;* V17 tmp12 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ubyte[]>
;* V18 tmp13 [V18 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V19 tmp14 [V19 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.UInt128>
-;* V20 tmp15 [V20 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V21 tmp16 [V21 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V22 tmp17 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V23 tmp18 [V23 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V24 tmp19 [V24 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V25 tmp20 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V26 tmp21 [V26 ] ( 3, 1.50) byref -> [fp+0x28] must-init pinned "Inline stloc first use temp"
-; V27 tmp22 [V27,T33] ( 3, 1.50) long -> x22 "Inline stloc first use temp"
-;* V28 tmp23 [V28 ] ( 0, 0 ) long -> zero-ref
-; V29 tmp24 [V29,T26] ( 5, 2.50) int -> x24 "Inline return value spill temp"
-;* V30 tmp25 [V30 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inlining Arg" <System.UInt128>
-;* V31 tmp26 [V31 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V32 tmp27 [V32,T27] ( 5, 2.50) int -> x24 "Inline stloc first use temp"
-;* V33 tmp28 [V33 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.UInt128>
-;* V34 tmp29 [V34 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.UInt128>
-;* V35 tmp30 [V35 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
-;* V36 tmp31 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V37 tmp32 [V37 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V38 tmp33 [V38 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V39 tmp34 [V39,T34] ( 3, 1.50) int -> x0 "Inline stloc first use temp"
-;* V40 tmp35 [V40 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
-;* V41 tmp36 [V41 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V42 tmp37 [V42 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
-;* V43 tmp38 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V44 tmp39 [V44 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V19 tmp14 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V20 tmp15 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V21 tmp16 [V21 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V22 tmp17 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+; V23 tmp18 [V23 ] ( 3, 1.50) byref -> [fp+0x18] must-init pinned "Inline stloc first use temp"
+; V24 tmp19 [V24,T24] ( 3, 1.50) long -> x23 "Inline stloc first use temp"
+;* V25 tmp20 [V25 ] ( 0, 0 ) long -> zero-ref
+; V26 tmp21 [V26,T17] ( 5, 2.50) int -> x24 "Inline return value spill temp"
+;* V27 tmp22 [V27 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inlining Arg" <System.UInt128>
+;* V28 tmp23 [V28 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+; V29 tmp24 [V29,T18] ( 5, 2.50) int -> x24 "Inline stloc first use temp"
+;* V30 tmp25 [V30 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.UInt128>
+;* V31 tmp26 [V31 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.UInt128>
+;* V32 tmp27 [V32 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
+;* V33 tmp28 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V34 tmp29 [V34 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V35 tmp30 [V35 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+; V36 tmp31 [V36,T25] ( 3, 1.50) int -> x0 "Inline stloc first use temp"
+;* V37 tmp32 [V37 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
+;* V38 tmp33 [V38 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V39 tmp34 [V39 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
+;* V40 tmp35 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V41 tmp36 [V41 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V42 tmp37 [V42 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V43 tmp38 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
+;* V44 tmp39 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V45 tmp40 [V45 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V46 tmp41 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
-;* V47 tmp42 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V48 tmp43 [V48 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V49 tmp44 [V49 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V50 tmp45 [V50,T35] ( 3, 1.50) int -> x1 "Inline stloc first use temp"
-;* V51 tmp46 [V51 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
-;* V52 tmp47 [V52 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V53 tmp48 [V53 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
-;* V54 tmp49 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V55 tmp50 [V55 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V56 tmp51 [V56 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V57 tmp52 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
-; V58 tmp53 [V58,T29] ( 4, 2 ) int -> x0 "Inline return value spill temp"
-;* V59 tmp54 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V60 tmp55 [V60 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.UInt128>
-; V61 tmp56 [V61,T00] ( 4, 18 ) long -> x22 "Inlining Arg"
-;* V62 tmp57 [V62 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
-;* V63 tmp58 [V63 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] "Inline stloc first use temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
-;* V64 tmp59 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.UInt128>
-;* V65 tmp60 [V65 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
-;* V66 tmp61 [V66 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
-;* V67 tmp62 [V67 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
-;* V68 tmp63 [V68 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline stloc first use temp" <System.UInt128>
-;* V69 tmp64 [V69 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
-;* V70 tmp65 [V70 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
-;* V71 tmp66 [V71 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.UInt128>
-; V72 tmp67 [V72,T10] ( 2, 8 ) long -> x2 ld-addr-op "Inline ldloca(s) first use temp"
-;* V73 tmp68 [V73 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.UInt128>
-;* V74 tmp69 [V74 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+;* V46 tmp41 [V46 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+; V47 tmp42 [V47,T26] ( 3, 1.50) int -> x1 "Inline stloc first use temp"
+;* V48 tmp43 [V48 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
+;* V49 tmp44 [V49 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V50 tmp45 [V50 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
+;* V51 tmp46 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V52 tmp47 [V52 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V53 tmp48 [V53 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V54 tmp49 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
+; V55 tmp50 [V55,T20] ( 4, 2 ) int -> x0 "Inline return value spill temp"
+;* V56 tmp51 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V57 tmp52 [V57 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.UInt128>
+; V58 tmp53 [V58,T00] ( 4, 18 ) long -> x23 "Inlining Arg"
+;* V59 tmp54 [V59 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
+;* V60 tmp55 [V60 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] "Inline stloc first use temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
+;* V61 tmp56 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.UInt128>
+;* V62 tmp57 [V62 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
+;* V63 tmp58 [V63 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
+;* V64 tmp59 [V64 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
+;* V65 tmp60 [V65 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline stloc first use temp" <System.UInt128>
+;* V66 tmp61 [V66 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
+;* V67 tmp62 [V67 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
+;* V68 tmp63 [V68 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
+; V69 tmp64 [V69,T05] ( 2, 8 ) long -> x1 ld-addr-op "Inline ldloca(s) first use temp"
+;* V70 tmp65 [V70 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.UInt128>
+;* V71 tmp66 [V71 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+;* V72 tmp67 [V72 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V73 tmp68 [V73 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V74 tmp69 [V74 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V75 tmp70 [V75 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V76 tmp71 [V76 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V77 tmp72 [V77 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V78 tmp73 [V78,T06] ( 2, 16 ) long -> x3 "Inlining Arg"
-; V79 tmp74 [V79 ] ( 6, 20 ) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.UInt128>
-; V80 tmp75 [V80,T01] ( 4, 18 ) long -> x19 "Inlining Arg"
-; V81 tmp76 [V81,T02] ( 4, 18 ) int -> x20 "Inlining Arg"
-; V82 tmp77 [V82,T16] ( 4, 2.50) byref -> x21 single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-; V83 tmp78 [V83,T17] ( 3, 2 ) int -> x22 single-def "field V00._length (fldOffset=0x8)" P-INDEP
-; V84 tmp79 [V84,T18] ( 3, 2 ) long -> x23 single-def "field V01._lower (fldOffset=0x0)" P-INDEP
-; V85 tmp80 [V85,T15] ( 4, 3 ) long -> x20 single-def "field V01._upper (fldOffset=0x8)" P-INDEP
-;* V86 tmp81 [V86 ] ( 0, 0 ) byref -> zero-ref single-def "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V87 tmp82 [V87 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
-;* V88 tmp83 [V88 ] ( 0, 0 ) byref -> zero-ref single-def "field V06._reference (fldOffset=0x0)" P-INDEP
-;* V89 tmp84 [V89 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP
-;* V90 tmp85 [V90 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP
-;* V91 tmp86 [V91 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
-;* V92 tmp87 [V92 ] ( 0, 0 ) long -> zero-ref "field V09._lower (fldOffset=0x0)" P-INDEP
-;* V93 tmp88 [V93 ] ( 0, 0 ) long -> zero-ref "field V09._upper (fldOffset=0x8)" P-INDEP
-;* V94 tmp89 [V94 ] ( 0, 0 ) long -> zero-ref "field V10._lower (fldOffset=0x0)" P-INDEP
-;* V95 tmp90 [V95 ] ( 0, 0 ) long -> zero-ref "field V10._upper (fldOffset=0x8)" P-INDEP
-;* V96 tmp91 [V96 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
-;* V97 tmp92 [V97 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-;* V98 tmp93 [V98 ] ( 0, 0 ) byref -> zero-ref "field V13._reference (fldOffset=0x0)" P-INDEP
-;* V99 tmp94 [V99 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
-; V100 tmp95 [V100,T32] ( 3, 1.50) byref -> x3 "field V18._reference (fldOffset=0x0)" P-INDEP
-; V101 tmp96 [V101,T36] ( 3, 1.50) int -> x4 "field V18._length (fldOffset=0x8)" P-INDEP
-; V102 tmp97 [V102,T22] ( 7, 3.50) long -> x23 "field V19._lower (fldOffset=0x0)" P-INDEP
-; V103 tmp98 [V103,T23] ( 7, 3.50) long -> x20 "field V19._upper (fldOffset=0x8)" P-INDEP
-;* V104 tmp99 [V104 ] ( 0, 0 ) byref -> zero-ref single-def "field V25._reference (fldOffset=0x0)" P-INDEP
-;* V105 tmp100 [V105 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
-; V106 tmp101 [V106,T37] ( 3, 1.50) long -> x0 "field V30._lower (fldOffset=0x0)" P-INDEP
-; V107 tmp102 [V107,T39] ( 1, 0.50) long -> x1 "field V30._upper (fldOffset=0x8)" P-INDEP
-;* V108 tmp103 [V108,T40] ( 0, 0 ) long -> zero-ref "field V33._lower (fldOffset=0x0)" P-INDEP
-;* V109 tmp104 [V109,T41] ( 0, 0 ) long -> zero-ref "field V33._upper (fldOffset=0x8)" P-INDEP
-;* V110 tmp105 [V110 ] ( 0, 0 ) long -> zero-ref "field V34._lower (fldOffset=0x0)" P-INDEP
-;* V111 tmp106 [V111 ] ( 0, 0 ) long -> zero-ref "field V34._upper (fldOffset=0x8)" P-INDEP
-;* V112 tmp107 [V112 ] ( 0, 0 ) long -> zero-ref "field V35._lower (fldOffset=0x0)" P-DEP
-;* V113 tmp108 [V113 ] ( 0, 0 ) long -> zero-ref "field V35._upper (fldOffset=0x8)" P-DEP
-;* V114 tmp109 [V114 ] ( 0, 0 ) byref -> zero-ref single-def "field V36._reference (fldOffset=0x0)" P-INDEP
-;* V115 tmp110 [V115 ] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
-;* V116 tmp111 [V116 ] ( 0, 0 ) byref -> zero-ref single-def "field V40._reference (fldOffset=0x0)" P-INDEP
-;* V117 tmp112 [V117 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
-;* V118 tmp113 [V118 ] ( 0, 0 ) byref -> zero-ref single-def "field V43._reference (fldOffset=0x0)" P-INDEP
-;* V119 tmp114 [V119 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
-;* V120 tmp115 [V120 ] ( 0, 0 ) byref -> zero-ref single-def "field V46._reference (fldOffset=0x0)" P-INDEP
-;* V121 tmp116 [V121 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP
-;* V122 tmp117 [V122 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
-;* V123 tmp118 [V123 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
-;* V124 tmp119 [V124 ] ( 0, 0 ) byref -> zero-ref single-def "field V51._reference (fldOffset=0x0)" P-INDEP
-;* V125 tmp120 [V125 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
-;* V126 tmp121 [V126 ] ( 0, 0 ) byref -> zero-ref single-def "field V54._reference (fldOffset=0x0)" P-INDEP
-;* V127 tmp122 [V127 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
-;* V128 tmp123 [V128 ] ( 0, 0 ) byref -> zero-ref single-def "field V57._reference (fldOffset=0x0)" P-INDEP
-;* V129 tmp124 [V129 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
-;* V130 tmp125 [V130 ] ( 0, 0 ) byref -> zero-ref single-def "field V59._reference (fldOffset=0x0)" P-INDEP
-;* V131 tmp126 [V131 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
-; V132 tmp127 [V132,T08] ( 5, 13 ) long -> x23 "field V60._lower (fldOffset=0x0)" P-INDEP
-; V133 tmp128 [V133,T03] ( 6, 17 ) long -> x20 "field V60._upper (fldOffset=0x8)" P-INDEP
-;* V134 tmp129 [V134,T19] ( 0, 0 ) long -> zero-ref "field V62._lower (fldOffset=0x0)" P-INDEP
-;* V135 tmp130 [V135,T20] ( 0, 0 ) long -> zero-ref "field V62._upper (fldOffset=0x8)" P-INDEP
-;* V136 tmp131 [V136 ] ( 0, 0 ) long -> zero-ref "field V64._lower (fldOffset=0x0)" P-INDEP
-;* V137 tmp132 [V137 ] ( 0, 0 ) long -> zero-ref "field V64._upper (fldOffset=0x8)" P-INDEP
-;* V138 tmp133 [V138 ] ( 0, 0 ) long -> zero-ref "field V65._lower (fldOffset=0x0)" P-INDEP
-;* V139 tmp134 [V139 ] ( 0, 0 ) long -> zero-ref "field V65._upper (fldOffset=0x8)" P-INDEP
-;* V140 tmp135 [V140 ] ( 0, 0 ) long -> zero-ref "field V66._lower (fldOffset=0x0)" P-INDEP
-;* V141 tmp136 [V141 ] ( 0, 0 ) long -> zero-ref "field V66._upper (fldOffset=0x8)" P-INDEP
-;* V142 tmp137 [V142 ] ( 0, 0 ) long -> zero-ref "field V67._lower (fldOffset=0x0)" P-DEP
-;* V143 tmp138 [V143 ] ( 0, 0 ) long -> zero-ref "field V67._upper (fldOffset=0x8)" P-DEP
-; V144 tmp139 [V144,T05] ( 4, 16 ) long -> x21 "field V68._lower (fldOffset=0x0)" P-INDEP
-; V145 tmp140 [V145,T09] ( 3, 12 ) long -> x24 "field V68._upper (fldOffset=0x8)" P-INDEP
-;* V146 tmp141 [V146 ] ( 0, 0 ) long -> zero-ref "field V69._lower (fldOffset=0x0)" P-INDEP
-;* V147 tmp142 [V147 ] ( 0, 0 ) long -> zero-ref "field V69._upper (fldOffset=0x8)" P-INDEP
-; V148 tmp143 [V148,T11] ( 2, 8 ) long -> x2 "field V71._lower (fldOffset=0x0)" P-INDEP
-; V149 tmp144 [V149,T21] ( 1, 4 ) long -> x1 "field V71._upper (fldOffset=0x8)" P-INDEP
-; V150 tmp145 [V150,T12] ( 2, 8 ) long -> x2 "field V73._lower (fldOffset=0x0)" P-INDEP
-; V151 tmp146 [V151,T13] ( 2, 8 ) long -> x3 "field V73._upper (fldOffset=0x8)" P-INDEP
-; V152 tmp147 [V152 ] ( 3, 9 ) long -> [fp+0x18] do-not-enreg[X] addr-exposed "field V79._lower (fldOffset=0x0)" P-DEP
-; V153 tmp148 [V153 ] ( 4, 13 ) long -> [fp+0x20] do-not-enreg[X] addr-exposed "field V79._upper (fldOffset=0x8)" P-DEP
-;* V154 tmp149 [V154 ] ( 0, 0 ) long -> zero-ref "V63.[000..008)"
-;* V155 tmp150 [V155 ] ( 0, 0 ) long -> zero-ref "V63.[008..016)"
-;* V156 tmp151 [V156 ] ( 0, 0 ) long -> zero-ref "V63.[016..024)"
-;* V157 tmp152 [V157 ] ( 0, 0 ) long -> zero-ref "V63.[024..032)"
-;* V158 tmp153 [V158 ] ( 0, 0 ) long -> zero-ref "V70.[000..008)"
-;* V159 tmp154 [V159 ] ( 0, 0 ) long -> zero-ref "V70.[008..016)"
-;* V160 tmp155 [V160 ] ( 0, 0 ) long -> zero-ref "V70.[016..024)"
-;* V161 tmp156 [V161 ] ( 0, 0 ) long -> zero-ref "V70.[024..032)"
-; V162 tmp157 [V162,T31] ( 2, 2 ) long -> x21 "Cast away GC"
-; V163 tmp158 [V163,T07] ( 2, 16 ) long -> x1 "argument with side effect"
-; V164 cse0 [V164,T04] ( 4, 12.25) long -> x19 hoist "CSE #05: aggressive"
+; V76 tmp71 [V76,T06] ( 2, 8 ) long -> x1 "Inline stloc first use temp"
+;* V77 tmp72 [V77 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V78 tmp73 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.UInt128>
+;* V79 tmp74 [V79 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V80 tmp75 [V80,T11] ( 4, 2.50) byref -> x22 single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+; V81 tmp76 [V81,T12] ( 3, 2 ) int -> x23 single-def "field V00._length (fldOffset=0x8)" P-INDEP
+; V82 tmp77 [V82,T09] ( 8, 4.50) long -> x20 single-def "field V01._lower (fldOffset=0x0)" P-INDEP
+; V83 tmp78 [V83,T08] ( 9, 5.50) long -> x19 single-def "field V01._upper (fldOffset=0x8)" P-INDEP
+;* V84 tmp79 [V84 ] ( 0, 0 ) byref -> zero-ref single-def "field V04._reference (fldOffset=0x0)" P-INDEP
+;* V85 tmp80 [V85 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
+;* V86 tmp81 [V86 ] ( 0, 0 ) byref -> zero-ref single-def "field V06._reference (fldOffset=0x0)" P-INDEP
+;* V87 tmp82 [V87 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP
+;* V88 tmp83 [V88 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP
+;* V89 tmp84 [V89 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
+;* V90 tmp85 [V90 ] ( 0, 0 ) long -> zero-ref "field V09._lower (fldOffset=0x0)" P-INDEP
+;* V91 tmp86 [V91 ] ( 0, 0 ) long -> zero-ref "field V09._upper (fldOffset=0x8)" P-INDEP
+;* V92 tmp87 [V92 ] ( 0, 0 ) long -> zero-ref "field V10._lower (fldOffset=0x0)" P-INDEP
+;* V93 tmp88 [V93 ] ( 0, 0 ) long -> zero-ref "field V10._upper (fldOffset=0x8)" P-INDEP
+;* V94 tmp89 [V94 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V95 tmp90 [V95 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
+;* V96 tmp91 [V96 ] ( 0, 0 ) byref -> zero-ref "field V13._reference (fldOffset=0x0)" P-INDEP
+;* V97 tmp92 [V97 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
+; V98 tmp93 [V98,T23] ( 3, 1.50) byref -> x3 "field V18._reference (fldOffset=0x0)" P-INDEP
+; V99 tmp94 [V99,T27] ( 3, 1.50) int -> x4 "field V18._length (fldOffset=0x8)" P-INDEP
+;* V100 tmp95 [V100 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
+;* V101 tmp96 [V101 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
+; V102 tmp97 [V102,T28] ( 3, 1.50) long -> x0 "field V27._lower (fldOffset=0x0)" P-INDEP
+; V103 tmp98 [V103,T30] ( 1, 0.50) long -> x1 "field V27._upper (fldOffset=0x8)" P-INDEP
+;* V104 tmp99 [V104,T31] ( 0, 0 ) long -> zero-ref "field V30._lower (fldOffset=0x0)" P-INDEP
+;* V105 tmp100 [V105,T32] ( 0, 0 ) long -> zero-ref "field V30._upper (fldOffset=0x8)" P-INDEP
+;* V106 tmp101 [V106 ] ( 0, 0 ) long -> zero-ref "field V31._lower (fldOffset=0x0)" P-INDEP
+;* V107 tmp102 [V107 ] ( 0, 0 ) long -> zero-ref "field V31._upper (fldOffset=0x8)" P-INDEP
+;* V108 tmp103 [V108 ] ( 0, 0 ) long -> zero-ref "field V32._lower (fldOffset=0x0)" P-DEP
+;* V109 tmp104 [V109 ] ( 0, 0 ) long -> zero-ref "field V32._upper (fldOffset=0x8)" P-DEP
+;* V110 tmp105 [V110 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
+;* V111 tmp106 [V111 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
+;* V112 tmp107 [V112 ] ( 0, 0 ) byref -> zero-ref single-def "field V37._reference (fldOffset=0x0)" P-INDEP
+;* V113 tmp108 [V113 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
+;* V114 tmp109 [V114 ] ( 0, 0 ) byref -> zero-ref single-def "field V40._reference (fldOffset=0x0)" P-INDEP
+;* V115 tmp110 [V115 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
+;* V116 tmp111 [V116 ] ( 0, 0 ) byref -> zero-ref single-def "field V43._reference (fldOffset=0x0)" P-INDEP
+;* V117 tmp112 [V117 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
+;* V118 tmp113 [V118 ] ( 0, 0 ) byref -> zero-ref single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+;* V119 tmp114 [V119 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP
+;* V120 tmp115 [V120 ] ( 0, 0 ) byref -> zero-ref single-def "field V48._reference (fldOffset=0x0)" P-INDEP
+;* V121 tmp116 [V121 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
+;* V122 tmp117 [V122 ] ( 0, 0 ) byref -> zero-ref single-def "field V51._reference (fldOffset=0x0)" P-INDEP
+;* V123 tmp118 [V123 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
+;* V124 tmp119 [V124 ] ( 0, 0 ) byref -> zero-ref single-def "field V54._reference (fldOffset=0x0)" P-INDEP
+;* V125 tmp120 [V125 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
+;* V126 tmp121 [V126 ] ( 0, 0 ) byref -> zero-ref single-def "field V56._reference (fldOffset=0x0)" P-INDEP
+;* V127 tmp122 [V127 ] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP
+; V128 tmp123 [V128,T01] ( 5, 13 ) long -> x20 "field V57._lower (fldOffset=0x0)" P-INDEP
+; V129 tmp124 [V129,T02] ( 5, 13 ) long -> x19 "field V57._upper (fldOffset=0x8)" P-INDEP
+;* V130 tmp125 [V130,T13] ( 0, 0 ) long -> zero-ref "field V59._lower (fldOffset=0x0)" P-INDEP
+;* V131 tmp126 [V131,T14] ( 0, 0 ) long -> zero-ref "field V59._upper (fldOffset=0x8)" P-INDEP
+;* V132 tmp127 [V132 ] ( 0, 0 ) long -> zero-ref "field V61._lower (fldOffset=0x0)" P-INDEP
+;* V133 tmp128 [V133 ] ( 0, 0 ) long -> zero-ref "field V61._upper (fldOffset=0x8)" P-INDEP
+;* V134 tmp129 [V134 ] ( 0, 0 ) long -> zero-ref "field V62._lower (fldOffset=0x0)" P-INDEP
+;* V135 tmp130 [V135 ] ( 0, 0 ) long -> zero-ref "field V62._upper (fldOffset=0x8)" P-INDEP
+;* V136 tmp131 [V136 ] ( 0, 0 ) long -> zero-ref "field V63._lower (fldOffset=0x0)" P-INDEP
+;* V137 tmp132 [V137 ] ( 0, 0 ) long -> zero-ref "field V63._upper (fldOffset=0x8)" P-INDEP
+;* V138 tmp133 [V138 ] ( 0, 0 ) long -> zero-ref "field V64._lower (fldOffset=0x0)" P-DEP
+;* V139 tmp134 [V139 ] ( 0, 0 ) long -> zero-ref "field V64._upper (fldOffset=0x8)" P-DEP
+; V140 tmp135 [V140,T03] ( 3, 12 ) long -> x0 "field V65._lower (fldOffset=0x0)" P-INDEP
+; V141 tmp136 [V141,T07] ( 2, 8 ) long -> x19 "field V65._upper (fldOffset=0x8)" P-INDEP
+;* V142 tmp137 [V142 ] ( 0, 0 ) long -> zero-ref "field V66._lower (fldOffset=0x0)" P-INDEP
+;* V143 tmp138 [V143 ] ( 0, 0 ) long -> zero-ref "field V66._upper (fldOffset=0x8)" P-INDEP
+;* V144 tmp139 [V144 ] ( 0, 0 ) long -> zero-ref "field V68._lower (fldOffset=0x0)" P-INDEP
+;* V145 tmp140 [V145 ] ( 0, 0 ) long -> zero-ref "field V68._upper (fldOffset=0x8)" P-INDEP
+;* V146 tmp141 [V146 ] ( 0, 0 ) long -> zero-ref "field V70._lower (fldOffset=0x0)" P-INDEP
+;* V147 tmp142 [V147 ] ( 0, 0 ) long -> zero-ref "field V70._upper (fldOffset=0x8)" P-INDEP
+;* V148 tmp143 [V148 ] ( 0, 0 ) long -> zero-ref "field V78._lower (fldOffset=0x0)" P-INDEP
+;* V149 tmp144 [V149 ] ( 0, 0 ) long -> zero-ref "field V78._upper (fldOffset=0x8)" P-INDEP
+;* V150 tmp145 [V150 ] ( 0, 0 ) long -> zero-ref "V60.[000..008)"
+;* V151 tmp146 [V151 ] ( 0, 0 ) long -> zero-ref "V60.[008..016)"
+;* V152 tmp147 [V152 ] ( 0, 0 ) long -> zero-ref "V60.[016..024)"
+;* V153 tmp148 [V153 ] ( 0, 0 ) long -> zero-ref "V60.[024..032)"
+;* V154 tmp149 [V154 ] ( 0, 0 ) long -> zero-ref "V67.[000..008)"
+;* V155 tmp150 [V155 ] ( 0, 0 ) long -> zero-ref "V67.[008..016)"
+;* V156 tmp151 [V156 ] ( 0, 0 ) long -> zero-ref "V67.[016..024)"
+;* V157 tmp152 [V157 ] ( 0, 0 ) long -> zero-ref "V67.[024..032)"
+; V158 tmp153 [V158,T22] ( 2, 2 ) long -> x22 "Cast away GC"
+; V159 cse0 [V159,T04] ( 2, 4.25) long -> x21 hoist "CSE #05: moderate"
;
-; Lcl frame size = 32
+; Lcl frame size = 16
G_M8095_IG01:
- stp fp, lr, [sp, #-0x60]!
- stp x19, x20, [sp, #0x30]
- stp x21, x22, [sp, #0x40]
- stp x23, x24, [sp, #0x50]
+ stp fp, lr, [sp, #-0x50]!
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
mov fp, sp
- str xzr, [fp, #0x28] // [V26 tmp21]
- mov x21, x0
- mov w22, w1
- mov x23, x2
- mov x20, x3
- mov x19, x4
+ str xzr, [fp, #0x18] // [V23 tmp18]
+ mov x22, x0
+ mov w23, w1
+ mov x20, x2
+ mov x19, x3
+ mov x21, x4
;; size=44 bbWeight=1 PerfScore 8.00
G_M8095_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
- tbz x20, #63, G_M8095_IG05
+ tbz x19, #63, G_M8095_IG05
;; size=20 bbWeight=1 PerfScore 5.50
G_M8095_IG03:
movz x1, #0xD1FFAB1E // code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x24, x0
ldr x2, [x24, #0x98]
cbnz x2, G_M8095_IG04
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
ldr x1, [x24, #0x28]
movz x2, #0xD1FFAB1E // code for System.Text.UTF8Encoding+UTF8EncodingSealed:GetBytes(System.String):ubyte[]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x2, x0
add x14, x24, #152
mov x15, x2
bl CORINFO_HELP_ASSIGN_REF
;; size=88 bbWeight=0.50 PerfScore 12.75
G_M8095_IG04:
- cbnz x2, G_M8095_IG18
+ cbnz x2, G_M8095_IG16
mov x3, xzr
mov w4, wzr
- b G_M8095_IG19
+ b G_M8095_IG17
;; size=16 bbWeight=0.50 PerfScore 1.50
G_M8095_IG05:
- cbnz x20, G_M8095_IG06
- orr x0, x23, #1
+ cbnz x19, G_M8095_IG06
+ orr x0, x20, #1
clz x0, x0
eor w0, w0, #63
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldrb w0, [x1, w0, SXTW #2]
ubfiz x1, x0, #3, #32
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x1, x2]
- cmp x23, x1
+ cmp x20, x1
cset x1, lo
sub w24, w0, w1
b G_M8095_IG08
;; size=68 bbWeight=0.50 PerfScore 7.50
G_M8095_IG06:
mov w24, #20
- cmp x20, #5
+ cmp x19, #5
bls G_M8095_IG07
- mov x0, x23
- mov x1, x20
+ mov x0, x20
+ mov x1, x19
movz x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movk x2, #0xD1FFAB1E LSL #48
mov x3, #5
movz x4, #0xD1FFAB1E // code for System.UInt128:op_Division(System.UInt128,System.UInt128):System.UInt128
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
orr x1, x0, #1
clz x1, x1
eor w1, w1, #63
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldrb w1, [x2, w1, SXTW #2]
ubfiz x2, x1, #3, #32
movz x3, #0xD1FFAB1E
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x2, [x2, x3]
cmp x0, x2
cset x0, lo
sub w0, w1, w0
add w24, w0, #20
b G_M8095_IG08
;; size=124 bbWeight=0.50 PerfScore 12.50
G_M8095_IG07:
movz x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movk x0, #0xD1FFAB1E LSL #48
mov w1, #21
- cmp x20, #5
- ccmp x23, x0, 0, eq
+ cmp x19, #5
+ ccmp x20, x0, 0, eq
csel w24, w24, w1, lo
;; size=28 bbWeight=0.50 PerfScore 1.75
G_M8095_IG08:
movn w0, #0
cmp w24, #0
csel w0, w0, w24, lt
- cmp w0, w22
+ cmp w0, w23
bgt G_M8095_IG12
- str w0, [x19]
- str x21, [fp, #0x28] // [V26 tmp21]
- add x22, x21, w0, SXTW
+ str w0, [x21]
+ str x22, [fp, #0x18] // [V23 tmp18]
+ add x23, x22, w0, SXTW
cmn w24, #1
blt G_M8095_IG13
- cbz x20, G_M8095_IG11
+ cbz x19, G_M8095_IG11
;; size=44 bbWeight=0.50 PerfScore 4.25
G_M8095_IG09:
- movz x19, #0xD1FFAB1E LSL #16
- movk x19, #0xD1FFAB1E LSL #32
- movk x19, #0xD1FFAB1E LSL #48
+ movz x21, #0xD1FFAB1E LSL #16
+ movk x21, #0xD1FFAB1E LSL #32
+ movk x21, #0xD1FFAB1E LSL #48
;; size=12 bbWeight=0.25 PerfScore 0.38
G_M8095_IG10:
- mov x0, x23
- mov x1, x20
+ mov x0, x20
+ mov x1, x19
movz x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movk x2, #0xD1FFAB1E LSL #48
mov x3, xzr
movz x4, #0xD1FFAB1E // code for System.UInt128:op_Division(System.UInt128,System.UInt128):System.UInt128
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
- mov x21, x0
- mov x24, x1
- mul x2, x21, x19
- umulh x0, x21, x19
- madd x3, x24, x19, x0
+ mov x19, x1
+ mul x1, x0, x21
+ sub x1, x20, x1
+ mov x20, x0
mov x0, x23
- mov x1, x20
- movz x4, #0xD1FFAB1E // code for System.UInt128:op_Subtraction(System.UInt128,System.UInt128):System.UInt128
- movk x4, #0xD1FFAB1E LSL #16
- movk x4, #0xD1FFAB1E LSL #32
- ldr x4, [x4]
- blr x4
- mov x2, x0
- mov x23, x21
- mov x20, x24
- mov x0, x22
- mov x1, x2
mov w2, #19
movz x3, #0xD1FFAB1E // code for System.Number:UInt64ToDecChars[ubyte](ulong,ulong,int):ulong
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- mov x22, x0
- cbnz x20, G_M8095_IG10
- ;; size=144 bbWeight=4 PerfScore 152.00
+ mov x23, x0
+ cbnz x19, G_M8095_IG10
+ ;; size=96 bbWeight=4 PerfScore 80.00
G_M8095_IG11:
- mov x0, x22
- mov x1, x23
+ mov x0, x23
+ mov x1, x20
movz x2, #0xD1FFAB1E // code for System.Number:UInt64ToDecChars[ubyte](ulong,ulong):ulong
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- b G_M8095_IG16
+ b G_M8095_IG14
;; size=32 bbWeight=0.50 PerfScore 3.75
G_M8095_IG12:
- str wzr, [x19]
- b G_M8095_IG17
+ str wzr, [x21]
+ b G_M8095_IG15
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M8095_IG13:
- mov x19, x22
- stp x23, x20, [fp, #0x18] // [V152 tmp147], [V153 tmp148]
- movn w20, #0
- ldr x0, [fp, #0x20] // [V153 tmp148]
- cbz x0, G_M8095_IG15
- ;; size=20 bbWeight=0.50 PerfScore 2.50
+ mov x1, x20
+ mov x2, x19
+ mov x0, x23
+ movn w3, #0
+ movz x4, #0xD1FFAB1E // code for System.Number:UInt128ToDecChars[ubyte](ulong,System.UInt128,int):ulong
+ movk x4, #0xD1FFAB1E LSL #16
+ movk x4, #0xD1FFAB1E LSL #32
+ ldr x4, [x4]
+ blr x4
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M8095_IG14:
- add x0, fp, #24 // [V79 tmp74]
- movz x1, #0xD1FFAB1E // code for System.Number:Int128DivMod1E19(byref):ulong
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- blr x1
- mov x1, x0
- mov x0, x19
- mov w2, #19
- movz x3, #0xD1FFAB1E // code for System.Number:UInt64ToDecChars[ubyte](ulong,ulong,int):ulong
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #0xD1FFAB1E LSL #32
- ldr x3, [x3]
- blr x3
- mov x19, x0
- sub w20, w20, #19
- ldr x0, [fp, #0x20] // [V153 tmp148]
- cbnz x0, G_M8095_IG14
- ;; size=72 bbWeight=4 PerfScore 68.00
-G_M8095_IG15:
- mov x0, x19
- ldr x1, [fp, #0x18] // [V152 tmp147]
- mov w2, w20
- movz x3, #0xD1FFAB1E // code for System.Number:UInt64ToDecChars[ubyte](ulong,ulong,int):ulong
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #0xD1FFAB1E LSL #32
- ldr x3, [x3]
- blr x3
- ;; size=32 bbWeight=0.50 PerfScore 4.25
-G_M8095_IG16:
- str xzr, [fp, #0x28] // [V26 tmp21]
+ str xzr, [fp, #0x18] // [V23 tmp18]
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M8095_IG17:
- str xzr, [fp, #0x28] // [V26 tmp21]
- b G_M8095_IG20
+G_M8095_IG15:
+ str xzr, [fp, #0x18] // [V23 tmp18]
+ b G_M8095_IG18
;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M8095_IG18:
+G_M8095_IG16:
add x3, x2, #16
ldr w4, [x2, #0x08]
;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M8095_IG19:
- mov x0, x23
- mov x1, x20
- mov x5, x21
- mov w6, w22
- mov x7, x19
+G_M8095_IG17:
+ mov x0, x20
+ mov x1, x19
+ mov x5, x22
+ mov w6, w23
+ mov x7, x21
movn w2, #0
movz x8, #0xD1FFAB1E // code for System.Number:TryNegativeInt128ToDecStr[ubyte](System.Int128,int,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte
movk x8, #0xD1FFAB1E LSL #16
movk x8, #0xD1FFAB1E LSL #32
ldr x8, [x8]
blr x8
;; size=44 bbWeight=0.50 PerfScore 4.25
-G_M8095_IG20:
- ldp x23, x24, [sp, #0x50]
- ldp x21, x22, [sp, #0x40]
- ldp x19, x20, [sp, #0x30]
- ldp fp, lr, [sp], #0x60
+G_M8095_IG18:
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=1 PerfScore 5.00
-; Total bytes of code 836, prolog size 24, PerfScore 298.12, instruction count 209, allocated bytes for code 836 (MethodHash=adbbe060) for method System.Text.Json.Serialization.Converters.Int128Converter:Format(System.Span`1[ubyte],System.Int128,byref) (FullOpts)
+; Total bytes of code 700, prolog size 24, PerfScore 155.12, instruction count 175, allocated bytes for code 700 (MethodHash=adbbe060) for method System.Text.Json.Serialization.Converters.Int128Converter:Format(System.Span`1[ubyte],System.Int128,byref) (FullOpts)
-68 (-4.28 % of base) - System.Text.Json.Serialization.Converters.Int128Converter:WriteNumberWithCustomHandling(System.Text.Json.Utf8JsonWriter,System.Int128,int):this
; Assembly listing for method System.Text.Json.Serialization.Converters.Int128Converter:WriteNumberWithCustomHandling(System.Text.Json.Utf8JsonWriter,System.Int128,int):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 58 single block inlinees; 25 inlinees without PGO data
+; 0 inlinees with PGO data; 60 single block inlinees; 25 inlinees without PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Text.Json.Serialization.Converters.Int128Converter>
-; V01 arg1 [V01,T41] ( 4, 3 ) ref -> x20 class-hnd single-def <System.Text.Json.Utf8JsonWriter>
+; V01 arg1 [V01,T42] ( 4, 3 ) ref -> x21 class-hnd single-def <System.Text.Json.Utf8JsonWriter>
;* V02 arg2 [V02 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.Int128>
-; V03 arg3 [V03,T42] ( 3, 3 ) int -> x4 single-def
+; V03 arg3 [V03,T43] ( 3, 3 ) int -> x4 single-def
;* V04 loc0 [V04 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Span`1[ubyte]>
; V05 loc1 [V05 ] ( 4, 2 ) int -> [fp-0x50] do-not-enreg[X] addr-exposed ld-addr-op
-; V06 loc2 [V06,T57] ( 4, 2 ) int -> x2
+; V06 loc2 [V06,T52] ( 5, 2.50) int -> x2
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V09 tmp2 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "spilled call-like call argument" <System.Span`1[ubyte]>
;* V10 tmp3 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
-;* V11 tmp4 [V11 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V12 tmp5 [V12,T60] ( 2, 2 ) long -> x22 "Inlining Arg"
+;* V11 tmp4 [V11 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
+; V12 tmp5 [V12,T58] ( 2, 2 ) long -> x22 "Inlining Arg"
;* V13 tmp6 [V13 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
; V14 tmp7 [V14,T44] ( 4, 4 ) byref -> x23 single-def "Inlining Arg"
;* V15 tmp8 [V15 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V16 tmp9 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Int128>
-; V17 tmp10 [V17,T69] ( 2, 1 ) ref -> x0 class-hnd exact single-def "Inline stloc first use temp" <System.Globalization.CultureInfo>
+; V17 tmp10 [V17,T66] ( 2, 1 ) ref -> x0 class-hnd exact single-def "Inline stloc first use temp" <System.Globalization.CultureInfo>
;* V18 tmp11 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
;* V19 tmp12 [V19 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V20 tmp13 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V21 tmp14 [V21 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V22 tmp15 [V22 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inlining Arg" <System.Int128>
;* V23 tmp16 [V23 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
;* V24 tmp17 [V24 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V25 tmp18 [V25,T56] ( 4, 2 ) ref -> x23 class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V25 tmp18 [V25,T55] ( 4, 2 ) ref -> x23 class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V26 tmp19 [V26 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
-; V27 tmp20 [V27,T59] ( 2, 2 ) ref -> x2 class-hnd single-def "dup spill" <ubyte[]>
-; V28 tmp21 [V28,T51] ( 6, 3 ) ref -> x2
-; V29 tmp22 [V29,T52] ( 3, 3 ) ref -> x2 class-hnd single-def "dup spill" <ubyte[]>
+; V27 tmp20 [V27,T57] ( 2, 2 ) ref -> x2 class-hnd single-def "dup spill" <ubyte[]>
+; V28 tmp21 [V28,T49] ( 6, 3 ) ref -> x2
+; V29 tmp22 [V29,T50] ( 3, 3 ) ref -> x2 class-hnd single-def "dup spill" <ubyte[]>
;* V30 tmp23 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ubyte[]>
;* V31 tmp24 [V31 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V32 tmp25 [V32 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.UInt128>
-;* V33 tmp26 [V33 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V34 tmp27 [V34 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V35 tmp28 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V36 tmp29 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V37 tmp30 [V37 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V38 tmp31 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V39 tmp32 [V39 ] ( 3, 1.50) byref -> [fp-0x58] must-init pinned "Inline stloc first use temp"
-; V40 tmp33 [V40,T63] ( 3, 1.50) long -> x23 "Inline stloc first use temp"
-;* V41 tmp34 [V41 ] ( 0, 0 ) long -> zero-ref
-; V42 tmp35 [V42,T54] ( 5, 2.50) int -> x24 "Inline return value spill temp"
-;* V43 tmp36 [V43 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inlining Arg" <System.UInt128>
-;* V44 tmp37 [V44 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V45 tmp38 [V45,T55] ( 5, 2.50) int -> x24 "Inline stloc first use temp"
-;* V46 tmp39 [V46 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.UInt128>
-;* V47 tmp40 [V47 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.UInt128>
-;* V48 tmp41 [V48 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
-;* V49 tmp42 [V49 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V50 tmp43 [V50 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V51 tmp44 [V51 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V52 tmp45 [V52,T64] ( 3, 1.50) int -> x0 "Inline stloc first use temp"
-;* V53 tmp46 [V53 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
-;* V54 tmp47 [V54 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V55 tmp48 [V55 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
-;* V56 tmp49 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V57 tmp50 [V57 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V32 tmp25 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V33 tmp26 [V33 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V34 tmp27 [V34 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V35 tmp28 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+; V36 tmp29 [V36 ] ( 3, 1.50) byref -> [fp-0x58] must-init pinned "Inline stloc first use temp"
+; V37 tmp30 [V37,T61] ( 3, 1.50) long -> x23 "Inline stloc first use temp"
+;* V38 tmp31 [V38 ] ( 0, 0 ) long -> zero-ref
+; V39 tmp32 [V39,T53] ( 5, 2.50) int -> x24 "Inline return value spill temp"
+;* V40 tmp33 [V40 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inlining Arg" <System.UInt128>
+;* V41 tmp34 [V41 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+; V42 tmp35 [V42,T54] ( 5, 2.50) int -> x24 "Inline stloc first use temp"
+;* V43 tmp36 [V43 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.UInt128>
+;* V44 tmp37 [V44 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.UInt128>
+;* V45 tmp38 [V45 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
+;* V46 tmp39 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V47 tmp40 [V47 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V48 tmp41 [V48 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+; V49 tmp42 [V49,T62] ( 3, 1.50) int -> x0 "Inline stloc first use temp"
+;* V50 tmp43 [V50 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
+;* V51 tmp44 [V51 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V52 tmp45 [V52 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
+;* V53 tmp46 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V54 tmp47 [V54 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V55 tmp48 [V55 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V56 tmp49 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
+;* V57 tmp50 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V58 tmp51 [V58 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V59 tmp52 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
-;* V60 tmp53 [V60 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V61 tmp54 [V61 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V62 tmp55 [V62 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V63 tmp56 [V63,T65] ( 3, 1.50) int -> x1 "Inline stloc first use temp"
-;* V64 tmp57 [V64 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
-;* V65 tmp58 [V65 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V66 tmp59 [V66 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
-;* V67 tmp60 [V67 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V68 tmp61 [V68 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V69 tmp62 [V69 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V70 tmp63 [V70 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
-; V71 tmp64 [V71,T58] ( 4, 2 ) int -> x0 "Inline return value spill temp"
-;* V72 tmp65 [V72 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V73 tmp66 [V73 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.UInt128>
-; V74 tmp67 [V74,T21] ( 4, 18 ) long -> x23 "Inlining Arg"
-;* V75 tmp68 [V75 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
-;* V76 tmp69 [V76 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] "Inline stloc first use temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
-;* V77 tmp70 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.UInt128>
-;* V78 tmp71 [V78 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
-;* V79 tmp72 [V79 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
-;* V80 tmp73 [V80 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
-;* V81 tmp74 [V81 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline stloc first use temp" <System.UInt128>
-;* V82 tmp75 [V82 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
-;* V83 tmp76 [V83 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
-;* V84 tmp77 [V84 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
-; V85 tmp78 [V85,T33] ( 2, 8 ) long -> x2 ld-addr-op "Inline ldloca(s) first use temp"
-;* V86 tmp79 [V86 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.UInt128>
-;* V87 tmp80 [V87 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+;* V59 tmp52 [V59 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+; V60 tmp53 [V60,T63] ( 3, 1.50) int -> x1 "Inline stloc first use temp"
+;* V61 tmp54 [V61 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
+;* V62 tmp55 [V62 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V63 tmp56 [V63 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
+;* V64 tmp57 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V65 tmp58 [V65 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V66 tmp59 [V66 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V67 tmp60 [V67 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
+; V68 tmp61 [V68,T56] ( 4, 2 ) int -> x0 "Inline return value spill temp"
+;* V69 tmp62 [V69 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V70 tmp63 [V70 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.UInt128>
+; V71 tmp64 [V71,T21] ( 4, 18 ) long -> x23 "Inlining Arg"
+;* V72 tmp65 [V72 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
+;* V73 tmp66 [V73 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] "Inline stloc first use temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
+;* V74 tmp67 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.UInt128>
+;* V75 tmp68 [V75 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
+;* V76 tmp69 [V76 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
+;* V77 tmp70 [V77 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
+;* V78 tmp71 [V78 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline stloc first use temp" <System.UInt128>
+;* V79 tmp72 [V79 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
+;* V80 tmp73 [V80 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
+;* V81 tmp74 [V81 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
+; V82 tmp75 [V82,T33] ( 2, 8 ) long -> x2 ld-addr-op "Inline ldloca(s) first use temp"
+;* V83 tmp76 [V83 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.UInt128>
+;* V84 tmp77 [V84 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+;* V85 tmp78 [V85 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V86 tmp79 [V86 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V87 tmp80 [V87 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V88 tmp81 [V88 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V89 tmp82 [V89 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V90 tmp83 [V90 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V91 tmp84 [V91 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V92 tmp85 [V92,T34] ( 2, 8 ) long -> x2 "Inline stloc first use temp"
-;* V93 tmp86 [V93 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V94 tmp87 [V94 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.UInt128>
-;* V95 tmp88 [V95 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V96 tmp89 [V96,T00] ( 10,592 ) long -> x2 "Inlining Arg"
-; V97 tmp90 [V97,T01] ( 8,496 ) long -> x23 "Inlining Arg"
-; V98 tmp91 [V98,T04] ( 6,392 ) int -> x0 "Inlining Arg"
-;* V99 tmp92 [V99 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-;* V100 tmp93 [V100 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V101 tmp94 [V101 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-; V102 tmp95 [V102,T06] ( 2,256 ) long -> x23 "dup spill"
-; V103 tmp96 [V103,T12] ( 3, 48 ) long -> x3 "Inline stloc first use temp"
-;* V104 tmp97 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
-;* V105 tmp98 [V105 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V106 tmp99 [V106 ] ( 0, 0 ) long -> zero-ref
-;* V107 tmp100 [V107 ] ( 0, 0 ) long -> zero-ref
-; V108 tmp101 [V108,T16] ( 2, 32 ) ref -> x3
-;* V109 tmp102 [V109 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V110 tmp103 [V110 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V111 tmp104 [V111,T08] ( 3,192 ) long -> x3 "Inline stloc first use temp"
-;* V112 tmp105 [V112 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
-;* V113 tmp106 [V113 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V114 tmp107 [V114 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V115 tmp108 [V115 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
-; V116 tmp109 [V116,T15] ( 9, 37 ) long -> x21 "Inlining Arg"
-; V117 tmp110 [V117,T20] ( 6, 27 ) long -> x4 "Inlining Arg"
-;* V118 tmp111 [V118 ] ( 0, 0 ) long -> zero-ref "dup spill"
-;* V119 tmp112 [V119 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-; V120 tmp113 [V120,T29] ( 3, 12 ) long -> x0 "Inline stloc first use temp"
-;* V121 tmp114 [V121 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
-;* V122 tmp115 [V122 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V123 tmp116 [V123 ] ( 0, 0 ) long -> zero-ref
-;* V124 tmp117 [V124 ] ( 0, 0 ) long -> zero-ref
-; V125 tmp118 [V125,T32] ( 2, 8 ) ref -> x25
-;* V126 tmp119 [V126 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V127 tmp120 [V127 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V128 tmp121 [V128 ] ( 0, 0 ) long -> zero-ref
-; V129 tmp122 [V129,T74] ( 2, 1 ) long -> x0
-; V130 tmp123 [V130,T70] ( 2, 1 ) ref -> x1 single-def
-;* V131 tmp124 [V131 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V132 tmp125 [V132 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V133 tmp126 [V133 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V134 tmp127 [V134 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.UInt128>
-; V135 tmp128 [V135,T22] ( 4, 18 ) long -> x23 "Inlining Arg"
-; V136 tmp129 [V136,T23] ( 4, 18 ) int -> x26 "Inlining Arg"
-;* V137 tmp130 [V137 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
-;* V138 tmp131 [V138 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] "Inline stloc first use temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
-;* V139 tmp132 [V139 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.UInt128>
-;* V140 tmp133 [V140 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
-;* V141 tmp134 [V141 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
-;* V142 tmp135 [V142 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
-;* V143 tmp136 [V143 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline stloc first use temp" <System.UInt128>
-;* V144 tmp137 [V144 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
-;* V145 tmp138 [V145 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
-;* V146 tmp139 [V146 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
-; V147 tmp140 [V147,T35] ( 2, 8 ) long -> x1 ld-addr-op "Inline ldloca(s) first use temp"
-;* V148 tmp141 [V148 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.UInt128>
-;* V149 tmp142 [V149 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+; V89 tmp82 [V89,T34] ( 2, 8 ) long -> x2 "Inline stloc first use temp"
+;* V90 tmp83 [V90 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V91 tmp84 [V91 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.UInt128>
+;* V92 tmp85 [V92 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V93 tmp86 [V93,T00] ( 10,592 ) long -> x2 "Inlining Arg"
+; V94 tmp87 [V94,T01] ( 8,496 ) long -> x23 "Inlining Arg"
+; V95 tmp88 [V95,T04] ( 6,392 ) int -> x0 "Inlining Arg"
+;* V96 tmp89 [V96 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
+;* V97 tmp90 [V97 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V98 tmp91 [V98 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
+; V99 tmp92 [V99,T06] ( 2,256 ) long -> x23 "dup spill"
+; V100 tmp93 [V100,T12] ( 3, 48 ) long -> x3 "Inline stloc first use temp"
+;* V101 tmp94 [V101 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
+;* V102 tmp95 [V102 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V103 tmp96 [V103 ] ( 0, 0 ) long -> zero-ref
+;* V104 tmp97 [V104 ] ( 0, 0 ) long -> zero-ref
+; V105 tmp98 [V105,T16] ( 2, 32 ) ref -> x3
+;* V106 tmp99 [V106 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V107 tmp100 [V107 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V108 tmp101 [V108,T08] ( 3,192 ) long -> x3 "Inline stloc first use temp"
+;* V109 tmp102 [V109 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
+;* V110 tmp103 [V110 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V111 tmp104 [V111 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V112 tmp105 [V112 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+; V113 tmp106 [V113,T15] ( 9, 37 ) long -> x20 "Inlining Arg"
+; V114 tmp107 [V114,T20] ( 6, 27 ) long -> x4 "Inlining Arg"
+;* V115 tmp108 [V115 ] ( 0, 0 ) long -> zero-ref "dup spill"
+;* V116 tmp109 [V116 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
+; V117 tmp110 [V117,T29] ( 3, 12 ) long -> x0 "Inline stloc first use temp"
+;* V118 tmp111 [V118 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
+;* V119 tmp112 [V119 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V120 tmp113 [V120 ] ( 0, 0 ) long -> zero-ref
+;* V121 tmp114 [V121 ] ( 0, 0 ) long -> zero-ref
+; V122 tmp115 [V122,T32] ( 2, 8 ) ref -> x25
+;* V123 tmp116 [V123 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V124 tmp117 [V124 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V125 tmp118 [V125 ] ( 0, 0 ) long -> zero-ref
+; V126 tmp119 [V126,T71] ( 2, 1 ) long -> x0
+; V127 tmp120 [V127,T67] ( 2, 1 ) ref -> x1 single-def
+;* V128 tmp121 [V128 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V129 tmp122 [V129 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V130 tmp123 [V130 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V131 tmp124 [V131 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.UInt128>
+; V132 tmp125 [V132,T22] ( 4, 18 ) long -> x23 "Inlining Arg"
+; V133 tmp126 [V133,T23] ( 4, 18 ) int -> x26 "Inlining Arg"
+;* V134 tmp127 [V134 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
+;* V135 tmp128 [V135 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] "Inline stloc first use temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
+;* V136 tmp129 [V136 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.UInt128>
+;* V137 tmp130 [V137 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
+;* V138 tmp131 [V138 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
+;* V139 tmp132 [V139 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
+;* V140 tmp133 [V140 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline stloc first use temp" <System.UInt128>
+;* V141 tmp134 [V141 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
+;* V142 tmp135 [V142 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
+;* V143 tmp136 [V143 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
+; V144 tmp137 [V144,T35] ( 2, 8 ) long -> x1 ld-addr-op "Inline ldloca(s) first use temp"
+;* V145 tmp138 [V145 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.UInt128>
+;* V146 tmp139 [V146 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+;* V147 tmp140 [V147 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V148 tmp141 [V148 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V149 tmp142 [V149 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V150 tmp143 [V150 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V151 tmp144 [V151 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V152 tmp145 [V152 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V153 tmp146 [V153 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V154 tmp147 [V154,T36] ( 2, 8 ) long -> x1 "Inline stloc first use temp"
-;* V155 tmp148 [V155 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V156 tmp149 [V156 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.UInt128>
-;* V157 tmp150 [V157 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V158 tmp151 [V158,T03] ( 9,464 ) long -> registers "Inlining Arg"
-; V159 tmp152 [V159,T02] ( 8,496 ) long -> x23 "Inlining Arg"
-; V160 tmp153 [V160,T05] ( 6,392 ) int -> x27 "Inlining Arg"
-;* V161 tmp154 [V161 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-;* V162 tmp155 [V162 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V163 tmp156 [V163 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "dup spill" <System.ValueTuple`2[ulong,ulong]>
-; V164 tmp157 [V164,T07] ( 2,256 ) long -> x23 "dup spill"
-; V165 tmp158 [V165,T13] ( 3, 48 ) long -> x0 "Inline stloc first use temp"
-;* V166 tmp159 [V166 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
-;* V167 tmp160 [V167 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V168 tmp161 [V168 ] ( 0, 0 ) long -> zero-ref
-;* V169 tmp162 [V169 ] ( 0, 0 ) long -> zero-ref
-; V170 tmp163 [V170,T17] ( 2, 32 ) ref -> x0
-;* V171 tmp164 [V171 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V151 tmp144 [V151,T36] ( 2, 8 ) long -> x1 "Inline stloc first use temp"
+;* V152 tmp145 [V152 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V153 tmp146 [V153 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.UInt128>
+;* V154 tmp147 [V154 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V155 tmp148 [V155,T03] ( 9,464 ) long -> registers "Inlining Arg"
+; V156 tmp149 [V156,T02] ( 8,496 ) long -> x23 "Inlining Arg"
+; V157 tmp150 [V157,T05] ( 6,392 ) int -> x27 "Inlining Arg"
+;* V158 tmp151 [V158 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
+;* V159 tmp152 [V159 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V160 tmp153 [V160 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "dup spill" <System.ValueTuple`2[ulong,ulong]>
+; V161 tmp154 [V161,T07] ( 2,256 ) long -> x23 "dup spill"
+; V162 tmp155 [V162,T13] ( 3, 48 ) long -> x0 "Inline stloc first use temp"
+;* V163 tmp156 [V163 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
+;* V164 tmp157 [V164 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V165 tmp158 [V165 ] ( 0, 0 ) long -> zero-ref
+;* V166 tmp159 [V166 ] ( 0, 0 ) long -> zero-ref
+; V167 tmp160 [V167,T17] ( 2, 32 ) ref -> x0
+;* V168 tmp161 [V168 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V169 tmp162 [V169 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V170 tmp163 [V170 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V171 tmp164 [V171 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V172 tmp165 [V172 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V173 tmp166 [V173 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V174 tmp167 [V174 ] ( 4, 4 ) struct (16) [fp-0x68] do-not-enreg[XSA] multireg-arg must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-; V175 tmp168 [V175,T43] ( 4, 2.50) long -> x21 single-def "field V02._lower (fldOffset=0x0)" P-INDEP
-; V176 tmp169 [V176,T40] ( 5, 3 ) long -> x19 single-def "field V02._upper (fldOffset=0x8)" P-INDEP
-; V177 tmp170 [V177,T53] ( 5, 2.50) byref -> x22 single-def "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V178 tmp171 [V178,T76] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
-; V179 tmp172 [V179,T71] ( 2, 1 ) byref -> x22 single-def "field V08._reference (fldOffset=0x0)" P-INDEP
-;* V180 tmp173 [V180,T77] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
-;* V181 tmp174 [V181 ] ( 0, 0 ) byref -> zero-ref single-def "field V09._reference (fldOffset=0x0)" P-INDEP
-;* V182 tmp175 [V182 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
-;* V183 tmp176 [V183 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
-;* V184 tmp177 [V184 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
-; V185 tmp178 [V185,T72] ( 2, 1 ) byref -> x0 "field V11._reference (fldOffset=0x0)" P-INDEP
-; V186 tmp179 [V186,T75] ( 2, 1 ) int -> x2 "field V11._length (fldOffset=0x8)" P-INDEP
-; V187 tmp180 [V187,T73] ( 2, 1 ) byref -> x24 single-def "field V13._reference (fldOffset=0x0)" P-INDEP
-;* V188 tmp181 [V188,T78] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
-;* V189 tmp182 [V189 ] ( 0, 0 ) long -> zero-ref "field V16._lower (fldOffset=0x0)" P-INDEP
-;* V190 tmp183 [V190 ] ( 0, 0 ) long -> zero-ref "field V16._upper (fldOffset=0x8)" P-INDEP
-;* V191 tmp184 [V191 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
-;* V192 tmp185 [V192 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
-;* V193 tmp186 [V193 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
-;* V194 tmp187 [V194 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
-;* V195 tmp188 [V195 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
-;* V196 tmp189 [V196 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
-;* V197 tmp190 [V197 ] ( 0, 0 ) long -> zero-ref "field V22._lower (fldOffset=0x0)" P-INDEP
-;* V198 tmp191 [V198 ] ( 0, 0 ) long -> zero-ref "field V22._upper (fldOffset=0x8)" P-INDEP
-;* V199 tmp192 [V199 ] ( 0, 0 ) long -> zero-ref "field V23._lower (fldOffset=0x0)" P-INDEP
-;* V200 tmp193 [V200 ] ( 0, 0 ) long -> zero-ref "field V23._upper (fldOffset=0x8)" P-INDEP
-;* V201 tmp194 [V201 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
-;* V202 tmp195 [V202 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
-;* V203 tmp196 [V203 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
-;* V204 tmp197 [V204 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
-; V205 tmp198 [V205,T62] ( 3, 1.50) byref -> x3 "field V31._reference (fldOffset=0x0)" P-INDEP
-; V206 tmp199 [V206,T66] ( 3, 1.50) int -> x4 "field V31._length (fldOffset=0x8)" P-INDEP
-; V207 tmp200 [V207,T49] ( 7, 3.50) long -> x21 "field V32._lower (fldOffset=0x0)" P-INDEP
-; V208 tmp201 [V208,T50] ( 7, 3.50) long -> x19 "field V32._upper (fldOffset=0x8)" P-INDEP
-;* V209 tmp202 [V209 ] ( 0, 0 ) byref -> zero-ref single-def "field V38._reference (fldOffset=0x0)" P-INDEP
-;* V210 tmp203 [V210 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
-; V211 tmp204 [V211,T67] ( 3, 1.50) long -> x0 "field V43._lower (fldOffset=0x0)" P-INDEP
-; V212 tmp205 [V212,T79] ( 1, 0.50) long -> x1 "field V43._upper (fldOffset=0x8)" P-INDEP
-;* V213 tmp206 [V213,T80] ( 0, 0 ) long -> zero-ref "field V46._lower (fldOffset=0x0)" P-INDEP
-;* V214 tmp207 [V214,T81] ( 0, 0 ) long -> zero-ref "field V46._upper (fldOffset=0x8)" P-INDEP
-;* V215 tmp208 [V215 ] ( 0, 0 ) long -> zero-ref "field V47._lower (fldOffset=0x0)" P-INDEP
-;* V216 tmp209 [V216 ] ( 0, 0 ) long -> zero-ref "field V47._upper (fldOffset=0x8)" P-INDEP
-;* V217 tmp210 [V217 ] ( 0, 0 ) long -> zero-ref "field V48._lower (fldOffset=0x0)" P-DEP
-;* V218 tmp211 [V218 ] ( 0, 0 ) long -> zero-ref "field V48._upper (fldOffset=0x8)" P-DEP
-;* V219 tmp212 [V219 ] ( 0, 0 ) byref -> zero-ref single-def "field V49._reference (fldOffset=0x0)" P-INDEP
-;* V220 tmp213 [V220 ] ( 0, 0 ) int -> zero-ref "field V49._length (fldOffset=0x8)" P-INDEP
-;* V221 tmp214 [V221 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V222 tmp215 [V222 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-;* V223 tmp216 [V223 ] ( 0, 0 ) byref -> zero-ref single-def "field V56._reference (fldOffset=0x0)" P-INDEP
-;* V224 tmp217 [V224 ] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP
-;* V225 tmp218 [V225 ] ( 0, 0 ) byref -> zero-ref single-def "field V59._reference (fldOffset=0x0)" P-INDEP
-;* V226 tmp219 [V226 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
-;* V227 tmp220 [V227 ] ( 0, 0 ) byref -> zero-ref single-def "field V60._reference (fldOffset=0x0)" P-INDEP
-;* V228 tmp221 [V228 ] ( 0, 0 ) int -> zero-ref "field V60._length (fldOffset=0x8)" P-INDEP
-;* V229 tmp222 [V229 ] ( 0, 0 ) byref -> zero-ref single-def "field V64._reference (fldOffset=0x0)" P-INDEP
-;* V230 tmp223 [V230 ] ( 0, 0 ) int -> zero-ref "field V64._length (fldOffset=0x8)" P-INDEP
-;* V231 tmp224 [V231 ] ( 0, 0 ) byref -> zero-ref single-def "field V67._reference (fldOffset=0x0)" P-INDEP
-;* V232 tmp225 [V232 ] ( 0, 0 ) int -> zero-ref "field V67._length (fldOffset=0x8)" P-INDEP
-;* V233 tmp226 [V233 ] ( 0, 0 ) byref -> zero-ref single-def "field V70._reference (fldOffset=0x0)" P-INDEP
-;* V234 tmp227 [V234 ] ( 0, 0 ) int -> zero-ref "field V70._length (fldOffset=0x8)" P-INDEP
-;* V235 tmp228 [V235 ] ( 0, 0 ) byref -> zero-ref single-def "field V72._reference (fldOffset=0x0)" P-INDEP
-;* V236 tmp229 [V236 ] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-INDEP
-; V237 tmp230 [V237,T25] ( 5, 13 ) long -> x21 "field V73._lower (fldOffset=0x0)" P-INDEP
-; V238 tmp231 [V238,T26] ( 5, 13 ) long -> x1 "field V73._upper (fldOffset=0x8)" P-INDEP
-;* V239 tmp232 [V239,T45] ( 0, 0 ) long -> zero-ref "field V75._lower (fldOffset=0x0)" P-INDEP
-;* V240 tmp233 [V240,T46] ( 0, 0 ) long -> zero-ref "field V75._upper (fldOffset=0x8)" P-INDEP
-;* V241 tmp234 [V241 ] ( 0, 0 ) long -> zero-ref "field V77._lower (fldOffset=0x0)" P-INDEP
-;* V242 tmp235 [V242 ] ( 0, 0 ) long -> zero-ref "field V77._upper (fldOffset=0x8)" P-INDEP
-;* V243 tmp236 [V243 ] ( 0, 0 ) long -> zero-ref "field V78._lower (fldOffset=0x0)" P-INDEP
-;* V244 tmp237 [V244 ] ( 0, 0 ) long -> zero-ref "field V78._upper (fldOffset=0x8)" P-INDEP
-;* V245 tmp238 [V245 ] ( 0, 0 ) long -> zero-ref "field V79._lower (fldOffset=0x0)" P-INDEP
-;* V246 tmp239 [V246 ] ( 0, 0 ) long -> zero-ref "field V79._upper (fldOffset=0x8)" P-INDEP
-;* V247 tmp240 [V247 ] ( 0, 0 ) long -> zero-ref "field V80._lower (fldOffset=0x0)" P-DEP
-;* V248 tmp241 [V248 ] ( 0, 0 ) long -> zero-ref "field V80._upper (fldOffset=0x8)" P-DEP
-; V249 tmp242 [V249,T30] ( 3, 12 ) long -> x0 "field V81._lower (fldOffset=0x0)" P-INDEP
-; V250 tmp243 [V250,T37] ( 2, 8 ) long -> x1 "field V81._upper (fldOffset=0x8)" P-INDEP
-;* V251 tmp244 [V251 ] ( 0, 0 ) long -> zero-ref "field V82._lower (fldOffset=0x0)" P-INDEP
-;* V252 tmp245 [V252 ] ( 0, 0 ) long -> zero-ref "field V82._upper (fldOffset=0x8)" P-INDEP
-;* V253 tmp246 [V253 ] ( 0, 0 ) long -> zero-ref "field V84._lower (fldOffset=0x0)" P-INDEP
-;* V254 tmp247 [V254 ] ( 0, 0 ) long -> zero-ref "field V84._upper (fldOffset=0x8)" P-INDEP
-;* V255 tmp248 [V255 ] ( 0, 0 ) long -> zero-ref "field V86._lower (fldOffset=0x0)" P-INDEP
-;* V256 tmp249 [V256 ] ( 0, 0 ) long -> zero-ref "field V86._upper (fldOffset=0x8)" P-INDEP
-;* V257 tmp250 [V257 ] ( 0, 0 ) long -> zero-ref "field V94._lower (fldOffset=0x0)" P-INDEP
-;* V258 tmp251 [V258 ] ( 0, 0 ) long -> zero-ref "field V94._upper (fldOffset=0x8)" P-INDEP
-;* V259 tmp252 [V259 ] ( 0, 0 ) long -> zero-ref "field V99.Item1 (fldOffset=0x0)" P-INDEP
-;* V260 tmp253 [V260 ] ( 0, 0 ) long -> zero-ref "field V99.Item2 (fldOffset=0x8)" P-INDEP
-;* V261 tmp254 [V261 ] ( 0, 0 ) long -> zero-ref "field V101.Item1 (fldOffset=0x0)" P-INDEP
-;* V262 tmp255 [V262 ] ( 0, 0 ) long -> zero-ref "field V101.Item2 (fldOffset=0x8)" P-INDEP
-;* V263 tmp256 [V263 ] ( 0, 0 ) long -> zero-ref "field V104.Item1 (fldOffset=0x0)" P-INDEP
-; V264 tmp257 [V264,T18] ( 2, 32 ) long -> x4 "field V104.Item2 (fldOffset=0x8)" P-INDEP
-;* V265 tmp258 [V265 ] ( 0, 0 ) long -> zero-ref "field V112.Item1 (fldOffset=0x0)" P-INDEP
-; V266 tmp259 [V266,T09] ( 2,128 ) long -> x4 "field V112.Item2 (fldOffset=0x8)" P-INDEP
-;* V267 tmp260 [V267 ] ( 0, 0 ) long -> zero-ref "field V119.Item1 (fldOffset=0x0)" P-INDEP
-;* V268 tmp261 [V268 ] ( 0, 0 ) long -> zero-ref "field V119.Item2 (fldOffset=0x8)" P-INDEP
-;* V269 tmp262 [V269 ] ( 0, 0 ) long -> zero-ref "field V121.Item1 (fldOffset=0x0)" P-INDEP
-; V270 tmp263 [V270,T38] ( 2, 8 ) long -> x1 "field V121.Item2 (fldOffset=0x8)" P-INDEP
-; V271 tmp264 [V271,T27] ( 5, 13 ) long -> x21 "field V134._lower (fldOffset=0x0)" P-INDEP
-; V272 tmp265 [V272,T28] ( 5, 13 ) long -> x19 "field V134._upper (fldOffset=0x8)" P-INDEP
-;* V273 tmp266 [V273,T47] ( 0, 0 ) long -> zero-ref "field V137._lower (fldOffset=0x0)" P-INDEP
-;* V274 tmp267 [V274,T48] ( 0, 0 ) long -> zero-ref "field V137._upper (fldOffset=0x8)" P-INDEP
-;* V275 tmp268 [V275 ] ( 0, 0 ) long -> zero-ref "field V139._lower (fldOffset=0x0)" P-INDEP
-;* V276 tmp269 [V276 ] ( 0, 0 ) long -> zero-ref "field V139._upper (fldOffset=0x8)" P-INDEP
-;* V277 tmp270 [V277 ] ( 0, 0 ) long -> zero-ref "field V140._lower (fldOffset=0x0)" P-INDEP
-;* V278 tmp271 [V278 ] ( 0, 0 ) long -> zero-ref "field V140._upper (fldOffset=0x8)" P-INDEP
-;* V279 tmp272 [V279 ] ( 0, 0 ) long -> zero-ref "field V141._lower (fldOffset=0x0)" P-INDEP
-;* V280 tmp273 [V280 ] ( 0, 0 ) long -> zero-ref "field V141._upper (fldOffset=0x8)" P-INDEP
-;* V281 tmp274 [V281 ] ( 0, 0 ) long -> zero-ref "field V142._lower (fldOffset=0x0)" P-DEP
-;* V282 tmp275 [V282 ] ( 0, 0 ) long -> zero-ref "field V142._upper (fldOffset=0x8)" P-DEP
-; V283 tmp276 [V283,T31] ( 3, 12 ) long -> x0 "field V143._lower (fldOffset=0x0)" P-INDEP
-; V284 tmp277 [V284,T39] ( 2, 8 ) long -> x19 "field V143._upper (fldOffset=0x8)" P-INDEP
-;* V285 tmp278 [V285 ] ( 0, 0 ) long -> zero-ref "field V144._lower (fldOffset=0x0)" P-INDEP
-;* V286 tmp279 [V286 ] ( 0, 0 ) long -> zero-ref "field V144._upper (fldOffset=0x8)" P-INDEP
-;* V287 tmp280 [V287 ] ( 0, 0 ) long -> zero-ref "field V146._lower (fldOffset=0x0)" P-INDEP
-;* V288 tmp281 [V288 ] ( 0, 0 ) long -> zero-ref "field V146._upper (fldOffset=0x8)" P-INDEP
-;* V289 tmp282 [V289 ] ( 0, 0 ) long -> zero-ref "field V148._lower (fldOffset=0x0)" P-INDEP
-;* V290 tmp283 [V290 ] ( 0, 0 ) long -> zero-ref "field V148._upper (fldOffset=0x8)" P-INDEP
-;* V291 tmp284 [V291 ] ( 0, 0 ) long -> zero-ref "field V156._lower (fldOffset=0x0)" P-INDEP
-;* V292 tmp285 [V292 ] ( 0, 0 ) long -> zero-ref "field V156._upper (fldOffset=0x8)" P-INDEP
-;* V293 tmp286 [V293 ] ( 0, 0 ) long -> zero-ref "field V161.Item1 (fldOffset=0x0)" P-INDEP
-;* V294 tmp287 [V294 ] ( 0, 0 ) long -> zero-ref "field V161.Item2 (fldOffset=0x8)" P-INDEP
-; V295 tmp288 [V295,T10] ( 2,128 ) long -> x0 "field V163.Item1 (fldOffset=0x0)" P-INDEP
-; V296 tmp289 [V296,T11] ( 2,128 ) long -> x1 "field V163.Item2 (fldOffset=0x8)" P-INDEP
-;* V297 tmp290 [V297 ] ( 0, 0 ) long -> zero-ref "field V166.Item1 (fldOffset=0x0)" P-INDEP
-; V298 tmp291 [V298,T19] ( 2, 32 ) long -> x2 "field V166.Item2 (fldOffset=0x8)" P-INDEP
-; V299 tmp292 [V299 ] ( 3, 2.50) byref -> [fp-0x68] do-not-enreg[X] addr-exposed "field V174._reference (fldOffset=0x0)" P-DEP
-; V300 tmp293 [V300 ] ( 3, 2.50) int -> [fp-0x60] do-not-enreg[X] addr-exposed "field V174._length (fldOffset=0x8)" P-DEP
-;* V301 tmp294 [V301 ] ( 0, 0 ) long -> zero-ref "V76.[000..008)"
-;* V302 tmp295 [V302 ] ( 0, 0 ) long -> zero-ref "V76.[008..016)"
-;* V303 tmp296 [V303 ] ( 0, 0 ) long -> zero-ref "V76.[016..024)"
-;* V304 tmp297 [V304 ] ( 0, 0 ) long -> zero-ref "V76.[024..032)"
-;* V305 tmp298 [V305 ] ( 0, 0 ) long -> zero-ref "V83.[000..008)"
-;* V306 tmp299 [V306 ] ( 0, 0 ) long -> zero-ref "V83.[008..016)"
-;* V307 tmp300 [V307 ] ( 0, 0 ) long -> zero-ref "V83.[016..024)"
-;* V308 tmp301 [V308 ] ( 0, 0 ) long -> zero-ref "V83.[024..032)"
-;* V309 tmp302 [V309 ] ( 0, 0 ) long -> zero-ref "V138.[000..008)"
-;* V310 tmp303 [V310 ] ( 0, 0 ) long -> zero-ref "V138.[008..016)"
-;* V311 tmp304 [V311 ] ( 0, 0 ) long -> zero-ref "V138.[016..024)"
-;* V312 tmp305 [V312 ] ( 0, 0 ) long -> zero-ref "V138.[024..032)"
-;* V313 tmp306 [V313 ] ( 0, 0 ) long -> zero-ref "V145.[000..008)"
-;* V314 tmp307 [V314 ] ( 0, 0 ) long -> zero-ref "V145.[008..016)"
-;* V315 tmp308 [V315 ] ( 0, 0 ) long -> zero-ref "V145.[016..024)"
-;* V316 tmp309 [V316 ] ( 0, 0 ) long -> zero-ref "V145.[024..032)"
-; V317 tmp310 [V317,T61] ( 2, 2 ) long -> x23 "Cast away GC"
-; V318 GsCookie [V318 ] ( 1, 1 ) long -> [fp-0x70] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V319 cse0 [V319,T14] ( 8, 41.50) ref -> x25 hoist multi-def "CSE #06: moderate"
-; V320 cse1 [V320,T68] ( 3, 1.50) int -> x0 "CSE #08: conservative"
-; V321 cse2 [V321,T24] ( 4, 8.50) long -> x24 hoist multi-def "CSE #05: moderate"
+;* V173 tmp166 [V173 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V174 tmp167 [V174 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V175 tmp168 [V175 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V176 tmp169 [V176 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V177 tmp170 [V177,T41] ( 9, 5 ) long -> x20 single-def "field V02._lower (fldOffset=0x0)" P-INDEP
+; V178 tmp171 [V178,T40] ( 10, 5.50) long -> x19 single-def "field V02._upper (fldOffset=0x8)" P-INDEP
+; V179 tmp172 [V179,T51] ( 5, 2.50) byref -> x22 single-def "field V04._reference (fldOffset=0x0)" P-INDEP
+;* V180 tmp173 [V180,T73] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
+; V181 tmp174 [V181,T68] ( 2, 1 ) byref -> x22 single-def "field V08._reference (fldOffset=0x0)" P-INDEP
+;* V182 tmp175 [V182,T74] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
+;* V183 tmp176 [V183 ] ( 0, 0 ) byref -> zero-ref single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+;* V184 tmp177 [V184 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
+;* V185 tmp178 [V185 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
+;* V186 tmp179 [V186 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
+;* V187 tmp180 [V187 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V188 tmp181 [V188 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
+; V189 tmp182 [V189,T69] ( 2, 1 ) byref -> x24 single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+;* V190 tmp183 [V190,T75] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
+;* V191 tmp184 [V191 ] ( 0, 0 ) long -> zero-ref "field V16._lower (fldOffset=0x0)" P-INDEP
+;* V192 tmp185 [V192 ] ( 0, 0 ) long -> zero-ref "field V16._upper (fldOffset=0x8)" P-INDEP
+;* V193 tmp186 [V193 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
+;* V194 tmp187 [V194 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
+;* V195 tmp188 [V195 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
+;* V196 tmp189 [V196 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
+;* V197 tmp190 [V197 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
+;* V198 tmp191 [V198 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
+;* V199 tmp192 [V199 ] ( 0, 0 ) long -> zero-ref "field V22._lower (fldOffset=0x0)" P-INDEP
+;* V200 tmp193 [V200 ] ( 0, 0 ) long -> zero-ref "field V22._upper (fldOffset=0x8)" P-INDEP
+;* V201 tmp194 [V201 ] ( 0, 0 ) long -> zero-ref "field V23._lower (fldOffset=0x0)" P-INDEP
+;* V202 tmp195 [V202 ] ( 0, 0 ) long -> zero-ref "field V23._upper (fldOffset=0x8)" P-INDEP
+;* V203 tmp196 [V203 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
+;* V204 tmp197 [V204 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
+;* V205 tmp198 [V205 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V206 tmp199 [V206 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
+; V207 tmp200 [V207,T60] ( 3, 1.50) byref -> x3 "field V31._reference (fldOffset=0x0)" P-INDEP
+; V208 tmp201 [V208,T64] ( 3, 1.50) int -> x4 "field V31._length (fldOffset=0x8)" P-INDEP
+;* V209 tmp202 [V209 ] ( 0, 0 ) byref -> zero-ref single-def "field V35._reference (fldOffset=0x0)" P-INDEP
+;* V210 tmp203 [V210 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
+; V211 tmp204 [V211,T65] ( 3, 1.50) long -> x0 "field V40._lower (fldOffset=0x0)" P-INDEP
+; V212 tmp205 [V212,T76] ( 1, 0.50) long -> x1 "field V40._upper (fldOffset=0x8)" P-INDEP
+;* V213 tmp206 [V213,T77] ( 0, 0 ) long -> zero-ref "field V43._lower (fldOffset=0x0)" P-INDEP
+;* V214 tmp207 [V214,T78] ( 0, 0 ) long -> zero-ref "field V43._upper (fldOffset=0x8)" P-INDEP
+;* V215 tmp208 [V215 ] ( 0, 0 ) long -> zero-ref "field V44._lower (fldOffset=0x0)" P-INDEP
+;* V216 tmp209 [V216 ] ( 0, 0 ) long -> zero-ref "field V44._upper (fldOffset=0x8)" P-INDEP
+;* V217 tmp210 [V217 ] ( 0, 0 ) long -> zero-ref "field V45._lower (fldOffset=0x0)" P-DEP
+;* V218 tmp211 [V218 ] ( 0, 0 ) long -> zero-ref "field V45._upper (fldOffset=0x8)" P-DEP
+;* V219 tmp212 [V219 ] ( 0, 0 ) byref -> zero-ref single-def "field V46._reference (fldOffset=0x0)" P-INDEP
+;* V220 tmp213 [V220 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP
+;* V221 tmp214 [V221 ] ( 0, 0 ) byref -> zero-ref single-def "field V50._reference (fldOffset=0x0)" P-INDEP
+;* V222 tmp215 [V222 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
+;* V223 tmp216 [V223 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V224 tmp217 [V224 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
+;* V225 tmp218 [V225 ] ( 0, 0 ) byref -> zero-ref single-def "field V56._reference (fldOffset=0x0)" P-INDEP
+;* V226 tmp219 [V226 ] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP
+;* V227 tmp220 [V227 ] ( 0, 0 ) byref -> zero-ref single-def "field V57._reference (fldOffset=0x0)" P-INDEP
+;* V228 tmp221 [V228 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
+;* V229 tmp222 [V229 ] ( 0, 0 ) byref -> zero-ref single-def "field V61._reference (fldOffset=0x0)" P-INDEP
+;* V230 tmp223 [V230 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
+;* V231 tmp224 [V231 ] ( 0, 0 ) byref -> zero-ref single-def "field V64._reference (fldOffset=0x0)" P-INDEP
+;* V232 tmp225 [V232 ] ( 0, 0 ) int -> zero-ref "field V64._length (fldOffset=0x8)" P-INDEP
+;* V233 tmp226 [V233 ] ( 0, 0 ) byref -> zero-ref single-def "field V67._reference (fldOffset=0x0)" P-INDEP
+;* V234 tmp227 [V234 ] ( 0, 0 ) int -> zero-ref "field V67._length (fldOffset=0x8)" P-INDEP
+;* V235 tmp228 [V235 ] ( 0, 0 ) byref -> zero-ref single-def "field V69._reference (fldOffset=0x0)" P-INDEP
+;* V236 tmp229 [V236 ] ( 0, 0 ) int -> zero-ref "field V69._length (fldOffset=0x8)" P-INDEP
+; V237 tmp230 [V237,T25] ( 5, 13 ) long -> x20 "field V70._lower (fldOffset=0x0)" P-INDEP
+; V238 tmp231 [V238,T26] ( 5, 13 ) long -> x1 "field V70._upper (fldOffset=0x8)" P-INDEP
+;* V239 tmp232 [V239,T45] ( 0, 0 ) long -> zero-ref "field V72._lower (fldOffset=0x0)" P-INDEP
+;* V240 tmp233 [V240,T46] ( 0, 0 ) long -> zero-ref "field V72._upper (fldOffset=0x8)" P-INDEP
+;* V241 tmp234 [V241 ] ( 0, 0 ) long -> zero-ref "field V74._lower (fldOffset=0x0)" P-INDEP
+;* V242 tmp235 [V242 ] ( 0, 0 ) long -> zero-ref "field V74._upper (fldOffset=0x8)" P-INDEP
+;* V243 tmp236 [V243 ] ( 0, 0 ) long -> zero-ref "field V75._lower (fldOffset=0x0)" P-INDEP
+;* V244 tmp237 [V244 ] ( 0, 0 ) long -> zero-ref "field V75._upper (fldOffset=0x8)" P-INDEP
+;* V245 tmp238 [V245 ] ( 0, 0 ) long -> zero-ref "field V76._lower (fldOffset=0x0)" P-INDEP
+;* V246 tmp239 [V246 ] ( 0, 0 ) long -> zero-ref "field V76._upper (fldOffset=0x8)" P-INDEP
+;* V247 tmp240 [V247 ] ( 0, 0 ) long -> zero-ref "field V77._lower (fldOffset=0x0)" P-DEP
+;* V248 tmp241 [V248 ] ( 0, 0 ) long -> zero-ref "field V77._upper (fldOffset=0x8)" P-DEP
+; V249 tmp242 [V249,T30] ( 3, 12 ) long -> x0 "field V78._lower (fldOffset=0x0)" P-INDEP
+; V250 tmp243 [V250,T37] ( 2, 8 ) long -> x1 "field V78._upper (fldOffset=0x8)" P-INDEP
+;* V251 tmp244 [V251 ] ( 0, 0 ) long -> zero-ref "field V79._lower (fldOffset=0x0)" P-INDEP
+;* V252 tmp245 [V252 ] ( 0, 0 ) long -> zero-ref "field V79._upper (fldOffset=0x8)" P-INDEP
+;* V253 tmp246 [V253 ] ( 0, 0 ) long -> zero-ref "field V81._lower (fldOffset=0x0)" P-INDEP
+;* V254 tmp247 [V254 ] ( 0, 0 ) long -> zero-ref "field V81._upper (fldOffset=0x8)" P-INDEP
+;* V255 tmp248 [V255 ] ( 0, 0 ) long -> zero-ref "field V83._lower (fldOffset=0x0)" P-INDEP
+;* V256 tmp249 [V256 ] ( 0, 0 ) long -> zero-ref "field V83._upper (fldOffset=0x8)" P-INDEP
+;* V257 tmp250 [V257 ] ( 0, 0 ) long -> zero-ref "field V91._lower (fldOffset=0x0)" P-INDEP
+;* V258 tmp251 [V258 ] ( 0, 0 ) long -> zero-ref "field V91._upper (fldOffset=0x8)" P-INDEP
+;* V259 tmp252 [V259 ] ( 0, 0 ) long -> zero-ref "field V96.Item1 (fldOffset=0x0)" P-INDEP
+;* V260 tmp253 [V260 ] ( 0, 0 ) long -> zero-ref "field V96.Item2 (fldOffset=0x8)" P-INDEP
+;* V261 tmp254 [V261 ] ( 0, 0 ) long -> zero-ref "field V98.Item1 (fldOffset=0x0)" P-INDEP
+;* V262 tmp255 [V262 ] ( 0, 0 ) long -> zero-ref "field V98.Item2 (fldOffset=0x8)" P-INDEP
+;* V263 tmp256 [V263 ] ( 0, 0 ) long -> zero-ref "field V101.Item1 (fldOffset=0x0)" P-INDEP
+; V264 tmp257 [V264,T18] ( 2, 32 ) long -> x4 "field V101.Item2 (fldOffset=0x8)" P-INDEP
+;* V265 tmp258 [V265 ] ( 0, 0 ) long -> zero-ref "field V109.Item1 (fldOffset=0x0)" P-INDEP
+; V266 tmp259 [V266,T09] ( 2,128 ) long -> x4 "field V109.Item2 (fldOffset=0x8)" P-INDEP
+;* V267 tmp260 [V267 ] ( 0, 0 ) long -> zero-ref "field V116.Item1 (fldOffset=0x0)" P-INDEP
+;* V268 tmp261 [V268 ] ( 0, 0 ) long -> zero-ref "field V116.Item2 (fldOffset=0x8)" P-INDEP
+;* V269 tmp262 [V269 ] ( 0, 0 ) long -> zero-ref "field V118.Item1 (fldOffset=0x0)" P-INDEP
+; V270 tmp263 [V270,T38] ( 2, 8 ) long -> x1 "field V118.Item2 (fldOffset=0x8)" P-INDEP
+; V271 tmp264 [V271,T27] ( 5, 13 ) long -> x20 "field V131._lower (fldOffset=0x0)" P-INDEP
+; V272 tmp265 [V272,T28] ( 5, 13 ) long -> x19 "field V131._upper (fldOffset=0x8)" P-INDEP
+;* V273 tmp266 [V273,T47] ( 0, 0 ) long -> zero-ref "field V134._lower (fldOffset=0x0)" P-INDEP
+;* V274 tmp267 [V274,T48] ( 0, 0 ) long -> zero-ref "field V134._upper (fldOffset=0x8)" P-INDEP
+;* V275 tmp268 [V275 ] ( 0, 0 ) long -> zero-ref "field V136._lower (fldOffset=0x0)" P-INDEP
+;* V276 tmp269 [V276 ] ( 0, 0 ) long -> zero-ref "field V136._upper (fldOffset=0x8)" P-INDEP
+;* V277 tmp270 [V277 ] ( 0, 0 ) long -> zero-ref "field V137._lower (fldOffset=0x0)" P-INDEP
+;* V278 tmp271 [V278 ] ( 0, 0 ) long -> zero-ref "field V137._upper (fldOffset=0x8)" P-INDEP
+;* V279 tmp272 [V279 ] ( 0, 0 ) long -> zero-ref "field V138._lower (fldOffset=0x0)" P-INDEP
+;* V280 tmp273 [V280 ] ( 0, 0 ) long -> zero-ref "field V138._upper (fldOffset=0x8)" P-INDEP
+;* V281 tmp274 [V281 ] ( 0, 0 ) long -> zero-ref "field V139._lower (fldOffset=0x0)" P-DEP
+;* V282 tmp275 [V282 ] ( 0, 0 ) long -> zero-ref "field V139._upper (fldOffset=0x8)" P-DEP
+; V283 tmp276 [V283,T31] ( 3, 12 ) long -> x0 "field V140._lower (fldOffset=0x0)" P-INDEP
+; V284 tmp277 [V284,T39] ( 2, 8 ) long -> x19 "field V140._upper (fldOffset=0x8)" P-INDEP
+;* V285 tmp278 [V285 ] ( 0, 0 ) long -> zero-ref "field V141._lower (fldOffset=0x0)" P-INDEP
+;* V286 tmp279 [V286 ] ( 0, 0 ) long -> zero-ref "field V141._upper (fldOffset=0x8)" P-INDEP
+;* V287 tmp280 [V287 ] ( 0, 0 ) long -> zero-ref "field V143._lower (fldOffset=0x0)" P-INDEP
+;* V288 tmp281 [V288 ] ( 0, 0 ) long -> zero-ref "field V143._upper (fldOffset=0x8)" P-INDEP
+;* V289 tmp282 [V289 ] ( 0, 0 ) long -> zero-ref "field V145._lower (fldOffset=0x0)" P-INDEP
+;* V290 tmp283 [V290 ] ( 0, 0 ) long -> zero-ref "field V145._upper (fldOffset=0x8)" P-INDEP
+;* V291 tmp284 [V291 ] ( 0, 0 ) long -> zero-ref "field V153._lower (fldOffset=0x0)" P-INDEP
+;* V292 tmp285 [V292 ] ( 0, 0 ) long -> zero-ref "field V153._upper (fldOffset=0x8)" P-INDEP
+;* V293 tmp286 [V293 ] ( 0, 0 ) long -> zero-ref "field V158.Item1 (fldOffset=0x0)" P-INDEP
+;* V294 tmp287 [V294 ] ( 0, 0 ) long -> zero-ref "field V158.Item2 (fldOffset=0x8)" P-INDEP
+; V295 tmp288 [V295,T10] ( 2,128 ) long -> x0 "field V160.Item1 (fldOffset=0x0)" P-INDEP
+; V296 tmp289 [V296,T11] ( 2,128 ) long -> x1 "field V160.Item2 (fldOffset=0x8)" P-INDEP
+;* V297 tmp290 [V297 ] ( 0, 0 ) long -> zero-ref "field V163.Item1 (fldOffset=0x0)" P-INDEP
+; V298 tmp291 [V298,T19] ( 2, 32 ) long -> x2 "field V163.Item2 (fldOffset=0x8)" P-INDEP
+;* V299 tmp292 [V299 ] ( 0, 0 ) byref -> zero-ref single-def "field V171._reference (fldOffset=0x0)" P-INDEP
+;* V300 tmp293 [V300 ] ( 0, 0 ) int -> zero-ref "field V171._length (fldOffset=0x8)" P-INDEP
+;* V301 tmp294 [V301 ] ( 0, 0 ) byref -> zero-ref single-def "field V173._reference (fldOffset=0x0)" P-INDEP
+;* V302 tmp295 [V302 ] ( 0, 0 ) int -> zero-ref "field V173._length (fldOffset=0x8)" P-INDEP
+; V303 tmp296 [V303,T70] ( 2, 1 ) byref -> x1 single-def "field V174._reference (fldOffset=0x0)" P-INDEP
+; V304 tmp297 [V304,T72] ( 2, 1 ) int -> x2 "field V174._length (fldOffset=0x8)" P-INDEP
+;* V305 tmp298 [V305 ] ( 0, 0 ) long -> zero-ref "V73.[000..008)"
+;* V306 tmp299 [V306 ] ( 0, 0 ) long -> zero-ref "V73.[008..016)"
+;* V307 tmp300 [V307 ] ( 0, 0 ) long -> zero-ref "V73.[016..024)"
+;* V308 tmp301 [V308 ] ( 0, 0 ) long -> zero-ref "V73.[024..032)"
+;* V309 tmp302 [V309 ] ( 0, 0 ) long -> zero-ref "V80.[000..008)"
+;* V310 tmp303 [V310 ] ( 0, 0 ) long -> zero-ref "V80.[008..016)"
+;* V311 tmp304 [V311 ] ( 0, 0 ) long -> zero-ref "V80.[016..024)"
+;* V312 tmp305 [V312 ] ( 0, 0 ) long -> zero-ref "V80.[024..032)"
+;* V313 tmp306 [V313 ] ( 0, 0 ) long -> zero-ref "V135.[000..008)"
+;* V314 tmp307 [V314 ] ( 0, 0 ) long -> zero-ref "V135.[008..016)"
+;* V315 tmp308 [V315 ] ( 0, 0 ) long -> zero-ref "V135.[016..024)"
+;* V316 tmp309 [V316 ] ( 0, 0 ) long -> zero-ref "V135.[024..032)"
+;* V317 tmp310 [V317 ] ( 0, 0 ) long -> zero-ref "V142.[000..008)"
+;* V318 tmp311 [V318 ] ( 0, 0 ) long -> zero-ref "V142.[008..016)"
+;* V319 tmp312 [V319 ] ( 0, 0 ) long -> zero-ref "V142.[016..024)"
+;* V320 tmp313 [V320 ] ( 0, 0 ) long -> zero-ref "V142.[024..032)"
+; V321 tmp314 [V321,T59] ( 2, 2 ) long -> x23 "Cast away GC"
+; V322 GsCookie [V322 ] ( 1, 1 ) long -> [fp-0x60] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V323 cse0 [V323,T14] ( 8, 41.50) ref -> x25 hoist multi-def "CSE #06: moderate"
+; V324 cse1 [V324,T24] ( 4, 8.50) long -> x24 hoist multi-def "CSE #05: moderate"
;
-; Lcl frame size = 40
+; Lcl frame size = 24
G_M55472_IG01:
- sub sp, sp, #128
- stp x19, x20, [sp, #0x28]
- stp x21, x22, [sp, #0x38]
- stp x23, x24, [sp, #0x48]
- stp x25, x26, [sp, #0x58]
- str x27, [sp, #0x68]
- stp fp, lr, [sp, #0x70]
- add fp, sp, #112
- str xzr, [fp, #-0x58] // [V39 tmp32]
- str xzr, [fp, #-0x68] // [V174 tmp167]
+ sub sp, sp, #112
+ stp x19, x20, [sp, #0x18]
+ stp x21, x22, [sp, #0x28]
+ stp x23, x24, [sp, #0x38]
+ stp x25, x26, [sp, #0x48]
+ str x27, [sp, #0x58]
+ stp fp, lr, [sp, #0x60]
+ add fp, sp, #96
+ str xzr, [fp, #-0x58] // [V36 tmp29]
movz x5, #0xD1FFAB1E
movk x5, #14 LSL #16
- str x5, [fp, #-0x70] // [V318 GsCookie]
- mov x20, x1
- mov x21, x2
+ str x5, [fp, #-0x60] // [V322 GsCookie]
+ mov x21, x1
+ mov x20, x2
mov x19, x3
- ;; size=64 bbWeight=1 PerfScore 12.50
+ ;; size=60 bbWeight=1 PerfScore 11.50
G_M55472_IG02:
tbz w4, #1, G_M55472_IG05
;; size=4 bbWeight=1 PerfScore 1.00
G_M55472_IG03:
ldr wzr, [sp], #-0x30
mov x22, sp
mov w0, #34
strb w0, [x22]
add x23, x22, #1
mov x24, x23
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
tbz x19, #63, G_M55472_IG07
movz x1, #0xD1FFAB1E // code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x23, x0
ldr x2, [x23, #0x98]
cbnz x2, G_M55472_IG04
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
ldr x1, [x23, #0x28]
movz x2, #0xD1FFAB1E // code for System.Text.UTF8Encoding+UTF8EncodingSealed:GetBytes(System.String):ubyte[]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x2, x0
add x14, x23, #152
mov x15, x2
bl CORINFO_HELP_ASSIGN_REF
;; size=132 bbWeight=0.50 PerfScore 18.00
G_M55472_IG04:
cbnz x2, G_M55472_IG34
mov x3, xzr
mov w4, wzr
b G_M55472_IG35
- align [4 bytes for IG13]
+ align [0 bytes for IG13]
align [0 bytes]
align [0 bytes]
align [0 bytes]
- ;; size=20 bbWeight=0.50 PerfScore 1.50
+ ;; size=16 bbWeight=0.50 PerfScore 1.50
G_M55472_IG05:
- mov x1, x21
+ mov x1, x20
mov x2, x19
- mov x0, x20
+ mov x0, x21
movz x3, #0xD1FFAB1E // code for System.Text.Json.Serialization.Converters.Int128Converter:WriteCore(System.Text.Json.Utf8JsonWriter,System.Int128)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
movz xip0, #0xD1FFAB1E
movk xip0, #14 LSL #16
- ldr xip1, [fp, #-0x70] // [V318 GsCookie]
+ ldr xip1, [fp, #-0x60] // [V322 GsCookie]
cmp xip0, xip1
beq G_M55472_IG06
bl CORINFO_HELP_FAIL_FAST
;; size=56 bbWeight=0.50 PerfScore 6.25
G_M55472_IG06:
- sub sp, fp, #112
- ldp fp, lr, [sp, #0x70]
- ldr x27, [sp, #0x68]
- ldp x25, x26, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- add sp, sp, #128
+ sub sp, fp, #96
+ ldp fp, lr, [sp, #0x60]
+ ldr x27, [sp, #0x58]
+ ldp x25, x26, [sp, #0x48]
+ ldp x23, x24, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
+ add sp, sp, #112
ret lr
;; size=36 bbWeight=0.50 PerfScore 4.50
G_M55472_IG07:
cbnz x19, G_M55472_IG08
- orr x0, x21, #1
+ orr x0, x20, #1
clz x0, x0
eor w0, w0, #63
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldrb w0, [x1, w0, SXTW #2]
ubfiz x1, x0, #3, #32
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x1, x2]
- cmp x21, x1
+ cmp x20, x1
cset x1, lo
sub w24, w0, w1
b G_M55472_IG10
;; size=68 bbWeight=0.50 PerfScore 7.50
G_M55472_IG08:
mov w24, #20
cmp x19, #5
bls G_M55472_IG09
- mov x0, x21
+ mov x0, x20
mov x1, x19
movz x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movk x2, #0xD1FFAB1E LSL #48
mov x3, #5
movz x4, #0xD1FFAB1E // code for System.UInt128:op_Division(System.UInt128,System.UInt128):System.UInt128
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
orr x1, x0, #1
clz x1, x1
eor w1, w1, #63
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldrb w1, [x2, w1, SXTW #2]
ubfiz x2, x1, #3, #32
movz x3, #0xD1FFAB1E
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x2, [x2, x3]
cmp x0, x2
cset x0, lo
sub w0, w1, w0
add w24, w0, #20
b G_M55472_IG10
;; size=124 bbWeight=0.50 PerfScore 12.50
G_M55472_IG09:
movz x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movk x0, #0xD1FFAB1E LSL #48
mov w1, #21
cmp x19, #5
- ccmp x21, x0, 0, eq
+ ccmp x20, x0, 0, eq
csel w24, w24, w1, lo
;; size=28 bbWeight=0.50 PerfScore 1.75
G_M55472_IG10:
movn w0, #0
cmp w24, #0
csel w0, w0, w24, lt
cmp w0, #41
bgt G_M55472_IG22
str w0, [fp, #-0x50] // [V05 loc1]
- str x23, [fp, #-0x58] // [V39 tmp32]
+ str x23, [fp, #-0x58] // [V36 tmp29]
add x23, x23, w0, SXTW
cmn w24, #1
blt G_M55472_IG23
mov x1, x19
cbz x1, G_M55472_IG18
;; size=48 bbWeight=0.50 PerfScore 4.50
G_M55472_IG11:
movz x24, #0xD1FFAB1E LSL #16
movk x24, #0xD1FFAB1E LSL #32
movk x24, #0xD1FFAB1E LSL #48
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x25, [x0]
;; size=28 bbWeight=0.25 PerfScore 1.50
G_M55472_IG12:
- mov x0, x21
+ mov x0, x20
movz x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movk x2, #0xD1FFAB1E LSL #48
mov x3, xzr
movz x4, #0xD1FFAB1E // code for System.UInt128:op_Division(System.UInt128,System.UInt128):System.UInt128
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
mul x2, x0, x24
- sub x2, x21, x2
- mov x21, x0
+ sub x2, x20, x2
+ mov x20, x0
mov w0, #19
cmp x2, #100
blo G_M55472_IG15
;; size=64 bbWeight=4 PerfScore 52.00
G_M55472_IG13:
sub x23, x23, #2
sub w0, w0, #2
movz x3, #0xD1FFAB1E
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
movk x3, #0xD1FFAB1E LSL #48
lsr x4, x2, #2
umulh x3, x4, x3
lsr x3, x3, #2
mov x4, #100
msub x4, x3, x4, x2
mov x2, x3
mov x3, x25
add x3, x3, #16
lsl w4, w4, #1
mov w4, w4
ldrh w3, [x3, x4]
strh w3, [x23]
cmp x2, #100
bhs G_M55472_IG13
b G_M55472_IG15
align [0 bytes for IG14]
align [0 bytes]
align [0 bytes]
align [0 bytes]
;; size=84 bbWeight=16 PerfScore 400.00
G_M55472_IG14:
sub w0, w0, #1
movz x3, #0xD1FFAB1E
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
movk x3, #0xD1FFAB1E LSL #48
umulh x3, x2, x3
lsr x3, x3, #3
mov x4, #10
msub x4, x3, x4, x2
mov x2, x3
sub x23, x23, #1
add w3, w4, #48
strb w3, [x23]
;; size=52 bbWeight=64 PerfScore 1056.00
G_M55472_IG15:
cbnz x2, G_M55472_IG14
;; size=4 bbWeight=32 PerfScore 32.00
G_M55472_IG16:
cmp w0, #0
bgt G_M55472_IG14
;; size=8 bbWeight=32 PerfScore 48.00
G_M55472_IG17:
cbnz x1, G_M55472_IG12
;; size=4 bbWeight=4 PerfScore 4.00
G_M55472_IG18:
mov x4, x23
- cmp x21, #10
+ cmp x20, #10
blo G_M55472_IG31
b G_M55472_IG20
align [0 bytes for IG19]
align [0 bytes]
align [0 bytes]
align [0 bytes]
;; size=16 bbWeight=0.50 PerfScore 1.50
G_M55472_IG19:
sub x4, x4, #2
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movk x0, #0xD1FFAB1E LSL #48
- lsr x1, x21, #2
+ lsr x1, x20, #2
umulh x0, x1, x0
lsr x0, x0, #2
mov x1, #100
- msub x1, x0, x1, x21
- mov x21, x0
+ msub x1, x0, x1, x20
+ mov x20, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x25, [x0]
add x0, x25, #16
lsl w1, w1, #1
mov w1, w1
ldrh w0, [x0, x1]
strh w0, [x4]
;; size=80 bbWeight=4 PerfScore 104.00
G_M55472_IG20:
- cmp x21, #100
+ cmp x20, #100
bhs G_M55472_IG19
;; size=8 bbWeight=4 PerfScore 6.00
G_M55472_IG21:
- cmp x21, #10
+ cmp x20, #10
blo G_M55472_IG31
sub x0, x4, #2
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x25, [x1]
mov x1, x25
add x1, x1, #16
- lsl w2, w21, #1
+ lsl w2, w20, #1
mov w2, w2
ldrh w1, [x1, x2]
strh w1, [x0]
b G_M55472_IG32
align [0 bytes for IG26]
align [0 bytes]
align [0 bytes]
align [0 bytes]
;; size=56 bbWeight=0.50 PerfScore 7.00
G_M55472_IG22:
str wzr, [fp, #-0x50] // [V05 loc1]
b G_M55472_IG33
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M55472_IG23:
movn w26, #0
cbz x19, G_M55472_IG30
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M55472_IG24:
movz x24, #0xD1FFAB1E LSL #16
movk x24, #0xD1FFAB1E LSL #32
movk x24, #0xD1FFAB1E LSL #48
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x25, [x0]
;; size=28 bbWeight=0.25 PerfScore 1.50
G_M55472_IG25:
- mov x0, x21
+ mov x0, x20
mov x1, x19
movz x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movk x2, #0xD1FFAB1E LSL #48
mov x3, xzr
movz x4, #0xD1FFAB1E // code for System.UInt128:op_Division(System.UInt128,System.UInt128):System.UInt128
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
mov x19, x1
mul x1, x0, x24
- sub x1, x21, x1
- mov x21, x0
+ sub x1, x20, x1
+ mov x20, x0
mov w27, #19
cmp x1, #100
blo G_M55472_IG28
;; size=72 bbWeight=4 PerfScore 56.00
G_M55472_IG26:
sub x23, x23, #2
sub w27, w27, #2
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movk x0, #0xD1FFAB1E LSL #48
lsr x2, x1, #2
umulh x0, x2, x0
lsr x0, x0, #2
mov x2, #100
msub x2, x0, x2, x1
mov x1, x0
mov x0, x25
add x0, x0, #16
lsl w2, w2, #1
mov w2, w2
ldrh w0, [x0, x2]
strh w0, [x23]
cmp x1, #100
bhs G_M55472_IG26
b G_M55472_IG28
;; size=84 bbWeight=16 PerfScore 400.00
G_M55472_IG27:
sub w27, w27, #1
mov x0, x1
mov x1, #10
movz x2, #0xD1FFAB1E // code for System.Math:DivRem(ulong,ulong):System.ValueTuple`2[ulong,ulong]
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
sub x23, x23, #1
add w1, w1, #48
strb w1, [x23]
mov x1, x0
;; size=48 bbWeight=64 PerfScore 608.00
G_M55472_IG28:
cbnz x1, G_M55472_IG27
cmp w27, #0
bgt G_M55472_IG27
;; size=12 bbWeight=32 PerfScore 80.00
G_M55472_IG29:
sub w26, w26, #19
cbnz x19, G_M55472_IG25
;; size=8 bbWeight=4 PerfScore 6.00
G_M55472_IG30:
mov x0, x23
- mov x1, x21
+ mov x1, x20
mov w2, w26
movz x3, #0xD1FFAB1E // code for System.Number:UInt64ToDecChars[ubyte](ulong,ulong,int):ulong
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M55472_IG32
;; size=36 bbWeight=0.50 PerfScore 4.00
G_M55472_IG31:
- add w0, w21, #48
+ add w0, w20, #48
strb w0, [x4, #-0x01]
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M55472_IG32:
- str xzr, [fp, #-0x58] // [V39 tmp32]
+ str xzr, [fp, #-0x58] // [V36 tmp29]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M55472_IG33:
- str xzr, [fp, #-0x58] // [V39 tmp32]
+ str xzr, [fp, #-0x58] // [V36 tmp29]
b G_M55472_IG36
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M55472_IG34:
add x3, x2, #16
ldr w4, [x2, #0x08]
;; size=8 bbWeight=0.50 PerfScore 1.75
G_M55472_IG35:
- mov x0, x21
+ mov x0, x20
mov x1, x19
mov x5, x24
mov w6, #41
sub x7, fp, #80 // [V05 loc1]
movn w2, #0
movz x8, #0xD1FFAB1E // code for System.Number:TryNegativeInt128ToDecStr[ubyte](System.Int128,int,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte
movk x8, #0xD1FFAB1E LSL #16
movk x8, #0xD1FFAB1E LSL #32
ldr x8, [x8]
blr x8
;; size=44 bbWeight=0.50 PerfScore 4.25
G_M55472_IG36:
- ldr w0, [fp, #-0x50] // [V05 loc1]
- add w2, w0, #2
- sub w0, w2, #1
- cmp w0, #42
+ ldr w1, [fp, #-0x50] // [V05 loc1]
+ add w2, w1, #2
+ sub w1, w2, #1
+ cmp w1, #42
bhs G_M55472_IG39
- mov w1, #34
- strb w1, [x22, w0, UXTW #2]
+ sub w1, w2, #1
+ mov w0, #34
+ strb w0, [x22, w1, UXTW #2]
cmp w2, #42
bhi G_M55472_IG38
- stp xzr, xzr, [fp, #-0x68]
- sub x0, fp, #104 // [V174 tmp167]
mov x1, x22
- movz x3, #0xD1FFAB1E // code for System.Span`1[ubyte]:.ctor(byref,int):this
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #0xD1FFAB1E LSL #32
- ldr x3, [x3]
- blr x3
- ldr x0, [fp, #-0x68] // [V299 tmp292]
- ldr w1, [fp, #-0x60] // [V300 tmp293]
- movz x2, #0xD1FFAB1E // code for System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte]
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- blr x2
- mov w2, w1
- mov x1, x0
- mov x0, x20
+ mov x0, x21
mov w3, wzr
movz x4, #0xD1FFAB1E // code for System.Text.Json.Utf8JsonWriter:WriteRawValue(System.ReadOnlySpan`1[ubyte],ubyte):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
ldr wzr, [x0]
blr x4
movz xip0, #0xD1FFAB1E
movk xip0, #14 LSL #16
- ldr xip1, [fp, #-0x70] // [V318 GsCookie]
+ ldr xip1, [fp, #-0x60] // [V322 GsCookie]
cmp xip0, xip1
beq G_M55472_IG37
bl CORINFO_HELP_FAIL_FAST
- ;; size=160 bbWeight=0.50 PerfScore 20.25
+ ;; size=100 bbWeight=0.50 PerfScore 11.75
G_M55472_IG37:
- sub sp, fp, #112
- ldp fp, lr, [sp, #0x70]
- ldr x27, [sp, #0x68]
- ldp x25, x26, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- add sp, sp, #128
+ sub sp, fp, #96
+ ldp fp, lr, [sp, #0x60]
+ ldr x27, [sp, #0x58]
+ ldp x25, x26, [sp, #0x48]
+ ldp x23, x24, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
+ add sp, sp, #112
ret lr
;; size=36 bbWeight=0.50 PerfScore 4.50
G_M55472_IG38:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M55472_IG39:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1588, prolog size 64, PerfScore 2972.25, instruction count 412, allocated bytes for code 1588 (MethodHash=5b0a274f) for method System.Text.Json.Serialization.Converters.Int128Converter:WriteNumberWithCustomHandling(System.Text.Json.Utf8JsonWriter,System.Int128,int):this (FullOpts)
+; Total bytes of code 1520, prolog size 60, PerfScore 2962.75, instruction count 396, allocated bytes for code 1520 (MethodHash=5b0a274f) for method System.Text.Json.Serialization.Converters.Int128Converter:WriteNumberWithCustomHandling(System.Text.Json.Utf8JsonWriter,System.Int128,int):this (FullOpts)
-60 (-7.08 % of base) - System.Int128:TryFormat(System.Span`1[ubyte],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this
; Assembly listing for method System.Int128:TryFormat(System.Span`1[ubyte],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 21 single block inlinees; 13 inlinees without PGO data
+; 0 inlinees with PGO data; 21 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T06] ( 4, 4 ) byref -> x0 this single-def
+; V00 this [V00,T05] ( 4, 4 ) byref -> x0 this single-def
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.Span`1[ubyte]>
-; V02 arg2 [V02,T05] ( 6, 4 ) byref -> x19 single-def
+; V02 arg2 [V02,T04] ( 6, 4 ) byref -> x19 single-def
;* V03 arg3 [V03 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ushort]>
; V04 arg4 [V04,T07] ( 5, 3.50) ref -> [fp+0x10] class-hnd single-def <System.IFormatProvider>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T20] ( 4, 2.50) ubyte -> x0 "Inline return value spill temp"
+; V06 tmp1 [V06,T21] ( 4, 2.50) ubyte -> x0 "Inline return value spill temp"
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inlining Arg" <System.Int128>
;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
;* V10 tmp5 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V11 tmp6 [V11,T17] ( 5, 2.50) ref -> x24 class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V11 tmp6 [V11,T18] ( 5, 2.50) ref -> x24 class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V12 tmp7 [V12 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
; V13 tmp8 [V13,T23] ( 2, 2 ) ref -> x2 class-hnd single-def "dup spill" <ubyte[]>
-; V14 tmp9 [V14,T14] ( 6, 3 ) ref -> x2
-; V15 tmp10 [V15,T16] ( 3, 3 ) ref -> x2 class-hnd single-def "dup spill" <ubyte[]>
+; V14 tmp9 [V14,T16] ( 6, 3 ) ref -> x2
+; V15 tmp10 [V15,T17] ( 3, 3 ) ref -> x2 class-hnd single-def "dup spill" <ubyte[]>
;* V16 tmp11 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ubyte[]>
;* V17 tmp12 [V17 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V18 tmp13 [V18 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.UInt128>
-;* V19 tmp14 [V19 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V20 tmp15 [V20 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V21 tmp16 [V21,T26] ( 3, 1.50) ubyte -> x19 "Inline return value spill temp"
-;* V22 tmp17 [V22 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V23 tmp18 [V23 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V24 tmp19 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V25 tmp20 [V25 ] ( 2, 1 ) byref -> [fp+0x38] must-init pinned "Inline stloc first use temp"
-; V26 tmp21 [V26,T27] ( 3, 1.50) long -> x21 "Inline stloc first use temp"
-;* V27 tmp22 [V27 ] ( 0, 0 ) long -> zero-ref
-; V28 tmp23 [V28,T18] ( 5, 2.50) int -> x24 "Inline return value spill temp"
-;* V29 tmp24 [V29 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inlining Arg" <System.UInt128>
-;* V30 tmp25 [V30 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V31 tmp26 [V31,T19] ( 5, 2.50) int -> x24 "Inline stloc first use temp"
-;* V32 tmp27 [V32 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.UInt128>
-;* V33 tmp28 [V33 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.UInt128>
-;* V34 tmp29 [V34 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
-;* V35 tmp30 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V36 tmp31 [V36 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V37 tmp32 [V37 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V38 tmp33 [V38,T28] ( 3, 1.50) int -> x0 "Inline stloc first use temp"
-;* V39 tmp34 [V39 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
-;* V40 tmp35 [V40 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V41 tmp36 [V41 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
-;* V42 tmp37 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V43 tmp38 [V43 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V18 tmp13 [V18,T26] ( 3, 1.50) ubyte -> x19 "Inline return value spill temp"
+;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V20 tmp15 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V21 tmp16 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+; V22 tmp17 [V22 ] ( 2, 1 ) byref -> [fp+0x38] must-init pinned "Inline stloc first use temp"
+; V23 tmp18 [V23,T27] ( 3, 1.50) long -> x21 "Inline stloc first use temp"
+;* V24 tmp19 [V24 ] ( 0, 0 ) long -> zero-ref
+; V25 tmp20 [V25,T19] ( 5, 2.50) int -> x24 "Inline return value spill temp"
+;* V26 tmp21 [V26 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inlining Arg" <System.UInt128>
+;* V27 tmp22 [V27 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+; V28 tmp23 [V28,T20] ( 5, 2.50) int -> x24 "Inline stloc first use temp"
+;* V29 tmp24 [V29 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.UInt128>
+;* V30 tmp25 [V30 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.UInt128>
+;* V31 tmp26 [V31 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
+;* V32 tmp27 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V33 tmp28 [V33 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V34 tmp29 [V34 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+; V35 tmp30 [V35,T28] ( 3, 1.50) int -> x0 "Inline stloc first use temp"
+;* V36 tmp31 [V36 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
+;* V37 tmp32 [V37 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V38 tmp33 [V38 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
+;* V39 tmp34 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V40 tmp35 [V40 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V41 tmp36 [V41 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V42 tmp37 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
+;* V43 tmp38 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V44 tmp39 [V44 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V45 tmp40 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
-;* V46 tmp41 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V47 tmp42 [V47 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V48 tmp43 [V48 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V49 tmp44 [V49,T29] ( 3, 1.50) int -> x1 "Inline stloc first use temp"
-;* V50 tmp45 [V50 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
-;* V51 tmp46 [V51 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V52 tmp47 [V52 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
-;* V53 tmp48 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V54 tmp49 [V54 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V55 tmp50 [V55 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V56 tmp51 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
-; V57 tmp52 [V57,T22] ( 4, 2 ) int -> x0 "Inline return value spill temp"
-;* V58 tmp53 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V59 tmp54 [V59 ] ( 6, 20 ) struct (16) [fp+0x28] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.UInt128>
-; V60 tmp55 [V60,T00] ( 4, 18 ) long -> x21 "Inlining Arg"
-; V61 tmp56 [V61 ] ( 6, 20 ) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.UInt128>
-; V62 tmp57 [V62,T01] ( 4, 18 ) long -> x19 "Inlining Arg"
-; V63 tmp58 [V63,T02] ( 4, 18 ) int -> x20 "Inlining Arg"
-; V64 tmp59 [V64,T08] ( 5, 3 ) byref -> x20 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V65 tmp60 [V65,T09] ( 4, 2.50) int -> x21 single-def "field V01._length (fldOffset=0x8)" P-INDEP
-; V66 tmp61 [V66,T13] ( 2, 1.50) byref -> x2 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
-; V67 tmp62 [V67,T10] ( 3, 2.50) int -> x5 single-def "field V03._length (fldOffset=0x8)" P-INDEP
-;* V68 tmp63 [V68 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V69 tmp64 [V69 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
-; V70 tmp65 [V70,T21] ( 4, 2.50) long -> x22 "field V08._lower (fldOffset=0x0)" P-INDEP
-; V71 tmp66 [V71,T15] ( 5, 3 ) long -> x23 "field V08._upper (fldOffset=0x8)" P-INDEP
-;* V72 tmp67 [V72 ] ( 0, 0 ) long -> zero-ref "field V09._lower (fldOffset=0x0)" P-INDEP
-;* V73 tmp68 [V73 ] ( 0, 0 ) long -> zero-ref "field V09._upper (fldOffset=0x8)" P-INDEP
-;* V74 tmp69 [V74 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
-;* V75 tmp70 [V75 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
-;* V76 tmp71 [V76 ] ( 0, 0 ) byref -> zero-ref "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V77 tmp72 [V77 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
-; V78 tmp73 [V78,T25] ( 3, 1.50) byref -> x3 "field V17._reference (fldOffset=0x0)" P-INDEP
-; V79 tmp74 [V79,T30] ( 3, 1.50) int -> x4 "field V17._length (fldOffset=0x8)" P-INDEP
-; V80 tmp75 [V80,T11] ( 7, 3.50) long -> x22 "field V18._lower (fldOffset=0x0)" P-INDEP
-; V81 tmp76 [V81,T12] ( 7, 3.50) long -> x23 "field V18._upper (fldOffset=0x8)" P-INDEP
-;* V82 tmp77 [V82 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP
-;* V83 tmp78 [V83 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
-; V84 tmp79 [V84,T31] ( 3, 1.50) long -> x0 "field V29._lower (fldOffset=0x0)" P-INDEP
-; V85 tmp80 [V85,T32] ( 1, 0.50) long -> x1 "field V29._upper (fldOffset=0x8)" P-INDEP
-;* V86 tmp81 [V86,T33] ( 0, 0 ) long -> zero-ref "field V32._lower (fldOffset=0x0)" P-INDEP
-;* V87 tmp82 [V87,T34] ( 0, 0 ) long -> zero-ref "field V32._upper (fldOffset=0x8)" P-INDEP
-;* V88 tmp83 [V88 ] ( 0, 0 ) long -> zero-ref "field V33._lower (fldOffset=0x0)" P-INDEP
-;* V89 tmp84 [V89 ] ( 0, 0 ) long -> zero-ref "field V33._upper (fldOffset=0x8)" P-INDEP
-;* V90 tmp85 [V90 ] ( 0, 0 ) long -> zero-ref "field V34._lower (fldOffset=0x0)" P-DEP
-;* V91 tmp86 [V91 ] ( 0, 0 ) long -> zero-ref "field V34._upper (fldOffset=0x8)" P-DEP
-;* V92 tmp87 [V92 ] ( 0, 0 ) byref -> zero-ref single-def "field V35._reference (fldOffset=0x0)" P-INDEP
-;* V93 tmp88 [V93 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
-;* V94 tmp89 [V94 ] ( 0, 0 ) byref -> zero-ref single-def "field V39._reference (fldOffset=0x0)" P-INDEP
-;* V95 tmp90 [V95 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
-;* V96 tmp91 [V96 ] ( 0, 0 ) byref -> zero-ref single-def "field V42._reference (fldOffset=0x0)" P-INDEP
-;* V97 tmp92 [V97 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP
-;* V98 tmp93 [V98 ] ( 0, 0 ) byref -> zero-ref single-def "field V45._reference (fldOffset=0x0)" P-INDEP
-;* V99 tmp94 [V99 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
-;* V100 tmp95 [V100 ] ( 0, 0 ) byref -> zero-ref single-def "field V46._reference (fldOffset=0x0)" P-INDEP
-;* V101 tmp96 [V101 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP
-;* V102 tmp97 [V102 ] ( 0, 0 ) byref -> zero-ref single-def "field V50._reference (fldOffset=0x0)" P-INDEP
-;* V103 tmp98 [V103 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
-;* V104 tmp99 [V104 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V105 tmp100 [V105 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-;* V106 tmp101 [V106 ] ( 0, 0 ) byref -> zero-ref single-def "field V56._reference (fldOffset=0x0)" P-INDEP
-;* V107 tmp102 [V107 ] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP
-;* V108 tmp103 [V108 ] ( 0, 0 ) byref -> zero-ref single-def "field V58._reference (fldOffset=0x0)" P-INDEP
-;* V109 tmp104 [V109 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP
-; V110 tmp105 [V110 ] ( 3, 9 ) long -> [fp+0x28] do-not-enreg[X] addr-exposed "field V59._lower (fldOffset=0x0)" P-DEP
-; V111 tmp106 [V111 ] ( 4, 13 ) long -> [fp+0x30] do-not-enreg[X] addr-exposed "field V59._upper (fldOffset=0x8)" P-DEP
-; V112 tmp107 [V112 ] ( 3, 9 ) long -> [fp+0x18] do-not-enreg[X] addr-exposed "field V61._lower (fldOffset=0x0)" P-DEP
-; V113 tmp108 [V113 ] ( 4, 13 ) long -> [fp+0x20] do-not-enreg[X] addr-exposed "field V61._upper (fldOffset=0x8)" P-DEP
-; V114 tmp109 [V114,T24] ( 2, 2 ) long -> x20 "Cast away GC"
-; V115 tmp110 [V115,T03] ( 2, 16 ) long -> x1 "argument with side effect"
-; V116 tmp111 [V116,T04] ( 2, 16 ) long -> x1 "argument with side effect"
+;* V45 tmp40 [V45 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+; V46 tmp41 [V46,T29] ( 3, 1.50) int -> x1 "Inline stloc first use temp"
+;* V47 tmp42 [V47 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
+;* V48 tmp43 [V48 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V49 tmp44 [V49 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
+;* V50 tmp45 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V52 tmp47 [V52 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V53 tmp48 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
+; V54 tmp49 [V54,T22] ( 4, 2 ) int -> x0 "Inline return value spill temp"
+;* V55 tmp50 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V56 tmp51 [V56 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.UInt128>
+; V57 tmp52 [V57,T00] ( 4, 18 ) long -> x21 "Inlining Arg"
+;* V58 tmp53 [V58 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
+; V59 tmp54 [V59 ] ( 4, 16 ) struct (32) [fp+0x18] do-not-enreg[XS] addr-exposed "Inline stloc first use temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
+;* V60 tmp55 [V60 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.UInt128>
+; V61 tmp56 [V61,T09] ( 5, 3 ) byref -> x20 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V62 tmp57 [V62,T10] ( 4, 2.50) int -> x21 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V63 tmp58 [V63,T15] ( 2, 1.50) byref -> x2 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+; V64 tmp59 [V64,T11] ( 3, 2.50) int -> x5 single-def "field V03._length (fldOffset=0x8)" P-INDEP
+;* V65 tmp60 [V65 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V66 tmp61 [V66 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
+; V67 tmp62 [V67,T08] ( 9, 5 ) long -> x22 "field V08._lower (fldOffset=0x0)" P-INDEP
+; V68 tmp63 [V68,T06] ( 10, 5.50) long -> x23 "field V08._upper (fldOffset=0x8)" P-INDEP
+;* V69 tmp64 [V69 ] ( 0, 0 ) long -> zero-ref "field V09._lower (fldOffset=0x0)" P-INDEP
+;* V70 tmp65 [V70 ] ( 0, 0 ) long -> zero-ref "field V09._upper (fldOffset=0x8)" P-INDEP
+;* V71 tmp66 [V71 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
+;* V72 tmp67 [V72 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
+;* V73 tmp68 [V73 ] ( 0, 0 ) byref -> zero-ref "field V12._reference (fldOffset=0x0)" P-INDEP
+;* V74 tmp69 [V74 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
+; V75 tmp70 [V75,T25] ( 3, 1.50) byref -> x3 "field V17._reference (fldOffset=0x0)" P-INDEP
+; V76 tmp71 [V76,T30] ( 3, 1.50) int -> x4 "field V17._length (fldOffset=0x8)" P-INDEP
+;* V77 tmp72 [V77 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
+;* V78 tmp73 [V78 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
+; V79 tmp74 [V79,T31] ( 3, 1.50) long -> x0 "field V26._lower (fldOffset=0x0)" P-INDEP
+; V80 tmp75 [V80,T32] ( 1, 0.50) long -> x1 "field V26._upper (fldOffset=0x8)" P-INDEP
+;* V81 tmp76 [V81,T33] ( 0, 0 ) long -> zero-ref "field V29._lower (fldOffset=0x0)" P-INDEP
+;* V82 tmp77 [V82,T34] ( 0, 0 ) long -> zero-ref "field V29._upper (fldOffset=0x8)" P-INDEP
+;* V83 tmp78 [V83 ] ( 0, 0 ) long -> zero-ref "field V30._lower (fldOffset=0x0)" P-INDEP
+;* V84 tmp79 [V84 ] ( 0, 0 ) long -> zero-ref "field V30._upper (fldOffset=0x8)" P-INDEP
+;* V85 tmp80 [V85 ] ( 0, 0 ) long -> zero-ref "field V31._lower (fldOffset=0x0)" P-DEP
+;* V86 tmp81 [V86 ] ( 0, 0 ) long -> zero-ref "field V31._upper (fldOffset=0x8)" P-DEP
+;* V87 tmp82 [V87 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
+;* V88 tmp83 [V88 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
+;* V89 tmp84 [V89 ] ( 0, 0 ) byref -> zero-ref single-def "field V36._reference (fldOffset=0x0)" P-INDEP
+;* V90 tmp85 [V90 ] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
+;* V91 tmp86 [V91 ] ( 0, 0 ) byref -> zero-ref single-def "field V39._reference (fldOffset=0x0)" P-INDEP
+;* V92 tmp87 [V92 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
+;* V93 tmp88 [V93 ] ( 0, 0 ) byref -> zero-ref single-def "field V42._reference (fldOffset=0x0)" P-INDEP
+;* V94 tmp89 [V94 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP
+;* V95 tmp90 [V95 ] ( 0, 0 ) byref -> zero-ref single-def "field V43._reference (fldOffset=0x0)" P-INDEP
+;* V96 tmp91 [V96 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
+;* V97 tmp92 [V97 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
+;* V98 tmp93 [V98 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
+;* V99 tmp94 [V99 ] ( 0, 0 ) byref -> zero-ref single-def "field V50._reference (fldOffset=0x0)" P-INDEP
+;* V100 tmp95 [V100 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
+;* V101 tmp96 [V101 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V102 tmp97 [V102 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
+;* V103 tmp98 [V103 ] ( 0, 0 ) byref -> zero-ref single-def "field V55._reference (fldOffset=0x0)" P-INDEP
+;* V104 tmp99 [V104 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
+; V105 tmp100 [V105,T02] ( 4, 9 ) long -> x22 "field V56._lower (fldOffset=0x0)" P-INDEP
+; V106 tmp101 [V106,T01] ( 5, 13 ) long -> x23 "field V56._upper (fldOffset=0x8)" P-INDEP
+;* V107 tmp102 [V107,T13] ( 0, 0 ) long -> zero-ref "field V58._lower (fldOffset=0x0)" P-INDEP
+;* V108 tmp103 [V108,T14] ( 0, 0 ) long -> zero-ref "field V58._upper (fldOffset=0x8)" P-INDEP
+; V109 tmp104 [V109,T03] ( 2, 8 ) long -> x1 "field V60._lower (fldOffset=0x0)" P-INDEP
+;* V110 tmp105 [V110 ] ( 0, 0 ) long -> zero-ref "field V60._upper (fldOffset=0x8)" P-INDEP
+; V111 tmp106 [V111,T24] ( 2, 2 ) long -> x20 "Cast away GC"
+; V112 cse0 [V112,T12] ( 1, 0.25) long -> x19 hoist "CSE #04: moderate"
;
; Lcl frame size = 48
G_M55295_IG01:
stp fp, lr, [sp, #-0x70]!
stp x19, x20, [sp, #0x40]
stp x21, x22, [sp, #0x50]
stp x23, x24, [sp, #0x60]
mov fp, sp
- str xzr, [fp, #0x38] // [V25 tmp20]
+ str xzr, [fp, #0x38] // [V22 tmp17]
mov x20, x1
mov w21, w2
mov x2, x4
mov x19, x3
mov x3, x6
;; size=44 bbWeight=1 PerfScore 8.00
G_M55295_IG02:
ldp x22, x23, [x0]
cbnz w5, G_M55295_IG04
;; size=8 bbWeight=1 PerfScore 5.00
G_M55295_IG03:
tbz x23, #63, G_M55295_IG05
- cbz x3, G_M55295_IG17
+ cbz x3, G_M55295_IG16
mov x0, x3
movz x1, #0xD1FFAB1E // code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x24, x0
- b G_M55295_IG18
+ b G_M55295_IG17
;; size=40 bbWeight=0.50 PerfScore 4.75
G_M55295_IG04:
str x3, [fp, #0x10] // [V04 arg4]
mov x0, x22
mov x1, x23
mov w3, w5
mov x5, x20
mov w6, w21
ldr x4, [fp, #0x10] // [V04 arg4]
mov x7, x19
movz x8, #0xD1FFAB1E // code for System.Number:<TryFormatInt128>g__TryFormatInt128Slow|27_0[ubyte](System.Int128,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.Span`1[ubyte],byref):ubyte
movk x8, #0xD1FFAB1E LSL #16
movk x8, #0xD1FFAB1E LSL #32
ldr x8, [x8]
blr x8
- b G_M55295_IG22
+ b G_M55295_IG21
;; size=56 bbWeight=0.50 PerfScore 6.25
G_M55295_IG05:
cbnz x23, G_M55295_IG06
orr x0, x22, #1
clz x0, x0
eor w0, w0, #63
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldrb w0, [x1, w0, SXTW #2]
ubfiz x1, x0, #3, #32
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x1, x2]
cmp x22, x1
cset x1, lo
sub w24, w0, w1
b G_M55295_IG08
;; size=68 bbWeight=0.50 PerfScore 7.50
G_M55295_IG06:
mov w24, #20
cmp x23, #5
bls G_M55295_IG07
mov x0, x22
mov x1, x23
movz x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movk x2, #0xD1FFAB1E LSL #48
mov x3, #5
movz x4, #0xD1FFAB1E // code for System.UInt128:op_Division(System.UInt128,System.UInt128):System.UInt128
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
orr x1, x0, #1
clz x1, x1
eor w1, w1, #63
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldrb w1, [x2, w1, SXTW #2]
ubfiz x2, x1, #3, #32
movz x3, #0xD1FFAB1E
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x2, [x2, x3]
cmp x0, x2
cset x0, lo
sub w0, w1, w0
add w24, w0, #20
b G_M55295_IG08
;; size=124 bbWeight=0.50 PerfScore 12.50
G_M55295_IG07:
movz x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movk x0, #0xD1FFAB1E LSL #48
mov w1, #21
cmp x23, #5
ccmp x22, x0, 0, eq
csel w24, w24, w1, lo
;; size=28 bbWeight=0.50 PerfScore 1.75
G_M55295_IG08:
movn w0, #0
cmp w24, #0
csel w0, w0, w24, lt
cmp w0, w21
- bgt G_M55295_IG11
+ bgt G_M55295_IG12
str w0, [x19]
- str x20, [fp, #0x38] // [V25 tmp20]
+ str x20, [fp, #0x38] // [V22 tmp17]
add x21, x20, w0, SXTW
cmn w24, #1
- blt G_M55295_IG12
- stp x22, x23, [fp, #0x28] // [V110 tmp105], [V111 tmp106]
- ldr x0, [fp, #0x30] // [V111 tmp106]
- cbz x0, G_M55295_IG10
- ;; size=52 bbWeight=0.50 PerfScore 5.75
+ blt G_M55295_IG13
+ cbz x23, G_M55295_IG11
+ ;; size=44 bbWeight=0.50 PerfScore 4.25
G_M55295_IG09:
- add x0, fp, #40 // [V59 tmp54]
- movz x1, #0xD1FFAB1E // code for System.Number:Int128DivMod1E19(byref):ulong
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- blr x1
- mov x1, x0
+ movz x19, #0xD1FFAB1E LSL #16
+ movk x19, #0xD1FFAB1E LSL #32
+ movk x19, #0xD1FFAB1E LSL #48
+ ;; size=12 bbWeight=0.25 PerfScore 0.38
+G_M55295_IG10:
+ mov x0, x22
+ mov x1, x23
+ movz x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ movk x2, #0xD1FFAB1E LSL #48
+ mov x3, xzr
+ add x8, fp, #24 // [V59 tmp54]
+ movz x4, #0xD1FFAB1E // code for System.UInt128:DivRem(System.UInt128,System.UInt128):System.ValueTuple`2[System.UInt128,System.UInt128]
+ movk x4, #0xD1FFAB1E LSL #16
+ movk x4, #0xD1FFAB1E LSL #32
+ ldr x4, [x4]
+ blr x4
+ ldp x22, x23, [fp, #0x18] // [V59 tmp54], [V59 tmp54+0x08]
+ ldr x1, [fp, #0x28] // [V59 tmp54+0x10]
mov x0, x21
mov w2, #19
movz x3, #0xD1FFAB1E // code for System.Number:UInt64ToDecChars[ubyte](ulong,ulong,int):ulong
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x21, x0
- ldr x0, [fp, #0x30] // [V111 tmp106]
- cbnz x0, G_M55295_IG09
- ;; size=68 bbWeight=4 PerfScore 66.00
-G_M55295_IG10:
+ cbnz x23, G_M55295_IG10
+ ;; size=92 bbWeight=4 PerfScore 88.00
+G_M55295_IG11:
mov x0, x21
- ldr x1, [fp, #0x28] // [V110 tmp105]
+ mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Number:UInt64ToDecChars[ubyte](ulong,ulong):ulong
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- b G_M55295_IG15
- ;; size=32 bbWeight=0.50 PerfScore 4.50
-G_M55295_IG11:
+ b G_M55295_IG14
+ ;; size=32 bbWeight=0.50 PerfScore 3.75
+G_M55295_IG12:
str wzr, [x19]
mov w19, wzr
- b G_M55295_IG16
+ b G_M55295_IG15
;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M55295_IG12:
- mov x19, x21
- stp x22, x23, [fp, #0x18] // [V112 tmp107], [V113 tmp108]
- movn w20, #0
- ldr x0, [fp, #0x20] // [V113 tmp108]
- cbz x0, G_M55295_IG14
- ;; size=20 bbWeight=0.50 PerfScore 2.50
G_M55295_IG13:
- add x0, fp, #24 // [V61 tmp56]
- movz x1, #0xD1FFAB1E // code for System.Number:Int128DivMod1E19(byref):ulong
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- blr x1
- mov x1, x0
- mov x0, x19
- mov w2, #19
- movz x3, #0xD1FFAB1E // code for System.Number:UInt64ToDecChars[ubyte](ulong,ulong,int):ulong
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #0xD1FFAB1E LSL #32
- ldr x3, [x3]
- blr x3
- mov x19, x0
- sub w20, w20, #19
- ldr x0, [fp, #0x20] // [V113 tmp108]
- cbnz x0, G_M55295_IG13
- ;; size=72 bbWeight=4 PerfScore 68.00
+ mov x1, x22
+ mov x2, x23
+ mov x0, x21
+ movn w3, #0
+ movz x4, #0xD1FFAB1E // code for System.Number:UInt128ToDecChars[ubyte](ulong,System.UInt128,int):ulong
+ movk x4, #0xD1FFAB1E LSL #16
+ movk x4, #0xD1FFAB1E LSL #32
+ ldr x4, [x4]
+ blr x4
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M55295_IG14:
- mov x0, x19
- ldr x1, [fp, #0x18] // [V112 tmp107]
- mov w2, w20
- movz x3, #0xD1FFAB1E // code for System.Number:UInt64ToDecChars[ubyte](ulong,ulong,int):ulong
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #0xD1FFAB1E LSL #32
- ldr x3, [x3]
- blr x3
- ;; size=32 bbWeight=0.50 PerfScore 4.25
-G_M55295_IG15:
- str xzr, [fp, #0x38] // [V25 tmp20]
+ str xzr, [fp, #0x38] // [V22 tmp17]
mov w19, #1
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M55295_IG16:
+G_M55295_IG15:
sxtw w0, w19
- b G_M55295_IG22
+ b G_M55295_IG21
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M55295_IG17:
+G_M55295_IG16:
movz x0, #0xD1FFAB1E // code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x24, x0
;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M55295_IG18:
+G_M55295_IG17:
ldr x2, [x24, #0x98]
- cbnz x2, G_M55295_IG19
+ cbnz x2, G_M55295_IG18
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
ldr x1, [x24, #0x28]
movz x2, #0xD1FFAB1E // code for System.Text.UTF8Encoding+UTF8EncodingSealed:GetBytes(System.String):ubyte[]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x2, x0
add x14, x24, #152
mov x15, x2
bl CORINFO_HELP_ASSIGN_REF
;; size=64 bbWeight=0.50 PerfScore 9.75
-G_M55295_IG19:
- cbnz x2, G_M55295_IG20
+G_M55295_IG18:
+ cbnz x2, G_M55295_IG19
mov x3, xzr
mov w4, wzr
- b G_M55295_IG21
+ b G_M55295_IG20
;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M55295_IG20:
+G_M55295_IG19:
add x3, x2, #16
ldr w4, [x2, #0x08]
;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M55295_IG21:
+G_M55295_IG20:
mov x0, x22
mov x1, x23
mov x5, x20
mov w6, w21
mov x7, x19
movn w2, #0
movz x8, #0xD1FFAB1E // code for System.Number:TryNegativeInt128ToDecStr[ubyte](System.Int128,int,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte
movk x8, #0xD1FFAB1E LSL #16
movk x8, #0xD1FFAB1E LSL #32
ldr x8, [x8]
blr x8
;; size=44 bbWeight=0.50 PerfScore 4.25
-G_M55295_IG22:
+G_M55295_IG21:
ldp x23, x24, [sp, #0x60]
ldp x21, x22, [sp, #0x50]
ldp x19, x20, [sp, #0x40]
ldp fp, lr, [sp], #0x70
ret lr
;; size=20 bbWeight=1 PerfScore 5.00
-; Total bytes of code 848, prolog size 24, PerfScore 224.75, instruction count 212, allocated bytes for code 848 (MethodHash=e2802800) for method System.Int128:TryFormat(System.Span`1[ubyte],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts)
+; Total bytes of code 788, prolog size 24, PerfScore 173.88, instruction count 197, allocated bytes for code 788 (MethodHash=e2802800) for method System.Int128:TryFormat(System.Span`1[ubyte],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts)
-52 (-1.26 % of base) - System.Net.Mail.SmtpClient:SendAsync(System.Net.Mail.MailMessage,System.Object):this
; Assembly listing for method System.Net.Mail.SmtpClient:SendAsync(System.Net.Mail.MailMessage,System.Object):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 56 single block inlinees; 18 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T04] ( 49, 64 ) ref -> [fp+0x20] this class-hnd EH-live single-def <System.Net.Mail.SmtpClient>
+; V00 this [V00,T04] ( 49, 64 ) ref -> [fp+0x28] this class-hnd EH-live single-def <System.Net.Mail.SmtpClient>
; V01 arg1 [V01,T13] ( 13, 13 ) ref -> x19 class-hnd single-def <System.Net.Mail.MailMessage>
; V02 arg2 [V02,T35] ( 3, 3 ) ref -> x20 class-hnd single-def <System.Object>
-; V03 loc0 [V03,T64] ( 2, 2 ) ref -> x24 class-hnd exact single-def <System.String>
+; V03 loc0 [V03,T63] ( 2, 2 ) ref -> x23 class-hnd exact single-def <System.String>
;* V04 loc1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Net.CredentialCache>
-; V05 loc2 [V05,T05] ( 18, 54 ) ref -> [fp+0x18] do-not-enreg[M] class-hnd EH-live <System.Collections.Generic.IEnumerator`1[System.Net.Mail.MailAddress]>
+; V05 loc2 [V05,T05] ( 18, 54 ) ref -> [fp+0x20] do-not-enreg[M] class-hnd EH-live <System.Collections.Generic.IEnumerator`1[System.Net.Mail.MailAddress]>
; V06 loc3 [V06,T10] ( 2, 16 ) ref -> x21 class-hnd <System.Net.Mail.MailAddress>
; V07 loc4 [V07,T11] ( 2, 16 ) ref -> x21 class-hnd <System.Net.Mail.MailAddress>
; V08 loc5 [V08,T12] ( 2, 16 ) ref -> x21 class-hnd <System.Net.Mail.MailAddress>
;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
-; V10 loc7 [V10,T20] ( 8, 8 ) ubyte -> x23
+; V10 loc7 [V10,T20] ( 8, 8 ) ubyte -> x20
;* V11 loc8 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.ComponentModel.AsyncCompletedEventArgs>
-; V12 loc9 [V12,T63] ( 4, 2 ) ref -> [fp+0x10] class-hnd EH-live spill-single-def <System.Object>
-; V13 loc10 [V13 ] ( 5, 4 ) ubyte -> [fp+0x28] do-not-enreg[X] addr-exposed ld-addr-op
+; V12 loc9 [V12,T62] ( 4, 2 ) ref -> [fp+0x18] class-hnd EH-live spill-single-def <System.Object>
+; V13 loc10 [V13 ] ( 5, 4 ) ubyte -> [fp+0x30] do-not-enreg[X] addr-exposed ld-addr-op
;* V14 loc11 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Exception>
;* V15 loc12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Exception>
;# V16 OutArgs [V16 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V17 tmp1 [V17,T22] ( 3, 6 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Net.Mail.MailAddressCollection>
-; V18 tmp2 [V18,T38] ( 2, 4 ) ref -> x22 class-hnd exact single-def "impAppendStmt" <System.Net.Mail.SmtpTransport>
+; V18 tmp2 [V18,T37] ( 2, 4 ) ref -> x22 class-hnd exact single-def "impAppendStmt" <System.Net.Mail.SmtpTransport>
;* V19 tmp3 [V19 ] ( 0, 0 ) ref -> zero-ref single-def
;* V20 tmp4 [V20 ] ( 0, 0 ) ref -> zero-ref
; V21 tmp5 [V21,T36] ( 4, 4 ) int -> registers
-; V22 tmp6 [V22,T80] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException>
+; V22 tmp6 [V22,T79] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException>
; V23 tmp7 [V23,T23] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <System.Net.Mail.MailWriter>
;* V24 tmp8 [V24 ] ( 0, 0 ) ref -> zero-ref single-def
-; V25 tmp9 [V25,T18] ( 5, 10 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.AsyncCompletedEventArgs>
-; V26 tmp10 [V26,T81] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Net.Mail.SmtpException>
+; V25 tmp9 [V25,T18] ( 5, 10 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.AsyncCompletedEventArgs>
+; V26 tmp10 [V26,T80] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Net.Mail.SmtpException>
; V27 tmp11 [V27,T09] ( 10, 20 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Net.ContextAwareResult>
; V28 tmp12 [V28,T21] ( 4, 8 ) ref -> x2 class-hnd exact single-def "NewObj constructor temp" <System.AsyncCallback>
-; V29 tmp13 [V29,T39] ( 2, 4 ) ref -> x0 class-hnd exact single-def "impAppendStmt" <System.Net.Mail.SmtpTransport>
-; V30 tmp14 [V30,T40] ( 2, 4 ) ref -> x1 class-hnd exact single-def "impAppendStmt" <System.Net.ContextAwareResult>
+; V29 tmp13 [V29,T38] ( 2, 4 ) ref -> x0 class-hnd exact single-def "impAppendStmt" <System.Net.Mail.SmtpTransport>
+; V30 tmp14 [V30,T39] ( 2, 4 ) ref -> x1 class-hnd exact single-def "impAppendStmt" <System.Net.ContextAwareResult>
;* V31 tmp15 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Net.ContextAwareResult>
;* V32 tmp16 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
; V33 tmp17 [V33,T24] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <System.Object[]>
-; V34 tmp18 [V34,T41] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.Net.Mail.SmtpTransport>
-; V35 tmp19 [V35,T86] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
-; V36 tmp20 [V36,T42] ( 2, 4 ) ref -> x25 class-hnd single-def "impAppendStmt" <System.Net.ICredentialsByHost>
+; V34 tmp18 [V34,T40] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.Net.Mail.SmtpTransport>
+; V35 tmp19 [V35,T85] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+; V36 tmp20 [V36,T41] ( 2, 4 ) ref -> x24 class-hnd single-def "impAppendStmt" <System.Net.ICredentialsByHost>
;* V37 tmp21 [V37 ] ( 0, 0 ) ref -> zero-ref single-def
; V38 tmp22 [V38,T25] ( 3, 6 ) ref -> x0 class-hnd single-def "dup spill" <System.Net.CredentialCache>
-; V39 tmp23 [V39,T82] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
-; V40 tmp24 [V40,T83] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
-; V41 tmp25 [V41,T84] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
-; V42 tmp26 [V42,T79] ( 8, 0 ) ref -> x19 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
-; V43 tmp27 [V43,T85] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Net.Mail.SmtpException>
+; V39 tmp23 [V39,T81] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
+; V40 tmp24 [V40,T82] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
+; V41 tmp25 [V41,T83] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
+; V42 tmp26 [V42,T78] ( 8, 0 ) ref -> x19 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+; V43 tmp27 [V43,T84] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Net.Mail.SmtpException>
;* V44 tmp28 [V44 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V45 tmp29 [V45,T26] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Net.Mail.MailAddress]>
;* V46 tmp30 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Mail.Message>
;* V47 tmp31 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.Mail.MailAddressCollection>
; V48 tmp32 [V48,T01] ( 5, 80 ) ref -> x22 class-hnd "Inlining Arg" <System.Net.Mail.MailAddressCollection>
;* V49 tmp33 [V49 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V50 tmp34 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.Mail.MailAddressCollection>
; V51 tmp35 [V51,T02] ( 5, 80 ) ref -> x22 class-hnd "Inlining Arg" <System.Net.Mail.MailAddressCollection>
;* V52 tmp36 [V52 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V53 tmp37 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.Mail.MailAddressCollection>
; V54 tmp38 [V54,T03] ( 5, 80 ) ref -> x22 class-hnd "Inlining Arg" <System.Net.Mail.MailAddressCollection>
;* V55 tmp39 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V56 tmp40 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.Mail.MailAddressCollection>
-; V57 tmp41 [V57,T43] ( 2, 4 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.Net.Mail.SmtpTransport>
+; V57 tmp41 [V57,T42] ( 2, 4 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.Net.Mail.SmtpTransport>
;* V58 tmp42 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Mail.SmtpTransport>
;* V59 tmp43 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Mail.SmtpTransport>
;* V60 tmp44 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V61 tmp45 [V61,T44] ( 2, 4 ) ref -> x21 class-hnd single-def "Inlining Arg" <System.Threading.SynchronizationContext>
+; V61 tmp45 [V61,T43] ( 2, 4 ) ref -> x21 class-hnd single-def "Inlining Arg" <System.Threading.SynchronizationContext>
; V62 tmp46 [V62,T15] ( 6, 12 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.AsyncOperation>
;* V63 tmp47 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Mail.SmtpTransport>
-; V64 tmp48 [V64,T19] ( 5, 10 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <System.Net.Mail.MailWriter>
+; V64 tmp48 [V64,T19] ( 5, 10 ) ref -> x23 class-hnd exact single-def "Inlining Arg" <System.Net.Mail.MailWriter>
; V65 tmp49 [V65,T14] ( 7, 14 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <System.Net.Mail.Message>
-; V66 tmp50 [V66,T45] ( 2, 4 ) ref -> x24 class-hnd exact single-def "Inlining Arg" <System.ComponentModel.AsyncOperation>
-; V67 tmp51 [V67,T46] ( 2, 4 ) ref -> x15 class-hnd single-def "Inlining Arg" <System.Object>
-; V68 tmp52 [V68,T16] ( 6, 12 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <System.ComponentModel.AsyncOperation>
-; V69 tmp53 [V69,T27] ( 3, 6 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <System.Threading.SendOrPostCallback>
-; V70 tmp54 [V70,T47] ( 2, 4 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <System.Net.Mail.SmtpTransport>
-; V71 tmp55 [V71,T56] ( 2, 4 ) ubyte -> x19 "Inlining Arg"
-; V72 tmp56 [V72,T48] ( 2, 4 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.AsyncCallback>
+; V66 tmp50 [V66,T44] ( 2, 4 ) ref -> x24 class-hnd exact single-def "Inlining Arg" <System.ComponentModel.AsyncOperation>
+; V67 tmp51 [V67,T45] ( 2, 4 ) ref -> x15 class-hnd single-def "Inlining Arg" <System.Object>
+; V68 tmp52 [V68,T16] ( 6, 12 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <System.ComponentModel.AsyncOperation>
+; V69 tmp53 [V69,T27] ( 3, 6 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.Threading.SendOrPostCallback>
+; V70 tmp54 [V70,T46] ( 2, 4 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <System.Net.Mail.SmtpTransport>
+; V71 tmp55 [V71,T55] ( 2, 4 ) ubyte -> x19 "Inlining Arg"
+; V72 tmp56 [V72,T47] ( 2, 4 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.AsyncCallback>
;* V73 tmp57 [V73 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
;* V74 tmp58 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Net.NetEventSource>
-; V75 tmp59 [V75,T65] ( 2, 2 ) ref -> x23 single-def
-; V76 tmp60 [V76,T66] ( 2, 2 ) ref -> x2 single-def
+; V75 tmp59 [V75,T64] ( 2, 2 ) ref -> x22 single-def
+; V76 tmp60 [V76,T65] ( 2, 2 ) ref -> x2 single-def
;* V77 tmp61 [V77 ] ( 0, 0 ) ref -> zero-ref single-def
;* V78 tmp62 [V78 ] ( 0, 0 ) ref -> zero-ref single-def
;* V79 tmp63 [V79 ] ( 0, 0 ) ref -> zero-ref single-def
;* V80 tmp64 [V80 ] ( 0, 0 ) ref -> zero-ref single-def
-;* V81 tmp65 [V81,T73] ( 0, 0 ) ref -> zero-ref single-def
-; V82 tmp66 [V82,T67] ( 2, 2 ) ref -> x0 single-def
-;* V83 tmp67 [V83,T76] ( 0, 0 ) int -> zero-ref
-; V84 tmp68 [V84,T68] ( 2, 2 ) ref -> x2 single-def
-;* V85 tmp69 [V85,T74] ( 0, 0 ) ref -> zero-ref single-def
+;* V81 tmp65 [V81,T72] ( 0, 0 ) ref -> zero-ref single-def
+; V82 tmp66 [V82,T66] ( 2, 2 ) ref -> x0 single-def
+;* V83 tmp67 [V83,T75] ( 0, 0 ) int -> zero-ref
+; V84 tmp68 [V84,T67] ( 2, 2 ) ref -> x2 single-def
+;* V85 tmp69 [V85,T73] ( 0, 0 ) ref -> zero-ref single-def
; V86 tmp70 [V86,T17] ( 6, 12 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <System.Net.ContextAwareResult>
;* V87 tmp71 [V87 ] ( 0, 0 ) ref -> zero-ref single-def
-; V88 tmp72 [V88,T49] ( 2, 4 ) ref -> x15 class-hnd exact single-def "NewObj constructor temp" <System.Object>
+; V88 tmp72 [V88,T48] ( 2, 4 ) ref -> x15 class-hnd exact single-def "NewObj constructor temp" <System.Object>
;* V89 tmp73 [V89 ] ( 0, 0 ) ref -> zero-ref
;* V90 tmp74 [V90 ] ( 0, 0 ) ref -> zero-ref
-; V91 tmp75 [V91,T62] ( 2, 2 ) ubyte -> x0 "Inline return value spill temp"
-; V92 tmp76 [V92,T50] ( 2, 4 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Net.Mail.SmtpTransport>
+; V91 tmp75 [V91,T61] ( 2, 2 ) ubyte -> x0 "Inline return value spill temp"
+; V92 tmp76 [V92,T49] ( 2, 4 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Net.Mail.SmtpTransport>
;* V93 tmp77 [V93 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Mail.SmtpConnection>
;* V94 tmp78 [V94 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
;* V95 tmp79 [V95 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Net.NetEventSource>
; V96 tmp80 [V96,T28] ( 3, 6 ) ref -> x20 class-hnd single-def "Inlining Arg" <System.FormattableString>
-; V97 tmp81 [V97,T69] ( 2, 2 ) ref -> x21 single-def
-; V98 tmp82 [V98,T70] ( 2, 2 ) ref -> x19 single-def
+; V97 tmp81 [V97,T68] ( 2, 2 ) ref -> x21 single-def
+; V98 tmp82 [V98,T69] ( 2, 2 ) ref -> x19 single-def
;* V99 tmp83 [V99 ] ( 0, 0 ) ref -> zero-ref single-def
;* V100 tmp84 [V100 ] ( 0, 0 ) ref -> zero-ref single-def
;* V101 tmp85 [V101 ] ( 0, 0 ) ref -> zero-ref single-def
;* V102 tmp86 [V102 ] ( 0, 0 ) ref -> zero-ref single-def
-; V103 tmp87 [V103,T57] ( 3, 3 ) ref -> x4
-; V104 tmp88 [V104,T71] ( 2, 2 ) ref -> x0 single-def
-;* V105 tmp89 [V105,T77] ( 0, 0 ) int -> zero-ref
-; V106 tmp90 [V106,T72] ( 2, 2 ) ref -> x2 single-def
-;* V107 tmp91 [V107,T75] ( 0, 0 ) ref -> zero-ref single-def
-; V108 tmp92 [V108,T51] ( 2, 4 ) ref -> x0 single-def "argument with side effect"
+; V103 tmp87 [V103,T56] ( 3, 3 ) ref -> x4
+; V104 tmp88 [V104,T70] ( 2, 2 ) ref -> x0 single-def
+;* V105 tmp89 [V105,T76] ( 0, 0 ) int -> zero-ref
+; V106 tmp90 [V106,T71] ( 2, 2 ) ref -> x2 single-def
+;* V107 tmp91 [V107,T74] ( 0, 0 ) ref -> zero-ref single-def
+; V108 tmp92 [V108,T50] ( 2, 4 ) ref -> x0 single-def "argument with side effect"
; V109 tmp93 [V109,T06] ( 2, 32 ) int -> x1 "argument with side effect"
-; V110 tmp94 [V110,T52] ( 2, 4 ) ref -> x0 single-def "argument with side effect"
+; V110 tmp94 [V110,T51] ( 2, 4 ) ref -> x0 single-def "argument with side effect"
; V111 tmp95 [V111,T07] ( 2, 32 ) int -> x1 "argument with side effect"
-; V112 tmp96 [V112,T53] ( 2, 4 ) ref -> x0 single-def "argument with side effect"
+; V112 tmp96 [V112,T52] ( 2, 4 ) ref -> x0 single-def "argument with side effect"
; V113 tmp97 [V113,T08] ( 2, 32 ) int -> x1 "argument with side effect"
; V114 tmp98 [V114,T29] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
-; V115 tmp99 [V115,T87] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V116 tmp100 [V116,T54] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V117 tmp101 [V117,T55] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+; V115 tmp99 [V115,T86] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V116 tmp100 [V116,T53] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+; V117 tmp101 [V117,T54] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V118 tmp102 [V118,T30] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
; V119 tmp103 [V119,T31] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
-; V120 tmp104 [V120,T88] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V121 tmp105 [V121,T89] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V122 tmp106 [V122,T90] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V123 tmp107 [V123,T91] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V124 tmp108 [V124,T92] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V125 PSPSym [V125,T78] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym"
+; V120 tmp104 [V120,T87] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V121 tmp105 [V121,T88] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V122 tmp106 [V122,T89] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V123 tmp107 [V123,T90] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V124 tmp108 [V124,T91] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V125 PSPSym [V125,T77] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[V] "PSPSym"
; V126 cse0 [V126,T33] ( 7, 5 ) ref -> x21 multi-def "CSE #13: moderate"
; V127 cse1 [V127,T34] ( 5, 5 ) ref -> x21 "CSE #05: moderate"
-; V128 cse2 [V128,T58] ( 3, 3 ) ref -> x1 "CSE #03: conservative"
-; V129 cse3 [V129,T59] ( 3, 3 ) ref -> x0 "CSE #08: conservative"
-; V130 cse4 [V130,T60] ( 3, 3 ) ref -> x0 "CSE #14: conservative"
-; V131 cse5 [V131,T61] ( 3, 3 ) ref -> x3 "CSE #17: conservative"
-; V132 cse6 [V132,T00] ( 29,107 ) long -> x24 multi-def "CSE #04: aggressive"
-; V133 cse7 [V133,T37] ( 4, 4 ) long -> x23 "CSE #07: moderate"
-; V134 rat0 [V134,T32] ( 3, 5.50) int -> x1 "ReplaceWithLclVar is creating a new local variable"
+; V128 cse2 [V128,T57] ( 3, 3 ) ref -> x1 "CSE #03: conservative"
+; V129 cse3 [V129,T58] ( 3, 3 ) ref -> x0 "CSE #08: conservative"
+; V130 cse4 [V130,T59] ( 3, 3 ) ref -> x0 "CSE #14: conservative"
+; V131 cse5 [V131,T60] ( 3, 3 ) ref -> x3 "CSE #17: conservative"
+; V132 cse6 [V132,T00] ( 29,107 ) long -> x23 multi-def "CSE #04: aggressive"
+; V133 rat0 [V133,T32] ( 3, 5.50) int -> x1 "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 40
+; Lcl frame size = 48
G_M564_IG01:
stp fp, lr, [sp, #-0x70]!
- stp x19, x20, [sp, #0x38]
- stp x21, x22, [sp, #0x48]
- stp x23, x24, [sp, #0x58]
- str x25, [sp, #0x68]
+ stp x19, x20, [sp, #0x40]
+ stp x21, x22, [sp, #0x50]
+ stp x23, x24, [sp, #0x60]
mov fp, sp
add x3, sp, #112
- str x3, [fp, #0x30] // [V125 PSPSym]
- str x0, [fp, #0x20] // [V00 this]
+ str x3, [fp, #0x38] // [V125 PSPSym]
+ str x0, [fp, #0x28] // [V00 this]
mov x19, x1
mov x20, x2
- ;; size=44 bbWeight=1 PerfScore 9.00
+ ;; size=40 bbWeight=1 PerfScore 8.00
G_M564_IG02:
ldrb w1, [x0, #0x9B]
cbnz w1, G_M564_IG51
;; size=8 bbWeight=1 PerfScore 4.00
G_M564_IG03:
ldrb w1, [x0, #0x98]
cbnz w1, G_M564_IG49
cbz x19, G_M564_IG48
ldr w1, [x0, #0x90]
cbnz w1, G_M564_IG04
movz x1, #0xD1FFAB1E // code for System.Net.Mail.SmtpClient:CheckHostAndPort():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=40 bbWeight=1 PerfScore 14.50
G_M564_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x21, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x22, x0
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M564_IG40
;; size=60 bbWeight=1 PerfScore 11.50
G_M564_IG05:
- movz x23, #0xD1FFAB1E // data for System.Collections.Generic.List`1[System.Net.Mail.MailAddress]:s_emptyArray
- movk x23, #0xD1FFAB1E LSL #16
- movk x23, #0xD1FFAB1E LSL #32
- ldr x15, [x23]
+ movz x14, #0xD1FFAB1E // data for System.Collections.Generic.List`1[System.Net.Mail.MailAddress]:s_emptyArray
+ movk x14, #0xD1FFAB1E LSL #32
+ ldr x15, [x14]
add x14, x22, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #8
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
- ldr x0, [fp, #0x20] // [V00 this]
+ ldr x0, [fp, #0x28] // [V00 this]
add x14, x0, #56
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
ldr x1, [x19, #0x30]
ldr x2, [x1, #0x08]
cbz x2, G_M564_IG47
mov x0, x1
movz x1, #0xD1FFAB1E // code for System.Net.Mail.Message:get_To():System.Net.Mail.MailAddressCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbz x0, G_M564_IG09
ldr x0, [x19, #0x30]
movz x1, #0xD1FFAB1E // code for System.Net.Mail.Message:get_To():System.Net.Mail.MailAddressCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x0, #0x08]
- movz x24, #0xD1FFAB1E // code for System.Collections.Generic.IEnumerable`1[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.__Canon]:this
- movk x24, #0xD1FFAB1E LSL #16
- movk x24, #0xD1FFAB1E LSL #32
- mov x11, x24
+ movz x23, #0xD1FFAB1E // code for System.Collections.Generic.IEnumerable`1[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.__Canon]:this
+ movk x23, #0xD1FFAB1E LSL #16
+ movk x23, #0xD1FFAB1E LSL #32
+ mov x11, x23
ldr xip0, [x11]
blr xip0
- str x0, [fp, #0x18] // [V05 loc2]
- ;; size=152 bbWeight=1 PerfScore 47.50
+ str x0, [fp, #0x20] // [V05 loc2]
+ ;; size=148 bbWeight=1 PerfScore 47.00
G_M564_IG06:
- ldr x0, [fp, #0x18] // [V05 loc2]
- sub x11, x24, #24
+ ldr x0, [fp, #0x20] // [V05 loc2]
+ sub x11, x23, #24
ldr xip0, [x11]
blr xip0
cbz w0, G_M564_IG08
- ldr x0, [fp, #0x18] // [V05 loc2]
- sub x11, x24, #16
+ ldr x0, [fp, #0x20] // [V05 loc2]
+ sub x11, x23, #16
ldr xip0, [x11]
blr xip0
mov x21, x0
- ldr x0, [fp, #0x20] // [V00 this]
+ ldr x0, [fp, #0x28] // [V00 this]
ldr x22, [x0, #0x38]
ldr x0, [x22, #0x08]
- add x11, x24, #8
+ add x11, x23, #8
ldr xip0, [x11]
blr xip0
cbnz w0, G_M564_IG07
ldr x0, [x22, #0x08]
- add x11, x24, #16
+ add x11, x23, #16
ldr xip0, [x11]
blr xip0
sxtw w1, w0
mov x0, x22
mov x2, x21
ldr x3, [x22]
ldr x3, [x3, #0x50]
ldr x3, [x3, #0x08]
blr x3
b G_M564_IG06
;; size=116 bbWeight=8 PerfScore 384.00
G_M564_IG07:
mov w0, #8
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowNotSupportedException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
G_M564_IG08:
- ldr x0, [fp, #0x18] // [V05 loc2]
- sub x11, x24, #8
+ ldr x0, [fp, #0x20] // [V05 loc2]
+ sub x11, x23, #8
ldr xip0, [x11]
blr xip0
;; size=16 bbWeight=1 PerfScore 6.50
G_M564_IG09:
ldr x0, [x19, #0x30]
movz x1, #0xD1FFAB1E // code for System.Net.Mail.Message:get_Bcc():System.Net.Mail.MailAddressCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbz x0, G_M564_IG13
ldr x0, [x19, #0x30]
movz x1, #0xD1FFAB1E // code for System.Net.Mail.Message:get_Bcc():System.Net.Mail.MailAddressCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x0, #0x08]
- movz x24, #0xD1FFAB1E
- movk x24, #0xD1FFAB1E LSL #16
- movk x24, #0xD1FFAB1E LSL #32
- add x11, x24, #24
+ movz x23, #0xD1FFAB1E
+ movk x23, #0xD1FFAB1E LSL #16
+ movk x23, #0xD1FFAB1E LSL #32
+ add x11, x23, #24
ldr xip0, [x11]
blr xip0
- str x0, [fp, #0x18] // [V05 loc2]
+ str x0, [fp, #0x20] // [V05 loc2]
;; size=92 bbWeight=1 PerfScore 34.00
G_M564_IG10:
- ldr x0, [fp, #0x18] // [V05 loc2]
- sub x11, x24, #48
+ ldr x0, [fp, #0x20] // [V05 loc2]
+ sub x11, x23, #48
ldr xip0, [x11]
blr xip0
cbz w0, G_M564_IG12
- ldr x0, [fp, #0x18] // [V05 loc2]
- sub x11, x24, #40
+ ldr x0, [fp, #0x20] // [V05 loc2]
+ sub x11, x23, #40
ldr xip0, [x11]
blr xip0
mov x21, x0
- ldr x0, [fp, #0x20] // [V00 this]
+ ldr x0, [fp, #0x28] // [V00 this]
ldr x22, [x0, #0x38]
ldr x0, [x22, #0x08]
- add x11, x24, #32
+ add x11, x23, #32
ldr xip0, [x11]
blr xip0
cbnz w0, G_M564_IG11
ldr x0, [x22, #0x08]
- add x11, x24, #40
+ add x11, x23, #40
ldr xip0, [x11]
blr xip0
sxtw w1, w0
mov x0, x22
mov x2, x21
ldr x3, [x22]
ldr x3, [x3, #0x50]
ldr x3, [x3, #0x08]
blr x3
b G_M564_IG10
;; size=116 bbWeight=8 PerfScore 384.00
G_M564_IG11:
mov w0, #8
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowNotSupportedException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
G_M564_IG12:
- ldr x0, [fp, #0x18] // [V05 loc2]
- sub x11, x24, #32
+ ldr x0, [fp, #0x20] // [V05 loc2]
+ sub x11, x23, #32
ldr xip0, [x11]
blr xip0
;; size=16 bbWeight=1 PerfScore 6.50
G_M564_IG13:
ldr x0, [x19, #0x30]
movz x1, #0xD1FFAB1E // code for System.Net.Mail.Message:get_CC():System.Net.Mail.MailAddressCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbz x0, G_M564_IG17
ldr x0, [x19, #0x30]
movz x1, #0xD1FFAB1E // code for System.Net.Mail.Message:get_CC():System.Net.Mail.MailAddressCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x0, #0x08]
- movz x24, #0xD1FFAB1E
- movk x24, #0xD1FFAB1E LSL #16
- movk x24, #0xD1FFAB1E LSL #32
- add x11, x24, #48
+ movz x23, #0xD1FFAB1E
+ movk x23, #0xD1FFAB1E LSL #16
+ movk x23, #0xD1FFAB1E LSL #32
+ add x11, x23, #48
ldr xip0, [x11]
blr xip0
- str x0, [fp, #0x18] // [V05 loc2]
+ str x0, [fp, #0x20] // [V05 loc2]
;; size=92 bbWeight=1 PerfScore 34.00
G_M564_IG14:
- ldr x0, [fp, #0x18] // [V05 loc2]
- sub x11, x24, #72
+ ldr x0, [fp, #0x20] // [V05 loc2]
+ sub x11, x23, #72
ldr xip0, [x11]
blr xip0
cbz w0, G_M564_IG16
- ldr x0, [fp, #0x18] // [V05 loc2]
- sub x11, x24, #64
+ ldr x0, [fp, #0x20] // [V05 loc2]
+ sub x11, x23, #64
ldr xip0, [x11]
blr xip0
mov x21, x0
- ldr x0, [fp, #0x20] // [V00 this]
+ ldr x0, [fp, #0x28] // [V00 this]
ldr x22, [x0, #0x38]
ldr x0, [x22, #0x08]
- add x11, x24, #56
+ add x11, x23, #56
ldr xip0, [x11]
blr xip0
cbnz w0, G_M564_IG15
ldr x0, [x22, #0x08]
- add x11, x24, #64
+ add x11, x23, #64
ldr xip0, [x11]
blr xip0
sxtw w1, w0
mov x0, x22
mov x2, x21
ldr x3, [x22]
ldr x3, [x3, #0x50]
ldr x3, [x3, #0x08]
blr x3
b G_M564_IG14
;; size=116 bbWeight=8 PerfScore 384.00
G_M564_IG15:
mov w0, #8
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowNotSupportedException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
G_M564_IG16:
- ldr x0, [fp, #0x18] // [V05 loc2]
- sub x11, x24, #56
+ ldr x0, [fp, #0x20] // [V05 loc2]
+ sub x11, x23, #56
ldr xip0, [x11]
blr xip0
;; size=16 bbWeight=1 PerfScore 6.50
G_M564_IG17:
- ldr x0, [fp, #0x20] // [V00 this]
+ ldr x0, [fp, #0x28] // [V00 this]
ldr x11, [x0, #0x38]
ldr x0, [x11, #0x08]
- movz x24, #0xD1FFAB1E
- movk x24, #0xD1FFAB1E LSL #16
- movk x24, #0xD1FFAB1E LSL #32
- add x11, x24, #72
+ movz x23, #0xD1FFAB1E
+ movk x23, #0xD1FFAB1E LSL #16
+ movk x23, #0xD1FFAB1E LSL #32
+ add x11, x23, #72
ldr xip0, [x11]
blr xip0
cbz w0, G_M564_IG46
mov w14, #1
- ldr x0, [fp, #0x20] // [V00 this]
+ ldr x0, [fp, #0x28] // [V00 this]
strh w14, [x0, #0x98]
add x14, x0, #40
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
- ldp x24, x21, [x0, #0x18]
+ ldp x23, x21, [x0, #0x18]
mov x22, x21
mov x1, x21
ldr x1, [x1, #0x20]
cbz x1, G_M564_IG19
- ldr x25, [x21, #0x20]
+ ldr x24, [x21, #0x20]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr w1, [x1]
tbz w1, #0, G_M564_IG41
;; size=108 bbWeight=1 PerfScore 38.00
G_M564_IG18:
- ldr x1, [x23, #0x40]
- cmp x25, x1
+ movz x1, #0xD1FFAB1E // data for System.Net.SystemNetworkCredential:s_defaultCredential
+ movk x1, #0xD1FFAB1E LSL #32
+ ldr x1, [x1]
+ cmp x24, x1
beq G_M564_IG20
ldr x1, [x21, #0x20]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M564_IG20
movz x1, #0xD1FFAB1E // code for System.Net.Mail.SmtpClient:IsSystemNetworkCredentialInCache(System.Net.CredentialCache):ubyte
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
b G_M564_IG21
- ;; size=76 bbWeight=1 PerfScore 22.00
+ ;; size=84 bbWeight=1 PerfScore 23.00
G_M564_IG19:
mov w1, wzr
mov w0, w1
b G_M564_IG21
;; size=12 bbWeight=1 PerfScore 2.00
G_M564_IG20:
mov w1, #1
mov w0, w1
;; size=8 bbWeight=1 PerfScore 1.00
G_M564_IG21:
strb w0, [x22, #0x38]
movz x0, #0xD1FFAB1E // code for System.ComponentModel.AsyncOperationManager:get_SynchronizationContext():System.Threading.SynchronizationContext
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x21, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWFAST
mov x22, x0
add x14, x22, #16
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #8
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
strb wzr, [x22, #0x18]
ldr x0, [x22, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x30]
blr x1
- ldr x0, [fp, #0x20] // [V00 this]
+ ldr x0, [fp, #0x28] // [V00 this]
add x14, x0, #88
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
ldr w1, [x0, #0x90]
cmp w1, #2
bhi G_M564_IG27
;; size=124 bbWeight=1 PerfScore 36.50
G_M564_IG22:
mov w1, w1
adr x2, [@RWD00]
ldr w2, [x2, x1, LSL #2]
adr x3, [G_M564_IG02]
add x2, x2, x3
br x2
;; size=24 bbWeight=0.75 PerfScore 4.50
G_M564_IG23:
ldr x1, [x0, #0x20]
ldrb w1, [x1, #0x3A]
cbnz w1, G_M564_IG44
- mov x1, x24
+ mov x1, x23
movz x2, #0xD1FFAB1E // code for System.Net.Mail.SmtpClient:GetFileMailWriter(System.String):System.Net.Mail.MailWriter:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ldr x21, [fp, #0x20] // [V00 this]
+ ldr x21, [fp, #0x28] // [V00 this]
add x14, x21, #48
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
mov x0, x21
movz x1, #0xD1FFAB1E // code for System.Net.Mail.SmtpClient:IsUnicodeSupported():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- sxtw w23, w0
+ sxtw w20, w0
ldr x1, [x21, #0x38]
mov x0, x19
- mov w2, w23
+ mov w2, w20
movz x3, #0xD1FFAB1E // code for System.Net.Mail.SmtpClient:ValidateUnicodeRequirement(System.Net.Mail.MailMessage,System.Net.Mail.MailAddressCollection,ubyte)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ldr x20, [x21, #0x30]
+ ldr x23, [x21, #0x30]
mov x0, x19
- mov w1, w23
+ mov w1, w20
movz x2, #0xD1FFAB1E // code for System.Net.Mail.MailMessage:SetContent(ubyte):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x19, [x19, #0x30]
ldrsb wzr, [x19]
mov x0, x19
- mov w1, w23
+ mov w1, w20
movz x2, #0xD1FFAB1E // code for System.Net.Mail.Message:PrepareEnvelopeHeaders(ubyte):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.Net.Mail.Message:get_EnvelopeHeaders():System.Net.Mime.HeaderCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
- mov x0, x20
- mov w2, w23
+ mov x0, x23
+ mov w2, w20
movz x3, #0xD1FFAB1E // code for System.Net.Mail.MailWriter:WriteHeaders(System.Collections.Specialized.NameValueCollection,ubyte):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
ldr wzr, [x0]
blr x3
mov x0, x19
- mov w1, w23
+ mov w1, w20
movz x2, #0xD1FFAB1E // code for System.Net.Mail.Message:PrepareHeaders(ubyte):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.Net.Mail.Message:get_Headers():System.Net.Mime.HeaderCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
- mov x0, x20
- mov w2, w23
+ mov x0, x23
+ mov w2, w20
movz x3, #0xD1FFAB1E // code for System.Net.Mail.MailWriter:WriteHeaders(System.Collections.Specialized.NameValueCollection,ubyte):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x0, [x19, #0x40]
cbz x0, G_M564_IG24
- mov x1, x20
- mov w2, w23
+ mov x1, x23
+ mov w2, w20
ldr x3, [x0]
ldr x3, [x3, #0x40]
ldr x3, [x3, #0x20]
blr x3
b G_M564_IG25
;; size=360 bbWeight=1 PerfScore 106.50
G_M564_IG24:
- mov x0, x20
+ mov x0, x23
mov x1, xzr
movz x2, #0xD1FFAB1E // code for System.Net.Mime.BaseWriter:GetContentStream(System.Net.Mime.MultiAsyncResult):System.Net.ClosableStream:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
movz x1, #0xD1FFAB1E // code for System.Net.ClosableStream:Close():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
;; size=52 bbWeight=1 PerfScore 15.00
G_M564_IG25:
ldr x0, [x21, #0x30]
cbz x0, G_M564_IG26
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr x1, [x1, #0x28]
blr x1
;; size=32 bbWeight=1 PerfScore 12.50
G_M564_IG26:
ldr x24, [x21, #0x58]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x25, x0
+ mov x19, x0
ldr x15, [x24, #0x10]
- strb wzr, [x25, #0x18]
- str xzr, [x25, #0x08]
- add x14, x25, #16
+ strb wzr, [x19, #0x18]
+ str xzr, [x19, #0x08]
+ add x14, x19, #16
bl CORINFO_HELP_ASSIGN_REF
strb wzr, [x21, #0x98]
- ldr x19, [x21, #0x58]
- ldr x20, [x21, #0x40]
- ldrsb wzr, [x19]
- mov x0, x19
+ ldr x20, [x21, #0x58]
+ ldr x22, [x21, #0x40]
+ ldrsb wzr, [x20]
+ mov x0, x20
movz x1, #0xD1FFAB1E // code for System.ComponentModel.AsyncOperation:VerifyNotCompleted():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- cbz x20, G_M564_IG43
+ cbz x22, G_M564_IG43
mov w0, #1
- strb w0, [x19, #0x18]
- ldr x0, [x19, #0x08]
- mov x1, x20
- mov x2, x25
+ strb w0, [x20, #0x18]
+ ldr x0, [x20, #0x08]
+ mov x1, x22
+ mov x2, x19
ldr x3, [x0]
ldr x3, [x3, #0x40]
ldr x3, [x3, #0x28]
blr x3
- mov x0, x19
+ mov x0, x20
movz x1, #0xD1FFAB1E // code for System.ComponentModel.AsyncOperation:OperationCompletedCore():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
b G_M564_IG50
;; size=152 bbWeight=1 PerfScore 52.00
G_M564_IG27:
ldr x19, [x0, #0x20]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
ldrb w19, [x19, #0x38]
- ldr x0, [x23, #0x30]
+ movz x14, #0xD1FFAB1E
+ movk x14, #0xD1FFAB1E LSL #32
+ ldr x0, [x14]
str xzr, [x20, #0x08]
add x14, x20, #16
- ldr x15, [fp, #0x20] // [V00 this]
+ ldr x15, [fp, #0x28] // [V00 this]
bl CORINFO_HELP_ASSIGN_REF
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M564_IG45
- ;; size=80 bbWeight=1 PerfScore 24.00
+ ;; size=88 bbWeight=1 PerfScore 25.00
G_M564_IG28:
movz x14, #0xD1FFAB1E // data for System.DBNull:Value
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x20, #32
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x21, [x0]
ldrb w0, [x21, #0x9D]
cbz w0, G_M564_IG29
- mov x23, x21
+ mov x22, x21
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.Net.NetEventSource:IdOf(System.Object):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x2, x0
- mov x0, x23
+ mov x0, x22
mov w1, #1
movz x3, #0xD1FFAB1E
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
movz x4, #0xD1FFAB1E
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
movz x5, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
- ;; size=132 bbWeight=1 PerfScore 31.00
+ ;; size=124 bbWeight=1 PerfScore 30.00
G_M564_IG29:
mov w14, #2
strb w14, [x20, #0x36]
cbz w19, G_M564_IG30
ldrb w14, [x20, #0x36]
orr w14, w14, #1
strb w14, [x20, #0x36]
;; size=24 bbWeight=1 PerfScore 7.00
G_M564_IG30:
- ldr x22, [fp, #0x20] // [V00 this]
+ ldr x22, [fp, #0x28] // [V00 this]
add x14, x22, #80
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
ldr x19, [x22, #0x50]
ldrsb wzr, [x19]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x15, x0
add x14, x19, #64
bl CORINFO_HELP_ASSIGN_REF
ldrb w1, [x19, #0x36]
orr w1, w1, #8
strb w1, [x19, #0x36]
ldr x0, [x19, #0x40]
- str x0, [fp, #0x10] // [V12 loc9]
- str wzr, [fp, #0x28] // [V13 loc10]
+ str x0, [fp, #0x18] // [V12 loc9]
+ str wzr, [fp, #0x30] // [V13 loc10]
;; size=76 bbWeight=1 PerfScore 24.00
G_M564_IG31:
- ldrb w1, [fp, #0x28] // [V13 loc10]
+ ldrb w1, [fp, #0x30] // [V13 loc10]
cbnz w1, G_M564_IG38
- add x1, fp, #40 // [V13 loc10]
+ add x1, fp, #48 // [V13 loc10]
bl System.Threading.Monitor:ReliableEnter(System.Object,byref)
ldr x0, [x22, #0x20]
ldr x0, [x0, #0x10]
cbz x0, G_M564_IG32
ldrb w0, [x0, #0x64]
cbnz w0, G_M564_IG36
;; size=36 bbWeight=1 PerfScore 15.50
G_M564_IG32:
ldrb w0, [x21, #0x9D]
cbz w0, G_M564_IG35
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov x1, #1
bl CORINFO_HELP_NEWARR_1_OBJ
ldr x15, [x22, #0x20]
add x14, x0, #16
bl CORINFO_HELP_ASSIGN_REF
mov x1, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.FormattableStringFactory:Create(System.String,System.Object[]):System.FormattableString
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x20, x0
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.Net.NetEventSource:IdOf(System.Object):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x19, x0
cbnz x20, G_M564_IG33
movz x4, #0xD1FFAB1E
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
b G_M564_IG34
;; size=128 bbWeight=1 PerfScore 29.50
G_M564_IG33:
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.Net.NetEventSource:Format(System.FormattableString):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x4, x0
;; size=28 bbWeight=1 PerfScore 6.50
G_M564_IG34:
mov x0, x21
mov x2, x19
mov w1, #1
movz x3, #0xD1FFAB1E
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
movz x5, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
;; size=44 bbWeight=1 PerfScore 8.50
G_M564_IG35:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x2, x0
ldr x0, [x22, #0x20]
ldr x3, [x22, #0x50]
mov x1, x3
add x14, x2, #8
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x4, #0xD1FFAB1E // code for System.Net.Mail.SmtpClient:ConnectCallback(System.IAsyncResult):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
str x4, [x2, #0x18]
ldr x4, [x22, #0x08]
ldr w5, [x22, #0x88]
movz x6, #0xD1FFAB1E // code for System.Net.Mail.SmtpTransport:BeginGetConnection(System.Net.ContextAwareResult,System.AsyncCallback,System.Object,System.String,int):System.IAsyncResult:this
movk x6, #0xD1FFAB1E LSL #16
movk x6, #0xD1FFAB1E LSL #32
ldr x6, [x6]
ldr wzr, [x0]
blr x6
b G_M564_IG37
;; size=96 bbWeight=1 PerfScore 29.50
G_M564_IG36:
ldr x1, [x22, #0x50]
mov x0, x22
movz x2, #0xD1FFAB1E // code for System.Net.Mail.SmtpClient:SendMailAsync(System.Object):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
nop
;; size=32 bbWeight=1 PerfScore 9.50
G_M564_IG37:
- ldr x22, [fp, #0x20] // [V00 this]
+ ldr x22, [fp, #0x28] // [V00 this]
ldr x0, [x22, #0x50]
movz x1, #0xD1FFAB1E // code for System.Net.ContextAwareResult:FinishPostingAsyncOp():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
b G_M564_IG39
;; size=36 bbWeight=1 PerfScore 14.50
G_M564_IG38:
movz x1, #0xD1FFAB1E // code for System.Threading.Monitor:ThrowLockTakenException()
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M564_IG39:
- ldrb w0, [fp, #0x28] // [V13 loc10]
+ ldrb w0, [fp, #0x30] // [V13 loc10]
cbz w0, G_M564_IG50
- ldr x0, [fp, #0x10] // [V12 loc9]
+ ldr x0, [fp, #0x18] // [V12 loc9]
bl System.Threading.Monitor:Exit(System.Object)
b G_M564_IG50
;; size=20 bbWeight=1 PerfScore 7.00
G_M564_IG40:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M564_IG05
;; size=20 bbWeight=0 PerfScore 0.00
G_M564_IG41:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M564_IG18
;; size=20 bbWeight=0 PerfScore 0.00
G_M564_IG42:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_SmtpGetIisPickupDirectoryNotSupported():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for System.NotSupportedException:.ctor(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x19
bl CORINFO_HELP_THROW
brk_unix #0
;; size=80 bbWeight=0 PerfScore 0.00
G_M564_IG43:
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
movz x1, #0xD1FFAB1E // code for System.ArgumentNullException:Throw(System.String)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=44 bbWeight=0 PerfScore 0.00
G_M564_IG44:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_SmtpPickupDirectoryDoesnotSupportSsl():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for System.Net.Mail.SmtpException:.ctor(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x19
bl CORINFO_HELP_THROW
brk_unix #0
;; size=80 bbWeight=0 PerfScore 0.00
G_M564_IG45:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M564_IG28
;; size=20 bbWeight=0 PerfScore 0.00
G_M564_IG46:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_SmtpRecipientRequired():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for System.InvalidOperationException:.ctor(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x19
bl CORINFO_HELP_THROW
brk_unix #0
;; size=80 bbWeight=0 PerfScore 0.00
G_M564_IG47:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_SmtpFromRequired():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for System.InvalidOperationException:.ctor(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x19
bl CORINFO_HELP_THROW
brk_unix #0
;; size=80 bbWeight=0 PerfScore 0.00
G_M564_IG48:
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
movz x1, #0xD1FFAB1E // code for System.ArgumentNullException:Throw(System.String)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=44 bbWeight=0 PerfScore 0.00
G_M564_IG49:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_net_inasync():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for System.InvalidOperationException:.ctor(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x19
bl CORINFO_HELP_THROW
brk_unix #0
;; size=80 bbWeight=0 PerfScore 0.00
G_M564_IG50:
- ldr x25, [sp, #0x68]
- ldp x23, x24, [sp, #0x58]
- ldp x21, x22, [sp, #0x48]
- ldp x19, x20, [sp, #0x38]
+ ldp x23, x24, [sp, #0x60]
+ ldp x21, x22, [sp, #0x50]
+ ldp x19, x20, [sp, #0x40]
ldp fp, lr, [sp], #0x70
ret lr
- ;; size=24 bbWeight=1 PerfScore 7.00
+ ;; size=20 bbWeight=1 PerfScore 5.00
G_M564_IG51:
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowObjectDisposedException(System.Object)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M564_IG52:
stp fp, lr, [sp, #-0x50]!
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- stp x23, x24, [sp, #0x38]
- str x25, [sp, #0x48]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
add x3, fp, #112
- str x3, [sp, #0x10]
- ;; size=28 bbWeight=0 PerfScore 0.00
+ str x3, [sp, #0x18]
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M564_IG53:
- ldr x0, [fp, #0x18] // [V05 loc2]
+ ldr x0, [fp, #0x20] // [V05 loc2]
cbz x0, G_M564_IG54
- ldr x0, [fp, #0x18] // [V05 loc2]
- movz x24, #0xD1FFAB1E
- movk x24, #0xD1FFAB1E LSL #16
- movk x24, #0xD1FFAB1E LSL #32
- sub x11, x24, #8
+ ldr x0, [fp, #0x20] // [V05 loc2]
+ movz x23, #0xD1FFAB1E
+ movk x23, #0xD1FFAB1E LSL #16
+ movk x23, #0xD1FFAB1E LSL #32
+ sub x11, x23, #8
ldr xip0, [x11]
blr xip0
;; size=36 bbWeight=0 PerfScore 0.00
G_M564_IG54:
- ldr x25, [sp, #0x48]
- ldp x23, x24, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M564_IG55:
stp fp, lr, [sp, #-0x50]!
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- stp x23, x24, [sp, #0x38]
- str x25, [sp, #0x48]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
add x3, fp, #112
- str x3, [sp, #0x10]
- ;; size=28 bbWeight=0 PerfScore 0.00
+ str x3, [sp, #0x18]
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M564_IG56:
- ldr x0, [fp, #0x18] // [V05 loc2]
+ ldr x0, [fp, #0x20] // [V05 loc2]
cbz x0, G_M564_IG57
- ldr x0, [fp, #0x18] // [V05 loc2]
- movz x24, #0xD1FFAB1E
- movk x24, #0xD1FFAB1E LSL #16
- movk x24, #0xD1FFAB1E LSL #32
- sub x11, x24, #32
+ ldr x0, [fp, #0x20] // [V05 loc2]
+ movz x23, #0xD1FFAB1E
+ movk x23, #0xD1FFAB1E LSL #16
+ movk x23, #0xD1FFAB1E LSL #32
+ sub x11, x23, #32
ldr xip0, [x11]
blr xip0
;; size=36 bbWeight=0 PerfScore 0.00
G_M564_IG57:
- ldr x25, [sp, #0x48]
- ldp x23, x24, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M564_IG58:
stp fp, lr, [sp, #-0x50]!
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- stp x23, x24, [sp, #0x38]
- str x25, [sp, #0x48]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
add x3, fp, #112
- str x3, [sp, #0x10]
- ;; size=28 bbWeight=0 PerfScore 0.00
+ str x3, [sp, #0x18]
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M564_IG59:
- ldr x0, [fp, #0x18] // [V05 loc2]
+ ldr x0, [fp, #0x20] // [V05 loc2]
cbz x0, G_M564_IG60
- ldr x0, [fp, #0x18] // [V05 loc2]
- movz x24, #0xD1FFAB1E
- movk x24, #0xD1FFAB1E LSL #16
- movk x24, #0xD1FFAB1E LSL #32
- sub x11, x24, #56
+ ldr x0, [fp, #0x20] // [V05 loc2]
+ movz x23, #0xD1FFAB1E
+ movk x23, #0xD1FFAB1E LSL #16
+ movk x23, #0xD1FFAB1E LSL #32
+ sub x11, x23, #56
ldr xip0, [x11]
blr xip0
;; size=36 bbWeight=0 PerfScore 0.00
G_M564_IG60:
- ldr x25, [sp, #0x48]
- ldp x23, x24, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M564_IG61:
stp fp, lr, [sp, #-0x50]!
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- stp x23, x24, [sp, #0x38]
- str x25, [sp, #0x48]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
add x3, fp, #112
- str x3, [sp, #0x10]
- ;; size=28 bbWeight=0 PerfScore 0.00
+ str x3, [sp, #0x18]
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M564_IG62:
mov x1, x0
- ldr x21, [fp, #0x20] // [V00 this]
+ ldr x21, [fp, #0x28] // [V00 this]
ldr x2, [x21, #0x50]
mov x0, x21
movz x3, #0xD1FFAB1E // code for System.Net.Mail.SmtpClient:Complete(System.Exception,System.Object):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
adr x0, [G_M564_IG37]
;; size=40 bbWeight=0 PerfScore 0.00
G_M564_IG63:
- ldr x25, [sp, #0x48]
- ldp x23, x24, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M564_IG64:
stp fp, lr, [sp, #-0x50]!
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- stp x23, x24, [sp, #0x38]
- str x25, [sp, #0x48]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
add x3, fp, #112
- str x3, [sp, #0x10]
- ;; size=28 bbWeight=0 PerfScore 0.00
+ str x3, [sp, #0x18]
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M564_IG65:
- ldrb w0, [fp, #0x28] // [V13 loc10]
+ ldrb w0, [fp, #0x30] // [V13 loc10]
cbz w0, G_M564_IG66
- ldr x0, [fp, #0x10] // [V12 loc9]
+ ldr x0, [fp, #0x18] // [V12 loc9]
bl System.Threading.Monitor:Exit(System.Object)
;; size=16 bbWeight=0 PerfScore 0.00
G_M564_IG66:
- ldr x25, [sp, #0x48]
- ldp x23, x24, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M564_IG67:
stp fp, lr, [sp, #-0x50]!
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- stp x23, x24, [sp, #0x38]
- str x25, [sp, #0x48]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
add x3, fp, #112
- str x3, [sp, #0x10]
- ;; size=28 bbWeight=0 PerfScore 0.00
+ str x3, [sp, #0x18]
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M564_IG68:
mov x19, x0
- ldr x0, [fp, #0x20] // [V00 this]
+ ldr x0, [fp, #0x28] // [V00 this]
mov w1, wzr
movz x2, #0xD1FFAB1E // code for System.Net.Mail.SmtpClient:set_InCall(ubyte):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x21, [x0]
mov x0, x21
movz x1, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabled():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbz w0, G_M564_IG69
- ldr x0, [fp, #0x20] // [V00 this]
+ ldr x0, [fp, #0x28] // [V00 this]
mov x1, x19
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Net.NetEventSource:Error(System.Object,System.Object,System.String)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=116 bbWeight=0 PerfScore 0.00
+ ;; size=112 bbWeight=0 PerfScore 0.00
G_M564_IG69:
mov x1, x19
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M564_IG70
ldrb w0, [x19, #0x7C]
cbz w0, G_M564_IG71
;; size=48 bbWeight=0 PerfScore 0.00
G_M564_IG70:
- ldr x0, [fp, #0x20] // [V00 this]
+ ldr x0, [fp, #0x28] // [V00 this]
movz x1, #0xD1FFAB1E // code for System.Net.Mail.SmtpClient:Abort():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x19
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M564_IG71
mov x1, x19
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M564_IG71
mov x1, x19
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M564_IG71
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_SmtpSendMailFailure():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x1, x0
mov x0, x20
mov x2, x19
movz x3, #0xD1FFAB1E // code for System.Net.Mail.SmtpException:.ctor(System.String,System.Exception):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x0, x20
bl CORINFO_HELP_THROW
brk_unix #0
;; size=228 bbWeight=0 PerfScore 0.00
G_M564_IG71:
bl CORINFO_HELP_RETHROW
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
RWD00 dd G_M564_IG27 - G_M564_IG02
dd G_M564_IG23 - G_M564_IG02
dd G_M564_IG42 - G_M564_IG02
-; Total bytes of code 4120, prolog size 44, PerfScore 1829.50, instruction count 1030, allocated bytes for code 4120 (MethodHash=328dfdcb) for method System.Net.Mail.SmtpClient:SendAsync(System.Net.Mail.MailMessage,System.Object):this (FullOpts)
+; Total bytes of code 4068, prolog size 40, PerfScore 1827.00, instruction count 1017, allocated bytes for code 4068 (MethodHash=328dfdcb) for method System.Net.Mail.SmtpClient:SendAsync(System.Net.Mail.MailMessage,System.Object):this (FullOpts)
-40 (-3.04 % of base) - System.Number:TryFormatInt128[ubyte](System.Int128,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.Span`1[ubyte],byref):ubyte
; Assembly listing for method System.Number:TryFormatInt128[ubyte](System.Int128,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.Span`1[ubyte],byref):ubyte (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 47 single block inlinees; 19 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.Int128>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
-; V02 arg2 [V02,T39] ( 5, 3.50) ref -> x4 class-hnd single-def <System.IFormatProvider>
+; V02 arg2 [V02,T37] ( 5, 3.50) ref -> x4 class-hnd single-def <System.IFormatProvider>
;* V03 arg3 [V03 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.Span`1[ubyte]>
-; V04 arg4 [V04,T38] ( 6, 4 ) byref -> x19 single-def
+; V04 arg4 [V04,T36] ( 6, 4 ) byref -> x21 single-def
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V08 tmp3 [V08,T54] ( 5, 2.50) ref -> x24 class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+; V08 tmp3 [V08,T49] ( 5, 2.50) ref -> x24 class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
-; V10 tmp5 [V10,T58] ( 2, 2 ) ref -> x2 class-hnd single-def "dup spill" <ubyte[]>
-; V11 tmp6 [V11,T52] ( 6, 3 ) ref -> x2
-; V12 tmp7 [V12,T53] ( 3, 3 ) ref -> x2 class-hnd single-def "dup spill" <ubyte[]>
+; V10 tmp5 [V10,T53] ( 2, 2 ) ref -> x2 class-hnd single-def "dup spill" <ubyte[]>
+; V11 tmp6 [V11,T47] ( 6, 3 ) ref -> x2
+; V12 tmp7 [V12,T48] ( 3, 3 ) ref -> x2 class-hnd single-def "dup spill" <ubyte[]>
;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ubyte[]>
;* V14 tmp9 [V14 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V15 tmp10 [V15 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.UInt128>
-;* V16 tmp11 [V16 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V17 tmp12 [V17 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V18 tmp13 [V18,T61] ( 3, 1.50) ubyte -> x0 "Inline return value spill temp"
-;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V20 tmp15 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V21 tmp16 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V22 tmp17 [V22 ] ( 2, 1 ) byref -> [fp+0x30] must-init pinned "Inline stloc first use temp"
-; V23 tmp18 [V23,T62] ( 3, 1.50) long -> x23 "Inline stloc first use temp"
-;* V24 tmp19 [V24 ] ( 0, 0 ) long -> zero-ref
-; V25 tmp20 [V25,T55] ( 5, 2.50) int -> x24 "Inline return value spill temp"
-;* V26 tmp21 [V26 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inlining Arg" <System.UInt128>
-;* V27 tmp22 [V27 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V28 tmp23 [V28,T56] ( 5, 2.50) int -> x24 "Inline stloc first use temp"
-;* V29 tmp24 [V29 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.UInt128>
-;* V30 tmp25 [V30 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.UInt128>
-;* V31 tmp26 [V31 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
-;* V32 tmp27 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V33 tmp28 [V33 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V34 tmp29 [V34 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V35 tmp30 [V35,T63] ( 3, 1.50) int -> x0 "Inline stloc first use temp"
-;* V36 tmp31 [V36 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
-;* V37 tmp32 [V37 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V38 tmp33 [V38 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
-;* V39 tmp34 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V40 tmp35 [V40 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V15 tmp10 [V15,T56] ( 3, 1.50) ubyte -> x0 "Inline return value spill temp"
+;* V16 tmp11 [V16 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V18 tmp13 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+; V19 tmp14 [V19 ] ( 2, 1 ) byref -> [fp+0x10] must-init pinned "Inline stloc first use temp"
+; V20 tmp15 [V20,T57] ( 3, 1.50) long -> x23 "Inline stloc first use temp"
+;* V21 tmp16 [V21 ] ( 0, 0 ) long -> zero-ref
+; V22 tmp17 [V22,T50] ( 5, 2.50) int -> x24 "Inline return value spill temp"
+;* V23 tmp18 [V23 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inlining Arg" <System.UInt128>
+;* V24 tmp19 [V24 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+; V25 tmp20 [V25,T51] ( 5, 2.50) int -> x24 "Inline stloc first use temp"
+;* V26 tmp21 [V26 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.UInt128>
+;* V27 tmp22 [V27 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.UInt128>
+;* V28 tmp23 [V28 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
+;* V29 tmp24 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V30 tmp25 [V30 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V31 tmp26 [V31 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+; V32 tmp27 [V32,T58] ( 3, 1.50) int -> x0 "Inline stloc first use temp"
+;* V33 tmp28 [V33 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
+;* V34 tmp29 [V34 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V35 tmp30 [V35 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
+;* V36 tmp31 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V37 tmp32 [V37 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V38 tmp33 [V38 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V39 tmp34 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
+;* V40 tmp35 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V41 tmp36 [V41 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V42 tmp37 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
-;* V43 tmp38 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V44 tmp39 [V44 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V45 tmp40 [V45 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V46 tmp41 [V46,T64] ( 3, 1.50) int -> x1 "Inline stloc first use temp"
-;* V47 tmp42 [V47 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
-;* V48 tmp43 [V48 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V49 tmp44 [V49 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
-;* V50 tmp45 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V52 tmp47 [V52 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V53 tmp48 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
-; V54 tmp49 [V54,T57] ( 4, 2 ) int -> x0 "Inline return value spill temp"
-;* V55 tmp50 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V56 tmp51 [V56 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.UInt128>
-; V57 tmp52 [V57,T13] ( 4, 18 ) long -> x23 "Inlining Arg"
-;* V58 tmp53 [V58 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
-;* V59 tmp54 [V59 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] "Inline stloc first use temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
-;* V60 tmp55 [V60 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.UInt128>
-;* V61 tmp56 [V61 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
-;* V62 tmp57 [V62 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
-;* V63 tmp58 [V63 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
-;* V64 tmp59 [V64 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline stloc first use temp" <System.UInt128>
-;* V65 tmp60 [V65 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
-;* V66 tmp61 [V66 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
-;* V67 tmp62 [V67 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
-; V68 tmp63 [V68,T26] ( 2, 8 ) long -> x2 ld-addr-op "Inline ldloca(s) first use temp"
-;* V69 tmp64 [V69 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.UInt128>
-;* V70 tmp65 [V70 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+;* V42 tmp37 [V42 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+; V43 tmp38 [V43,T59] ( 3, 1.50) int -> x1 "Inline stloc first use temp"
+;* V44 tmp39 [V44 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
+;* V45 tmp40 [V45 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V46 tmp41 [V46 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
+;* V47 tmp42 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V48 tmp43 [V48 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V49 tmp44 [V49 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V50 tmp45 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
+; V51 tmp46 [V51,T52] ( 4, 2 ) int -> x0 "Inline return value spill temp"
+;* V52 tmp47 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V53 tmp48 [V53 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.UInt128>
+; V54 tmp49 [V54,T13] ( 4, 18 ) long -> x23 "Inlining Arg"
+;* V55 tmp50 [V55 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
+;* V56 tmp51 [V56 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] "Inline stloc first use temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
+;* V57 tmp52 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.UInt128>
+;* V58 tmp53 [V58 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
+;* V59 tmp54 [V59 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
+;* V60 tmp55 [V60 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
+;* V61 tmp56 [V61 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline stloc first use temp" <System.UInt128>
+;* V62 tmp57 [V62 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
+;* V63 tmp58 [V63 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
+;* V64 tmp59 [V64 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
+; V65 tmp60 [V65,T26] ( 2, 8 ) long -> x2 ld-addr-op "Inline ldloca(s) first use temp"
+;* V66 tmp61 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.UInt128>
+;* V67 tmp62 [V67 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+;* V68 tmp63 [V68 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V69 tmp64 [V69 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V70 tmp65 [V70 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V71 tmp66 [V71 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V72 tmp67 [V72 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V73 tmp68 [V73 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V74 tmp69 [V74 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V75 tmp70 [V75,T27] ( 2, 8 ) long -> x2 "Inline stloc first use temp"
-;* V76 tmp71 [V76 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V77 tmp72 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.UInt128>
-;* V78 tmp73 [V78 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V79 tmp74 [V79,T00] ( 10,592 ) long -> x2 "Inlining Arg"
-; V80 tmp75 [V80,T01] ( 8,496 ) long -> x23 "Inlining Arg"
-; V81 tmp76 [V81,T02] ( 6,392 ) int -> x0 "Inlining Arg"
-;* V82 tmp77 [V82 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-;* V83 tmp78 [V83 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V84 tmp79 [V84 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-; V85 tmp80 [V85,T03] ( 2,256 ) long -> x23 "dup spill"
-; V86 tmp81 [V86,T06] ( 3, 48 ) long -> x3 "Inline stloc first use temp"
-;* V87 tmp82 [V87 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
-;* V88 tmp83 [V88 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V89 tmp84 [V89 ] ( 0, 0 ) long -> zero-ref
-;* V90 tmp85 [V90 ] ( 0, 0 ) long -> zero-ref
-; V91 tmp86 [V91,T08] ( 2, 32 ) ref -> x3
-;* V92 tmp87 [V92 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V93 tmp88 [V93 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V94 tmp89 [V94,T04] ( 3,192 ) long -> x3 "Inline stloc first use temp"
-;* V95 tmp90 [V95 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
-;* V96 tmp91 [V96 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V97 tmp92 [V97 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V98 tmp93 [V98 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
-; V99 tmp94 [V99,T07] ( 9, 37 ) long -> x22 "Inlining Arg"
-; V100 tmp95 [V100,T10] ( 6, 27 ) long -> x4 "Inlining Arg"
-;* V101 tmp96 [V101 ] ( 0, 0 ) long -> zero-ref "dup spill"
-;* V102 tmp97 [V102 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-; V103 tmp98 [V103,T22] ( 3, 12 ) long -> x0 "Inline stloc first use temp"
-;* V104 tmp99 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
-;* V105 tmp100 [V105 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V106 tmp101 [V106 ] ( 0, 0 ) long -> zero-ref
-;* V107 tmp102 [V107 ] ( 0, 0 ) long -> zero-ref
-; V108 tmp103 [V108,T25] ( 2, 8 ) ref -> x19
-;* V109 tmp104 [V109 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V110 tmp105 [V110 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V111 tmp106 [V111 ] ( 0, 0 ) long -> zero-ref
-; V112 tmp107 [V112,T68] ( 2, 1 ) long -> x0
-; V113 tmp108 [V113,T67] ( 2, 1 ) ref -> x1 single-def
-;* V114 tmp109 [V114 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V115 tmp110 [V115 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V116 tmp111 [V116 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V117 tmp112 [V117 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.UInt128>
-; V118 tmp113 [V118,T14] ( 4, 18 ) long -> x19 "Inlining Arg"
-; V119 tmp114 [V119,T15] ( 4, 18 ) int -> x23 "Inlining Arg"
-;* V120 tmp115 [V120 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
-;* V121 tmp116 [V121 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] "Inline stloc first use temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
-;* V122 tmp117 [V122 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.UInt128>
-;* V123 tmp118 [V123 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
-;* V124 tmp119 [V124 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
-;* V125 tmp120 [V125 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
-;* V126 tmp121 [V126 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "Inline stloc first use temp" <System.UInt128>
-;* V127 tmp122 [V127 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
-; V128 tmp123 [V128 ] ( 5, 40 ) struct (32) [fp+0x10] do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
-;* V129 tmp124 [V129 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "spilled call-like call argument" <System.UInt128>
-; V130 tmp125 [V130,T28] ( 2, 8 ) long -> x2 ld-addr-op "Inline ldloca(s) first use temp"
-;* V131 tmp126 [V131 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.UInt128>
-;* V132 tmp127 [V132 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
-;* V133 tmp128 [V133 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V134 tmp129 [V134 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V135 tmp130 [V135 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V136 tmp131 [V136,T18] ( 2, 16 ) long -> x3 "Inlining Arg"
-; V137 tmp132 [V137,T42] ( 4, 2.50) long -> x22 single-def "field V00._lower (fldOffset=0x0)" P-INDEP
-; V138 tmp133 [V138,T41] ( 5, 3 ) long -> x21 single-def "field V00._upper (fldOffset=0x8)" P-INDEP
-; V139 tmp134 [V139,T51] ( 2, 1.50) byref -> x2 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V140 tmp135 [V140,T44] ( 3, 2.50) int -> x3 single-def "field V01._length (fldOffset=0x8)" P-INDEP
-; V141 tmp136 [V141,T40] ( 5, 3 ) byref -> x20 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
-; V142 tmp137 [V142,T43] ( 4, 2.50) int -> x23 single-def "field V03._length (fldOffset=0x8)" P-INDEP
-;* V143 tmp138 [V143 ] ( 0, 0 ) long -> zero-ref "field V06._lower (fldOffset=0x0)" P-INDEP
-;* V144 tmp139 [V144 ] ( 0, 0 ) long -> zero-ref "field V06._upper (fldOffset=0x8)" P-INDEP
-;* V145 tmp140 [V145 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V146 tmp141 [V146 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
-;* V147 tmp142 [V147 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
-;* V148 tmp143 [V148 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
-; V149 tmp144 [V149,T60] ( 3, 1.50) byref -> x3 "field V14._reference (fldOffset=0x0)" P-INDEP
-; V150 tmp145 [V150,T65] ( 3, 1.50) int -> x4 "field V14._length (fldOffset=0x8)" P-INDEP
-; V151 tmp146 [V151,T49] ( 7, 3.50) long -> x22 "field V15._lower (fldOffset=0x0)" P-INDEP
-; V152 tmp147 [V152,T50] ( 7, 3.50) long -> x21 "field V15._upper (fldOffset=0x8)" P-INDEP
-;* V153 tmp148 [V153 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
-;* V154 tmp149 [V154 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
-; V155 tmp150 [V155,T66] ( 3, 1.50) long -> x0 "field V26._lower (fldOffset=0x0)" P-INDEP
-; V156 tmp151 [V156,T69] ( 1, 0.50) long -> x1 "field V26._upper (fldOffset=0x8)" P-INDEP
-;* V157 tmp152 [V157,T70] ( 0, 0 ) long -> zero-ref "field V29._lower (fldOffset=0x0)" P-INDEP
-;* V158 tmp153 [V158,T71] ( 0, 0 ) long -> zero-ref "field V29._upper (fldOffset=0x8)" P-INDEP
-;* V159 tmp154 [V159 ] ( 0, 0 ) long -> zero-ref "field V30._lower (fldOffset=0x0)" P-INDEP
-;* V160 tmp155 [V160 ] ( 0, 0 ) long -> zero-ref "field V30._upper (fldOffset=0x8)" P-INDEP
-;* V161 tmp156 [V161 ] ( 0, 0 ) long -> zero-ref "field V31._lower (fldOffset=0x0)" P-DEP
-;* V162 tmp157 [V162 ] ( 0, 0 ) long -> zero-ref "field V31._upper (fldOffset=0x8)" P-DEP
-;* V163 tmp158 [V163 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
-;* V164 tmp159 [V164 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
-;* V165 tmp160 [V165 ] ( 0, 0 ) byref -> zero-ref single-def "field V36._reference (fldOffset=0x0)" P-INDEP
-;* V166 tmp161 [V166 ] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
-;* V167 tmp162 [V167 ] ( 0, 0 ) byref -> zero-ref single-def "field V39._reference (fldOffset=0x0)" P-INDEP
-;* V168 tmp163 [V168 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
-;* V169 tmp164 [V169 ] ( 0, 0 ) byref -> zero-ref single-def "field V42._reference (fldOffset=0x0)" P-INDEP
-;* V170 tmp165 [V170 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP
-;* V171 tmp166 [V171 ] ( 0, 0 ) byref -> zero-ref single-def "field V43._reference (fldOffset=0x0)" P-INDEP
-;* V172 tmp167 [V172 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
-;* V173 tmp168 [V173 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
-;* V174 tmp169 [V174 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
-;* V175 tmp170 [V175 ] ( 0, 0 ) byref -> zero-ref single-def "field V50._reference (fldOffset=0x0)" P-INDEP
-;* V176 tmp171 [V176 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
-;* V177 tmp172 [V177 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V178 tmp173 [V178 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-;* V179 tmp174 [V179 ] ( 0, 0 ) byref -> zero-ref single-def "field V55._reference (fldOffset=0x0)" P-INDEP
-;* V180 tmp175 [V180 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
-; V181 tmp176 [V181,T19] ( 5, 13 ) long -> x22 "field V56._lower (fldOffset=0x0)" P-INDEP
-; V182 tmp177 [V182,T20] ( 5, 13 ) long -> x1 "field V56._upper (fldOffset=0x8)" P-INDEP
-;* V183 tmp178 [V183,T45] ( 0, 0 ) long -> zero-ref "field V58._lower (fldOffset=0x0)" P-INDEP
-;* V184 tmp179 [V184,T46] ( 0, 0 ) long -> zero-ref "field V58._upper (fldOffset=0x8)" P-INDEP
-;* V185 tmp180 [V185 ] ( 0, 0 ) long -> zero-ref "field V60._lower (fldOffset=0x0)" P-INDEP
-;* V186 tmp181 [V186 ] ( 0, 0 ) long -> zero-ref "field V60._upper (fldOffset=0x8)" P-INDEP
-;* V187 tmp182 [V187 ] ( 0, 0 ) long -> zero-ref "field V61._lower (fldOffset=0x0)" P-INDEP
-;* V188 tmp183 [V188 ] ( 0, 0 ) long -> zero-ref "field V61._upper (fldOffset=0x8)" P-INDEP
-;* V189 tmp184 [V189 ] ( 0, 0 ) long -> zero-ref "field V62._lower (fldOffset=0x0)" P-INDEP
-;* V190 tmp185 [V190 ] ( 0, 0 ) long -> zero-ref "field V62._upper (fldOffset=0x8)" P-INDEP
-;* V191 tmp186 [V191 ] ( 0, 0 ) long -> zero-ref "field V63._lower (fldOffset=0x0)" P-DEP
-;* V192 tmp187 [V192 ] ( 0, 0 ) long -> zero-ref "field V63._upper (fldOffset=0x8)" P-DEP
-; V193 tmp188 [V193,T23] ( 3, 12 ) long -> x0 "field V64._lower (fldOffset=0x0)" P-INDEP
-; V194 tmp189 [V194,T29] ( 2, 8 ) long -> x1 "field V64._upper (fldOffset=0x8)" P-INDEP
-;* V195 tmp190 [V195 ] ( 0, 0 ) long -> zero-ref "field V65._lower (fldOffset=0x0)" P-INDEP
-;* V196 tmp191 [V196 ] ( 0, 0 ) long -> zero-ref "field V65._upper (fldOffset=0x8)" P-INDEP
-;* V197 tmp192 [V197 ] ( 0, 0 ) long -> zero-ref "field V67._lower (fldOffset=0x0)" P-INDEP
-;* V198 tmp193 [V198 ] ( 0, 0 ) long -> zero-ref "field V67._upper (fldOffset=0x8)" P-INDEP
-;* V199 tmp194 [V199 ] ( 0, 0 ) long -> zero-ref "field V69._lower (fldOffset=0x0)" P-INDEP
-;* V200 tmp195 [V200 ] ( 0, 0 ) long -> zero-ref "field V69._upper (fldOffset=0x8)" P-INDEP
-;* V201 tmp196 [V201 ] ( 0, 0 ) long -> zero-ref "field V77._lower (fldOffset=0x0)" P-INDEP
-;* V202 tmp197 [V202 ] ( 0, 0 ) long -> zero-ref "field V77._upper (fldOffset=0x8)" P-INDEP
-;* V203 tmp198 [V203 ] ( 0, 0 ) long -> zero-ref "field V82.Item1 (fldOffset=0x0)" P-INDEP
-;* V204 tmp199 [V204 ] ( 0, 0 ) long -> zero-ref "field V82.Item2 (fldOffset=0x8)" P-INDEP
-;* V205 tmp200 [V205 ] ( 0, 0 ) long -> zero-ref "field V84.Item1 (fldOffset=0x0)" P-INDEP
-;* V206 tmp201 [V206 ] ( 0, 0 ) long -> zero-ref "field V84.Item2 (fldOffset=0x8)" P-INDEP
-;* V207 tmp202 [V207 ] ( 0, 0 ) long -> zero-ref "field V87.Item1 (fldOffset=0x0)" P-INDEP
-; V208 tmp203 [V208,T09] ( 2, 32 ) long -> x4 "field V87.Item2 (fldOffset=0x8)" P-INDEP
-;* V209 tmp204 [V209 ] ( 0, 0 ) long -> zero-ref "field V95.Item1 (fldOffset=0x0)" P-INDEP
-; V210 tmp205 [V210,T05] ( 2,128 ) long -> x4 "field V95.Item2 (fldOffset=0x8)" P-INDEP
-;* V211 tmp206 [V211 ] ( 0, 0 ) long -> zero-ref "field V102.Item1 (fldOffset=0x0)" P-INDEP
-;* V212 tmp207 [V212 ] ( 0, 0 ) long -> zero-ref "field V102.Item2 (fldOffset=0x8)" P-INDEP
-;* V213 tmp208 [V213 ] ( 0, 0 ) long -> zero-ref "field V104.Item1 (fldOffset=0x0)" P-INDEP
-; V214 tmp209 [V214,T30] ( 2, 8 ) long -> x1 "field V104.Item2 (fldOffset=0x8)" P-INDEP
-; V215 tmp210 [V215,T21] ( 5, 13 ) long -> x22 "field V117._lower (fldOffset=0x0)" P-INDEP
-; V216 tmp211 [V216,T16] ( 6, 17 ) long -> x21 "field V117._upper (fldOffset=0x8)" P-INDEP
-;* V217 tmp212 [V217,T47] ( 0, 0 ) long -> zero-ref "field V120._lower (fldOffset=0x0)" P-INDEP
-;* V218 tmp213 [V218,T48] ( 0, 0 ) long -> zero-ref "field V120._upper (fldOffset=0x8)" P-INDEP
-;* V219 tmp214 [V219 ] ( 0, 0 ) long -> zero-ref "field V122._lower (fldOffset=0x0)" P-INDEP
-;* V220 tmp215 [V220 ] ( 0, 0 ) long -> zero-ref "field V122._upper (fldOffset=0x8)" P-INDEP
-;* V221 tmp216 [V221 ] ( 0, 0 ) long -> zero-ref "field V123._lower (fldOffset=0x0)" P-INDEP
-;* V222 tmp217 [V222 ] ( 0, 0 ) long -> zero-ref "field V123._upper (fldOffset=0x8)" P-INDEP
-;* V223 tmp218 [V223 ] ( 0, 0 ) long -> zero-ref "field V124._lower (fldOffset=0x0)" P-INDEP
-;* V224 tmp219 [V224 ] ( 0, 0 ) long -> zero-ref "field V124._upper (fldOffset=0x8)" P-INDEP
-;* V225 tmp220 [V225 ] ( 0, 0 ) long -> zero-ref "field V125._lower (fldOffset=0x0)" P-DEP
-;* V226 tmp221 [V226 ] ( 0, 0 ) long -> zero-ref "field V125._upper (fldOffset=0x8)" P-DEP
-; V227 tmp222 [V227,T17] ( 4, 16 ) long -> x24 "field V126._lower (fldOffset=0x0)" P-INDEP
-; V228 tmp223 [V228,T24] ( 3, 12 ) long -> x25 "field V126._upper (fldOffset=0x8)" P-INDEP
-;* V229 tmp224 [V229 ] ( 0, 0 ) long -> zero-ref "field V127._lower (fldOffset=0x0)" P-INDEP
-;* V230 tmp225 [V230 ] ( 0, 0 ) long -> zero-ref "field V127._upper (fldOffset=0x8)" P-INDEP
-; V231 tmp226 [V231,T31] ( 2, 8 ) long -> x3 "field V129._lower (fldOffset=0x0)" P-INDEP
-; V232 tmp227 [V232,T32] ( 2, 8 ) long -> x4 "field V129._upper (fldOffset=0x8)" P-INDEP
-; V233 tmp228 [V233,T33] ( 2, 8 ) long -> x2 "field V131._lower (fldOffset=0x0)" P-INDEP
-; V234 tmp229 [V234,T34] ( 2, 8 ) long -> x3 "field V131._upper (fldOffset=0x8)" P-INDEP
-;* V235 tmp230 [V235 ] ( 0, 0 ) long -> zero-ref "V59.[000..008)"
-;* V236 tmp231 [V236 ] ( 0, 0 ) long -> zero-ref "V59.[008..016)"
-;* V237 tmp232 [V237 ] ( 0, 0 ) long -> zero-ref "V59.[016..024)"
-;* V238 tmp233 [V238 ] ( 0, 0 ) long -> zero-ref "V59.[024..032)"
-;* V239 tmp234 [V239 ] ( 0, 0 ) long -> zero-ref "V66.[000..008)"
-;* V240 tmp235 [V240 ] ( 0, 0 ) long -> zero-ref "V66.[008..016)"
-;* V241 tmp236 [V241 ] ( 0, 0 ) long -> zero-ref "V66.[016..024)"
-;* V242 tmp237 [V242 ] ( 0, 0 ) long -> zero-ref "V66.[024..032)"
-; V243 tmp238 [V243,T35] ( 2, 8 ) long -> x22 "V121.[000..008)"
-; V244 tmp239 [V244,T36] ( 2, 8 ) long -> x21 "V121.[008..016)"
-; V245 tmp240 [V245,T37] ( 2, 8 ) long -> x1 "V121.[016..024)"
-;* V246 tmp241 [V246 ] ( 0, 0 ) long -> zero-ref "V121.[024..032)"
-; V247 tmp242 [V247,T59] ( 2, 2 ) long -> x20 "Cast away GC"
-; V248 cse0 [V248,T11] ( 6, 25.25) ref -> x19 hoist multi-def "CSE #06: moderate"
-; V249 cse1 [V249,T12] ( 6, 16.50) long -> x20 hoist multi-def "CSE #05: moderate"
+; V72 tmp67 [V72,T27] ( 2, 8 ) long -> x2 "Inline stloc first use temp"
+;* V73 tmp68 [V73 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V74 tmp69 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.UInt128>
+;* V75 tmp70 [V75 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V76 tmp71 [V76,T00] ( 10,592 ) long -> x2 "Inlining Arg"
+; V77 tmp72 [V77,T01] ( 8,496 ) long -> x23 "Inlining Arg"
+; V78 tmp73 [V78,T02] ( 6,392 ) int -> x0 "Inlining Arg"
+;* V79 tmp74 [V79 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
+;* V80 tmp75 [V80 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V81 tmp76 [V81 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
+; V82 tmp77 [V82,T03] ( 2,256 ) long -> x23 "dup spill"
+; V83 tmp78 [V83,T06] ( 3, 48 ) long -> x3 "Inline stloc first use temp"
+;* V84 tmp79 [V84 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
+;* V85 tmp80 [V85 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V86 tmp81 [V86 ] ( 0, 0 ) long -> zero-ref
+;* V87 tmp82 [V87 ] ( 0, 0 ) long -> zero-ref
+; V88 tmp83 [V88,T08] ( 2, 32 ) ref -> x3
+;* V89 tmp84 [V89 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V90 tmp85 [V90 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V91 tmp86 [V91,T04] ( 3,192 ) long -> x3 "Inline stloc first use temp"
+;* V92 tmp87 [V92 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
+;* V93 tmp88 [V93 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V94 tmp89 [V94 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V95 tmp90 [V95 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+; V96 tmp91 [V96,T07] ( 9, 37 ) long -> x20 "Inlining Arg"
+; V97 tmp92 [V97,T10] ( 6, 27 ) long -> x4 "Inlining Arg"
+;* V98 tmp93 [V98 ] ( 0, 0 ) long -> zero-ref "dup spill"
+;* V99 tmp94 [V99 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
+; V100 tmp95 [V100,T22] ( 3, 12 ) long -> x0 "Inline stloc first use temp"
+;* V101 tmp96 [V101 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
+;* V102 tmp97 [V102 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V103 tmp98 [V103 ] ( 0, 0 ) long -> zero-ref
+;* V104 tmp99 [V104 ] ( 0, 0 ) long -> zero-ref
+; V105 tmp100 [V105,T25] ( 2, 8 ) ref -> x21
+;* V106 tmp101 [V106 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V107 tmp102 [V107 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V108 tmp103 [V108 ] ( 0, 0 ) long -> zero-ref
+; V109 tmp104 [V109,T63] ( 2, 1 ) long -> x0
+; V110 tmp105 [V110,T62] ( 2, 1 ) ref -> x1 single-def
+;* V111 tmp106 [V111 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V112 tmp107 [V112 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V113 tmp108 [V113 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V114 tmp109 [V114 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.UInt128>
+; V115 tmp110 [V115,T14] ( 4, 18 ) long -> x21 "Inlining Arg"
+; V116 tmp111 [V116,T15] ( 4, 18 ) int -> x23 "Inlining Arg"
+;* V117 tmp112 [V117 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
+;* V118 tmp113 [V118 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] "Inline stloc first use temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
+;* V119 tmp114 [V119 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.UInt128>
+;* V120 tmp115 [V120 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
+;* V121 tmp116 [V121 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.UInt128>
+;* V122 tmp117 [V122 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
+;* V123 tmp118 [V123 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline stloc first use temp" <System.UInt128>
+;* V124 tmp119 [V124 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.UInt128>
+;* V125 tmp120 [V125 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.UInt128,System.UInt128]>
+;* V126 tmp121 [V126 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.UInt128>
+; V127 tmp122 [V127,T28] ( 2, 8 ) long -> x2 ld-addr-op "Inline ldloca(s) first use temp"
+;* V128 tmp123 [V128 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.UInt128>
+;* V129 tmp124 [V129 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+;* V130 tmp125 [V130 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V131 tmp126 [V131 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V132 tmp127 [V132 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V133 tmp128 [V133,T18] ( 2, 16 ) long -> x3 "Inlining Arg"
+; V134 tmp129 [V134,T35] ( 9, 5 ) long -> x20 single-def "field V00._lower (fldOffset=0x0)" P-INDEP
+; V135 tmp130 [V135,T34] ( 10, 5.50) long -> x19 single-def "field V00._upper (fldOffset=0x8)" P-INDEP
+; V136 tmp131 [V136,T46] ( 2, 1.50) byref -> x2 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V137 tmp132 [V137,T40] ( 3, 2.50) int -> x3 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V138 tmp133 [V138,T38] ( 5, 3 ) byref -> x22 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+; V139 tmp134 [V139,T39] ( 4, 2.50) int -> x23 single-def "field V03._length (fldOffset=0x8)" P-INDEP
+;* V140 tmp135 [V140 ] ( 0, 0 ) long -> zero-ref "field V06._lower (fldOffset=0x0)" P-INDEP
+;* V141 tmp136 [V141 ] ( 0, 0 ) long -> zero-ref "field V06._upper (fldOffset=0x8)" P-INDEP
+;* V142 tmp137 [V142 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V143 tmp138 [V143 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
+;* V144 tmp139 [V144 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
+;* V145 tmp140 [V145 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
+; V146 tmp141 [V146,T55] ( 3, 1.50) byref -> x3 "field V14._reference (fldOffset=0x0)" P-INDEP
+; V147 tmp142 [V147,T60] ( 3, 1.50) int -> x4 "field V14._length (fldOffset=0x8)" P-INDEP
+;* V148 tmp143 [V148 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
+;* V149 tmp144 [V149 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
+; V150 tmp145 [V150,T61] ( 3, 1.50) long -> x0 "field V23._lower (fldOffset=0x0)" P-INDEP
+; V151 tmp146 [V151,T64] ( 1, 0.50) long -> x1 "field V23._upper (fldOffset=0x8)" P-INDEP
+;* V152 tmp147 [V152,T65] ( 0, 0 ) long -> zero-ref "field V26._lower (fldOffset=0x0)" P-INDEP
+;* V153 tmp148 [V153,T66] ( 0, 0 ) long -> zero-ref "field V26._upper (fldOffset=0x8)" P-INDEP
+;* V154 tmp149 [V154 ] ( 0, 0 ) long -> zero-ref "field V27._lower (fldOffset=0x0)" P-INDEP
+;* V155 tmp150 [V155 ] ( 0, 0 ) long -> zero-ref "field V27._upper (fldOffset=0x8)" P-INDEP
+;* V156 tmp151 [V156 ] ( 0, 0 ) long -> zero-ref "field V28._lower (fldOffset=0x0)" P-DEP
+;* V157 tmp152 [V157 ] ( 0, 0 ) long -> zero-ref "field V28._upper (fldOffset=0x8)" P-DEP
+;* V158 tmp153 [V158 ] ( 0, 0 ) byref -> zero-ref single-def "field V29._reference (fldOffset=0x0)" P-INDEP
+;* V159 tmp154 [V159 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP
+;* V160 tmp155 [V160 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
+;* V161 tmp156 [V161 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
+;* V162 tmp157 [V162 ] ( 0, 0 ) byref -> zero-ref single-def "field V36._reference (fldOffset=0x0)" P-INDEP
+;* V163 tmp158 [V163 ] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
+;* V164 tmp159 [V164 ] ( 0, 0 ) byref -> zero-ref single-def "field V39._reference (fldOffset=0x0)" P-INDEP
+;* V165 tmp160 [V165 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
+;* V166 tmp161 [V166 ] ( 0, 0 ) byref -> zero-ref single-def "field V40._reference (fldOffset=0x0)" P-INDEP
+;* V167 tmp162 [V167 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
+;* V168 tmp163 [V168 ] ( 0, 0 ) byref -> zero-ref single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+;* V169 tmp164 [V169 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP
+;* V170 tmp165 [V170 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
+;* V171 tmp166 [V171 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
+;* V172 tmp167 [V172 ] ( 0, 0 ) byref -> zero-ref single-def "field V50._reference (fldOffset=0x0)" P-INDEP
+;* V173 tmp168 [V173 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
+;* V174 tmp169 [V174 ] ( 0, 0 ) byref -> zero-ref single-def "field V52._reference (fldOffset=0x0)" P-INDEP
+;* V175 tmp170 [V175 ] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x8)" P-INDEP
+; V176 tmp171 [V176,T19] ( 5, 13 ) long -> x20 "field V53._lower (fldOffset=0x0)" P-INDEP
+; V177 tmp172 [V177,T20] ( 5, 13 ) long -> x1 "field V53._upper (fldOffset=0x8)" P-INDEP
+;* V178 tmp173 [V178,T41] ( 0, 0 ) long -> zero-ref "field V55._lower (fldOffset=0x0)" P-INDEP
+;* V179 tmp174 [V179,T42] ( 0, 0 ) long -> zero-ref "field V55._upper (fldOffset=0x8)" P-INDEP
+;* V180 tmp175 [V180 ] ( 0, 0 ) long -> zero-ref "field V57._lower (fldOffset=0x0)" P-INDEP
+;* V181 tmp176 [V181 ] ( 0, 0 ) long -> zero-ref "field V57._upper (fldOffset=0x8)" P-INDEP
+;* V182 tmp177 [V182 ] ( 0, 0 ) long -> zero-ref "field V58._lower (fldOffset=0x0)" P-INDEP
+;* V183 tmp178 [V183 ] ( 0, 0 ) long -> zero-ref "field V58._upper (fldOffset=0x8)" P-INDEP
+;* V184 tmp179 [V184 ] ( 0, 0 ) long -> zero-ref "field V59._lower (fldOffset=0x0)" P-INDEP
+;* V185 tmp180 [V185 ] ( 0, 0 ) long -> zero-ref "field V59._upper (fldOffset=0x8)" P-INDEP
+;* V186 tmp181 [V186 ] ( 0, 0 ) long -> zero-ref "field V60._lower (fldOffset=0x0)" P-DEP
+;* V187 tmp182 [V187 ] ( 0, 0 ) long -> zero-ref "field V60._upper (fldOffset=0x8)" P-DEP
+; V188 tmp183 [V188,T23] ( 3, 12 ) long -> x0 "field V61._lower (fldOffset=0x0)" P-INDEP
+; V189 tmp184 [V189,T29] ( 2, 8 ) long -> x1 "field V61._upper (fldOffset=0x8)" P-INDEP
+;* V190 tmp185 [V190 ] ( 0, 0 ) long -> zero-ref "field V62._lower (fldOffset=0x0)" P-INDEP
+;* V191 tmp186 [V191 ] ( 0, 0 ) long -> zero-ref "field V62._upper (fldOffset=0x8)" P-INDEP
+;* V192 tmp187 [V192 ] ( 0, 0 ) long -> zero-ref "field V64._lower (fldOffset=0x0)" P-INDEP
+;* V193 tmp188 [V193 ] ( 0, 0 ) long -> zero-ref "field V64._upper (fldOffset=0x8)" P-INDEP
+;* V194 tmp189 [V194 ] ( 0, 0 ) long -> zero-ref "field V66._lower (fldOffset=0x0)" P-INDEP
+;* V195 tmp190 [V195 ] ( 0, 0 ) long -> zero-ref "field V66._upper (fldOffset=0x8)" P-INDEP
+;* V196 tmp191 [V196 ] ( 0, 0 ) long -> zero-ref "field V74._lower (fldOffset=0x0)" P-INDEP
+;* V197 tmp192 [V197 ] ( 0, 0 ) long -> zero-ref "field V74._upper (fldOffset=0x8)" P-INDEP
+;* V198 tmp193 [V198 ] ( 0, 0 ) long -> zero-ref "field V79.Item1 (fldOffset=0x0)" P-INDEP
+;* V199 tmp194 [V199 ] ( 0, 0 ) long -> zero-ref "field V79.Item2 (fldOffset=0x8)" P-INDEP
+;* V200 tmp195 [V200 ] ( 0, 0 ) long -> zero-ref "field V81.Item1 (fldOffset=0x0)" P-INDEP
+;* V201 tmp196 [V201 ] ( 0, 0 ) long -> zero-ref "field V81.Item2 (fldOffset=0x8)" P-INDEP
+;* V202 tmp197 [V202 ] ( 0, 0 ) long -> zero-ref "field V84.Item1 (fldOffset=0x0)" P-INDEP
+; V203 tmp198 [V203,T09] ( 2, 32 ) long -> x4 "field V84.Item2 (fldOffset=0x8)" P-INDEP
+;* V204 tmp199 [V204 ] ( 0, 0 ) long -> zero-ref "field V92.Item1 (fldOffset=0x0)" P-INDEP
+; V205 tmp200 [V205,T05] ( 2,128 ) long -> x4 "field V92.Item2 (fldOffset=0x8)" P-INDEP
+;* V206 tmp201 [V206 ] ( 0, 0 ) long -> zero-ref "field V99.Item1 (fldOffset=0x0)" P-INDEP
+;* V207 tmp202 [V207 ] ( 0, 0 ) long -> zero-ref "field V99.Item2 (fldOffset=0x8)" P-INDEP
+;* V208 tmp203 [V208 ] ( 0, 0 ) long -> zero-ref "field V101.Item1 (fldOffset=0x0)" P-INDEP
+; V209 tmp204 [V209,T30] ( 2, 8 ) long -> x1 "field V101.Item2 (fldOffset=0x8)" P-INDEP
+; V210 tmp205 [V210,T21] ( 5, 13 ) long -> x20 "field V114._lower (fldOffset=0x0)" P-INDEP
+; V211 tmp206 [V211,T16] ( 6, 17 ) long -> x19 "field V114._upper (fldOffset=0x8)" P-INDEP
+;* V212 tmp207 [V212,T43] ( 0, 0 ) long -> zero-ref "field V117._lower (fldOffset=0x0)" P-INDEP
+;* V213 tmp208 [V213,T44] ( 0, 0 ) long -> zero-ref "field V117._upper (fldOffset=0x8)" P-INDEP
+;* V214 tmp209 [V214 ] ( 0, 0 ) long -> zero-ref "field V119._lower (fldOffset=0x0)" P-INDEP
+;* V215 tmp210 [V215 ] ( 0, 0 ) long -> zero-ref "field V119._upper (fldOffset=0x8)" P-INDEP
+;* V216 tmp211 [V216 ] ( 0, 0 ) long -> zero-ref "field V120._lower (fldOffset=0x0)" P-INDEP
+;* V217 tmp212 [V217 ] ( 0, 0 ) long -> zero-ref "field V120._upper (fldOffset=0x8)" P-INDEP
+;* V218 tmp213 [V218 ] ( 0, 0 ) long -> zero-ref "field V121._lower (fldOffset=0x0)" P-INDEP
+;* V219 tmp214 [V219 ] ( 0, 0 ) long -> zero-ref "field V121._upper (fldOffset=0x8)" P-INDEP
+;* V220 tmp215 [V220 ] ( 0, 0 ) long -> zero-ref "field V122._lower (fldOffset=0x0)" P-DEP
+;* V221 tmp216 [V221 ] ( 0, 0 ) long -> zero-ref "field V122._upper (fldOffset=0x8)" P-DEP
+; V222 tmp217 [V222,T17] ( 4, 16 ) long -> x24 "field V123._lower (fldOffset=0x0)" P-INDEP
+; V223 tmp218 [V223,T24] ( 3, 12 ) long -> x25 "field V123._upper (fldOffset=0x8)" P-INDEP
+;* V224 tmp219 [V224 ] ( 0, 0 ) long -> zero-ref "field V124._lower (fldOffset=0x0)" P-INDEP
+;* V225 tmp220 [V225 ] ( 0, 0 ) long -> zero-ref "field V124._upper (fldOffset=0x8)" P-INDEP
+; V226 tmp221 [V226,T31] ( 2, 8 ) long -> x2 "field V126._lower (fldOffset=0x0)" P-INDEP
+; V227 tmp222 [V227,T45] ( 1, 4 ) long -> x1 "field V126._upper (fldOffset=0x8)" P-INDEP
+; V228 tmp223 [V228,T32] ( 2, 8 ) long -> x2 "field V128._lower (fldOffset=0x0)" P-INDEP
+; V229 tmp224 [V229,T33] ( 2, 8 ) long -> x3 "field V128._upper (fldOffset=0x8)" P-INDEP
+;* V230 tmp225 [V230 ] ( 0, 0 ) long -> zero-ref "V56.[000..008)"
+;* V231 tmp226 [V231 ] ( 0, 0 ) long -> zero-ref "V56.[008..016)"
+;* V232 tmp227 [V232 ] ( 0, 0 ) long -> zero-ref "V56.[016..024)"
+;* V233 tmp228 [V233 ] ( 0, 0 ) long -> zero-ref "V56.[024..032)"
+;* V234 tmp229 [V234 ] ( 0, 0 ) long -> zero-ref "V63.[000..008)"
+;* V235 tmp230 [V235 ] ( 0, 0 ) long -> zero-ref "V63.[008..016)"
+;* V236 tmp231 [V236 ] ( 0, 0 ) long -> zero-ref "V63.[016..024)"
+;* V237 tmp232 [V237 ] ( 0, 0 ) long -> zero-ref "V63.[024..032)"
+;* V238 tmp233 [V238 ] ( 0, 0 ) long -> zero-ref "V118.[000..008)"
+;* V239 tmp234 [V239 ] ( 0, 0 ) long -> zero-ref "V118.[008..016)"
+;* V240 tmp235 [V240 ] ( 0, 0 ) long -> zero-ref "V118.[016..024)"
+;* V241 tmp236 [V241 ] ( 0, 0 ) long -> zero-ref "V118.[024..032)"
+;* V242 tmp237 [V242 ] ( 0, 0 ) long -> zero-ref "V125.[000..008)"
+;* V243 tmp238 [V243 ] ( 0, 0 ) long -> zero-ref "V125.[008..016)"
+;* V244 tmp239 [V244 ] ( 0, 0 ) long -> zero-ref "V125.[016..024)"
+;* V245 tmp240 [V245 ] ( 0, 0 ) long -> zero-ref "V125.[024..032)"
+; V246 tmp241 [V246,T54] ( 2, 2 ) long -> x22 "Cast away GC"
+; V247 cse0 [V247,T11] ( 6, 25.25) ref -> x21 hoist multi-def "CSE #06: moderate"
+; V248 cse1 [V248,T12] ( 6, 16.50) long -> x22 hoist multi-def "CSE #05: moderate"
;
-; Lcl frame size = 40
+; Lcl frame size = 8
G_M27574_IG01:
- stp fp, lr, [sp, #-0x70]!
- stp x19, x20, [sp, #0x38]
- stp x21, x22, [sp, #0x48]
- stp x23, x24, [sp, #0x58]
- str x25, [sp, #0x68]
+ stp fp, lr, [sp, #-0x50]!
+ stp x19, x20, [sp, #0x18]
+ stp x21, x22, [sp, #0x28]
+ stp x23, x24, [sp, #0x38]
+ str x25, [sp, #0x48]
mov fp, sp
- str xzr, [fp, #0x30] // [V22 tmp17]
- mov x22, x0
- mov x21, x1
- mov x20, x5
+ str xzr, [fp, #0x10] // [V19 tmp14]
+ mov x20, x0
+ mov x19, x1
+ mov x22, x5
mov w23, w6
- mov x19, x7
+ mov x21, x7
;; size=48 bbWeight=1 PerfScore 9.00
G_M27574_IG02:
cbnz w3, G_M27574_IG04
;; size=4 bbWeight=1 PerfScore 1.00
G_M27574_IG03:
- tbz x21, #63, G_M27574_IG06
+ tbz x19, #63, G_M27574_IG06
cbz x4, G_M27574_IG29
mov x0, x4
movz x1, #0xD1FFAB1E // code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x24, x0
b G_M27574_IG30
align [0 bytes for IG12]
align [0 bytes]
align [0 bytes]
align [0 bytes]
;; size=40 bbWeight=0.50 PerfScore 4.75
G_M27574_IG04:
- mov x0, x22
- mov x1, x21
- mov x5, x20
+ mov x0, x20
+ mov x1, x19
+ mov x5, x22
mov w6, w23
- mov x7, x19
+ mov x7, x21
movz x8, #0xD1FFAB1E // code for System.Number:<TryFormatInt128>g__TryFormatInt128Slow|27_0[ubyte](System.Int128,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.Span`1[ubyte],byref):ubyte
movk x8, #0xD1FFAB1E LSL #16
movk x8, #0xD1FFAB1E LSL #32
ldr x8, [x8]
blr x8
;; size=40 bbWeight=0.50 PerfScore 4.00
G_M27574_IG05:
- ldr x25, [sp, #0x68]
- ldp x23, x24, [sp, #0x58]
- ldp x21, x22, [sp, #0x48]
- ldp x19, x20, [sp, #0x38]
- ldp fp, lr, [sp], #0x70
+ ldr x25, [sp, #0x48]
+ ldp x23, x24, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
+ ldp fp, lr, [sp], #0x50
ret lr
;; size=24 bbWeight=0.50 PerfScore 3.50
G_M27574_IG06:
- cbnz x21, G_M27574_IG07
- orr x0, x22, #1
+ cbnz x19, G_M27574_IG07
+ orr x0, x20, #1
clz x0, x0
eor w0, w0, #63
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldrb w0, [x1, w0, SXTW #2]
ubfiz x1, x0, #3, #32
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x1, x2]
- cmp x22, x1
+ cmp x20, x1
cset x1, lo
sub w24, w0, w1
b G_M27574_IG09
;; size=68 bbWeight=0.50 PerfScore 7.50
G_M27574_IG07:
mov w24, #20
- cmp x21, #5
+ cmp x19, #5
bls G_M27574_IG08
- mov x0, x22
- mov x1, x21
+ mov x0, x20
+ mov x1, x19
movz x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movk x2, #0xD1FFAB1E LSL #48
mov x3, #5
movz x4, #0xD1FFAB1E // code for System.UInt128:op_Division(System.UInt128,System.UInt128):System.UInt128
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
orr x1, x0, #1
clz x1, x1
eor w1, w1, #63
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldrb w1, [x2, w1, SXTW #2]
ubfiz x2, x1, #3, #32
movz x3, #0xD1FFAB1E
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x2, [x2, x3]
cmp x0, x2
cset x0, lo
sub w0, w1, w0
add w24, w0, #20
b G_M27574_IG09
;; size=124 bbWeight=0.50 PerfScore 12.50
G_M27574_IG08:
movz x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movk x0, #0xD1FFAB1E LSL #48
mov w1, #21
- cmp x21, #5
- ccmp x22, x0, 0, eq
+ cmp x19, #5
+ ccmp x20, x0, 0, eq
csel w24, w24, w1, lo
;; size=28 bbWeight=0.50 PerfScore 1.75
G_M27574_IG09:
movn w0, #0
cmp w24, #0
csel w0, w0, w24, lt
cmp w0, w23
bgt G_M27574_IG21
- str w0, [x19]
- str x20, [fp, #0x30] // [V22 tmp17]
- add x23, x20, w0, SXTW
+ str w0, [x21]
+ str x22, [fp, #0x10] // [V19 tmp14]
+ add x23, x22, w0, SXTW
cmn w24, #1
blt G_M27574_IG22
- mov x1, x21
+ mov x1, x19
cbz x1, G_M27574_IG17
;; size=48 bbWeight=0.50 PerfScore 4.50
G_M27574_IG10:
- movz x20, #0xD1FFAB1E LSL #16
- movk x20, #0xD1FFAB1E LSL #32
- movk x20, #0xD1FFAB1E LSL #48
+ movz x22, #0xD1FFAB1E LSL #16
+ movk x22, #0xD1FFAB1E LSL #32
+ movk x22, #0xD1FFAB1E LSL #48
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldr x19, [x0]
+ ldr x21, [x0]
;; size=28 bbWeight=0.25 PerfScore 1.50
G_M27574_IG11:
- mov x0, x22
+ mov x0, x20
movz x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movk x2, #0xD1FFAB1E LSL #48
mov x3, xzr
movz x4, #0xD1FFAB1E // code for System.UInt128:op_Division(System.UInt128,System.UInt128):System.UInt128
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
- mul x2, x0, x20
- sub x2, x22, x2
- mov x22, x0
+ mul x2, x0, x22
+ sub x2, x20, x2
+ mov x20, x0
mov w0, #19
cmp x2, #100
blo G_M27574_IG14
;; size=64 bbWeight=4 PerfScore 52.00
G_M27574_IG12:
sub x23, x23, #2
sub w0, w0, #2
movz x3, #0xD1FFAB1E
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
movk x3, #0xD1FFAB1E LSL #48
lsr x4, x2, #2
umulh x3, x4, x3
lsr x3, x3, #2
mov x4, #100
msub x4, x3, x4, x2
mov x2, x3
- mov x3, x19
+ mov x3, x21
add x3, x3, #16
lsl w4, w4, #1
mov w4, w4
ldrh w3, [x3, x4]
strh w3, [x23]
cmp x2, #100
bhs G_M27574_IG12
b G_M27574_IG14
align [4 bytes for IG13]
align [4 bytes]
align [0 bytes]
align [0 bytes]
;; size=92 bbWeight=16 PerfScore 416.00
G_M27574_IG13:
sub w0, w0, #1
movz x3, #0xD1FFAB1E
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
movk x3, #0xD1FFAB1E LSL #48
umulh x3, x2, x3
lsr x3, x3, #3
mov x4, #10
msub x4, x3, x4, x2
mov x2, x3
sub x23, x23, #1
add w3, w4, #48
strb w3, [x23]
;; size=52 bbWeight=64 PerfScore 1056.00
G_M27574_IG14:
cbnz x2, G_M27574_IG13
;; size=4 bbWeight=32 PerfScore 32.00
G_M27574_IG15:
cmp w0, #0
bgt G_M27574_IG13
;; size=8 bbWeight=32 PerfScore 48.00
G_M27574_IG16:
cbnz x1, G_M27574_IG11
;; size=4 bbWeight=4 PerfScore 4.00
G_M27574_IG17:
mov x4, x23
- cmp x22, #10
+ cmp x20, #10
blo G_M27574_IG26
b G_M27574_IG19
align [0 bytes for IG18]
align [0 bytes]
align [0 bytes]
align [0 bytes]
;; size=16 bbWeight=0.50 PerfScore 1.50
G_M27574_IG18:
sub x4, x4, #2
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movk x0, #0xD1FFAB1E LSL #48
- lsr x1, x22, #2
+ lsr x1, x20, #2
umulh x0, x1, x0
lsr x0, x0, #2
mov x1, #100
- msub x1, x0, x1, x22
- mov x22, x0
+ msub x1, x0, x1, x20
+ mov x20, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldr x19, [x0]
- add x0, x19, #16
+ ldr x21, [x0]
+ add x0, x21, #16
lsl w1, w1, #1
mov w1, w1
ldrh w0, [x0, x1]
strh w0, [x4]
;; size=80 bbWeight=4 PerfScore 104.00
G_M27574_IG19:
- cmp x22, #100
+ cmp x20, #100
bhs G_M27574_IG18
;; size=8 bbWeight=4 PerfScore 6.00
G_M27574_IG20:
- cmp x22, #10
+ cmp x20, #10
blo G_M27574_IG26
sub x0, x4, #2
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- ldr x19, [x1]
- mov x1, x19
+ ldr x21, [x1]
+ mov x1, x21
add x1, x1, #16
- lsl w2, w22, #1
+ lsl w2, w20, #1
mov w2, w2
ldrh w1, [x1, x2]
strh w1, [x0]
b G_M27574_IG27
;; size=56 bbWeight=0.50 PerfScore 7.00
G_M27574_IG21:
- str wzr, [x19]
+ str wzr, [x21]
mov w0, wzr
b G_M27574_IG28
;; size=12 bbWeight=0.50 PerfScore 1.25
G_M27574_IG22:
- mov x19, x23
+ mov x21, x23
movn w23, #0
- cbz x21, G_M27574_IG25
+ cbz x19, G_M27574_IG25
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M27574_IG23:
- movz x20, #0xD1FFAB1E LSL #16
- movk x20, #0xD1FFAB1E LSL #32
- movk x20, #0xD1FFAB1E LSL #48
+ movz x22, #0xD1FFAB1E LSL #16
+ movk x22, #0xD1FFAB1E LSL #32
+ movk x22, #0xD1FFAB1E LSL #48
;; size=12 bbWeight=0.25 PerfScore 0.38
G_M27574_IG24:
- mov x0, x22
- mov x1, x21
+ mov x0, x20
+ mov x1, x19
movz x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movk x2, #0xD1FFAB1E LSL #48
mov x3, xzr
movz x4, #0xD1FFAB1E // code for System.UInt128:op_Division(System.UInt128,System.UInt128):System.UInt128
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
mov x24, x0
mov x25, x1
- mul x2, x24, x20
- umulh x0, x24, x20
- madd x3, x25, x20, x0
- stp xzr, xzr, [fp, #0x10]
- stp xzr, xzr, [fp, #0x20]
- mov x0, x22
- mov x1, x21
+ mul x2, x24, x22
+ umulh x0, x24, x22
+ madd x3, x25, x22, x0
+ mov x0, x20
+ mov x1, x19
movz x4, #0xD1FFAB1E // code for System.UInt128:op_Subtraction(System.UInt128,System.UInt128):System.UInt128
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
- mov x3, x0
- mov x4, x1
- mov x1, x24
- mov x2, x25
- add x0, fp, #16 // [V128 tmp123]
- movz x5, #0xD1FFAB1E // code for System.ValueTuple`2[System.UInt128,System.UInt128]:.ctor(System.UInt128,System.UInt128):this
- movk x5, #0xD1FFAB1E LSL #16
- movk x5, #0xD1FFAB1E LSL #32
- ldr x5, [x5]
- blr x5
- ldp x22, x21, [fp, #0x10] // [V128 tmp123], [V128 tmp123+0x08]
- ldr x1, [fp, #0x20] // [V128 tmp123+0x10]
- mov x0, x19
+ mov x2, x0
+ mov x20, x24
+ mov x19, x25
+ mov x0, x21
+ mov x1, x2
mov w2, #19
movz x3, #0xD1FFAB1E // code for System.Number:UInt64ToDecChars[ubyte](ulong,ulong,int):ulong
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- mov x19, x0
+ mov x21, x0
sub w23, w23, #19
- cbnz x21, G_M27574_IG24
- ;; size=188 bbWeight=4 PerfScore 206.00
+ cbnz x19, G_M27574_IG24
+ ;; size=148 bbWeight=4 PerfScore 154.00
G_M27574_IG25:
- mov x0, x19
- mov x1, x22
+ mov x0, x21
+ mov x1, x20
mov w2, w23
movz x3, #0xD1FFAB1E // code for System.Number:UInt64ToDecChars[ubyte](ulong,ulong,int):ulong
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M27574_IG27
;; size=36 bbWeight=0.50 PerfScore 4.00
G_M27574_IG26:
- add w0, w22, #48
+ add w0, w20, #48
strb w0, [x4, #-0x01]
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M27574_IG27:
- str xzr, [fp, #0x30] // [V22 tmp17]
+ str xzr, [fp, #0x10] // [V19 tmp14]
mov w0, #1
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M27574_IG28:
- ldr x25, [sp, #0x68]
- ldp x23, x24, [sp, #0x58]
- ldp x21, x22, [sp, #0x48]
- ldp x19, x20, [sp, #0x38]
- ldp fp, lr, [sp], #0x70
+ ldr x25, [sp, #0x48]
+ ldp x23, x24, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
+ ldp fp, lr, [sp], #0x50
ret lr
;; size=24 bbWeight=0.50 PerfScore 3.50
G_M27574_IG29:
movz x0, #0xD1FFAB1E // code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x24, x0
;; size=24 bbWeight=0.50 PerfScore 3.00
G_M27574_IG30:
ldr x2, [x24, #0x98]
cbnz x2, G_M27574_IG31
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
ldr x1, [x24, #0x28]
movz x2, #0xD1FFAB1E // code for System.Text.UTF8Encoding+UTF8EncodingSealed:GetBytes(System.String):ubyte[]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x2, x0
add x14, x24, #152
mov x15, x2
bl CORINFO_HELP_ASSIGN_REF
;; size=64 bbWeight=0.50 PerfScore 9.75
G_M27574_IG31:
cbnz x2, G_M27574_IG32
mov x3, xzr
mov w4, wzr
b G_M27574_IG33
;; size=16 bbWeight=0.50 PerfScore 1.50
G_M27574_IG32:
add x3, x2, #16
ldr w4, [x2, #0x08]
;; size=8 bbWeight=0.50 PerfScore 1.75
G_M27574_IG33:
- mov x0, x22
- mov x1, x21
- mov x5, x20
+ mov x0, x20
+ mov x1, x19
+ mov x5, x22
mov w6, w23
- mov x7, x19
+ mov x7, x21
movn w2, #0
movz x8, #0xD1FFAB1E // code for System.Number:TryNegativeInt128ToDecStr[ubyte](System.Int128,int,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte
movk x8, #0xD1FFAB1E LSL #16
movk x8, #0xD1FFAB1E LSL #32
ldr x8, [x8]
blr x8
;; size=44 bbWeight=0.50 PerfScore 4.25
G_M27574_IG34:
- ldr x25, [sp, #0x68]
- ldp x23, x24, [sp, #0x58]
- ldp x21, x22, [sp, #0x48]
- ldp x19, x20, [sp, #0x38]
- ldp fp, lr, [sp], #0x70
+ ldr x25, [sp, #0x48]
+ ldp x23, x24, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
+ ldp fp, lr, [sp], #0x50
ret lr
;; size=24 bbWeight=0.50 PerfScore 3.50
-; Total bytes of code 1316, prolog size 48, PerfScore 2017.88, instruction count 339, allocated bytes for code 1316 (MethodHash=18f29449) for method System.Number:TryFormatInt128[ubyte](System.Int128,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.Span`1[ubyte],byref):ubyte (FullOpts)
+; Total bytes of code 1276, prolog size 48, PerfScore 1965.88, instruction count 329, allocated bytes for code 1276 (MethodHash=18f29449) for method System.Number:TryFormatInt128[ubyte](System.Int128,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.Span`1[ubyte],byref):ubyte (FullOpts)
-36 (-2.80 % of base) - System.Net.Dns:RunAsync[int](System.Func`3[System.Object,long,int],System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int]
; Assembly listing for method System.Net.Dns:RunAsync[int](System.Func`3[System.Object,long,int],System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 17 single block inlinees; 14 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T10] ( 3, 3 ) ref -> x20 class-hnd single-def <System.Func`3[System.Object,long,int]>
-; V01 arg1 [V01,T11] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Object>
+; V00 arg0 [V00,T11] ( 3, 3 ) ref -> x20 class-hnd single-def <System.Func`3[System.Object,long,int]>
+; V01 arg1 [V01,T12] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Object>
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.Threading.CancellationToken>
-; V03 loc0 [V03,T00] ( 15, 14 ) ref -> x22 class-hnd exact single-def <System.Net.Dns+<>c__DisplayClass39_0`1[int]>
-; V04 loc1 [V04,T33] ( 4, 1.50) ref -> [fp+0x18] class-hnd exact EH-live spill-single-def <System.Collections.Generic.Dictionary`2[System.Object,System.Threading.Tasks.Task]>
+; V03 loc0 [V03,T00] ( 15, 14 ) ref -> x23 class-hnd exact single-def <System.Net.Dns+<>c__DisplayClass39_0`1[int]>
+; V04 loc1 [V04,T34] ( 4, 1.50) ref -> [fp+0x18] class-hnd exact EH-live spill-single-def <System.Collections.Generic.Dictionary`2[System.Object,System.Threading.Tasks.Task]>
; V05 loc2 [V05 ] ( 5, 4 ) ubyte -> [fp+0x20] do-not-enreg[X] addr-exposed ld-addr-op
-; V06 loc3 [V06,T21] ( 4, 2.50) ref -> x23 ld-addr-op class-hnd <System.Threading.Tasks.Task>
+; V06 loc3 [V06,T22] ( 4, 2.50) ref -> x24 ld-addr-op class-hnd <System.Threading.Tasks.Task>
;* V07 loc4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Action`2[System.Threading.Tasks.Task`1[int],System.Object]>
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V09 tmp1 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Net.Dns+<>c__DisplayClass39_0`1[int]>
-; V10 tmp2 [V10,T02] ( 4, 8 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Func`3[System.Threading.Tasks.Task,System.Object,int]>
-; V11 tmp3 [V11,T03] ( 4, 8 ) ref -> x23 class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task>
-; V12 tmp4 [V12,T14] ( 2, 4 ) ref -> x25 class-hnd single-def "impAppendStmt" <System.Object>
+; V10 tmp2 [V10,T02] ( 4, 8 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Func`3[System.Threading.Tasks.Task,System.Object,int]>
+; V11 tmp3 [V11,T03] ( 4, 8 ) ref -> x24 class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task>
+; V12 tmp4 [V12,T15] ( 2, 4 ) ref -> x26 class-hnd single-def "impAppendStmt" <System.Object>
;* V13 tmp5 [V13 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-; V14 tmp6 [V14,T27] ( 2, 2 ) ref -> x24 class-hnd single-def "dup spill" <System.Action`2[System.Threading.Tasks.Task`1[int],System.Object]>
-; V15 tmp7 [V15,T28] ( 2, 2 ) ref -> x19 class-hnd single-def "impSpillLclRefs" <System.Threading.Tasks.Task`1[int]>
-; V16 tmp8 [V16,T26] ( 4, 2 ) ref -> x19 single-def
-; V17 tmp9 [V17,T24] ( 5, 2.50) ref -> x24
-; V18 tmp10 [V18,T29] ( 2, 2 ) ref -> x25 class-hnd single-def "impAppendStmt" <System.Object>
+; V14 tmp6 [V14,T28] ( 2, 2 ) ref -> x26 class-hnd single-def "dup spill" <System.Action`2[System.Threading.Tasks.Task`1[int],System.Object]>
+; V15 tmp7 [V15,T29] ( 2, 2 ) ref -> x19 class-hnd single-def "impSpillLclRefs" <System.Threading.Tasks.Task`1[int]>
+; V16 tmp8 [V16,T27] ( 4, 2 ) ref -> x19 single-def
+; V17 tmp9 [V17,T25] ( 5, 2.50) ref -> x26
+; V18 tmp10 [V18,T30] ( 2, 2 ) ref -> x24 class-hnd single-def "impAppendStmt" <System.Object>
;* V19 tmp11 [V19 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-; V20 tmp12 [V20,T09] ( 5, 5 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Action`2[System.Threading.Tasks.Task`1[int],System.Object]>
+; V20 tmp12 [V20,T10] ( 5, 5 ) ref -> x26 class-hnd exact single-def "NewObj constructor temp" <System.Action`2[System.Threading.Tasks.Task`1[int],System.Object]>
;* V21 tmp13 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V22 tmp14 [V22,T15] ( 2, 4 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Object,System.Threading.Tasks.Task]>
-; V23 tmp15 [V23,T16] ( 2, 4 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Object>
-; V24 tmp16 [V24,T25] ( 3, 2.50) byref -> x0 single-def "Inline stloc first use temp"
-; V25 tmp17 [V25,T08] ( 3, 6 ) ref -> x26 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskScheduler>
+; V22 tmp14 [V22,T16] ( 2, 4 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Object,System.Threading.Tasks.Task]>
+; V23 tmp15 [V23,T17] ( 2, 4 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Object>
+; V24 tmp16 [V24,T26] ( 3, 2.50) byref -> x0 single-def "Inline stloc first use temp"
+; V25 tmp17 [V25,T08] ( 3, 6 ) ref -> x27 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskScheduler>
;* V26 tmp18 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.ContinuationResultTaskFromTask`1[int]>
;* V27 tmp19 [V27 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
;* V28 tmp20 [V28 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-; V29 tmp21 [V29,T01] ( 8, 13 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.ContinuationResultTaskFromTask`1[int]>
+; V29 tmp21 [V29,T01] ( 8, 13 ) ref -> x28 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.ContinuationResultTaskFromTask`1[int]>
;* V30 tmp22 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.ContinuationResultTaskFromTask`1[int]>
;* V31 tmp23 [V31 ] ( 0, 0 ) byref -> zero-ref
;* V32 tmp24 [V32 ] ( 0, 0 ) byref -> zero-ref
;* V33 tmp25 [V33 ] ( 0, 0 ) int -> zero-ref
-;* V34 tmp26 [V34,T31] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V34 tmp26 [V34,T32] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V35 tmp27 [V35 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-;* V36 tmp28 [V36,T30] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task>
-;* V37 tmp29 [V37,T32] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V36 tmp28 [V36,T31] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task>
+;* V37 tmp29 [V37,T33] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V38 tmp30 [V38 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
-; V39 tmp31 [V39,T06] ( 4, 6 ) ref -> x28 class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
-; V40 tmp32 [V40,T22] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Net.Dns+<>c__39`1[int]>
+; V39 tmp31 [V39,T06] ( 4, 6 ) ref -> x25 class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
+; V40 tmp32 [V40,T23] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Net.Dns+<>c__39`1[int]>
;* V41 tmp33 [V41 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V42 tmp34 [V42,T23] ( 3, 3 ) ref -> x23 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskScheduler>
+; V42 tmp34 [V42,T24] ( 3, 3 ) ref -> x25 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskScheduler>
;* V43 tmp35 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.ContinuationTaskFromResultTask`1[int]>
;* V44 tmp36 [V44 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
;* V45 tmp37 [V45 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-; V46 tmp38 [V46,T05] ( 7, 7 ) ref -> x26 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.ContinuationTaskFromResultTask`1[int]>
+; V46 tmp38 [V46,T05] ( 7, 7 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.ContinuationTaskFromResultTask`1[int]>
;* V47 tmp39 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.ContinuationTaskFromResultTask`1[int]>
;* V48 tmp40 [V48 ] ( 0, 0 ) byref -> zero-ref
;* V49 tmp41 [V49 ] ( 0, 0 ) byref -> zero-ref
;* V50 tmp42 [V50 ] ( 0, 0 ) int -> zero-ref
-;* V51 tmp43 [V51,T38] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V51 tmp43 [V51,T40] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V52 tmp44 [V52 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-;* V53 tmp45 [V53,T34] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task>
-;* V54 tmp46 [V54,T39] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V53 tmp45 [V53,T36] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task>
+;* V54 tmp46 [V54,T41] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V55 tmp47 [V55 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
-; V56 tmp48 [V56,T12] ( 4, 4 ) ref -> x24 class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
-; V57 tmp49 [V57,T17] ( 2, 4 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Object,System.Threading.Tasks.Task]>
-; V58 tmp50 [V58,T18] ( 2, 4 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Object>
-; V59 tmp51 [V59,T19] ( 2, 4 ) ref -> x2 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
+; V56 tmp48 [V56,T13] ( 4, 4 ) ref -> x24 class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
+; V57 tmp49 [V57,T18] ( 2, 4 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Object,System.Threading.Tasks.Task]>
+; V58 tmp50 [V58,T19] ( 2, 4 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Object>
+; V59 tmp51 [V59,T20] ( 2, 4 ) ref -> x2 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
; V60 tmp52 [V60,T07] ( 3, 3 ) ref -> x19 single-def "field V02._source (fldOffset=0x0)" P-INDEP
-;* V61 tmp53 [V61,T35] ( 0, 0 ) ref -> zero-ref single-def "field V13._source (fldOffset=0x0)" P-INDEP
-;* V62 tmp54 [V62,T41] ( 0, 0 ) ref -> zero-ref single-def "field V19._source (fldOffset=0x0)" P-INDEP
+;* V61 tmp53 [V61,T37] ( 0, 0 ) ref -> zero-ref single-def "field V13._source (fldOffset=0x0)" P-INDEP
+;* V62 tmp54 [V62,T43] ( 0, 0 ) ref -> zero-ref single-def "field V19._source (fldOffset=0x0)" P-INDEP
;* V63 tmp55 [V63 ] ( 0, 0 ) ref -> zero-ref single-def "field V35._source (fldOffset=0x0)" P-INDEP
-;* V64 tmp56 [V64,T36] ( 0, 0 ) ref -> zero-ref single-def "field V38._source (fldOffset=0x0)" P-INDEP
+;* V64 tmp56 [V64,T38] ( 0, 0 ) ref -> zero-ref single-def "field V38._source (fldOffset=0x0)" P-INDEP
;* V65 tmp57 [V65 ] ( 0, 0 ) ref -> zero-ref single-def "field V41._source (fldOffset=0x0)" P-INDEP
;* V66 tmp58 [V66 ] ( 0, 0 ) ref -> zero-ref single-def "field V52._source (fldOffset=0x0)" P-INDEP
-;* V67 tmp59 [V67,T42] ( 0, 0 ) ref -> zero-ref single-def "field V55._source (fldOffset=0x0)" P-INDEP
-; V68 tmp60 [V68,T20] ( 2, 4 ) ref -> x0 single-def "argument with side effect"
-; V69 PSPSym [V69,T40] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym"
-;* V70 cse0 [V70,T43] ( 0, 0 ) byref -> zero-ref "CSE #06: moderate"
-;* V71 cse1 [V71,T37] ( 0, 0 ) byref -> zero-ref "CSE #09: moderate"
-; V72 cse2 [V72,T13] ( 4, 4 ) ref -> x21 "CSE #02: moderate"
+;* V67 tmp59 [V67,T44] ( 0, 0 ) ref -> zero-ref single-def "field V55._source (fldOffset=0x0)" P-INDEP
+; V68 tmp60 [V68,T21] ( 2, 4 ) ref -> x0 single-def "argument with side effect"
+; V69 PSPSym [V69,T42] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym"
+;* V70 cse0 [V70,T45] ( 0, 0 ) byref -> zero-ref "CSE #05: moderate"
+;* V71 cse1 [V71,T39] ( 0, 0 ) byref -> zero-ref "CSE #08: moderate"
+; V72 cse2 [V72,T14] ( 4, 4 ) ref -> x21 "CSE #02: moderate"
; V73 cse3 [V73,T04] ( 11, 7.50) long -> x20 "CSE #01: aggressive"
+; V74 cse4 [V74,T09] ( 7, 5.50) long -> x22 "CSE #03: moderate"
+; V75 rat0 [V75,T35] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
;
; Lcl frame size = 32
G_M18894_IG01:
stp fp, lr, [sp, #-0x80]!
stp x19, x20, [sp, #0x30]
stp x21, x22, [sp, #0x40]
stp x23, x24, [sp, #0x50]
stp x25, x26, [sp, #0x60]
stp x27, x28, [sp, #0x70]
mov fp, sp
add x3, sp, #128
str x3, [fp, #0x28] // [V69 PSPSym]
mov x20, x0
mov x21, x1
mov x19, x2
;; size=48 bbWeight=1 PerfScore 9.50
G_M18894_IG02:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ movz x22, #0xD1FFAB1E
+ movk x22, #0xD1FFAB1E LSL #16
+ movk x22, #0xD1FFAB1E LSL #32
+ mov x0, x22
bl CORINFO_HELP_NEWSFAST
- mov x22, x0
- add x14, x22, #8
+ mov x23, x0
+ add x14, x23, #8
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
- add x14, x22, #16
+ add x14, x23, #16
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M18894_IG32
- ;; size=64 bbWeight=1 PerfScore 12.50
+ ;; size=68 bbWeight=1 PerfScore 13.00
G_M18894_IG03:
movz x20, #0xD1FFAB1E // data for System.Net.NameResolutionTelemetry:Log
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
ldr x0, [x20]
- ldr x1, [x22, #0x10]
+ ldr x1, [x23, #0x10]
movz x2, #0xD1FFAB1E // code for System.Net.NameResolutionTelemetry:BeforeResolution(System.Object):long:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
- stp xzr, x0, [x22, #0x18]
+ stp xzr, x0, [x23, #0x18]
ldr x21, [x20, #-0x10]
mov x0, x21
str x0, [fp, #0x18] // [V04 loc1]
str wzr, [fp, #0x20] // [V05 loc2]
;; size=64 bbWeight=1 PerfScore 22.50
G_M18894_IG04:
ldrb w1, [fp, #0x20] // [V05 loc2]
cbnz w1, G_M18894_IG27
add x1, fp, #32 // [V05 loc2]
bl System.Threading.Monitor:ReliableEnter(System.Object,byref)
mov x0, x21
- ldr x1, [x22, #0x10]
+ ldr x1, [x23, #0x10]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M18894_IG06
;; size=48 bbWeight=1 PerfScore 14.50
G_M18894_IG05:
- ldr x23, [x0]
- cbnz x23, G_M18894_IG07
+ ldr x24, [x0]
+ cbnz x24, G_M18894_IG07
;; size=8 bbWeight=0.50 PerfScore 2.00
G_M18894_IG06:
- ldr x23, [x20, #-0xB8]
+ ldr x24, [x20, #-0xB8]
;; size=4 bbWeight=0.50 PerfScore 1.50
G_M18894_IG07:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ add x0, x22, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x24, x0
- add x14, x24, #8
- mov x15, x22
+ mov x25, x0
+ add x14, x25, #8
+ mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E // code for System.Net.Dns+<>c__DisplayClass39_0`1[int]:<RunAsync>b__0(System.Threading.Tasks.Task,System.Object):int:this
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- str x0, [x24, #0x18]
- ldr x25, [x22, #0x10]
+ str x0, [x25, #0x18]
+ ldr x26, [x23, #0x10]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M18894_IG20
- ;; size=72 bbWeight=1 PerfScore 16.00
+ ;; size=64 bbWeight=1 PerfScore 15.00
G_M18894_IG08:
- ldr x26, [x20, #0x88]
- ldrsb wzr, [x23]
- cbz x26, G_M18894_IG26
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ ldr x27, [x20, #0x88]
+ ldrsb wzr, [x24]
+ cbz x27, G_M18894_IG26
+ add x0, x22, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x27, x0
- mov x1, x24
- mov x2, x25
+ mov x28, x0
+ mov x1, x25
+ mov x2, x26
mov x3, xzr
mov w4, #8
mov w5, #0xD1FFAB1E
mov x6, xzr
movz x7, #0xD1FFAB1E // code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
movz x0, #0xD1FFAB1E // code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
- mov x28, x0
- cbnz x28, G_M18894_IG10
- ;; size=104 bbWeight=1 PerfScore 25.50
+ mov x25, x0
+ cbnz x25, G_M18894_IG10
+ ;; size=96 bbWeight=1 PerfScore 24.50
G_M18894_IG09:
- add x0, x27, #52
+ add x0, x28, #52
ldapr w0, [x0]
orr w0, w0, #0xD1FFAB1E
- add x1, x27, #52
+ add x1, x28, #52
stlr w0, [x1]
b G_M18894_IG12
;; size=24 bbWeight=0.50 PerfScore 3.25
G_M18894_IG10:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M18894_IG21
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M18894_IG11:
ldr x0, [x20, #-0xE0]
- cmp x28, x0
+ cmp x25, x0
beq G_M18894_IG12
- mov x0, x27
+ mov x0, x28
movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
add x14, x0, #8
- mov x15, x28
+ mov x15, x25
bl CORINFO_HELP_ASSIGN_REF
;; size=48 bbWeight=0.50 PerfScore 6.25
G_M18894_IG12:
- add x14, x27, #64
- mov x15, x23
+ add x14, x28, #64
+ mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x23
- mov x1, x27
- mov x2, x26
+ mov x0, x24
+ mov x1, x28
+ mov x2, x27
mov x3, x19
mov w4, #8
movz x5, #0xD1FFAB1E // code for System.Threading.Tasks.Task:ContinueWithCore(System.Threading.Tasks.Task,System.Threading.Tasks.TaskScheduler,System.Threading.CancellationToken,int):this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
- add x14, x22, #24
- mov x15, x27
+ add x14, x23, #24
+ mov x15, x28
bl CORINFO_HELP_ASSIGN_REF
cbz x19, G_M18894_IG19
;; size=68 bbWeight=1 PerfScore 13.00
G_M18894_IG13:
- ldr x19, [x22, #0x18]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M18894_IG22
- ;; size=24 bbWeight=0.50 PerfScore 4.25
+ ldr x19, [x23, #0x18]
+ add x0, x22, #0xD1FFAB1E
+ movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #0xD1FFAB1E LSL #32
+ ldr w1, [x1]
+ tbz w1, #0, G_M18894_IG22
+ ;; size=28 bbWeight=0.50 PerfScore 4.50
G_M18894_IG14:
- ldr x24, [x20, #0xD1FFAB1E]
- cbnz x24, G_M18894_IG15
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ ldr x26, [x20, #0xD1FFAB1E]
+ cbnz x26, G_M18894_IG15
+ add x0, x22, #176
bl CORINFO_HELP_NEWSFAST
- mov x24, x0
+ mov x26, x0
ldr x15, [x20, #0xD1FFAB1E]
cbz x15, G_M18894_IG25
- add x14, x24, #8
+ add x14, x26, #8
bl CORINFO_HELP_ASSIGN_REF
movz x14, #0xD1FFAB1E // code for System.Net.Dns+<>c__39`1[int]:<RunAsync>b__39_1(System.Threading.Tasks.Task`1[int],System.Object):this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- str x14, [x24, #0x18]
+ str x14, [x26, #0x18]
add x14, x20, #0xD1FFAB1E
- mov x15, x24
+ mov x15, x26
bl CORINFO_HELP_ASSIGN_REF
- ;; size=72 bbWeight=0.50 PerfScore 8.50
+ ;; size=64 bbWeight=0.50 PerfScore 8.00
G_M18894_IG15:
- ldr x25, [x22, #0x10]
- ldr x23, [x20, #0x88]
+ ldr x24, [x23, #0x10]
+ ldr x25, [x20, #0x88]
ldrsb wzr, [x19]
- cbz x24, G_M18894_IG24
- cbz x23, G_M18894_IG26
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ cbz x26, G_M18894_IG24
+ cbz x25, G_M18894_IG26
+ add x0, x22, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x26, x0
- mov x1, x24
- mov x2, x25
+ mov x22, x0
+ mov x1, x26
+ mov x2, x24
mov x3, xzr
mov w4, wzr
mov w5, #0xD1FFAB1E
mov x6, xzr
movz x7, #0xD1FFAB1E // code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
movz x0, #0xD1FFAB1E // code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x24, x0
cbnz x24, G_M18894_IG16
- add x0, x26, #52
+ add x0, x22, #52
ldapr w0, [x0]
orr w0, w0, #0xD1FFAB1E
- add x1, x26, #52
+ add x1, x22, #52
stlr w0, [x1]
b G_M18894_IG18
- ;; size=136 bbWeight=0.50 PerfScore 18.00
+ ;; size=128 bbWeight=0.50 PerfScore 17.50
G_M18894_IG16:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M18894_IG23
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M18894_IG17:
ldr x0, [x20, #-0xE0]
cmp x24, x0
beq G_M18894_IG18
- mov x0, x26
+ mov x0, x22
movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
add x14, x0, #8
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
;; size=48 bbWeight=0.50 PerfScore 6.25
G_M18894_IG18:
- add x14, x26, #56
+ add x14, x22, #56
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
mov x0, x19
- mov x1, x26
- mov x2, x23
+ mov x1, x22
+ mov x2, x25
mov x3, xzr
mov w4, #0xD1FFAB1E
movz x5, #0xD1FFAB1E // code for System.Threading.Tasks.Task:ContinueWithCore(System.Threading.Tasks.Task,System.Threading.Tasks.TaskScheduler,System.Threading.CancellationToken,int):this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
;; size=52 bbWeight=0.50 PerfScore 5.00
G_M18894_IG19:
mov x0, x21
- ldp x1, x2, [x22, #0x10]
+ ldp x1, x2, [x23, #0x10]
mov w3, #1
movz x4, #0xD1FFAB1E // code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,ubyte):ubyte:this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
b G_M18894_IG28
;; size=36 bbWeight=1 PerfScore 11.50
G_M18894_IG20:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_NONGCSTATIC_BASE
b G_M18894_IG08
;; size=20 bbWeight=0 PerfScore 0.00
G_M18894_IG21:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M18894_IG11
;; size=20 bbWeight=0 PerfScore 0.00
G_M18894_IG22:
- movz x0, #136
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M18894_IG14
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
G_M18894_IG23:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M18894_IG17
;; size=20 bbWeight=0 PerfScore 0.00
G_M18894_IG24:
mov w0, #49
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentNullException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
G_M18894_IG25:
movz x0, #0xD1FFAB1E // code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M18894_IG26:
mov w0, #47
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentNullException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
G_M18894_IG27:
movz x1, #0xD1FFAB1E // code for System.Threading.Monitor:ThrowLockTakenException()
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M18894_IG28:
ldrb w0, [fp, #0x20] // [V05 loc2]
cbz w0, G_M18894_IG30
;; size=8 bbWeight=1 PerfScore 3.00
G_M18894_IG29:
ldr x0, [fp, #0x18] // [V04 loc1]
bl System.Threading.Monitor:Exit(System.Object)
;; size=8 bbWeight=0.50 PerfScore 1.50
G_M18894_IG30:
- ldr x0, [x22, #0x18]
+ ldr x0, [x23, #0x18]
;; size=4 bbWeight=1 PerfScore 3.00
G_M18894_IG31:
ldp x27, x28, [sp, #0x70]
ldp x25, x26, [sp, #0x60]
ldp x23, x24, [sp, #0x50]
ldp x21, x22, [sp, #0x40]
ldp x19, x20, [sp, #0x30]
ldp fp, lr, [sp], #0x80
ret lr
;; size=28 bbWeight=1 PerfScore 7.00
G_M18894_IG32:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M18894_IG03
;; size=20 bbWeight=0 PerfScore 0.00
G_M18894_IG33:
stp fp, lr, [sp, #-0x70]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
stp x25, x26, [sp, #0x50]
stp x27, x28, [sp, #0x60]
add x3, fp, #128
str x3, [sp, #0x18]
;; size=32 bbWeight=0 PerfScore 0.00
G_M18894_IG34:
ldrb w0, [fp, #0x20] // [V05 loc2]
cbz w0, G_M18894_IG35
ldr x0, [fp, #0x18] // [V04 loc1]
bl System.Threading.Monitor:Exit(System.Object)
;; size=16 bbWeight=0 PerfScore 0.00
G_M18894_IG35:
ldp x27, x28, [sp, #0x60]
ldp x25, x26, [sp, #0x50]
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x70
ret lr
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1288, prolog size 48, PerfScore 200.00, instruction count 322, allocated bytes for code 1288 (MethodHash=9c38b631) for method System.Net.Dns:RunAsync[int](System.Func`3[System.Object,long,int],System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int] (FullOpts)
+; Total bytes of code 1252, prolog size 48, PerfScore 197.75, instruction count 313, allocated bytes for code 1252 (MethodHash=9c38b631) for method System.Net.Dns:RunAsync[int](System.Func`3[System.Object,long,int],System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int] (FullOpts)
-28 (-4.14 % of base) - System.Threading.Channels.BoundedChannel`1[int]:.ctor(int,int,ubyte,System.Action`1[int]):this
; Assembly listing for method System.Threading.Channels.BoundedChannel`1[int]:.ctor(int,int,ubyte,System.Action`1[int]):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 19 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 14, 14 ) ref -> x19 this class-hnd single-def <System.Threading.Channels.BoundedChannel`1[int]>
-; V01 arg1 [V01,T10] ( 3, 3 ) int -> x22 single-def
-; V02 arg2 [V02,T11] ( 3, 3 ) int -> x23 single-def
-; V03 arg3 [V03,T02] ( 4, 4 ) ubyte -> x20 single-def
-; V04 arg4 [V04,T09] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Action`1[int]>
+; V01 arg1 [V01,T11] ( 3, 3 ) int -> x22 single-def
+; V02 arg2 [V02,T12] ( 3, 3 ) int -> x23 single-def
+; V03 arg3 [V03,T03] ( 4, 4 ) ubyte -> x20 single-def
+; V04 arg4 [V04,T10] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Action`1[int]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T03] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[int]>
-; V07 tmp2 [V07,T04] ( 3, 6 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.AsyncOperation`1[int]]>
-; V08 tmp3 [V08,T05] ( 3, 6 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.VoidAsyncOperationWithData`1[int]]>
+; V06 tmp1 [V06,T04] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[int]>
+; V07 tmp2 [V07,T05] ( 3, 6 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.AsyncOperation`1[int]]>
+; V08 tmp3 [V08,T06] ( 3, 6 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.VoidAsyncOperationWithData`1[int]]>
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref
;* V10 tmp5 [V10 ] ( 0, 0 ) ref -> zero-ref single-def
-; V11 tmp6 [V11,T12] ( 4, 4 ) int -> x28
-; V12 tmp7 [V12,T06] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource>
-; V13 tmp8 [V13,T07] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[int]>
-; V14 tmp9 [V14,T08] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[int]>
-; V15 tmp10 [V15,T01] ( 4, 7 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
+; V11 tmp6 [V11,T13] ( 4, 4 ) int -> x28
+; V12 tmp7 [V12,T07] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource>
+; V13 tmp8 [V13,T08] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[int]>
+; V14 tmp9 [V14,T09] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[int]>
+; V15 tmp10 [V15,T02] ( 4, 7 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V16 tmp11 [V16 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
; V17 tmp12 [V17,T20] ( 3, 1.50) ref -> x25 class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
;* V18 tmp13 [V18,T21] ( 0, 0 ) ref -> zero-ref single-def "field V16._source (fldOffset=0x0)" P-INDEP
-; V19 cse0 [V19,T13] ( 4, 4 ) long -> x24 "CSE #01: aggressive"
-; V20 cse1 [V20,T14] ( 4, 4 ) long -> x26 "CSE #02: aggressive"
+; V19 cse0 [V19,T01] ( 7, 7 ) long -> x24 "CSE #01: aggressive"
+; V20 cse1 [V20,T15] ( 3, 3 ) long -> x26 "CSE #02: aggressive"
; V21 rat0 [V21,T18] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
; V22 rat1 [V22,T19] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
; V23 rat2 [V23,T17] ( 3, 2 ) byref -> x1 "TLS field access"
; V24 rat3 [V24,T16] ( 3, 3 ) long -> x0 "TLS access"
-; V25 rat4 [V25,T15] ( 3, 3 ) byref -> x1 "ThreadStaticBlockBase access"
+; V25 rat4 [V25,T14] ( 3, 3 ) byref -> x1 "ThreadStaticBlockBase access"
;
; Lcl frame size = 0
G_M50650_IG01:
stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x10]
stp x21, x22, [sp, #0x20]
stp x23, x24, [sp, #0x30]
stp x25, x26, [sp, #0x40]
stp x27, x28, [sp, #0x50]
mov fp, sp
mov x19, x0
mov w22, w1
mov w23, w2
mov w20, w3
mov x21, x4
;; size=48 bbWeight=1 PerfScore 9.00
G_M50650_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x0, #0x08]
add x14, x19, #40
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
movz x24, #0xD1FFAB1E
movk x24, #0xD1FFAB1E LSL #16
movk x24, #0xD1FFAB1E LSL #32
mov x0, x24
bl CORINFO_HELP_NEWSFAST
mov x25, x0
- movz x26, #0xD1FFAB1E
- movk x26, #0xD1FFAB1E LSL #16
- movk x26, #0xD1FFAB1E LSL #32
- add x0, x26, #0xD1FFAB1E
+ add x0, x24, #0xD1FFAB1E
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M50650_IG09
- ;; size=104 bbWeight=1 PerfScore 18.00
+ ;; size=92 bbWeight=1 PerfScore 16.50
G_M50650_IG03:
- movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Threading.Channels.AsyncOperation`1[int]]:Value
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #0xD1FFAB1E LSL #32
- ldr x15, [x14]
+ movz x26, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Threading.Channels.AsyncOperation`1[int]]:Value
+ movk x26, #0xD1FFAB1E LSL #32
+ ldr x15, [x26]
add x14, x25, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #48
mov x15, x25
bl CORINFO_HELP_ASSIGN_REF
add x0, x24, #200
bl CORINFO_HELP_NEWSFAST
mov x27, x0
- add x0, x26, #0xD1FFAB1E
+ add x0, x24, #0xD1FFAB1E
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M50650_IG10
- ;; size=72 bbWeight=1 PerfScore 16.00
+ ;; size=68 bbWeight=1 PerfScore 15.50
G_M50650_IG04:
- movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Threading.Channels.VoidAsyncOperationWithData`1[int]]:Value
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #0xD1FFAB1E LSL #32
- ldr x15, [x14]
+ ldr x15, [x26, #0x08]
add x14, x27, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #56
mov x15, x27
bl CORINFO_HELP_ASSIGN_REF
stp w23, w22, [x19, #0x58]
strb w20, [x19, #0x60]
add x14, x19, #24
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
mov w0, #64
tst w20, #255
csel w28, w0, wzr, ne
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x21, x0
movn w0, #68
tst w28, w0
bne G_M50650_IG12
tbz w28, #2, G_M50650_IG07
- ;; size=124 bbWeight=1 PerfScore 22.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M50650_IG05:
mrs x0, tpidr_el0
ldr w1, [x0, #0xD1FFAB1E]
cmp w1, #9
ble G_M50650_IG11
ldr x0, [x0, #0xD1FFAB1E]
ldr x1, [x0, #0x48]
cbz x1, G_M50650_IG11
;; size=28 bbWeight=0.50 PerfScore 6.25
G_M50650_IG06:
ldr x25, [x1, #0x10]
cbz x25, G_M50650_IG07
mov x0, x21
movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
add x14, x0, #48
mov x15, x25
bl CORINFO_HELP_ASSIGN_REF
;; size=44 bbWeight=0.50 PerfScore 6.00
G_M50650_IG07:
mov x0, x21
mov x3, xzr
mov w4, w28
mov x1, xzr
mov x2, xzr
mov w5, #0xD1FFAB1E
mov x6, xzr
movz x7, #0xD1FFAB1E // code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
add x14, x20, #8
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #32
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
add x0, x24, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
mov x22, x0
mov x1, x19
movz x2, #0xD1FFAB1E // code for System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[int]:.ctor(System.Threading.Channels.BoundedChannel`1[int]):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x19, #8
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x26
+ add x0, x24, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
mov x23, x0
mov x1, x19
movz x2, #0xD1FFAB1E // code for System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[int]:.ctor(System.Threading.Channels.BoundedChannel`1[int]):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x19, #16
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
;; size=168 bbWeight=1 PerfScore 33.00
G_M50650_IG08:
ldp x27, x28, [sp, #0x50]
ldp x25, x26, [sp, #0x40]
ldp x23, x24, [sp, #0x30]
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x60
ret lr
;; size=28 bbWeight=1 PerfScore 7.00
G_M50650_IG09:
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M50650_IG03
;; size=8 bbWeight=0 PerfScore 0.00
G_M50650_IG10:
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M50650_IG04
;; size=8 bbWeight=0 PerfScore 0.00
G_M50650_IG11:
mov w0, #9
bl CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
mov x1, x0
b G_M50650_IG06
;; size=16 bbWeight=0 PerfScore 0.00
G_M50650_IG12:
mov w0, #45
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 676, prolog size 28, PerfScore 117.75, instruction count 169, allocated bytes for code 676 (MethodHash=a5523a25) for method System.Threading.Channels.BoundedChannel`1[int]:.ctor(int,int,ubyte,System.Action`1[int]):this (FullOpts)
+; Total bytes of code 648, prolog size 28, PerfScore 114.25, instruction count 162, allocated bytes for code 648 (MethodHash=a5523a25) for method System.Threading.Channels.BoundedChannel`1[int]:.ctor(int,int,ubyte,System.Action`1[int]):this (FullOpts)
-24 (-1.20 % of base) - System.Net.HttpListenerResponse:SendHeaders(ubyte,System.IO.MemoryStream,ubyte):this
; Assembly listing for method System.Net.HttpListenerResponse:SendHeaders(ubyte,System.IO.MemoryStream,ubyte):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 38 single block inlinees; 11 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 39, 23 ) ref -> x19 this class-hnd single-def <System.Net.HttpListenerResponse>
; V01 arg1 [V01,T06] ( 3, 2.50) ubyte -> x22 single-def
; V02 arg2 [V02,T02] ( 7, 7 ) ref -> x20 class-hnd single-def <System.IO.MemoryStream>
; V03 arg3 [V03,T04] ( 4, 4 ) ubyte -> x21 single-def
; V04 loc0 [V04,T10] ( 3, 3 ) ref -> x23 class-hnd exact single-def <System.Text.UTF8Encoding+UTF8EncodingSealed>
; V05 loc1 [V05,T11] ( 3, 3 ) ref -> x1 class-hnd single-def <ubyte[]>
;* V06 loc2 [V06 ] ( 0, 0 ) int -> zero-ref
; V07 loc3 [V07,T07] ( 8, 4 ) ubyte -> x22
;* V08 loc4 [V08 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.DateTime>
;* V09 loc5 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op <System.ReadOnlySpan`1[ubyte]>
;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V11 tmp1 [V11,T01] ( 9, 18 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.IO.StreamWriter>
; V12 tmp2 [V12,T05] ( 3, 6 ) ref -> x0 class-hnd exact single-def "Single-def Box Helper" <System.Int32>
;* V13 tmp3 [V13 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]>
; V14 tmp4 [V14,T34] ( 3, 1.50) int -> x0
; V15 tmp5 [V15,T12] ( 3, 3 ) ref -> x22 class-hnd single-def "impAppendStmt" <System.Net.WebHeaderCollection>
; V16 tmp6 [V16,T24] ( 2, 2 ) byref -> x0 single-def "impAppendStmt"
;* V17 tmp7 [V17 ] ( 0, 0 ) ref -> zero-ref
;* V18 tmp8 [V18 ] ( 0, 0 ) ref -> zero-ref single-def
; V19 tmp9 [V19,T37] ( 2, 1 ) int -> x0
; V20 tmp10 [V20,T13] ( 3, 3 ) ref -> x23 class-hnd single-def "impAppendStmt" <System.Net.WebHeaderCollection>
;* V21 tmp11 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.WebHeaderCollection>
;* V22 tmp12 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.WebHeaderCollection>
; V23 tmp13 [V23,T25] ( 2, 2 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
;* V24 tmp14 [V24 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.DateTime>
;* V25 tmp15 [V25 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V26 tmp16 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerContext>
;* V27 tmp17 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerRequest>
;* V28 tmp18 [V28,T42] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V29 tmp19 [V29,T14] ( 3, 3 ) ref -> x23 class-hnd exact single-def "Inlining Arg" <System.Version>
; V30 tmp20 [V30,T26] ( 2, 2 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.Version>
;* V31 tmp21 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerResponse>
; V32 tmp22 [V32,T27] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Net.HttpListenerResponse>
; V33 tmp23 [V33,T28] ( 2, 2 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
; V34 tmp24 [V34,T36] ( 2, 1 ) ref -> x2 class-hnd single-def "Inline return value spill temp" <System.String>
; V35 tmp25 [V35,T32] ( 2, 2 ) long -> x0 "Inlining Arg"
;* V36 tmp26 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V37 tmp27 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
;* V38 tmp28 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerContext>
;* V39 tmp29 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerContext>
;* V40 tmp30 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpConnection>
;* V41 tmp31 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerContext>
;* V42 tmp32 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerRequest>
;* V43 tmp33 [V43,T43] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V44 tmp34 [V44,T15] ( 3, 3 ) ref -> x24 class-hnd exact single-def "Inlining Arg" <System.Version>
; V45 tmp35 [V45,T29] ( 2, 2 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.Version>
; V46 tmp36 [V46,T03] ( 6, 6 ) ref -> x25 class-hnd single-def "Inlining Arg" <System.Net.WebHeaderCollection>
; V47 tmp37 [V47,T45] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
;* V48 tmp38 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V49 tmp39 [V49 ] ( 2, 4 ) ref -> [fp+0x10] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
;* V50 tmp40 [V50 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
;* V51 tmp41 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Object>
;* V52 tmp42 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <System.IFormatProvider>
;* V53 tmp43 [V53 ] ( 0, 0 ) ref -> zero-ref
;* V54 tmp44 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
;* V55 tmp45 [V55 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V56 tmp46 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
;* V57 tmp47 [V57 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V58 tmp48 [V58 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V59 tmp49 [V59,T38] ( 2, 1 ) long -> x0 "field V08._dateData (fldOffset=0x0)" P-INDEP
; V60 tmp50 [V60,T39] ( 1, 1 ) byref -> x0 "field V09._reference (fldOffset=0x0)" P-INDEP
; V61 tmp51 [V61,T33] ( 2, 2 ) int -> x24 "field V09._length (fldOffset=0x8)" P-INDEP
;* V62 tmp52 [V62 ] ( 0, 0 ) byref -> zero-ref "field V13._reference (fldOffset=0x0)" P-DEP
;* V63 tmp53 [V63 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-DEP
;* V64 tmp54 [V64 ] ( 0, 0 ) long -> zero-ref "field V24._dateData (fldOffset=0x0)" P-INDEP
;* V65 tmp55 [V65,T44] ( 0, 0 ) long -> zero-ref "field V25._ticks (fldOffset=0x0)" P-INDEP
;* V66 tmp56 [V66,T40] ( 0, 0 ) byref -> zero-ref single-def "field V50._reference (fldOffset=0x0)" P-INDEP
;* V67 tmp57 [V67,T41] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
; V68 tmp58 [V68,T16] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V69 tmp59 [V69,T17] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V70 tmp60 [V70,T18] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V71 tmp61 [V71,T30] ( 2, 2 ) ref -> x2 single-def "argument with side effect"
; V72 tmp62 [V72,T19] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V73 tmp63 [V73,T20] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V74 tmp64 [V74,T21] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V75 tmp65 [V75,T22] ( 3, 3 ) ref -> x1 single-def "arr expr"
; V76 tmp66 [V76,T31] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
; V77 tmp67 [V77,T23] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
;* V78 tmp68 [V78 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V79 tmp69 [V79,T09] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V80 tmp70 [V80,T46] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V81 cse0 [V81,T08] ( 8, 4 ) int -> x0 "CSE #06: aggressive"
; V82 cse1 [V82,T35] ( 3, 1.50) int -> x0 "CSE #04: moderate"
;
; Lcl frame size = 8
G_M40620_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
stp x23, x24, [sp, #0x38]
str x25, [sp, #0x48]
mov fp, sp
str xzr, [fp, #0x10] // [V49 tmp39]
mov x19, x0
mov w22, w1
mov x20, x2
mov w21, w3
;; size=44 bbWeight=1 PerfScore 8.50
G_M40620_IG02:
tst w21, #255
bne G_M40620_IG26
;; size=8 bbWeight=1 PerfScore 1.50
G_M40620_IG03:
ldr x0, [x19, #0x28]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x38]
blr x2
cbnz x0, G_M40620_IG04
ldr x0, [x19, #0x28]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x3, [x0]
ldr x3, [x3, #0x50]
ldr x3, [x3, #0x08]
blr x3
;; size=80 bbWeight=0.50 PerfScore 15.75
G_M40620_IG04:
ldr x0, [x19, #0x28]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x38]
blr x2
cbnz x0, G_M40620_IG05
ldr x23, [x19, #0x28]
movz x0, #0xD1FFAB1E // code for System.DateTime:get_UtcNow():System.DateTime
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
movz x3, #0xD1FFAB1E
- movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x2, [x3]
mov x3, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x4, #0xD1FFAB1E // code for System.DateTimeFormat:Format(System.DateTime,System.String,System.IFormatProvider,System.TimeSpan):System.String
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
mov x2, x0
mov x0, x23
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x3, [x23]
ldr x3, [x3, #0x50]
ldr x3, [x3, #0x08]
blr x3
- ;; size=148 bbWeight=0.50 PerfScore 24.25
+ ;; size=144 bbWeight=0.50 PerfScore 24.00
G_M40620_IG05:
ldr w0, [x19, #0x50]
cmp w0, #4
bne G_M40620_IG11
ldr x0, [x19, #0x10]
ldr x0, [x0, #0x20]
ldr x23, [x0, #0x20]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M40620_IG30
;; size=44 bbWeight=0.50 PerfScore 9.50
G_M40620_IG06:
movz x0, #0xD1FFAB1E // data for System.Net.HttpVersion:Version10
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x1, [x0]
cbnz x23, G_M40620_IG08
- ;; size=20 bbWeight=0.50 PerfScore 2.75
+ ;; size=16 bbWeight=0.50 PerfScore 2.50
G_M40620_IG07:
strb wzr, [x19, #0x58]
b G_M40620_IG09
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M40620_IG08:
mov x0, x23
movz x2, #0xD1FFAB1E // code for System.Version:CompareTo(System.Version):int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cmp w0, #0
ble G_M40620_IG07
mov w0, #1
str w0, [x19, #0x50]
;; size=40 bbWeight=0.50 PerfScore 4.50
G_M40620_IG09:
ldr x0, [x19, #0x10]
movz x1, #0xD1FFAB1E // code for System.Net.HttpListenerContext:get_Response():System.Net.HttpListenerResponse:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr w0, [x0, #0x54]
movz x1, #0xD1FFAB1E // code for System.Net.HttpListenerResponse:CanSendResponseBody(int):ubyte
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbz w0, G_M40620_IG10
movn x0, #0
str x0, [x19, #0x48]
b G_M40620_IG11
;; size=68 bbWeight=0.50 PerfScore 11.75
G_M40620_IG10:
str wzr, [x19, #0x50]
str xzr, [x19, #0x48]
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M40620_IG11:
ldr w0, [x19, #0x50]
cmp w0, #1
beq G_M40620_IG13
cmp w0, #0
cset x0, ne
uxtb w1, w22
tst w0, w1
beq G_M40620_IG12
ldr x0, [x19, #0x10]
movz x1, #0xD1FFAB1E // code for System.Net.HttpListenerContext:get_Response():System.Net.HttpListenerResponse:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr w0, [x0, #0x54]
movz x1, #0xD1FFAB1E // code for System.Net.HttpListenerResponse:CanSendResponseBody(int):ubyte
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
movn w2, #0
cmp w0, #0
cinc w0, w2, eq
sxtw x0, w0
str x0, [x19, #0x48]
;; size=104 bbWeight=0.50 PerfScore 15.25
G_M40620_IG12:
ldr w0, [x19, #0x50]
cbnz w0, G_M40620_IG13
ldr x22, [x19, #0x28]
add x0, x19, #72
movz x2, #0xD1FFAB1E
- movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr x0, [x0]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Number:<FormatInt64>g__FormatInt64Slow|22_0(long,System.String,System.IFormatProvider):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x2, x0
mov x0, x22
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x3, [x22]
ldr x3, [x3, #0x50]
ldr x3, [x3, #0x08]
blr x3
- ;; size=104 bbWeight=0.50 PerfScore 17.25
+ ;; size=100 bbWeight=0.50 PerfScore 17.00
G_M40620_IG13:
ldr w0, [x19, #0x54]
cmp w0, #0xD1FFAB1E
beq G_M40620_IG14
mov w1, #0xD1FFAB1E
mov w2, #0xD1FFAB1E
mov w3, #0xD1FFAB1E
cmp w0, #0xD1FFAB1E
ccmp w0, w1, z, ne
ccmp w0, w2, z, ne
ccmp w0, w3, z, ne
beq G_M40620_IG14
cmp w0, #0xD1FFAB1E
beq G_M40620_IG14
cmp w0, #0xD1FFAB1E
cset x0, eq
b G_M40620_IG15
;; size=64 bbWeight=0.50 PerfScore 6.25
G_M40620_IG14:
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M40620_IG15:
uxtb w22, w0
cbnz w22, G_M40620_IG16
ldr x0, [x19, #0x10]
ldr x0, [x0, #0x20]
movz x1, #0xD1FFAB1E // code for System.Net.HttpListenerRequest:get_KeepAlive():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
cset x22, eq
;; size=48 bbWeight=0.50 PerfScore 8.50
G_M40620_IG16:
ldrb w0, [x19, #0x58]
cmp w0, #0
cset x0, eq
orr w0, w0, w22
cbz w0, G_M40620_IG17
ldr x0, [x19, #0x28]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x3, [x0]
ldr x3, [x3, #0x50]
ldr x3, [x3, #0x08]
blr x3
mov w22, #1
;; size=68 bbWeight=0.50 PerfScore 11.00
G_M40620_IG17:
ldr w0, [x19, #0x50]
cmp w0, #1
bne G_M40620_IG18
ldr x0, [x19, #0x28]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x3, [x0]
ldr x3, [x3, #0x50]
ldr x3, [x3, #0x08]
blr x3
;; size=56 bbWeight=0.50 PerfScore 10.25
G_M40620_IG18:
ldr x0, [x19, #0x10]
ldr x0, [x0, #0x28]
ldr w0, [x0, #0x90]
cmp w0, #100
blt G_M40620_IG19
mov w0, #1
strb w0, [x19, #0x59]
cbnz w22, G_M40620_IG19
ldr x0, [x19, #0x28]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x3, [x0]
ldr x3, [x3, #0x50]
ldr x3, [x3, #0x08]
blr x3
mov w22, #1
;; size=80 bbWeight=0.50 PerfScore 14.75
G_M40620_IG19:
ldr x1, [x19, #0x10]
ldr x1, [x1, #0x20]
ldr x24, [x1, #0x20]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr w1, [x1]
tbz w1, #0, G_M40620_IG31
;; size=32 bbWeight=0.50 PerfScore 7.25
G_M40620_IG20:
movz x1, #0xD1FFAB1E // data for System.Net.HttpVersion:Version10
- movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
cbnz x24, G_M40620_IG27
- ;; size=20 bbWeight=0.50 PerfScore 2.75
+ ;; size=16 bbWeight=0.50 PerfScore 2.50
G_M40620_IG21:
ldrb w1, [x19, #0x58]
cbz w1, G_M40620_IG24
ldr x25, [x19, #0x28]
ldrb w1, [x25, #0x50]
cbnz w1, G_M40620_IG22
mov w1, #2
strb w1, [x25, #0x50]
;; size=28 bbWeight=0.50 PerfScore 6.25
G_M40620_IG22:
ldrb w1, [x25, #0x50]
cmp w1, #2
bne G_M40620_IG34
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr w1, [x1]
tbz w1, #0, G_M40620_IG32
;; size=32 bbWeight=0.50 PerfScore 5.00
G_M40620_IG23:
movz x1, #0xD1FFAB1E // data for System.Net.HttpResponseHeaderExtensions:s_names
- movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr w0, [x1, #0x08]
cmp w0, #3
bls G_M40620_IG35
ldr x1, [x1, #0x28]
mov x0, x25
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x3, [x25]
ldr x3, [x3, #0x50]
ldr x3, [x3, #0x08]
blr x3
- ;; size=64 bbWeight=0.50 PerfScore 12.00
+ ;; size=60 bbWeight=0.50 PerfScore 11.75
G_M40620_IG24:
cbnz w22, G_M40620_IG25
ldr x0, [x19, #0x28]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x3, [x0]
ldr x3, [x3, #0x50]
ldr x3, [x3, #0x08]
blr x3
;; size=48 bbWeight=0.50 PerfScore 8.50
G_M40620_IG25:
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.Net.HttpListenerResponse:ComputeCookies():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=24 bbWeight=0.50 PerfScore 3.00
G_M40620_IG26:
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x23, [x0]
movz x0, #40
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x25, x0
mov x1, x20
mov x2, x23
mov w3, #0xD1FFAB1E
mov w4, wzr
movz x5, #0xD1FFAB1E // code for System.IO.StreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,ubyte):this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
ldr w2, [x19, #0x54]
str w2, [x0, #0x08]
str x0, [fp, #0x10] // [V49 tmp39]
add x2, fp, #16 // [V49 tmp39]
mov w3, #1
mov x0, x25
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
mov w4, wzr
movz x5, #0xD1FFAB1E // code for System.IO.StreamWriter:WriteFormatHelper(System.String,System.ReadOnlySpan`1[System.Object],ubyte):this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
ldr x0, [x25, #0x48]
add x0, x0, #52
ldapr w0, [x0]
mov w1, #0xD1FFAB1E
tst w0, w1
bne G_M40620_IG28
b G_M40620_IG33
- ;; size=176 bbWeight=1 PerfScore 41.00
+ ;; size=172 bbWeight=1 PerfScore 40.50
G_M40620_IG27:
mov x0, x24
movz x2, #0xD1FFAB1E // code for System.Version:CompareTo(System.Version):int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cmp w0, #0
bgt G_M40620_IG25
b G_M40620_IG21
;; size=36 bbWeight=0.50 PerfScore 4.25
G_M40620_IG28:
mov x0, x25
mov w1, #1
mov w2, #1
movz x3, #0xD1FFAB1E // code for System.IO.StreamWriter:Flush(ubyte,ubyte):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.Net.HttpListenerResponse:get_StatusDescription():System.String:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
movz x1, #0xD1FFAB1E // code for System.Net.WebHeaderEncoding:GetBytes(System.String):ubyte[]
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
ldr w3, [x1, #0x08]
mov x0, x20
mov w2, wzr
ldr x4, [x20]
ldr x4, [x4, #0x60]
ldr x4, [x4, #0x30]
blr x4
mov x0, x25
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.IO.StreamWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x19, #0x28]
movz x1, #0xD1FFAB1E // code for System.Net.HttpListenerResponse:FormatHeaders(System.Net.WebHeaderCollection):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
mov x0, x25
movz x2, #0xD1FFAB1E // code for System.IO.StreamWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x25, #0x48]
add x0, x0, #52
ldapr w0, [x0]
mov w1, #0xD1FFAB1E
tst w0, w1
beq G_M40620_IG33
mov x0, x25
mov w1, #1
mov w2, #1
movz x3, #0xD1FFAB1E // code for System.IO.StreamWriter:Flush(ubyte,ubyte):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x0, x23
movz x1, #0xD1FFAB1E // code for System.Text.UTF8Encoding+UTF8EncodingSealed:get_Preamble():System.ReadOnlySpan`1[ubyte]:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov w24, w1
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.Net.HttpListenerResponse:EnsureResponseStream():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov w1, w24
mov x0, x20
ldr x2, [x20]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x18]
blr x2
tst w21, #255
cset x0, eq
strb w0, [x19, #0x5B]
;; size=340 bbWeight=1 PerfScore 96.50
G_M40620_IG29:
ldr x25, [sp, #0x48]
ldp x23, x24, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x50
ret lr
;; size=24 bbWeight=1 PerfScore 7.00
G_M40620_IG30:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M40620_IG06
;; size=20 bbWeight=0 PerfScore 0.00
G_M40620_IG31:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M40620_IG20
;; size=20 bbWeight=0 PerfScore 0.00
G_M40620_IG32:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M40620_IG23
;; size=20 bbWeight=0 PerfScore 0.00
G_M40620_IG33:
movz x0, #0xD1FFAB1E // code for System.IO.StreamWriter:ThrowAsyncIOInProgress()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M40620_IG34:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_net_headers_rsp():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for System.InvalidOperationException:.ctor(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x19
bl CORINFO_HELP_THROW
brk_unix #0
;; size=80 bbWeight=0 PerfScore 0.00
G_M40620_IG35:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1992, prolog size 28, PerfScore 357.50, instruction count 498, allocated bytes for code 1992 (MethodHash=8c746153) for method System.Net.HttpListenerResponse:SendHeaders(ubyte,System.IO.MemoryStream,ubyte):this (FullOpts)
+; Total bytes of code 1968, prolog size 28, PerfScore 355.75, instruction count 492, allocated bytes for code 1968 (MethodHash=8c746153) for method System.Net.HttpListenerResponse:SendHeaders(ubyte,System.IO.MemoryStream,ubyte):this (FullOpts)
-24 (-2.12 % of base) - System.Net.Mail.SmtpReplyReaderFactory+ReadLinesAsyncResult:Read():this
; Assembly listing for method System.Net.Mail.SmtpReplyReaderFactory+ReadLinesAsyncResult:Read():this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 24 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T03] ( 7, 30 ) ref -> x19 this class-hnd single-def <System.Net.Mail.SmtpReplyReaderFactory+ReadLinesAsyncResult>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T01] ( 11, 80 ) ref -> x21 class-hnd exact "Inlining Arg" <System.Net.BufferedReadStream>
-; V04 tmp2 [V04,T05] ( 4, 28 ) ref -> x22 class-hnd "Inlining Arg" <ubyte[]>
-; V05 tmp3 [V05,T02] ( 6, 36 ) int -> x23 "Inlining Arg"
+; V03 tmp1 [V03,T01] ( 11, 80 ) ref -> x20 class-hnd exact "Inlining Arg" <System.Net.BufferedReadStream>
+; V04 tmp2 [V04,T05] ( 4, 28 ) ref -> x21 class-hnd "Inlining Arg" <ubyte[]>
+; V05 tmp3 [V05,T02] ( 6, 36 ) int -> x22 "Inlining Arg"
;* V06 tmp4 [V06 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.CancellationToken>
-; V07 tmp5 [V07,T06] ( 4, 28 ) ref -> x24 class-hnd exact "Inlining Arg" <System.AsyncCallback>
+; V07 tmp5 [V07,T06] ( 4, 28 ) ref -> x23 class-hnd exact "Inlining Arg" <System.AsyncCallback>
;* V08 tmp6 [V08 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V09 tmp7 [V09,T04] ( 6, 30 ) ref -> x25 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[int]>
-; V10 tmp8 [V10,T24] ( 2, 8 ) int -> x0 "Inlining Arg"
+; V09 tmp7 [V09,T04] ( 6, 30 ) ref -> x24 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[int]>
+; V10 tmp8 [V10,T23] ( 2, 8 ) int -> x0 "Inlining Arg"
;* V11 tmp9 [V11 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V12 tmp10 [V12 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V13 tmp11 [V13,T28] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.NotSupportedException>
-; V14 tmp12 [V14,T10] ( 10, 20 ) int -> x26 "Inline return value spill temp"
-; V15 tmp13 [V15,T19] ( 3, 12 ) int -> x26 "Inlining Arg"
-; V16 tmp14 [V16,T26] ( 3, 6 ) ref -> x25 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[int]>
+; V13 tmp11 [V13,T27] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.NotSupportedException>
+; V14 tmp12 [V14,T10] ( 10, 20 ) int -> x25 "Inline return value spill temp"
+; V15 tmp13 [V15,T19] ( 3, 12 ) int -> x25 "Inlining Arg"
+; V16 tmp14 [V16,T25] ( 3, 6 ) ref -> x24 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[int]>
;* V17 tmp15 [V17 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V18 tmp16 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V19 tmp17 [V19,T13] ( 4, 16 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.Threading.Tasks.Task`1[int]>
+; V19 tmp17 [V19,T13] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.Threading.Tasks.Task`1[int]>
;* V20 tmp18 [V20 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
;* V21 tmp19 [V21 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V22 tmp20 [V22 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V23 tmp21 [V23 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V24 tmp22 [V24 ] ( 11, 22 ) struct (64) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.BufferedReadStream+<ReadMoreAsync>d__14>
+; V24 tmp22 [V24 ] ( 11, 22 ) struct (64) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.BufferedReadStream+<ReadMoreAsync>d__14>
;* V25 tmp23 [V25 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]>
-; V26 tmp24 [V26,T23] ( 2, 8 ) ref -> x25 class-hnd "dup spill" <System.Threading.Tasks.Task`1[int]>
-; V27 tmp25 [V27,T21] ( 4, 8 ) ref -> x25
-; V28 tmp26 [V28,T00] ( 10, 92 ) ref -> x21 class-hnd exact "NewObj constructor temp" <System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult>
+; V26 tmp24 [V26,T22] ( 2, 8 ) ref -> x24 class-hnd "dup spill" <System.Threading.Tasks.Task`1[int]>
+; V27 tmp25 [V27,T20] ( 4, 8 ) ref -> x24
+; V28 tmp26 [V28,T00] ( 10, 92 ) ref -> x20 class-hnd exact "NewObj constructor temp" <System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult>
;* V29 tmp27 [V29 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable>
;* V30 tmp28 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
-; V31 tmp29 [V31,T11] ( 5, 20 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.Action>
+; V31 tmp29 [V31,T11] ( 5, 20 ) ref -> x22 class-hnd exact "NewObj constructor temp" <System.Action>
;* V32 tmp30 [V32 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V33 tmp31 [V33,T14] ( 4, 16 ) ref -> x22 class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
+; V33 tmp31 [V33,T14] ( 4, 16 ) ref -> x21 class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
;* V34 tmp32 [V34 ] ( 0, 0 ) ref -> zero-ref
;* V35 tmp33 [V35 ] ( 0, 0 ) ref -> zero-ref
;* V36 tmp34 [V36 ] ( 0, 0 ) int -> zero-ref
;* V37 tmp35 [V37 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable>
;* V38 tmp36 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
-; V39 tmp37 [V39,T15] ( 3, 12 ) ref -> x25 class-hnd "Inlining Arg" <System.Action>
+; V39 tmp37 [V39,T15] ( 3, 12 ) ref -> x24 class-hnd "Inlining Arg" <System.Action>
;* V40 tmp38 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
-;* V41 tmp39 [V41,T27] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V41 tmp39 [V41,T26] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V42 tmp40 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TplEventSource>
;* V43 tmp41 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.BufferedReadStream>
;* V44 tmp42 [V44 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TaskAwaiter`1[int]>
-; V45 tmp43 [V45,T07] ( 4, 28 ) ref -> x24 class-hnd "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
+; V45 tmp43 [V45,T07] ( 4, 28 ) ref -> x23 class-hnd "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
;* V46 tmp44 [V46 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter`1[int]>
;* V47 tmp45 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
;* V48 tmp46 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
-;* V49 tmp47 [V49,T25] ( 0, 0 ) ref -> zero-ref "field V06._source (fldOffset=0x0)" P-INDEP
+;* V49 tmp47 [V49,T24] ( 0, 0 ) ref -> zero-ref "field V06._source (fldOffset=0x0)" P-INDEP
;* V50 tmp48 [V50 ] ( 0, 0 ) ref -> zero-ref "field V08._source (fldOffset=0x0)" P-INDEP
;* V51 tmp49 [V51 ] ( 0, 0 ) ref -> zero-ref "field V21._source (fldOffset=0x0)" P-INDEP
;* V52 tmp50 [V52 ] ( 0, 0 ) ref -> zero-ref "field V25.m_task (fldOffset=0x0)" P-INDEP
;* V53 tmp51 [V53 ] ( 0, 0 ) ref -> zero-ref "field V30.m_task (fldOffset=0x0)" P-INDEP
;* V54 tmp52 [V54 ] ( 0, 0 ) int -> zero-ref "field V30.m_options (fldOffset=0x8)" P-INDEP
;* V55 tmp53 [V55 ] ( 0, 0 ) ref -> zero-ref "field V38.m_task (fldOffset=0x0)" P-INDEP
;* V56 tmp54 [V56 ] ( 0, 0 ) int -> zero-ref "field V38.m_options (fldOffset=0x8)" P-INDEP
;* V57 tmp55 [V57 ] ( 0, 0 ) ref -> zero-ref "field V44.m_task (fldOffset=0x0)" P-INDEP
;* V58 tmp56 [V58 ] ( 0, 0 ) ref -> zero-ref "field V46.m_task (fldOffset=0x0)" P-INDEP
; V59 tmp57 [V59,T16] ( 3, 12 ) ref -> x0 "arr expr"
; V60 tmp58 [V60,T17] ( 3, 12 ) ref -> x0 "argument with side effect"
; V61 tmp59 [V61,T18] ( 3, 12 ) ref -> x0 "argument with side effect"
-; V62 tmp60 [V62,T29] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V62 tmp60 [V62,T28] ( 2, 0 ) ref -> x1 "argument with side effect"
; V63 cse0 [V63,T08] ( 3, 24 ) ref -> x0 "CSE #02: aggressive"
-; V64 cse1 [V64,T20] ( 2, 9 ) ref -> x20 hoist "CSE #04: moderate"
-; V65 cse2 [V65,T09] ( 3, 24 ) ref -> x0 "CSE #01: aggressive"
-; V66 cse3 [V66,T12] ( 4, 20 ) int -> x1 "CSE #06: aggressive"
-; V67 cse4 [V67,T22] ( 4, 8 ) int -> x27 "CSE #07: moderate"
+; V64 cse1 [V64,T09] ( 3, 24 ) ref -> x0 "CSE #01: aggressive"
+; V65 cse2 [V65,T12] ( 4, 20 ) int -> x1 "CSE #04: aggressive"
+; V66 cse3 [V66,T21] ( 4, 8 ) int -> x26 "CSE #05: moderate"
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M32800_IG01:
- stp fp, lr, [sp, #-0xA0]!
- stp x19, x20, [sp, #0x58]
- stp x21, x22, [sp, #0x68]
- stp x23, x24, [sp, #0x78]
- stp x25, x26, [sp, #0x88]
- str x27, [sp, #0x98]
+ stp fp, lr, [sp, #-0x90]!
+ stp x19, x20, [sp, #0x50]
+ stp x21, x22, [sp, #0x60]
+ stp x23, x24, [sp, #0x70]
+ stp x25, x26, [sp, #0x80]
mov fp, sp
- add x9, fp, #24
+ add x9, fp, #16
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
mov x19, x0
- ;; size=48 bbWeight=1 PerfScore 10.00
+ ;; size=44 bbWeight=8 PerfScore 72.00
G_M32800_IG02:
+ ldr x0, [x19, #0x48]
+ ldp x20, x0, [x0, #0x08]
+ mov x21, x0
+ ldr w22, [x0, #0x08]
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldr x20, [x0]
- ;; size=16 bbWeight=1 PerfScore 4.50
-G_M32800_IG03:
- ldr x0, [x19, #0x48]
- ldp x21, x0, [x0, #0x08]
- mov x22, x0
- ldr w23, [x0, #0x08]
- mov x24, x20
- ldp w0, w1, [x21, #0x20]
+ ldr x23, [x0]
+ ldp w0, w1, [x20, #0x20]
cmp w1, w0
- blt G_M32800_IG05
- ;; size=32 bbWeight=8 PerfScore 124.00
-G_M32800_IG04:
- ldr x0, [x21, #0x10]
+ blt G_M32800_IG04
+ ;; size=40 bbWeight=8 PerfScore 152.00
+G_M32800_IG03:
+ ldr x0, [x20, #0x10]
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x28]
blr x1
- cbz w0, G_M32800_IG28
- ldr x0, [x21, #0x10]
- mov x1, x22
+ cbz w0, G_M32800_IG27
+ ldr x0, [x20, #0x10]
+ mov x1, x21
mov x4, xzr
- mov w3, w23
+ mov w3, w22
mov w2, wzr
ldr x5, [x0]
ldr x5, [x5, #0x58]
ldr x5, [x5, #0x18]
blr x5
- mov x25, x0
- b G_M32800_IG10
+ mov x24, x0
+ b G_M32800_IG09
;; size=68 bbWeight=2 PerfScore 61.00
-G_M32800_IG05:
- ldr w0, [x21, #0x20]
- sub w26, w0, w1
- cmp w23, w26
- ble G_M32800_IG06
- b G_M32800_IG07
+G_M32800_IG04:
+ ldr w0, [x20, #0x20]
+ sub w25, w0, w1
+ cmp w22, w25
+ ble G_M32800_IG05
+ b G_M32800_IG06
;; size=20 bbWeight=2 PerfScore 12.00
-G_M32800_IG06:
- sxtw w26, w23
+G_M32800_IG05:
+ sxtw w25, w22
;; size=4 bbWeight=2 PerfScore 1.00
-G_M32800_IG07:
- ldr x0, [x21, #0x18]
- mov x2, x22
- mov w4, w26
+G_M32800_IG06:
+ ldr x0, [x20, #0x18]
+ mov x2, x21
+ mov w4, w25
mov w3, wzr
movz x5, #0xD1FFAB1E // code for System.Buffer:BlockCopy(System.Array,int,System.Array,int,int)
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
- ldr w0, [x21, #0x24]
- add w0, w0, w26
- str w0, [x21, #0x24]
- cmp w26, w23
- beq G_M32800_IG08
- ldrb w0, [x21, #0x28]
- cbnz w0, G_M32800_IG11
+ ldr w0, [x20, #0x24]
+ add w0, w0, w25
+ str w0, [x20, #0x24]
+ cmp w25, w22
+ beq G_M32800_IG07
+ ldrb w0, [x20, #0x28]
+ cbnz w0, G_M32800_IG10
;; size=64 bbWeight=2 PerfScore 40.00
-G_M32800_IG08:
- add w27, w26, #1
- cmp w27, #10
- bhs G_M32800_IG13
+G_M32800_IG07:
+ add w26, w25, #1
+ cmp w26, #10
+ bhs G_M32800_IG12
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
- tbz w0, #0, G_M32800_IG25
+ tbz w0, #0, G_M32800_IG24
;; size=32 bbWeight=2 PerfScore 15.00
-G_M32800_IG09:
+G_M32800_IG08:
movz x0, #0xD1FFAB1E // data for System.Threading.Tasks.TaskCache:s_int32Tasks
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
ldr w1, [x0, #0x08]
- cmp w27, w1
- bhs G_M32800_IG29
+ cmp w26, w1
+ bhs G_M32800_IG28
add x0, x0, #16
- ldr x25, [x0, w27, UXTW #3]
- ;; size=36 bbWeight=2 PerfScore 25.00
-G_M32800_IG10:
- cbnz x25, G_M32800_IG14
- b G_M32800_IG27
+ ldr x24, [x0, w26, UXTW #3]
+ ;; size=32 bbWeight=2 PerfScore 24.00
+G_M32800_IG09:
+ cbnz x24, G_M32800_IG13
+ b G_M32800_IG26
;; size=8 bbWeight=8 PerfScore 16.00
-G_M32800_IG11:
- sub w0, w23, w26
+G_M32800_IG10:
+ sub w0, w22, w25
+ str xzr, [fp, #0x30]
+ str x20, [fp, #0x10] // [V24 tmp22]
+ str w25, [fp, #0x2C] // [V24 tmp22+0x1c]
+ str x21, [fp, #0x18] // [V24 tmp22+0x08]
+ stp w25, w0, [fp, #0x24] // [V24 tmp22+0x14], [V24 tmp22+0x18]
str xzr, [fp, #0x38]
- str x21, [fp, #0x18] // [V24 tmp22]
- str w26, [fp, #0x34] // [V24 tmp22+0x1c]
- str x22, [fp, #0x20] // [V24 tmp22+0x08]
- stp w26, w0, [fp, #0x2C] // [V24 tmp22+0x14], [V24 tmp22+0x18]
- str xzr, [fp, #0x40]
movn w0, #0
- str w0, [fp, #0x28] // [V24 tmp22+0x10]
- add x0, fp, #24 // [V24 tmp22]
+ str w0, [fp, #0x20] // [V24 tmp22+0x10]
+ add x0, fp, #16 // [V24 tmp22]
movz x1, #0xD1FFAB1E // code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.BufferedReadStream+<ReadMoreAsync>d__14](byref)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- ldr x25, [fp, #0x38] // [V24 tmp22+0x20]
- cbnz x25, G_M32800_IG12
- add x0, fp, #56 // [V24 tmp22+0x20]
+ ldr x24, [fp, #0x30] // [V24 tmp22+0x20]
+ cbnz x24, G_M32800_IG11
+ add x0, fp, #48 // [V24 tmp22+0x20]
movz x1, #0xD1FFAB1E // code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[int]:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- mov x25, x0
+ mov x24, x0
;; size=96 bbWeight=2 PerfScore 47.00
-G_M32800_IG12:
- b G_M32800_IG10
+G_M32800_IG11:
+ b G_M32800_IG09
;; size=4 bbWeight=2 PerfScore 2.00
-G_M32800_IG13:
+G_M32800_IG12:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x25, x0
- add x0, x25, #52
+ mov x24, x0
+ add x0, x24, #52
mov w1, #0xD1FFAB1E
stlr w1, [x0]
- str w26, [x25, #0x38]
- b G_M32800_IG10
+ str w25, [x24, #0x38]
+ b G_M32800_IG09
;; size=40 bbWeight=2 PerfScore 14.00
-G_M32800_IG14:
+G_M32800_IG13:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x21, x0
- add x14, x21, #8
- mov x15, x25
+ mov x20, x0
+ add x14, x20, #8
+ mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
- add x14, x21, #24
+ add x14, x20, #24
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
- add x1, x25, #52
+ add x1, x24, #52
ldapr w1, [x1]
mov w0, #0xD1FFAB1E
tst w1, w0
- beq G_M32800_IG16
+ beq G_M32800_IG15
;; size=64 bbWeight=8 PerfScore 100.00
-G_M32800_IG15:
+G_M32800_IG14:
mov w1, #1
- strb w1, [x21, #0x20]
- mov x1, x21
- ldr x0, [x24, #0x08]
- ldr x2, [x24, #0x18]
+ strb w1, [x20, #0x20]
+ mov x1, x20
+ ldr x0, [x23, #0x08]
+ ldr x2, [x23, #0x18]
blr x2
- b G_M32800_IG20
+ b G_M32800_IG19
;; size=28 bbWeight=2 PerfScore 20.00
-G_M32800_IG16:
- add x14, x21, #16
- mov x15, x24
+G_M32800_IG15:
+ add x14, x20, #16
+ mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
- ldr x22, [x21, #0x08]
- ldrsb wzr, [x22]
+ ldr x21, [x20, #0x08]
+ ldrsb wzr, [x21]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- add x14, x23, #8
- mov x15, x21
+ mov x22, x0
+ add x14, x22, #8
+ mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E // code for System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult:<.ctor>b__2_0():this
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- str x0, [x23, #0x18]
- mov x25, x23
+ str x0, [x22, #0x18]
+ mov x24, x22
movz x0, #40
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
- tbz w0, #0, G_M32800_IG26
+ tbz w0, #0, G_M32800_IG25
;; size=92 bbWeight=2 PerfScore 43.00
-G_M32800_IG17:
+G_M32800_IG16:
movz x0, #0xD1FFAB1E // data for System.Threading.Tasks.TplEventSource:Log
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
ldrb w0, [x0, #0x9D]
- cbnz w0, G_M32800_IG18
+ cbnz w0, G_M32800_IG17
movz x0, #0xD1FFAB1E // data for System.Threading.Tasks.Task:s_asyncDebuggingEnabled
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrb w0, [x0]
- cbz w0, G_M32800_IG19
- ;; size=44 bbWeight=2 PerfScore 28.00
-G_M32800_IG18:
- mov x0, x22
- mov x1, x23
+ cbz w0, G_M32800_IG18
+ ;; size=40 bbWeight=2 PerfScore 27.00
+G_M32800_IG17:
+ mov x0, x21
+ mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.TaskAwaiter:OutputWaitEtwEvents(System.Threading.Tasks.Task,System.Action):System.Action
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- mov x25, x0
+ mov x24, x0
;; size=32 bbWeight=2 PerfScore 14.00
-G_M32800_IG19:
- mov x0, x22
- mov x1, x25
+G_M32800_IG18:
+ mov x0, x21
+ mov x1, x24
mov w2, wzr
mov w3, #1
movz x4, #0xD1FFAB1E // code for System.Threading.Tasks.Task:SetContinuationForAwait(System.Action,ubyte,ubyte):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
;; size=36 bbWeight=2 PerfScore 15.00
-G_M32800_IG20:
- mov x0, x21
+G_M32800_IG19:
+ mov x0, x20
movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult:get_CompletedSynchronously():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- cbnz w0, G_M32800_IG22
+ cbnz w0, G_M32800_IG21
;; size=28 bbWeight=8 PerfScore 56.00
-G_M32800_IG21:
- ldr x27, [sp, #0x98]
- ldp x25, x26, [sp, #0x88]
- ldp x23, x24, [sp, #0x78]
- ldp x21, x22, [sp, #0x68]
- ldp x19, x20, [sp, #0x58]
- ldp fp, lr, [sp], #0xA0
+G_M32800_IG20:
+ ldp x25, x26, [sp, #0x80]
+ ldp x23, x24, [sp, #0x70]
+ ldp x21, x22, [sp, #0x60]
+ ldp x19, x20, [sp, #0x50]
+ ldp fp, lr, [sp], #0x90
ret lr
- ;; size=28 bbWeight=1 PerfScore 8.00
-G_M32800_IG22:
+ ;; size=24 bbWeight=1 PerfScore 6.00
+G_M32800_IG21:
ldr x0, [x19, #0x48]
ldr x0, [x0, #0x08]
ldrsb wzr, [x0]
- mov x0, x21
+ mov x0, x20
movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.TaskToAsyncResult:Unwrap[int](System.IAsyncResult):System.Threading.Tasks.Task`1[int]
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- mov x24, x0
- add x0, x24, #52
+ mov x23, x0
+ add x0, x23, #52
ldapr w0, [x0]
mov w1, #0xD1FFAB1E
and w0, w0, w1
mov w1, #0xD1FFAB1E
cmp w0, w1
- beq G_M32800_IG24
+ beq G_M32800_IG23
;; size=68 bbWeight=4 PerfScore 88.00
-G_M32800_IG23:
- mov x0, x24
+G_M32800_IG22:
+ mov x0, x23
mov w1, wzr
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=28 bbWeight=2 PerfScore 13.00
-G_M32800_IG24:
- ldr w0, [x24, #0x38]
+G_M32800_IG23:
+ ldr w0, [x23, #0x38]
str w0, [x19, #0x50]
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.Net.Mail.SmtpReplyReaderFactory+ReadLinesAsyncResult:ProcessRead():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- cbnz w0, G_M32800_IG03
- b G_M32800_IG21
+ cbnz w0, G_M32800_IG02
+ b G_M32800_IG20
;; size=40 bbWeight=4 PerfScore 48.00
-G_M32800_IG25:
+G_M32800_IG24:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
- b G_M32800_IG09
+ b G_M32800_IG08
;; size=20 bbWeight=0 PerfScore 0.00
-G_M32800_IG26:
+G_M32800_IG25:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
- b G_M32800_IG17
+ b G_M32800_IG16
;; size=20 bbWeight=0 PerfScore 0.00
-G_M32800_IG27:
+G_M32800_IG26:
movz w0, #0xD1FFAB1E
movk w0, #1 LSL #16
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
movz x1, #0xD1FFAB1E // code for System.ArgumentNullException:Throw(System.String)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=48 bbWeight=0 PerfScore 0.00
-G_M32800_IG28:
+G_M32800_IG27:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_ReadNotSupported():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for System.NotSupportedException:.ctor(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x19
bl CORINFO_HELP_THROW
brk_unix #0
;; size=80 bbWeight=0 PerfScore 0.00
-G_M32800_IG29:
+G_M32800_IG28:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1132, prolog size 44, PerfScore 804.50, instruction count 283, allocated bytes for code 1132 (MethodHash=ac987fdf) for method System.Net.Mail.SmtpReplyReaderFactory+ReadLinesAsyncResult:Read():this (FullOpts)
+; Total bytes of code 1108, prolog size 40, PerfScore 886.00, instruction count 277, allocated bytes for code 1108 (MethodHash=ac987fdf) for method System.Net.Mail.SmtpReplyReaderFactory+ReadLinesAsyncResult:Read():this (FullOpts)
-24 (-2.10 % of base) - System.Net.Mime.SmtpDateTime:ToString():System.String:this
; Assembly listing for method System.Net.Mime.SmtpDateTime:ToString():System.String:this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 21 single block inlinees; 22 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 7, 5.50) ref -> x19 this class-hnd single-def <System.Net.Mime.SmtpDateTime>
;* V01 loc0 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.TimeSpan>
; V02 loc1 [V02,T03] ( 8, 4 ) ref -> x21 class-hnd <System.IFormatProvider>
-; V03 loc2 [V03 ] ( 21, 10.50) struct (40) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
-; V04 loc3 [V04 ] ( 23, 11.50) struct (40) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
+; V03 loc2 [V03 ] ( 20, 10 ) struct (40) [fp+0x40] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
+; V04 loc3 [V04 ] ( 22, 11 ) struct (40) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref
;* V07 tmp2 [V07 ] ( 0, 0 ) byref -> zero-ref
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref
-;* V09 tmp4 [V09,T36] ( 0, 0 ) byref -> zero-ref single-def
+;* V09 tmp4 [V09,T37] ( 0, 0 ) byref -> zero-ref single-def
; V10 tmp5 [V10,T08] ( 5, 2.50) ref -> x1
;* V11 tmp6 [V11 ] ( 0, 0 ) ref -> zero-ref
;* V12 tmp7 [V12 ] ( 0, 0 ) byref -> zero-ref
;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref
;* V14 tmp9 [V14 ] ( 0, 0 ) byref -> zero-ref
-; V15 tmp10 [V15,T28] ( 2, 1 ) int -> x1
+; V15 tmp10 [V15,T29] ( 2, 1 ) int -> x1
;* V16 tmp11 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
; V17 tmp12 [V17,T01] ( 5, 5 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
;* V18 tmp13 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V19 tmp14 [V19 ] ( 0, 0 ) byref -> zero-ref
;* V20 tmp15 [V20 ] ( 0, 0 ) byref -> zero-ref
-; V21 tmp16 [V21,T29] ( 2, 1 ) int -> x1
+; V21 tmp16 [V21,T30] ( 2, 1 ) int -> x1
;* V22 tmp17 [V22 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V23 tmp18 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V24 tmp19 [V24,T22] ( 3, 1.50) ubyte -> x1 "Inline return value spill temp"
+; V24 tmp19 [V24,T21] ( 3, 1.50) ubyte -> x1 "Inline return value spill temp"
;* V25 tmp20 [V25 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V26 tmp21 [V26,T04] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V27 tmp22 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V28 tmp23 [V28,T12] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
-; V29 tmp24 [V29,T16] ( 2, 2 ) int -> x0 "Inlining Arg"
-;* V30 tmp25 [V30,T30] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V28 tmp23 [V28,T11] ( 2, 2 ) byref -> x2 single-def "Inlining Arg"
+; V29 tmp24 [V29,T15] ( 2, 2 ) int -> x0 "Inlining Arg"
+;* V30 tmp25 [V30,T31] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V31 tmp26 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V32 tmp27 [V32 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V33 tmp28 [V33 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V34 tmp29 [V34 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V35 tmp30 [V35,T13] ( 2, 2 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.String>
+; V35 tmp30 [V35,T12] ( 2, 2 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.String>
;* V36 tmp31 [V36 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V37 tmp32 [V37,T07] ( 3, 3 ) int -> x1 "Inlining Arg"
;* V38 tmp33 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V39 tmp34 [V39 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V40 tmp35 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V41 tmp36 [V41 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V42 tmp37 [V42 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V43 tmp38 [V43 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V44 tmp39 [V44,T19] ( 3, 1.50) ref -> x1 class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V44 tmp39 [V44,T18] ( 3, 1.50) ref -> x1 class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V45 tmp40 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
; V46 tmp41 [V46,T02] ( 5, 5 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
;* V47 tmp42 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V48 tmp43 [V48 ] ( 0, 0 ) byref -> zero-ref
;* V49 tmp44 [V49 ] ( 0, 0 ) byref -> zero-ref
-; V50 tmp45 [V50,T31] ( 2, 1 ) int -> x1
+; V50 tmp45 [V50,T32] ( 2, 1 ) int -> x1
;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V52 tmp47 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V53 tmp48 [V53,T23] ( 3, 1.50) ubyte -> x1 "Inline return value spill temp"
+; V53 tmp48 [V53,T22] ( 3, 1.50) ubyte -> x1 "Inline return value spill temp"
;* V54 tmp49 [V54 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V55 tmp50 [V55,T05] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V56 tmp51 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V57 tmp52 [V57,T14] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
-; V58 tmp53 [V58,T17] ( 2, 2 ) int -> x0 "Inlining Arg"
-;* V59 tmp54 [V59,T32] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V57 tmp52 [V57,T13] ( 2, 2 ) byref -> x2 single-def "Inlining Arg"
+; V58 tmp53 [V58,T16] ( 2, 2 ) int -> x0 "Inlining Arg"
+;* V59 tmp54 [V59,T33] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V60 tmp55 [V60 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V61 tmp56 [V61 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V62 tmp57 [V62 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V63 tmp58 [V63 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V64 tmp59 [V64,T06] ( 4, 4 ) int -> x2 "Inlining Arg"
-;* V65 tmp60 [V65,T35] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V65 tmp60 [V65,T36] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V66 tmp61 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V67 tmp62 [V67,T15] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
-; V68 tmp63 [V68,T18] ( 2, 2 ) int -> x2 "Inlining Arg"
-;* V69 tmp64 [V69,T33] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V67 tmp62 [V67,T14] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
+; V68 tmp63 [V68,T17] ( 2, 2 ) int -> x2 "Inlining Arg"
+;* V69 tmp64 [V69,T34] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V70 tmp65 [V70 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V71 tmp66 [V71 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V72 tmp67 [V72 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V73 tmp68 [V73 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V74 tmp69 [V74,T10] ( 4, 2.50) long -> x20 "field V01._ticks (fldOffset=0x0)" P-INDEP
-; V75 tmp70 [V75,T20] ( 3, 1.50) byref -> x23 "field V23._reference (fldOffset=0x0)" P-INDEP
-; V76 tmp71 [V76,T24] ( 3, 1.50) int -> x24 "field V23._length (fldOffset=0x8)" P-INDEP
+; V74 tmp69 [V74,T09] ( 4, 2.50) long -> x20 "field V01._ticks (fldOffset=0x0)" P-INDEP
+; V75 tmp70 [V75,T19] ( 3, 1.50) byref -> x22 "field V23._reference (fldOffset=0x0)" P-INDEP
+; V76 tmp71 [V76,T23] ( 3, 1.50) int -> x23 "field V23._length (fldOffset=0x8)" P-INDEP
;* V77 tmp72 [V77 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
;* V78 tmp73 [V78 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
;* V79 tmp74 [V79 ] ( 0, 0 ) byref -> zero-ref single-def "field V27._reference (fldOffset=0x0)" P-INDEP
;* V80 tmp75 [V80 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
;* V81 tmp76 [V81 ] ( 0, 0 ) byref -> zero-ref single-def "field V31._reference (fldOffset=0x0)" P-INDEP
;* V82 tmp77 [V82 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
;* V83 tmp78 [V83 ] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP
;* V84 tmp79 [V84 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
;* V85 tmp80 [V85 ] ( 0, 0 ) byref -> zero-ref "field V36._reference (fldOffset=0x0)" P-INDEP
;* V86 tmp81 [V86 ] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
-; V87 tmp82 [V87,T26] ( 2, 1 ) byref -> x0 single-def "field V38._reference (fldOffset=0x0)" P-INDEP
+; V87 tmp82 [V87,T27] ( 2, 1 ) byref -> x0 single-def "field V38._reference (fldOffset=0x0)" P-INDEP
;* V88 tmp83 [V88 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
;* V89 tmp84 [V89 ] ( 0, 0 ) byref -> zero-ref single-def "field V40._reference (fldOffset=0x0)" P-INDEP
;* V90 tmp85 [V90 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
-; V91 tmp86 [V91,T27] ( 2, 1 ) byref -> x0 single-def "field V41._reference (fldOffset=0x0)" P-INDEP
-; V92 tmp87 [V92,T34] ( 2, 1 ) int -> x1 "field V41._length (fldOffset=0x8)" P-INDEP
-; V93 tmp88 [V93,T21] ( 3, 1.50) byref -> x11 "field V52._reference (fldOffset=0x0)" P-INDEP
-; V94 tmp89 [V94,T25] ( 3, 1.50) int -> x1 "field V52._length (fldOffset=0x8)" P-INDEP
+; V91 tmp86 [V91,T28] ( 2, 1 ) byref -> x0 single-def "field V41._reference (fldOffset=0x0)" P-INDEP
+; V92 tmp87 [V92,T35] ( 2, 1 ) int -> x1 "field V41._length (fldOffset=0x8)" P-INDEP
+; V93 tmp88 [V93,T20] ( 3, 1.50) byref -> x11 "field V52._reference (fldOffset=0x0)" P-INDEP
+; V94 tmp89 [V94,T24] ( 3, 1.50) int -> x1 "field V52._length (fldOffset=0x8)" P-INDEP
;* V95 tmp90 [V95 ] ( 0, 0 ) byref -> zero-ref "field V54._reference (fldOffset=0x0)" P-INDEP
;* V96 tmp91 [V96 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
;* V97 tmp92 [V97 ] ( 0, 0 ) byref -> zero-ref single-def "field V56._reference (fldOffset=0x0)" P-INDEP
;* V98 tmp93 [V98 ] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP
;* V99 tmp94 [V99 ] ( 0, 0 ) byref -> zero-ref single-def "field V60._reference (fldOffset=0x0)" P-INDEP
;* V100 tmp95 [V100 ] ( 0, 0 ) int -> zero-ref "field V60._length (fldOffset=0x8)" P-INDEP
;* V101 tmp96 [V101 ] ( 0, 0 ) byref -> zero-ref "field V63._reference (fldOffset=0x0)" P-INDEP
;* V102 tmp97 [V102 ] ( 0, 0 ) int -> zero-ref "field V63._length (fldOffset=0x8)" P-INDEP
;* V103 tmp98 [V103 ] ( 0, 0 ) byref -> zero-ref single-def "field V66._reference (fldOffset=0x0)" P-INDEP
;* V104 tmp99 [V104 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
;* V105 tmp100 [V105 ] ( 0, 0 ) byref -> zero-ref single-def "field V70._reference (fldOffset=0x0)" P-INDEP
;* V106 tmp101 [V106 ] ( 0, 0 ) int -> zero-ref "field V70._length (fldOffset=0x8)" P-INDEP
-; V107 cse0 [V107,T09] ( 5, 2.50) ref -> x22 multi-def "CSE #04: moderate"
-; V108 cse1 [V108,T11] ( 4, 2 ) int -> x23 "CSE #13: moderate"
+; V107 cse0 [V107,T10] ( 4, 2 ) int -> x22 "CSE #13: moderate"
+; V108 cse1 [V108,T25] ( 3, 1.50) int -> x1 "CSE #02: moderate"
+; V109 cse2 [V109,T26] ( 3, 1.50) int -> x1 "CSE #11: moderate"
;
-; Lcl frame size = 80
+; Lcl frame size = 88
G_M22644_IG01:
stp fp, lr, [sp, #-0x90]!
- stp x19, x20, [sp, #0x60]
- stp x21, x22, [sp, #0x70]
- stp x23, x24, [sp, #0x80]
+ stp x19, x20, [sp, #0x68]
+ stp x21, x22, [sp, #0x78]
+ str x23, [sp, #0x88]
mov fp, sp
- add x9, fp, #16
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
stp xzr, xzr, [x9, #0x40]
mov x19, x0
;; size=44 bbWeight=1 PerfScore 9.00
G_M22644_IG02:
ldr x20, [x19, #0x18]
ldrb w0, [x19, #0x08]
cbnz w0, G_M22644_IG04
;; size=12 bbWeight=1 PerfScore 7.00
G_M22644_IG03:
cbz x20, G_M22644_IG04
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x21, [x0]
- str x21, [fp, #0x38] // [V03 loc2]
+ str x21, [fp, #0x40] // [V03 loc2]
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldr x22, [x0]
- mov x0, x22
+ ldr x0, [x0]
mov w1, #0xD1FFAB1E
movz x2, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- str x0, [fp, #0x40] // [V03 loc2+0x08]
+ str x0, [fp, #0x48] // [V03 loc2+0x08]
cbnz x0, G_M22644_IG14
- mov x23, xzr
- mov w24, wzr
+ mov x22, xzr
+ mov w23, wzr
b G_M22644_IG15
- ;; size=88 bbWeight=0.50 PerfScore 10.75
+ ;; size=76 bbWeight=0.50 PerfScore 10.00
G_M22644_IG04:
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x21, [x0]
- str x21, [fp, #0x10] // [V04 loc3]
+ str x21, [fp, #0x18] // [V04 loc3]
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldr x22, [x0]
- mov x0, x22
+ ldr x0, [x0]
mov w1, #0xD1FFAB1E
movz x2, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- str x0, [fp, #0x18] // [V04 loc3+0x08]
+ str x0, [fp, #0x20] // [V04 loc3+0x08]
cbnz x0, G_M22644_IG05
mov x11, xzr
mov w1, wzr
b G_M22644_IG06
- ;; size=84 bbWeight=0.50 PerfScore 10.25
+ ;; size=72 bbWeight=0.50 PerfScore 9.50
G_M22644_IG05:
add x11, x0, #16
ldr w1, [x0, #0x08]
;; size=8 bbWeight=0.50 PerfScore 1.75
G_M22644_IG06:
- str x11, [fp, #0x28] // [V04 loc3+0x18]
- str w1, [fp, #0x30] // [V04 loc3+0x20]
- str wzr, [fp, #0x20] // [V04 loc3+0x10]
+ str x11, [fp, #0x30] // [V04 loc3+0x18]
+ str w1, [fp, #0x38] // [V04 loc3+0x20]
+ str wzr, [fp, #0x28] // [V04 loc3+0x10]
ldr x0, [x21]
movz x11, #0xD1FFAB1E
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
cmp x0, x11
beq G_M22644_IG07
mov x0, x21
movz x11, #0xD1FFAB1E // code for System.IFormatProvider:GetFormat(System.Type):System.Object:this
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr xip0, [x11]
blr xip0
cmp x0, #0
cset x1, ne
b G_M22644_IG08
;; size=84 bbWeight=0.50 PerfScore 9.25
G_M22644_IG07:
mov w1, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M22644_IG08:
- strb w1, [fp, #0x24] // [V04 loc3+0x14]
+ strb w1, [fp, #0x2C] // [V04 loc3+0x14]
ldr x1, [x19, #0x10]
- add x0, fp, #16 // [V04 loc3]
+ add x0, fp, #24 // [V04 loc3]
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.DateTime](System.DateTime,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ldr w0, [fp, #0x20] // [V04 loc3+0x10]
- ldr w1, [fp, #0x30] // [V04 loc3+0x20]
+ ldr w0, [fp, #0x28] // [V04 loc3+0x10]
+ ldr w1, [fp, #0x38] // [V04 loc3+0x20]
cmp w0, w1
bhi G_M22644_IG22
- ldr x1, [fp, #0x28] // [V04 loc3+0x18]
- ubfiz x2, x0, #1, #32
- add x1, x1, x2
- ldr w2, [fp, #0x30] // [V04 loc3+0x20]
- sub w0, w2, w0
+ ldr x2, [fp, #0x30] // [V04 loc3+0x18]
+ ubfiz x3, x0, #1, #32
+ add x2, x2, x3
+ sub w0, w1, w0
cbz w0, G_M22644_IG09
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldrh w2, [x0]
- strh w2, [x1]
- ldr w0, [fp, #0x20] // [V04 loc3+0x10]
+ ldrh w1, [x0]
+ strh w1, [x2]
+ ldr w0, [fp, #0x28] // [V04 loc3+0x10]
add w0, w0, #1
- str w0, [fp, #0x20] // [V04 loc3+0x10]
+ str w0, [fp, #0x28] // [V04 loc3+0x10]
b G_M22644_IG10
- ;; size=120 bbWeight=0.50 PerfScore 17.00
+ ;; size=116 bbWeight=0.50 PerfScore 16.00
G_M22644_IG09:
- add x0, fp, #16 // [V04 loc3]
+ add x0, fp, #24 // [V04 loc3]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M22644_IG10:
ldrb w2, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp w2, #0
csel x1, x1, x0, ne
- ldrb w2, [fp, #0x24] // [V04 loc3+0x14]
+ ldrb w2, [fp, #0x2C] // [V04 loc3+0x14]
cbnz w2, G_M22644_IG11
cbz x1, G_M22644_IG11
- ldr w2, [fp, #0x20] // [V04 loc3+0x10]
- ldr w0, [fp, #0x30] // [V04 loc3+0x20]
+ ldr w2, [fp, #0x28] // [V04 loc3+0x10]
+ ldr w0, [fp, #0x38] // [V04 loc3+0x20]
cmp w2, w0
bhi G_M22644_IG22
- ldr x0, [fp, #0x28] // [V04 loc3+0x18]
+ ldr x0, [fp, #0x30] // [V04 loc3+0x18]
ubfiz x3, x2, #1, #32
add x0, x0, x3
- ldr w3, [fp, #0x30] // [V04 loc3+0x20]
+ ldr w3, [fp, #0x38] // [V04 loc3+0x20]
sub w2, w3, w2
- ldr w23, [x1, #0x08]
- cmp w23, w2
+ ldr w22, [x1, #0x08]
+ cmp w22, w2
bhi G_M22644_IG11
- ubfiz x2, x23, #1, #32
+ ubfiz x2, x22, #1, #32
add x1, x1, #12
movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ldr w0, [fp, #0x20] // [V04 loc3+0x10]
- add w0, w0, w23
- str w0, [fp, #0x20] // [V04 loc3+0x10]
+ ldr w0, [fp, #0x28] // [V04 loc3+0x10]
+ add w0, w0, w22
+ str w0, [fp, #0x28] // [V04 loc3+0x10]
b G_M22644_IG12
;; size=140 bbWeight=0.50 PerfScore 19.25
G_M22644_IG11:
- add x0, fp, #16 // [V04 loc3]
+ add x0, fp, #24 // [V04 loc3]
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.50 PerfScore 3.00
G_M22644_IG12:
- add x0, fp, #16 // [V04 loc3]
+ add x0, fp, #24 // [V04 loc3]
movz x1, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=24 bbWeight=0.50 PerfScore 3.00
G_M22644_IG13:
- ldp x23, x24, [sp, #0x80]
- ldp x21, x22, [sp, #0x70]
- ldp x19, x20, [sp, #0x60]
+ ldr x23, [sp, #0x88]
+ ldp x21, x22, [sp, #0x78]
+ ldp x19, x20, [sp, #0x68]
ldp fp, lr, [sp], #0x90
ret lr
- ;; size=20 bbWeight=0.50 PerfScore 2.50
+ ;; size=20 bbWeight=0.50 PerfScore 3.00
G_M22644_IG14:
- add x23, x0, #16
- ldr w24, [x0, #0x08]
+ add x22, x0, #16
+ ldr w23, [x0, #0x08]
;; size=8 bbWeight=0.50 PerfScore 1.75
G_M22644_IG15:
- str x23, [fp, #0x50] // [V03 loc2+0x18]
- str w24, [fp, #0x58] // [V03 loc2+0x20]
- str wzr, [fp, #0x48] // [V03 loc2+0x10]
+ str x22, [fp, #0x58] // [V03 loc2+0x18]
+ str w23, [fp, #0x60] // [V03 loc2+0x20]
+ str wzr, [fp, #0x50] // [V03 loc2+0x10]
ldr x0, [x21]
movz x11, #0xD1FFAB1E
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
cmp x0, x11
beq G_M22644_IG16
mov x0, x21
movz x11, #0xD1FFAB1E // code for System.IFormatProvider:GetFormat(System.Type):System.Object:this
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr xip0, [x11]
blr xip0
cmp x0, #0
cset x1, ne
b G_M22644_IG17
;; size=84 bbWeight=0.50 PerfScore 9.25
G_M22644_IG16:
mov w1, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M22644_IG17:
- strb w1, [fp, #0x4C] // [V03 loc2+0x14]
+ strb w1, [fp, #0x54] // [V03 loc2+0x14]
ldr x1, [x19, #0x10]
- add x0, fp, #56 // [V03 loc2]
+ add x0, fp, #64 // [V03 loc2]
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.DateTime](System.DateTime,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ldr w0, [fp, #0x48] // [V03 loc2+0x10]
- ldr w1, [fp, #0x58] // [V03 loc2+0x20]
+ ldr w0, [fp, #0x50] // [V03 loc2+0x10]
+ ldr w1, [fp, #0x60] // [V03 loc2+0x20]
cmp w0, w1
bhi G_M22644_IG22
- ldr x1, [fp, #0x50] // [V03 loc2+0x18]
- ubfiz x2, x0, #1, #32
- add x1, x1, x2
- ldr w2, [fp, #0x58] // [V03 loc2+0x20]
- sub w0, w2, w0
+ ldr x2, [fp, #0x58] // [V03 loc2+0x18]
+ ubfiz x3, x0, #1, #32
+ add x2, x2, x3
+ sub w0, w1, w0
cbz w0, G_M22644_IG18
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldrh w2, [x0]
- strh w2, [x1]
- ldr w0, [fp, #0x48] // [V03 loc2+0x10]
+ ldrh w1, [x0]
+ strh w1, [x2]
+ ldr w0, [fp, #0x50] // [V03 loc2+0x10]
add w0, w0, #1
- str w0, [fp, #0x48] // [V03 loc2+0x10]
+ str w0, [fp, #0x50] // [V03 loc2+0x10]
b G_M22644_IG19
- ;; size=120 bbWeight=0.50 PerfScore 17.00
+ ;; size=116 bbWeight=0.50 PerfScore 16.00
G_M22644_IG18:
- add x0, fp, #56 // [V03 loc2]
+ add x0, fp, #64 // [V03 loc2]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M22644_IG19:
mov w0, #43
mov w1, #45
cmp x20, #0
csel w1, w0, w1, gt
- add x0, fp, #56 // [V03 loc2]
+ add x0, fp, #64 // [V03 loc2]
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[ushort](ushort):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- add x0, fp, #56 // [V03 loc2]
+ add x0, fp, #64 // [V03 loc2]
mov x1, x20
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.TimeSpan](System.TimeSpan,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ldr w1, [fp, #0x48] // [V03 loc2+0x10]
- ldr w0, [fp, #0x58] // [V03 loc2+0x20]
+ ldr w1, [fp, #0x50] // [V03 loc2+0x10]
+ ldr w0, [fp, #0x60] // [V03 loc2+0x20]
cmp w1, w0
bhi G_M22644_IG22
- ldr x0, [fp, #0x50] // [V03 loc2+0x18]
+ ldr x0, [fp, #0x58] // [V03 loc2+0x18]
bl System.String:.ctor(System.ReadOnlySpan`1[ushort]):this
mov x19, x0
- ldr x1, [fp, #0x40] // [V03 loc2+0x08]
- stp xzr, xzr, [fp, #0x38]
- stp xzr, xzr, [fp, #0x48]
- str xzr, [fp, #0x58]
+ ldr x1, [fp, #0x48] // [V03 loc2+0x08]
+ stp xzr, xzr, [fp, #0x40]
+ stp xzr, xzr, [fp, #0x50]
+ str xzr, [fp, #0x60]
cbz x1, G_M22644_IG20
- mov x0, x22
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr x0, [x0]
mov w2, wzr
movz x3, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ushort]:Return(ushort[],ubyte):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=156 bbWeight=0.50 PerfScore 18.75
+ ;; size=164 bbWeight=0.50 PerfScore 20.50
G_M22644_IG20:
mov x0, x19
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M22644_IG21:
- ldp x23, x24, [sp, #0x80]
- ldp x21, x22, [sp, #0x70]
- ldp x19, x20, [sp, #0x60]
+ ldr x23, [sp, #0x88]
+ ldp x21, x22, [sp, #0x78]
+ ldp x19, x20, [sp, #0x68]
ldp fp, lr, [sp], #0x90
ret lr
- ;; size=20 bbWeight=0.50 PerfScore 2.50
+ ;; size=20 bbWeight=0.50 PerfScore 3.00
G_M22644_IG22:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1144, prolog size 40, PerfScore 150.25, instruction count 286, allocated bytes for code 1144 (MethodHash=2d43a78b) for method System.Net.Mime.SmtpDateTime:ToString():System.String:this (FullOpts)
+; Total bytes of code 1120, prolog size 40, PerfScore 149.50, instruction count 280, allocated bytes for code 1120 (MethodHash=2d43a78b) for method System.Net.Mime.SmtpDateTime:ToString():System.String:this (FullOpts)
-20 (-0.96 % of base) - Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext:Match(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase,System.String):this
; Assembly listing for method Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext:Match(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase,System.String):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 21 single block inlinees; 16 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T11] ( 13, 75.50) ref -> x19 this class-hnd single-def <Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext>
-; V01 arg1 [V01,T57] ( 9, 6 ) ref -> x21 class-hnd single-def <Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase>
+; V01 arg1 [V01,T58] ( 9, 6 ) ref -> x21 class-hnd single-def <Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase>
; V02 arg2 [V02,T14] ( 8, 66 ) ref -> x20 class-hnd single-def <System.String>
; V03 loc0 [V03,T41] ( 15, 29.50) ref -> x22 class-hnd exact single-def <System.Collections.Generic.List`1[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase]>
; V04 loc1 [V04,T02] ( 8, 98 ) ref -> x24 class-hnd exact single-def <System.Collections.Generic.List`1[Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase]>
-; V05 loc2 [V05,T56] ( 6, 8.50) ref -> [fp+0x20] class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase]>
-; V06 loc3 [V06,T44] ( 6, 24 ) ref -> x24 class-hnd <Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase>
+; V05 loc2 [V05,T57] ( 6, 8.50) ref -> [fp+0x20] class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase]>
+; V06 loc3 [V06,T44] ( 6, 24 ) ref -> x25 class-hnd <Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase>
;* V07 loc4 [V07 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase]>
;* V08 loc5 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase>
; V09 loc6 [V09,T07] ( 5, 80 ) ref -> x27 class-hnd <Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase>
; V10 loc7 [V10,T08] ( 5, 80 ) ref -> x21 class-hnd <Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase>
;* V11 loc8 [V11 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op <Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult>
;* V12 loc9 [V12 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase]>
;* V13 loc10 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase>
;* V14 loc11 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
;# V15 OutArgs [V15 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V16 tmp1 [V16,T60] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase]>
-; V17 tmp2 [V17,T61] ( 3, 6 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase]>
+; V16 tmp1 [V16,T61] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase]>
+; V17 tmp2 [V17,T62] ( 3, 6 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase]>
; V18 tmp3 [V18,T22] ( 2, 64 ) ref -> x27 class-hnd "dup spill" <System.Func`3[Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext,Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase,ubyte]>
;* V19 tmp4 [V19 ] ( 0, 0 ) ref -> zero-ref
;* V20 tmp5 [V20 ] ( 0, 0 ) ref -> zero-ref
; V21 tmp6 [V21,T24] ( 4, 56 ) ref -> x27
; V22 tmp7 [V22,T09] ( 5, 80 ) ref -> x27 class-hnd exact "NewObj constructor temp" <System.Func`3[Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext,Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase,ubyte]>
; V23 tmp8 [V23,T23] ( 2, 64 ) ref -> x3 class-hnd "dup spill" <System.Func`3[Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext,Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase,Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult]>
;* V24 tmp9 [V24 ] ( 0, 0 ) ref -> zero-ref
;* V25 tmp10 [V25 ] ( 0, 0 ) ref -> zero-ref
; V26 tmp11 [V26,T25] ( 4, 56 ) ref -> x3
; V27 tmp12 [V27,T00] ( 7,224 ) ref -> x28 class-hnd "non-inline candidate call" <System.Collections.Generic.List`1[Microsoft.Extensions.FileSystemGlobbing.FilePatternMatch]>
; V28 tmp13 [V28,T03] ( 4, 96 ) ref -> x15 class-hnd exact "impAppendStmt" <System.String>
;* V29 tmp14 [V29 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <Microsoft.Extensions.FileSystemGlobbing.FilePatternMatch>
; V30 tmp15 [V30,T10] ( 5, 80 ) ref -> x3 class-hnd exact "NewObj constructor temp" <System.Func`3[Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext,Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase,Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult]>
-; V31 tmp16 [V31,T45] ( 3, 24 ) ref -> x25 class-hnd "non-inline candidate call" <System.Collections.Generic.HashSet`1[System.String]>
-; V32 tmp17 [V32,T62] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.HashSet`1[Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.LiteralPathSegment]>
+; V31 tmp16 [V31,T45] ( 3, 24 ) ref -> x26 class-hnd "non-inline candidate call" <System.Collections.Generic.HashSet`1[System.String]>
+; V32 tmp17 [V32,T63] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.HashSet`1[Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.LiteralPathSegment]>
; V33 tmp18 [V33,T49] ( 2, 16 ) ref -> x1 class-hnd exact "Inlining Arg" <System.String>
; V34 tmp19 [V34,T51] ( 3, 12 ) ref -> x3 class-hnd "Inline stloc first use temp" <Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase[]>
; V35 tmp20 [V35,T48] ( 4, 16 ) int -> x2 "Inline stloc first use temp"
-; V36 tmp21 [V36,T71] ( 3, 1.50) ref -> x3 class-hnd single-def "Inline stloc first use temp" <Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase[]>
-; V37 tmp22 [V37,T66] ( 4, 2 ) int -> x0 single-def "Inline stloc first use temp"
-; V38 tmp23 [V38,T63] ( 3, 3 ) ref -> x2 class-hnd single-def "Inlining Arg" <Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase>
+; V36 tmp21 [V36,T72] ( 3, 1.50) ref -> x3 class-hnd single-def "Inline stloc first use temp" <Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase[]>
+; V37 tmp22 [V37,T67] ( 4, 2 ) int -> x0 single-def "Inline stloc first use temp"
+; V38 tmp23 [V38,T64] ( 3, 3 ) ref -> x2 class-hnd single-def "Inlining Arg" <Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase>
;* V39 tmp24 [V39 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase]>
; V40 tmp25 [V40,T27] ( 3, 48 ) ref -> x15 class-hnd exact "Inlining Arg" <Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext+<>c>
; V41 tmp26 [V41,T20] ( 3, 64 ) ref -> x2 class-hnd exact "Inlining Arg" <System.String>
-;* V42 tmp27 [V42,T58] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V42 tmp27 [V42,T59] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V43 tmp28 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V44 tmp29 [V44,T28] ( 3, 48 ) ref -> x14 class-hnd exact "Inline stloc first use temp" <Microsoft.Extensions.FileSystemGlobbing.FilePatternMatch[]>
; V45 tmp30 [V45,T17] ( 4, 64 ) int -> x12 "Inline stloc first use temp"
;* V46 tmp31 [V46 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <Microsoft.Extensions.FileSystemGlobbing.FilePatternMatch>
; V47 tmp32 [V47,T29] ( 3, 48 ) ref -> x15 class-hnd exact "Inlining Arg" <Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext+<>c>
; V48 tmp33 [V48,T37] ( 2, 32 ) ubyte -> x1 "Inline return value spill temp"
;* V49 tmp34 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext+<>c__DisplayClass15_0`1[Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase]>
; V50 tmp35 [V50,T30] ( 3, 48 ) ref -> [fp+0x18] class-hnd exact spill-single-def "Inline stloc first use temp" <Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext+<>c__DisplayClass15_0`1[Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase]>
; V51 tmp36 [V51,T01] ( 4,128 ) ref -> x3 class-hnd exact "NewObj constructor temp" <System.Func`3[Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext,Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase,Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult]>
;* V52 tmp37 [V52 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inline stloc first use temp" <Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult>
; V53 tmp38 [V53,T31] ( 3, 48 ) ref -> x2 class-hnd "Inline stloc first use temp" <Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase[]>
; V54 tmp39 [V54,T18] ( 4, 64 ) int -> x0 "Inline stloc first use temp"
;* V55 tmp40 [V55,T46] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V56 tmp41 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase]>
;* V57 tmp42 [V57 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase]>
; V58 tmp43 [V58,T34] ( 3, 32 ) ref -> x2 class-hnd "Inline return value spill temp" <System.String>
; V59 tmp44 [V59,T21] ( 3, 64 ) ref -> x2 class-hnd exact "Inlining Arg" <System.String>
-;* V60 tmp45 [V60,T59] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V60 tmp45 [V60,T60] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V61 tmp46 [V61,T47] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V62 tmp47 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase]>
; V63 tmp48 [V63,T42] ( 4, 29 ) ref -> x22 single-def "field V07._list (fldOffset=0x0)" P-INDEP
; V64 tmp49 [V64,T26] ( 3, 48 ) ref -> x21 "field V07._current (fldOffset=0x8)" P-INDEP
; V65 tmp50 [V65,T12] ( 6, 69 ) int -> x26 "field V07._index (fldOffset=0x10)" P-INDEP
-; V66 tmp51 [V66,T54] ( 2, 9 ) int -> x25 single-def "field V07._version (fldOffset=0x14)" P-INDEP
+; V66 tmp51 [V66,T55] ( 2, 9 ) int -> x25 single-def "field V07._version (fldOffset=0x14)" P-INDEP
; V67 tmp52 [V67,T35] ( 2, 32 ) ref -> x21 "field V11.<Stem>k__BackingField (fldOffset=0x0)" P-INDEP
; V68 tmp53 [V68,T38] ( 2, 32 ) ubyte -> x1 "field V11.<IsSuccessful>k__BackingField (fldOffset=0x8)" P-INDEP
; V69 tmp54 [V69,T43] ( 4, 29 ) ref -> x24 single-def "field V12._list (fldOffset=0x0)" P-INDEP
; V70 tmp55 [V70,T16] ( 4, 64 ) ref -> x27 "field V12._current (fldOffset=0x8)" P-INDEP
; V71 tmp56 [V71,T13] ( 6, 69 ) int -> x23 "field V12._index (fldOffset=0x10)" P-INDEP
-; V72 tmp57 [V72,T55] ( 2, 9 ) int -> x21 single-def "field V12._version (fldOffset=0x14)" P-INDEP
+; V72 tmp57 [V72,T56] ( 2, 9 ) int -> x21 single-def "field V12._version (fldOffset=0x14)" P-INDEP
; V73 tmp58 [V73,T32] ( 3, 48 ) ref -> x15 "field V29.<Path>k__BackingField (fldOffset=0x0)" P-INDEP
; V74 tmp59 [V74,T33] ( 3, 48 ) ref -> x2 "field V29.<Stem>k__BackingField (fldOffset=0x8)" P-INDEP
-; V75 tmp60 [V75,T64] ( 3, 3 ) ref -> x22 single-def "field V39._list (fldOffset=0x0)" P-INDEP
+; V75 tmp60 [V75,T65] ( 3, 3 ) ref -> x22 single-def "field V39._list (fldOffset=0x0)" P-INDEP
;* V76 tmp61 [V76 ] ( 0, 0 ) ref -> zero-ref single-def "field V39._current (fldOffset=0x8)" P-INDEP
-;* V77 tmp62 [V77,T72] ( 0, 0 ) int -> zero-ref single-def "field V39._index (fldOffset=0x10)" P-INDEP
-; V78 tmp63 [V78,T69] ( 2, 2 ) int -> x25 single-def "field V39._version (fldOffset=0x14)" P-INDEP
+;* V77 tmp62 [V77,T73] ( 0, 0 ) int -> zero-ref single-def "field V39._index (fldOffset=0x10)" P-INDEP
+; V78 tmp63 [V78,T70] ( 2, 2 ) int -> x25 single-def "field V39._version (fldOffset=0x14)" P-INDEP
;* V79 tmp64 [V79 ] ( 0, 0 ) ref -> zero-ref "field V46.<Path>k__BackingField (fldOffset=0x0)" P-INDEP
;* V80 tmp65 [V80 ] ( 0, 0 ) ref -> zero-ref "field V46.<Stem>k__BackingField (fldOffset=0x8)" P-INDEP
; V81 tmp66 [V81,T50] ( 1, 16 ) ref -> x0 "field V52.<Stem>k__BackingField (fldOffset=0x0)" P-INDEP
; V82 tmp67 [V82,T39] ( 2, 32 ) ubyte -> x1 "field V52.<IsSuccessful>k__BackingField (fldOffset=0x8)" P-INDEP
-; V83 tmp68 [V83,T65] ( 3, 3 ) ref -> x24 single-def "field V57._list (fldOffset=0x0)" P-INDEP
+; V83 tmp68 [V83,T66] ( 3, 3 ) ref -> x24 single-def "field V57._list (fldOffset=0x0)" P-INDEP
;* V84 tmp69 [V84 ] ( 0, 0 ) ref -> zero-ref single-def "field V57._current (fldOffset=0x8)" P-INDEP
-;* V85 tmp70 [V85,T73] ( 0, 0 ) int -> zero-ref single-def "field V57._index (fldOffset=0x10)" P-INDEP
-; V86 tmp71 [V86,T70] ( 2, 2 ) int -> x21 single-def "field V57._version (fldOffset=0x14)" P-INDEP
-; V87 tmp72 [V87,T67] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-; V88 tmp73 [V88,T68] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+;* V85 tmp70 [V85,T74] ( 0, 0 ) int -> zero-ref single-def "field V57._index (fldOffset=0x10)" P-INDEP
+; V86 tmp71 [V86,T71] ( 2, 2 ) int -> x21 single-def "field V57._version (fldOffset=0x14)" P-INDEP
+; V87 tmp72 [V87,T68] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
+; V88 tmp73 [V88,T69] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
; V89 tmp74 [V89,T04] ( 3, 96 ) ref -> x1 "arr expr"
; V90 tmp75 [V90,T05] ( 3, 96 ) byref -> x1 "BlockOp address local"
; V91 tmp76 [V91,T06] ( 3, 96 ) ref -> x0 "arr expr"
-; V92 PSPSym [V92,T74] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym"
+; V92 PSPSym [V92,T75] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym"
;* V93 cse0 [V93,T36] ( 0, 0 ) byref -> zero-ref multi-def "CSE #08: aggressive"
-; V94 cse1 [V94,T52] ( 2, 8 ) int -> x1 "CSE #16: moderate"
-; V95 cse2 [V95,T53] ( 2, 8 ) int -> x0 "CSE #20: moderate"
-; V96 cse3 [V96,T15] ( 9, 67 ) long -> x23 "CSE #06: aggressive"
-; V97 cse4 [V97,T19] ( 4, 64 ) long -> x28 "CSE #14: moderate"
-; V98 cse5 [V98,T40] ( 2, 32 ) int -> xip0 "CSE #10: moderate"
+; V94 cse1 [V94,T53] ( 2, 8 ) int -> x1 "CSE #16: moderate"
+; V95 cse2 [V95,T54] ( 2, 8 ) int -> x0 "CSE #20: moderate"
+; V96 cse3 [V96,T19] ( 4, 64 ) long -> x28 "CSE #14: moderate"
+; V97 cse4 [V97,T40] ( 2, 32 ) int -> xip0 "CSE #10: moderate"
+; V98 cse5 [V98,T52] ( 7, 9.50) long -> x24 multi-def "CSE #05: moderate"
+; V99 cse6 [V99,T15] ( 9, 67 ) long -> x23 "CSE #06: aggressive"
;
; Lcl frame size = 32
G_M32009_IG01:
stp fp, lr, [sp, #-0x80]!
stp x19, x20, [sp, #0x30]
stp x21, x22, [sp, #0x40]
stp x23, x24, [sp, #0x50]
stp x25, x26, [sp, #0x60]
stp x27, x28, [sp, #0x70]
mov fp, sp
add x3, sp, #128
str x3, [fp, #0x28] // [V92 PSPSym]
mov x19, x0
mov x21, x1
mov x20, x2
;; size=48 bbWeight=1 PerfScore 9.50
G_M32009_IG02:
mov x0, x19
mov x1, x21
movz x2, #0xD1FFAB1E // code for Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext:PushDirectory(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x19
movz x1, #0xD1FFAB1E // code for Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext:Declare():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x22, x0
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M32009_IG42
;; size=92 bbWeight=1 PerfScore 21.00
G_M32009_IG03:
movz x23, #0xD1FFAB1E // data for System.Collections.Generic.List`1[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase]:s_emptyArray
- movk x23, #0xD1FFAB1E LSL #16
movk x23, #0xD1FFAB1E LSL #32
ldr x15, [x23]
add x14, x22, #8
bl CORINFO_HELP_ASSIGN_REF
ldrb w0, [x19, #0x3D]
cbnz w0, G_M32009_IG05
- ;; size=32 bbWeight=1 PerfScore 10.00
+ ;; size=28 bbWeight=1 PerfScore 9.50
G_M32009_IG04:
ldr x0, [x19, #0x30]
ldr w1, [x0, #0x28]
ldr w0, [x0, #0x30]
sub w0, w1, w0
cbz w0, G_M32009_IG06
;; size=20 bbWeight=0.50 PerfScore 5.25
G_M32009_IG05:
mov x0, x21
ldr x1, [x21]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x38]
blr x1
mov x1, x0
mov x0, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.__Canon]):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
b G_M32009_IG10
;; size=52 bbWeight=0.50 PerfScore 9.00
G_M32009_IG06:
mov x0, x21
ldr x1, [x21]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x38]
blr x1
- movz x11, #0xD1FFAB1E // code for System.Collections.Generic.IEnumerable`1[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.__Canon]:this
- movk x11, #0xD1FFAB1E LSL #16
- movk x11, #0xD1FFAB1E LSL #32
+ movz x24, #0xD1FFAB1E // code for System.Collections.Generic.IEnumerable`1[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.__Canon]:this
+ movk x24, #0xD1FFAB1E LSL #16
+ movk x24, #0xD1FFAB1E LSL #32
+ mov x11, x24
ldr xip0, [x11]
blr xip0
str x0, [fp, #0x20] // [V05 loc2]
- ;; size=44 bbWeight=0.50 PerfScore 8.50
+ ;; size=48 bbWeight=0.50 PerfScore 8.75
G_M32009_IG07:
ldr x0, [fp, #0x20] // [V05 loc2]
- movz x11, #0xD1FFAB1E // code for System.Collections.IEnumerator:MoveNext():ubyte:this
- movk x11, #0xD1FFAB1E LSL #16
- movk x11, #0xD1FFAB1E LSL #32
+ add x11, x24, #8
ldr xip0, [x11]
blr xip0
cbz w0, G_M32009_IG09
ldr x0, [fp, #0x20] // [V05 loc2]
- movz x11, #0xD1FFAB1E // code for System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this
- movk x11, #0xD1FFAB1E LSL #16
- movk x11, #0xD1FFAB1E LSL #32
+ add x11, x24, #16
ldr xip0, [x11]
blr xip0
- mov x24, x0
- mov x1, x24
+ mov x25, x0
+ mov x1, x25
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M32009_IG07
- ldr x25, [x19, #0x28]
- mov x0, x24
- ldr x1, [x24]
+ ldr x26, [x19, #0x28]
+ mov x0, x25
+ ldr x1, [x25]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x20]
blr x1
mov x1, x0
- ldrsb wzr, [x25]
- mov x0, x25
+ ldrsb wzr, [x26]
+ mov x0, x26
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.HashSet`1[System.__Canon]:FindItemIndex(System.__Canon):int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
tbnz w0, #31, G_M32009_IG07
ldr x0, [fp, #0x20] // [V05 loc2]
ldp w2, w1, [x22, #0x10]
add w1, w1, #1
str w1, [x22, #0x14]
ldr x3, [x22, #0x08]
ldr w1, [x3, #0x08]
cmp w1, w2
bls G_M32009_IG08
add w1, w2, #1
str w1, [x22, #0x10]
sxtw x1, w2
mov x0, x3
- mov x2, x24
+ mov x2, x25
movz x3, #0xD1FFAB1E // code for CORINFO_HELP_ARRADDR_ST
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M32009_IG07
- ;; size=232 bbWeight=4 PerfScore 290.00
+ ;; size=216 bbWeight=4 PerfScore 282.00
G_M32009_IG08:
mov x0, x22
- mov x1, x24
+ mov x1, x25
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
b G_M32009_IG07
;; size=32 bbWeight=4 PerfScore 30.00
G_M32009_IG09:
ldr x0, [fp, #0x20] // [V05 loc2]
- movz x11, #0xD1FFAB1E // code for System.IDisposable:Dispose():this
- movk x11, #0xD1FFAB1E LSL #16
- movk x11, #0xD1FFAB1E LSL #32
+ add x11, x24, #24
ldr xip0, [x11]
blr xip0
- ;; size=24 bbWeight=0.50 PerfScore 3.75
+ ;; size=16 bbWeight=0.50 PerfScore 3.25
G_M32009_IG10:
ldrb w0, [x19, #0x3C]
cbz w0, G_M32009_IG13
;; size=8 bbWeight=1 PerfScore 4.00
G_M32009_IG11:
mov x0, x21
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x2, [x21]
ldr x2, [x2, #0x48]
ldr x2, [x2]
blr x2
mov x2, x0
ldp w0, w1, [x22, #0x10]
add w1, w1, #1
str w1, [x22, #0x14]
ldr x3, [x22, #0x08]
ldr w1, [x3, #0x08]
cmp w1, w0
bls G_M32009_IG12
add w1, w0, #1
str w1, [x22, #0x10]
sxtw x1, w0
mov x0, x3
movz x3, #0xD1FFAB1E // code for CORINFO_HELP_ARRADDR_ST
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M32009_IG13
;; size=104 bbWeight=0.50 PerfScore 16.75
G_M32009_IG12:
mov x0, x22
mov x1, x2
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=28 bbWeight=0.50 PerfScore 3.25
G_M32009_IG13:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M32009_IG43
;; size=40 bbWeight=1 PerfScore 8.50
G_M32009_IG14:
ldr x15, [x23, #0x08]
add x14, x24, #8
bl CORINFO_HELP_ASSIGN_REF
ldr w25, [x22, #0x14]
mov w26, wzr
b G_M32009_IG16
;; size=24 bbWeight=1 PerfScore 9.00
G_M32009_IG15:
add w1, w0, #1
str w1, [x24, #0x10]
sxtw x1, w0
mov x0, x2
mov x2, x21
movz x3, #0xD1FFAB1E // code for CORINFO_HELP_ARRADDR_ST
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
;; size=40 bbWeight=16 PerfScore 136.00
G_M32009_IG16:
ldr w1, [x22, #0x14]
cmp w25, w1
bne G_M32009_IG44
;; size=12 bbWeight=8 PerfScore 36.00
G_M32009_IG17:
ldr w1, [x22, #0x10]
cmp w26, w1
bhs G_M32009_IG21
;; size=12 bbWeight=4 PerfScore 18.00
G_M32009_IG18:
ldr x1, [x22, #0x08]
ldr w0, [x1, #0x08]
cmp w26, w0
bhs G_M32009_IG49
add x1, x1, #16
ldr x21, [x1, w26, UXTW #3]
add w26, w26, #1
mov x1, x21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x27, x0
cbz x27, G_M32009_IG31
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M32009_IG46
;; size=92 bbWeight=16 PerfScore 416.00
G_M32009_IG19:
ldr x3, [x23, #0x28]
cbnz x3, G_M32009_IG36
;; size=8 bbWeight=16 PerfScore 64.00
G_M32009_IG20:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x3, x0
ldr x15, [x23, #0x10]
cbnz x15, G_M32009_IG35
b G_M32009_IG48
;; size=32 bbWeight=8 PerfScore 64.00
G_M32009_IG21:
ldr w21, [x24, #0x14]
mov w23, wzr
b G_M32009_IG23
;; size=12 bbWeight=1 PerfScore 4.50
G_M32009_IG22:
mov x0, x19
mov x1, x27
movz x3, #0xD1FFAB1E // code for Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext:Match(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
;; size=28 bbWeight=16 PerfScore 104.00
G_M32009_IG23:
ldr w0, [x24, #0x14]
cmp w21, w0
bne G_M32009_IG44
;; size=12 bbWeight=8 PerfScore 36.00
G_M32009_IG24:
ldr w0, [x24, #0x10]
cmp w23, w0
bhs G_M32009_IG28
;; size=12 bbWeight=4 PerfScore 18.00
G_M32009_IG25:
ldr x0, [x24, #0x08]
ldr w1, [x0, #0x08]
cmp w23, w1
bhs G_M32009_IG49
add x0, x0, #16
ldr x27, [x0, w23, UXTW #3]
add w23, w23, #1
mov x0, x27
ldr x1, [x27]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x20]
blr x1
mov x2, x0
cbz x20, G_M32009_IG27
;; size=56 bbWeight=16 PerfScore 376.00
G_M32009_IG26:
ldr w0, [x20, #0x08]
cbnz w0, G_M32009_IG30
;; size=8 bbWeight=8 PerfScore 32.00
G_M32009_IG27:
b G_M32009_IG22
;; size=4 bbWeight=8 PerfScore 8.00
G_M32009_IG28:
mov x0, x19
movz x1, #0xD1FFAB1E // code for Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext:PopDirectory():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=24 bbWeight=1 PerfScore 6.00
G_M32009_IG29:
ldp x27, x28, [sp, #0x70]
ldp x25, x26, [sp, #0x60]
ldp x23, x24, [sp, #0x50]
ldp x21, x22, [sp, #0x40]
ldp x19, x20, [sp, #0x30]
ldp fp, lr, [sp], #0x80
ret lr
;; size=28 bbWeight=1 PerfScore 7.00
G_M32009_IG30:
mov x0, x20
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.String:Concat(System.String,System.String,System.String):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x2, x0
b G_M32009_IG22
;; size=44 bbWeight=8 PerfScore 72.00
G_M32009_IG31:
mov x1, x21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x21, x0
cbz x21, G_M32009_IG16
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M32009_IG45
;; size=64 bbWeight=16 PerfScore 232.00
G_M32009_IG32:
ldr x27, [x23, #0x30]
cbnz x27, G_M32009_IG34
;; size=8 bbWeight=16 PerfScore 64.00
G_M32009_IG33:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x27, x0
ldr x15, [x23, #0x10]
cbz x15, G_M32009_IG48
add x14, x27, #8
bl CORINFO_HELP_ASSIGN_REF
movz x14, #0xD1FFAB1E // code for Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext+<>c:<Match>b__11_0(Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext,Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase):ubyte:this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x27, #0x18]
add x14, x23, #48
mov x15, x27
bl CORINFO_HELP_ASSIGN_REF
;; size=64 bbWeight=8 PerfScore 104.00
G_M32009_IG34:
movz x28, #0xD1FFAB1E
movk x28, #0xD1FFAB1E LSL #16
movk x28, #0xD1FFAB1E LSL #32
mov x0, x28
bl CORINFO_HELP_NEWSFAST
mov x1, x0
str x1, [fp, #0x18] // [V50 tmp35]
add x14, x1, #8
mov x15, x27
bl CORINFO_HELP_ASSIGN_REF
add x0, x28, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
mov x3, x0
add x14, x3, #8
ldr x15, [fp, #0x18] // [V50 tmp35]
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E // code for Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext+<>c__DisplayClass15_0`1[System.__Canon]:<MatchPatternContexts>b__0(Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext,System.__Canon):Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult:this
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
str x0, [x3, #0x18]
mov x0, x19
mov x2, x21
add x1, x28, #224
movz x4, #0xD1FFAB1E // code for Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext:MatchPatternContexts[System.__Canon](System.__Canon,System.Func`3[System.__Canon,System.__Canon,Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult]):Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult:this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
uxtb w1, w1
cbz w1, G_M32009_IG16
ldp w0, w1, [x24, #0x10]
add w1, w1, #1
str w1, [x24, #0x14]
ldr x2, [x24, #0x08]
ldr w1, [x2, #0x08]
cmp w1, w0
bhi G_M32009_IG15
mov x0, x24
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
b G_M32009_IG16
;; size=180 bbWeight=16 PerfScore 680.00
G_M32009_IG35:
add x14, x3, #8
bl CORINFO_HELP_ASSIGN_REF
movz x14, #0xD1FFAB1E // code for Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext+<>c:<Match>b__11_1(Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext,Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase):Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult:this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x3, #0x18]
add x14, x23, #40
mov x15, x3
bl CORINFO_HELP_ASSIGN_REF
;; size=36 bbWeight=8 PerfScore 48.00
G_M32009_IG36:
mov x0, x19
mov x2, x27
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x4, #0xD1FFAB1E // code for Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext:MatchPatternContexts[System.__Canon](System.__Canon,System.Func`3[System.__Canon,System.__Canon,Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult]):Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult:this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
mov x21, x0
tst w1, #255
beq G_M32009_IG16
ldr x28, [x19, #0x20]
mov x0, x27
ldr x1, [x27]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x20]
blr x1
mov x2, x0
cbz x20, G_M32009_IG38
;; size=84 bbWeight=16 PerfScore 400.00
G_M32009_IG37:
ldr w0, [x20, #0x08]
cbnz w0, G_M32009_IG39
;; size=8 bbWeight=8 PerfScore 32.00
G_M32009_IG38:
mov x15, x2
b G_M32009_IG40
;; size=8 bbWeight=8 PerfScore 12.00
G_M32009_IG39:
mov x0, x20
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.String:Concat(System.String,System.String,System.String):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x15, x0
;; size=40 bbWeight=8 PerfScore 64.00
G_M32009_IG40:
cbz x15, G_M32009_IG47
mov x2, x21
ldp w12, w14, [x28, #0x10]
add w14, w14, #1
str w14, [x28, #0x14]
ldr x14, [x28, #0x08]
ldr wip0, [x14, #0x08]
cmp wip0, w12
bls G_M32009_IG41
add wip0, w12, #1
str wip0, [x28, #0x10]
ubfiz x12, x12, #4, #32
add x12, x12, #16
add x1, x14, x12
mov x14, x1
bl CORINFO_HELP_ASSIGN_REF
add x14, x1, #8
mov x15, x2
bl CORINFO_HELP_ASSIGN_REF
b G_M32009_IG16
;; size=80 bbWeight=16 PerfScore 344.00
G_M32009_IG41:
mov x1, x15
mov x0, x28
movz x3, #0xD1FFAB1E // code for System.Collections.Generic.List`1[Microsoft.Extensions.FileSystemGlobbing.FilePatternMatch]:AddWithResize(Microsoft.Extensions.FileSystemGlobbing.FilePatternMatch):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M32009_IG16
;; size=32 bbWeight=16 PerfScore 120.00
G_M32009_IG42:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M32009_IG03
;; size=20 bbWeight=0 PerfScore 0.00
G_M32009_IG43:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M32009_IG14
;; size=20 bbWeight=0 PerfScore 0.00
G_M32009_IG44:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M32009_IG45:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M32009_IG32
;; size=20 bbWeight=0 PerfScore 0.00
G_M32009_IG46:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M32009_IG19
;; size=20 bbWeight=0 PerfScore 0.00
G_M32009_IG47:
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:Throw(System.String)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=44 bbWeight=0 PerfScore 0.00
G_M32009_IG48:
movz x0, #0xD1FFAB1E // code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M32009_IG49:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
G_M32009_IG50:
stp fp, lr, [sp, #-0x70]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
stp x25, x26, [sp, #0x50]
stp x27, x28, [sp, #0x60]
add x3, fp, #128
str x3, [sp, #0x18]
;; size=32 bbWeight=0 PerfScore 0.00
G_M32009_IG51:
ldr x0, [fp, #0x20] // [V05 loc2]
cbz x0, G_M32009_IG52
- movz x11, #0xD1FFAB1E // code for System.IDisposable:Dispose():this
- movk x11, #0xD1FFAB1E LSL #16
- movk x11, #0xD1FFAB1E LSL #32
+ movz x24, #0xD1FFAB1E
+ movk x24, #0xD1FFAB1E LSL #16
+ movk x24, #0xD1FFAB1E LSL #32
+ add x11, x24, #24
ldr xip0, [x11]
blr xip0
- ;; size=28 bbWeight=0 PerfScore 0.00
+ ;; size=32 bbWeight=0 PerfScore 0.00
G_M32009_IG52:
ldp x27, x28, [sp, #0x60]
ldp x25, x26, [sp, #0x50]
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x70
ret lr
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2076, prolog size 48, PerfScore 3926.00, instruction count 519, allocated bytes for code 2076 (MethodHash=b62d82f6) for method Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext:Match(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase,System.String):this (FullOpts)
+; Total bytes of code 2056, prolog size 48, PerfScore 3917.25, instruction count 514, allocated bytes for code 2056 (MethodHash=b62d82f6) for method Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext:Match(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase,System.String):this (FullOpts)
-20 (-1.49 % of base) - System.Net.HttpListenerRequest+Helpers:GetCharSetValueFromHeader(System.String):System.String
; Assembly listing for method System.Net.HttpListenerRequest+Helpers:GetCharSetValueFromHeader(System.String):System.String (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 40 single block inlinees; 31 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T09] ( 7, 13.50) ref -> x19 class-hnd single-def <System.String>
; V01 loc0 [V01,T06] ( 9, 18 ) int -> x21
;* V02 loc1 [V02,T48] ( 0, 0 ) int -> zero-ref
; V03 loc2 [V03,T00] ( 35, 70.50) int -> x22
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.String>
; V05 loc4 [V05,T07] ( 12, 17.29) int -> x0
; V06 loc5 [V06,T10] ( 6, 12 ) ushort -> x0
; V07 loc6 [V07,T11] ( 5, 10 ) ushort -> x25
; V08 loc7 [V08 ] ( 5, 2.50) struct (16) [fp+0x18] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[ushort]>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+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,T04] ( 3, 24 ) ref -> x0 class-hnd exact "Inlining Arg" <System.Globalization.CompareInfo>
; V13 tmp4 [V13,T21] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
;* V14 tmp5 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V15 tmp6 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V16 tmp7 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V17 tmp8 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
; V18 tmp9 [V18,T22] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
;* V19 tmp10 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V20 tmp11 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V21 tmp12 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V22 tmp13 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
; V23 tmp14 [V23,T12] ( 2, 8 ) ubyte -> x0 "Inline return value spill temp"
; V24 tmp15 [V24,T01] ( 4, 32 ) ushort -> x0 "Inlining Arg"
;* V25 tmp16 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V26 tmp17 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V27 tmp18 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V28 tmp19 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
; V29 tmp20 [V29,T13] ( 2, 8 ) ubyte -> x0 "Inline return value spill temp"
; V30 tmp21 [V30,T02] ( 4, 32 ) ushort -> x0 "Inlining Arg"
;* V31 tmp22 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V32 tmp23 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V33 tmp24 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V34 tmp25 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
; V35 tmp26 [V35,T15] ( 5, 5 ) int -> x19 "Inlining Arg"
; V36 tmp27 [V36,T31] ( 4, 2 ) int -> x0 "Inline return value spill temp"
; V37 tmp28 [V37,T34] ( 2, 2 ) int -> x2 "Inlining Arg"
; V38 tmp29 [V38,T32] ( 4, 2 ) int -> x0 "Inline stloc first use temp"
;* V39 tmp30 [V39 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V40 tmp31 [V40 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
; V41 tmp32 [V41,T24] ( 3, 3 ) int -> x1 "Inlining Arg"
; V42 tmp33 [V42,T25] ( 3, 3 ) int -> x19 "Inlining Arg"
;* V43 tmp34 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V44 tmp35 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
;* V45 tmp36 [V45 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V46 tmp37 [V46 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V47 tmp38 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V48 tmp39 [V48 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.ReadOnlySpan`1[ushort]>
; V49 tmp40 [V49,T35] ( 2, 2 ) int -> x0 "Span.get_Item index"
; V50 tmp41 [V50,T42] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
; V51 tmp42 [V51,T19] ( 4, 4 ) ushort -> x0 "Inlining Arg"
;* V52 tmp43 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V53 tmp44 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V54 tmp45 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V55 tmp46 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
; V56 tmp47 [V56,T43] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
; V57 tmp48 [V57,T20] ( 4, 4 ) ushort -> x0 "Inlining Arg"
;* V58 tmp49 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V59 tmp50 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V60 tmp51 [V60 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V61 tmp52 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V62 tmp53 [V62 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
; V63 tmp54 [V63,T26] ( 3, 3 ) int -> x19 "Inlining Arg"
;* V64 tmp55 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V65 tmp56 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
;* V66 tmp57 [V66 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V67 tmp58 [V67 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V68 tmp59 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V69 tmp60 [V69 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.ReadOnlySpan`1[ushort]>
; V70 tmp61 [V70,T27] ( 3, 3 ) int -> x0 "Span.get_Item index"
; V71 tmp62 [V71,T44] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
; V72 tmp63 [V72,T16] ( 5, 5 ) ushort -> x0 "Inlining Arg"
;* V73 tmp64 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V74 tmp65 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V75 tmp66 [V75 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V76 tmp67 [V76 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
; V77 tmp68 [V77,T45] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
; V78 tmp69 [V78,T17] ( 5, 5 ) ushort -> x0 "Inlining Arg"
;* V79 tmp70 [V79 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V80 tmp71 [V80 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V81 tmp72 [V81 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V82 tmp73 [V82 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
; V83 tmp74 [V83,T33] ( 2, 2 ) ref -> x0 single-def "Single return block return value"
; V84 tmp75 [V84 ] ( 3, 1.50) byref -> [fp+0x18] do-not-enreg[X] addr-exposed "field V08._reference (fldOffset=0x0)" P-DEP
; V85 tmp76 [V85 ] ( 3, 1.50) int -> [fp+0x20] do-not-enreg[X] addr-exposed "field V08._length (fldOffset=0x8)" P-DEP
;* V86 tmp77 [V86 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
;* V87 tmp78 [V87 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
;* V88 tmp79 [V88 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
;* V89 tmp80 [V89 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
;* V90 tmp81 [V90 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP
;* V91 tmp82 [V91 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
;* V92 tmp83 [V92 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
;* V93 tmp84 [V93 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
;* V94 tmp85 [V94 ] ( 0, 0 ) byref -> zero-ref "field V16._reference (fldOffset=0x0)" P-INDEP
;* V95 tmp86 [V95 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
;* V96 tmp87 [V96 ] ( 0, 0 ) byref -> zero-ref "field V17._reference (fldOffset=0x0)" P-INDEP
;* V97 tmp88 [V97 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
;* V98 tmp89 [V98 ] ( 0, 0 ) byref -> zero-ref "field V19._reference (fldOffset=0x0)" P-INDEP
;* V99 tmp90 [V99 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
;* V100 tmp91 [V100 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP
;* V101 tmp92 [V101 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
;* V102 tmp93 [V102 ] ( 0, 0 ) byref -> zero-ref "field V21._reference (fldOffset=0x0)" P-INDEP
;* V103 tmp94 [V103 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
;* V104 tmp95 [V104 ] ( 0, 0 ) byref -> zero-ref "field V22._reference (fldOffset=0x0)" P-INDEP
;* V105 tmp96 [V105 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
;* V106 tmp97 [V106 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
;* V107 tmp98 [V107 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
;* V108 tmp99 [V108 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
;* V109 tmp100 [V109 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
;* V110 tmp101 [V110 ] ( 0, 0 ) byref -> zero-ref "field V27._reference (fldOffset=0x0)" P-INDEP
;* V111 tmp102 [V111 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
;* V112 tmp103 [V112 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP
;* V113 tmp104 [V113 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
;* V114 tmp105 [V114 ] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP
;* V115 tmp106 [V115 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
;* V116 tmp107 [V116 ] ( 0, 0 ) byref -> zero-ref "field V32._reference (fldOffset=0x0)" P-INDEP
;* V117 tmp108 [V117 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
;* V118 tmp109 [V118 ] ( 0, 0 ) byref -> zero-ref "field V33._reference (fldOffset=0x0)" P-INDEP
;* V119 tmp110 [V119 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
;* V120 tmp111 [V120 ] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP
;* V121 tmp112 [V121 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
; V122 tmp113 [V122,T28] ( 5, 2.50) byref -> x20 single-def "field V40._reference (fldOffset=0x0)" P-INDEP
; V123 tmp114 [V123,T30] ( 5, 2.50) int -> x19 "field V40._length (fldOffset=0x8)" P-INDEP
; V124 tmp115 [V124,T40] ( 2, 1 ) byref -> x20 single-def "field V43._reference (fldOffset=0x0)" P-INDEP
; V125 tmp116 [V125,T46] ( 2, 1 ) int -> x19 "field V43._length (fldOffset=0x8)" P-INDEP
;* V126 tmp117 [V126 ] ( 0, 0 ) byref -> zero-ref "field V44._reference (fldOffset=0x0)" P-INDEP
;* V127 tmp118 [V127 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP
; V128 tmp119 [V128,T36] ( 3, 1.50) byref -> x20 single-def "field V46._reference (fldOffset=0x0)" P-INDEP
; V129 tmp120 [V129,T38] ( 3, 1.50) int -> x19 "field V46._length (fldOffset=0x8)" P-INDEP
;* V130 tmp121 [V130 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
;* V131 tmp122 [V131 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
;* V132 tmp123 [V132 ] ( 0, 0 ) byref -> zero-ref "field V48._reference (fldOffset=0x0)" P-DEP
;* V133 tmp124 [V133 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-DEP
;* V134 tmp125 [V134 ] ( 0, 0 ) byref -> zero-ref "field V52._reference (fldOffset=0x0)" P-INDEP
;* V135 tmp126 [V135 ] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x8)" P-INDEP
;* V136 tmp127 [V136 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP
;* V137 tmp128 [V137 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
;* V138 tmp129 [V138 ] ( 0, 0 ) byref -> zero-ref single-def "field V54._reference (fldOffset=0x0)" P-INDEP
;* V139 tmp130 [V139 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
;* V140 tmp131 [V140 ] ( 0, 0 ) byref -> zero-ref single-def "field V55._reference (fldOffset=0x0)" P-INDEP
;* V141 tmp132 [V141 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
;* V142 tmp133 [V142 ] ( 0, 0 ) byref -> zero-ref "field V58._reference (fldOffset=0x0)" P-INDEP
;* V143 tmp134 [V143 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP
;* V144 tmp135 [V144 ] ( 0, 0 ) byref -> zero-ref single-def "field V59._reference (fldOffset=0x0)" P-INDEP
;* V145 tmp136 [V145 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
;* V146 tmp137 [V146 ] ( 0, 0 ) byref -> zero-ref single-def "field V60._reference (fldOffset=0x0)" P-INDEP
;* V147 tmp138 [V147 ] ( 0, 0 ) int -> zero-ref "field V60._length (fldOffset=0x8)" P-INDEP
;* V148 tmp139 [V148 ] ( 0, 0 ) byref -> zero-ref single-def "field V61._reference (fldOffset=0x0)" P-INDEP
;* V149 tmp140 [V149 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
; V150 tmp141 [V150,T29] ( 5, 2.50) byref -> x25 "field V62._reference (fldOffset=0x0)" P-INDEP
; V151 tmp142 [V151,T23] ( 7, 3.50) int -> x19 "field V62._length (fldOffset=0x8)" P-INDEP
; V152 tmp143 [V152,T41] ( 2, 1 ) byref -> x25 single-def "field V64._reference (fldOffset=0x0)" P-INDEP
; V153 tmp144 [V153,T47] ( 2, 1 ) int -> x19 "field V64._length (fldOffset=0x8)" P-INDEP
;* V154 tmp145 [V154 ] ( 0, 0 ) byref -> zero-ref single-def "field V65._reference (fldOffset=0x0)" P-INDEP
;* V155 tmp146 [V155 ] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP
; V156 tmp147 [V156,T37] ( 3, 1.50) byref -> x25 single-def "field V67._reference (fldOffset=0x0)" P-INDEP
; V157 tmp148 [V157,T39] ( 3, 1.50) int -> x19 "field V67._length (fldOffset=0x8)" P-INDEP
;* V158 tmp149 [V158 ] ( 0, 0 ) byref -> zero-ref single-def "field V68._reference (fldOffset=0x0)" P-INDEP
;* V159 tmp150 [V159 ] ( 0, 0 ) int -> zero-ref "field V68._length (fldOffset=0x8)" P-INDEP
;* V160 tmp151 [V160 ] ( 0, 0 ) byref -> zero-ref "field V69._reference (fldOffset=0x0)" P-DEP
;* V161 tmp152 [V161 ] ( 0, 0 ) int -> zero-ref "field V69._length (fldOffset=0x8)" P-DEP
;* V162 tmp153 [V162 ] ( 0, 0 ) byref -> zero-ref "field V73._reference (fldOffset=0x0)" P-INDEP
;* V163 tmp154 [V163 ] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP
;* V164 tmp155 [V164 ] ( 0, 0 ) byref -> zero-ref single-def "field V74._reference (fldOffset=0x0)" P-INDEP
;* V165 tmp156 [V165 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP
;* V166 tmp157 [V166 ] ( 0, 0 ) byref -> zero-ref single-def "field V75._reference (fldOffset=0x0)" P-INDEP
;* V167 tmp158 [V167 ] ( 0, 0 ) int -> zero-ref "field V75._length (fldOffset=0x8)" P-INDEP
;* V168 tmp159 [V168 ] ( 0, 0 ) byref -> zero-ref single-def "field V76._reference (fldOffset=0x0)" P-INDEP
;* V169 tmp160 [V169 ] ( 0, 0 ) int -> zero-ref "field V76._length (fldOffset=0x8)" P-INDEP
;* V170 tmp161 [V170 ] ( 0, 0 ) byref -> zero-ref "field V79._reference (fldOffset=0x0)" P-INDEP
;* V171 tmp162 [V171 ] ( 0, 0 ) int -> zero-ref "field V79._length (fldOffset=0x8)" P-INDEP
;* V172 tmp163 [V172 ] ( 0, 0 ) byref -> zero-ref single-def "field V80._reference (fldOffset=0x0)" P-INDEP
;* V173 tmp164 [V173 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-INDEP
;* V174 tmp165 [V174 ] ( 0, 0 ) byref -> zero-ref single-def "field V81._reference (fldOffset=0x0)" P-INDEP
;* V175 tmp166 [V175 ] ( 0, 0 ) int -> zero-ref "field V81._length (fldOffset=0x8)" P-INDEP
;* V176 tmp167 [V176 ] ( 0, 0 ) byref -> zero-ref single-def "field V82._reference (fldOffset=0x0)" P-INDEP
;* V177 tmp168 [V177 ] ( 0, 0 ) int -> zero-ref "field V82._length (fldOffset=0x8)" P-INDEP
; V178 cse0 [V178,T18] ( 2, 4.25) ref -> x23 hoist "CSE #02: moderate"
; V179 cse1 [V179,T05] ( 12, 19.04) int -> x20 "CSE #03: aggressive"
; V180 cse2 [V180,T03] ( 13, 24.50) byref -> x25 multi-def "CSE #06: aggressive"
; V181 cse3 [V181,T08] ( 5, 16 ) int -> x24 "CSE #05: aggressive"
; V182 cse4 [V182,T14] ( 3, 6 ) int -> x0 "CSE #04: aggressive"
;
; Lcl frame size = 24
G_M18406_IG01:
stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x28]
stp x21, x22, [sp, #0x38]
stp x23, x24, [sp, #0x48]
str x25, [sp, #0x58]
mov fp, sp
str xzr, [fp, #0x18] // [V08 loc7]
mov x19, x0
;; size=32 bbWeight=1 PerfScore 7.00
G_M18406_IG02:
cbz x19, G_M18406_IG15
;; size=4 bbWeight=1 PerfScore 1.00
G_M18406_IG03:
ldr w20, [x19, #0x08]
sxtw w21, w20
mov w22, #1
cmp w21, #1
ble G_M18406_IG11
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M18406_IG04:
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x23, [x0]
b G_M18406_IG06
- align [4 bytes for IG22]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=36 bbWeight=0.25 PerfScore 1.38
+ align [0 bytes for IG22]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=16 bbWeight=0.25 PerfScore 1.25
G_M18406_IG05:
sxtw w22, w24
;; size=4 bbWeight=4 PerfScore 2.00
G_M18406_IG06:
mov x0, x23
movz x1, #0xD1FFAB1E // code for System.Globalization.CultureInfo:get_CompareInfo():System.Globalization.CompareInfo:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldrsb wzr, [x0]
sub w4, w20, w22
mov x1, x19
mov w3, w22
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
mov w5, #1
movz x6, #0xD1FFAB1E // code for System.Globalization.CompareInfo:IndexOf(System.String,System.String,int,int,int):int:this
movk x6, #0xD1FFAB1E LSL #16
movk x6, #0xD1FFAB1E LSL #32
ldr x6, [x6]
blr x6
sxtw w22, w0
tbnz w22, #31, G_M18406_IG11
add w24, w22, #7
cmp w24, w21
bge G_M18406_IG11
;; size=96 bbWeight=4 PerfScore 86.00
G_M18406_IG07:
sub w0, w22, #1
cmp w0, w20
bhs G_M18406_IG43
add x25, x19, #12
ldrh w0, [x25, w0, UXTW #2]
cmp w24, w20
bhs G_M18406_IG43
ldrh w25, [x25, w24, UXTW #2]
mov w1, #44
cmp w0, #59
ccmp w0, w1, z, ne
beq G_M18406_IG09
cmp w0, #0xD1FFAB1E
bhs G_M18406_IG08
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldrb w0, [x1, w0, UXTW #2]
tbz w0, #7, G_M18406_IG05
b G_M18406_IG09
;; size=80 bbWeight=2 PerfScore 41.00
G_M18406_IG08:
movz x1, #0xD1FFAB1E // code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbz w0, G_M18406_IG05
;; size=24 bbWeight=2 PerfScore 13.00
G_M18406_IG09:
cmp w25, #61
beq G_M18406_IG11
cmp w25, #0xD1FFAB1E
bhs G_M18406_IG10
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrb w0, [x0, w25, UXTW #2]
tbnz w0, #7, G_M18406_IG11
b G_M18406_IG05
;; size=40 bbWeight=2 PerfScore 19.00
G_M18406_IG10:
mov w0, w25
movz x1, #0xD1FFAB1E // code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbz w0, G_M18406_IG05
;; size=28 bbWeight=2 PerfScore 14.00
G_M18406_IG11:
cmp w22, w21
ccmp w22, #0, nc, lt
blt G_M18406_IG15
add w22, w22, #7
b G_M18406_IG13
;; size=20 bbWeight=0.50 PerfScore 1.75
G_M18406_IG12:
add w22, w22, #1
;; size=4 bbWeight=2 PerfScore 1.00
G_M18406_IG13:
cmp w22, w21
bge G_M18406_IG15
cmp w22, w20
bhs G_M18406_IG43
add x25, x19, #12
ldrh w0, [x25, w22, UXTW #2]
cmp w0, #0xD1FFAB1E
bhs G_M18406_IG17
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldrb w0, [x1, w0, UXTW #2]
tbnz w0, #7, G_M18406_IG12
;; size=52 bbWeight=4 PerfScore 54.00
G_M18406_IG14:
ldrh w0, [x25, w22, UXTW #2]
cmp w0, #61
beq G_M18406_IG18
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M18406_IG15:
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M18406_IG16:
ldr x25, [sp, #0x58]
ldp x23, x24, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x60
ret lr
;; size=24 bbWeight=0.50 PerfScore 3.50
G_M18406_IG17:
movz x1, #0xD1FFAB1E // code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbnz w0, G_M18406_IG12
b G_M18406_IG14
;; size=28 bbWeight=4 PerfScore 30.00
G_M18406_IG18:
add w22, w22, #1
cmp w22, w21
bge G_M18406_IG15
cmp w22, w20
bhs G_M18406_IG43
ldrh w0, [x25, w22, UXTW #2]
cmp w0, #0xD1FFAB1E
bhs G_M18406_IG19
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldrb w0, [x1, w0, UXTW #2]
tbnz w0, #7, G_M18406_IG18
b G_M18406_IG20
;; size=56 bbWeight=4 PerfScore 58.00
G_M18406_IG19:
movz x1, #0xD1FFAB1E // code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbnz w0, G_M18406_IG18
;; size=24 bbWeight=4 PerfScore 26.00
G_M18406_IG20:
ldrh w0, [x25, w22, UXTW #2]
cmp w0, #34
bne G_M18406_IG21
sub w0, w21, #1
cmp w22, w0
beq G_M18406_IG15
add w19, w22, #1
sub w2, w20, w19
cmp w20, w19
bhs G_M18406_IG32
b G_M18406_IG42
;; size=44 bbWeight=0.50 PerfScore 5.00
G_M18406_IG21:
sxtw w0, w22
tbnz w22, #31, G_M18406_IG24
;; size=8 bbWeight=0.25 PerfScore 0.38
G_M18406_IG22:
ldrh w1, [x25, w0, UXTW #2]
cmp w1, #59
beq G_M18406_IG23
add w0, w0, #1
cmp w0, w21
blt G_M18406_IG22
;; size=24 bbWeight=3.96 PerfScore 25.74
G_M18406_IG23:
cmp w0, w22
beq G_M18406_IG15
sub w19, w0, w22
mov w0, w22
add x0, x0, w19, UXTW
mov w1, w20
cmp x0, x1
bls G_M18406_IG25
b G_M18406_IG41
;; size=36 bbWeight=0.50 PerfScore 3.25
G_M18406_IG24:
cmp w0, w20
bhs G_M18406_IG43
ldrh w1, [x25, w0, UXTW #2]
cmp w1, #59
beq G_M18406_IG23
add w0, w0, #1
cmp w0, w21
blt G_M18406_IG24
b G_M18406_IG23
;; size=36 bbWeight=0.04 PerfScore 0.36
G_M18406_IG25:
ubfiz x0, x22, #1, #32
add x25, x25, x0
cbz w19, G_M18406_IG28
cmp w19, #0
bls G_M18406_IG43
ldrh w0, [x25]
cmp w0, #0xD1FFAB1E
bhs G_M18406_IG26
cmp w0, #0xD1FFAB1E
bhs G_M18406_IG43
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldrb w0, [x1, w0, UXTW #2]
tbnz w0, #7, G_M18406_IG30
b G_M18406_IG27
;; size=64 bbWeight=0.50 PerfScore 8.25
G_M18406_IG26:
movz x1, #0xD1FFAB1E // code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbnz w0, G_M18406_IG30
;; size=24 bbWeight=0.50 PerfScore 3.25
G_M18406_IG27:
sub w0, w19, #1
cmp w0, w19
bhs G_M18406_IG43
ldrh w0, [x25, w0, UXTW #2]
cmp w0, #0xD1FFAB1E
bhs G_M18406_IG29
cmp w0, #0xD1FFAB1E
bhs G_M18406_IG43
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldrb w0, [x1, w0, UXTW #2]
tbnz w0, #7, G_M18406_IG30
;; size=52 bbWeight=0.50 PerfScore 6.75
G_M18406_IG28:
b G_M18406_IG31
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M18406_IG29:
movz x1, #0xD1FFAB1E // code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbz w0, G_M18406_IG28
;; size=24 bbWeight=0.50 PerfScore 3.25
G_M18406_IG30:
mov x0, x25
mov w1, w19
movz x2, #0xD1FFAB1E // code for System.MemoryExtensions:<Trim>g__TrimFallback|225_0(System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ushort]
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x25, x0
mov w19, w1
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M18406_IG31:
str x25, [fp, #0x18] // [V84 tmp75]
str w19, [fp, #0x20] // [V85 tmp76]
b G_M18406_IG39
;; size=12 bbWeight=0.50 PerfScore 1.50
G_M18406_IG32:
sbfiz x0, x19, #1, #32
add x0, x25, x0
mov w1, #34
movz x3, #0xD1FFAB1E // code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
add w1, w0, w19
cmp w0, #0
csel w0, w0, w1, lt
add w1, w22, #1
cmp w0, w1
ccmp w0, #0, nc, ne
blt G_M18406_IG15
add w1, w22, #1
sub w0, w0, w22
sub w19, w0, #1
mov w0, w1
add x0, x0, w19, UXTW
mov w2, w20
cmp x0, x2
bhi G_M18406_IG41
ubfiz x0, x1, #1, #32
add x20, x25, x0
cbz w19, G_M18406_IG35
ldrh w0, [x20]
cmp w0, #0xD1FFAB1E
bhs G_M18406_IG33
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldrb w0, [x1, w0, UXTW #2]
tbnz w0, #7, G_M18406_IG37
b G_M18406_IG34
;; size=140 bbWeight=0.50 PerfScore 15.00
G_M18406_IG33:
movz x1, #0xD1FFAB1E // code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbnz w0, G_M18406_IG37
;; size=24 bbWeight=0.50 PerfScore 3.25
G_M18406_IG34:
sub w0, w19, #1
ldrh w0, [x20, w0, UXTW #2]
cmp w0, #0xD1FFAB1E
bhs G_M18406_IG36
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldrb w0, [x1, w0, UXTW #2]
tbnz w0, #7, G_M18406_IG37
;; size=36 bbWeight=0.50 PerfScore 5.25
G_M18406_IG35:
b G_M18406_IG38
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M18406_IG36:
movz x1, #0xD1FFAB1E // code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbz w0, G_M18406_IG35
;; size=24 bbWeight=0.50 PerfScore 3.25
G_M18406_IG37:
mov x0, x20
mov w1, w19
movz x2, #0xD1FFAB1E // code for System.MemoryExtensions:<Trim>g__TrimFallback|225_0(System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ushort]
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x20, x0
mov w19, w1
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M18406_IG38:
str x20, [fp, #0x18] // [V84 tmp75]
str w19, [fp, #0x20] // [V85 tmp76]
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M18406_IG39:
add x0, fp, #24 // [V08 loc7]
movz x1, #0xD1FFAB1E // code for System.ReadOnlySpan`1[ushort]:ToString():System.String:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=24 bbWeight=0.50 PerfScore 3.00
G_M18406_IG40:
ldr x25, [sp, #0x58]
ldp x23, x24, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x60
ret lr
;; size=24 bbWeight=0.50 PerfScore 3.50
G_M18406_IG41:
mov w0, #33
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
G_M18406_IG42:
mov w0, #8
mov w1, wzr
movz x2, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
G_M18406_IG43:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1340, prolog size 32, PerfScore 464.35, instruction count 335, allocated bytes for code 1340 (MethodHash=ed37b819) for method System.Net.HttpListenerRequest+Helpers:GetCharSetValueFromHeader(System.String):System.String (FullOpts)
+; Total bytes of code 1320, prolog size 32, PerfScore 464.23, instruction count 334, allocated bytes for code 1320 (MethodHash=ed37b819) for method System.Net.HttpListenerRequest+Helpers:GetCharSetValueFromHeader(System.String):System.String (FullOpts)
-20 (-3.09 % of base) - System.Net.HttpResponseStream:GetChunkSizeBytes(int,ubyte):ubyte[]
; Assembly listing for method System.Net.HttpResponseStream:GetChunkSizeBytes(int,ubyte):ubyte[] (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T04] ( 3, 3 ) int -> x19 single-def
; V01 arg1 [V01,T05] ( 3, 3 ) ubyte -> x20 single-def
-; V02 loc0 [V02 ] ( 25, 20 ) struct (40) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
+; V02 loc0 [V02 ] ( 24, 19.50) struct (40) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T02] ( 3, 6 ) ref -> x21 class-hnd exact single-def "impAppendStmt" <System.Text.ASCIIEncoding+ASCIIEncodingSealed>
+; V04 tmp1 [V04,T02] ( 3, 6 ) ref -> x22 class-hnd exact single-def "impAppendStmt" <System.Text.ASCIIEncoding+ASCIIEncodingSealed>
;* V05 tmp2 [V05 ] ( 0, 0 ) ref -> zero-ref
;* V06 tmp3 [V06 ] ( 0, 0 ) byref -> zero-ref
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref single-def
;* V08 tmp5 [V08 ] ( 0, 0 ) byref -> zero-ref
-; V09 tmp6 [V09,T09] ( 5, 3 ) ref -> x1
+; V09 tmp6 [V09,T10] ( 5, 3 ) ref -> x1
;* V10 tmp7 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
; V11 tmp8 [V11,T00] ( 5, 8 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V13 tmp10 [V13 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V14 tmp11 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V15 tmp12 [V15 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V16 tmp13 [V16,T01] ( 4, 8 ) int -> x0 "Inlining Arg"
;* V17 tmp14 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V18 tmp15 [V18,T11] ( 2, 3 ) byref -> x2 single-def "Inlining Arg"
+; V18 tmp15 [V18,T12] ( 2, 3 ) byref -> x2 single-def "Inlining Arg"
; V19 tmp16 [V19,T08] ( 2, 4 ) int -> x0 "Inlining Arg"
-;* V20 tmp17 [V20,T22] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V20 tmp17 [V20,T23] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V21 tmp18 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V22 tmp19 [V22 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V23 tmp20 [V23 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V24 tmp21 [V24 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V25 tmp22 [V25,T06] ( 4, 4 ) int -> x2 "Inlining Arg"
;* V26 tmp23 [V26 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V27 tmp24 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V28 tmp25 [V28,T17] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
+; V28 tmp25 [V28,T17] ( 2, 2 ) byref -> x3 single-def "Inlining Arg"
; V29 tmp26 [V29,T20] ( 2, 2 ) int -> x2 "Inlining Arg"
-;* V30 tmp27 [V30,T23] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V30 tmp27 [V30,T24] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V31 tmp28 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V32 tmp29 [V32 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V33 tmp30 [V33 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V34 tmp31 [V34 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V35 tmp32 [V35 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V36 tmp33 [V36,T07] ( 2, 4 ) ref -> x20 class-hnd exact single-def "impAppendStmt" <System.String>
;* V37 tmp34 [V37 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V38 tmp35 [V38,T03] ( 3, 6 ) int -> x1 "Inlining Arg"
;* V39 tmp36 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V40 tmp37 [V40 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V41 tmp38 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V42 tmp39 [V42 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V43 tmp40 [V43 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V44 tmp41 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V45 tmp42 [V45,T12] ( 3, 2.50) ref -> x1 class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V45 tmp42 [V45,T13] ( 3, 2.50) ref -> x1 class-hnd single-def "Inline stloc first use temp" <ushort[]>
; V46 tmp43 [V46,T15] ( 3, 2 ) byref -> x1 "field V14._reference (fldOffset=0x0)" P-INDEP
; V47 tmp44 [V47,T16] ( 3, 2 ) int -> x2 "field V14._length (fldOffset=0x8)" P-INDEP
;* V48 tmp45 [V48 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
;* V49 tmp46 [V49 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
;* V50 tmp47 [V50 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
;* V51 tmp48 [V51 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
;* V52 tmp49 [V52 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
;* V53 tmp50 [V53 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
;* V54 tmp51 [V54 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
;* V56 tmp53 [V56 ] ( 0, 0 ) byref -> zero-ref single-def "field V27._reference (fldOffset=0x0)" P-INDEP
;* V57 tmp54 [V57 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
;* V58 tmp55 [V58 ] ( 0, 0 ) byref -> zero-ref single-def "field V31._reference (fldOffset=0x0)" P-INDEP
;* V59 tmp56 [V59 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
;* V60 tmp57 [V60 ] ( 0, 0 ) byref -> zero-ref "field V35._reference (fldOffset=0x0)" P-INDEP
;* V61 tmp58 [V61 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
;* V62 tmp59 [V62 ] ( 0, 0 ) byref -> zero-ref "field V37._reference (fldOffset=0x0)" P-INDEP
;* V63 tmp60 [V63 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
; V64 tmp61 [V64,T18] ( 2, 2 ) byref -> x0 single-def "field V39._reference (fldOffset=0x0)" P-INDEP
;* V65 tmp62 [V65 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
;* V66 tmp63 [V66 ] ( 0, 0 ) byref -> zero-ref single-def "field V41._reference (fldOffset=0x0)" P-INDEP
;* V67 tmp64 [V67 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
; V68 tmp65 [V68,T19] ( 2, 2 ) byref -> x0 single-def "field V42._reference (fldOffset=0x0)" P-INDEP
; V69 tmp66 [V69,T21] ( 2, 2 ) int -> x1 "field V42._length (fldOffset=0x8)" P-INDEP
-; V70 cse0 [V70,T13] ( 3, 2.50) ref -> x22 "CSE #06: moderate"
-; V71 cse1 [V71,T14] ( 4, 2 ) int -> x19 "CSE #05: moderate"
-; V72 cse2 [V72,T10] ( 3, 3 ) int -> x1 "CSE #02: moderate"
+; V70 cse0 [V70,T14] ( 4, 2 ) int -> x19 "CSE #05: moderate"
+; V71 cse1 [V71,T11] ( 3, 3 ) int -> x1 "CSE #02: moderate"
+; V72 cse2 [V72,T22] ( 3, 1.50) int -> x0 "CSE #04: moderate"
+; V73 cse3 [V73,T09] ( 4, 3.50) long -> x21 "CSE #01: aggressive"
;
; Lcl frame size = 48
G_M23118_IG01:
stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x40]
stp x21, x22, [sp, #0x50]
mov fp, sp
add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
str xzr, [x9, #0x20]
mov w19, w0
mov w20, w1
;; size=40 bbWeight=1 PerfScore 7.50
G_M23118_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M23118_IG16
;; size=20 bbWeight=1 PerfScore 5.50
G_M23118_IG03:
- movz x0, #0xD1FFAB1E // data for System.Text.ASCIIEncoding:s_default
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x21, [x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x22, [x0]
- mov x0, x22
+ movz x21, #0xD1FFAB1E
+ movk x21, #0xD1FFAB1E LSL #32
+ ldr x22, [x21, #0xD1FFAB1E]
+ ldr x0, [x21]
mov w1, #0xD1FFAB1E
movz x2, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
str x0, [fp, #0x20] // [V02 loc0+0x08]
cbnz x0, G_M23118_IG05
- ;; size=68 bbWeight=1 PerfScore 17.50
+ ;; size=48 bbWeight=1 PerfScore 15.00
G_M23118_IG04:
mov x1, xzr
mov w2, wzr
b G_M23118_IG06
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M23118_IG05:
add x1, x0, #16
ldr w2, [x0, #0x08]
;; size=8 bbWeight=0.50 PerfScore 1.75
G_M23118_IG06:
str x1, [fp, #0x30] // [V02 loc0+0x18]
str w2, [fp, #0x38] // [V02 loc0+0x20]
str wzr, [fp, #0x28] // [V02 loc0+0x10]
strb wzr, [fp, #0x2C] // [V02 loc0+0x14]
add x0, fp, #24 // [V02 loc0]
mov w1, w19
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr w0, [fp, #0x28] // [V02 loc0+0x10]
ldr w1, [fp, #0x38] // [V02 loc0+0x20]
cmp w0, w1
bhi G_M23118_IG17
ldr x2, [fp, #0x30] // [V02 loc0+0x18]
ubfiz x3, x0, #1, #32
add x2, x2, x3
sub w0, w1, w0
cmp w0, #2
blo G_M23118_IG08
;; size=96 bbWeight=1 PerfScore 23.00
G_M23118_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w1, [x0]
str w1, [x2]
ldr w0, [fp, #0x28] // [V02 loc0+0x10]
add w0, w0, #2
str w0, [fp, #0x28] // [V02 loc0+0x10]
b G_M23118_IG09
;; size=36 bbWeight=0.50 PerfScore 5.00
G_M23118_IG08:
add x0, fp, #24 // [V02 loc0]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M23118_IG09:
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
tst w20, #255
csel x1, x1, x2, ne
ldrb w2, [fp, #0x2C] // [V02 loc0+0x14]
cbnz w2, G_M23118_IG11
;; size=40 bbWeight=1 PerfScore 7.00
G_M23118_IG10:
cbz x1, G_M23118_IG11
ldr w2, [fp, #0x28] // [V02 loc0+0x10]
ldr w0, [fp, #0x38] // [V02 loc0+0x20]
cmp w2, w0
bhi G_M23118_IG17
- ldr x0, [fp, #0x30] // [V02 loc0+0x18]
- ubfiz x3, x2, #1, #32
- add x0, x0, x3
- ldr w3, [fp, #0x38] // [V02 loc0+0x20]
- sub w2, w3, w2
+ ldr x3, [fp, #0x30] // [V02 loc0+0x18]
+ ubfiz x4, x2, #1, #32
+ add x3, x3, x4
+ sub w2, w0, w2
ldr w19, [x1, #0x08]
cmp w19, w2
bhi G_M23118_IG11
add x1, x1, #12
ubfiz x2, x19, #1, #32
+ mov x0, x3
movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr w0, [fp, #0x28] // [V02 loc0+0x10]
add w0, w0, w19
str w0, [fp, #0x28] // [V02 loc0+0x10]
b G_M23118_IG12
- ;; size=96 bbWeight=0.50 PerfScore 14.25
+ ;; size=96 bbWeight=0.50 PerfScore 13.50
G_M23118_IG11:
add x0, fp, #24 // [V02 loc0]
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.50 PerfScore 3.00
G_M23118_IG12:
ldr w1, [fp, #0x28] // [V02 loc0+0x10]
ldr w0, [fp, #0x38] // [V02 loc0+0x20]
cmp w1, w0
bhi G_M23118_IG17
ldr x0, [fp, #0x30] // [V02 loc0+0x18]
bl System.String:.ctor(System.ReadOnlySpan`1[ushort]):this
mov x20, x0
ldr x1, [fp, #0x20] // [V02 loc0+0x08]
stp xzr, xzr, [fp, #0x18]
stp xzr, xzr, [fp, #0x28]
str xzr, [fp, #0x38]
cbz x1, G_M23118_IG14
;; size=48 bbWeight=1 PerfScore 15.00
G_M23118_IG13:
- mov x0, x22
+ ldr x0, [x21]
mov w2, wzr
movz x3, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ushort]:Return(ushort[],ubyte):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=28 bbWeight=0.50 PerfScore 3.25
+ ;; size=28 bbWeight=0.50 PerfScore 4.50
G_M23118_IG14:
- mov x0, x21
+ mov x0, x22
mov x1, x20
- ldr xzr, [x21]
+ ldr xzr, [x22]
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr x2, [x2, #0x10]
blr x2
;; size=36 bbWeight=1 PerfScore 12.50
G_M23118_IG15:
ldp x21, x22, [sp, #0x50]
ldp x19, x20, [sp, #0x40]
ldp fp, lr, [sp], #0x60
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
G_M23118_IG16:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M23118_IG03
;; size=20 bbWeight=0 PerfScore 0.00
G_M23118_IG17:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 648, prolog size 32, PerfScore 124.00, instruction count 162, allocated bytes for code 648 (MethodHash=0db0a5b1) for method System.Net.HttpResponseStream:GetChunkSizeBytes(int,ubyte):ubyte[] (FullOpts)
+; Total bytes of code 628, prolog size 32, PerfScore 122.00, instruction count 157, allocated bytes for code 628 (MethodHash=0db0a5b1) for method System.Net.HttpResponseStream:GetChunkSizeBytes(int,ubyte):ubyte[] (FullOpts)
-20 (-2.59 % of base) - System.Net.NameResolutionTelemetry:OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs):this
; Assembly listing for method System.Net.NameResolutionTelemetry:OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 17 single block inlinees; 15 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T04] ( 13, 7.25) ref -> x19 this class-hnd single-def <System.Net.NameResolutionTelemetry>
; V01 arg1 [V01,T05] ( 3, 3 ) ref -> x1 class-hnd single-def <System.Diagnostics.Tracing.EventCommandEventArgs>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T01] ( 14, 10.50) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.Tracing.EventCounter>
-; V04 tmp2 [V04,T07] ( 4, 4 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Func`1[double]>
-; V05 tmp3 [V05,T02] ( 10, 10 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.Tracing.PollingCounter>
-; V06 tmp4 [V06,T08] ( 4, 4 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Func`1[double]>
-; V07 tmp5 [V07,T03] ( 10, 10 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.Tracing.PollingCounter>
+; V03 tmp1 [V03,T01] ( 14, 10.50) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.Tracing.EventCounter>
+; V04 tmp2 [V04,T07] ( 4, 4 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Func`1[double]>
+; V05 tmp3 [V05,T02] ( 10, 10 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.Tracing.PollingCounter>
+; V06 tmp4 [V06,T08] ( 4, 4 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Func`1[double]>
+; V07 tmp5 [V07,T03] ( 10, 10 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.Tracing.PollingCounter>
;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V09 tmp7 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V10 tmp8 [V10,T10] ( 3, 1 ) ref -> x0 class-hnd exact single-def "Inline stloc first use temp" <double[]>
+; V10 tmp8 [V10,T11] ( 3, 1 ) ref -> x0 class-hnd exact single-def "Inline stloc first use temp" <double[]>
; V11 tmp9 [V11,T00] ( 5, 16.25) int -> x14 "Inline stloc first use temp"
;* V12 tmp10 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V13 tmp11 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V14 cse0 [V14,T11] ( 3, 4.50) double -> d8 "CSE #04: aggressive"
+; V14 cse0 [V14,T12] ( 3, 4.50) double -> d8 "CSE #04: aggressive"
; V15 cse1 [V15,T06] ( 2, 4.25) byref -> x15 hoist "CSE #05: aggressive"
-; V16 cse2 [V16,T09] ( 9, 3.75) ref -> x22 multi-def "CSE #02: aggressive"
+; V16 cse2 [V16,T10] ( 9, 3.75) long -> x20 multi-def "CSE #01: aggressive"
+; V17 cse3 [V17,T09] ( 9, 3.75) ref -> x22 multi-def "CSE #02: aggressive"
;
; Lcl frame size = 8
G_M14000_IG01:
stp fp, lr, [sp, #-0x40]!
str d8, [sp, #0x18]
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
mov fp, sp
mov x19, x0
;; size=24 bbWeight=1 PerfScore 5.00
G_M14000_IG02:
ldr w0, [x1, #0x38]
cmn w0, #2
bne G_M14000_IG09
;; size=12 bbWeight=1 PerfScore 4.50
G_M14000_IG03:
ldr x0, [x19, #0xB0]
cbnz x0, G_M14000_IG04
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ movz x20, #0xD1FFAB1E
+ movk x20, #0xD1FFAB1E LSL #16
+ movk x20, #0xD1FFAB1E LSL #32
+ add x0, x20, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x20, x0
- add x14, x20, #8
+ mov x21, x0
+ add x14, x21, #8
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E // code for System.Net.NameResolutionTelemetry:<OnEventCommand>b__9_0():double:this
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- str x0, [x20, #0x18]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ str x0, [x21, #0x18]
+ mov x0, x20
bl CORINFO_HELP_NEWSFAST
- mov x21, x0
+ mov x20, x0
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
- stp x22, x22, [x21, #0x08]
+ stp x22, x22, [x20, #0x08]
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- str x14, [x21, #0x18]
- add x14, x21, #32
+ str x14, [x20, #0x18]
+ add x14, x20, #32
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
- add x14, x21, #56
- mov x15, x20
+ add x14, x20, #56
+ mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x21
+ mov x0, x20
movz x1, #0xD1FFAB1E // code for System.Diagnostics.Tracing.DiagnosticCounter:Publish():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- ldr x14, [x21, #0x08]
+ ldr x14, [x20, #0x08]
cbz x14, G_M14000_IG11
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- str x14, [x21, #0x08]
+ str x14, [x20, #0x08]
add x14, x19, #176
- mov x15, x21
+ mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
- ;; size=192 bbWeight=0.50 PerfScore 19.00
+ ;; size=188 bbWeight=0.50 PerfScore 18.75
G_M14000_IG04:
ldr x0, [x19, #0xB8]
cbnz x0, G_M14000_IG05
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ movz x20, #0xD1FFAB1E
+ movk x20, #0xD1FFAB1E LSL #16
+ movk x20, #0xD1FFAB1E LSL #32
+ add x0, x20, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x20, x0
- add x14, x20, #8
+ mov x21, x0
+ add x14, x21, #8
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E // code for System.Net.NameResolutionTelemetry:<OnEventCommand>b__9_1():double:this
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- str x0, [x20, #0x18]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ str x0, [x21, #0x18]
+ mov x0, x20
bl CORINFO_HELP_NEWSFAST
- mov x21, x0
+ mov x20, x0
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
- stp x22, x22, [x21, #0x08]
+ stp x22, x22, [x20, #0x08]
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- str x14, [x21, #0x18]
- add x14, x21, #32
+ str x14, [x20, #0x18]
+ add x14, x20, #32
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
- add x14, x21, #56
- mov x15, x20
+ add x14, x20, #56
+ mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x21
+ mov x0, x20
movz x1, #0xD1FFAB1E // code for System.Diagnostics.Tracing.DiagnosticCounter:Publish():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- ldr x14, [x21, #0x08]
+ ldr x14, [x20, #0x08]
cbz x14, G_M14000_IG11
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- str x14, [x21, #0x08]
+ str x14, [x20, #0x08]
add x14, x19, #184
- mov x15, x21
+ mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
- ;; size=192 bbWeight=0.50 PerfScore 19.00
+ ;; size=188 bbWeight=0.50 PerfScore 18.75
G_M14000_IG05:
ldr x0, [x19, #0xC0]
cbnz x0, G_M14000_IG09
;; size=8 bbWeight=0.50 PerfScore 2.00
G_M14000_IG06:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ movz x20, #0xD1FFAB1E
+ movk x20, #0xD1FFAB1E LSL #16
+ movk x20, #0xD1FFAB1E LSL #32
+ add x0, x20, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x20, x0
+ mov x21, x0
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
- stp x22, x22, [x20, #0x08]
+ stp x22, x22, [x21, #0x08]
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- str x14, [x20, #0x18]
- add x14, x20, #32
+ str x14, [x21, #0x18]
+ add x14, x21, #32
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
ldr d16, [@RWD00]
- str d16, [x20, #0x50]
+ str d16, [x21, #0x50]
ldr d8, [@RWD08]
- str d8, [x20, #0x58]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ str d8, [x21, #0x58]
+ add x0, x20, #0xD1FFAB1E
mov x1, #10
bl CORINFO_HELP_NEWARR_1_VC
mov w14, wzr
add x15, x0, #16
- align [4 bytes for IG07]
- align [4 bytes]
+ align [0 bytes for IG07]
align [0 bytes]
align [0 bytes]
- ;; size=116 bbWeight=0.25 PerfScore 5.25
+ align [0 bytes]
+ ;; size=104 bbWeight=0.25 PerfScore 4.88
G_M14000_IG07:
str d8, [x15, w14, UXTW #3]
add w14, w14, #1
cmp w14, #10
blt G_M14000_IG07
;; size=16 bbWeight=4 PerfScore 12.00
G_M14000_IG08:
- add x14, x20, #56
+ add x14, x21, #56
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x20
+ mov x0, x21
movz x1, #0xD1FFAB1E // code for System.Diagnostics.Tracing.DiagnosticCounter:Publish():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- ldr x14, [x20, #0x08]
+ ldr x14, [x21, #0x08]
cbz x14, G_M14000_IG11
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- str x14, [x20, #0x08]
- ldr x14, [x20, #0x10]
+ str x14, [x21, #0x08]
+ ldr x14, [x21, #0x10]
cbz x14, G_M14000_IG10
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- str x14, [x20, #0x10]
+ str x14, [x21, #0x10]
add x14, x19, #192
- mov x15, x20
+ mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
;; size=96 bbWeight=0.50 PerfScore 11.50
G_M14000_IG09:
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldr d8, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M14000_IG10:
movz w0, #0xD1FFAB1E
movk w0, #1 LSL #16
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
movz x1, #0xD1FFAB1E // code for System.ArgumentNullException:Throw(System.String)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=48 bbWeight=0 PerfScore 0.00
G_M14000_IG11:
movz w0, #0xD1FFAB1E
movk w0, #1 LSL #16
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
movz x1, #0xD1FFAB1E // code for System.ArgumentNullException:Throw(System.String)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=48 bbWeight=0 PerfScore 0.00
RWD00 dq 7FF0000000000000h ; inf
RWD08 dq FFF0000000000000h ; -inf
-; Total bytes of code 772, prolog size 24, PerfScore 84.25, instruction count 195, allocated bytes for code 772 (MethodHash=81b4c94f) for method System.Net.NameResolutionTelemetry:OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs):this (FullOpts)
+; Total bytes of code 752, prolog size 24, PerfScore 83.38, instruction count 192, allocated bytes for code 752 (MethodHash=81b4c94f) for method System.Net.NameResolutionTelemetry:OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs):this (FullOpts)
-20 (-0.84 % of base) - System.Net.NetEventSource:Format(System.Object):System.String
; Assembly listing for method System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 39 single block inlinees; 50 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 14, 8.50) ref -> x19 class-hnd single-def <System.Object>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.String>
; V02 loc1 [V02,T53] ( 3, 1.50) ref -> x20 class-hnd single-def <System.Array>
; V03 loc2 [V03,T20] ( 4, 2 ) ref -> x21 class-hnd single-def <System.Collections.ICollection>
; V04 loc3 [V04,T18] ( 6, 3 ) ref -> x22 class-hnd single-def <System.Runtime.InteropServices.SafeHandle>
; V05 loc4 [V05,T54] ( 3, 1.50) ref -> x21 class-hnd exact single-def <System.String>
; V06 loc5 [V06 ] (105, 52.50) struct (40) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08,T39] ( 0, 0 ) int -> zero-ref "spilling qmarkNull"
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
; V10 tmp3 [V10,T02] ( 5, 5 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
;* V11 tmp4 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V12 tmp5 [V12 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V13 tmp6 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V14 tmp7 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.RuntimeType>
;* V15 tmp8 [V15 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V16 tmp9 [V16,T08] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V17 tmp10 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V18 tmp11 [V18,T23] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
; V19 tmp12 [V19,T40] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V20 tmp13 [V20,T67] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V21 tmp14 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V22 tmp15 [V22 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V23 tmp16 [V23 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V24 tmp17 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Array>
;* V25 tmp18 [V25 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V26 tmp19 [V26,T09] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V27 tmp20 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V28 tmp21 [V28,T24] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
; V29 tmp22 [V29,T41] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V30 tmp23 [V30,T68] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V31 tmp24 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V32 tmp25 [V32 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V33 tmp26 [V33 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V34 tmp27 [V34 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V35 tmp28 [V35,T25] ( 2, 2 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.String>
;* V36 tmp29 [V36 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V37 tmp30 [V37,T19] ( 3, 3 ) int -> x1 "Inlining Arg"
;* V38 tmp31 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V39 tmp32 [V39 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V40 tmp33 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V41 tmp34 [V41 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V42 tmp35 [V42 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V43 tmp36 [V43 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V44 tmp37 [V44,T55] ( 3, 1.50) ref -> x1 class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V45 tmp38 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
; V46 tmp39 [V46,T03] ( 5, 5 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
;* V47 tmp40 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V48 tmp41 [V48 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V49 tmp42 [V49 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V50 tmp43 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.RuntimeType>
; V51 tmp44 [V51,T04] ( 5, 5 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.String>
;* V52 tmp45 [V52 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V53 tmp46 [V53,T10] ( 4, 4 ) int -> x2 "Inlining Arg"
;* V54 tmp47 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V55 tmp48 [V55,T26] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
; V56 tmp49 [V56,T42] ( 2, 2 ) int -> x2 "Inlining Arg"
;* V57 tmp50 [V57,T69] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V58 tmp51 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V59 tmp52 [V59 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V60 tmp53 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V61 tmp54 [V61 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V62 tmp55 [V62 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V63 tmp56 [V63,T11] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V64 tmp57 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V65 tmp58 [V65,T27] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
; V66 tmp59 [V66,T43] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V67 tmp60 [V67,T70] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V68 tmp61 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V69 tmp62 [V69 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V70 tmp63 [V70 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V71 tmp64 [V71 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V72 tmp65 [V72,T12] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V73 tmp66 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V74 tmp67 [V74,T28] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
; V75 tmp68 [V75,T44] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V76 tmp69 [V76,T71] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V77 tmp70 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V78 tmp71 [V78 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V79 tmp72 [V79 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V80 tmp73 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
; V81 tmp74 [V81,T05] ( 5, 5 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
;* V82 tmp75 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V83 tmp76 [V83 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V84 tmp77 [V84 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V85 tmp78 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.RuntimeType>
; V86 tmp79 [V86,T06] ( 5, 5 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.String>
;* V87 tmp80 [V87 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V88 tmp81 [V88,T13] ( 4, 4 ) int -> x2 "Inlining Arg"
;* V89 tmp82 [V89 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V90 tmp83 [V90,T29] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
; V91 tmp84 [V91,T45] ( 2, 2 ) int -> x2 "Inlining Arg"
;* V92 tmp85 [V92,T72] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V93 tmp86 [V93 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V94 tmp87 [V94 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V95 tmp88 [V95 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V96 tmp89 [V96 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V97 tmp90 [V97 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V98 tmp91 [V98,T14] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V99 tmp92 [V99 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V100 tmp93 [V100,T30] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
; V101 tmp94 [V101,T46] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V102 tmp95 [V102,T73] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V103 tmp96 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V104 tmp97 [V104 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V105 tmp98 [V105 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V106 tmp99 [V106 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V107 tmp100 [V107,T15] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V108 tmp101 [V108 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V109 tmp102 [V109,T31] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
; V110 tmp103 [V110,T47] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V111 tmp104 [V111,T74] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V112 tmp105 [V112 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V113 tmp106 [V113 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V114 tmp107 [V114 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V115 tmp108 [V115 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V116 tmp109 [V116,T16] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V117 tmp110 [V117 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V118 tmp111 [V118,T32] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
; V119 tmp112 [V119,T48] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V120 tmp113 [V120,T75] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V121 tmp114 [V121 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V122 tmp115 [V122 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V123 tmp116 [V123 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V124 tmp117 [V124 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
; V125 tmp118 [V125,T07] ( 5, 5 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
;* V126 tmp119 [V126 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V127 tmp120 [V127 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V128 tmp121 [V128 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V129 tmp122 [V129 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V130 tmp123 [V130,T17] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V131 tmp124 [V131 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V132 tmp125 [V132,T33] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
; V133 tmp126 [V133,T49] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V134 tmp127 [V134,T76] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V135 tmp128 [V135 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V136 tmp129 [V136 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V137 tmp130 [V137 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V138 tmp131 [V138 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.RuntimeType>
;* V139 tmp132 [V139 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V140 tmp133 [V140,T01] ( 6, 7 ) ref -> x0 "Single return block return value"
; V141 tmp134 [V141,T56] ( 3, 1.50) byref -> x21 "field V13._reference (fldOffset=0x0)" P-INDEP
; V142 tmp135 [V142,T60] ( 3, 1.50) int -> x22 "field V13._length (fldOffset=0x8)" P-INDEP
;* V143 tmp136 [V143 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
;* V144 tmp137 [V144 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
;* V145 tmp138 [V145 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
;* V146 tmp139 [V146 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
;* V147 tmp140 [V147 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
;* V148 tmp141 [V148 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
;* V149 tmp142 [V149 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
;* V150 tmp143 [V150 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
;* V151 tmp144 [V151 ] ( 0, 0 ) byref -> zero-ref single-def "field V27._reference (fldOffset=0x0)" P-INDEP
;* V152 tmp145 [V152 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
;* V153 tmp146 [V153 ] ( 0, 0 ) byref -> zero-ref single-def "field V31._reference (fldOffset=0x0)" P-INDEP
;* V154 tmp147 [V154 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
;* V155 tmp148 [V155 ] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP
;* V156 tmp149 [V156 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
;* V157 tmp150 [V157 ] ( 0, 0 ) byref -> zero-ref "field V36._reference (fldOffset=0x0)" P-INDEP
;* V158 tmp151 [V158 ] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
; V159 tmp152 [V159,T65] ( 2, 1 ) byref -> x0 single-def "field V38._reference (fldOffset=0x0)" P-INDEP
;* V160 tmp153 [V160 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
;* V161 tmp154 [V161 ] ( 0, 0 ) byref -> zero-ref single-def "field V40._reference (fldOffset=0x0)" P-INDEP
;* V162 tmp155 [V162 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
; V163 tmp156 [V163,T66] ( 2, 1 ) byref -> x0 single-def "field V41._reference (fldOffset=0x0)" P-INDEP
; V164 tmp157 [V164,T77] ( 2, 1 ) int -> x1 "field V41._length (fldOffset=0x8)" P-INDEP
; V165 tmp158 [V165,T57] ( 3, 1.50) byref -> x22 "field V49._reference (fldOffset=0x0)" P-INDEP
; V166 tmp159 [V166,T61] ( 3, 1.50) int -> x20 "field V49._length (fldOffset=0x8)" P-INDEP
;* V167 tmp160 [V167 ] ( 0, 0 ) byref -> zero-ref "field V52._reference (fldOffset=0x0)" P-INDEP
;* V168 tmp161 [V168 ] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x8)" P-INDEP
;* V169 tmp162 [V169 ] ( 0, 0 ) byref -> zero-ref single-def "field V54._reference (fldOffset=0x0)" P-INDEP
;* V170 tmp163 [V170 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
;* V171 tmp164 [V171 ] ( 0, 0 ) byref -> zero-ref single-def "field V58._reference (fldOffset=0x0)" P-INDEP
;* V172 tmp165 [V172 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP
;* V173 tmp166 [V173 ] ( 0, 0 ) byref -> zero-ref "field V62._reference (fldOffset=0x0)" P-INDEP
;* V174 tmp167 [V174 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP
;* V175 tmp168 [V175 ] ( 0, 0 ) byref -> zero-ref single-def "field V64._reference (fldOffset=0x0)" P-INDEP
;* V176 tmp169 [V176 ] ( 0, 0 ) int -> zero-ref "field V64._length (fldOffset=0x8)" P-INDEP
;* V177 tmp170 [V177 ] ( 0, 0 ) byref -> zero-ref single-def "field V68._reference (fldOffset=0x0)" P-INDEP
;* V178 tmp171 [V178 ] ( 0, 0 ) int -> zero-ref "field V68._length (fldOffset=0x8)" P-INDEP
;* V179 tmp172 [V179 ] ( 0, 0 ) byref -> zero-ref "field V71._reference (fldOffset=0x0)" P-INDEP
;* V180 tmp173 [V180 ] ( 0, 0 ) int -> zero-ref "field V71._length (fldOffset=0x8)" P-INDEP
;* V181 tmp174 [V181 ] ( 0, 0 ) byref -> zero-ref single-def "field V73._reference (fldOffset=0x0)" P-INDEP
;* V182 tmp175 [V182 ] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP
;* V183 tmp176 [V183 ] ( 0, 0 ) byref -> zero-ref single-def "field V77._reference (fldOffset=0x0)" P-INDEP
;* V184 tmp177 [V184 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x8)" P-INDEP
; V185 tmp178 [V185,T58] ( 3, 1.50) byref -> x20 "field V84._reference (fldOffset=0x0)" P-INDEP
; V186 tmp179 [V186,T62] ( 3, 1.50) int -> x21 "field V84._length (fldOffset=0x8)" P-INDEP
;* V187 tmp180 [V187 ] ( 0, 0 ) byref -> zero-ref "field V87._reference (fldOffset=0x0)" P-INDEP
;* V188 tmp181 [V188 ] ( 0, 0 ) int -> zero-ref "field V87._length (fldOffset=0x8)" P-INDEP
;* V189 tmp182 [V189 ] ( 0, 0 ) byref -> zero-ref single-def "field V89._reference (fldOffset=0x0)" P-INDEP
;* V190 tmp183 [V190 ] ( 0, 0 ) int -> zero-ref "field V89._length (fldOffset=0x8)" P-INDEP
;* V191 tmp184 [V191 ] ( 0, 0 ) byref -> zero-ref single-def "field V93._reference (fldOffset=0x0)" P-INDEP
;* V192 tmp185 [V192 ] ( 0, 0 ) int -> zero-ref "field V93._length (fldOffset=0x8)" P-INDEP
;* V193 tmp186 [V193 ] ( 0, 0 ) byref -> zero-ref "field V97._reference (fldOffset=0x0)" P-INDEP
;* V194 tmp187 [V194 ] ( 0, 0 ) int -> zero-ref "field V97._length (fldOffset=0x8)" P-INDEP
;* V195 tmp188 [V195 ] ( 0, 0 ) byref -> zero-ref single-def "field V99._reference (fldOffset=0x0)" P-INDEP
;* V196 tmp189 [V196 ] ( 0, 0 ) int -> zero-ref "field V99._length (fldOffset=0x8)" P-INDEP
;* V197 tmp190 [V197 ] ( 0, 0 ) byref -> zero-ref single-def "field V103._reference (fldOffset=0x0)" P-INDEP
;* V198 tmp191 [V198 ] ( 0, 0 ) int -> zero-ref "field V103._length (fldOffset=0x8)" P-INDEP
;* V199 tmp192 [V199 ] ( 0, 0 ) byref -> zero-ref "field V106._reference (fldOffset=0x0)" P-INDEP
;* V200 tmp193 [V200 ] ( 0, 0 ) int -> zero-ref "field V106._length (fldOffset=0x8)" P-INDEP
;* V201 tmp194 [V201 ] ( 0, 0 ) byref -> zero-ref single-def "field V108._reference (fldOffset=0x0)" P-INDEP
;* V202 tmp195 [V202 ] ( 0, 0 ) int -> zero-ref "field V108._length (fldOffset=0x8)" P-INDEP
;* V203 tmp196 [V203 ] ( 0, 0 ) byref -> zero-ref single-def "field V112._reference (fldOffset=0x0)" P-INDEP
;* V204 tmp197 [V204 ] ( 0, 0 ) int -> zero-ref "field V112._length (fldOffset=0x8)" P-INDEP
;* V205 tmp198 [V205 ] ( 0, 0 ) byref -> zero-ref "field V115._reference (fldOffset=0x0)" P-INDEP
;* V206 tmp199 [V206 ] ( 0, 0 ) int -> zero-ref "field V115._length (fldOffset=0x8)" P-INDEP
;* V207 tmp200 [V207 ] ( 0, 0 ) byref -> zero-ref single-def "field V117._reference (fldOffset=0x0)" P-INDEP
;* V208 tmp201 [V208 ] ( 0, 0 ) int -> zero-ref "field V117._length (fldOffset=0x8)" P-INDEP
;* V209 tmp202 [V209 ] ( 0, 0 ) byref -> zero-ref single-def "field V121._reference (fldOffset=0x0)" P-INDEP
;* V210 tmp203 [V210 ] ( 0, 0 ) int -> zero-ref "field V121._length (fldOffset=0x8)" P-INDEP
; V211 tmp204 [V211,T59] ( 3, 1.50) byref -> x1 "field V128._reference (fldOffset=0x0)" P-INDEP
; V212 tmp205 [V212,T63] ( 3, 1.50) int -> x2 "field V128._length (fldOffset=0x8)" P-INDEP
;* V213 tmp206 [V213 ] ( 0, 0 ) byref -> zero-ref "field V129._reference (fldOffset=0x0)" P-INDEP
;* V214 tmp207 [V214 ] ( 0, 0 ) int -> zero-ref "field V129._length (fldOffset=0x8)" P-INDEP
;* V215 tmp208 [V215 ] ( 0, 0 ) byref -> zero-ref single-def "field V131._reference (fldOffset=0x0)" P-INDEP
;* V216 tmp209 [V216 ] ( 0, 0 ) int -> zero-ref "field V131._length (fldOffset=0x8)" P-INDEP
;* V217 tmp210 [V217 ] ( 0, 0 ) byref -> zero-ref single-def "field V135._reference (fldOffset=0x0)" P-INDEP
;* V218 tmp211 [V218 ] ( 0, 0 ) int -> zero-ref "field V135._length (fldOffset=0x8)" P-INDEP
; V219 tmp212 [V219,T34] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V220 tmp213 [V220,T35] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
; V221 tmp214 [V221,T36] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V222 tmp215 [V222,T50] ( 2, 2 ) int -> x1 "argument with side effect"
; V223 tmp216 [V223,T37] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V224 tmp217 [V224,T51] ( 2, 2 ) int -> x1 "argument with side effect"
; V225 tmp218 [V225,T38] ( 2, 2 ) ref -> x2 single-def "argument with side effect"
; V226 tmp219 [V226,T52] ( 2, 2 ) int -> x1 "argument with side effect"
; V227 cse0 [V227,T64] ( 3, 1.50) long -> x20 "CSE #26: conservative"
; V228 cse1 [V228,T21] ( 4, 2 ) int -> x19 "CSE #08: moderate"
; V229 cse2 [V229,T22] ( 4, 2 ) int -> x19 "CSE #14: moderate"
;
; Lcl frame size = 48
G_M4972_IG01:
stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x40]
stp x21, x22, [sp, #0x50]
mov fp, sp
add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
str xzr, [x9, #0x20]
mov x19, x0
;; size=36 bbWeight=1 PerfScore 7.00
G_M4972_IG02:
cbnz x19, G_M4972_IG05
;; size=4 bbWeight=1 PerfScore 1.00
G_M4972_IG03:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
;; size=12 bbWeight=0.50 PerfScore 0.75
G_M4972_IG04:
ldp x21, x22, [sp, #0x50]
ldp x19, x20, [sp, #0x40]
ldp fp, lr, [sp], #0x60
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
G_M4972_IG05:
mov x1, x19
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x20, x0
cbz x20, G_M4972_IG06
str xzr, [fp, #0x18] // [V06 loc5]
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, #0xD1FFAB1E
movz x2, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
str x0, [fp, #0x20] // [V06 loc5+0x08]
cbnz x0, G_M4972_IG33
mov x21, xzr
mov w22, wzr
b G_M4972_IG34
- ;; size=108 bbWeight=0.50 PerfScore 12.25
+ ;; size=104 bbWeight=0.50 PerfScore 12.00
G_M4972_IG06:
mov x1, x19
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x21, x0
cbz x21, G_M4972_IG07
str xzr, [fp, #0x18] // [V06 loc5]
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, #0xD1FFAB1E
movz x2, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
str x0, [fp, #0x20] // [V06 loc5+0x08]
cbnz x0, G_M4972_IG24
mov x22, xzr
mov w20, wzr
b G_M4972_IG25
- ;; size=108 bbWeight=0.50 PerfScore 12.25
+ ;; size=104 bbWeight=0.50 PerfScore 12.00
G_M4972_IG07:
mov x1, x19
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x22, x0
cbz x22, G_M4972_IG08
str xzr, [fp, #0x18] // [V06 loc5]
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, #0xD1FFAB1E
movz x2, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
str x0, [fp, #0x20] // [V06 loc5+0x08]
cbnz x0, G_M4972_IG16
mov x20, xzr
mov w21, wzr
b G_M4972_IG17
- ;; size=108 bbWeight=0.50 PerfScore 12.25
+ ;; size=104 bbWeight=0.50 PerfScore 12.00
G_M4972_IG08:
ldr x0, [x19]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x0, x1
beq G_M4972_IG10
mov x0, x19
ldr x1, [x19]
ldr x20, [x1, #0x40]
ldr x1, [x20, #0x08]
blr x1
mov x21, x0
cbz x21, G_M4972_IG09
mov x0, x19
bl System.Object:GetType():System.Type:this
mov w1, #2
movz x2, #0xD1FFAB1E // code for System.RuntimeType:GetCachedName(int):System.String:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x0
mov x0, x21
movz x2, #0xD1FFAB1E // code for System.String:Equals(System.String,System.String):ubyte
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz w0, G_M4972_IG15
;; size=116 bbWeight=0.50 PerfScore 16.50
G_M4972_IG09:
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.Net.NetEventSource:IdOf(System.Object):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
b G_M4972_IG04
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M4972_IG10:
str xzr, [fp, #0x18] // [V06 loc5]
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, #0xD1FFAB1E
movz x2, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
str x0, [fp, #0x20] // [V06 loc5+0x08]
cbnz x0, G_M4972_IG11
mov x1, xzr
mov w2, wzr
b G_M4972_IG12
- ;; size=64 bbWeight=0.50 PerfScore 7.75
+ ;; size=60 bbWeight=0.50 PerfScore 7.50
G_M4972_IG11:
add x1, x0, #16
ldr w2, [x0, #0x08]
;; size=8 bbWeight=0.50 PerfScore 1.75
G_M4972_IG12:
str x1, [fp, #0x30] // [V06 loc5+0x18]
str w2, [fp, #0x38] // [V06 loc5+0x20]
str wzr, [fp, #0x28] // [V06 loc5+0x10]
strb wzr, [fp, #0x2C] // [V06 loc5+0x14]
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
ldr w1, [fp, #0x38] // [V06 loc5+0x20]
cmp w0, w1
bhi G_M4972_IG40
ldr x1, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x2, x0, #1, #32
add x1, x1, x2
ldr w2, [fp, #0x38] // [V06 loc5+0x20]
sub w0, w2, w0
cmp w0, #2
blo G_M4972_IG13
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w2, [x0]
str w2, [x1]
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, #2
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG14
;; size=96 bbWeight=0.50 PerfScore 13.50
G_M4972_IG13:
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4972_IG14:
add x0, fp, #24 // [V06 loc5]
mov x2, x19
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
movz x4, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon,System.String):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
b G_M4972_IG32
;; size=56 bbWeight=0.50 PerfScore 5.25
G_M4972_IG15:
mov x0, x19
ldr x1, [x20, #0x08]
blr x1
b G_M4972_IG04
;; size=16 bbWeight=0.50 PerfScore 2.75
G_M4972_IG16:
add x20, x0, #16
ldr w21, [x0, #0x08]
;; size=8 bbWeight=0.50 PerfScore 1.75
G_M4972_IG17:
str x20, [fp, #0x30] // [V06 loc5+0x18]
str w21, [fp, #0x38] // [V06 loc5+0x20]
str wzr, [fp, #0x28] // [V06 loc5+0x10]
strb wzr, [fp, #0x2C] // [V06 loc5+0x14]
mov x0, x22
bl System.Object:GetType():System.Type:this
mov w1, wzr
movz x2, #0xD1FFAB1E // code for System.RuntimeType:GetCachedName(int):System.String:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x0
ldrb w2, [fp, #0x2C] // [V06 loc5+0x14]
cbnz w2, G_M4972_IG18
cbz x1, G_M4972_IG18
ldr w2, [fp, #0x28] // [V06 loc5+0x10]
ldr w0, [fp, #0x38] // [V06 loc5+0x20]
cmp w2, w0
bhi G_M4972_IG40
ldr x0, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x3, x2, #1, #32
add x0, x0, x3
ldr w3, [fp, #0x38] // [V06 loc5+0x20]
sub w2, w3, w2
ldr w19, [x1, #0x08]
cmp w19, w2
bhi G_M4972_IG18
add x1, x1, #12
ubfiz x2, x19, #1, #32
movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, w19
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG19
;; size=156 bbWeight=0.50 PerfScore 21.75
G_M4972_IG18:
add x0, fp, #24 // [V06 loc5]
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.50 PerfScore 3.00
G_M4972_IG19:
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
ldr w1, [fp, #0x38] // [V06 loc5+0x20]
cmp w0, w1
bhi G_M4972_IG40
ldr x1, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x2, x0, #1, #32
add x1, x1, x2
ldr w2, [fp, #0x38] // [V06 loc5+0x20]
sub w0, w2, w0
cbz w0, G_M4972_IG20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrh w2, [x0]
strh w2, [x1]
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, #1
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG21
;; size=76 bbWeight=0.50 PerfScore 11.25
G_M4972_IG20:
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4972_IG21:
mov x0, x22
ldr x1, [x22]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x18]
blr x1
sxtw w1, w0
add x0, fp, #24 // [V06 loc5]
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
ldr w1, [fp, #0x38] // [V06 loc5+0x20]
cmp w0, w1
bhi G_M4972_IG40
ldr x1, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x2, x0, #1, #32
add x1, x1, x2
ldr w2, [fp, #0x38] // [V06 loc5+0x20]
sub w0, w2, w0
cmp w0, #3
blo G_M4972_IG22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w2, [x0]
ldr w3, [x0, #0x02]
str w2, [x1]
str w3, [x1, #0x02]
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, #3
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG23
;; size=136 bbWeight=0.50 PerfScore 22.00
G_M4972_IG22:
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4972_IG23:
ldr x1, [x22, #0x08]
add x0, fp, #24 // [V06 loc5]
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[long](long,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
ldr w1, [fp, #0x38] // [V06 loc5+0x20]
cmp w0, w1
bhi G_M4972_IG40
ldr x1, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x2, x0, #1, #32
add x1, x1, x2
ldr w2, [fp, #0x38] // [V06 loc5+0x20]
sub w0, w2, w0
cbz w0, G_M4972_IG31
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrh w2, [x0]
strh w2, [x1]
b G_M4972_IG30
;; size=104 bbWeight=0.50 PerfScore 14.75
G_M4972_IG24:
add x22, x0, #16
ldr w20, [x0, #0x08]
;; size=8 bbWeight=0.50 PerfScore 1.75
G_M4972_IG25:
str x22, [fp, #0x30] // [V06 loc5+0x18]
str w20, [fp, #0x38] // [V06 loc5+0x20]
str wzr, [fp, #0x28] // [V06 loc5+0x10]
strb wzr, [fp, #0x2C] // [V06 loc5+0x14]
mov x0, x21
bl System.Object:GetType():System.Type:this
mov w1, wzr
movz x2, #0xD1FFAB1E // code for System.RuntimeType:GetCachedName(int):System.String:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x0
ldrb w2, [fp, #0x2C] // [V06 loc5+0x14]
cbnz w2, G_M4972_IG26
cbz x1, G_M4972_IG26
ldr w2, [fp, #0x28] // [V06 loc5+0x10]
ldr w0, [fp, #0x38] // [V06 loc5+0x20]
cmp w2, w0
bhi G_M4972_IG40
ldr x0, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x3, x2, #1, #32
add x0, x0, x3
ldr w3, [fp, #0x38] // [V06 loc5+0x20]
sub w2, w3, w2
ldr w19, [x1, #0x08]
cmp w19, w2
bhi G_M4972_IG26
add x1, x1, #12
ubfiz x2, x19, #1, #32
movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, w19
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG27
;; size=156 bbWeight=0.50 PerfScore 21.75
G_M4972_IG26:
add x0, fp, #24 // [V06 loc5]
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.50 PerfScore 3.00
G_M4972_IG27:
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
ldr w1, [fp, #0x38] // [V06 loc5+0x20]
cmp w0, w1
bhi G_M4972_IG40
ldr x1, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x2, x0, #1, #32
add x1, x1, x2
ldr w2, [fp, #0x38] // [V06 loc5+0x20]
sub w0, w2, w0
cbz w0, G_M4972_IG28
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrh w2, [x0]
strh w2, [x1]
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, #1
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG29
;; size=76 bbWeight=0.50 PerfScore 11.25
G_M4972_IG28:
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4972_IG29:
mov x0, x21
movz x11, #0xD1FFAB1E // code for System.Collections.ICollection:get_Count():int:this
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
ldr xip0, [x11]
blr xip0
sxtw w1, w0
add x0, fp, #24 // [V06 loc5]
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
ldr w1, [fp, #0x38] // [V06 loc5+0x20]
cmp w0, w1
bhi G_M4972_IG40
ldr x1, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x2, x0, #1, #32
add x1, x1, x2
ldr w2, [fp, #0x38] // [V06 loc5+0x20]
sub w0, w2, w0
cbz w0, G_M4972_IG31
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrh w2, [x0]
strh w2, [x1]
;; size=112 bbWeight=0.50 PerfScore 15.25
G_M4972_IG30:
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, #1
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG32
;; size=16 bbWeight=0.50 PerfScore 2.25
G_M4972_IG31:
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4972_IG32:
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
b G_M4972_IG04
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M4972_IG33:
add x21, x0, #16
ldr w22, [x0, #0x08]
;; size=8 bbWeight=0.50 PerfScore 1.75
G_M4972_IG34:
str x21, [fp, #0x30] // [V06 loc5+0x18]
str w22, [fp, #0x38] // [V06 loc5+0x20]
str wzr, [fp, #0x28] // [V06 loc5+0x10]
strb wzr, [fp, #0x2C] // [V06 loc5+0x14]
mov x0, x20
bl System.Object:GetType():System.Type:this
bl System.RuntimeTypeHandle:GetElementType(System.RuntimeType):System.RuntimeType
mov x2, x0
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
ldr w1, [fp, #0x38] // [V06 loc5+0x20]
cmp w0, w1
bhi G_M4972_IG40
ldr x1, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x2, x0, #1, #32
add x1, x1, x2
ldr w2, [fp, #0x38] // [V06 loc5+0x20]
sub w0, w2, w0
cbz w0, G_M4972_IG35
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrh w2, [x0]
strh w2, [x1]
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, #1
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG36
;; size=144 bbWeight=0.50 PerfScore 18.50
G_M4972_IG35:
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4972_IG36:
mov x1, x19
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr w1, [x0, #0x08]
cmp w1, #0
blt G_M4972_IG41
add x0, fp, #24 // [V06 loc5]
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
ldr w1, [fp, #0x38] // [V06 loc5+0x20]
cmp w0, w1
bhi G_M4972_IG40
ldr x1, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x2, x0, #1, #32
add x1, x1, x2
ldr w2, [fp, #0x38] // [V06 loc5+0x20]
sub w0, w2, w0
cbz w0, G_M4972_IG37
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrh w2, [x0]
strh w2, [x1]
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, #1
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG38
;; size=148 bbWeight=0.50 PerfScore 20.25
G_M4972_IG37:
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4972_IG38:
ldr w1, [fp, #0x28] // [V06 loc5+0x10]
ldr w0, [fp, #0x38] // [V06 loc5+0x20]
cmp w1, w0
bhi G_M4972_IG40
ldr x0, [fp, #0x30] // [V06 loc5+0x18]
bl System.String:.ctor(System.ReadOnlySpan`1[ushort]):this
mov x19, x0
ldr x1, [fp, #0x20] // [V06 loc5+0x08]
stp xzr, xzr, [fp, #0x18]
stp xzr, xzr, [fp, #0x28]
str xzr, [fp, #0x38]
cbz x1, G_M4972_IG39
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w2, wzr
movz x3, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ushort]:Return(ushort[],ubyte):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=88 bbWeight=0.50 PerfScore 12.75
+ ;; size=84 bbWeight=0.50 PerfScore 12.50
G_M4972_IG39:
mov x0, x19
b G_M4972_IG04
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M4972_IG40:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M4972_IG41:
bl CORINFO_HELP_OVERFLOW
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2380, prolog size 32, PerfScore 314.00, instruction count 595, allocated bytes for code 2380 (MethodHash=7d61ec93) for method System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
+; Total bytes of code 2360, prolog size 32, PerfScore 312.75, instruction count 590, allocated bytes for code 2360 (MethodHash=7d61ec93) for method System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-20 (-0.84 % of base) - System.Net.NetEventSource:Format(System.Object):System.String
; Assembly listing for method System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 39 single block inlinees; 50 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 14, 8.50) ref -> x19 class-hnd single-def <System.Object>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.String>
; V02 loc1 [V02,T53] ( 3, 1.50) ref -> x20 class-hnd single-def <System.Array>
; V03 loc2 [V03,T20] ( 4, 2 ) ref -> x21 class-hnd single-def <System.Collections.ICollection>
; V04 loc3 [V04,T18] ( 6, 3 ) ref -> x22 class-hnd single-def <System.Runtime.InteropServices.SafeHandle>
; V05 loc4 [V05,T54] ( 3, 1.50) ref -> x21 class-hnd exact single-def <System.String>
; V06 loc5 [V06 ] (105, 52.50) struct (40) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08,T39] ( 0, 0 ) int -> zero-ref "spilling qmarkNull"
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
; V10 tmp3 [V10,T02] ( 5, 5 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
;* V11 tmp4 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V12 tmp5 [V12 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V13 tmp6 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V14 tmp7 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.RuntimeType>
;* V15 tmp8 [V15 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V16 tmp9 [V16,T08] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V17 tmp10 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V18 tmp11 [V18,T23] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
; V19 tmp12 [V19,T40] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V20 tmp13 [V20,T67] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V21 tmp14 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V22 tmp15 [V22 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V23 tmp16 [V23 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V24 tmp17 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Array>
;* V25 tmp18 [V25 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V26 tmp19 [V26,T09] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V27 tmp20 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V28 tmp21 [V28,T24] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
; V29 tmp22 [V29,T41] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V30 tmp23 [V30,T68] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V31 tmp24 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V32 tmp25 [V32 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V33 tmp26 [V33 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V34 tmp27 [V34 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V35 tmp28 [V35,T25] ( 2, 2 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.String>
;* V36 tmp29 [V36 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V37 tmp30 [V37,T19] ( 3, 3 ) int -> x1 "Inlining Arg"
;* V38 tmp31 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V39 tmp32 [V39 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V40 tmp33 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V41 tmp34 [V41 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V42 tmp35 [V42 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V43 tmp36 [V43 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V44 tmp37 [V44,T55] ( 3, 1.50) ref -> x1 class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V45 tmp38 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
; V46 tmp39 [V46,T03] ( 5, 5 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
;* V47 tmp40 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V48 tmp41 [V48 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V49 tmp42 [V49 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V50 tmp43 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.RuntimeType>
; V51 tmp44 [V51,T04] ( 5, 5 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.String>
;* V52 tmp45 [V52 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V53 tmp46 [V53,T10] ( 4, 4 ) int -> x2 "Inlining Arg"
;* V54 tmp47 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V55 tmp48 [V55,T26] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
; V56 tmp49 [V56,T42] ( 2, 2 ) int -> x2 "Inlining Arg"
;* V57 tmp50 [V57,T69] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V58 tmp51 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V59 tmp52 [V59 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V60 tmp53 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V61 tmp54 [V61 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V62 tmp55 [V62 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V63 tmp56 [V63,T11] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V64 tmp57 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V65 tmp58 [V65,T27] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
; V66 tmp59 [V66,T43] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V67 tmp60 [V67,T70] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V68 tmp61 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V69 tmp62 [V69 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V70 tmp63 [V70 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V71 tmp64 [V71 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V72 tmp65 [V72,T12] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V73 tmp66 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V74 tmp67 [V74,T28] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
; V75 tmp68 [V75,T44] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V76 tmp69 [V76,T71] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V77 tmp70 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V78 tmp71 [V78 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V79 tmp72 [V79 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V80 tmp73 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
; V81 tmp74 [V81,T05] ( 5, 5 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
;* V82 tmp75 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V83 tmp76 [V83 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V84 tmp77 [V84 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V85 tmp78 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.RuntimeType>
; V86 tmp79 [V86,T06] ( 5, 5 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.String>
;* V87 tmp80 [V87 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V88 tmp81 [V88,T13] ( 4, 4 ) int -> x2 "Inlining Arg"
;* V89 tmp82 [V89 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V90 tmp83 [V90,T29] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
; V91 tmp84 [V91,T45] ( 2, 2 ) int -> x2 "Inlining Arg"
;* V92 tmp85 [V92,T72] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V93 tmp86 [V93 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V94 tmp87 [V94 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V95 tmp88 [V95 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V96 tmp89 [V96 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V97 tmp90 [V97 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V98 tmp91 [V98,T14] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V99 tmp92 [V99 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V100 tmp93 [V100,T30] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
; V101 tmp94 [V101,T46] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V102 tmp95 [V102,T73] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V103 tmp96 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V104 tmp97 [V104 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V105 tmp98 [V105 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V106 tmp99 [V106 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V107 tmp100 [V107,T15] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V108 tmp101 [V108 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V109 tmp102 [V109,T31] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
; V110 tmp103 [V110,T47] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V111 tmp104 [V111,T74] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V112 tmp105 [V112 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V113 tmp106 [V113 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V114 tmp107 [V114 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V115 tmp108 [V115 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V116 tmp109 [V116,T16] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V117 tmp110 [V117 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V118 tmp111 [V118,T32] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
; V119 tmp112 [V119,T48] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V120 tmp113 [V120,T75] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V121 tmp114 [V121 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V122 tmp115 [V122 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V123 tmp116 [V123 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V124 tmp117 [V124 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
; V125 tmp118 [V125,T07] ( 5, 5 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
;* V126 tmp119 [V126 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V127 tmp120 [V127 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V128 tmp121 [V128 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V129 tmp122 [V129 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V130 tmp123 [V130,T17] ( 4, 4 ) int -> x0 "Inlining Arg"
;* V131 tmp124 [V131 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V132 tmp125 [V132,T33] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
; V133 tmp126 [V133,T49] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V134 tmp127 [V134,T76] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V135 tmp128 [V135 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V136 tmp129 [V136 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V137 tmp130 [V137 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V138 tmp131 [V138 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.RuntimeType>
;* V139 tmp132 [V139 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V140 tmp133 [V140,T01] ( 6, 7 ) ref -> x0 "Single return block return value"
; V141 tmp134 [V141,T56] ( 3, 1.50) byref -> x21 "field V13._reference (fldOffset=0x0)" P-INDEP
; V142 tmp135 [V142,T60] ( 3, 1.50) int -> x22 "field V13._length (fldOffset=0x8)" P-INDEP
;* V143 tmp136 [V143 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
;* V144 tmp137 [V144 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
;* V145 tmp138 [V145 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
;* V146 tmp139 [V146 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
;* V147 tmp140 [V147 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
;* V148 tmp141 [V148 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
;* V149 tmp142 [V149 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
;* V150 tmp143 [V150 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
;* V151 tmp144 [V151 ] ( 0, 0 ) byref -> zero-ref single-def "field V27._reference (fldOffset=0x0)" P-INDEP
;* V152 tmp145 [V152 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
;* V153 tmp146 [V153 ] ( 0, 0 ) byref -> zero-ref single-def "field V31._reference (fldOffset=0x0)" P-INDEP
;* V154 tmp147 [V154 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
;* V155 tmp148 [V155 ] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP
;* V156 tmp149 [V156 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
;* V157 tmp150 [V157 ] ( 0, 0 ) byref -> zero-ref "field V36._reference (fldOffset=0x0)" P-INDEP
;* V158 tmp151 [V158 ] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
; V159 tmp152 [V159,T65] ( 2, 1 ) byref -> x0 single-def "field V38._reference (fldOffset=0x0)" P-INDEP
;* V160 tmp153 [V160 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
;* V161 tmp154 [V161 ] ( 0, 0 ) byref -> zero-ref single-def "field V40._reference (fldOffset=0x0)" P-INDEP
;* V162 tmp155 [V162 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
; V163 tmp156 [V163,T66] ( 2, 1 ) byref -> x0 single-def "field V41._reference (fldOffset=0x0)" P-INDEP
; V164 tmp157 [V164,T77] ( 2, 1 ) int -> x1 "field V41._length (fldOffset=0x8)" P-INDEP
; V165 tmp158 [V165,T57] ( 3, 1.50) byref -> x22 "field V49._reference (fldOffset=0x0)" P-INDEP
; V166 tmp159 [V166,T61] ( 3, 1.50) int -> x20 "field V49._length (fldOffset=0x8)" P-INDEP
;* V167 tmp160 [V167 ] ( 0, 0 ) byref -> zero-ref "field V52._reference (fldOffset=0x0)" P-INDEP
;* V168 tmp161 [V168 ] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x8)" P-INDEP
;* V169 tmp162 [V169 ] ( 0, 0 ) byref -> zero-ref single-def "field V54._reference (fldOffset=0x0)" P-INDEP
;* V170 tmp163 [V170 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
;* V171 tmp164 [V171 ] ( 0, 0 ) byref -> zero-ref single-def "field V58._reference (fldOffset=0x0)" P-INDEP
;* V172 tmp165 [V172 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP
;* V173 tmp166 [V173 ] ( 0, 0 ) byref -> zero-ref "field V62._reference (fldOffset=0x0)" P-INDEP
;* V174 tmp167 [V174 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP
;* V175 tmp168 [V175 ] ( 0, 0 ) byref -> zero-ref single-def "field V64._reference (fldOffset=0x0)" P-INDEP
;* V176 tmp169 [V176 ] ( 0, 0 ) int -> zero-ref "field V64._length (fldOffset=0x8)" P-INDEP
;* V177 tmp170 [V177 ] ( 0, 0 ) byref -> zero-ref single-def "field V68._reference (fldOffset=0x0)" P-INDEP
;* V178 tmp171 [V178 ] ( 0, 0 ) int -> zero-ref "field V68._length (fldOffset=0x8)" P-INDEP
;* V179 tmp172 [V179 ] ( 0, 0 ) byref -> zero-ref "field V71._reference (fldOffset=0x0)" P-INDEP
;* V180 tmp173 [V180 ] ( 0, 0 ) int -> zero-ref "field V71._length (fldOffset=0x8)" P-INDEP
;* V181 tmp174 [V181 ] ( 0, 0 ) byref -> zero-ref single-def "field V73._reference (fldOffset=0x0)" P-INDEP
;* V182 tmp175 [V182 ] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP
;* V183 tmp176 [V183 ] ( 0, 0 ) byref -> zero-ref single-def "field V77._reference (fldOffset=0x0)" P-INDEP
;* V184 tmp177 [V184 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x8)" P-INDEP
; V185 tmp178 [V185,T58] ( 3, 1.50) byref -> x20 "field V84._reference (fldOffset=0x0)" P-INDEP
; V186 tmp179 [V186,T62] ( 3, 1.50) int -> x21 "field V84._length (fldOffset=0x8)" P-INDEP
;* V187 tmp180 [V187 ] ( 0, 0 ) byref -> zero-ref "field V87._reference (fldOffset=0x0)" P-INDEP
;* V188 tmp181 [V188 ] ( 0, 0 ) int -> zero-ref "field V87._length (fldOffset=0x8)" P-INDEP
;* V189 tmp182 [V189 ] ( 0, 0 ) byref -> zero-ref single-def "field V89._reference (fldOffset=0x0)" P-INDEP
;* V190 tmp183 [V190 ] ( 0, 0 ) int -> zero-ref "field V89._length (fldOffset=0x8)" P-INDEP
;* V191 tmp184 [V191 ] ( 0, 0 ) byref -> zero-ref single-def "field V93._reference (fldOffset=0x0)" P-INDEP
;* V192 tmp185 [V192 ] ( 0, 0 ) int -> zero-ref "field V93._length (fldOffset=0x8)" P-INDEP
;* V193 tmp186 [V193 ] ( 0, 0 ) byref -> zero-ref "field V97._reference (fldOffset=0x0)" P-INDEP
;* V194 tmp187 [V194 ] ( 0, 0 ) int -> zero-ref "field V97._length (fldOffset=0x8)" P-INDEP
;* V195 tmp188 [V195 ] ( 0, 0 ) byref -> zero-ref single-def "field V99._reference (fldOffset=0x0)" P-INDEP
;* V196 tmp189 [V196 ] ( 0, 0 ) int -> zero-ref "field V99._length (fldOffset=0x8)" P-INDEP
;* V197 tmp190 [V197 ] ( 0, 0 ) byref -> zero-ref single-def "field V103._reference (fldOffset=0x0)" P-INDEP
;* V198 tmp191 [V198 ] ( 0, 0 ) int -> zero-ref "field V103._length (fldOffset=0x8)" P-INDEP
;* V199 tmp192 [V199 ] ( 0, 0 ) byref -> zero-ref "field V106._reference (fldOffset=0x0)" P-INDEP
;* V200 tmp193 [V200 ] ( 0, 0 ) int -> zero-ref "field V106._length (fldOffset=0x8)" P-INDEP
;* V201 tmp194 [V201 ] ( 0, 0 ) byref -> zero-ref single-def "field V108._reference (fldOffset=0x0)" P-INDEP
;* V202 tmp195 [V202 ] ( 0, 0 ) int -> zero-ref "field V108._length (fldOffset=0x8)" P-INDEP
;* V203 tmp196 [V203 ] ( 0, 0 ) byref -> zero-ref single-def "field V112._reference (fldOffset=0x0)" P-INDEP
;* V204 tmp197 [V204 ] ( 0, 0 ) int -> zero-ref "field V112._length (fldOffset=0x8)" P-INDEP
;* V205 tmp198 [V205 ] ( 0, 0 ) byref -> zero-ref "field V115._reference (fldOffset=0x0)" P-INDEP
;* V206 tmp199 [V206 ] ( 0, 0 ) int -> zero-ref "field V115._length (fldOffset=0x8)" P-INDEP
;* V207 tmp200 [V207 ] ( 0, 0 ) byref -> zero-ref single-def "field V117._reference (fldOffset=0x0)" P-INDEP
;* V208 tmp201 [V208 ] ( 0, 0 ) int -> zero-ref "field V117._length (fldOffset=0x8)" P-INDEP
;* V209 tmp202 [V209 ] ( 0, 0 ) byref -> zero-ref single-def "field V121._reference (fldOffset=0x0)" P-INDEP
;* V210 tmp203 [V210 ] ( 0, 0 ) int -> zero-ref "field V121._length (fldOffset=0x8)" P-INDEP
; V211 tmp204 [V211,T59] ( 3, 1.50) byref -> x1 "field V128._reference (fldOffset=0x0)" P-INDEP
; V212 tmp205 [V212,T63] ( 3, 1.50) int -> x2 "field V128._length (fldOffset=0x8)" P-INDEP
;* V213 tmp206 [V213 ] ( 0, 0 ) byref -> zero-ref "field V129._reference (fldOffset=0x0)" P-INDEP
;* V214 tmp207 [V214 ] ( 0, 0 ) int -> zero-ref "field V129._length (fldOffset=0x8)" P-INDEP
;* V215 tmp208 [V215 ] ( 0, 0 ) byref -> zero-ref single-def "field V131._reference (fldOffset=0x0)" P-INDEP
;* V216 tmp209 [V216 ] ( 0, 0 ) int -> zero-ref "field V131._length (fldOffset=0x8)" P-INDEP
;* V217 tmp210 [V217 ] ( 0, 0 ) byref -> zero-ref single-def "field V135._reference (fldOffset=0x0)" P-INDEP
;* V218 tmp211 [V218 ] ( 0, 0 ) int -> zero-ref "field V135._length (fldOffset=0x8)" P-INDEP
; V219 tmp212 [V219,T34] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V220 tmp213 [V220,T35] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
; V221 tmp214 [V221,T36] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V222 tmp215 [V222,T50] ( 2, 2 ) int -> x1 "argument with side effect"
; V223 tmp216 [V223,T37] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V224 tmp217 [V224,T51] ( 2, 2 ) int -> x1 "argument with side effect"
; V225 tmp218 [V225,T38] ( 2, 2 ) ref -> x2 single-def "argument with side effect"
; V226 tmp219 [V226,T52] ( 2, 2 ) int -> x1 "argument with side effect"
; V227 cse0 [V227,T64] ( 3, 1.50) long -> x20 "CSE #26: conservative"
; V228 cse1 [V228,T21] ( 4, 2 ) int -> x19 "CSE #08: moderate"
; V229 cse2 [V229,T22] ( 4, 2 ) int -> x19 "CSE #14: moderate"
;
; Lcl frame size = 48
G_M4972_IG01:
stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x40]
stp x21, x22, [sp, #0x50]
mov fp, sp
add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
str xzr, [x9, #0x20]
mov x19, x0
;; size=36 bbWeight=1 PerfScore 7.00
G_M4972_IG02:
cbnz x19, G_M4972_IG05
;; size=4 bbWeight=1 PerfScore 1.00
G_M4972_IG03:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
;; size=12 bbWeight=0.50 PerfScore 0.75
G_M4972_IG04:
ldp x21, x22, [sp, #0x50]
ldp x19, x20, [sp, #0x40]
ldp fp, lr, [sp], #0x60
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
G_M4972_IG05:
mov x1, x19
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x20, x0
cbz x20, G_M4972_IG06
str xzr, [fp, #0x18] // [V06 loc5]
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, #0xD1FFAB1E
movz x2, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
str x0, [fp, #0x20] // [V06 loc5+0x08]
cbnz x0, G_M4972_IG33
mov x21, xzr
mov w22, wzr
b G_M4972_IG34
- ;; size=108 bbWeight=0.50 PerfScore 12.25
+ ;; size=104 bbWeight=0.50 PerfScore 12.00
G_M4972_IG06:
mov x1, x19
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x21, x0
cbz x21, G_M4972_IG07
str xzr, [fp, #0x18] // [V06 loc5]
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, #0xD1FFAB1E
movz x2, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
str x0, [fp, #0x20] // [V06 loc5+0x08]
cbnz x0, G_M4972_IG24
mov x22, xzr
mov w20, wzr
b G_M4972_IG25
- ;; size=108 bbWeight=0.50 PerfScore 12.25
+ ;; size=104 bbWeight=0.50 PerfScore 12.00
G_M4972_IG07:
mov x1, x19
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x22, x0
cbz x22, G_M4972_IG08
str xzr, [fp, #0x18] // [V06 loc5]
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, #0xD1FFAB1E
movz x2, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
str x0, [fp, #0x20] // [V06 loc5+0x08]
cbnz x0, G_M4972_IG16
mov x20, xzr
mov w21, wzr
b G_M4972_IG17
- ;; size=108 bbWeight=0.50 PerfScore 12.25
+ ;; size=104 bbWeight=0.50 PerfScore 12.00
G_M4972_IG08:
ldr x0, [x19]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x0, x1
beq G_M4972_IG10
mov x0, x19
ldr x1, [x19]
ldr x20, [x1, #0x40]
ldr x1, [x20, #0x08]
blr x1
mov x21, x0
cbz x21, G_M4972_IG09
mov x0, x19
bl System.Object:GetType():System.Type:this
mov w1, #2
movz x2, #0xD1FFAB1E // code for System.RuntimeType:GetCachedName(int):System.String:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x0
mov x0, x21
movz x2, #0xD1FFAB1E // code for System.String:Equals(System.String,System.String):ubyte
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz w0, G_M4972_IG15
;; size=116 bbWeight=0.50 PerfScore 16.50
G_M4972_IG09:
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.Net.NetEventSource:IdOf(System.Object):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
b G_M4972_IG04
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M4972_IG10:
str xzr, [fp, #0x18] // [V06 loc5]
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, #0xD1FFAB1E
movz x2, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
str x0, [fp, #0x20] // [V06 loc5+0x08]
cbnz x0, G_M4972_IG11
mov x1, xzr
mov w2, wzr
b G_M4972_IG12
- ;; size=64 bbWeight=0.50 PerfScore 7.75
+ ;; size=60 bbWeight=0.50 PerfScore 7.50
G_M4972_IG11:
add x1, x0, #16
ldr w2, [x0, #0x08]
;; size=8 bbWeight=0.50 PerfScore 1.75
G_M4972_IG12:
str x1, [fp, #0x30] // [V06 loc5+0x18]
str w2, [fp, #0x38] // [V06 loc5+0x20]
str wzr, [fp, #0x28] // [V06 loc5+0x10]
strb wzr, [fp, #0x2C] // [V06 loc5+0x14]
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
ldr w1, [fp, #0x38] // [V06 loc5+0x20]
cmp w0, w1
bhi G_M4972_IG40
ldr x1, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x2, x0, #1, #32
add x1, x1, x2
ldr w2, [fp, #0x38] // [V06 loc5+0x20]
sub w0, w2, w0
cmp w0, #2
blo G_M4972_IG13
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w2, [x0]
str w2, [x1]
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, #2
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG14
;; size=96 bbWeight=0.50 PerfScore 13.50
G_M4972_IG13:
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4972_IG14:
add x0, fp, #24 // [V06 loc5]
mov x2, x19
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
movz x4, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon,System.String):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
b G_M4972_IG32
;; size=56 bbWeight=0.50 PerfScore 5.25
G_M4972_IG15:
mov x0, x19
ldr x1, [x20, #0x08]
blr x1
b G_M4972_IG04
;; size=16 bbWeight=0.50 PerfScore 2.75
G_M4972_IG16:
add x20, x0, #16
ldr w21, [x0, #0x08]
;; size=8 bbWeight=0.50 PerfScore 1.75
G_M4972_IG17:
str x20, [fp, #0x30] // [V06 loc5+0x18]
str w21, [fp, #0x38] // [V06 loc5+0x20]
str wzr, [fp, #0x28] // [V06 loc5+0x10]
strb wzr, [fp, #0x2C] // [V06 loc5+0x14]
mov x0, x22
bl System.Object:GetType():System.Type:this
mov w1, wzr
movz x2, #0xD1FFAB1E // code for System.RuntimeType:GetCachedName(int):System.String:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x0
ldrb w2, [fp, #0x2C] // [V06 loc5+0x14]
cbnz w2, G_M4972_IG18
cbz x1, G_M4972_IG18
ldr w2, [fp, #0x28] // [V06 loc5+0x10]
ldr w0, [fp, #0x38] // [V06 loc5+0x20]
cmp w2, w0
bhi G_M4972_IG40
ldr x0, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x3, x2, #1, #32
add x0, x0, x3
ldr w3, [fp, #0x38] // [V06 loc5+0x20]
sub w2, w3, w2
ldr w19, [x1, #0x08]
cmp w19, w2
bhi G_M4972_IG18
add x1, x1, #12
ubfiz x2, x19, #1, #32
movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, w19
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG19
;; size=156 bbWeight=0.50 PerfScore 21.75
G_M4972_IG18:
add x0, fp, #24 // [V06 loc5]
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.50 PerfScore 3.00
G_M4972_IG19:
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
ldr w1, [fp, #0x38] // [V06 loc5+0x20]
cmp w0, w1
bhi G_M4972_IG40
ldr x1, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x2, x0, #1, #32
add x1, x1, x2
ldr w2, [fp, #0x38] // [V06 loc5+0x20]
sub w0, w2, w0
cbz w0, G_M4972_IG20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrh w2, [x0]
strh w2, [x1]
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, #1
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG21
;; size=76 bbWeight=0.50 PerfScore 11.25
G_M4972_IG20:
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4972_IG21:
mov x0, x22
ldr x1, [x22]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x18]
blr x1
sxtw w1, w0
add x0, fp, #24 // [V06 loc5]
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
ldr w1, [fp, #0x38] // [V06 loc5+0x20]
cmp w0, w1
bhi G_M4972_IG40
ldr x1, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x2, x0, #1, #32
add x1, x1, x2
ldr w2, [fp, #0x38] // [V06 loc5+0x20]
sub w0, w2, w0
cmp w0, #3
blo G_M4972_IG22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w2, [x0]
ldr w3, [x0, #0x02]
str w2, [x1]
str w3, [x1, #0x02]
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, #3
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG23
;; size=136 bbWeight=0.50 PerfScore 22.00
G_M4972_IG22:
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4972_IG23:
ldr x1, [x22, #0x08]
add x0, fp, #24 // [V06 loc5]
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[long](long,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
ldr w1, [fp, #0x38] // [V06 loc5+0x20]
cmp w0, w1
bhi G_M4972_IG40
ldr x1, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x2, x0, #1, #32
add x1, x1, x2
ldr w2, [fp, #0x38] // [V06 loc5+0x20]
sub w0, w2, w0
cbz w0, G_M4972_IG31
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrh w2, [x0]
strh w2, [x1]
b G_M4972_IG30
;; size=104 bbWeight=0.50 PerfScore 14.75
G_M4972_IG24:
add x22, x0, #16
ldr w20, [x0, #0x08]
;; size=8 bbWeight=0.50 PerfScore 1.75
G_M4972_IG25:
str x22, [fp, #0x30] // [V06 loc5+0x18]
str w20, [fp, #0x38] // [V06 loc5+0x20]
str wzr, [fp, #0x28] // [V06 loc5+0x10]
strb wzr, [fp, #0x2C] // [V06 loc5+0x14]
mov x0, x21
bl System.Object:GetType():System.Type:this
mov w1, wzr
movz x2, #0xD1FFAB1E // code for System.RuntimeType:GetCachedName(int):System.String:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x0
ldrb w2, [fp, #0x2C] // [V06 loc5+0x14]
cbnz w2, G_M4972_IG26
cbz x1, G_M4972_IG26
ldr w2, [fp, #0x28] // [V06 loc5+0x10]
ldr w0, [fp, #0x38] // [V06 loc5+0x20]
cmp w2, w0
bhi G_M4972_IG40
ldr x0, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x3, x2, #1, #32
add x0, x0, x3
ldr w3, [fp, #0x38] // [V06 loc5+0x20]
sub w2, w3, w2
ldr w19, [x1, #0x08]
cmp w19, w2
bhi G_M4972_IG26
add x1, x1, #12
ubfiz x2, x19, #1, #32
movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, w19
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG27
;; size=156 bbWeight=0.50 PerfScore 21.75
G_M4972_IG26:
add x0, fp, #24 // [V06 loc5]
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.50 PerfScore 3.00
G_M4972_IG27:
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
ldr w1, [fp, #0x38] // [V06 loc5+0x20]
cmp w0, w1
bhi G_M4972_IG40
ldr x1, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x2, x0, #1, #32
add x1, x1, x2
ldr w2, [fp, #0x38] // [V06 loc5+0x20]
sub w0, w2, w0
cbz w0, G_M4972_IG28
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrh w2, [x0]
strh w2, [x1]
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, #1
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG29
;; size=76 bbWeight=0.50 PerfScore 11.25
G_M4972_IG28:
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4972_IG29:
mov x0, x21
movz x11, #0xD1FFAB1E // code for System.Collections.ICollection:get_Count():int:this
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
ldr xip0, [x11]
blr xip0
sxtw w1, w0
add x0, fp, #24 // [V06 loc5]
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
ldr w1, [fp, #0x38] // [V06 loc5+0x20]
cmp w0, w1
bhi G_M4972_IG40
ldr x1, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x2, x0, #1, #32
add x1, x1, x2
ldr w2, [fp, #0x38] // [V06 loc5+0x20]
sub w0, w2, w0
cbz w0, G_M4972_IG31
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrh w2, [x0]
strh w2, [x1]
;; size=112 bbWeight=0.50 PerfScore 15.25
G_M4972_IG30:
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, #1
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG32
;; size=16 bbWeight=0.50 PerfScore 2.25
G_M4972_IG31:
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4972_IG32:
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
b G_M4972_IG04
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M4972_IG33:
add x21, x0, #16
ldr w22, [x0, #0x08]
;; size=8 bbWeight=0.50 PerfScore 1.75
G_M4972_IG34:
str x21, [fp, #0x30] // [V06 loc5+0x18]
str w22, [fp, #0x38] // [V06 loc5+0x20]
str wzr, [fp, #0x28] // [V06 loc5+0x10]
strb wzr, [fp, #0x2C] // [V06 loc5+0x14]
mov x0, x20
bl System.Object:GetType():System.Type:this
bl System.RuntimeTypeHandle:GetElementType(System.RuntimeType):System.RuntimeType
mov x2, x0
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
ldr w1, [fp, #0x38] // [V06 loc5+0x20]
cmp w0, w1
bhi G_M4972_IG40
ldr x1, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x2, x0, #1, #32
add x1, x1, x2
ldr w2, [fp, #0x38] // [V06 loc5+0x20]
sub w0, w2, w0
cbz w0, G_M4972_IG35
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrh w2, [x0]
strh w2, [x1]
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, #1
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG36
;; size=144 bbWeight=0.50 PerfScore 18.50
G_M4972_IG35:
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4972_IG36:
mov x1, x19
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr w1, [x0, #0x08]
cmp w1, #0
blt G_M4972_IG41
add x0, fp, #24 // [V06 loc5]
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
ldr w1, [fp, #0x38] // [V06 loc5+0x20]
cmp w0, w1
bhi G_M4972_IG40
ldr x1, [fp, #0x30] // [V06 loc5+0x18]
ubfiz x2, x0, #1, #32
add x1, x1, x2
ldr w2, [fp, #0x38] // [V06 loc5+0x20]
sub w0, w2, w0
cbz w0, G_M4972_IG37
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrh w2, [x0]
strh w2, [x1]
ldr w0, [fp, #0x28] // [V06 loc5+0x10]
add w0, w0, #1
str w0, [fp, #0x28] // [V06 loc5+0x10]
b G_M4972_IG38
;; size=148 bbWeight=0.50 PerfScore 20.25
G_M4972_IG37:
add x0, fp, #24 // [V06 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4972_IG38:
ldr w1, [fp, #0x28] // [V06 loc5+0x10]
ldr w0, [fp, #0x38] // [V06 loc5+0x20]
cmp w1, w0
bhi G_M4972_IG40
ldr x0, [fp, #0x30] // [V06 loc5+0x18]
bl System.String:.ctor(System.ReadOnlySpan`1[ushort]):this
mov x19, x0
ldr x1, [fp, #0x20] // [V06 loc5+0x08]
stp xzr, xzr, [fp, #0x18]
stp xzr, xzr, [fp, #0x28]
str xzr, [fp, #0x38]
cbz x1, G_M4972_IG39
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w2, wzr
movz x3, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ushort]:Return(ushort[],ubyte):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=88 bbWeight=0.50 PerfScore 12.75
+ ;; size=84 bbWeight=0.50 PerfScore 12.50
G_M4972_IG39:
mov x0, x19
b G_M4972_IG04
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M4972_IG40:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M4972_IG41:
bl CORINFO_HELP_OVERFLOW
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2380, prolog size 32, PerfScore 314.00, instruction count 595, allocated bytes for code 2380 (MethodHash=7d61ec93) for method System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
+; Total bytes of code 2360, prolog size 32, PerfScore 312.75, instruction count 590, allocated bytes for code 2360 (MethodHash=7d61ec93) for method System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-20 (-2.82 % of base) - System.Threading.Channels.BoundedChannel`1[long]:.ctor(int,int,ubyte,System.Action`1[long]):this
; Assembly listing for method System.Threading.Channels.BoundedChannel`1[long]:.ctor(int,int,ubyte,System.Action`1[long]):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 19 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 14, 14 ) ref -> x19 this class-hnd single-def <System.Threading.Channels.BoundedChannel`1[long]>
; V01 arg1 [V01,T11] ( 3, 3 ) int -> x22 single-def
; V02 arg2 [V02,T12] ( 3, 3 ) int -> x23 single-def
-; V03 arg3 [V03,T02] ( 4, 4 ) ubyte -> x20 single-def
+; V03 arg3 [V03,T03] ( 4, 4 ) ubyte -> x20 single-def
; V04 arg4 [V04,T10] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Action`1[long]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T03] ( 3, 6 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[long]>
-; V07 tmp2 [V07,T04] ( 3, 6 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.AsyncOperation`1[long]]>
-; V08 tmp3 [V08,T05] ( 3, 6 ) ref -> x28 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.VoidAsyncOperationWithData`1[long]]>
+; V06 tmp1 [V06,T04] ( 3, 6 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[long]>
+; V07 tmp2 [V07,T05] ( 3, 6 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.AsyncOperation`1[long]]>
+; V08 tmp3 [V08,T06] ( 3, 6 ) ref -> x28 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.VoidAsyncOperationWithData`1[long]]>
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref
;* V10 tmp5 [V10 ] ( 0, 0 ) ref -> zero-ref single-def
; V11 tmp6 [V11,T13] ( 4, 4 ) int -> x20
-; V12 tmp7 [V12,T06] ( 3, 6 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource>
-; V13 tmp8 [V13,T07] ( 3, 6 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[long]>
-; V14 tmp9 [V14,T08] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[long]>
-; V15 tmp10 [V15,T01] ( 4, 7 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
+; V12 tmp7 [V12,T07] ( 3, 6 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource>
+; V13 tmp8 [V13,T08] ( 3, 6 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[long]>
+; V14 tmp9 [V14,T09] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[long]>
+; V15 tmp10 [V15,T02] ( 4, 7 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V16 tmp11 [V16 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V17 tmp12 [V17,T18] ( 3, 1.50) ref -> x24 class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
-;* V18 tmp13 [V18,T19] ( 0, 0 ) ref -> zero-ref single-def "field V16._source (fldOffset=0x0)" P-INDEP
-; V19 cse0 [V19,T09] ( 5, 5 ) long -> x26 "CSE #02: aggressive"
-; V20 cse1 [V20,T14] ( 4, 4 ) long -> x25 "CSE #01: aggressive"
-; V21 rat0 [V21,T17] ( 3, 2 ) byref -> x1 "TLS field access"
-; V22 rat1 [V22,T16] ( 3, 3 ) long -> x0 "TLS access"
-; V23 rat2 [V23,T15] ( 3, 3 ) byref -> x1 "ThreadStaticBlockBase access"
+; V17 tmp12 [V17,T20] ( 3, 1.50) ref -> x24 class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
+;* V18 tmp13 [V18,T21] ( 0, 0 ) ref -> zero-ref single-def "field V16._source (fldOffset=0x0)" P-INDEP
+; V19 cse0 [V19,T01] ( 7, 7 ) long -> x26 "CSE #01: aggressive"
+; V20 cse1 [V20,T14] ( 4, 4 ) long -> x25 "CSE #02: aggressive"
+; V21 rat0 [V21,T18] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V22 rat1 [V22,T19] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V23 rat2 [V23,T17] ( 3, 2 ) byref -> x1 "TLS field access"
+; V24 rat3 [V24,T16] ( 3, 3 ) long -> x0 "TLS access"
+; V25 rat4 [V25,T15] ( 3, 3 ) byref -> x1 "ThreadStaticBlockBase access"
;
; Lcl frame size = 0
G_M5594_IG01:
stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x10]
stp x21, x22, [sp, #0x20]
stp x23, x24, [sp, #0x30]
stp x25, x26, [sp, #0x40]
stp x27, x28, [sp, #0x50]
mov fp, sp
mov x19, x0
mov w22, w1
mov w23, w2
mov w20, w3
mov x21, x4
;; size=48 bbWeight=1 PerfScore 9.00
G_M5594_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M5594_IG10
;; size=40 bbWeight=1 PerfScore 8.50
G_M5594_IG03:
movz x25, #0xD1FFAB1E // data for System.Array+EmptyArray`1[long]:Value
- movk x25, #0xD1FFAB1E LSL #16
movk x25, #0xD1FFAB1E LSL #32
ldr x15, [x25]
add x14, x24, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #40
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
movz x26, #0xD1FFAB1E
movk x26, #0xD1FFAB1E LSL #16
movk x26, #0xD1FFAB1E LSL #32
mov x0, x26
bl CORINFO_HELP_NEWSFAST
mov x27, x0
+ add x0, x26, #0xD1FFAB1E
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M5594_IG11
;; size=80 bbWeight=1 PerfScore 17.00
G_M5594_IG04:
ldr x15, [x25, #0xD1FFAB1E]
add x14, x27, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #48
mov x15, x27
bl CORINFO_HELP_ASSIGN_REF
add x0, x26, #200
bl CORINFO_HELP_NEWSFAST
mov x28, x0
+ add x0, x26, #0xD1FFAB1E
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M5594_IG12
- ;; size=56 bbWeight=1 PerfScore 14.00
+ ;; size=60 bbWeight=1 PerfScore 14.50
G_M5594_IG05:
ldr x15, [x25, #0xD1FFAB1E]
add x14, x28, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #56
mov x15, x28
bl CORINFO_HELP_ASSIGN_REF
stp w23, w22, [x19, #0x58]
strb w20, [x19, #0x60]
add x14, x19, #24
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
mov w0, #64
tst w20, #255
csel w20, w0, wzr, ne
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x21, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x22, x0
movn w0, #68
tst w20, w0
bne G_M5594_IG14
tbz w20, #2, G_M5594_IG08
;; size=112 bbWeight=1 PerfScore 21.00
G_M5594_IG06:
mrs x0, tpidr_el0
ldr w1, [x0, #0xD1FFAB1E]
cmp w1, #9
ble G_M5594_IG13
ldr x0, [x0, #0xD1FFAB1E]
ldr x1, [x0, #0x48]
cbz x1, G_M5594_IG13
;; size=28 bbWeight=0.50 PerfScore 6.25
G_M5594_IG07:
ldr x24, [x1, #0x10]
cbz x24, G_M5594_IG08
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
add x14, x0, #48
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
;; size=44 bbWeight=0.50 PerfScore 6.00
G_M5594_IG08:
mov x0, x22
mov x3, xzr
mov w4, w20
mov x1, xzr
mov x2, xzr
mov w5, #0xD1FFAB1E
mov x6, xzr
movz x7, #0xD1FFAB1E // code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
add x14, x21, #8
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #32
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
add x0, x26, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
mov x27, x0
mov x1, x19
movz x2, #0xD1FFAB1E // code for System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[long]:.ctor(System.Threading.Channels.BoundedChannel`1[long]):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x19, #8
mov x15, x27
bl CORINFO_HELP_ASSIGN_REF
add x0, x26, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
mov x23, x0
mov x1, x19
movz x2, #0xD1FFAB1E // code for System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[long]:.ctor(System.Threading.Channels.BoundedChannel`1[long]):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x19, #16
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
;; size=168 bbWeight=1 PerfScore 33.00
G_M5594_IG09:
ldp x27, x28, [sp, #0x50]
ldp x25, x26, [sp, #0x40]
ldp x23, x24, [sp, #0x30]
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x60
ret lr
;; size=28 bbWeight=1 PerfScore 7.00
G_M5594_IG10:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M5594_IG03
;; size=20 bbWeight=0 PerfScore 0.00
G_M5594_IG11:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M5594_IG04
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
G_M5594_IG12:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M5594_IG05
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
G_M5594_IG13:
mov w0, #9
bl CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
mov x1, x0
b G_M5594_IG07
;; size=16 bbWeight=0 PerfScore 0.00
G_M5594_IG14:
mov w0, #45
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 708, prolog size 28, PerfScore 121.75, instruction count 177, allocated bytes for code 708 (MethodHash=5c9dea25) for method System.Threading.Channels.BoundedChannel`1[long]:.ctor(int,int,ubyte,System.Action`1[long]):this (FullOpts)
+; Total bytes of code 688, prolog size 28, PerfScore 122.25, instruction count 172, allocated bytes for code 688 (MethodHash=5c9dea25) for method System.Threading.Channels.BoundedChannel`1[long]:.ctor(int,int,ubyte,System.Action`1[long]):this (FullOpts)
-20 (-2.82 % of base) - System.Threading.Channels.BoundedChannel`1[System.Numerics.Vector`1[float]]:.ctor(int,int,ubyte,System.Action`1[System.Numerics.Vector`1[float]]):this
; Assembly listing for method System.Threading.Channels.BoundedChannel`1[System.Numerics.Vector`1[float]]:.ctor(int,int,ubyte,System.Action`1[System.Numerics.Vector`1[float]]):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 19 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 14, 14 ) ref -> x19 this class-hnd single-def <System.Threading.Channels.BoundedChannel`1[System.Numerics.Vector`1[float]]>
; V01 arg1 [V01,T11] ( 3, 3 ) int -> x22 single-def
; V02 arg2 [V02,T12] ( 3, 3 ) int -> x23 single-def
-; V03 arg3 [V03,T02] ( 4, 4 ) ubyte -> x20 single-def
+; V03 arg3 [V03,T03] ( 4, 4 ) ubyte -> x20 single-def
; V04 arg4 [V04,T10] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Action`1[System.Numerics.Vector`1[float]]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T03] ( 3, 6 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Numerics.Vector`1[float]]>
-; V07 tmp2 [V07,T04] ( 3, 6 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.AsyncOperation`1[System.Numerics.Vector`1[float]]]>
-; V08 tmp3 [V08,T05] ( 3, 6 ) ref -> x28 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.VoidAsyncOperationWithData`1[System.Numerics.Vector`1[float]]]>
+; V06 tmp1 [V06,T04] ( 3, 6 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Numerics.Vector`1[float]]>
+; V07 tmp2 [V07,T05] ( 3, 6 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.AsyncOperation`1[System.Numerics.Vector`1[float]]]>
+; V08 tmp3 [V08,T06] ( 3, 6 ) ref -> x28 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.VoidAsyncOperationWithData`1[System.Numerics.Vector`1[float]]]>
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref
;* V10 tmp5 [V10 ] ( 0, 0 ) ref -> zero-ref single-def
; V11 tmp6 [V11,T13] ( 4, 4 ) int -> x20
-; V12 tmp7 [V12,T06] ( 3, 6 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource>
-; V13 tmp8 [V13,T07] ( 3, 6 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[System.Numerics.Vector`1[float]]>
-; V14 tmp9 [V14,T08] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.Numerics.Vector`1[float]]>
-; V15 tmp10 [V15,T01] ( 4, 7 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
+; V12 tmp7 [V12,T07] ( 3, 6 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource>
+; V13 tmp8 [V13,T08] ( 3, 6 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[System.Numerics.Vector`1[float]]>
+; V14 tmp9 [V14,T09] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.Numerics.Vector`1[float]]>
+; V15 tmp10 [V15,T02] ( 4, 7 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V16 tmp11 [V16 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V17 tmp12 [V17,T18] ( 3, 1.50) ref -> x24 class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
-;* V18 tmp13 [V18,T19] ( 0, 0 ) ref -> zero-ref single-def "field V16._source (fldOffset=0x0)" P-INDEP
-; V19 cse0 [V19,T09] ( 5, 5 ) long -> x26 "CSE #02: aggressive"
-; V20 cse1 [V20,T14] ( 4, 4 ) long -> x25 "CSE #01: aggressive"
-; V21 rat0 [V21,T17] ( 3, 2 ) byref -> x1 "TLS field access"
-; V22 rat1 [V22,T16] ( 3, 3 ) long -> x0 "TLS access"
-; V23 rat2 [V23,T15] ( 3, 3 ) byref -> x1 "ThreadStaticBlockBase access"
+; V17 tmp12 [V17,T20] ( 3, 1.50) ref -> x24 class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
+;* V18 tmp13 [V18,T21] ( 0, 0 ) ref -> zero-ref single-def "field V16._source (fldOffset=0x0)" P-INDEP
+; V19 cse0 [V19,T01] ( 7, 7 ) long -> x26 "CSE #01: aggressive"
+; V20 cse1 [V20,T14] ( 4, 4 ) long -> x25 "CSE #02: aggressive"
+; V21 rat0 [V21,T18] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V22 rat1 [V22,T19] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V23 rat2 [V23,T17] ( 3, 2 ) byref -> x1 "TLS field access"
+; V24 rat3 [V24,T16] ( 3, 3 ) long -> x0 "TLS access"
+; V25 rat4 [V25,T15] ( 3, 3 ) byref -> x1 "ThreadStaticBlockBase access"
;
; Lcl frame size = 0
G_M16538_IG01:
stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x10]
stp x21, x22, [sp, #0x20]
stp x23, x24, [sp, #0x30]
stp x25, x26, [sp, #0x40]
stp x27, x28, [sp, #0x50]
mov fp, sp
mov x19, x0
mov w22, w1
mov w23, w2
mov w20, w3
mov x21, x4
;; size=48 bbWeight=1 PerfScore 9.00
G_M16538_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M16538_IG10
;; size=40 bbWeight=1 PerfScore 8.50
G_M16538_IG03:
movz x25, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Numerics.Vector`1[float]]:Value
- movk x25, #0xD1FFAB1E LSL #16
movk x25, #0xD1FFAB1E LSL #32
ldr x15, [x25]
add x14, x24, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #40
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
movz x26, #0xD1FFAB1E
movk x26, #0xD1FFAB1E LSL #16
movk x26, #0xD1FFAB1E LSL #32
mov x0, x26
bl CORINFO_HELP_NEWSFAST
mov x27, x0
+ add x0, x26, #0xD1FFAB1E
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M16538_IG11
;; size=80 bbWeight=1 PerfScore 17.00
G_M16538_IG04:
ldr x15, [x25, #0xD1FFAB1E]
add x14, x27, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #48
mov x15, x27
bl CORINFO_HELP_ASSIGN_REF
add x0, x26, #200
bl CORINFO_HELP_NEWSFAST
mov x28, x0
+ add x0, x26, #0xD1FFAB1E
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M16538_IG12
- ;; size=56 bbWeight=1 PerfScore 14.00
+ ;; size=60 bbWeight=1 PerfScore 14.50
G_M16538_IG05:
ldr x15, [x25, #0xD1FFAB1E]
add x14, x28, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #56
mov x15, x28
bl CORINFO_HELP_ASSIGN_REF
stp w23, w22, [x19, #0x58]
strb w20, [x19, #0x60]
add x14, x19, #24
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
mov w0, #64
tst w20, #255
csel w20, w0, wzr, ne
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x21, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x22, x0
movn w0, #68
tst w20, w0
bne G_M16538_IG14
tbz w20, #2, G_M16538_IG08
;; size=112 bbWeight=1 PerfScore 21.00
G_M16538_IG06:
mrs x0, tpidr_el0
ldr w1, [x0, #0xD1FFAB1E]
cmp w1, #9
ble G_M16538_IG13
ldr x0, [x0, #0xD1FFAB1E]
ldr x1, [x0, #0x48]
cbz x1, G_M16538_IG13
;; size=28 bbWeight=0.50 PerfScore 6.25
G_M16538_IG07:
ldr x24, [x1, #0x10]
cbz x24, G_M16538_IG08
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
add x14, x0, #48
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
;; size=44 bbWeight=0.50 PerfScore 6.00
G_M16538_IG08:
mov x0, x22
mov x3, xzr
mov w4, w20
mov x1, xzr
mov x2, xzr
mov w5, #0xD1FFAB1E
mov x6, xzr
movz x7, #0xD1FFAB1E // code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
add x14, x21, #8
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #32
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
add x0, x26, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
mov x27, x0
mov x1, x19
movz x2, #0xD1FFAB1E // code for System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[System.Numerics.Vector`1[float]]:.ctor(System.Threading.Channels.BoundedChannel`1[System.Numerics.Vector`1[float]]):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x19, #8
mov x15, x27
bl CORINFO_HELP_ASSIGN_REF
add x0, x26, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
mov x23, x0
mov x1, x19
movz x2, #0xD1FFAB1E // code for System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.Numerics.Vector`1[float]]:.ctor(System.Threading.Channels.BoundedChannel`1[System.Numerics.Vector`1[float]]):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x19, #16
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
;; size=168 bbWeight=1 PerfScore 33.00
G_M16538_IG09:
ldp x27, x28, [sp, #0x50]
ldp x25, x26, [sp, #0x40]
ldp x23, x24, [sp, #0x30]
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x60
ret lr
;; size=28 bbWeight=1 PerfScore 7.00
G_M16538_IG10:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M16538_IG03
;; size=20 bbWeight=0 PerfScore 0.00
G_M16538_IG11:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M16538_IG04
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
G_M16538_IG12:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M16538_IG05
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
G_M16538_IG13:
mov w0, #9
bl CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
mov x1, x0
b G_M16538_IG07
;; size=16 bbWeight=0 PerfScore 0.00
G_M16538_IG14:
mov w0, #45
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 708, prolog size 28, PerfScore 121.75, instruction count 177, allocated bytes for code 708 (MethodHash=1ba8bf65) for method System.Threading.Channels.BoundedChannel`1[System.Numerics.Vector`1[float]]:.ctor(int,int,ubyte,System.Action`1[System.Numerics.Vector`1[float]]):this (FullOpts)
+; Total bytes of code 688, prolog size 28, PerfScore 122.25, instruction count 172, allocated bytes for code 688 (MethodHash=1ba8bf65) for method System.Threading.Channels.BoundedChannel`1[System.Numerics.Vector`1[float]]:.ctor(int,int,ubyte,System.Action`1[System.Numerics.Vector`1[float]]):this (FullOpts)
-16 (-3.05 % of base) - Microsoft.Extensions.FileSystemGlobbing.Util.StringComparisonHelper:GetStringComparer(int):System.StringComparer
; Assembly listing for method Microsoft.Extensions.FileSystemGlobbing.Util.StringComparisonHelper:GetStringComparer(int):System.StringComparer (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 12 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 5, 3.86) int -> x19 single-def
; V01 loc0 [V01,T01] ( 7, 4 ) ref -> x0 class-hnd <System.StringComparer>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T08] ( 3, 0 ) ref -> x20 class-hnd exact single-def "Single-def Box Helper" <System.StringComparison>
; V04 tmp2 [V04,T10] ( 2, 0 ) ref -> x21 class-hnd exact single-def "impImportAndPushBox" <System.String>
; V05 tmp3 [V05,T09] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
; V06 tmp4 [V06,T02] ( 4, 4 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.CultureAwareComparer>
;* V07 tmp5 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Globalization.CultureInfo>
; V08 tmp6 [V08,T06] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Globalization.CompareInfo>
; V09 tmp7 [V09,T03] ( 4, 4 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.CultureAwareComparer>
;* V10 tmp8 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Globalization.CultureInfo>
; V11 tmp9 [V11,T07] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Globalization.CompareInfo>
; V12 tmp10 [V12,T11] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V13 tmp11 [V13,T04] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V14 tmp12 [V14,T05] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
;
; Lcl frame size = 8
G_M6242_IG01:
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x18]
str x21, [sp, #0x28]
mov fp, sp
mov w19, w0
;; size=20 bbWeight=1 PerfScore 4.00
G_M6242_IG02:
cmp w19, #5
bhi G_M6242_IG13
;; size=8 bbWeight=1 PerfScore 1.50
G_M6242_IG03:
mov w0, w19
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
adr x2, [G_M6242_IG02]
add x1, x1, x2
br x1
;; size=24 bbWeight=0.86 PerfScore 5.14
G_M6242_IG04:
movz x0, #208
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
b G_M6242_IG12
- ;; size=20 bbWeight=0.50 PerfScore 2.75
+ ;; size=16 bbWeight=0.50 PerfScore 2.50
G_M6242_IG05:
movz x0, #200
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
b G_M6242_IG12
- ;; size=20 bbWeight=0.50 PerfScore 2.75
+ ;; size=16 bbWeight=0.50 PerfScore 2.50
G_M6242_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M6242_IG14
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M6242_IG07:
movz x0, #0xD1FFAB1E // data for System.CultureAwareComparer:InvariantIgnoreCaseInstance
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
b G_M6242_IG12
- ;; size=20 bbWeight=0.50 PerfScore 2.75
+ ;; size=16 bbWeight=0.50 PerfScore 2.50
G_M6242_IG08:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M6242_IG15
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M6242_IG09:
movz x0, #0xD1FFAB1E // data for System.CultureAwareComparer:InvariantCaseSensitiveInstance
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
b G_M6242_IG12
- ;; size=20 bbWeight=0.50 PerfScore 2.75
+ ;; size=16 bbWeight=0.50 PerfScore 2.50
G_M6242_IG10:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x0, #0xD1FFAB1E // code for System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
ldr x1, [x0]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x30]
blr x1
mov x15, x0
add x14, x19, #8
bl CORINFO_HELP_ASSIGN_REF
mov w0, #1
str w0, [x19, #0x10]
mov x0, x19
b G_M6242_IG12
;; size=84 bbWeight=0.50 PerfScore 11.75
G_M6242_IG11:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x0, #0xD1FFAB1E // code for System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
ldr x1, [x0]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x30]
blr x1
mov x15, x0
add x14, x19, #8
bl CORINFO_HELP_ASSIGN_REF
str wzr, [x19, #0x10]
mov x0, x19
;; size=76 bbWeight=0.50 PerfScore 11.00
G_M6242_IG12:
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=1 PerfScore 5.00
G_M6242_IG13:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_UnexpectedStringComparisonType():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x21, x0
str w19, [x20, #0x08]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
mov x1, x20
mov x0, x21
movz x2, #0xD1FFAB1E // code for System.SR:Format(System.String,System.Object):System.String
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for System.InvalidOperationException:.ctor(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x19
bl CORINFO_HELP_THROW
brk_unix #0
;; size=136 bbWeight=0 PerfScore 0.00
G_M6242_IG14:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M6242_IG07
;; size=20 bbWeight=0 PerfScore 0.00
G_M6242_IG15:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M6242_IG09
;; size=20 bbWeight=0 PerfScore 0.00
RWD00 dd G_M6242_IG11 - G_M6242_IG02
dd G_M6242_IG10 - G_M6242_IG02
dd G_M6242_IG08 - G_M6242_IG02
dd G_M6242_IG06 - G_M6242_IG02
dd G_M6242_IG05 - G_M6242_IG02
dd G_M6242_IG04 - G_M6242_IG02
-; Total bytes of code 524, prolog size 16, PerfScore 54.89, instruction count 131, allocated bytes for code 524 (MethodHash=0a8ee79d) for method Microsoft.Extensions.FileSystemGlobbing.Util.StringComparisonHelper:GetStringComparer(int):System.StringComparer (FullOpts)
+; Total bytes of code 508, prolog size 16, PerfScore 53.89, instruction count 127, allocated bytes for code 508 (MethodHash=0a8ee79d) for method Microsoft.Extensions.FileSystemGlobbing.Util.StringComparisonHelper:GetStringComparer(int):System.StringComparer (FullOpts)
-16 (-1.26 % of base) - System.Diagnostics.ProcessWaitState:CheckChildren(ubyte,ubyte)
; Assembly listing for method System.Diagnostics.ProcessWaitState:CheckChildren(ubyte,ubyte) (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 16 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T29] ( 4, 3.50) ubyte -> x20 single-def
+; V00 arg0 [V00,T30] ( 4, 3.50) ubyte -> x20 single-def
; V01 arg1 [V01,T15] ( 5, 12 ) ubyte -> x19 single-def
; V02 loc0 [V02,T36] ( 4, 1.50) ref -> [fp+0x20] class-hnd exact EH-live spill-single-def <System.Collections.Generic.Dictionary`2[int,System.Diagnostics.ProcessWaitState]>
; V03 loc1 [V03 ] ( 5, 4 ) ubyte -> [fp+0xC0] do-not-enreg[X] addr-exposed ld-addr-op
;* V04 loc2 [V04,T38] ( 0, 0 ) ubyte -> zero-ref
; V05 loc3 [V05,T07] ( 4, 20 ) int -> x1
; V06 loc4 [V06,T27] ( 3, 6 ) ref -> x24 ld-addr-op class-hnd <System.Diagnostics.ProcessWaitState>
;* V07 loc5 [V07 ] ( 0, 0 ) int -> zero-ref ld-addr-op
; V08 loc6 [V08,T19] ( 5, 9.50) ref -> x24 class-hnd <System.Diagnostics.ProcessWaitState>
; V09 loc7 [V09,T03] ( 11, 31.50) ref -> x25 class-hnd <System.Collections.Generic.List`1[System.Diagnostics.ProcessWaitState]>
; V10 loc8 [V10 ] ( 7, 10.50) struct (40) [fp+0x98] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.Dictionary`2+Enumerator[int,System.Diagnostics.ProcessWaitState]>
;* V11 loc9 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.Generic.KeyValuePair`2[int,System.Diagnostics.ProcessWaitState]>
;* V12 loc10 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Diagnostics.ProcessWaitState>
;* V13 loc11 [V13 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.ProcessWaitState]>
; V14 loc12 [V14 ] ( 3, 12 ) int -> [fp+0x94] do-not-enreg[X] addr-exposed ld-addr-op
; V15 loc13 [V15,T10] ( 3, 12 ) ref -> x20 ld-addr-op class-hnd <System.Diagnostics.ProcessWaitState>
;# V16 OutArgs [V16 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V17 tmp1 [V17,T16] ( 3, 12 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[System.Diagnostics.ProcessWaitState]>
;* V18 tmp2 [V18,T34] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V19 tmp3 [V19,T22] ( 2, 8 ) ref -> x0 class-hnd exact "Inlining Arg" <System.Collections.Generic.Dictionary`2[int,System.Diagnostics.ProcessWaitState]>
-; V20 tmp4 [V20,T28] ( 3, 6 ) byref -> x0 "Inline stloc first use temp"
+; V20 tmp4 [V20,T29] ( 3, 6 ) byref -> x0 "Inline stloc first use temp"
; V21 tmp5 [V21,T33] ( 3, 3 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[int,System.Diagnostics.ProcessWaitState]>
; V22 tmp6 [V22,T35] ( 2, 2 ) struct (40) [fp+0x68] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Dictionary`2+Enumerator[int,System.Diagnostics.ProcessWaitState]>
; V23 tmp7 [V23,T17] ( 3, 12 ) ref -> x14 class-hnd "Inline stloc first use temp" <System.Diagnostics.ProcessWaitState[]>
; V24 tmp8 [V24,T11] ( 4, 16 ) int -> x15 "Inline stloc first use temp"
;* V25 tmp9 [V25 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.ProcessWaitState]>
;* V26 tmp10 [V26,T09] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V27 tmp11 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Diagnostics.ProcessWaitState]>
;* V28 tmp12 [V28 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V29 tmp13 [V29 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
;* V30 tmp14 [V30 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V31 tmp15 [V31,T05] ( 3, 24 ) int -> x20 "impAppendStmt"
; V32 tmp16 [V32,T13] ( 2, 16 ) int -> x0 "Spill before store to pinned local"
;* V33 tmp17 [V33,T24] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V34 tmp18 [V34,T12] ( 2, 16 ) ref -> x0 class-hnd exact "Inlining Arg" <System.Collections.Generic.Dictionary`2[int,System.Diagnostics.ProcessWaitState]>
; V35 tmp19 [V35,T18] ( 3, 12 ) byref -> x0 "Inline stloc first use temp"
; V36 FramesRoot [V36,T08] ( 6, 18 ) long -> x21 "Pinvoke FrameListRoot"
; V37 PInvokeFrame [V37 ] ( 8, 20 ) struct (64) [fp+0x28] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
; V38 tmp22 [V38,T06] ( 5, 20 ) ref -> x27 "field V11.value (fldOffset=0x0)" P-INDEP
;* V39 tmp23 [V39 ] ( 0, 0 ) int -> zero-ref "field V11.key (fldOffset=0x8)" P-INDEP
; V40 tmp24 [V40,T04] ( 4, 24.50) ref -> x25 single-def "field V13._list (fldOffset=0x0)" P-INDEP
; V41 tmp25 [V41,T02] ( 2, 32 ) ref -> x0 "field V13._current (fldOffset=0x8)" P-INDEP
-; V42 tmp26 [V42,T01] ( 6, 68.50) int -> x22 "field V13._index (fldOffset=0x10)" P-INDEP
-; V43 tmp27 [V43,T30] ( 2, 4.50) int -> x24 "field V13._version (fldOffset=0x14)" P-INDEP
+; V42 tmp26 [V42,T01] ( 6, 68.50) int -> x26 "field V13._index (fldOffset=0x10)" P-INDEP
+; V43 tmp27 [V43,T31] ( 2, 4.50) int -> x24 "field V13._version (fldOffset=0x14)" P-INDEP
; V44 tmp28 [V44,T37] ( 3, 1.50) ref -> x25 single-def "field V25._list (fldOffset=0x0)" P-INDEP
;* V45 tmp29 [V45 ] ( 0, 0 ) ref -> zero-ref single-def "field V25._current (fldOffset=0x8)" P-INDEP
;* V46 tmp30 [V46,T42] ( 0, 0 ) int -> zero-ref "field V25._index (fldOffset=0x10)" P-INDEP
; V47 tmp31 [V47,T39] ( 2, 1 ) int -> x24 "field V25._version (fldOffset=0x14)" P-INDEP
;* V48 tmp32 [V48 ] ( 0, 0 ) ref -> zero-ref single-def "V22.[000..008)"
; V49 tmp33 [V49,T40] ( 2, 1 ) int -> x1 "V22.[008..012)"
;* V50 tmp34 [V50 ] ( 0, 0 ) int -> zero-ref "V22.[012..016)"
;* V51 tmp35 [V51 ] ( 0, 0 ) int -> zero-ref "V22.[016..020)"
; V52 tmp36 [V52,T23] ( 2, 8 ) ref -> x1 "argument with side effect"
; V53 tmp37 [V53,T00] ( 3, 96 ) ref -> x0 "arr expr"
; V54 tmp38 [V54,T14] ( 2, 16 ) long -> x22 "Cast away GC"
; V55 PSPSym [V55,T41] ( 1, 1 ) long -> [fp+0xC8] do-not-enreg[V] "PSPSym"
; V56 cse0 [V56,T20] ( 5, 8.50) ref -> [fp+0x18] spill-single-def "CSE #02: moderate"
-; V57 cse1 [V57,T25] ( 2, 8 ) int -> x0 "CSE #07: moderate"
-; V58 cse2 [V58,T21] ( 2, 8 ) int -> x0 "CSE #08: moderate"
+; V57 cse1 [V57,T25] ( 2, 8 ) int -> x0 "CSE #06: moderate"
+; V58 cse2 [V58,T21] ( 2, 8 ) int -> x0 "CSE #07: moderate"
; V59 cse3 [V59,T32] ( 3, 4 ) long -> x22 "CSE #01: moderate"
-; V60 cse4 [V60,T31] ( 2, 4.50) long -> x26 hoist "CSE #03: moderate"
-; V61 cse5 [V61,T26] ( 2, 8 ) int -> x12 "CSE #06: moderate"
+; V60 cse4 [V60,T28] ( 4, 6.50) long -> x26 hoist "CSE #03: moderate"
+; V61 cse5 [V61,T26] ( 2, 8 ) int -> x12 "CSE #05: moderate"
;
; Lcl frame size = 192
G_M63806_IG01:
stp fp, lr, [sp, #0xD1FFAB1E]!
stp x19, x20, [sp, #0xD0]
stp x21, x22, [sp, #0xE0]
stp x23, x24, [sp, #0xF0]
stp x25, x26, [sp, #0xD1FFAB1E]
stp x27, x28, [sp, #0xD1FFAB1E]
mov fp, sp
add x9, fp, #104
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
stp xzr, xzr, [x9, #0x40]
str xzr, [x9, #0x50]
add x2, sp, #0xD1FFAB1E
str x2, [fp, #0xC8] // [V55 PSPSym]
mov w20, w0
mov w19, w1
;; size=68 bbWeight=1 PerfScore 14.00
G_M63806_IG02:
add x0, fp, #48 // [V37 PInvokeFrame+0x08]
bl CORINFO_HELP_INIT_PINVOKE_FRAME
mov x21, x0
mov x1, sp
str x1, [fp, #0x48] // [V37 PInvokeFrame+0x20]
mov x1, fp
str x1, [fp, #0x58] // [V37 PInvokeFrame+0x30]
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
ldr x23, [x22]
str x23, [fp, #0x18] // [V56 cse0]
mov x0, x23
str x0, [fp, #0x20] // [V02 loc0]
str wzr, [fp, #0xC0] // [V03 loc1]
;; size=60 bbWeight=1 PerfScore 13.00
G_M63806_IG03:
ldrb w1, [fp, #0xC0] // [V03 loc1]
cbnz w1, G_M63806_IG33
add x1, fp, #192 // [V03 loc1]
bl System.Threading.Monitor:ReliableEnter(System.Object,byref)
b G_M63806_IG05
;; size=20 bbWeight=1 PerfScore 5.50
G_M63806_IG04:
mov x0, x24
movz x1, #0xD1FFAB1E // code for System.Diagnostics.ProcessWaitState:ReleaseRef():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=24 bbWeight=2 PerfScore 12.00
G_M63806_IG05:
movz x0, #0xD1FFAB1E // code for Interop+Sys:WaitIdAnyExitedNoHangNoWait():int
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
sxtw w1, w0
cmp w1, #0
ble G_M63806_IG07
;; size=32 bbWeight=8 PerfScore 60.00
G_M63806_IG06:
mov x0, x23
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M63806_IG18
ldr x24, [x0]
uxtb w1, w19
mov x0, x24
movz x2, #0xD1FFAB1E // code for System.Diagnostics.ProcessWaitState:TryReapChild(ubyte):ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
ldr x23, [fp, #0x18] // [V56 cse0]
cbz w0, G_M63806_IG05
b G_M63806_IG04
;; size=76 bbWeight=2 PerfScore 47.00
G_M63806_IG07:
cbz w1, G_M63806_IG08
bl System.Runtime.InteropServices.Marshal:GetLastPInvokeError():int
movz x1, #0xD1FFAB1E // code for System.Number:Int32ToDecStr(int):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.String:Concat(System.String,System.String):System.String
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
movz x1, #0xD1FFAB1E // code for System.Environment:FailFast(System.String)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=84 bbWeight=2 PerfScore 41.00
G_M63806_IG08:
tst w20, #255
beq G_M63806_IG35
b G_M63806_IG10
;; size=12 bbWeight=1 PerfScore 2.50
G_M63806_IG09:
ldr x20, [x0]
uxtb w2, w19
mov x0, x20
ldr w1, [fp, #0x94] // [V14 loc12]
movz x3, #0xD1FFAB1E // code for System.Diagnostics.ProcessWaitState:ChildReaped(int,ubyte):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
ldr wzr, [x0]
blr x3
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.Diagnostics.ProcessWaitState:ReleaseRef():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
nop
;; size=68 bbWeight=4 PerfScore 84.00
G_M63806_IG10:
str wzr, [fp, #0x94] // [V14 loc12]
add x22, fp, #148 // [V14 loc12]
mov w0, wzr
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
;; size=24 bbWeight=4 PerfScore 14.00
G_M63806_IG11:
blr x1
mov x1, x22
movn w0, #0
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [fp, #0x40] // [V37 PInvokeFrame+0x18]
adr x2, [G_M63806_IG14]
str x2, [fp, #0x50] // [V37 PInvokeFrame+0x28]
add x2, fp, #48 // [V37 PInvokeFrame+0x08]
str x2, [x21, #0x08]
strb wzr, [x21, #0x04]
;; size=48 bbWeight=4 PerfScore 34.00
G_M63806_IG12:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
;; size=12 bbWeight=4 PerfScore 6.00
G_M63806_IG13:
blr x2
;; size=4 bbWeight=4 PerfScore 4.00
G_M63806_IG14:
mov w20, w0
mov w0, #1
strb w0, [x21, #0x04]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
cmp w0, #0
beq G_M63806_IG15
bl CORINFO_HELP_STOP_FOR_GC
;; size=40 bbWeight=4 PerfScore 36.00
G_M63806_IG15:
ldr x0, [fp, #0x38] // [V37 PInvokeFrame+0x10]
str x0, [x21, #0x08]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
;; size=20 bbWeight=4 PerfScore 18.00
G_M63806_IG16:
blr x0
bl System.Runtime.InteropServices.Marshal:SetLastPInvokeError(int)
cmp w20, #0
ble G_M63806_IG35
ldr x23, [fp, #0x18] // [V56 cse0]
mov x0, x23
mov w1, w20
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M63806_IG09
;; size=52 bbWeight=4 PerfScore 52.00
G_M63806_IG17:
b G_M63806_IG10
;; size=4 bbWeight=2 PerfScore 2.00
G_M63806_IG18:
tst w20, #255
ldr x23, [fp, #0x18] // [V56 cse0]
bne G_M63806_IG08
mov x24, xzr
mov x25, xzr
mov x0, x23
ldr w1, [x0, #0x44]
stp xzr, xzr, [fp, #0x80]
;; size=32 bbWeight=0.50 PerfScore 4.50
G_M63806_IG19:
ldr x2, [fp, #0x68]
str x2, [fp, #0x98]
ldp q16, q17, [fp, #0x70]
stp q16, q17, [fp, #0xA0]
;; size=16 bbWeight=0.50 PerfScore 3.00
G_M63806_IG20:
str x0, [fp, #0x98] // [V10 loc8]
stp w1, wzr, [fp, #0xA0] // [V10 loc8+0x08], [V10 loc8+0x0c]
mov w0, #2
str w0, [fp, #0xA8] // [V10 loc8+0x10]
movz x26, #0xD1FFAB1E
movk x26, #0xD1FFAB1E LSL #16
movk x26, #0xD1FFAB1E LSL #32
b G_M63806_IG22
;; size=32 bbWeight=0.50 PerfScore 3.00
G_M63806_IG21:
mov x24, x27
;; size=4 bbWeight=4 PerfScore 2.00
G_M63806_IG22:
add x0, fp, #152 // [V10 loc8]
- mov x1, x26
+ add x1, x26, #0xD1FFAB1E
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz w0, G_M63806_IG26
;; size=32 bbWeight=4 PerfScore 30.00
G_M63806_IG23:
cbz x24, G_M63806_IG08
mov x0, x24
movz x1, #0xD1FFAB1E // code for System.Diagnostics.ProcessWaitState:ReleaseRef():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbz x25, G_M63806_IG08
ldr w24, [x25, #0x14]
- mov w22, wzr
+ mov w26, wzr
b G_M63806_IG25
;; size=44 bbWeight=0.50 PerfScore 6.25
G_M63806_IG24:
ldr x0, [x25, #0x08]
ldr w1, [x0, #0x08]
- cmp w22, w1
+ cmp w26, w1
bhs G_M63806_IG34
add x0, x0, #16
- ldr x0, [x0, w22, UXTW #3]
- add w22, w22, #1
+ ldr x0, [x0, w26, UXTW #3]
+ add w26, w26, #1
movz x1, #0xD1FFAB1E // code for System.Diagnostics.ProcessWaitState:ReleaseRef():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
;; size=52 bbWeight=16 PerfScore 320.00
G_M63806_IG25:
ldr w0, [x25, #0x14]
cmp w24, w0
bne G_M63806_IG32
ldr w0, [x25, #0x10]
- cmp w22, w0
+ cmp w26, w0
bhs G_M63806_IG08
b G_M63806_IG24
;; size=28 bbWeight=4 PerfScore 40.00
G_M63806_IG26:
ldr x27, [fp, #0xB0] // [V10 loc8+0x18]
uxtb w1, w19
mov x0, x27
movz x2, #0xD1FFAB1E // code for System.Diagnostics.ProcessWaitState:TryReapChild(ubyte):ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
cbz w0, G_M63806_IG22
cbz x24, G_M63806_IG21
cbnz x25, G_M63806_IG29
;; size=48 bbWeight=4 PerfScore 58.00
G_M63806_IG27:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ mov x0, x26
bl CORINFO_HELP_NEWSFAST
mov x25, x0
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M63806_IG31
- ;; size=40 bbWeight=2 PerfScore 17.00
+ ;; size=32 bbWeight=2 PerfScore 15.00
G_M63806_IG28:
ldr x15, [x22, #0x10]
add x14, x25, #8
bl CORINFO_HELP_ASSIGN_REF
;; size=12 bbWeight=2 PerfScore 9.00
G_M63806_IG29:
ldp w15, w14, [x25, #0x10]
add w14, w14, #1
str w14, [x25, #0x14]
ldr x14, [x25, #0x08]
ldr w12, [x14, #0x08]
cmp w12, w15
bls G_M63806_IG30
add w12, w15, #1
str w12, [x25, #0x10]
add x14, x14, #16
add x14, x14, x15, LSL #3
mov x15, x27
bl CORINFO_HELP_ASSIGN_REF
b G_M63806_IG22
;; size=56 bbWeight=4 PerfScore 70.00
G_M63806_IG30:
mov x0, x25
mov x1, x27
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
b G_M63806_IG22
;; size=32 bbWeight=4 PerfScore 30.00
G_M63806_IG31:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ mov x0, x26
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M63806_IG28
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=12 bbWeight=0 PerfScore 0.00
G_M63806_IG32:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M63806_IG33:
movz x1, #0xD1FFAB1E // code for System.Threading.Monitor:ThrowLockTakenException()
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M63806_IG34:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
G_M63806_IG35:
ldrb w0, [fp, #0xC0] // [V03 loc1]
cbz w0, G_M63806_IG37
;; size=8 bbWeight=1 PerfScore 3.00
G_M63806_IG36:
ldr x0, [fp, #0x20] // [V02 loc0]
bl System.Threading.Monitor:Exit(System.Object)
;; size=8 bbWeight=0.50 PerfScore 1.50
G_M63806_IG37:
ldp x27, x28, [sp, #0xD1FFAB1E]
ldp x25, x26, [sp, #0xD1FFAB1E]
ldp x23, x24, [sp, #0xF0]
ldp x21, x22, [sp, #0xE0]
ldp x19, x20, [sp, #0xD0]
ldp fp, lr, [sp], #0xD1FFAB1E
ret lr
;; size=28 bbWeight=1 PerfScore 7.00
G_M63806_IG38:
stp fp, lr, [sp, #-0x70]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
stp x25, x26, [sp, #0x50]
stp x27, x28, [sp, #0x60]
add x3, fp, #0xD1FFAB1E
str x3, [sp, #0x18]
;; size=32 bbWeight=0 PerfScore 0.00
G_M63806_IG39:
ldrb w0, [fp, #0xC0] // [V03 loc1]
cbz w0, G_M63806_IG40
ldr x0, [fp, #0x20] // [V02 loc0]
bl System.Threading.Monitor:Exit(System.Object)
;; size=16 bbWeight=0 PerfScore 0.00
G_M63806_IG40:
ldp x27, x28, [sp, #0x60]
ldp x25, x26, [sp, #0x50]
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x70
ret lr
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1272, prolog size 68, PerfScore 1049.25, instruction count 318, allocated bytes for code 1272 (MethodHash=9ca906c1) for method System.Diagnostics.ProcessWaitState:CheckChildren(ubyte,ubyte) (FullOpts)
+; Total bytes of code 1256, prolog size 68, PerfScore 1047.25, instruction count 314, allocated bytes for code 1256 (MethodHash=9ca906c1) for method System.Diagnostics.ProcessWaitState:CheckChildren(ubyte,ubyte) (FullOpts)