-24 (-1.26 % of base) - System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature:GetDependencies(System.Reflection.TypeInfo,System.Composition.Hosting.Core.DependencyAccessor):System.Collections.Generic.IEnumerable`1[System.Composition.Hosting.Core.CompositionDependency]:this
; Assembly listing for method System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature:GetDependencies(System.Reflection.TypeInfo,System.Composition.Hosting.Core.DependencyAccessor):System.Collections.Generic.IEnumerable`1[System.Composition.Hosting.Core.CompositionDependency]: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; 12 single block inlinees; 14 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T26] ( 4, 4 ) ref -> x20 this class-hnd single-def <System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature>
-; V01 arg1 [V01,T27] ( 4, 4 ) ref -> x1 class-hnd single-def <System.Reflection.TypeInfo>
+; V00 this [V00,T27] ( 4, 4 ) ref -> x20 this class-hnd single-def <System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature>
+; V01 arg1 [V01,T28] ( 4, 4 ) ref -> x1 class-hnd single-def <System.Reflection.TypeInfo>
; V02 arg2 [V02,T07] ( 6, 10 ) ref -> x19 class-hnd single-def <System.Composition.Hosting.Core.DependencyAccessor>
;* V03 loc0 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Type>
-; V04 loc1 [V04,T68] ( 3, 2.50) ref -> x20 class-hnd single-def <<>f__AnonymousType2`2[System.Composition.TypedParts.ActivationFeatures.PropertyImportSite,System.Composition.TypedParts.ImportInfo][]>
+; V04 loc1 [V04,T67] ( 3, 2.50) ref -> x20 class-hnd single-def <<>f__AnonymousType2`2[System.Composition.TypedParts.ActivationFeatures.PropertyImportSite,System.Composition.TypedParts.ImportInfo][]>
; V05 loc2 [V05,T00] ( 14, 25 ) ref -> x22 class-hnd exact single-def <System.Collections.Generic.List`1[System.Composition.Hosting.Core.CompositionDependency]>
-; V06 loc3 [V06,T46] ( 2, 4.50) ref -> x20 class-hnd exact single-def <<>f__AnonymousType2`2[System.Composition.TypedParts.ActivationFeatures.PropertyImportSite,System.Composition.TypedParts.ImportInfo][]>
+; V06 loc3 [V06,T45] ( 2, 4.50) ref -> x20 class-hnd exact single-def <<>f__AnonymousType2`2[System.Composition.TypedParts.ActivationFeatures.PropertyImportSite,System.Composition.TypedParts.ImportInfo][]>
; V07 loc4 [V07,T02] ( 5, 16.50) int -> x25
; V08 loc5 [V08,T11] ( 4, 12 ) ref -> x26 class-hnd exact <<>f__AnonymousType2`2[System.Composition.TypedParts.ActivationFeatures.PropertyImportSite,System.Composition.TypedParts.ImportInfo]>
; V09 loc6 [V09,T14] ( 4, 8 ) ref -> x2 ld-addr-op class-hnd <System.Composition.Hosting.Core.CompositionDependency>
;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V11 tmp1 [V11,T47] ( 2, 4 ) ref -> x23 class-hnd single-def "dup spill" <System.Func`2[System.Reflection.PropertyInfo,ubyte]>
-; V12 tmp2 [V12,T48] ( 2, 4 ) ref -> x21 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IEnumerable`1[System.Reflection.PropertyInfo]>
+; V11 tmp1 [V11,T46] ( 2, 4 ) ref -> x23 class-hnd single-def "dup spill" <System.Func`2[System.Reflection.PropertyInfo,ubyte]>
+; V12 tmp2 [V12,T47] ( 2, 4 ) ref -> x21 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IEnumerable`1[System.Reflection.PropertyInfo]>
;* V13 tmp3 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
-; V14 tmp4 [V14,T59] ( 4, 3.50) ref -> x23
-; V15 tmp5 [V15,T16] ( 4, 8 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.Reflection.PropertyInfo,<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]]]>
-; V16 tmp6 [V16,T49] ( 2, 4 ) ref -> x1 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IEnumerable`1[System.Reflection.PropertyInfo]>
-; V17 tmp7 [V17,T50] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <System.Func`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],<>f__AnonymousType1`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],System.Composition.TypedParts.ActivationFeatures.PropertyImportSite]]>
-; V18 tmp8 [V18,T51] ( 2, 4 ) ref -> x20 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IEnumerable`1[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]]]>
+; V14 tmp4 [V14,T58] ( 4, 3.50) ref -> x23
+; V15 tmp5 [V15,T17] ( 4, 8 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.Reflection.PropertyInfo,<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]]]>
+; V16 tmp6 [V16,T48] ( 2, 4 ) ref -> x1 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IEnumerable`1[System.Reflection.PropertyInfo]>
+; V17 tmp7 [V17,T49] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <System.Func`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],<>f__AnonymousType1`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],System.Composition.TypedParts.ActivationFeatures.PropertyImportSite]]>
+; V18 tmp8 [V18,T50] ( 2, 4 ) ref -> x20 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IEnumerable`1[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]]]>
;* V19 tmp9 [V19 ] ( 0, 0 ) ref -> zero-ref single-def
-; V20 tmp10 [V20,T60] ( 4, 3.50) ref -> x2
-; V21 tmp11 [V21,T52] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <System.Func`2[<>f__AnonymousType1`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],System.Composition.TypedParts.ActivationFeatures.PropertyImportSite],ubyte]>
-; V22 tmp12 [V22,T53] ( 2, 4 ) ref -> x21 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IEnumerable`1[<>f__AnonymousType1`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],System.Composition.TypedParts.ActivationFeatures.PropertyImportSite]]>
+; V20 tmp10 [V20,T59] ( 4, 3.50) ref -> x2
+; V21 tmp11 [V21,T51] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <System.Func`2[<>f__AnonymousType1`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],System.Composition.TypedParts.ActivationFeatures.PropertyImportSite],ubyte]>
+; V22 tmp12 [V22,T52] ( 2, 4 ) ref -> x21 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IEnumerable`1[<>f__AnonymousType1`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],System.Composition.TypedParts.ActivationFeatures.PropertyImportSite]]>
;* V23 tmp13 [V23 ] ( 0, 0 ) ref -> zero-ref single-def
-; V24 tmp14 [V24,T61] ( 4, 3.50) ref -> x2
-; V25 tmp15 [V25,T54] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <System.Func`2[<>f__AnonymousType1`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],System.Composition.TypedParts.ActivationFeatures.PropertyImportSite],<>f__AnonymousType2`2[System.Composition.TypedParts.ActivationFeatures.PropertyImportSite,System.Composition.TypedParts.ImportInfo]]>
-; V26 tmp16 [V26,T55] ( 2, 4 ) ref -> x21 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IEnumerable`1[<>f__AnonymousType1`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],System.Composition.TypedParts.ActivationFeatures.PropertyImportSite]]>
+; V24 tmp14 [V24,T60] ( 4, 3.50) ref -> x2
+; V25 tmp15 [V25,T53] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <System.Func`2[<>f__AnonymousType1`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],System.Composition.TypedParts.ActivationFeatures.PropertyImportSite],<>f__AnonymousType2`2[System.Composition.TypedParts.ActivationFeatures.PropertyImportSite,System.Composition.TypedParts.ImportInfo]]>
+; V26 tmp16 [V26,T54] ( 2, 4 ) ref -> x20 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IEnumerable`1[<>f__AnonymousType1`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],System.Composition.TypedParts.ActivationFeatures.PropertyImportSite]]>
;* V27 tmp17 [V27 ] ( 0, 0 ) ref -> zero-ref single-def
-; V28 tmp18 [V28,T62] ( 4, 3.50) ref -> x2
-; V29 tmp19 [V29,T63] ( 3, 3 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Composition.Hosting.Core.CompositionDependency]>
+; V28 tmp18 [V28,T61] ( 4, 3.50) ref -> x2
+; V29 tmp19 [V29,T62] ( 3, 3 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Composition.Hosting.Core.CompositionDependency]>
; V30 tmp20 [V30,T13] ( 3, 12 ) ref -> x26 class-hnd exact "impAppendStmt" <System.Composition.TypedParts.ActivationFeatures.PropertyImportSite>
; V31 tmp21 [V31,T03] ( 4, 16 ) ref -> x26 class-hnd exact "impAppendStmt" <System.Composition.TypedParts.ActivationFeatures.PropertyImportSite>
; V32 tmp22 [V32,T39] ( 5, 5 ) ref -> x2 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[<>f__AnonymousType1`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],System.Composition.TypedParts.ActivationFeatures.PropertyImportSite],<>f__AnonymousType2`2[System.Composition.TypedParts.ActivationFeatures.PropertyImportSite,System.Composition.TypedParts.ImportInfo]]>
; V33 tmp23 [V33,T40] ( 5, 5 ) ref -> x2 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[<>f__AnonymousType1`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],System.Composition.TypedParts.ActivationFeatures.PropertyImportSite],ubyte]>
; V34 tmp24 [V34,T41] ( 5, 5 ) ref -> x2 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],<>f__AnonymousType1`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],System.Composition.TypedParts.ActivationFeatures.PropertyImportSite]]>
; V35 tmp25 [V35,T42] ( 5, 5 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.Reflection.PropertyInfo,ubyte]>
-; V36 tmp26 [V36,T64] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature+<>c>
-; V37 tmp27 [V37,T65] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature+<>c>
-; V38 tmp28 [V38,T66] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature+<>c>
-; V39 tmp29 [V39,T67] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature+<>c>
+; V36 tmp26 [V36,T63] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature+<>c>
+; V37 tmp27 [V37,T64] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature+<>c>
+; V38 tmp28 [V38,T65] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature+<>c>
+; V39 tmp29 [V39,T66] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature+<>c>
;* V40 tmp30 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
;* V41 tmp31 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
-; V42 tmp32 [V42,T17] ( 4, 8 ) ref -> x2 class-hnd "Inline return value spill temp" <System.Composition.Hosting.Core.CompositionDependency>
+; V42 tmp32 [V42,T18] ( 4, 8 ) ref -> x2 class-hnd "Inline return value spill temp" <System.Composition.Hosting.Core.CompositionDependency>
; V43 tmp33 [V43,T01] ( 5, 20 ) ref -> x27 class-hnd exact "Inlining Arg" <System.Composition.Hosting.Core.CompositionContract>
-; V44 tmp34 [V44,T18] ( 3, 6 ) ref -> x2 ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Composition.Hosting.Core.CompositionDependency>
-;* V45 tmp35 [V45,T57] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V44 tmp34 [V44,T19] ( 3, 6 ) ref -> x2 ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Composition.Hosting.Core.CompositionDependency>
+;* V45 tmp35 [V45,T56] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V46 tmp36 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Composition.Hosting.Core.ExportDescriptorPromise[]>
; V47 tmp37 [V47,T08] ( 6, 12 ) ref -> x1 class-hnd "Inline return value spill temp" <System.Composition.Hosting.Core.ExportDescriptorPromise[]>
; V48 tmp38 [V48,T04] ( 4, 16 ) ref -> x28 class-hnd "Inlining Arg" <System.Collections.Generic.IEnumerable`1[System.Composition.Hosting.Core.ExportDescriptorPromise]>
-; V49 tmp39 [V49,T19] ( 4, 8 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.Linq.Enumerable+Iterator`1[System.Composition.Hosting.Core.ExportDescriptorPromise]>
-; V50 tmp40 [V50,T20] ( 4, 8 ) ref -> [fp+0x28] class-hnd spill-single-def "Inline stloc first use temp" <System.Collections.Generic.ICollection`1[System.Composition.Hosting.Core.ExportDescriptorPromise]>
-; V51 tmp41 [V51,T28] ( 3, 6 ) ref -> x28 class-hnd "Inline return value spill temp" <System.Composition.Hosting.Core.ExportDescriptorPromise[]>
-; V52 tmp42 [V52,T34] ( 3, 6 ) int -> x0 "Inline stloc first use temp"
-; V53 tmp43 [V53,T29] ( 3, 6 ) ref -> [fp+0x20] class-hnd exact spill-single-def "Inline stloc first use temp" <System.Composition.Hosting.Core.ExportDescriptorPromise[]>
-; V54 tmp44 [V54,T30] ( 3, 6 ) ref -> x3 class-hnd "Inline stloc first use temp" <System.Composition.Hosting.Core.CompositionDependency[]>
-; V55 tmp45 [V55,T23] ( 4, 8 ) int -> x0 "Inline stloc first use temp"
+; V49 tmp39 [V49,T20] ( 4, 8 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.Linq.Enumerable+Iterator`1[System.Composition.Hosting.Core.ExportDescriptorPromise]>
+; V50 tmp40 [V50,T21] ( 4, 8 ) ref -> [fp+0x28] class-hnd spill-single-def "Inline stloc first use temp" <System.Collections.Generic.ICollection`1[System.Composition.Hosting.Core.ExportDescriptorPromise]>
+; V51 tmp41 [V51,T29] ( 3, 6 ) ref -> x28 class-hnd "Inline return value spill temp" <System.Composition.Hosting.Core.ExportDescriptorPromise[]>
+; V52 tmp42 [V52,T35] ( 3, 6 ) int -> x0 "Inline stloc first use temp"
+; V53 tmp43 [V53,T30] ( 3, 6 ) ref -> [fp+0x20] class-hnd exact spill-single-def "Inline stloc first use temp" <System.Composition.Hosting.Core.ExportDescriptorPromise[]>
+; V54 tmp44 [V54,T31] ( 3, 6 ) ref -> x3 class-hnd "Inline stloc first use temp" <System.Composition.Hosting.Core.CompositionDependency[]>
+; V55 tmp45 [V55,T24] ( 4, 8 ) int -> x0 "Inline stloc first use temp"
;* V56 tmp46 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
-;* V57 tmp47 [V57,T58] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V57 tmp47 [V57,T57] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V58 tmp48 [V58,T05] ( 4, 16 ) ref -> x27 class-hnd exact "Inlining Arg" <System.Composition.Hosting.Core.CompositionContract>
;* V59 tmp49 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Composition.Hosting.Core.ExportDescriptorPromise[]>
; V60 tmp50 [V60,T09] ( 6, 12 ) ref -> x1 class-hnd "Inline return value spill temp" <System.Composition.Hosting.Core.ExportDescriptorPromise[]>
; V61 tmp51 [V61,T06] ( 4, 16 ) ref -> x28 class-hnd "Inlining Arg" <System.Collections.Generic.IEnumerable`1[System.Composition.Hosting.Core.ExportDescriptorPromise]>
-; V62 tmp52 [V62,T21] ( 4, 8 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.Linq.Enumerable+Iterator`1[System.Composition.Hosting.Core.ExportDescriptorPromise]>
-; V63 tmp53 [V63,T22] ( 4, 8 ) ref -> [fp+0x18] class-hnd spill-single-def "Inline stloc first use temp" <System.Collections.Generic.ICollection`1[System.Composition.Hosting.Core.ExportDescriptorPromise]>
-; V64 tmp54 [V64,T31] ( 3, 6 ) ref -> x28 class-hnd "Inline return value spill temp" <System.Composition.Hosting.Core.ExportDescriptorPromise[]>
-; V65 tmp55 [V65,T35] ( 3, 6 ) int -> x0 "Inline stloc first use temp"
-; V66 tmp56 [V66,T32] ( 3, 6 ) ref -> [fp+0x10] class-hnd exact spill-single-def "Inline stloc first use temp" <System.Composition.Hosting.Core.ExportDescriptorPromise[]>
-; V67 tmp57 [V67,T33] ( 3, 6 ) ref -> x3 class-hnd "Inline stloc first use temp" <System.Composition.Hosting.Core.CompositionDependency[]>
-; V68 tmp58 [V68,T24] ( 4, 8 ) int -> x0 "Inline stloc first use temp"
+; V62 tmp52 [V62,T22] ( 4, 8 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.Linq.Enumerable+Iterator`1[System.Composition.Hosting.Core.ExportDescriptorPromise]>
+; V63 tmp53 [V63,T23] ( 4, 8 ) ref -> [fp+0x18] class-hnd spill-single-def "Inline stloc first use temp" <System.Collections.Generic.ICollection`1[System.Composition.Hosting.Core.ExportDescriptorPromise]>
+; V64 tmp54 [V64,T32] ( 3, 6 ) ref -> x28 class-hnd "Inline return value spill temp" <System.Composition.Hosting.Core.ExportDescriptorPromise[]>
+; V65 tmp55 [V65,T36] ( 3, 6 ) int -> x0 "Inline stloc first use temp"
+; V66 tmp56 [V66,T33] ( 3, 6 ) ref -> [fp+0x10] class-hnd exact spill-single-def "Inline stloc first use temp" <System.Composition.Hosting.Core.ExportDescriptorPromise[]>
+; V67 tmp57 [V67,T34] ( 3, 6 ) ref -> x3 class-hnd "Inline stloc first use temp" <System.Composition.Hosting.Core.CompositionDependency[]>
+; V68 tmp58 [V68,T25] ( 4, 8 ) int -> x0 "Inline stloc first use temp"
;* V69 tmp59 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Composition.Hosting.Core.CompositionDependency>
-; V70 tmp60 [V70,T56] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-;* V71 cse0 [V71,T69] ( 0, 0 ) long -> zero-ref "CSE #02: aggressive"
-; V72 cse1 [V72,T25] ( 4, 6.50) int -> x21 "CSE #08: moderate"
-; V73 cse2 [V73,T12] ( 4, 12 ) ref -> x27 "CSE #09: aggressive"
+; V70 tmp60 [V70,T55] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+;* V71 cse0 [V71,T68] ( 0, 0 ) long -> zero-ref "CSE #02: aggressive"
+; V72 cse1 [V72,T26] ( 4, 6.50) int -> x21 "CSE #06: moderate"
+; V73 cse2 [V73,T12] ( 4, 12 ) ref -> x27 "CSE #07: aggressive"
; V74 cse3 [V74,T15] ( 14, 9.50) long -> x22 "CSE #03: aggressive"
-; V75 cse4 [V75,T43] ( 4, 5 ) long -> x23 "CSE #11: moderate"
-; V76 cse5 [V76,T44] ( 4, 5 ) long -> x24 "CSE #12: moderate"
-; V77 cse6 [V77,T36] ( 3, 6 ) int -> x0 "CSE #14: moderate"
-; V78 cse7 [V78,T37] ( 3, 6 ) int -> x0 "CSE #21: moderate"
-; V79 cse8 [V79,T10] ( 6, 12 ) long -> x28 multi-def "CSE #10: aggressive"
-; V80 cse9 [V80,T45] ( 5, 4.50) long -> x24 "CSE #05: moderate"
-; V81 cse10 [V81,T38] ( 7, 5.50) long -> x20 multi-def "CSE #07: moderate"
+; V75 cse4 [V75,T16] ( 10, 8.50) long -> x24 "CSE #04: moderate"
+; V76 cse5 [V76,T43] ( 4, 5 ) long -> x23 "CSE #09: moderate"
+; V77 cse6 [V77,T44] ( 4, 5 ) long -> x24 "CSE #10: moderate"
+; V78 cse7 [V78,T37] ( 3, 6 ) int -> x0 "CSE #12: moderate"
+; V79 cse8 [V79,T38] ( 3, 6 ) int -> x0 "CSE #19: moderate"
+; V80 cse9 [V80,T10] ( 6, 12 ) long -> x28 multi-def "CSE #08: aggressive"
;
; Lcl frame size = 32
G_M2524_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
mov x20, x0
mov x19, x2
;; size=36 bbWeight=1 PerfScore 7.50
G_M2524_IG02:
mov x0, x1
ldr x1, [x1]
ldr x1, [x1, #0xB0]
ldr x1, [x1, #0x30]
blr x1
movz x1, #0xD1FFAB1E // code for System.Reflection.RuntimeReflectionExtensions:GetRuntimeProperties(System.Type):System.Collections.Generic.IEnumerable`1[System.Reflection.PropertyInfo]
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x21, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M2524_IG38
;; size=64 bbWeight=1 PerfScore 22.00
G_M2524_IG03:
movz x22, #0xD1FFAB1E // data for System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature+<>c:<>9__3_0
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
ldr x23, [x22]
cbnz x23, G_M2524_IG05
;; size=20 bbWeight=1 PerfScore 5.50
G_M2524_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
ldr x15, [x22, #-0x08]
cbz x15, G_M2524_IG39
add x14, x23, #8
bl CORINFO_HELP_ASSIGN_REF
movz x14, #0xD1FFAB1E // code for System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature+<>c:<GetDependencies>b__3_0(System.Reflection.PropertyInfo):ubyte:this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x23, #0x18]
mov x14, x22
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
;; size=64 bbWeight=0.50 PerfScore 6.50
G_M2524_IG05:
movz x24, #0xD1FFAB1E
movk x24, #0xD1FFAB1E LSL #16
movk x24, #0xD1FFAB1E LSL #32
mov x0, x24
bl CORINFO_HELP_NEWSFAST
mov x25, x0
mov x2, x23
mov x1, x21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon]
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x1, x0
cbz x20, G_M2524_IG39
add x14, x25, #8
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature:<GetDependencies>b__3_1(System.Reflection.PropertyInfo):<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x25, #0x18]
mov x2, x25
add x0, x24, #0xD1FFAB1E
movz x3, #0xD1FFAB1E // code for System.Linq.Enumerable:Select[System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon]
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x20, x0
ldr x2, [x22, #0x08]
cbnz x2, G_M2524_IG07
;; size=140 bbWeight=1 PerfScore 28.50
G_M2524_IG06:
add x0, x24, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
mov x2, x0
ldr x15, [x22, #-0x08]
cbz x15, G_M2524_IG39
add x14, x2, #8
bl CORINFO_HELP_ASSIGN_REF
movz x14, #0xD1FFAB1E // code for System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature+<>c:<GetDependencies>b__3_2(<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]]):<>f__AnonymousType1`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],System.Composition.TypedParts.ActivationFeatures.PropertyImportSite]:this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x2, #0x18]
add x14, x22, #8
mov x15, x2
bl CORINFO_HELP_ASSIGN_REF
;; size=56 bbWeight=0.50 PerfScore 6.00
G_M2524_IG07:
mov x1, x20
add x0, x24, #0xD1FFAB1E
movz x3, #0xD1FFAB1E // code for System.Linq.Enumerable:Select[System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon]
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x21, x0
ldr x2, [x22, #0x18]
cbnz x2, G_M2524_IG09
;; size=40 bbWeight=1 PerfScore 11.00
G_M2524_IG08:
- movz x20, #0xD1FFAB1E
- movk x20, #0xD1FFAB1E LSL #16
- movk x20, #0xD1FFAB1E LSL #32
- mov x0, x20
+ add x0, x24, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
mov x2, x0
ldr x15, [x22, #-0x08]
cbz x15, G_M2524_IG39
add x14, x2, #8
bl CORINFO_HELP_ASSIGN_REF
movz x14, #0xD1FFAB1E // code for System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature+<>c:<GetDependencies>b__3_3(<>f__AnonymousType1`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],System.Composition.TypedParts.ActivationFeatures.PropertyImportSite]):ubyte:this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x2, #0x18]
add x14, x22, #24
mov x15, x2
bl CORINFO_HELP_ASSIGN_REF
- ;; size=68 bbWeight=0.50 PerfScore 6.75
+ ;; size=56 bbWeight=0.50 PerfScore 6.00
G_M2524_IG09:
mov x1, x21
- movz x20, #0xD1FFAB1E
- movk x20, #0xD1FFAB1E LSL #16
- movk x20, #0xD1FFAB1E LSL #32
- add x0, x20, #0xD1FFAB1E
+ add x0, x24, #0xD1FFAB1E
movz x3, #0xD1FFAB1E // code for System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon]
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- mov x21, x0
+ mov x20, x0
ldr x2, [x22, #0x20]
cbnz x2, G_M2524_IG11
- ;; size=52 bbWeight=1 PerfScore 12.50
+ ;; size=40 bbWeight=1 PerfScore 11.00
G_M2524_IG10:
- add x0, x20, #0xD1FFAB1E
+ add x0, x24, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
mov x2, x0
ldr x15, [x22, #-0x08]
cbz x15, G_M2524_IG39
add x14, x2, #8
bl CORINFO_HELP_ASSIGN_REF
movz x14, #0xD1FFAB1E // code for System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature+<>c:<GetDependencies>b__3_4(<>f__AnonymousType1`2[<>f__AnonymousType0`2[System.Reflection.PropertyInfo,System.Attribute[]],System.Composition.TypedParts.ActivationFeatures.PropertyImportSite]):<>f__AnonymousType2`2[System.Composition.TypedParts.ActivationFeatures.PropertyImportSite,System.Composition.TypedParts.ImportInfo]:this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x2, #0x18]
add x14, x22, #32
mov x15, x2
bl CORINFO_HELP_ASSIGN_REF
;; size=56 bbWeight=0.50 PerfScore 6.00
G_M2524_IG11:
- mov x1, x21
- add x0, x20, #0xD1FFAB1E
+ mov x1, x20
+ add x0, x24, #0xD1FFAB1E
movz x3, #0xD1FFAB1E // code for System.Linq.Enumerable:Select[System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon]
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x1, x0
- add x0, x20, #0xD1FFAB1E
+ add x0, x24, #0xD1FFAB1E
movz x2, #0xD1FFAB1E // code for System.Linq.Enumerable:ToArray[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon]):System.__Canon[]
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x20, x0
ldr w21, [x20, #0x08]
cbnz w21, G_M2524_IG14
;; size=68 bbWeight=1 PerfScore 17.50
G_M2524_IG12:
ldr x0, [x22, #-0xA0]
;; size=4 bbWeight=0.50 PerfScore 1.50
G_M2524_IG13:
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=0.50 PerfScore 3.50
G_M2524_IG14:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x22, x0
movz x23, #0xD1FFAB1E
movk x23, #0xD1FFAB1E LSL #16
movk x23, #0xD1FFAB1E LSL #32
mov x0, x23
mov w1, #57
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x24, #0xD1FFAB1E // data for System.Collections.Generic.List`1[System.Composition.Hosting.Core.CompositionDependency]:s_emptyArray
movk x24, #0xD1FFAB1E LSL #16
movk x24, #0xD1FFAB1E LSL #32
ldr x15, [x24]
add x14, x22, #8
bl CORINFO_HELP_ASSIGN_REF
mov w25, wzr
cmp w21, #0
ble G_M2524_IG36
;; size=80 bbWeight=0.50 PerfScore 7.25
G_M2524_IG15:
add x0, x20, #16
ldr x26, [x0, w25, UXTW #3]
ldr x27, [x26, #0x10]
ldrb w0, [x27, #0x10]
cbnz w0, G_M2524_IG26
;; size=20 bbWeight=4 PerfScore 42.00
G_M2524_IG16:
ldr x26, [x26, #0x08]
ldr x27, [x27, #0x08]
mov x0, x19
mov x1, x27
ldr x2, [x19]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x20]
blr x2
mov x28, x0
mov x1, x28
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_M2524_IG17
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x20]
blr x1
mov x1, x0
b G_M2524_IG21
;; size=100 bbWeight=2 PerfScore 75.00
G_M2524_IG17:
mov x1, x28
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 x1, x0
str x1, [fp, #0x28] // [V50 tmp40]
cbz x1, G_M2524_IG20
mov x0, x1
movz x28, #0xD1FFAB1E // code for System.Collections.Generic.ICollection`1[System.__Canon]:get_Count():int:this
movk x28, #0xD1FFAB1E LSL #16
movk x28, #0xD1FFAB1E LSL #32
mov x11, x28
ldr x2, [x11]
blr x2
cbz w0, G_M2524_IG18
sxtw x1, w0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
mov x1, x0
str x1, [fp, #0x20] // [V53 tmp43]
ldr x0, [fp, #0x28] // [V50 tmp40]
add x11, x28, #8
mov w2, wzr
ldr x3, [x11]
blr x3
ldr x28, [fp, #0x20] // [V53 tmp43]
b G_M2524_IG19
;; size=136 bbWeight=2 PerfScore 64.00
G_M2524_IG18:
mov x0, x23
mov w1, #63
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
ldr x28, [x24, #0x08]
;; size=16 bbWeight=2 PerfScore 10.00
G_M2524_IG19:
mov x1, x28
b G_M2524_IG21
;; size=8 bbWeight=2 PerfScore 3.00
G_M2524_IG20:
mov x1, x28
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Linq.Enumerable:<ToArray>g__EnumerableToArray|314_0[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon]):System.__Canon[]
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x0
;; size=40 bbWeight=2 PerfScore 16.00
G_M2524_IG21:
ldr w0, [x1, #0x08]
cbz w0, G_M2524_IG23
cmp w0, #1
beq G_M2524_IG22
mov x0, x27
mov x2, x26
movz x3, #0xD1FFAB1E // code for System.Composition.Hosting.Core.CompositionDependency:Oversupplied(System.Composition.Hosting.Core.CompositionContract,System.Collections.Generic.IEnumerable`1[System.Composition.Hosting.Core.ExportDescriptorPromise],System.Object):System.Composition.Hosting.Core.CompositionDependency
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x2, x0
b G_M2524_IG24
;; size=52 bbWeight=2 PerfScore 27.00
G_M2524_IG22:
ldr x1, [x1, #0x10]
mov x0, x27
mov x3, x26
mov w2, wzr
movz x4, #0xD1FFAB1E // code for System.Composition.Hosting.Core.CompositionDependency:Satisfied(System.Composition.Hosting.Core.CompositionContract,System.Composition.Hosting.Core.ExportDescriptorPromise,ubyte,System.Object):System.Composition.Hosting.Core.CompositionDependency
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
mov x2, x0
b G_M2524_IG24
;; size=44 bbWeight=2 PerfScore 23.00
G_M2524_IG23:
mov x0, x27
mov x1, x26
movz x2, #0xD1FFAB1E // code for System.Composition.Hosting.Core.CompositionDependency:Missing(System.Composition.Hosting.Core.CompositionContract,System.Object):System.Composition.Hosting.Core.CompositionDependency
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x2, x0
b G_M2524_IG24
;; size=36 bbWeight=2 PerfScore 16.00
G_M2524_IG24:
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_M2524_IG25
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_M2524_IG35
;; size=68 bbWeight=2 PerfScore 42.00
G_M2524_IG25:
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
b G_M2524_IG35
;; size=32 bbWeight=2 PerfScore 15.00
G_M2524_IG26:
ldr x26, [x26, #0x08]
ldr x27, [x27, #0x08]
mov x0, x19
mov x1, x27
ldr x2, [x19]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x20]
blr x2
mov x28, x0
mov x1, x28
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_M2524_IG27
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x20]
blr x1
mov x1, x0
b G_M2524_IG31
;; size=100 bbWeight=2 PerfScore 75.00
G_M2524_IG27:
mov x1, x28
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 x1, x0
str x1, [fp, #0x18] // [V63 tmp53]
cbz x1, G_M2524_IG30
mov x0, x1
movz x28, #0xD1FFAB1E
movk x28, #0xD1FFAB1E LSL #16
movk x28, #0xD1FFAB1E LSL #32
add x11, x28, #16
ldr x2, [x11]
blr x2
cbz w0, G_M2524_IG28
sxtw x1, w0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
mov x1, x0
str x1, [fp, #0x10] // [V66 tmp56]
ldr x0, [fp, #0x18] // [V63 tmp53]
add x11, x28, #24
mov w2, wzr
ldr x3, [x11]
blr x3
ldr x28, [fp, #0x10] // [V66 tmp56]
b G_M2524_IG29
;; size=136 bbWeight=2 PerfScore 64.00
G_M2524_IG28:
mov x0, x23
mov w1, #63
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
ldr x28, [x24, #0x08]
;; size=16 bbWeight=2 PerfScore 10.00
G_M2524_IG29:
mov x1, x28
b G_M2524_IG31
;; size=8 bbWeight=2 PerfScore 3.00
G_M2524_IG30:
mov x1, x28
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Linq.Enumerable:<ToArray>g__EnumerableToArray|314_0[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon]):System.__Canon[]
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x0
;; size=40 bbWeight=2 PerfScore 16.00
G_M2524_IG31:
ldr w0, [x1, #0x08]
cbz w0, G_M2524_IG35
cmp w0, #1
beq G_M2524_IG32
mov x0, x27
mov x2, x26
movz x3, #0xD1FFAB1E // code for System.Composition.Hosting.Core.CompositionDependency:Oversupplied(System.Composition.Hosting.Core.CompositionContract,System.Collections.Generic.IEnumerable`1[System.Composition.Hosting.Core.ExportDescriptorPromise],System.Object):System.Composition.Hosting.Core.CompositionDependency
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x2, x0
b G_M2524_IG33
;; size=52 bbWeight=2 PerfScore 27.00
G_M2524_IG32:
ldr x1, [x1, #0x10]
mov x0, x27
mov x3, x26
mov w2, wzr
movz x4, #0xD1FFAB1E // code for System.Composition.Hosting.Core.CompositionDependency:Satisfied(System.Composition.Hosting.Core.CompositionContract,System.Composition.Hosting.Core.ExportDescriptorPromise,ubyte,System.Object):System.Composition.Hosting.Core.CompositionDependency
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
mov x2, x0
;; size=40 bbWeight=2 PerfScore 21.00
G_M2524_IG33:
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_M2524_IG34
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_M2524_IG35
;; size=68 bbWeight=2 PerfScore 42.00
G_M2524_IG34:
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=2 PerfScore 13.00
G_M2524_IG35:
add w25, w25, #1
cmp w21, w25
bgt G_M2524_IG15
;; size=12 bbWeight=4 PerfScore 8.00
G_M2524_IG36:
mov x0, x22
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M2524_IG37:
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=0.50 PerfScore 3.50
G_M2524_IG38:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #53
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M2524_IG03
;; size=24 bbWeight=0 PerfScore 0.00
G_M2524_IG39:
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
-; Total bytes of code 1908, prolog size 28, PerfScore 757.75, instruction count 477, allocated bytes for code 1908 (MethodHash=1b0ff623) for method System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature:GetDependencies(System.Reflection.TypeInfo,System.Composition.Hosting.Core.DependencyAccessor):System.Collections.Generic.IEnumerable`1[System.Composition.Hosting.Core.CompositionDependency]:this (FullOpts)
+; Total bytes of code 1884, prolog size 28, PerfScore 755.50, instruction count 471, allocated bytes for code 1884 (MethodHash=1b0ff623) for method System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature:GetDependencies(System.Reflection.TypeInfo,System.Composition.Hosting.Core.DependencyAccessor):System.Collections.Generic.IEnumerable`1[System.Composition.Hosting.Core.CompositionDependency]:this (FullOpts)
-24 (-0.81 % of base) - System.Net.CookieContainer:AgeCookies(System.String):ubyte:this
; Assembly listing for method System.Net.CookieContainer:AgeCookies(System.String):ubyte: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; 18 single block inlinees; 10 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T05] ( 17,202 ) ref -> [fp+0x60] this class-hnd EH-live single-def <System.Net.CookieContainer>
-; V01 arg1 [V01,T49] ( 6, 15 ) ref -> [fp+0x58] class-hnd EH-live single-def <System.String>
-; V02 loc0 [V02,T06] ( 6,162 ) int -> [fp+0xA4] do-not-enreg[Z] EH-live
+; V00 this [V00,T05] ( 17,202 ) ref -> [fp+0x68] this class-hnd EH-live single-def <System.Net.CookieContainer>
+; V01 arg1 [V01,T50] ( 6, 15 ) ref -> [fp+0x60] class-hnd EH-live single-def <System.String>
+; V02 loc0 [V02,T06] ( 6,162 ) int -> [fp+0xAC] do-not-enreg[Z] EH-live
;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref <System.DateTime>
;* V04 loc2 [V04 ] ( 0, 0 ) struct ( 8) zero-ref <System.DateTime>
-; V05 loc3 [V05,T31] ( 6, 31 ) ref -> [fp+0x50] do-not-enreg[Z] must-init class-hnd EH-live <System.Net.CookieCollection>
+; V05 loc3 [V05,T31] ( 6, 31 ) ref -> [fp+0x58] do-not-enreg[Z] must-init class-hnd EH-live <System.Net.CookieCollection>
;* V06 loc4 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
;* V07 loc5 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.String>
; V08 loc6 [V08,T29] ( 8, 32 ) ref -> x21 class-hnd <System.Net.PathList>
-; V09 loc7 [V09,T01] ( 10,464 ) int -> x22
+; V09 loc7 [V09,T01] ( 10,464 ) int -> x23
; V10 loc8 [V10,T07] ( 11,149 ) int -> x19
-; V11 loc9 [V11,T75] ( 3, 6 ) float -> d8
-; V12 loc10 [V12,T68] ( 4, 3 ) ref -> [fp+0x48] must-init class-hnd EH-live single-def <System.Object>
-; V13 loc11 [V13 ] ( 5, 5 ) ubyte -> [fp+0x98] do-not-enreg[X] addr-exposed ld-addr-op
-; V14 loc12 [V14,T55] ( 5, 14 ) ref -> [fp+0x40] class-hnd EH-live spill-single-def <System.Collections.IDictionaryEnumerator>
+; V11 loc9 [V11,T76] ( 3, 6 ) float -> d8
+; V12 loc10 [V12,T69] ( 4, 3 ) ref -> [fp+0x50] must-init class-hnd EH-live single-def <System.Object>
+; V13 loc11 [V13 ] ( 5, 5 ) ubyte -> [fp+0xA0] do-not-enreg[X] addr-exposed ld-addr-op
+; V14 loc12 [V14,T56] ( 5, 14 ) ref -> [fp+0x48] class-hnd EH-live spill-single-def <System.Collections.IDictionaryEnumerator>
; V15 loc13 [V15,T48] ( 5, 18 ) ref -> x21 class-hnd <System.Object>
;* V16 loc14 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.DictionaryEntry>
-; V17 loc15 [V17,T03] ( 5,300 ) int -> x24
-; V18 loc16 [V18,T56] ( 4, 12 ) ref -> [fp+0x38] do-not-enreg[Z] class-hnd EH-live <System.Object>
-; V19 loc17 [V19 ] ( 5, 16 ) ubyte -> [fp+0x90] do-not-enreg[X] addr-exposed ld-addr-op
-; V20 loc18 [V20,T19] ( 5, 56 ) ref -> [fp+0x30] do-not-enreg[Z] class-hnd EH-live <System.Collections.IEnumerator>
-; V21 loc19 [V21,T12] ( 6, 96 ) ref -> x23 class-hnd <System.Net.CookieCollection>
+; V17 loc15 [V17,T03] ( 5,300 ) int -> x25
+; V18 loc16 [V18,T57] ( 4, 12 ) ref -> [fp+0x40] do-not-enreg[Z] class-hnd EH-live <System.Object>
+; V19 loc17 [V19 ] ( 5, 16 ) ubyte -> [fp+0x98] do-not-enreg[X] addr-exposed ld-addr-op
+; V20 loc18 [V20,T19] ( 5, 56 ) ref -> [fp+0x38] do-not-enreg[Z] class-hnd EH-live <System.Collections.IEnumerator>
+; V21 loc19 [V21,T12] ( 6, 96 ) ref -> x24 class-hnd <System.Net.CookieCollection>
; V22 loc20 [V22,T32] ( 18, 30 ) ref -> x0 class-hnd <System.IDisposable>
-; V23 loc21 [V23,T15] ( 6, 76 ) ref -> x23 class-hnd exact <System.Net.CookieCollection[]>
-; V24 loc22 [V24,T25] ( 5, 44 ) ref -> x25 class-hnd exact <System.DateTime[]>
-; V25 loc23 [V25,T57] ( 4, 12 ) ref -> [fp+0x28] do-not-enreg[Z] class-hnd EH-live <System.Object>
-; V26 loc24 [V26 ] ( 5, 16 ) ubyte -> [fp+0x88] do-not-enreg[X] addr-exposed ld-addr-op
-; V27 loc25 [V27,T20] ( 5, 56 ) ref -> [fp+0x20] do-not-enreg[Z] class-hnd EH-live <System.Collections.IEnumerator>
+; V23 loc21 [V23,T15] ( 6, 76 ) ref -> x24 class-hnd exact <System.Net.CookieCollection[]>
+; V24 loc22 [V24,T25] ( 5, 44 ) ref -> x26 class-hnd exact <System.DateTime[]>
+; V25 loc23 [V25,T58] ( 4, 12 ) ref -> [fp+0x30] do-not-enreg[Z] class-hnd EH-live <System.Object>
+; V26 loc24 [V26 ] ( 5, 16 ) ubyte -> [fp+0x90] do-not-enreg[X] addr-exposed ld-addr-op
+; V27 loc25 [V27,T20] ( 5, 56 ) ref -> [fp+0x28] do-not-enreg[Z] class-hnd EH-live <System.Collections.IEnumerator>
; V28 loc26 [V28,T21] ( 3, 48 ) ref -> x15 class-hnd <System.Net.CookieCollection>
; V29 loc27 [V29,T09] ( 5,132 ) int -> x20
-; V30 loc28 [V30,T04] ( 5,288 ) ref -> x25 class-hnd <System.Net.CookieCollection>
-; V31 loc29 [V31,T22] ( 3, 48 ) ref -> [fp+0x18] do-not-enreg[Z] class-hnd EH-live <System.Net.CookieCollection>
-; V32 loc30 [V32 ] ( 5,128 ) ubyte -> [fp+0x80] do-not-enreg[X] addr-exposed ld-addr-op
-; V33 loc31 [V33,T71] ( 2, 2 ) ubyte -> [fp+0x7C] do-not-enreg[Z] EH-live
-; V34 loc32 [V34,T72] ( 3, 1 ) ref -> [fp+0x10] class-hnd EH-live spill-single-def <System.Net.CookieCollection>
-; V35 loc33 [V35 ] ( 5, 4 ) ubyte -> [fp+0x70] do-not-enreg[X] addr-exposed ld-addr-op
+; V30 loc28 [V30,T04] ( 5,288 ) ref -> x22 class-hnd <System.Net.CookieCollection>
+; V31 loc29 [V31,T22] ( 3, 48 ) ref -> [fp+0x20] do-not-enreg[Z] class-hnd EH-live <System.Net.CookieCollection>
+; V32 loc30 [V32 ] ( 5,128 ) ubyte -> [fp+0x88] do-not-enreg[X] addr-exposed ld-addr-op
+; V33 loc31 [V33,T72] ( 2, 2 ) ubyte -> [fp+0x84] do-not-enreg[Z] EH-live
+; V34 loc32 [V34,T73] ( 3, 1 ) ref -> [fp+0x18] class-hnd EH-live spill-single-def <System.Net.CookieCollection>
+; V35 loc33 [V35 ] ( 5, 4 ) ubyte -> [fp+0x78] do-not-enreg[X] addr-exposed ld-addr-op
;# V36 OutArgs [V36 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V37 tmp1 [V37 ] ( 0, 0 ) struct ( 8) zero-ref "folding static readonly field struct" <System.DateTime>
;* V38 tmp2 [V38 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.DateTime>
;* V39 tmp3 [V39 ] ( 0, 0 ) struct ( 8) zero-ref "Strict ordering of exceptions for Array store" <System.DateTime>
;* V40 tmp4 [V40 ] ( 0, 0 ) struct ( 8) zero-ref "folding static readonly field struct" <System.DateTime>
;* V41 tmp5 [V41 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V42 tmp6 [V42 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V43 tmp7 [V43 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
-; V44 tmp8 [V44,T58] ( 3, 12 ) int -> x2 "Inline return value spill temp"
+; V44 tmp8 [V44,T59] ( 3, 12 ) int -> x2 "Inline return value spill temp"
; V45 tmp9 [V45,T43] ( 3, 24 ) int -> x1 "Inlining Arg"
; V46 tmp10 [V46,T44] ( 3, 24 ) int -> x2 "Inlining Arg"
-; V47 tmp11 [V47,T59] ( 3, 12 ) int -> x24 "Inline return value spill temp"
-; V48 tmp12 [V48,T45] ( 3, 24 ) int -> x23 "Inlining Arg"
-; V49 tmp13 [V49,T46] ( 3, 24 ) int -> x24 "Inlining Arg"
-; V50 tmp14 [V50,T67] ( 2, 4 ) int -> x0 "Single return block return value"
-; V51 tmp15 [V51,T28] ( 4, 34 ) long -> [fp+0x68] do-not-enreg[Z] EH-live "field V03._dateData (fldOffset=0x0)" P-INDEP
+; V47 tmp11 [V47,T60] ( 3, 12 ) int -> x25 "Inline return value spill temp"
+; V48 tmp12 [V48,T45] ( 3, 24 ) int -> x24 "Inlining Arg"
+; V49 tmp13 [V49,T46] ( 3, 24 ) int -> x25 "Inlining Arg"
+; V50 tmp14 [V50,T68] ( 2, 4 ) int -> x0 "Single return block return value"
+; V51 tmp15 [V51,T28] ( 4, 34 ) long -> [fp+0x70] do-not-enreg[Z] EH-live "field V03._dateData (fldOffset=0x0)" P-INDEP
;* V52 tmp16 [V52 ] ( 0, 0 ) long -> zero-ref "field V04._dateData (fldOffset=0x0)" P-INDEP
-; V53 tmp17 [V53,T60] ( 3, 8 ) ref -> x1 "field V16._key (fldOffset=0x0)" P-INDEP
-; V54 tmp18 [V54,T61] ( 3, 8 ) ref -> x2 "field V16._value (fldOffset=0x8)" P-INDEP
-;* V55 tmp19 [V55,T73] ( 0, 0 ) long -> zero-ref "field V37._dateData (fldOffset=0x0)" P-INDEP
+; V53 tmp17 [V53,T61] ( 3, 8 ) ref -> x1 "field V16._key (fldOffset=0x0)" P-INDEP
+; V54 tmp18 [V54,T62] ( 3, 8 ) ref -> x2 "field V16._value (fldOffset=0x8)" P-INDEP
+;* V55 tmp19 [V55,T74] ( 0, 0 ) long -> zero-ref "field V37._dateData (fldOffset=0x0)" P-INDEP
; V56 tmp20 [V56,T24] ( 3, 48 ) long -> x1 "field V38._dateData (fldOffset=0x0)" P-INDEP
; V57 tmp21 [V57,T30] ( 2, 32 ) long -> x14 "field V39._dateData (fldOffset=0x0)" P-INDEP
;* V58 tmp22 [V58 ] ( 0, 0 ) long -> zero-ref "field V40._dateData (fldOffset=0x0)" P-INDEP
;* V59 tmp23 [V59 ] ( 0, 0 ) long -> zero-ref "field V41._dateData (fldOffset=0x0)" P-INDEP
;* V60 tmp24 [V60 ] ( 0, 0 ) long -> zero-ref "field V42._dateData (fldOffset=0x0)" P-INDEP
-; V61 tmp25 [V61,T65] ( 3, 6 ) ref -> x2 single-def "argument with side effect"
-; V62 tmp26 [V62,T66] ( 3, 6 ) ref -> x1 single-def "argument with side effect"
+; V61 tmp25 [V61,T66] ( 3, 6 ) ref -> x2 single-def "argument with side effect"
+; V62 tmp26 [V62,T67] ( 3, 6 ) ref -> x1 single-def "argument with side effect"
; V63 tmp27 [V63,T35] ( 3, 24 ) ref -> x2 "argument with side effect"
-; V64 tmp28 [V64,T50] ( 3, 16 ) ref -> x1 "argument with side effect"
+; V64 tmp28 [V64,T51] ( 3, 16 ) ref -> x1 "argument with side effect"
; V65 tmp29 [V65,T36] ( 3, 24 ) ref -> x0 "argument with side effect"
; V66 tmp30 [V66,T37] ( 3, 24 ) ref -> x0 "argument with side effect"
-; V67 tmp31 [V67,T51] ( 2, 16 ) ref -> x0 "argument with side effect"
+; V67 tmp31 [V67,T52] ( 2, 16 ) ref -> x0 "argument with side effect"
; V68 tmp32 [V68,T17] ( 3, 72 ) ref -> x0 "argument with side effect"
; V69 tmp33 [V69,T13] ( 3, 96 ) ref -> x1 "argument with side effect"
; V70 tmp34 [V70,T14] ( 3, 96 ) ref -> x0 "argument with side effect"
; V71 tmp35 [V71,T38] ( 3, 24 ) ref -> x2 "argument with side effect"
; V72 tmp36 [V72,T39] ( 3, 24 ) ref -> x0 "argument with side effect"
-; V73 tmp37 [V73,T53] ( 2, 16 ) long -> x1 "argument with side effect"
+; V73 tmp37 [V73,T54] ( 2, 16 ) long -> x1 "argument with side effect"
; V74 tmp38 [V74,T40] ( 3, 24 ) ref -> x0 "argument with side effect"
-; V75 tmp39 [V75,T54] ( 2, 16 ) long -> x1 "argument with side effect"
+; V75 tmp39 [V75,T55] ( 2, 16 ) long -> x1 "argument with side effect"
; V76 tmp40 [V76,T41] ( 3, 24 ) ref -> x0 "argument with side effect"
-; V77 tmp41 [V77,T52] ( 2, 16 ) ref -> x0 "argument with side effect"
+; V77 tmp41 [V77,T53] ( 2, 16 ) ref -> x0 "argument with side effect"
; V78 tmp42 [V78,T18] ( 3, 72 ) ref -> x0 "argument with side effect"
; V79 tmp43 [V79,T00] ( 3,768 ) ref -> x0 "argument with side effect"
; V80 tmp44 [V80,T02] ( 3,384 ) ref -> x0 "argument with side effect"
; V81 tmp45 [V81,T23] ( 3, 48 ) ref -> x1 "argument with side effect"
; V82 tmp46 [V82,T42] ( 3, 24 ) ref -> x0 "argument with side effect"
-; V83 PSPSym [V83,T74] ( 1, 1 ) long -> [fp+0xA8] do-not-enreg[V] "PSPSym"
-; V84 cse0 [V84,T69] ( 3, 3 ) int -> x3 "CSE #01: moderate"
-; V85 cse1 [V85,T70] ( 3, 3 ) int -> x2 "CSE #02: moderate"
+; V83 PSPSym [V83,T75] ( 1, 1 ) long -> [fp+0xB0] do-not-enreg[V] "PSPSym"
+; V84 cse0 [V84,T70] ( 3, 3 ) int -> x3 "CSE #01: moderate"
+; V85 cse1 [V85,T71] ( 3, 3 ) int -> x2 "CSE #02: moderate"
; V86 cse2 [V86,T08] ( 18,135 ) long -> x20 multi-def "CSE #06: aggressive"
; V87 cse3 [V87,T16] ( 5, 72 ) int -> x21 multi-def "CSE #09: aggressive"
-; V88 rat0 [V88,T47] ( 3, 20 ) ref -> x0 "replacement local"
-; V89 rat1 [V89,T62] ( 3, 8 ) long -> x4 "CSE for expectedClsNode"
-; V90 rat2 [V90,T33] ( 4, 28 ) ref -> x21 "replacement local"
-; V91 rat3 [V91,T63] ( 3, 8 ) long -> x0 "CSE for expectedClsNode"
-; V92 rat4 [V92,T34] ( 4, 28 ) ref -> x21 "replacement local"
-; V93 rat5 [V93,T64] ( 3, 8 ) long -> x0 "CSE for expectedClsNode"
-; V94 rat6 [V94,T10] ( 5,120 ) ref -> x23 "replacement local"
-; V95 rat7 [V95,T26] ( 3, 40 ) long -> x2 "CSE for expectedClsNode"
-; V96 rat8 [V96,T11] ( 5,120 ) ref -> x15 "replacement local"
-; V97 rat9 [V97,T27] ( 3, 40 ) long -> x2 "CSE for expectedClsNode"
+; V88 cse4 [V88,T49] ( 5, 18 ) long -> x22 "CSE #03: moderate"
+; V89 rat0 [V89,T47] ( 3, 20 ) ref -> x0 "replacement local"
+; V90 rat1 [V90,T63] ( 3, 8 ) long -> x4 "CSE for expectedClsNode"
+; V91 rat2 [V91,T33] ( 4, 28 ) ref -> x21 "replacement local"
+; V92 rat3 [V92,T64] ( 3, 8 ) long -> x0 "CSE for expectedClsNode"
+; V93 rat4 [V93,T34] ( 4, 28 ) ref -> x21 "replacement local"
+; V94 rat5 [V94,T65] ( 3, 8 ) long -> x0 "CSE for expectedClsNode"
+; V95 rat6 [V95,T10] ( 5,120 ) ref -> x24 "replacement local"
+; V96 rat7 [V96,T26] ( 3, 40 ) long -> x2 "CSE for expectedClsNode"
+; V97 rat8 [V97,T11] ( 5,120 ) ref -> x15 "replacement local"
+; V98 rat9 [V98,T27] ( 3, 40 ) long -> x2 "CSE for expectedClsNode"
;
-; Lcl frame size = 160
+; Lcl frame size = 168
G_M7339_IG01:
- stp fp, lr, [sp, #-0xF0]!
- str d8, [sp, #0xB0]
- stp x19, x20, [sp, #0xB8]
- stp x21, x22, [sp, #0xC8]
- stp x23, x24, [sp, #0xD8]
- str x25, [sp, #0xE8]
+ stp fp, lr, [sp, #-0x100]!
+ str d8, [sp, #0xB8]
+ stp x19, x20, [sp, #0xC0]
+ stp x21, x22, [sp, #0xD0]
+ stp x23, x24, [sp, #0xE0]
+ stp x25, x26, [sp, #0xF0]
mov fp, sp
- stp xzr, xzr, [fp, #0x48] // [V12 loc10], [V05 loc3]
- add x2, sp, #240
- str x2, [fp, #0xA8] // [V83 PSPSym]
- stp x1, x0, [fp, #0x58] // [V01 arg1], [V00 this]
+ stp xzr, xzr, [fp, #0x50] // [V12 loc10], [V05 loc3]
+ add x2, sp, #0xD1FFAB1E
+ str x2, [fp, #0xB0] // [V83 PSPSym]
+ stp x1, x0, [fp, #0x60] // [V01 arg1], [V00 this]
;; size=44 bbWeight=1 PerfScore 10.00
G_M7339_IG02:
- str wzr, [fp, #0xA4] // [V02 loc0]
+ str wzr, [fp, #0xAC] // [V02 loc0]
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movk x2, #0xD1FFAB1E LSL #48
- str x2, [fp, #0x68] // [V51 tmp15]
- str xzr, [fp, #0x50] // [V05 loc3]
+ str x2, [fp, #0x70] // [V51 tmp15]
+ str xzr, [fp, #0x58] // [V05 loc3]
mov w19, wzr
fmov s8, #1.0000
ldr w2, [x0, #0x24]
ldr w3, [x0, #0x1C]
cmp w2, w3
ble G_M7339_IG03
scvtf s16, w3
scvtf s17, w2
fdiv s8, s16, s17
;; size=64 bbWeight=1 PerfScore 30.50
G_M7339_IG03:
ldr x2, [x0, #0x08]
mov x0, x2
ldr x2, [x2]
ldr x2, [x2, #0x58]
ldr x2, [x2]
blr x2
- str x0, [fp, #0x48] // [V12 loc10]
- str wzr, [fp, #0x98] // [V13 loc11]
+ str x0, [fp, #0x50] // [V12 loc10]
+ str wzr, [fp, #0xA0] // [V13 loc11]
;; size=32 bbWeight=1 PerfScore 15.50
G_M7339_IG04:
- ldrb w1, [fp, #0x98] // [V13 loc11]
+ ldrb w1, [fp, #0xA0] // [V13 loc11]
cbnz w1, G_M7339_IG63
- add x1, fp, #152 // [V13 loc11]
+ add x1, fp, #160 // [V13 loc11]
bl System.Threading.Monitor:ReliableEnter(System.Object,byref)
- ldr x0, [fp, #0x60] // [V00 this]
+ ldr x0, [fp, #0x68] // [V00 this]
ldr x1, [x0, #0x08]
mov x0, x1
ldr x1, [x1]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x38]
blr x1
mov x1, x0
- str x1, [fp, #0x40] // [V14 loc12]
+ str x1, [fp, #0x48] // [V14 loc12]
;; size=52 bbWeight=1 PerfScore 21.50
G_M7339_IG05:
b G_M7339_IG58
;; size=4 bbWeight=1 PerfScore 1.00
G_M7339_IG06:
- ldr x0, [fp, #0x40] // [V14 loc12]
+ ldr x0, [fp, #0x48] // [V14 loc12]
add x11, x20, #8
ldr x1, [x11]
blr x1
mov x21, x0
ldr x1, [x21]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- cmp x1, x0
+ movz x22, #0xD1FFAB1E
+ movk x22, #0xD1FFAB1E LSL #16
+ movk x22, #0xD1FFAB1E LSL #32
+ cmp x1, x22
beq G_M7339_IG08
;; size=44 bbWeight=4 PerfScore 52.00
G_M7339_IG07:
mov x1, x21
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ mov x0, x22
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ;; size=36 bbWeight=2 PerfScore 15.00
+ ;; size=28 bbWeight=2 PerfScore 13.00
G_M7339_IG08:
ldp x1, x2, [x21, #0x08]
- ldr x3, [fp, #0x58] // [V01 arg1]
+ ldr x3, [fp, #0x60] // [V01 arg1]
cbnz x3, G_M7339_IG14
mov x0, x1
cbz x0, G_M7339_IG10
;; size=20 bbWeight=4 PerfScore 34.00
G_M7339_IG09:
movz x4, #0xD1FFAB1E
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x0, [x0]
cmp x0, x4
bne G_M7339_IG18
;; size=24 bbWeight=2 PerfScore 12.00
G_M7339_IG10:
mov x21, x2
cbz x21, G_M7339_IG12
;; size=8 bbWeight=4 PerfScore 6.00
G_M7339_IG11:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x1, [x21]
cmp x1, x0
bne G_M7339_IG17
;; size=24 bbWeight=2 PerfScore 12.00
G_M7339_IG12:
- mov w22, wzr
+ mov w23, wzr
ldr x0, [x21, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x28]
blr x1
- str x0, [fp, #0x38] // [V18 loc16]
- str wzr, [fp, #0x90] // [V19 loc17]
+ str x0, [fp, #0x40] // [V18 loc16]
+ str wzr, [fp, #0x98] // [V19 loc17]
b G_M7339_IG19
;; size=36 bbWeight=4 PerfScore 66.00
G_M7339_IG13:
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M7339_IG14:
- ldr x0, [fp, #0x60] // [V00 this]
+ ldr x0, [fp, #0x68] // [V00 this]
ldr x2, [x0, #0x08]
mov x0, x2
mov x1, x3
ldr x2, [x2]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x20]
blr x2
mov x1, x0
mov x21, x1
cbz x21, G_M7339_IG16
;; size=44 bbWeight=4 PerfScore 72.00
G_M7339_IG15:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x2, [x21]
cmp x2, x0
bne G_M7339_IG13
;; size=24 bbWeight=2 PerfScore 12.00
G_M7339_IG16:
b G_M7339_IG12
;; size=4 bbWeight=4 PerfScore 4.00
G_M7339_IG17:
mov x1, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
G_M7339_IG18:
mov x0, x4
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
G_M7339_IG19:
- ldrb w1, [fp, #0x90] // [V19 loc17]
+ ldrb w1, [fp, #0x98] // [V19 loc17]
cbz w1, G_M7339_IG21
;; size=8 bbWeight=4 PerfScore 12.00
G_M7339_IG20:
movz x0, #0xD1FFAB1E // code for System.Threading.Monitor:ThrowLockTakenException()
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_M7339_IG21:
- add x1, fp, #144 // [V19 loc17]
- ldr x0, [fp, #0x38] // [V18 loc16]
+ add x1, fp, #152 // [V19 loc17]
+ ldr x0, [fp, #0x40] // [V18 loc16]
bl System.Threading.Monitor:ReliableEnter(System.Object,byref)
ldr x0, [x21, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x08]
blr x1
add x11, x20, #16
ldr x1, [x11]
blr x1
- str x0, [fp, #0x30] // [V20 loc18]
+ str x0, [fp, #0x38] // [V20 loc18]
;; size=48 bbWeight=4 PerfScore 88.00
G_M7339_IG22:
b G_M7339_IG27
;; size=4 bbWeight=4 PerfScore 4.00
G_M7339_IG23:
- ldr x0, [fp, #0x30] // [V20 loc18]
+ ldr x0, [fp, #0x38] // [V20 loc18]
add x11, x20, #32
ldr x1, [x11]
blr x1
- mov x23, x0
- cbz x23, G_M7339_IG26
+ mov x24, x0
+ cbz x24, G_M7339_IG26
;; size=24 bbWeight=16 PerfScore 128.00
G_M7339_IG24:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
- ldr x1, [x23]
+ ldr x1, [x24]
cmp x1, x2
beq G_M7339_IG26
;; size=24 bbWeight=8 PerfScore 48.00
G_M7339_IG25:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- mov x23, x0
+ mov x24, x0
;; size=32 bbWeight=4 PerfScore 28.00
G_M7339_IG26:
- mov x0, x23
+ mov x0, x24
movz x1, #0xD1FFAB1E // code for System.Net.CookieContainer:ExpireCollection(System.Net.CookieCollection):int
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
sxtw w19, w0
- ldr w0, [fp, #0xA4] // [V02 loc0]
+ ldr w0, [fp, #0xAC] // [V02 loc0]
add w0, w0, w19
- str w0, [fp, #0xA4] // [V02 loc0]
- ldr x0, [fp, #0x60] // [V00 this]
+ str w0, [fp, #0xAC] // [V02 loc0]
+ ldr x0, [fp, #0x68] // [V00 this]
ldr w1, [x0, #0x24]
sub w1, w1, w19
str w1, [x0, #0x24]
- ldr x1, [x23, #0x08]
+ ldr x1, [x24, #0x08]
mov x0, x1
ldr x1, [x1]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x30]
blr x1
- add w22, w0, w22
- ldr x0, [x23, #0x08]
+ add w23, w0, w23
+ ldr x0, [x24, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x30]
blr x1
cmp w0, #0
ble G_M7339_IG27
- ldr x1, [x23, #0x18]
+ ldr x1, [x24, #0x18]
and x0, x1, #0xD1FFAB1E
- ldr x2, [fp, #0x68] // [V51 tmp15]
+ ldr x2, [fp, #0x70] // [V51 tmp15]
and x2, x2, #0xD1FFAB1E
cmp x0, x2
bge G_M7339_IG27
- str x23, [fp, #0x50] // [V05 loc3]
- str x1, [fp, #0x68] // [V51 tmp15]
+ str x24, [fp, #0x58] // [V05 loc3]
+ str x1, [fp, #0x70] // [V51 tmp15]
;; size=144 bbWeight=16 PerfScore 872.00
G_M7339_IG27:
- ldr x0, [fp, #0x30] // [V20 loc18]
+ ldr x0, [fp, #0x38] // [V20 loc18]
add x11, x20, #24
ldr x1, [x11]
blr x1
cbnz w0, G_M7339_IG23
;; size=20 bbWeight=32 PerfScore 240.00
G_M7339_IG28:
- ldr x1, [fp, #0x30] // [V20 loc18]
+ ldr x1, [fp, #0x38] // [V20 loc18]
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
cbz x0, G_M7339_IG29
add x11, x20, #72
ldr x1, [x11]
blr x1
;; size=52 bbWeight=4 PerfScore 58.00
G_M7339_IG29:
- ldrb w0, [fp, #0x90] // [V19 loc17]
+ ldrb w0, [fp, #0x98] // [V19 loc17]
cbz w0, G_M7339_IG30
- ldr x0, [fp, #0x38] // [V18 loc16]
+ ldr x0, [fp, #0x40] // [V18 loc16]
bl System.Threading.Monitor:Exit(System.Object)
;; size=16 bbWeight=4 PerfScore 24.00
G_M7339_IG30:
- ldr x0, [fp, #0x60] // [V00 this]
+ ldr x0, [fp, #0x68] // [V00 this]
ldp w2, w1, [x0, #0x1C]
cmp w1, w2
ble G_M7339_IG31
b G_M7339_IG32
;; size=20 bbWeight=4 PerfScore 30.00
G_M7339_IG31:
sxtw w2, w1
;; size=4 bbWeight=4 PerfScore 2.00
G_M7339_IG32:
- scvtf s16, w22
+ scvtf s16, w23
fmul s16, s16, s8
- fcvtzs w23, s16
- sub w24, w2, #1
- cmp w23, w24
+ fcvtzs w24, s16
+ sub w25, w2, #1
+ cmp w24, w25
ble G_M7339_IG33
b G_M7339_IG34
;; size=28 bbWeight=4 PerfScore 48.00
G_M7339_IG33:
- sxtw w24, w23
+ sxtw w25, w24
;; size=4 bbWeight=4 PerfScore 2.00
G_M7339_IG34:
- cmp w22, w24
+ cmp w23, w25
ble G_M7339_IG58
ldr x2, [x21, #0x08]
mov x0, x2
ldr x2, [x2]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x28]
blr x2
- str x0, [fp, #0x28] // [V25 loc23]
- str wzr, [fp, #0x88] // [V26 loc24]
+ str x0, [fp, #0x30] // [V25 loc23]
+ str wzr, [fp, #0x90] // [V26 loc24]
;; size=40 bbWeight=4 PerfScore 68.00
G_M7339_IG35:
- ldrb w1, [fp, #0x88] // [V26 loc24]
+ ldrb w1, [fp, #0x90] // [V26 loc24]
cbz w1, G_M7339_IG37
;; size=8 bbWeight=4 PerfScore 12.00
G_M7339_IG36:
movz x0, #0xD1FFAB1E // code for System.Threading.Monitor:ThrowLockTakenException()
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_M7339_IG37:
- add x1, fp, #136 // [V26 loc24]
- ldr x0, [fp, #0x28] // [V25 loc23]
+ add x1, fp, #144 // [V26 loc24]
+ ldr x0, [fp, #0x30] // [V25 loc23]
bl System.Threading.Monitor:ReliableEnter(System.Object,byref)
ldr x0, [x21, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x38]
blr x1
sxtw x1, w0
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ add x0, x22, #152
bl CORINFO_HELP_NEWARR_1_OBJ
- mov x23, x0
+ mov x24, x0
ldr x0, [x21, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x38]
blr x1
sxtw x1, w0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_VC
- mov x25, x0
+ mov x26, x0
ldr x0, [x21, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x08]
blr x1
add x11, x20, #40
ldr x1, [x11]
blr x1
- str x0, [fp, #0x20] // [V27 loc25]
- ;; size=136 bbWeight=4 PerfScore 220.00
+ str x0, [fp, #0x28] // [V27 loc25]
+ ;; size=128 bbWeight=4 PerfScore 216.00
G_M7339_IG38:
b G_M7339_IG43
;; size=4 bbWeight=4 PerfScore 4.00
G_M7339_IG39:
- ldr x0, [fp, #0x20] // [V27 loc25]
+ ldr x0, [fp, #0x28] // [V27 loc25]
add x11, x20, #56
ldr x1, [x11]
blr x1
mov x15, x0
cbz x15, G_M7339_IG42
;; size=24 bbWeight=16 PerfScore 128.00
G_M7339_IG40:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x15]
cmp x1, x2
beq G_M7339_IG42
;; size=24 bbWeight=8 PerfScore 48.00
G_M7339_IG41:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x15, x0
;; size=32 bbWeight=4 PerfScore 28.00
G_M7339_IG42:
ldr x14, [x15, #0x18]
- ldr w12, [x25, #0x08]
+ ldr w12, [x26, #0x08]
cmp w19, w12
bhs G_M7339_IG44
ubfiz x12, x19, #3, #32
add x12, x12, #16
- str x14, [x25, x12]
- ldr w21, [x23, #0x08]
+ str x14, [x26, x12]
+ ldr w21, [x24, #0x08]
cmp w19, w21
bhs G_M7339_IG44
- add x14, x23, #16
+ add x14, x24, #16
add x14, x14, x19, LSL #3
bl CORINFO_HELP_ASSIGN_REF
add w19, w19, #1
;; size=56 bbWeight=16 PerfScore 280.00
G_M7339_IG43:
- ldr x0, [fp, #0x20] // [V27 loc25]
+ ldr x0, [fp, #0x28] // [V27 loc25]
add x11, x20, #48
ldr x1, [x11]
blr x1
cbnz w0, G_M7339_IG39
b G_M7339_IG45
;; size=24 bbWeight=32 PerfScore 272.00
G_M7339_IG44:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
G_M7339_IG45:
- ldr x1, [fp, #0x20] // [V27 loc25]
+ ldr x1, [fp, #0x28] // [V27 loc25]
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
cbz x0, G_M7339_IG46
add x11, x20, #64
ldr x1, [x11]
blr x1
;; size=52 bbWeight=4 PerfScore 58.00
G_M7339_IG46:
- ldrb w0, [fp, #0x88] // [V26 loc24]
+ ldrb w0, [fp, #0x90] // [V26 loc24]
cbz w0, G_M7339_IG47
- ldr x0, [fp, #0x28] // [V25 loc23]
+ ldr x0, [fp, #0x30] // [V25 loc23]
bl System.Threading.Monitor:Exit(System.Object)
;; size=16 bbWeight=4 PerfScore 24.00
G_M7339_IG47:
- ldr w4, [x25, #0x08]
- mov x1, x25
- mov x2, x23
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ ldr w4, [x26, #0x08]
+ mov x1, x26
+ mov x2, x24
+ add x0, x22, #0xD1FFAB1E
mov w3, wzr
mov x5, xzr
movz x6, #0xD1FFAB1E // code for System.Array:Sort[System.DateTime,System.__Canon](System.DateTime[],System.__Canon[],int,int,System.Collections.Generic.IComparer`1[System.DateTime])
movk x6, #0xD1FFAB1E LSL #16
movk x6, #0xD1FFAB1E LSL #32
ldr x6, [x6]
blr x6
mov w19, wzr
mov w20, wzr
- ldr w21, [x23, #0x08]
+ ldr w21, [x24, #0x08]
cmp w21, #0
ble G_M7339_IG57
- ;; size=72 bbWeight=4 PerfScore 70.00
+ ;; size=64 bbWeight=4 PerfScore 66.00
G_M7339_IG48:
- add x1, x23, #16
- ldr x25, [x1, w20, UXTW #3]
- str x25, [fp, #0x18] // [V31 loc29]
- str wzr, [fp, #0x80] // [V32 loc30]
+ add x1, x24, #16
+ ldr x22, [x1, w20, UXTW #3]
+ str x22, [fp, #0x20] // [V31 loc29]
+ str wzr, [fp, #0x88] // [V32 loc30]
;; size=16 bbWeight=32 PerfScore 176.00
G_M7339_IG49:
- ldrb w1, [fp, #0x80] // [V32 loc30]
+ ldrb w1, [fp, #0x88] // [V32 loc30]
cbnz w1, G_M7339_IG52
- add x1, fp, #128 // [V32 loc30]
- mov x0, x25
+ add x1, fp, #136 // [V32 loc30]
+ mov x0, x22
bl System.Threading.Monitor:ReliableEnter(System.Object,byref)
;; size=20 bbWeight=32 PerfScore 160.00
G_M7339_IG50:
- cmp w22, w24
+ cmp w23, w25
ble G_M7339_IG54
;; size=8 bbWeight=256 PerfScore 384.00
G_M7339_IG51:
- ldr x0, [x25, #0x08]
+ ldr x0, [x22, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x30]
blr x1
cmp w0, #0
bgt G_M7339_IG53
b G_M7339_IG54
;; size=32 bbWeight=128 PerfScore 1984.00
G_M7339_IG52:
movz x0, #0xD1FFAB1E // code for System.Threading.Monitor:ThrowLockTakenException()
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_M7339_IG53:
- ldr x0, [x25, #0x08]
+ ldr x0, [x22, #0x08]
mov w1, wzr
ldr x2, [x0]
ldr x2, [x2, #0x60]
ldr x2, [x2, #0x18]
blr x2
- sub w22, w22, #1
- ldr x0, [fp, #0x60] // [V00 this]
+ sub w23, w23, #1
+ ldr x0, [fp, #0x68] // [V00 this]
ldr w1, [x0, #0x24]
sub w1, w1, #1
str w1, [x0, #0x24]
- ldr w1, [fp, #0xA4] // [V02 loc0]
+ ldr w1, [fp, #0xAC] // [V02 loc0]
add w1, w1, #1
- str w1, [fp, #0xA4] // [V02 loc0]
+ str w1, [fp, #0xAC] // [V02 loc0]
b G_M7339_IG50
;; size=60 bbWeight=64 PerfScore 1600.00
G_M7339_IG54:
- ldrb w1, [fp, #0x80] // [V32 loc30]
+ ldrb w1, [fp, #0x88] // [V32 loc30]
cbz w1, G_M7339_IG56
;; size=8 bbWeight=32 PerfScore 96.00
G_M7339_IG55:
- ldr x0, [fp, #0x18] // [V31 loc29]
+ ldr x0, [fp, #0x20] // [V31 loc29]
bl System.Threading.Monitor:Exit(System.Object)
;; size=8 bbWeight=16 PerfScore 48.00
G_M7339_IG56:
- cmp w22, w24
+ cmp w23, w25
ble G_M7339_IG57
add w20, w20, #1
cmp w21, w20
bgt G_M7339_IG48
;; size=20 bbWeight=32 PerfScore 112.00
G_M7339_IG57:
- cmp w22, w24
+ cmp w23, w25
ble G_M7339_IG58
- ldr x1, [fp, #0x40] // [V14 loc12]
- ldr x3, [fp, #0x58] // [V01 arg1]
+ ldr x1, [fp, #0x48] // [V14 loc12]
+ ldr x3, [fp, #0x60] // [V01 arg1]
cbnz x3, G_M7339_IG59
;; size=20 bbWeight=4 PerfScore 26.00
G_M7339_IG58:
- ldr x1, [fp, #0x40] // [V14 loc12]
+ ldr x1, [fp, #0x48] // [V14 loc12]
mov x0, x1
movz x20, #0xD1FFAB1E // code for System.Collections.IEnumerator:MoveNext():ubyte:this
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
mov x11, x20
ldr x2, [x11]
blr x2
cbnz w0, G_M7339_IG06
b G_M7339_IG60
;; size=40 bbWeight=8 PerfScore 84.00
G_M7339_IG59:
- str wzr, [fp, #0x7C] // [V33 loc31]
+ str wzr, [fp, #0x84] // [V33 loc31]
b G_M7339_IG61
;; size=8 bbWeight=1 PerfScore 2.00
G_M7339_IG60:
- ldr x1, [fp, #0x40] // [V14 loc12]
+ ldr x1, [fp, #0x48] // [V14 loc12]
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
cbz x0, G_M7339_IG64
add x11, x20, #80
ldr x1, [x11]
blr x1
b G_M7339_IG64
;; size=56 bbWeight=1 PerfScore 15.50
G_M7339_IG61:
- ldr x0, [fp, #0xA8] // [V83 PSPSym]
+ ldr x0, [fp, #0xB0] // [V83 PSPSym]
bl G_M7339_IG94
;; size=8 bbWeight=1 PerfScore 3.00
G_M7339_IG62:
b G_M7339_IG66
;; size=4 bbWeight=1 PerfScore 1.00
G_M7339_IG63:
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_M7339_IG64:
- ldr x0, [fp, #0xA8] // [V83 PSPSym]
+ ldr x0, [fp, #0xB0] // [V83 PSPSym]
bl G_M7339_IG97
;; size=8 bbWeight=1 PerfScore 3.00
G_M7339_IG65:
b G_M7339_IG67
;; size=4 bbWeight=1 PerfScore 1.00
G_M7339_IG66:
- ldrb w0, [fp, #0x98] // [V13 loc11]
+ ldrb w0, [fp, #0xA0] // [V13 loc11]
cbz w0, G_M7339_IG77
- ldr x0, [fp, #0x48] // [V12 loc10]
+ ldr x0, [fp, #0x50] // [V12 loc10]
bl System.Threading.Monitor:Exit(System.Object)
b G_M7339_IG77
;; size=20 bbWeight=1 PerfScore 7.00
G_M7339_IG67:
- ldr x3, [fp, #0x58] // [V01 arg1]
+ ldr x3, [fp, #0x60] // [V01 arg1]
cbnz x3, G_M7339_IG75
- ldr w0, [fp, #0xA4] // [V02 loc0]
+ ldr w0, [fp, #0xAC] // [V02 loc0]
cbnz w0, G_M7339_IG75
- ldr x0, [fp, #0x68] // [V51 tmp15]
+ ldr x0, [fp, #0x70] // [V51 tmp15]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movk x1, #0xD1FFAB1E LSL #48
eor x0, x0, x1
lsl x0, x0, #2
cbnz x0, G_M7339_IG69
mov w0, wzr
;; size=52 bbWeight=1 PerfScore 13.00
G_M7339_IG68:
- ldr x25, [sp, #0xE8]
- ldp x23, x24, [sp, #0xD8]
- ldp x21, x22, [sp, #0xC8]
- ldp x19, x20, [sp, #0xB8]
- ldr d8, [sp, #0xB0]
- ldp fp, lr, [sp], #0xF0
+ ldp x25, x26, [sp, #0xF0]
+ ldp x23, x24, [sp, #0xE0]
+ ldp x21, x22, [sp, #0xD0]
+ ldp x19, x20, [sp, #0xC0]
+ ldr d8, [sp, #0xB8]
+ ldp fp, lr, [sp], #0xD1FFAB1E
ret lr
- ;; size=28 bbWeight=1 PerfScore 9.00
+ ;; size=28 bbWeight=1 PerfScore 8.00
G_M7339_IG69:
- ldr x0, [fp, #0x50] // [V05 loc3]
- str x0, [fp, #0x10] // [V34 loc32]
- str wzr, [fp, #0x70] // [V35 loc33]
+ ldr x0, [fp, #0x58] // [V05 loc3]
+ str x0, [fp, #0x18] // [V34 loc32]
+ str wzr, [fp, #0x78] // [V35 loc33]
;; size=12 bbWeight=1 PerfScore 4.00
G_M7339_IG70:
- ldrb w1, [fp, #0x70] // [V35 loc33]
+ ldrb w1, [fp, #0x78] // [V35 loc33]
cbnz w1, G_M7339_IG72
- add x1, fp, #112 // [V35 loc33]
- ldr x0, [fp, #0x50] // [V05 loc3]
+ add x1, fp, #120 // [V35 loc33]
+ ldr x0, [fp, #0x58] // [V05 loc3]
bl System.Threading.Monitor:ReliableEnter(System.Object,byref)
;; size=20 bbWeight=1 PerfScore 6.50
G_M7339_IG71:
- ldr x0, [fp, #0x60] // [V00 this]
+ ldr x0, [fp, #0x68] // [V00 this]
ldr w1, [x0, #0x24]
ldr w2, [x0, #0x1C]
cmp w1, w2
blt G_M7339_IG74
- ldr x1, [fp, #0x50] // [V05 loc3]
+ ldr x1, [fp, #0x58] // [V05 loc3]
ldr x1, [x1, #0x08]
mov x0, x1
ldr x1, [x1]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x30]
blr x1
cmp w0, #0
bgt G_M7339_IG73
b G_M7339_IG74
;; size=60 bbWeight=8 PerfScore 220.00
G_M7339_IG72:
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_M7339_IG73:
- ldr x0, [fp, #0x50] // [V05 loc3]
+ ldr x0, [fp, #0x58] // [V05 loc3]
ldr x0, [x0, #0x08]
mov w1, wzr
ldr x2, [x0]
ldr x2, [x2, #0x60]
ldr x2, [x2, #0x18]
blr x2
- ldr x0, [fp, #0x60] // [V00 this]
+ ldr x0, [fp, #0x68] // [V00 this]
ldr w1, [x0, #0x24]
sub w1, w1, #1
str w1, [x0, #0x24]
b G_M7339_IG71
;; size=48 bbWeight=4 PerfScore 92.00
G_M7339_IG74:
- ldrb w0, [fp, #0x70] // [V35 loc33]
+ ldrb w0, [fp, #0x78] // [V35 loc33]
cbz w0, G_M7339_IG75
- ldr x0, [fp, #0x10] // [V34 loc32]
+ ldr x0, [fp, #0x18] // [V34 loc32]
bl System.Threading.Monitor:Exit(System.Object)
;; size=16 bbWeight=1 PerfScore 6.00
G_M7339_IG75:
mov w0, #1
;; size=4 bbWeight=1 PerfScore 0.50
G_M7339_IG76:
- ldr x25, [sp, #0xE8]
- ldp x23, x24, [sp, #0xD8]
- ldp x21, x22, [sp, #0xC8]
- ldp x19, x20, [sp, #0xB8]
- ldr d8, [sp, #0xB0]
- ldp fp, lr, [sp], #0xF0
+ ldp x25, x26, [sp, #0xF0]
+ ldp x23, x24, [sp, #0xE0]
+ ldp x21, x22, [sp, #0xD0]
+ ldp x19, x20, [sp, #0xC0]
+ ldr d8, [sp, #0xB8]
+ ldp fp, lr, [sp], #0xD1FFAB1E
ret lr
- ;; size=28 bbWeight=1 PerfScore 9.00
+ ;; size=28 bbWeight=1 PerfScore 8.00
G_M7339_IG77:
- ldr w0, [fp, #0x7C] // [V33 loc31]
+ ldr w0, [fp, #0x84] // [V33 loc31]
uxtb w0, w0
;; size=8 bbWeight=1 PerfScore 2.50
G_M7339_IG78:
- ldr x25, [sp, #0xE8]
- ldp x23, x24, [sp, #0xD8]
- ldp x21, x22, [sp, #0xC8]
- ldp x19, x20, [sp, #0xB8]
- ldr d8, [sp, #0xB0]
- ldp fp, lr, [sp], #0xF0
+ ldp x25, x26, [sp, #0xF0]
+ ldp x23, x24, [sp, #0xE0]
+ ldp x21, x22, [sp, #0xD0]
+ ldp x19, x20, [sp, #0xC0]
+ ldr d8, [sp, #0xB8]
+ ldp fp, lr, [sp], #0xD1FFAB1E
ret lr
- ;; size=28 bbWeight=1 PerfScore 9.00
+ ;; size=28 bbWeight=1 PerfScore 8.00
G_M7339_IG79:
stp fp, lr, [sp, #-0x60]!
- str d8, [sp, #0x20]
- stp x19, x20, [sp, #0x28]
- stp x21, x22, [sp, #0x38]
- stp x23, x24, [sp, #0x48]
- str x25, [sp, #0x58]
- add x3, fp, #240
- str x3, [sp, #0x18]
+ str d8, [sp, #0x18]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
+ stp x25, x26, [sp, #0x50]
+ add x3, fp, #0xD1FFAB1E
+ str x3, [sp, #0x10]
;; size=32 bbWeight=0 PerfScore 0.00
G_M7339_IG80:
- ldr x1, [fp, #0x30] // [V20 loc18]
+ ldr x1, [fp, #0x38] // [V20 loc18]
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
cbz x0, G_M7339_IG81
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
add x11, x20, #72
ldr x1, [x11]
blr x1
;; size=64 bbWeight=0 PerfScore 0.00
G_M7339_IG81:
- ldr x25, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- ldr d8, [sp, #0x20]
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldr d8, [sp, #0x18]
ldp fp, lr, [sp], #0x60
ret lr
;; size=28 bbWeight=0 PerfScore 0.00
G_M7339_IG82:
stp fp, lr, [sp, #-0x60]!
- str d8, [sp, #0x20]
- stp x19, x20, [sp, #0x28]
- stp x21, x22, [sp, #0x38]
- stp x23, x24, [sp, #0x48]
- str x25, [sp, #0x58]
- add x3, fp, #240
- str x3, [sp, #0x18]
+ str d8, [sp, #0x18]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
+ stp x25, x26, [sp, #0x50]
+ add x3, fp, #0xD1FFAB1E
+ str x3, [sp, #0x10]
;; size=32 bbWeight=0 PerfScore 0.00
G_M7339_IG83:
- ldrb w0, [fp, #0x90] // [V19 loc17]
+ ldrb w0, [fp, #0x98] // [V19 loc17]
cbz w0, G_M7339_IG84
- ldr x0, [fp, #0x38] // [V18 loc16]
+ ldr x0, [fp, #0x40] // [V18 loc16]
bl System.Threading.Monitor:Exit(System.Object)
;; size=16 bbWeight=0 PerfScore 0.00
G_M7339_IG84:
- ldr x25, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- ldr d8, [sp, #0x20]
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldr d8, [sp, #0x18]
ldp fp, lr, [sp], #0x60
ret lr
;; size=28 bbWeight=0 PerfScore 0.00
G_M7339_IG85:
stp fp, lr, [sp, #-0x60]!
- str d8, [sp, #0x20]
- stp x19, x20, [sp, #0x28]
- stp x21, x22, [sp, #0x38]
- stp x23, x24, [sp, #0x48]
- str x25, [sp, #0x58]
- add x3, fp, #240
- str x3, [sp, #0x18]
+ str d8, [sp, #0x18]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
+ stp x25, x26, [sp, #0x50]
+ add x3, fp, #0xD1FFAB1E
+ str x3, [sp, #0x10]
;; size=32 bbWeight=0 PerfScore 0.00
G_M7339_IG86:
- ldr x1, [fp, #0x20] // [V27 loc25]
+ ldr x1, [fp, #0x28] // [V27 loc25]
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
cbz x0, G_M7339_IG87
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
add x11, x20, #64
ldr x1, [x11]
blr x1
;; size=64 bbWeight=0 PerfScore 0.00
G_M7339_IG87:
- ldr x25, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- ldr d8, [sp, #0x20]
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldr d8, [sp, #0x18]
ldp fp, lr, [sp], #0x60
ret lr
;; size=28 bbWeight=0 PerfScore 0.00
G_M7339_IG88:
stp fp, lr, [sp, #-0x60]!
- str d8, [sp, #0x20]
- stp x19, x20, [sp, #0x28]
- stp x21, x22, [sp, #0x38]
- stp x23, x24, [sp, #0x48]
- str x25, [sp, #0x58]
- add x3, fp, #240
- str x3, [sp, #0x18]
+ str d8, [sp, #0x18]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
+ stp x25, x26, [sp, #0x50]
+ add x3, fp, #0xD1FFAB1E
+ str x3, [sp, #0x10]
;; size=32 bbWeight=0 PerfScore 0.00
G_M7339_IG89:
- ldrb w0, [fp, #0x88] // [V26 loc24]
+ ldrb w0, [fp, #0x90] // [V26 loc24]
cbz w0, G_M7339_IG90
- ldr x0, [fp, #0x28] // [V25 loc23]
+ ldr x0, [fp, #0x30] // [V25 loc23]
bl System.Threading.Monitor:Exit(System.Object)
;; size=16 bbWeight=0 PerfScore 0.00
G_M7339_IG90:
- ldr x25, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- ldr d8, [sp, #0x20]
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldr d8, [sp, #0x18]
ldp fp, lr, [sp], #0x60
ret lr
;; size=28 bbWeight=0 PerfScore 0.00
G_M7339_IG91:
stp fp, lr, [sp, #-0x60]!
- str d8, [sp, #0x20]
- stp x19, x20, [sp, #0x28]
- stp x21, x22, [sp, #0x38]
- stp x23, x24, [sp, #0x48]
- str x25, [sp, #0x58]
- add x3, fp, #240
- str x3, [sp, #0x18]
+ str d8, [sp, #0x18]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
+ stp x25, x26, [sp, #0x50]
+ add x3, fp, #0xD1FFAB1E
+ str x3, [sp, #0x10]
;; size=32 bbWeight=0 PerfScore 0.00
G_M7339_IG92:
- ldrb w0, [fp, #0x80] // [V32 loc30]
+ ldrb w0, [fp, #0x88] // [V32 loc30]
cbz w0, G_M7339_IG93
- ldr x0, [fp, #0x18] // [V31 loc29]
+ ldr x0, [fp, #0x20] // [V31 loc29]
bl System.Threading.Monitor:Exit(System.Object)
;; size=16 bbWeight=0 PerfScore 0.00
G_M7339_IG93:
- ldr x25, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- ldr d8, [sp, #0x20]
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldr d8, [sp, #0x18]
ldp fp, lr, [sp], #0x60
ret lr
;; size=28 bbWeight=0 PerfScore 0.00
G_M7339_IG94:
stp fp, lr, [sp, #-0x60]!
- str d8, [sp, #0x20]
- stp x19, x20, [sp, #0x28]
- stp x21, x22, [sp, #0x38]
- stp x23, x24, [sp, #0x48]
- str x25, [sp, #0x58]
- add x3, fp, #240
- str x3, [sp, #0x18]
+ str d8, [sp, #0x18]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
+ stp x25, x26, [sp, #0x50]
+ add x3, fp, #0xD1FFAB1E
+ str x3, [sp, #0x10]
;; size=32 bbWeight=1 PerfScore 7.50
G_M7339_IG95:
- ldr x1, [fp, #0x40] // [V14 loc12]
+ ldr x1, [fp, #0x48] // [V14 loc12]
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
cbz x0, G_M7339_IG96
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
add x11, x20, #80
ldr x1, [x11]
blr x1
;; size=64 bbWeight=1 PerfScore 16.00
G_M7339_IG96:
- ldr x25, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- ldr d8, [sp, #0x20]
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldr d8, [sp, #0x18]
ldp fp, lr, [sp], #0x60
ret lr
- ;; size=28 bbWeight=1 PerfScore 17.00
+ ;; size=28 bbWeight=1 PerfScore 18.00
G_M7339_IG97:
stp fp, lr, [sp, #-0x60]!
- str d8, [sp, #0x20]
- stp x19, x20, [sp, #0x28]
- stp x21, x22, [sp, #0x38]
- stp x23, x24, [sp, #0x48]
- str x25, [sp, #0x58]
- add x3, fp, #240
- str x3, [sp, #0x18]
+ str d8, [sp, #0x18]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
+ stp x25, x26, [sp, #0x50]
+ add x3, fp, #0xD1FFAB1E
+ str x3, [sp, #0x10]
;; size=32 bbWeight=1 PerfScore 7.50
G_M7339_IG98:
- ldrb w0, [fp, #0x98] // [V13 loc11]
+ ldrb w0, [fp, #0xA0] // [V13 loc11]
cbz w0, G_M7339_IG99
- ldr x0, [fp, #0x48] // [V12 loc10]
+ ldr x0, [fp, #0x50] // [V12 loc10]
bl System.Threading.Monitor:Exit(System.Object)
;; size=16 bbWeight=1 PerfScore 6.00
G_M7339_IG99:
- ldr x25, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- ldr d8, [sp, #0x20]
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldr d8, [sp, #0x18]
ldp fp, lr, [sp], #0x60
ret lr
- ;; size=28 bbWeight=1 PerfScore 17.00
+ ;; size=28 bbWeight=1 PerfScore 18.00
G_M7339_IG100:
stp fp, lr, [sp, #-0x60]!
- str d8, [sp, #0x20]
- stp x19, x20, [sp, #0x28]
- stp x21, x22, [sp, #0x38]
- stp x23, x24, [sp, #0x48]
- str x25, [sp, #0x58]
- add x3, fp, #240
- str x3, [sp, #0x18]
+ str d8, [sp, #0x18]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
+ stp x25, x26, [sp, #0x50]
+ add x3, fp, #0xD1FFAB1E
+ str x3, [sp, #0x10]
;; size=32 bbWeight=0 PerfScore 0.00
G_M7339_IG101:
- ldrb w0, [fp, #0x70] // [V35 loc33]
+ ldrb w0, [fp, #0x78] // [V35 loc33]
cbz w0, G_M7339_IG102
- ldr x0, [fp, #0x10] // [V34 loc32]
+ ldr x0, [fp, #0x18] // [V34 loc32]
bl System.Threading.Monitor:Exit(System.Object)
;; size=16 bbWeight=0 PerfScore 0.00
G_M7339_IG102:
- ldr x25, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- ldr d8, [sp, #0x20]
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldr d8, [sp, #0x18]
ldp fp, lr, [sp], #0x60
ret lr
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2980, prolog size 44, PerfScore 8304.50, instruction count 745, allocated bytes for code 2980 (MethodHash=bd08e354) for method System.Net.CookieContainer:AgeCookies(System.String):ubyte:this (FullOpts)
+; Total bytes of code 2956, prolog size 44, PerfScore 8293.50, instruction count 739, allocated bytes for code 2956 (MethodHash=bd08e354) for method System.Net.CookieContainer:AgeCookies(System.String):ubyte:this (FullOpts)
-24 (-0.80 % of base) - System.Threading.Tasks.Dataflow.TransformBlock`2[double,System.Nullable`1[int]]:.ctor(System.Func`2[double,System.Nullable`1[int]],System.Func`2[double,System.Threading.Tasks.Task`1[System.Nullable`1[int]]],System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions):this
; Assembly listing for method System.Threading.Tasks.Dataflow.TransformBlock`2[double,System.Nullable`1[int]]:.ctor(System.Func`2[double,System.Nullable`1[int]],System.Func`2[double,System.Threading.Tasks.Task`1[System.Nullable`1[int]]],System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions):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; 60 single block inlinees; 20 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 21, 16 ) ref -> x19 this class-hnd single-def <System.Threading.Tasks.Dataflow.TransformBlock`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01,T22] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Func`2[double,System.Nullable`1[int]]>
; V02 arg2 [V02,T23] ( 3, 3 ) ref -> x22 class-hnd single-def <System.Func`2[double,System.Threading.Tasks.Task`1[System.Nullable`1[int]]]>
; V03 arg3 [V03,T01] ( 16, 12.50) ref -> x20 class-hnd <System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions>
; V04 loc0 [V04,T09] ( 9, 7.50) ref -> x23 class-hnd exact single-def <System.Threading.Tasks.Dataflow.TransformBlock`2+<>c__DisplayClass9_0[double,System.Nullable`1[int]]>
-; V05 loc1 [V05,T67] ( 3, 2.50) ref -> x21 class-hnd <System.Action`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]],int]>
+; V05 loc1 [V05,T68] ( 3, 2.50) ref -> x21 class-hnd <System.Action`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]],int]>
; V06 loc2 [V06,T24] ( 7, 4.50) ref -> x22 class-hnd exact single-def <System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Threading.Tasks.Dataflow.TransformBlock`2+<>c__DisplayClass9_0[double,System.Nullable`1[int]]>
-; V09 tmp2 [V09,T31] ( 2, 4 ) ref -> x24 class-hnd single-def "dup spill" <System.Action`1[System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]]]>
+; V09 tmp2 [V09,T32] ( 2, 4 ) ref -> x24 class-hnd single-def "dup spill" <System.Action`1[System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]]]>
;* V10 tmp3 [V10 ] ( 0, 0 ) ref -> zero-ref single-def
;* V11 tmp4 [V11 ] ( 0, 0 ) ref -> zero-ref single-def
;* V12 tmp5 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
-; V13 tmp6 [V13,T43] ( 4, 3.50) ref -> x24
+; V13 tmp6 [V13,T44] ( 4, 3.50) ref -> x24
; V14 tmp7 [V14,T12] ( 3, 6 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Dataflow.Internal.SourceCore`1[System.Nullable`1[int]]>
-; V15 tmp8 [V15,T27] ( 4, 4 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Collections.Generic.KeyValuePair`2[double,long]]>
+; V15 tmp8 [V15,T28] ( 4, 4 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Collections.Generic.KeyValuePair`2[double,long]]>
; V16 tmp9 [V16,T03] ( 11, 11 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Dataflow.Internal.TargetCore`1[double]>
-; V17 tmp10 [V17,T32] ( 2, 4 ) ref -> x23 class-hnd single-def "dup spill" <System.Action`2[System.Threading.Tasks.Task,System.Object]>
+; V17 tmp10 [V17,T33] ( 2, 4 ) ref -> x23 class-hnd single-def "dup spill" <System.Action`2[System.Threading.Tasks.Task,System.Object]>
; V18 tmp11 [V18,T07] ( 4, 8 ) ref -> x21 class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
;* V19 tmp12 [V19 ] ( 0, 0 ) ref -> zero-ref single-def
; V20 tmp13 [V20,T25] ( 5, 4.50) ref -> x23
-; V21 tmp14 [V21,T33] ( 2, 4 ) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.Dataflow.Internal.SourceCore`1[System.Nullable`1[int]]>
+; V21 tmp14 [V21,T34] ( 2, 4 ) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.Dataflow.Internal.SourceCore`1[System.Nullable`1[int]]>
;* V22 tmp15 [V22 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
;* V23 tmp16 [V23 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V24 tmp17 [V24,T34] ( 2, 4 ) ref -> x23 class-hnd single-def "dup spill" <System.Action`2[System.Threading.Tasks.Task,System.Object]>
+; V24 tmp17 [V24,T35] ( 2, 4 ) ref -> x23 class-hnd single-def "dup spill" <System.Action`2[System.Threading.Tasks.Task,System.Object]>
; V25 tmp18 [V25,T08] ( 4, 8 ) ref -> x21 class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
;* V26 tmp19 [V26 ] ( 0, 0 ) ref -> zero-ref single-def
; V27 tmp20 [V27,T26] ( 5, 4.50) ref -> x23
;* V28 tmp21 [V28 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
;* V29 tmp22 [V29 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V30 tmp23 [V30 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-; V31 tmp24 [V31,T35] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
-; V32 tmp25 [V32,T36] ( 2, 4 ) ref -> x23 class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
+; V31 tmp24 [V31,T36] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
+; V32 tmp25 [V32,T37] ( 2, 4 ) ref -> x23 class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
;* V33 tmp26 [V33 ] ( 0, 0 ) struct ( 8) zero-ref <System.Threading.CancellationToken>
;* V34 tmp27 [V34 ] ( 0, 0 ) ref -> zero-ref single-def
-; V35 tmp28 [V35,T44] ( 4, 3.50) ref -> x2
+; V35 tmp28 [V35,T45] ( 4, 3.50) ref -> x2
; V36 tmp29 [V36,T13] ( 5, 5 ) ref -> x2 class-hnd exact single-def "NewObj constructor temp" <System.Action`2[System.Object,System.Threading.CancellationToken]>
; V37 tmp30 [V37,T14] ( 5, 5 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Action`2[System.Threading.Tasks.Task,System.Object]>
; V38 tmp31 [V38,T15] ( 5, 5 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Action`2[System.Threading.Tasks.Task,System.Object]>
-; V39 tmp32 [V39,T28] ( 4, 4 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Collections.Generic.KeyValuePair`2[double,long]]>
+; V39 tmp32 [V39,T29] ( 4, 4 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Collections.Generic.KeyValuePair`2[double,long]]>
; V40 tmp33 [V40,T04] ( 11, 11 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Dataflow.Internal.TargetCore`1[double]>
-; V41 tmp34 [V41,T72] ( 2, 2 ) ref -> x21 class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Nullable`1[int]]>
+; V41 tmp34 [V41,T73] ( 2, 2 ) ref -> x21 class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Nullable`1[int]]>
;* V42 tmp35 [V42 ] ( 0, 0 ) ref -> zero-ref single-def
;* V43 tmp36 [V43 ] ( 0, 0 ) ref -> zero-ref single-def
-; V44 tmp37 [V44,T68] ( 4, 2 ) ref -> x21
+; V44 tmp37 [V44,T69] ( 4, 2 ) ref -> x21
; V45 tmp38 [V45,T16] ( 5, 5 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1[System.Nullable`1[int]]>
; V46 tmp39 [V46,T17] ( 5, 5 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Action`2[System.Object,System.Nullable`1[int]]>
; V47 tmp40 [V47,T18] ( 5, 5 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]]]>
-; V48 tmp41 [V48,T73] ( 2, 2 ) ref -> x21 class-hnd single-def "dup spill" <System.Action`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]],int]>
-; V49 tmp42 [V49,T69] ( 4, 2 ) ref -> x21
+; V48 tmp41 [V48,T74] ( 2, 2 ) ref -> x21 class-hnd single-def "dup spill" <System.Action`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]],int]>
+; V49 tmp42 [V49,T70] ( 4, 2 ) ref -> x21
; V50 tmp43 [V50,T19] ( 5, 5 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Action`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]],int]>
;* V51 tmp44 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-; V52 tmp45 [V52,T97] ( 3, 0 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
-; V53 tmp46 [V53,T98] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
-; V54 tmp47 [V54,T45] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]>
-; V55 tmp48 [V55,T46] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]>
-;* V56 tmp49 [V56,T96] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V57 tmp50 [V57,T47] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]>
-; V58 tmp51 [V58,T48] ( 3, 3 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Dictionary`2[long,System.Collections.Generic.KeyValuePair`2[ubyte,System.Nullable`1[int]]]>
-; V59 tmp52 [V59,T49] ( 3, 3 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
-; V60 tmp53 [V60,T74] ( 2, 2 ) ref -> x24 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1[System.Nullable`1[int]]>
+; V52 tmp45 [V52,T98] ( 3, 0 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
+; V53 tmp46 [V53,T99] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
+; V54 tmp47 [V54,T46] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]>
+; V55 tmp48 [V55,T47] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]>
+;* V56 tmp49 [V56,T97] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V57 tmp50 [V57,T48] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]>
+; V58 tmp51 [V58,T49] ( 3, 3 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Dictionary`2[long,System.Collections.Generic.KeyValuePair`2[ubyte,System.Nullable`1[int]]]>
+; V59 tmp52 [V59,T50] ( 3, 3 ) ref -> x26 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
+; V60 tmp53 [V60,T75] ( 2, 2 ) ref -> x25 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1[System.Nullable`1[int]]>
;* V61 tmp54 [V61 ] ( 0, 0 ) ref -> zero-ref single-def
-; V62 tmp55 [V62,T50] ( 3, 3 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1[System.Collections.Generic.KeyValuePair`2[double,long]]>
-; V63 tmp56 [V63,T80] ( 3, 1.50) ref -> x21 class-hnd "Inline stloc first use temp" <System.Collections.Concurrent.IProducerConsumerQueue`1[System.Collections.Generic.KeyValuePair`2[double,long]]>
+; V62 tmp55 [V62,T51] ( 3, 3 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1[System.Collections.Generic.KeyValuePair`2[double,long]]>
+; V63 tmp56 [V63,T81] ( 3, 1.50) ref -> x24 class-hnd "Inline stloc first use temp" <System.Collections.Concurrent.IProducerConsumerQueue`1[System.Collections.Generic.KeyValuePair`2[double,long]]>
;* V64 tmp57 [V64 ] ( 0, 0 ) ref -> zero-ref
;* V65 tmp58 [V65 ] ( 0, 0 ) ref -> zero-ref
-; V66 tmp59 [V66,T29] ( 4, 4 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Dataflow.Internal.BoundingStateWithPostponed`1[double]>
-; V67 tmp60 [V67,T51] ( 3, 3 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Concurrent.MultiProducerMultiConsumerQueue`1[System.Collections.Generic.KeyValuePair`2[double,long]]>
-; V68 tmp61 [V68,T52] ( 3, 3 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
+; V66 tmp59 [V66,T30] ( 4, 4 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Dataflow.Internal.BoundingStateWithPostponed`1[double]>
+; V67 tmp60 [V67,T52] ( 3, 3 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Concurrent.MultiProducerMultiConsumerQueue`1[System.Collections.Generic.KeyValuePair`2[double,long]]>
+; V68 tmp61 [V68,T53] ( 3, 3 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
;* V69 tmp62 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions>
-;* V70 tmp63 [V70,T90] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions>
-; V71 tmp64 [V71,T53] ( 3, 3 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Dataflow.Internal.QueuedMap`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Threading.Tasks.Dataflow.DataflowMessageHeader]>
-; V72 tmp65 [V72,T78] ( 2, 2 ) int -> x21 "Inlining Arg"
-; V73 tmp66 [V73,T54] ( 3, 3 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
-; V74 tmp67 [V74,T75] ( 2, 2 ) ref -> x24 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1[System.Nullable`1[int]]>
+;* V70 tmp63 [V70,T91] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions>
+; V71 tmp64 [V71,T54] ( 3, 3 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Dataflow.Internal.QueuedMap`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Threading.Tasks.Dataflow.DataflowMessageHeader]>
+; V72 tmp65 [V72,T79] ( 2, 2 ) int -> x24 "Inlining Arg"
+; V73 tmp66 [V73,T55] ( 3, 3 ) ref -> x26 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
+; V74 tmp67 [V74,T76] ( 2, 2 ) ref -> x25 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1[System.Nullable`1[int]]>
;* V75 tmp68 [V75 ] ( 0, 0 ) ref -> zero-ref single-def
-; V76 tmp69 [V76,T55] ( 3, 3 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1[System.Collections.Generic.KeyValuePair`2[double,long]]>
-; V77 tmp70 [V77,T81] ( 3, 1.50) ref -> x21 class-hnd "Inline stloc first use temp" <System.Collections.Concurrent.IProducerConsumerQueue`1[System.Collections.Generic.KeyValuePair`2[double,long]]>
+; V76 tmp69 [V76,T56] ( 3, 3 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1[System.Collections.Generic.KeyValuePair`2[double,long]]>
+; V77 tmp70 [V77,T82] ( 3, 1.50) ref -> x24 class-hnd "Inline stloc first use temp" <System.Collections.Concurrent.IProducerConsumerQueue`1[System.Collections.Generic.KeyValuePair`2[double,long]]>
;* V78 tmp71 [V78 ] ( 0, 0 ) ref -> zero-ref
;* V79 tmp72 [V79 ] ( 0, 0 ) ref -> zero-ref
-; V80 tmp73 [V80,T30] ( 4, 4 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Dataflow.Internal.BoundingStateWithPostponed`1[double]>
-; V81 tmp74 [V81,T56] ( 3, 3 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Concurrent.MultiProducerMultiConsumerQueue`1[System.Collections.Generic.KeyValuePair`2[double,long]]>
-; V82 tmp75 [V82,T57] ( 3, 3 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
+; V80 tmp73 [V80,T31] ( 4, 4 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Dataflow.Internal.BoundingStateWithPostponed`1[double]>
+; V81 tmp74 [V81,T57] ( 3, 3 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Concurrent.MultiProducerMultiConsumerQueue`1[System.Collections.Generic.KeyValuePair`2[double,long]]>
+; V82 tmp75 [V82,T58] ( 3, 3 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
;* V83 tmp76 [V83 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions>
-;* V84 tmp77 [V84,T91] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions>
-; V85 tmp78 [V85,T58] ( 3, 3 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Dataflow.Internal.QueuedMap`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Threading.Tasks.Dataflow.DataflowMessageHeader]>
-; V86 tmp79 [V86,T79] ( 2, 2 ) int -> x21 "Inlining Arg"
+;* V84 tmp77 [V84,T92] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions>
+; V85 tmp78 [V85,T59] ( 3, 3 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Dataflow.Internal.QueuedMap`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Threading.Tasks.Dataflow.DataflowMessageHeader]>
+; V86 tmp79 [V86,T80] ( 2, 2 ) int -> x24 "Inlining Arg"
;* V87 tmp80 [V87 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.Dataflow.Internal.TargetCore`1[double]>
;* V88 tmp81 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
-; V89 tmp82 [V89,T59] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]>
+; V89 tmp82 [V89,T60] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]>
;* V90 tmp83 [V90 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V91 tmp84 [V91,T37] ( 2, 4 ) ref -> x26 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
+; V91 tmp84 [V91,T38] ( 2, 4 ) ref -> x26 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
;* V92 tmp85 [V92 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.ContinuationTaskFromTask>
; V93 tmp86 [V93 ] ( 2, 2 ) int -> [fp+0x38] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V94 tmp87 [V94 ] ( 2, 2 ) int -> [fp+0x30] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V95 tmp88 [V95,T05] ( 6, 11 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.ContinuationTaskFromTask>
;* V96 tmp89 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.ContinuationTaskFromTask>
; V97 tmp90 [V97,T10] ( 4, 7 ) int -> x28 "Inlining Arg"
;* V98 tmp91 [V98 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
; V99 tmp92 [V99,T20] ( 4, 5 ) ref -> [fp+0x10] class-hnd "impAppendStmt" <System.Threading.Tasks.Task>
-; V100 tmp93 [V100,T41] ( 2, 4 ) int -> [fp+0x2C] spill-single-def "Inlining Arg"
+; V100 tmp93 [V100,T42] ( 2, 4 ) int -> [fp+0x2C] spill-single-def "Inlining Arg"
;* V101 tmp94 [V101 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
;* V102 tmp95 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.Dataflow.Internal.SourceCore`1[System.Nullable`1[int]]>
;* V103 tmp96 [V103 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
-; V104 tmp97 [V104,T60] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]>
+; V104 tmp97 [V104,T61] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]>
;* V105 tmp98 [V105 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V106 tmp99 [V106,T38] ( 2, 4 ) ref -> x25 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
+; V106 tmp99 [V106,T39] ( 2, 4 ) ref -> x25 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.ThreadPoolTaskScheduler>
;* V107 tmp100 [V107 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.ContinuationTaskFromTask>
; V108 tmp101 [V108 ] ( 2, 2 ) int -> [fp+0x20] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V109 tmp102 [V109 ] ( 2, 2 ) int -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V110 tmp103 [V110,T06] ( 6, 11 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.ContinuationTaskFromTask>
;* V111 tmp104 [V111 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.ContinuationTaskFromTask>
; V112 tmp105 [V112,T11] ( 4, 7 ) int -> x26 "Inlining Arg"
;* V113 tmp106 [V113 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
; V114 tmp107 [V114,T21] ( 4, 5 ) ref -> x28 class-hnd "impAppendStmt" <System.Threading.Tasks.Task>
-; V115 tmp108 [V115,T42] ( 2, 4 ) int -> x27 "Inlining Arg"
+; V115 tmp108 [V115,T43] ( 2, 4 ) int -> x27 "Inlining Arg"
;* V116 tmp109 [V116 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
;* V117 tmp110 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.Dataflow.Internal.SourceCore`1[System.Nullable`1[int]]>
;* V118 tmp111 [V118 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult]>
-; V119 tmp112 [V119,T61] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]>
-; V120 tmp113 [V120,T76] ( 2, 2 ) ref -> x20 class-hnd exact single-def "impAppendStmt" <System.String>
-;* V121 tmp114 [V121,T89] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V122 tmp115 [V122,T85] ( 3, 1.50) int -> x3 "Inline return value spill temp"
-; V123 tmp116 [V123,T82] ( 3, 1.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
-;* V124 tmp117 [V124,T92] ( 0, 0 ) ref -> zero-ref single-def "field V22._source (fldOffset=0x0)" P-INDEP
-;* V125 tmp118 [V125,T93] ( 0, 0 ) ref -> zero-ref single-def "field V28._source (fldOffset=0x0)" P-INDEP
-; V126 tmp119 [V126,T77] ( 2, 2 ) ref -> x21 single-def "field V30._source (fldOffset=0x0)" P-INDEP
+; V119 tmp112 [V119,T62] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]>
+; V120 tmp113 [V120,T77] ( 2, 2 ) ref -> x20 class-hnd exact single-def "impAppendStmt" <System.String>
+;* V121 tmp114 [V121,T90] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V122 tmp115 [V122,T86] ( 3, 1.50) int -> x3 "Inline return value spill temp"
+; V123 tmp116 [V123,T83] ( 3, 1.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
+;* V124 tmp117 [V124,T93] ( 0, 0 ) ref -> zero-ref single-def "field V22._source (fldOffset=0x0)" P-INDEP
+;* V125 tmp118 [V125,T94] ( 0, 0 ) ref -> zero-ref single-def "field V28._source (fldOffset=0x0)" P-INDEP
+; V126 tmp119 [V126,T78] ( 2, 2 ) ref -> x21 single-def "field V30._source (fldOffset=0x0)" P-INDEP
;* V127 tmp120 [V127 ] ( 0, 0 ) ref -> zero-ref single-def "field V33._source (fldOffset=0x0)" P-INDEP
;* V128 tmp121 [V128 ] ( 0, 0 ) ref -> zero-ref single-def "field V90._source (fldOffset=0x0)" P-INDEP
;* V129 tmp122 [V129 ] ( 0, 0 ) ref -> zero-ref single-def "field V98._source (fldOffset=0x0)" P-INDEP
-;* V130 tmp123 [V130,T94] ( 0, 0 ) ref -> zero-ref single-def "field V101._source (fldOffset=0x0)" P-INDEP
+;* V130 tmp123 [V130,T95] ( 0, 0 ) ref -> zero-ref single-def "field V101._source (fldOffset=0x0)" P-INDEP
;* V131 tmp124 [V131 ] ( 0, 0 ) ref -> zero-ref single-def "field V105._source (fldOffset=0x0)" P-INDEP
;* V132 tmp125 [V132 ] ( 0, 0 ) ref -> zero-ref single-def "field V113._source (fldOffset=0x0)" P-INDEP
-;* V133 tmp126 [V133,T95] ( 0, 0 ) ref -> zero-ref single-def "field V116._source (fldOffset=0x0)" P-INDEP
-; V134 tmp127 [V134,T39] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V135 tmp128 [V135,T40] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+;* V133 tmp126 [V133,T96] ( 0, 0 ) ref -> zero-ref single-def "field V116._source (fldOffset=0x0)" P-INDEP
+; V134 tmp127 [V134,T40] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+; V135 tmp128 [V135,T41] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
;* V136 tmp129 [V136 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V137 tmp130 [V137,T99] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V138 tmp131 [V138,T100] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-;* V139 cse0 [V139,T88] ( 0, 0 ) long -> zero-ref multi-def "CSE #04: aggressive"
-; V140 cse1 [V140,T86] ( 3, 1.50) int -> x21 "CSE #14: conservative"
-; V141 cse2 [V141,T87] ( 3, 1.50) int -> x21 "CSE #21: conservative"
-; V142 cse3 [V142,T62] ( 3, 3 ) ref -> x25 "CSE #25: conservative"
-; V143 cse4 [V143,T83] ( 2, 1 ) ref -> x0 "CSE #12: conservative"
-; V144 cse5 [V144,T84] ( 2, 1 ) ref -> x0 "CSE #20: conservative"
+; V137 tmp130 [V137,T100] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V138 tmp131 [V138,T101] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+;* V139 cse0 [V139,T89] ( 0, 0 ) long -> zero-ref multi-def "CSE #04: aggressive"
+; V140 cse1 [V140,T87] ( 3, 1.50) int -> x24 "CSE #14: conservative"
+; V141 cse2 [V141,T88] ( 3, 1.50) int -> x24 "CSE #20: conservative"
+; V142 cse3 [V142,T63] ( 3, 3 ) ref -> x25 "CSE #24: conservative"
+; V143 cse4 [V143,T84] ( 2, 1 ) ref -> x0 "CSE #13: conservative"
+; V144 cse5 [V144,T85] ( 2, 1 ) ref -> x0 "CSE #19: conservative"
; V145 cse6 [V145,T02] ( 20, 12.50) long -> x22 multi-def "CSE #05: aggressive"
-; V146 rat0 [V146,T70] ( 3, 2 ) byref -> x2 "TLS field access"
-; V147 rat1 [V147,T63] ( 3, 3 ) long -> x2 "TLS access"
-; V148 rat2 [V148,T64] ( 3, 3 ) long -> x0 "ThreadStaticBlockBase access"
-; V149 rat3 [V149,T71] ( 3, 2 ) byref -> x1 "TLS field access"
-; V150 rat4 [V150,T65] ( 3, 3 ) long -> x0 "TLS access"
-; V151 rat5 [V151,T66] ( 3, 3 ) long -> x0 "ThreadStaticBlockBase access"
+; V146 cse7 [V146,T27] ( 8, 4 ) long -> x21 multi-def "CSE #12: moderate"
+; V147 rat0 [V147,T71] ( 3, 2 ) byref -> x2 "TLS field access"
+; V148 rat1 [V148,T64] ( 3, 3 ) long -> x2 "TLS access"
+; V149 rat2 [V149,T65] ( 3, 3 ) long -> x0 "ThreadStaticBlockBase access"
+; V150 rat3 [V150,T72] ( 3, 2 ) byref -> x1 "TLS field access"
+; V151 rat4 [V151,T66] ( 3, 3 ) long -> x0 "TLS access"
+; V152 rat5 [V152,T67] ( 3, 3 ) long -> x0 "ThreadStaticBlockBase access"
;
; Lcl frame size = 48
G_M20903_IG01:
stp fp, lr, [sp, #-0x90]!
stp x19, x20, [sp, #0x40]
stp x21, x22, [sp, #0x50]
stp x23, x24, [sp, #0x60]
stp x25, x26, [sp, #0x70]
stp x27, x28, [sp, #0x80]
mov fp, sp
mov x19, x0
mov x21, x1
mov x22, x2
mov x20, x3
;; size=44 bbWeight=1 PerfScore 8.50
G_M20903_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
add x14, x23, #16
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #24
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
cbz x20, G_M20903_IG45
ldr x0, [x23, #0x10]
cbnz x0, G_M20903_IG04
;; size=68 bbWeight=1 PerfScore 14.00
G_M20903_IG03:
ldr x0, [x23, #0x18]
cbz x0, G_M20903_IG46
;; size=8 bbWeight=0.50 PerfScore 2.00
G_M20903_IG04:
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions:DefaultOrClone():System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x20, x0
mov x21, xzr
ldr w0, [x20, #0x1C]
cmp w0, #0
ble G_M20903_IG06
;; size=44 bbWeight=1 PerfScore 11.50
G_M20903_IG05:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x22, #0xD1FFAB1E // data for System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]:<>9__9_0
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
ldr x21, [x22]
cbnz x21, G_M20903_IG06
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x21, x0
ldr x15, [x22, #-0x08]
cbz x15, G_M20903_IG50
add x14, x21, #8
bl CORINFO_HELP_ASSIGN_REF
movz x14, #0xD1FFAB1E // code for System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]:<.ctor>b__9_0(System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]],int):this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x21, #0x18]
mov x14, x22
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
;; size=104 bbWeight=0.50 PerfScore 10.75
G_M20903_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
ldr x24, [x22, #0x08]
cbnz x24, G_M20903_IG08
;; size=40 bbWeight=1 PerfScore 8.50
G_M20903_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
ldr x15, [x22, #-0x08]
cbz x15, G_M20903_IG50
add x14, x24, #8
bl CORINFO_HELP_ASSIGN_REF
movz x14, #0xD1FFAB1E // code for System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]:<.ctor>b__9_1(System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]]):this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x24, #0x18]
add x14, x22, #8
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
;; size=64 bbWeight=0.50 PerfScore 6.50
G_M20903_IG08:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x25, x0
mov x1, x19
mov x2, x20
mov x3, x24
mov x4, x21
mov x5, xzr
movz x6, #0xD1FFAB1E // code for System.Threading.Tasks.Dataflow.Internal.SourceCore`1[System.Nullable`1[int]]:.ctor(System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]],System.Threading.Tasks.Dataflow.DataflowBlockOptions,System.Action`1[System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]]],System.Action`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]],int],System.Func`4[System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]],System.Nullable`1[int],System.Collections.Generic.IList`1[System.Nullable`1[int]],int]):this
movk x6, #0xD1FFAB1E LSL #16
movk x6, #0xD1FFAB1E LSL #32
ldr x6, [x6]
blr x6
add x14, x19, #24
mov x15, x25
bl CORINFO_HELP_ASSIGN_REF
ldr w0, [x20, #0x30]
cmn w0, #1
beq G_M20903_IG10
;; size=84 bbWeight=1 PerfScore 17.50
G_M20903_IG09:
ldr w0, [x20, #0x30]
cmp w0, #1
ble G_M20903_IG12
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M20903_IG10:
ldrb w0, [x20, #0x20]
cbz w0, G_M20903_IG12
ldr x21, [x22, #0x10]
cbnz x21, G_M20903_IG11
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x21, x0
ldr x15, [x22, #-0x08]
cbz x15, G_M20903_IG50
add x14, x21, #8
bl CORINFO_HELP_ASSIGN_REF
movz x14, #0xD1FFAB1E // code for System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]:<.ctor>b__9_2(System.Object,System.Nullable`1[int]):this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x21, #0x18]
add x14, x22, #16
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
;; size=80 bbWeight=0.50 PerfScore 10.50
G_M20903_IG11:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x25, x0
mov w1, wzr
mov x2, xzr
movz x3, #0xD1FFAB1E // code for System.Collections.Generic.Dictionary`2[long,System.Collections.Generic.KeyValuePair`2[ubyte,System.Nullable`1[int]]]:.ctor(int,System.Collections.Generic.IEqualityComparer`1[long]):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
add x14, x24, #16
mov x15, x25
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #24
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #16
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
;; size=116 bbWeight=0.50 PerfScore 10.25
G_M20903_IG12:
ldr x0, [x23, #0x10]
cbz x0, G_M20903_IG17
;; size=8 bbWeight=1 PerfScore 4.00
G_M20903_IG13:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ movz x21, #0xD1FFAB1E
+ movk x21, #0xD1FFAB1E LSL #16
+ movk x21, #0xD1FFAB1E LSL #32
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x21, x0
- add x14, x21, #8
+ mov x24, x0
+ add x14, x24, #8
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E // code for System.Threading.Tasks.Dataflow.TransformBlock`2+<>c__DisplayClass9_0[double,System.Nullable`1[int]]:<.ctor>b__3(System.Collections.Generic.KeyValuePair`2[double,long]):this
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- str x0, [x21, #0x18]
+ str x0, [x24, #0x18]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
- ldr x24, [x19, #0x10]
+ ldr x25, [x19, #0x10]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x25, x0
+ mov x26, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
add x14, x0, #52
movz w15, #0xD1FFAB1E
movk w15, #0xD1FFAB1E LSL #16
stlr w15, [x14]
- add x14, x25, #8
+ add x14, x26, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
- mov x15, x25
+ mov x15, x26
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #16
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #40
- mov x15, x21
+ mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #56
- mov x15, x24
+ mov x15, x25
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #32
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
strb wzr, [x23, #0x54]
ldr w0, [x20, #0x30]
cmp w0, #1
beq G_M20903_IG14
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x21, x0
+ mov x24, x0
movz x1, #0xD1FFAB1E // code for System.Collections.Concurrent.ConcurrentQueue`1[System.Collections.Generic.KeyValuePair`2[double,long]]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
b G_M20903_IG15
- ;; size=256 bbWeight=0.50 PerfScore 24.25
+ ;; size=260 bbWeight=0.50 PerfScore 24.50
G_M20903_IG14:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x21, x0
+ mov x24, x0
movz x1, #0xD1FFAB1E // code for System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1[System.Collections.Generic.KeyValuePair`2[double,long]]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- ;; size=40 bbWeight=0.50 PerfScore 4.25
+ ;; size=32 bbWeight=0.50 PerfScore 3.75
G_M20903_IG15:
add x14, x23, #24
- mov x15, x21
+ mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x23, #0x20]
- ldr w21, [x0, #0x1C]
- cmn w21, #1
+ ldr w24, [x0, #0x1C]
+ cmn w24, #1
beq G_M20903_IG16
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ mov x0, x21
bl CORINFO_HELP_NEWSFAST
- mov x24, x0
+ mov x21, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x25, x0
movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Dataflow.Internal.QueuedMap`2[System.__Canon,System.Threading.Tasks.Dataflow.DataflowMessageHeader]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- add x14, x24, #16
+ add x14, x21, #16
mov x15, x25
bl CORINFO_HELP_ASSIGN_REF
- str w21, [x24, #0x08]
+ str w24, [x21, #0x08]
add x14, x23, #48
- mov x15, x24
+ mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
- ;; size=116 bbWeight=0.50 PerfScore 13.00
+ ;; size=108 bbWeight=0.50 PerfScore 12.50
G_M20903_IG16:
add x14, x19, #8
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
b G_M20903_IG21
;; size=16 bbWeight=0.50 PerfScore 1.50
G_M20903_IG17:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ movz x21, #0xD1FFAB1E
+ movk x21, #0xD1FFAB1E LSL #16
+ movk x21, #0xD1FFAB1E LSL #32
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x21, x0
- add x14, x21, #8
+ mov x24, x0
+ add x14, x24, #8
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E // code for System.Threading.Tasks.Dataflow.TransformBlock`2+<>c__DisplayClass9_0[double,System.Nullable`1[int]]:<.ctor>b__4(System.Collections.Generic.KeyValuePair`2[double,long]):this
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- str x0, [x21, #0x18]
+ str x0, [x24, #0x18]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
- ldr x24, [x19, #0x10]
+ ldr x25, [x19, #0x10]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x25, x0
+ mov x26, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
add x14, x0, #52
movz w15, #0xD1FFAB1E
movk w15, #0xD1FFAB1E LSL #16
stlr w15, [x14]
- add x14, x25, #8
+ add x14, x26, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
- mov x15, x25
+ mov x15, x26
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #16
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #40
- mov x15, x21
+ mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #56
- mov x15, x24
+ mov x15, x25
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #32
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
mov w0, #1
strb w0, [x23, #0x54]
ldr w0, [x20, #0x30]
cmp w0, #1
beq G_M20903_IG18
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x21, x0
+ mov x24, x0
movz x1, #0xD1FFAB1E // code for System.Collections.Concurrent.ConcurrentQueue`1[System.Collections.Generic.KeyValuePair`2[double,long]]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
b G_M20903_IG19
- ;; size=260 bbWeight=0.50 PerfScore 24.50
+ ;; size=264 bbWeight=0.50 PerfScore 24.75
G_M20903_IG18:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x21, x0
+ mov x24, x0
movz x1, #0xD1FFAB1E // code for System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1[System.Collections.Generic.KeyValuePair`2[double,long]]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- ;; size=40 bbWeight=0.50 PerfScore 4.25
+ ;; size=32 bbWeight=0.50 PerfScore 3.75
G_M20903_IG19:
add x14, x23, #24
- mov x15, x21
+ mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x23, #0x20]
- ldr w21, [x0, #0x1C]
- cmn w21, #1
+ ldr w24, [x0, #0x1C]
+ cmn w24, #1
beq G_M20903_IG20
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ mov x0, x21
bl CORINFO_HELP_NEWSFAST
- mov x24, x0
+ mov x21, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x25, x0
movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Dataflow.Internal.QueuedMap`2[System.__Canon,System.Threading.Tasks.Dataflow.DataflowMessageHeader]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- add x14, x24, #16
+ add x14, x21, #16
mov x15, x25
bl CORINFO_HELP_ASSIGN_REF
- str w21, [x24, #0x08]
+ str w24, [x21, #0x08]
add x14, x23, #48
- mov x15, x24
+ mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
- ;; size=116 bbWeight=0.50 PerfScore 13.00
+ ;; size=108 bbWeight=0.50 PerfScore 12.50
G_M20903_IG20:
add x14, x19, #8
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M20903_IG21:
ldr x0, [x19, #0x08]
ldr x0, [x0, #0x08]
ldr x21, [x0, #0x08]
ldr x23, [x22, #0x18]
cbnz x23, G_M20903_IG23
;; size=20 bbWeight=1 PerfScore 13.00
G_M20903_IG22:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
ldr x15, [x22, #-0x08]
cbz x15, G_M20903_IG50
add x14, x23, #8
bl CORINFO_HELP_ASSIGN_REF
movz x14, #0xD1FFAB1E // code for System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]:<.ctor>b__9_5(System.Threading.Tasks.Task,System.Object):this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x23, #0x18]
add x14, x22, #24
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
;; size=64 bbWeight=0.50 PerfScore 6.50
G_M20903_IG23:
ldr x24, [x19, #0x18]
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x25, [x2]
mov x26, x25
ldrsb wzr, [x21]
cbz x23, G_M20903_IG48
add x2, fp, #48 // [V94 tmp87]
add x1, fp, #56 // [V93 tmp86]
mov w0, #8
movz x3, #0xD1FFAB1E // code for System.Threading.Tasks.Task:CreationOptionsFromContinuationOptions(int,byref,byref)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x27, x0
ldr w28, [fp, #0x38] // [V93 tmp86]
ldr w1, [fp, #0x30] // [V94 tmp87]
str w1, [fp, #0x2C] // [V100 tmp93]
tbnz w28, #2, G_M20903_IG25
;; size=100 bbWeight=1 PerfScore 28.00
G_M20903_IG24:
mov x2, xzr
b G_M20903_IG27
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M20903_IG25:
mrs x2, tpidr_el0
ldr w0, [x2, #0xD1FFAB1E]
cmp w0, #6
blt G_M20903_IG47
ldr x0, [x2, #0xD1FFAB1E]
ldr x0, [x0, #0x30]
cbz x0, G_M20903_IG47
ldr x0, [x0]
add x2, x0, #16
;; size=36 bbWeight=0.50 PerfScore 8.00
G_M20903_IG26:
ldr x2, [x2, #0x50]
;; size=4 bbWeight=0.50 PerfScore 1.50
G_M20903_IG27:
str x2, [fp, #0x10] // [V99 tmp92]
cbz x2, G_M20903_IG29
;; size=8 bbWeight=1 PerfScore 2.00
G_M20903_IG28:
tbz w28, #2, G_M20903_IG29
mov x0, x27
movz x3, #0xD1FFAB1E // code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
add x14, x0, #48
ldr x15, [fp, #0x10] // [V99 tmp92]
bl CORINFO_HELP_ASSIGN_REF
;; size=40 bbWeight=0.50 PerfScore 5.25
G_M20903_IG29:
mov x0, x27
mov x1, x23
mov x2, x24
mov x3, xzr
mov w4, w28
ldr w5, [fp, #0x2C] // [V100 tmp93]
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 x1, x0
mov x0, x27
movz x2, #0xD1FFAB1E // code for System.Threading.Tasks.Task:set_CapturedContext(System.Threading.ExecutionContext):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x27, #56
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
mov x0, x21
mov x1, x27
mov x2, x26
mov x3, xzr
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
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x08]
ldr x21, [x0, #0x08]
ldr x23, [x22, #0x20]
cbnz x23, G_M20903_IG31
;; size=168 bbWeight=1 PerfScore 45.50
G_M20903_IG30:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
ldr x15, [x22, #-0x08]
cbz x15, G_M20903_IG50
add x14, x23, #8
bl CORINFO_HELP_ASSIGN_REF
movz x14, #0xD1FFAB1E // code for System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]:<.ctor>b__9_6(System.Threading.Tasks.Task,System.Object):this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x23, #0x18]
add x14, x22, #32
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
;; size=64 bbWeight=0.50 PerfScore 6.50
G_M20903_IG31:
ldrsb wzr, [x21]
cbz x23, G_M20903_IG48
add x2, fp, #24 // [V109 tmp102]
add x1, fp, #32 // [V108 tmp101]
movz w0, #8
movk w0, #5 LSL #16
movz x3, #0xD1FFAB1E // code for System.Threading.Tasks.Task:CreationOptionsFromContinuationOptions(int,byref,byref)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
ldr w26, [fp, #0x20] // [V108 tmp101]
ldr w27, [fp, #0x18] // [V109 tmp102]
tbnz w26, #2, G_M20903_IG33
;; size=76 bbWeight=1 PerfScore 19.50
G_M20903_IG32:
mov x28, xzr
b G_M20903_IG35
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M20903_IG33:
mrs x0, tpidr_el0
ldr w1, [x0, #0xD1FFAB1E]
cmp w1, #6
blt G_M20903_IG49
ldr x0, [x0, #0xD1FFAB1E]
ldr x0, [x0, #0x30]
cbz x0, G_M20903_IG49
ldr x0, [x0]
add x1, x0, #16
;; size=36 bbWeight=0.50 PerfScore 8.00
G_M20903_IG34:
ldr x28, [x1, #0x50]
;; size=4 bbWeight=0.50 PerfScore 1.50
G_M20903_IG35:
cbz x28, G_M20903_IG37
;; size=4 bbWeight=1 PerfScore 1.00
G_M20903_IG36:
tbz w26, #2, G_M20903_IG37
mov x0, x24
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, x28
bl CORINFO_HELP_ASSIGN_REF
;; size=40 bbWeight=0.50 PerfScore 4.50
G_M20903_IG37:
mov x0, x24
mov x1, x23
mov x2, x19
mov x3, xzr
mov w4, w26
mov w5, w27
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 x1, x0
mov x0, x24
movz x2, #0xD1FFAB1E // code for System.Threading.Tasks.Task:set_CapturedContext(System.Threading.ExecutionContext):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x24, #56
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
mov x0, x21
mov x1, x24
mov x2, x25
mov x3, xzr
movz w4, #8
movk w4, #5 LSL #16
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
ldr x21, [x20, #0x28]
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x08]
ldr x23, [x0, #0x08]
ldr x2, [x22, #0x28]
cbnz x2, G_M20903_IG39
;; size=176 bbWeight=1 PerfScore 47.50
G_M20903_IG38:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x2, x0
ldr x15, [x22, #-0x08]
cbz x15, G_M20903_IG50
add x14, x2, #8
bl CORINFO_HELP_ASSIGN_REF
movz x14, #0xD1FFAB1E // code for System.Threading.Tasks.Dataflow.TransformBlock`2+<>c[double,System.Nullable`1[int]]:<.ctor>b__9_7(System.Object,System.Threading.CancellationToken):this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x2, #0x18]
add x14, x22, #40
mov x15, x2
bl CORINFO_HELP_ASSIGN_REF
;; size=64 bbWeight=0.50 PerfScore 6.50
G_M20903_IG39:
ldr x3, [x19, #0x08]
mov x0, x21
mov x1, x23
movz x4, #0xD1FFAB1E // code for System.Threading.Tasks.Dataflow.Internal.Common:WireCancellationToComplete(System.Threading.CancellationToken,System.Threading.Tasks.Task,System.Action`2[System.Object,System.Threading.CancellationToken],System.Object)
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr w1, [x1]
tbz w1, #0, G_M20903_IG51
;; size=52 bbWeight=1 PerfScore 15.00
G_M20903_IG40:
movz x1, #0xD1FFAB1E // data for System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider:Log
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x22, [x1]
ldrb w1, [x22, #0x9D]
cbz w1, G_M20903_IG44
;; size=24 bbWeight=1 PerfScore 8.50
G_M20903_IG41:
ldrb w1, [x22, #0x9D]
ldr x3, [x22, #0x80]
ldr w2, [x22, #0x98]
mov x0, x22
mov w4, #4
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M20903_IG44
mov x0, x19
mov x1, x20
movz x2, #0xD1FFAB1E // code for System.Threading.Tasks.Dataflow.Internal.Common:GetNameForDebugger(System.Threading.Tasks.Dataflow.IDataflowBlock,System.Threading.Tasks.Dataflow.DataflowBlockOptions):System.String
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x20, x0
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Dataflow.Internal.Common:GetPotentiallyNotSupportedCompletionTask(System.Threading.Tasks.Dataflow.IDataflowBlock):System.Threading.Tasks.Task
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbnz x0, G_M20903_IG42
mov w3, wzr
b G_M20903_IG43
;; size=120 bbWeight=0.50 PerfScore 16.50
G_M20903_IG42:
movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Task:get_Id():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
sxtw w3, w0
;; size=24 bbWeight=0.50 PerfScore 3.00
G_M20903_IG43:
mov x0, x22
mov x2, x20
mov w1, #1
movz x4, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,int):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
;; size=32 bbWeight=0.50 PerfScore 3.50
G_M20903_IG44:
ldp x27, x28, [sp, #0x80]
ldp x25, x26, [sp, #0x70]
ldp x23, x24, [sp, #0x60]
ldp x21, x22, [sp, #0x50]
ldp x19, x20, [sp, #0x40]
ldp fp, lr, [sp], #0x90
ret lr
;; size=28 bbWeight=1 PerfScore 7.00
G_M20903_IG45:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for System.ArgumentNullException:.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_M20903_IG46:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
mov x1, x0
mov x0, x24
movz x2, #0xD1FFAB1E // code for System.ArgumentNullException:.ctor(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x24
bl CORINFO_HELP_THROW
brk_unix #0
;; size=80 bbWeight=0 PerfScore 0.00
G_M20903_IG47:
mov w0, #6
bl CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
mov x2, x0
b G_M20903_IG26
;; size=16 bbWeight=0 PerfScore 0.00
G_M20903_IG48:
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_M20903_IG49:
mov w0, #6
bl CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
mov x1, x0
b G_M20903_IG34
;; size=16 bbWeight=0 PerfScore 0.00
G_M20903_IG50:
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_M20903_IG51:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #124
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M20903_IG40
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2996, prolog size 28, PerfScore 451.75, instruction count 749, allocated bytes for code 2996 (MethodHash=a96dae58) for method System.Threading.Tasks.Dataflow.TransformBlock`2[double,System.Nullable`1[int]]:.ctor(System.Func`2[double,System.Nullable`1[int]],System.Func`2[double,System.Threading.Tasks.Task`1[System.Nullable`1[int]]],System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions):this (FullOpts)
+; Total bytes of code 2972, prolog size 28, PerfScore 450.25, instruction count 743, allocated bytes for code 2972 (MethodHash=a96dae58) for method System.Threading.Tasks.Dataflow.TransformBlock`2[double,System.Nullable`1[int]]:.ctor(System.Func`2[double,System.Nullable`1[int]],System.Func`2[double,System.Threading.Tasks.Task`1[System.Nullable`1[int]]],System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions):this (FullOpts)
-20 (-3.14 % of base) - System.Composition.Hosting.SinglePartExportDescriptorProvider:IsSupportedContract(System.Composition.Hosting.Core.CompositionContract):ubyte:this
; Assembly listing for method System.Composition.Hosting.SinglePartExportDescriptorProvider:IsSupportedContract(System.Composition.Hosting.Core.CompositionContract):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; 13 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 6, 4.50) ref -> x20 this class-hnd single-def <System.Composition.Hosting.SinglePartExportDescriptorProvider>
; V01 arg1 [V01,T00] ( 8, 5.50) ref -> x19 class-hnd single-def <System.Composition.Hosting.Core.CompositionContract>
-; V02 loc0 [V02,T09] ( 4, 2 ) ref -> x0 class-hnd single-def <System.Collections.Generic.Dictionary`2[System.String,System.Object]>
+; V02 loc0 [V02,T10] ( 4, 2 ) ref -> x0 class-hnd single-def <System.Collections.Generic.Dictionary`2[System.String,System.Object]>
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Composition.Hosting.Core.CompositionContract>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T05] ( 4, 4 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.Collections.Generic.KeyValuePair`2[System.String,System.Object],ubyte]>
-; V06 tmp2 [V06,T13] ( 2, 2 ) ref -> x1 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IDictionary`2[System.String,System.Object]>
-; V07 tmp3 [V07,T14] ( 2, 2 ) ref -> x23 class-hnd single-def "dup spill" <System.Func`2[System.Collections.Generic.KeyValuePair`2[System.String,System.Object],System.String]>
-; V08 tmp4 [V08,T15] ( 2, 2 ) ref -> x21 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]>
+; V06 tmp2 [V06,T14] ( 2, 2 ) ref -> x1 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IDictionary`2[System.String,System.Object]>
+; V07 tmp3 [V07,T15] ( 2, 2 ) ref -> x24 class-hnd single-def "dup spill" <System.Func`2[System.Collections.Generic.KeyValuePair`2[System.String,System.Object],System.String]>
+; V08 tmp4 [V08,T16] ( 2, 2 ) ref -> x21 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]>
;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref single-def
-; V10 tmp6 [V10,T10] ( 4, 2 ) ref -> x23
+; V10 tmp6 [V10,T11] ( 4, 2 ) ref -> x24
; V11 tmp7 [V11,T06] ( 4, 4 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.Collections.Generic.KeyValuePair`2[System.String,System.Object],System.Object]>
-; V12 tmp8 [V12,T16] ( 2, 2 ) ref -> x20 class-hnd single-def "impAppendStmt" <System.Type>
-; V13 tmp9 [V13,T17] ( 2, 2 ) ref -> x21 class-hnd exact single-def "impAppendStmt" <System.String>
+; V12 tmp8 [V12,T17] ( 2, 2 ) ref -> x20 class-hnd single-def "impAppendStmt" <System.Type>
+; V13 tmp9 [V13,T18] ( 2, 2 ) ref -> x21 class-hnd exact single-def "impAppendStmt" <System.String>
;* V14 tmp10 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
;* V15 tmp11 [V15 ] ( 0, 0 ) ref -> zero-ref single-def
;* V16 tmp12 [V16 ] ( 0, 0 ) ref -> zero-ref single-def
;* V17 tmp13 [V17 ] ( 0, 0 ) ref -> zero-ref single-def
-; V18 tmp14 [V18,T20] ( 2, 1 ) ref -> x22
+; V18 tmp14 [V18,T21] ( 2, 1 ) ref -> x22
; V19 tmp15 [V19,T07] ( 3, 3 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Composition.Hosting.Core.CompositionContract>
-; V20 tmp16 [V20,T03] ( 5, 5 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.Collections.Generic.KeyValuePair`2[System.String,System.Object],System.String]>
+; V20 tmp16 [V20,T03] ( 5, 5 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.Collections.Generic.KeyValuePair`2[System.String,System.Object],System.String]>
;* V21 tmp17 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Type>
;* V22 tmp18 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Type>
; V23 tmp19 [V23,T02] ( 6, 6 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.String>
; V24 tmp20 [V24,T04] ( 5, 5 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.String>
-; V25 tmp21 [V25,T11] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
-; V26 tmp22 [V26,T18] ( 2, 2 ) byref -> x0 single-def "impAppendStmt"
+; V25 tmp21 [V25,T12] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
+; V26 tmp22 [V26,T19] ( 2, 2 ) byref -> x0 single-def "impAppendStmt"
; V27 tmp23 [V27,T08] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.Composition.Hosting.SinglePartExportDescriptorProvider+<>c>
-;* V28 cse0 [V28,T21] ( 0, 0 ) long -> zero-ref "CSE #05: moderate"
-; V29 cse1 [V29,T19] ( 3, 1.50) ref -> x21 "CSE #02: moderate"
-; V30 cse2 [V30,T12] ( 4, 2 ) long -> x22 "CSE #06: moderate"
+;* V28 cse0 [V28,T22] ( 0, 0 ) long -> zero-ref "CSE #05: moderate"
+; V29 cse1 [V29,T20] ( 3, 1.50) ref -> x21 "CSE #02: moderate"
+; V30 cse2 [V30,T09] ( 5, 2.50) long -> x22 "CSE #03: moderate"
+; V31 cse3 [V31,T13] ( 4, 2 ) long -> x23 "CSE #06: moderate"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M22778_IG01:
stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- str x23, [sp, #0x38]
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
+ stp x23, x24, [sp, #0x30]
mov fp, sp
mov x20, x0
mov x19, x1
;; size=28 bbWeight=1 PerfScore 5.50
G_M22778_IG02:
ldr x0, [x19, #0x08]
ldr x1, [x20, #0x08]
movz x2, #0xD1FFAB1E // code for System.Type:op_Equality(System.Type,System.Type):ubyte
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz w0, G_M22778_IG04
;; size=32 bbWeight=1 PerfScore 12.50
G_M22778_IG03:
ldr x2, [x19, #0x10]
ldr x1, [x20, #0x10]
cmp x2, x1
beq G_M22778_IG06
cbz x2, G_M22778_IG04
cbz x1, G_M22778_IG04
ldr w0, [x2, #0x08]
ldr w3, [x1, #0x08]
cmp w0, w3
bne G_M22778_IG04
add x0, x2, #12
ldr w2, [x2, #0x08]
lsl w2, w2, #1
mov w2, w2
add x1, x1, #12
movz x3, #0xD1FFAB1E // code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
cbnz w0, G_M22778_IG06
;; size=84 bbWeight=0.50 PerfScore 14.50
G_M22778_IG04:
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M22778_IG05:
- ldr x23, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
+ ldp x23, x24, [sp, #0x30]
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x40
ret lr
- ;; size=20 bbWeight=0.50 PerfScore 3.00
+ ;; size=20 bbWeight=0.50 PerfScore 2.50
G_M22778_IG06:
ldr x21, [x19, #0x18]
cbz x21, G_M22778_IG09
- 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 x1, x21
add x14, x0, #8
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Composition.Hosting.SinglePartExportDescriptorProvider:<IsSupportedContract>b__3_0(System.Collections.Generic.KeyValuePair`2[System.String,System.Object]):ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x0, #0x18]
mov x2, x0
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ add x0, x22, #0xD1FFAB1E
movz x3, #0xD1FFAB1E // code for System.Linq.Enumerable:Where[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Func`2[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],ubyte]):System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x21, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M22778_IG11
- ;; size=116 bbWeight=0.50 PerfScore 12.50
+ ;; size=112 bbWeight=0.50 PerfScore 12.25
G_M22778_IG07:
- movz x22, #0xD1FFAB1E // data for System.Composition.Hosting.SinglePartExportDescriptorProvider+<>c:<>9__3_1
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ldr x23, [x22]
- cbnz x23, G_M22778_IG08
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ movz x23, #0xD1FFAB1E // data for System.Composition.Hosting.SinglePartExportDescriptorProvider+<>c:<>9__3_1
+ movk x23, #0xD1FFAB1E LSL #16
+ movk x23, #0xD1FFAB1E LSL #32
+ ldr x24, [x23]
+ cbnz x24, G_M22778_IG08
+ add x0, x22, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- ldr x15, [x22, #-0x08]
+ mov x24, x0
+ ldr x15, [x23, #-0x08]
cbz x15, G_M22778_IG12
- add x14, x23, #8
+ add x14, x24, #8
bl CORINFO_HELP_ASSIGN_REF
movz x14, #0xD1FFAB1E // code for System.Composition.Hosting.SinglePartExportDescriptorProvider+<>c:<IsSupportedContract>b__3_1(System.Collections.Generic.KeyValuePair`2[System.String,System.Object]):System.String:this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- str x14, [x23, #0x18]
- mov x14, x22
- mov x15, x23
+ str x14, [x24, #0x18]
+ mov x14, x23
+ mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
- ;; size=84 bbWeight=0.50 PerfScore 9.25
+ ;; size=76 bbWeight=0.50 PerfScore 8.75
G_M22778_IG08:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ add x0, x22, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
add x14, x0, #8
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
movz x3, #0xD1FFAB1E // code for System.Composition.Hosting.SinglePartExportDescriptorProvider:<IsSupportedContract>b__3_2(System.Collections.Generic.KeyValuePair`2[System.String,System.Object]):System.Object:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
str x3, [x0, #0x18]
mov x3, x0
mov x1, x21
- mov x2, x23
+ mov x2, x24
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov x4, xzr
movz x5, #0xD1FFAB1E // code for System.Linq.Enumerable:ToDictionary[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Func`2[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],System.__Canon],System.Func`2[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
ldp x20, x21, [x19, #0x08]
ldr w1, [x0, #0x38]
ldr w2, [x0, #0x40]
subs w1, w1, w2
csel x22, xzr, x0, eq
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
mov x1, x20
mov x2, x21
mov x3, x22
movz x4, #0xD1FFAB1E // code for System.Composition.Hosting.Core.CompositionContract:.ctor(System.Type,System.String,System.Collections.Generic.IDictionary`2[System.String,System.Object]):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
mov x0, x19
mov x1, x23
movz x2, #0xD1FFAB1E // code for System.Composition.Hosting.Core.CompositionContract:Equals(System.Object):ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz w0, G_M22778_IG04
- ;; size=196 bbWeight=0.50 PerfScore 22.25
+ ;; size=188 bbWeight=0.50 PerfScore 21.75
G_M22778_IG09:
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M22778_IG10:
- ldr x23, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
+ ldp x23, x24, [sp, #0x30]
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x40
ret lr
- ;; size=20 bbWeight=0.50 PerfScore 3.00
+ ;; size=20 bbWeight=0.50 PerfScore 2.50
G_M22778_IG11:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #58
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M22778_IG07
;; size=24 bbWeight=0 PerfScore 0.00
G_M22778_IG12:
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
-; Total bytes of code 636, prolog size 20, PerfScore 83.00, instruction count 159, allocated bytes for code 636 (MethodHash=fc07a705) for method System.Composition.Hosting.SinglePartExportDescriptorProvider:IsSupportedContract(System.Composition.Hosting.Core.CompositionContract):ubyte:this (FullOpts)
+; Total bytes of code 616, prolog size 20, PerfScore 80.75, instruction count 154, allocated bytes for code 616 (MethodHash=fc07a705) for method System.Composition.Hosting.SinglePartExportDescriptorProvider:IsSupportedContract(System.Composition.Hosting.Core.CompositionContract):ubyte:this (FullOpts)
-20 (-1.02 % of base) - System.Data.DataTable:DeserializeDataTable(System.Runtime.Serialization.SerializationInfo,ubyte,int):this
; Assembly listing for method System.Data.DataTable:DeserializeDataTable(System.Runtime.Serialization.SerializationInfo,ubyte,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; 26 single block inlinees; 18 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T04] ( 9, 5.50) ref -> x20 this class-hnd single-def <System.Data.DataTable>
; V01 arg1 [V01,T00] ( 12, 7 ) ref -> x19 class-hnd single-def <System.Runtime.Serialization.SerializationInfo>
; V02 arg2 [V02,T07] ( 4, 3 ) ubyte -> x21 single-def
; V03 arg3 [V03,T08] ( 3, 3 ) int -> x3 single-def
-; V04 loc0 [V04,T34] ( 3, 1.50) ref -> x21 class-hnd exact single-def <System.String>
-; V05 loc1 [V05,T35] ( 3, 1.50) ref -> x19 class-hnd exact single-def <System.String>
+; V04 loc0 [V04,T35] ( 3, 1.50) ref -> x21 class-hnd exact single-def <System.String>
+; V05 loc1 [V05,T36] ( 3, 1.50) ref -> x19 class-hnd exact single-def <System.String>
;* V06 loc2 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Data.DataSet>
-; V07 loc3 [V07,T36] ( 3, 1.50) ref -> x21 class-hnd single-def <System.Data.DataTable>
+; V07 loc3 [V07,T37] ( 3, 1.50) ref -> x21 class-hnd single-def <System.Data.DataTable>
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V09 tmp1 [V09,T01] ( 8, 8 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Data.DataSet>
-; V10 tmp2 [V10,T16] ( 3, 3 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.IO.StringReader>
+; V10 tmp2 [V10,T16] ( 3, 3 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.IO.StringReader>
; V11 tmp3 [V11,T05] ( 5, 5 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlTextReader>
;* V12 tmp4 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Data.DataTableCollection>
; V13 tmp5 [V13,T17] ( 3, 3 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.IO.StringReader>
; V14 tmp6 [V14,T06] ( 5, 5 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlTextReader>
-; V15 tmp7 [V15,T32] ( 4, 1.50) ref -> x1 class-hnd "Inline return value spill temp" <System.Object>
-; V16 tmp8 [V16,T37] ( 3, 1.50) ref -> x0 ld-addr-op class-hnd single-def "Inline ldloca(s) first use temp" <System.Type>
-; V17 tmp9 [V17,T27] ( 4, 2 ) ref -> x21 class-hnd single-def "Inline stloc first use temp" <System.Object>
+; V15 tmp7 [V15,T33] ( 4, 1.50) ref -> x1 class-hnd "Inline return value spill temp" <System.Object>
+; V16 tmp8 [V16,T38] ( 3, 1.50) ref -> x0 ld-addr-op class-hnd single-def "Inline ldloca(s) first use temp" <System.Type>
+; V17 tmp9 [V17,T28] ( 4, 2 ) ref -> x21 class-hnd single-def "Inline stloc first use temp" <System.Object>
;* V18 tmp10 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.ArgumentException>
;* V19 tmp11 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V20 tmp12 [V20,T52] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.SerializationException>
+; V20 tmp12 [V20,T53] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.SerializationException>
; V21 tmp13 [V21,T12] ( 7, 3.50) int -> x1 "Inline return value spill temp"
-; V22 tmp14 [V22,T42] ( 2, 1 ) int -> x1 ld-addr-op "Inline ldloca(s) first use temp"
-;* V23 tmp15 [V23,T46] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V22 tmp14 [V22,T43] ( 2, 1 ) int -> x1 ld-addr-op "Inline ldloca(s) first use temp"
+;* V23 tmp15 [V23,T47] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V24 tmp16 [V24,T18] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,int]>
-; V25 tmp17 [V25,T38] ( 3, 1.50) byref -> x0 single-def "Inline stloc first use temp"
-; V26 tmp18 [V26,T33] ( 4, 1.50) ref -> x1 class-hnd "Inline return value spill temp" <System.Object>
-; V27 tmp19 [V27,T39] ( 3, 1.50) ref -> x0 ld-addr-op class-hnd single-def "Inline ldloca(s) first use temp" <System.Type>
-; V28 tmp20 [V28,T28] ( 4, 2 ) ref -> x23 class-hnd single-def "Inline stloc first use temp" <System.Object>
+; V25 tmp17 [V25,T39] ( 3, 1.50) byref -> x0 single-def "Inline stloc first use temp"
+; V26 tmp18 [V26,T34] ( 4, 1.50) ref -> x1 class-hnd "Inline return value spill temp" <System.Object>
+; V27 tmp19 [V27,T40] ( 3, 1.50) ref -> x0 ld-addr-op class-hnd single-def "Inline ldloca(s) first use temp" <System.Type>
+; V28 tmp20 [V28,T29] ( 4, 2 ) ref -> x23 class-hnd single-def "Inline stloc first use temp" <System.Object>
;* V29 tmp21 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.ArgumentException>
;* V30 tmp22 [V30 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V31 tmp23 [V31,T53] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.SerializationException>
+; V31 tmp23 [V31,T54] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.SerializationException>
; V32 tmp24 [V32,T13] ( 7, 3.50) int -> x1 "Inline return value spill temp"
-; V33 tmp25 [V33,T43] ( 2, 1 ) int -> x1 ld-addr-op "Inline ldloca(s) first use temp"
-;* V34 tmp26 [V34,T47] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V33 tmp25 [V33,T44] ( 2, 1 ) int -> x1 ld-addr-op "Inline ldloca(s) first use temp"
+;* V34 tmp26 [V34,T48] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V35 tmp27 [V35,T19] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,int]>
-; V36 tmp28 [V36,T40] ( 3, 1.50) byref -> x0 single-def "Inline stloc first use temp"
-; V37 tmp29 [V37,T02] ( 8, 8 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlTextReaderImpl>
-; V38 tmp30 [V38,T09] ( 4, 4 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Xml.NameTable>
-;* V39 tmp31 [V39,T48] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inlining Arg" <System.String>
-; V40 tmp32 [V40,T20] ( 3, 3 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlNamespaceManager>
+; V36 tmp28 [V36,T41] ( 3, 1.50) byref -> x0 single-def "Inline stloc first use temp"
+; V37 tmp29 [V37,T02] ( 8, 8 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlTextReaderImpl>
+; V38 tmp30 [V38,T09] ( 4, 4 ) ref -> x26 class-hnd exact single-def "NewObj constructor temp" <System.Xml.NameTable>
+;* V39 tmp31 [V39,T49] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inlining Arg" <System.String>
+; V40 tmp32 [V40,T20] ( 3, 3 ) ref -> x28 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlNamespaceManager>
;* V41 tmp33 [V41 ] ( 0, 0 ) ref -> zero-ref single-def
-;* V42 tmp34 [V42,T50] ( 0, 0 ) ref -> zero-ref
+;* V42 tmp34 [V42,T51] ( 0, 0 ) ref -> zero-ref
;* V43 tmp35 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Uri>
;* V44 tmp36 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V45 tmp37 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.XmlTextReaderImpl>
-; V46 tmp38 [V46,T03] ( 8, 8 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlTextReaderImpl>
-; V47 tmp39 [V47,T10] ( 4, 4 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Xml.NameTable>
-;* V48 tmp40 [V48,T49] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inlining Arg" <System.String>
-; V49 tmp41 [V49,T21] ( 3, 3 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlNamespaceManager>
+; V46 tmp38 [V46,T03] ( 8, 8 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlTextReaderImpl>
+; V47 tmp39 [V47,T10] ( 4, 4 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Xml.NameTable>
+;* V48 tmp40 [V48,T50] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inlining Arg" <System.String>
+; V49 tmp41 [V49,T21] ( 3, 3 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlNamespaceManager>
;* V50 tmp42 [V50 ] ( 0, 0 ) ref -> zero-ref single-def
-;* V51 tmp43 [V51,T51] ( 0, 0 ) ref -> zero-ref
+;* V51 tmp43 [V51,T52] ( 0, 0 ) ref -> zero-ref
;* V52 tmp44 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Uri>
;* V53 tmp45 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V54 tmp46 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.XmlTextReaderImpl>
; V55 tmp47 [V55,T22] ( 3, 3 ) ref -> x0 single-def "arr expr"
; V56 tmp48 [V56,T23] ( 3, 3 ) ref -> x2 single-def "arr expr"
-; V57 tmp49 [V57,T54] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
-; V58 tmp50 [V58,T55] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V59 tmp51 [V59,T56] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V57 tmp49 [V57,T55] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
+; V58 tmp50 [V58,T56] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V59 tmp51 [V59,T57] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
;* V60 tmp52 [V60 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V61 tmp53 [V61,T24] ( 3, 3 ) ref -> x0 single-def "arr expr"
; V62 tmp54 [V62,T25] ( 3, 3 ) ref -> x2 single-def "arr expr"
-; V63 tmp55 [V63,T29] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V64 tmp56 [V64,T30] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V65 tmp57 [V65,T31] ( 2, 2 ) ref -> x21 single-def "argument with side effect"
-; V66 tmp58 [V66,T57] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
-; V67 tmp59 [V67,T58] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V68 tmp60 [V68,T59] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V63 tmp55 [V63,T30] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V64 tmp56 [V64,T31] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V65 tmp57 [V65,T32] ( 2, 2 ) ref -> x21 single-def "argument with side effect"
+; V66 tmp58 [V66,T58] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
+; V67 tmp59 [V67,T59] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V68 tmp60 [V68,T60] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
;* V69 tmp61 [V69 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V70 cse0 [V70,T41] ( 3, 1.50) ref -> x0 "CSE #09: moderate"
-; V71 cse1 [V71,T26] ( 3, 1.50) ref -> x26 "CSE #08: aggressive"
+; V70 cse0 [V70,T42] ( 3, 1.50) ref -> x0 "CSE #10: moderate"
+; V71 cse1 [V71,T26] ( 3, 1.50) ref -> x27 "CSE #08: aggressive"
; V72 cse2 [V72,T11] ( 7, 3.50) ref -> x22 "CSE #03: moderate"
-; V73 rat0 [V73,T14] ( 4, 3.50) ref -> x21 "replacement local"
-; V74 rat1 [V74,T44] ( 3, 1 ) long -> x0 "CSE for expectedClsNode"
-; V75 rat2 [V75,T15] ( 4, 3.50) ref -> x19 "replacement local"
-; V76 rat3 [V76,T45] ( 3, 1 ) long -> x0 "CSE for expectedClsNode"
+; V73 cse3 [V73,T27] ( 5, 2.50) long -> x23 "CSE #09: moderate"
+; V74 rat0 [V74,T14] ( 4, 3.50) ref -> x21 "replacement local"
+; V75 rat1 [V75,T45] ( 3, 1 ) long -> x0 "CSE for expectedClsNode"
+; V76 rat2 [V76,T15] ( 4, 3.50) ref -> x19 "replacement local"
+; V77 rat3 [V77,T46] ( 3, 1 ) long -> x0 "CSE for expectedClsNode"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M31178_IG01:
stp fp, lr, [sp, #-0x60]!
- 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 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 x20, x0
mov x19, x1
mov w21, w2
;; size=40 bbWeight=1 PerfScore 8.00
G_M31178_IG02:
cbz w3, G_M31178_IG05
;; size=4 bbWeight=1 PerfScore 1.00
G_M31178_IG03:
uxtb w2, w21
mov x0, x20
mov x1, x19
movz x3, #0xD1FFAB1E // code for System.Data.DataTable:DeserializeTableSchema(System.Runtime.Serialization.SerializationInfo,ubyte):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
tst w21, #255
beq G_M31178_IG21
mov x0, x20
mov x1, x19
mov w2, wzr
movz x3, #0xD1FFAB1E // code for System.Data.DataTable:DeserializeTableData(System.Runtime.Serialization.SerializationInfo,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x0, x20
mov x1, xzr
movz x2, #0xD1FFAB1E // code for System.Data.DataTable:ResetInternalIndexes(System.Data.DataColumn):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=100 bbWeight=0.50 PerfScore 11.00
G_M31178_IG04:
- ldr x27, [sp, #0x58]
- ldp x25, x26, [sp, #0x48]
- ldp x23, x24, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
+ 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=0.50 PerfScore 4.00
+ ;; size=28 bbWeight=0.50 PerfScore 3.50
G_M31178_IG05:
ldr x0, [x19, #0x20]
ldrsb wzr, [x0]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.Dictionary`2[System.__Canon,int]:FindValue(System.__Canon):byref:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M31178_IG06
ldr w1, [x0]
b G_M31178_IG07
;; size=52 bbWeight=0.50 PerfScore 9.00
G_M31178_IG06:
movn w1, #0
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M31178_IG07:
cmn w1, #1
beq G_M31178_IG23
ldr x0, [x19, #0x18]
ldr w2, [x0, #0x08]
cmp w1, w2
bhs G_M31178_IG22
add x0, x0, #16
ldr x0, [x0, w1, UXTW #3]
ldr x2, [x19, #0x10]
ldr w3, [x2, #0x08]
cmp w1, w3
bhs G_M31178_IG22
add x2, x2, #16
ldr x21, [x2, w1, UXTW #3]
- movz x22, #0xD1FFAB1E
+ movz x22, #32
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
cmp x0, x22
beq G_M31178_IG08
mov x1, x0
mov x0, x22
movz x2, #0xD1FFAB1E // code for System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz w0, G_M31178_IG08
cbnz x21, G_M31178_IG09
;; size=112 bbWeight=0.50 PerfScore 17.50
G_M31178_IG08:
mov x1, x21
b G_M31178_IG10
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M31178_IG09:
ldr x0, [x19, #0x28]
mov x1, x21
movz x11, #0xD1FFAB1E // code for System.Runtime.Serialization.IFormatterConverter:Convert(System.Object,System.Type):System.Object:this
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
mov x2, x22
ldr x3, [x11]
blr x3
mov x1, x0
;; size=36 bbWeight=0.50 PerfScore 5.00
G_M31178_IG10:
mov x21, x1
cbz x21, G_M31178_IG12
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M31178_IG11:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x2, [x21]
cmp x2, x0
bne G_M31178_IG24
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M31178_IG12:
ldr x0, [x19, #0x20]
ldrsb wzr, [x0]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.Dictionary`2[System.__Canon,int]:FindValue(System.__Canon):byref:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M31178_IG13
ldr w1, [x0]
b G_M31178_IG14
;; size=52 bbWeight=0.50 PerfScore 9.00
G_M31178_IG13:
movn w1, #0
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M31178_IG14:
cmn w1, #1
beq G_M31178_IG25
ldr x0, [x19, #0x18]
ldr w2, [x0, #0x08]
cmp w1, w2
bhs G_M31178_IG22
add x0, x0, #16
ldr x0, [x0, w1, UXTW #3]
ldr x2, [x19, #0x10]
ldr w3, [x2, #0x08]
cmp w1, w3
bhs G_M31178_IG22
add x2, x2, #16
ldr x23, [x2, w1, UXTW #3]
cmp x0, x22
beq G_M31178_IG15
mov x1, x0
mov x0, x22
movz x2, #0xD1FFAB1E // code for System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz w0, G_M31178_IG15
cbnz x23, G_M31178_IG16
;; size=100 bbWeight=0.50 PerfScore 16.75
G_M31178_IG15:
mov x1, x23
b G_M31178_IG17
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M31178_IG16:
ldr x0, [x19, #0x28]
mov x1, x23
movz x11, #0xD1FFAB1E // code for System.Runtime.Serialization.IFormatterConverter:Convert(System.Object,System.Type):System.Object:this
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
mov x2, x22
ldr x3, [x11]
blr x3
mov x1, x0
;; size=36 bbWeight=0.50 PerfScore 5.00
G_M31178_IG17:
mov x19, x1
cbz x19, G_M31178_IG19
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M31178_IG18:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x2, [x19]
cmp x2, x0
bne G_M31178_IG26
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M31178_IG19:
cbz x21, G_M31178_IG21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWFAST
mov x22, x0
movz x1, #0xD1FFAB1E // code for System.Data.DataSet:.ctor():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
+ movz x23, #0xD1FFAB1E
+ movk x23, #0xD1FFAB1E LSL #16
+ movk x23, #0xD1FFAB1E LSL #32
+ mov x0, x23
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- add x14, x23, #8
+ mov x24, x0
+ add x14, x24, #8
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
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 x24, x0
+ mov x25, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x25, x0
+ mov x26, x0
movz x1, #0xD1FFAB1E // code for System.Xml.NameTable:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- movz x26, #0xD1FFAB1E
- movk x26, #0xD1FFAB1E LSL #16
- movk x26, #0xD1FFAB1E LSL #32
- mov x0, x24
- mov x1, x25
+ movz x27, #8
+ movk x27, #0xD1FFAB1E LSL #16
+ movk x27, #0xD1FFAB1E LSL #32
+ mov x0, x25
+ mov x1, x26
movz x2, #0xD1FFAB1E // code for System.Xml.XmlTextReaderImpl:.ctor(System.Xml.XmlNameTable):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
+ add x0, x23, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x27, x0
- mov x1, x25
+ mov x28, x0
+ mov x1, x26
movz x2, #0xD1FFAB1E // code for System.Xml.XmlNamespaceManager:.ctor(System.Xml.XmlNameTable):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- add x14, x24, #64
- mov x15, x27
+ add x14, x25, #64
+ mov x15, x28
bl CORINFO_HELP_ASSIGN_REF
- movz x1, #0xD1FFAB1E
+ movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- str x1, [x24, #0x60]
- mov x1, x26
- mov x0, x24
- mov x3, x23
+ str x1, [x25, #0x60]
+ mov x1, x27
+ mov x0, x25
+ mov x3, x24
mov x2, xzr
movz x4, #0xD1FFAB1E // code for System.Xml.XmlTextReaderImpl:InitTextReaderInput(System.String,System.Uri,System.IO.TextReader):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
- ldr x15, [x24, #0xD1FFAB1E]
- add x14, x24, #104
+ ldr x15, [x25, #0xD1FFAB1E]
+ add x14, x25, #104
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #8
- mov x15, x24
+ mov x15, x25
bl CORINFO_HELP_ASSIGN_REF
ldr x14, [x21, #0x08]
add x14, x14, #200
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
mov x0, x22
mov x1, x21
mov w2, wzr
movz x3, #0xD1FFAB1E // code for System.Data.DataSet:ReadXmlSchema(System.Xml.XmlReader,ubyte):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x0, [x22, #0x20]
mov w1, wzr
movz x2, #0xD1FFAB1E // code for System.Data.DataTableCollection:get_Item(int):System.Data.DataTable:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
mov x21, x0
mov x1, x20
mov x2, xzr
mov w3, wzr
movz x4, #0xD1FFAB1E // code for System.Data.DataTable:CloneTo(System.Data.DataTable,System.Data.DataSet,ubyte):System.Data.DataTable:this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
ldr wzr, [x0]
blr x4
mov x0, x21
movz x1, #0xD1FFAB1E // code for System.Data.DataTable:get_Namespace():System.String:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
mov x0, x20
movz x2, #0xD1FFAB1E // code for System.Data.DataTable:set_Namespace(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x19, G_M31178_IG21
ldr x0, [x22, #0x20]
mov x21, x0
mov w1, wzr
movz x2, #0xD1FFAB1E // code for System.Data.DataTableCollection:get_Item(int):System.Data.DataTable:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
mov x1, x0
mov x0, x21
movz x2, #0xD1FFAB1E // code for System.Data.DataTableCollection:Remove(System.Data.DataTable):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x22, #0x20]
mov x1, x20
movz x2, #0xD1FFAB1E // code for System.Data.DataTableCollection:Add(System.Data.DataTable):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ mov x0, x23
bl CORINFO_HELP_NEWSFAST
mov x21, x0
add x14, x21, #8
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
+ mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x24, x0
+ mov x25, x0
movz x1, #0xD1FFAB1E // code for System.Xml.NameTable:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- mov x0, x23
- mov x1, x24
+ mov x0, x24
+ mov x1, x25
movz x2, #0xD1FFAB1E // code for System.Xml.XmlTextReaderImpl:.ctor(System.Xml.XmlNameTable):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
+ add x0, x23, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x25, x0
- mov x1, x24
+ mov x23, x0
+ mov x1, x25
movz x2, #0xD1FFAB1E // code for System.Xml.XmlNamespaceManager:.ctor(System.Xml.XmlNameTable):this
- ;; size=768 bbWeight=0.50 PerfScore 86.75
-G_M31178_IG20:
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- add x14, x23, #64
- mov x15, x25
+ add x14, x24, #64
+ mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
- movz x1, #0xD1FFAB1E
+ movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- str x1, [x23, #0x60]
- mov x1, x26
- mov x0, x23
+ ;; size=788 bbWeight=0.50 PerfScore 89.75
+G_M31178_IG20:
+ str x1, [x24, #0x60]
+ mov x1, x27
+ mov x0, x24
mov x3, x21
mov x2, xzr
movz x4, #0xD1FFAB1E // code for System.Xml.XmlTextReaderImpl:InitTextReaderInput(System.String,System.Uri,System.IO.TextReader):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
- ldr x15, [x23, #0xD1FFAB1E]
- add x14, x23, #104
+ ldr x15, [x24, #0xD1FFAB1E]
+ add x14, x24, #104
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #8
- mov x15, x23
+ mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
ldr x14, [x19, #0x08]
add x14, x14, #200
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
mov x0, x22
mov x1, x19
mov w2, #4
mov w3, wzr
movz x4, #0xD1FFAB1E // code for System.Data.DataSet:ReadXml(System.Xml.XmlReader,int,ubyte):int:this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
ldr x0, [x22, #0x20]
mov x1, x20
movz x2, #0xD1FFAB1E // code for System.Data.DataTableCollection:Remove(System.Data.DataTable):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
- ;; size=188 bbWeight=0.50 PerfScore 24.00
+ ;; size=148 bbWeight=0.50 PerfScore 19.75
G_M31178_IG21:
- ldr x27, [sp, #0x58]
- ldp x25, x26, [sp, #0x48]
- ldp x23, x24, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
+ 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=0.50 PerfScore 4.00
+ ;; size=28 bbWeight=0.50 PerfScore 3.50
G_M31178_IG22:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
G_M31178_IG23:
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_Serialization_NotFound():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x20, x0
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
mov x1, x0
mov x0, x20
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.Runtime.Serialization.SerializationException:.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=132 bbWeight=0 PerfScore 0.00
G_M31178_IG24:
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M31178_IG25:
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_Serialization_NotFound():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x20, x0
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
mov x1, x0
mov x0, x20
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.Runtime.Serialization.SerializationException:.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=132 bbWeight=0 PerfScore 0.00
G_M31178_IG26:
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1952, prolog size 28, PerfScore 207.50, instruction count 488, allocated bytes for code 1952 (MethodHash=c10e8635) for method System.Data.DataTable:DeserializeDataTable(System.Runtime.Serialization.SerializationInfo,ubyte,int):this (FullOpts)
+; Total bytes of code 1932, prolog size 28, PerfScore 205.25, instruction count 483, allocated bytes for code 1932 (MethodHash=c10e8635) for method System.Data.DataTable:DeserializeDataTable(System.Runtime.Serialization.SerializationInfo,ubyte,int):this (FullOpts)
-20 (-2.87 % of base) - System.Data.SortExpressionBuilder`1[int]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this
; Assembly listing for method System.Data.SortExpressionBuilder`1[int]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]: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; 12 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 6, 12 ) ref -> x19 this class-hnd single-def <System.Data.SortExpressionBuilder`1[int]>
; V01 loc0 [V01,T05] ( 8, 14 ) ref -> x20 class-hnd exact single-def <System.Data.SortExpressionBuilder`1[double]>
-; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
-; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x23 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,double]>
-; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
+; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
+; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,double]>
+; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
; V05 loc4 [V05,T07] ( 6, 14 ) ref -> x22 class-hnd <System.Comparison`1[System.Object]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T14] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[double]>
+; V07 tmp1 [V07,T15] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[double]>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,double]>
; V09 tmp3 [V09,T02] ( 4, 20 ) ref -> x1 class-hnd "impAppendStmt" <System.Func`2[int,System.Object]>
; V10 tmp4 [V10,T03] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[double,System.Object]>
-; V11 tmp5 [V11,T12] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[double,System.Object]]>
+; V11 tmp5 [V11,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[double,System.Object]]>
; V12 tmp6 [V12,T04] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[double,System.Object]>
-; V13 tmp7 [V13,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[double,System.Object]]>
-; V14 tmp8 [V14,T10] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
+; V13 tmp7 [V13,T14] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[double,System.Object]]>
+; V14 tmp8 [V14,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Func`2[int,System.Object]]>
-; V17 tmp11 [V17,T15] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V17 tmp11 [V17,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V18 tmp12 [V18,T00] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
-; V19 tmp13 [V19,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
+; V19 tmp13 [V19,T12] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
;* V20 tmp14 [V20 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Comparison`1[System.Object]]>
-; V22 tmp16 [V22,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V22 tmp16 [V22,T17] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V23 tmp17 [V23,T01] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref single-def "V15.[000..008)"
-; V25 tmp19 [V25,T20] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
+; V25 tmp19 [V25,T19] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref "V15.[016..024)"
-; V27 tmp21 [V27,T22] ( 2, 2 ) int -> x1 "V15.[024..028)"
+; V27 tmp21 [V27,T21] ( 2, 2 ) int -> x1 "V15.[024..028)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref "V15.[028..032)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V20.[000..008)"
-; V30 tmp24 [V30,T21] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
+; V30 tmp24 [V30,T20] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref "V20.[016..024)"
-; V32 tmp26 [V32,T23] ( 2, 2 ) int -> x1 "V20.[024..028)"
+; V32 tmp26 [V32,T22] ( 2, 2 ) int -> x1 "V20.[024..028)"
;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref "V20.[028..032)"
-; V34 cse0 [V34,T17] ( 3, 6 ) long -> x21 "CSE #01: moderate"
-; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #06: moderate"
-; V36 cse2 [V36,T19] ( 2, 4.25) long -> x22 hoist "CSE #02: moderate"
-; V37 cse3 [V37,T09] ( 3, 12 ) ref -> x1 "CSE #03: aggressive"
+; V34 cse0 [V34,T10] ( 4, 10 ) long -> x21 "CSE #01: aggressive"
+; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #05: moderate"
+; V36 cse2 [V36,T09] ( 3, 12 ) ref -> x1 "CSE #02: aggressive"
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M42268_IG01:
- stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x58]
- stp x21, x22, [sp, #0x68]
- str x23, [sp, #0x78]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x50]
+ stp x21, x22, [sp, #0x60]
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=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M42268_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x1, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1[double]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x38] // [V02 loc1], [V02 loc1+0x08]
- str xzr, [fp, #0x48] // [V02 loc1+0x10]
- stp w1, wzr, [fp, #0x50] // [V02 loc1+0x18], [V02 loc1+0x1c]
- add x0, fp, #56 // [V02 loc1]
+ stp x0, x2, [fp, #0x30] // [V02 loc1], [V02 loc1+0x08]
+ str xzr, [fp, #0x40] // [V02 loc1+0x10]
+ stp w1, wzr, [fp, #0x48] // [V02 loc1+0x18], [V02 loc1+0x1c]
+ add x0, fp, #48 // [V02 loc1]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M42268_IG10
+ cbz w0, G_M42268_IG09
;; size=108 bbWeight=1 PerfScore 29.50
G_M42268_IG03:
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M42268_IG04:
- mov x0, x22
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- ldr x1, [fp, #0x48] // [V02 loc1+0x10]
- add x14, x23, #8
+ mov x22, x0
+ ldr x1, [fp, #0x40] // [V02 loc1+0x10]
+ add x14, x22, #8
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x20]
- cbnz x0, G_M42268_IG06
+ cbnz x0, G_M42268_IG05
;; size=40 bbWeight=4 PerfScore 52.00
-G_M42268_IG05:
- cbnz x1, G_M42268_IG08
- b G_M42268_IG07
+G_M42268_IG04:
+ cbnz x1, G_M42268_IG07
+ b G_M42268_IG06
;; size=8 bbWeight=2 PerfScore 4.00
-G_M42268_IG06:
+G_M42268_IG05:
cmp x0, x1
- beq G_M42268_IG07
+ beq G_M42268_IG06
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M42268_IG08
+ cbz w0, G_M42268_IG07
;; size=28 bbWeight=2 PerfScore 25.00
-G_M42268_IG07:
+G_M42268_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,double]:<CloneCast>b__0(double):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M42268_IG09
+ b G_M42268_IG08
;; size=92 bbWeight=2 PerfScore 44.00
-G_M42268_IG08:
+G_M42268_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,double]:<CloneCast>b__1(double):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=76 bbWeight=2 PerfScore 38.00
-G_M42268_IG09:
- add x0, fp, #56 // [V02 loc1]
+G_M42268_IG08:
+ add x0, fp, #48 // [V02 loc1]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M42268_IG04
+ cbnz w0, G_M42268_IG03
;; size=32 bbWeight=4 PerfScore 30.00
-G_M42268_IG10:
+G_M42268_IG09:
ldr x0, [x19, #0x10]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x18] // [V04 loc3], [V04 loc3+0x08]
- str xzr, [fp, #0x28] // [V04 loc3+0x10]
- stp w1, wzr, [fp, #0x30] // [V04 loc3+0x18], [V04 loc3+0x1c]
- add x0, fp, #24 // [V04 loc3]
+ stp x0, x2, [fp, #0x10] // [V04 loc3], [V04 loc3+0x08]
+ str xzr, [fp, #0x20] // [V04 loc3+0x10]
+ stp w1, wzr, [fp, #0x28] // [V04 loc3+0x18], [V04 loc3+0x1c]
+ add x0, fp, #16 // [V04 loc3]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M42268_IG17
+ cbz w0, G_M42268_IG16
;; size=68 bbWeight=1 PerfScore 21.00
-G_M42268_IG11:
- ldr x22, [fp, #0x28] // [V04 loc3+0x10]
+G_M42268_IG10:
+ ldr x22, [fp, #0x20] // [V04 loc3+0x10]
ldr x0, [x19, #0x20]
ldr x0, [x0, #0x20]
- cbnz x0, G_M42268_IG13
+ cbnz x0, G_M42268_IG12
;; size=16 bbWeight=4 PerfScore 36.00
-G_M42268_IG12:
- cbnz x22, G_M42268_IG15
- b G_M42268_IG14
+G_M42268_IG11:
+ cbnz x22, G_M42268_IG14
+ b G_M42268_IG13
;; size=8 bbWeight=2 PerfScore 4.00
-G_M42268_IG13:
+G_M42268_IG12:
cmp x0, x22
- beq G_M42268_IG14
+ beq G_M42268_IG13
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M42268_IG15
+ cbz w0, G_M42268_IG14
;; size=32 bbWeight=2 PerfScore 26.00
-G_M42268_IG14:
+G_M42268_IG13:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #32
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M42268_IG16
+ b G_M42268_IG15
;; size=48 bbWeight=2 PerfScore 30.00
-G_M42268_IG15:
+G_M42268_IG14:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=32 bbWeight=2 PerfScore 24.00
-G_M42268_IG16:
- add x0, fp, #24 // [V04 loc3]
+G_M42268_IG15:
+ add x0, fp, #16 // [V04 loc3]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M42268_IG11
+ cbnz w0, G_M42268_IG10
;; size=32 bbWeight=4 PerfScore 30.00
-G_M42268_IG17:
+G_M42268_IG16:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
-G_M42268_IG18:
- ldr x23, [sp, #0x78]
- ldp x21, x22, [sp, #0x68]
- ldp x19, x20, [sp, #0x58]
- ldp fp, lr, [sp], #0x80
+G_M42268_IG17:
+ ldp x21, x22, [sp, #0x60]
+ ldp x19, x20, [sp, #0x50]
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 696, prolog size 36, PerfScore 408.38, instruction count 174, allocated bytes for code 696 (MethodHash=fa2e5ae3) for method System.Data.SortExpressionBuilder`1[int]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts)
+; Total bytes of code 676, prolog size 32, PerfScore 405.00, instruction count 169, allocated bytes for code 676 (MethodHash=fa2e5ae3) for method System.Data.SortExpressionBuilder`1[int]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts)
-20 (-2.87 % of base) - System.Data.SortExpressionBuilder`1[int]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this
; Assembly listing for method System.Data.SortExpressionBuilder`1[int]:CloneCast[int]():System.Data.SortExpressionBuilder`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; 12 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 6, 12 ) ref -> x19 this class-hnd single-def <System.Data.SortExpressionBuilder`1[int]>
; V01 loc0 [V01,T05] ( 8, 14 ) ref -> x20 class-hnd exact single-def <System.Data.SortExpressionBuilder`1[int]>
-; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
-; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x23 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,int]>
-; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
+; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
+; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,int]>
+; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
; V05 loc4 [V05,T07] ( 6, 14 ) ref -> x22 class-hnd <System.Comparison`1[System.Object]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T14] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[int]>
+; V07 tmp1 [V07,T15] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[int]>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,int]>
; V09 tmp3 [V09,T02] ( 4, 20 ) ref -> x1 class-hnd "impAppendStmt" <System.Func`2[int,System.Object]>
; V10 tmp4 [V10,T03] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[int,System.Object]>
-; V11 tmp5 [V11,T12] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
+; V11 tmp5 [V11,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
; V12 tmp6 [V12,T04] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[int,System.Object]>
-; V13 tmp7 [V13,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
-; V14 tmp8 [V14,T10] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
+; V13 tmp7 [V13,T14] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
+; V14 tmp8 [V14,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Func`2[int,System.Object]]>
-; V17 tmp11 [V17,T15] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V17 tmp11 [V17,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V18 tmp12 [V18,T00] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
-; V19 tmp13 [V19,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
+; V19 tmp13 [V19,T12] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
;* V20 tmp14 [V20 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Comparison`1[System.Object]]>
-; V22 tmp16 [V22,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V22 tmp16 [V22,T17] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V23 tmp17 [V23,T01] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref single-def "V15.[000..008)"
-; V25 tmp19 [V25,T20] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
+; V25 tmp19 [V25,T19] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref "V15.[016..024)"
-; V27 tmp21 [V27,T22] ( 2, 2 ) int -> x1 "V15.[024..028)"
+; V27 tmp21 [V27,T21] ( 2, 2 ) int -> x1 "V15.[024..028)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref "V15.[028..032)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V20.[000..008)"
-; V30 tmp24 [V30,T21] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
+; V30 tmp24 [V30,T20] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref "V20.[016..024)"
-; V32 tmp26 [V32,T23] ( 2, 2 ) int -> x1 "V20.[024..028)"
+; V32 tmp26 [V32,T22] ( 2, 2 ) int -> x1 "V20.[024..028)"
;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref "V20.[028..032)"
-; V34 cse0 [V34,T17] ( 3, 6 ) long -> x21 "CSE #01: moderate"
-; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #06: moderate"
-; V36 cse2 [V36,T19] ( 2, 4.25) long -> x22 hoist "CSE #02: moderate"
-; V37 cse3 [V37,T09] ( 3, 12 ) ref -> x1 "CSE #03: aggressive"
+; V34 cse0 [V34,T10] ( 4, 10 ) long -> x21 "CSE #01: aggressive"
+; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #05: moderate"
+; V36 cse2 [V36,T09] ( 3, 12 ) ref -> x1 "CSE #02: aggressive"
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M31612_IG01:
- stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x58]
- stp x21, x22, [sp, #0x68]
- str x23, [sp, #0x78]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x50]
+ stp x21, x22, [sp, #0x60]
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=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M31612_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x1, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1[int]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x38] // [V02 loc1], [V02 loc1+0x08]
- str xzr, [fp, #0x48] // [V02 loc1+0x10]
- stp w1, wzr, [fp, #0x50] // [V02 loc1+0x18], [V02 loc1+0x1c]
- add x0, fp, #56 // [V02 loc1]
+ stp x0, x2, [fp, #0x30] // [V02 loc1], [V02 loc1+0x08]
+ str xzr, [fp, #0x40] // [V02 loc1+0x10]
+ stp w1, wzr, [fp, #0x48] // [V02 loc1+0x18], [V02 loc1+0x1c]
+ add x0, fp, #48 // [V02 loc1]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M31612_IG10
+ cbz w0, G_M31612_IG09
;; size=108 bbWeight=1 PerfScore 29.50
G_M31612_IG03:
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M31612_IG04:
- mov x0, x22
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- ldr x1, [fp, #0x48] // [V02 loc1+0x10]
- add x14, x23, #8
+ mov x22, x0
+ ldr x1, [fp, #0x40] // [V02 loc1+0x10]
+ add x14, x22, #8
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x20]
- cbnz x0, G_M31612_IG06
+ cbnz x0, G_M31612_IG05
;; size=40 bbWeight=4 PerfScore 52.00
-G_M31612_IG05:
- cbnz x1, G_M31612_IG08
- b G_M31612_IG07
+G_M31612_IG04:
+ cbnz x1, G_M31612_IG07
+ b G_M31612_IG06
;; size=8 bbWeight=2 PerfScore 4.00
-G_M31612_IG06:
+G_M31612_IG05:
cmp x0, x1
- beq G_M31612_IG07
+ beq G_M31612_IG06
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M31612_IG08
+ cbz w0, G_M31612_IG07
;; size=28 bbWeight=2 PerfScore 25.00
-G_M31612_IG07:
+G_M31612_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,int]:<CloneCast>b__0(int):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M31612_IG09
+ b G_M31612_IG08
;; size=92 bbWeight=2 PerfScore 44.00
-G_M31612_IG08:
+G_M31612_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,int]:<CloneCast>b__1(int):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=76 bbWeight=2 PerfScore 38.00
-G_M31612_IG09:
- add x0, fp, #56 // [V02 loc1]
+G_M31612_IG08:
+ add x0, fp, #48 // [V02 loc1]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M31612_IG04
+ cbnz w0, G_M31612_IG03
;; size=32 bbWeight=4 PerfScore 30.00
-G_M31612_IG10:
+G_M31612_IG09:
ldr x0, [x19, #0x10]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x18] // [V04 loc3], [V04 loc3+0x08]
- str xzr, [fp, #0x28] // [V04 loc3+0x10]
- stp w1, wzr, [fp, #0x30] // [V04 loc3+0x18], [V04 loc3+0x1c]
- add x0, fp, #24 // [V04 loc3]
+ stp x0, x2, [fp, #0x10] // [V04 loc3], [V04 loc3+0x08]
+ str xzr, [fp, #0x20] // [V04 loc3+0x10]
+ stp w1, wzr, [fp, #0x28] // [V04 loc3+0x18], [V04 loc3+0x1c]
+ add x0, fp, #16 // [V04 loc3]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M31612_IG17
+ cbz w0, G_M31612_IG16
;; size=68 bbWeight=1 PerfScore 21.00
-G_M31612_IG11:
- ldr x22, [fp, #0x28] // [V04 loc3+0x10]
+G_M31612_IG10:
+ ldr x22, [fp, #0x20] // [V04 loc3+0x10]
ldr x0, [x19, #0x20]
ldr x0, [x0, #0x20]
- cbnz x0, G_M31612_IG13
+ cbnz x0, G_M31612_IG12
;; size=16 bbWeight=4 PerfScore 36.00
-G_M31612_IG12:
- cbnz x22, G_M31612_IG15
- b G_M31612_IG14
+G_M31612_IG11:
+ cbnz x22, G_M31612_IG14
+ b G_M31612_IG13
;; size=8 bbWeight=2 PerfScore 4.00
-G_M31612_IG13:
+G_M31612_IG12:
cmp x0, x22
- beq G_M31612_IG14
+ beq G_M31612_IG13
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M31612_IG15
+ cbz w0, G_M31612_IG14
;; size=32 bbWeight=2 PerfScore 26.00
-G_M31612_IG14:
+G_M31612_IG13:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #32
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M31612_IG16
+ b G_M31612_IG15
;; size=48 bbWeight=2 PerfScore 30.00
-G_M31612_IG15:
+G_M31612_IG14:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=32 bbWeight=2 PerfScore 24.00
-G_M31612_IG16:
- add x0, fp, #24 // [V04 loc3]
+G_M31612_IG15:
+ add x0, fp, #16 // [V04 loc3]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M31612_IG11
+ cbnz w0, G_M31612_IG10
;; size=32 bbWeight=4 PerfScore 30.00
-G_M31612_IG17:
+G_M31612_IG16:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
-G_M31612_IG18:
- ldr x23, [sp, #0x78]
- ldp x21, x22, [sp, #0x68]
- ldp x19, x20, [sp, #0x58]
- ldp fp, lr, [sp], #0x80
+G_M31612_IG17:
+ ldp x21, x22, [sp, #0x60]
+ ldp x19, x20, [sp, #0x50]
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 696, prolog size 36, PerfScore 408.38, instruction count 174, allocated bytes for code 696 (MethodHash=b8358483) for method System.Data.SortExpressionBuilder`1[int]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts)
+; Total bytes of code 676, prolog size 32, PerfScore 405.00, instruction count 169, allocated bytes for code 676 (MethodHash=b8358483) for method System.Data.SortExpressionBuilder`1[int]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts)
-20 (-2.87 % of base) - System.Data.SortExpressionBuilder`1[int]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this
; Assembly listing for method System.Data.SortExpressionBuilder`1[int]:CloneCast[long]():System.Data.SortExpressionBuilder`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; 12 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 6, 12 ) ref -> x19 this class-hnd single-def <System.Data.SortExpressionBuilder`1[int]>
; V01 loc0 [V01,T05] ( 8, 14 ) ref -> x20 class-hnd exact single-def <System.Data.SortExpressionBuilder`1[long]>
-; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
-; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x23 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,long]>
-; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
+; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
+; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,long]>
+; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
; V05 loc4 [V05,T07] ( 6, 14 ) ref -> x22 class-hnd <System.Comparison`1[System.Object]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T14] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[long]>
+; V07 tmp1 [V07,T15] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[long]>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,long]>
; V09 tmp3 [V09,T02] ( 4, 20 ) ref -> x1 class-hnd "impAppendStmt" <System.Func`2[int,System.Object]>
; V10 tmp4 [V10,T03] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[long,System.Object]>
-; V11 tmp5 [V11,T12] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[long,System.Object]]>
+; V11 tmp5 [V11,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[long,System.Object]]>
; V12 tmp6 [V12,T04] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[long,System.Object]>
-; V13 tmp7 [V13,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[long,System.Object]]>
-; V14 tmp8 [V14,T10] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
+; V13 tmp7 [V13,T14] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[long,System.Object]]>
+; V14 tmp8 [V14,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Func`2[int,System.Object]]>
-; V17 tmp11 [V17,T15] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V17 tmp11 [V17,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V18 tmp12 [V18,T00] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
-; V19 tmp13 [V19,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
+; V19 tmp13 [V19,T12] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
;* V20 tmp14 [V20 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Comparison`1[System.Object]]>
-; V22 tmp16 [V22,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V22 tmp16 [V22,T17] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V23 tmp17 [V23,T01] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref single-def "V15.[000..008)"
-; V25 tmp19 [V25,T20] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
+; V25 tmp19 [V25,T19] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref "V15.[016..024)"
-; V27 tmp21 [V27,T22] ( 2, 2 ) int -> x1 "V15.[024..028)"
+; V27 tmp21 [V27,T21] ( 2, 2 ) int -> x1 "V15.[024..028)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref "V15.[028..032)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V20.[000..008)"
-; V30 tmp24 [V30,T21] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
+; V30 tmp24 [V30,T20] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref "V20.[016..024)"
-; V32 tmp26 [V32,T23] ( 2, 2 ) int -> x1 "V20.[024..028)"
+; V32 tmp26 [V32,T22] ( 2, 2 ) int -> x1 "V20.[024..028)"
;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref "V20.[028..032)"
-; V34 cse0 [V34,T17] ( 3, 6 ) long -> x21 "CSE #01: moderate"
-; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #06: moderate"
-; V36 cse2 [V36,T19] ( 2, 4.25) long -> x22 hoist "CSE #02: moderate"
-; V37 cse3 [V37,T09] ( 3, 12 ) ref -> x1 "CSE #03: aggressive"
+; V34 cse0 [V34,T10] ( 4, 10 ) long -> x21 "CSE #01: aggressive"
+; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #05: moderate"
+; V36 cse2 [V36,T09] ( 3, 12 ) ref -> x1 "CSE #02: aggressive"
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M57884_IG01:
- stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x58]
- stp x21, x22, [sp, #0x68]
- str x23, [sp, #0x78]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x50]
+ stp x21, x22, [sp, #0x60]
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=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M57884_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x1, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1[long]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x38] // [V02 loc1], [V02 loc1+0x08]
- str xzr, [fp, #0x48] // [V02 loc1+0x10]
- stp w1, wzr, [fp, #0x50] // [V02 loc1+0x18], [V02 loc1+0x1c]
- add x0, fp, #56 // [V02 loc1]
+ stp x0, x2, [fp, #0x30] // [V02 loc1], [V02 loc1+0x08]
+ str xzr, [fp, #0x40] // [V02 loc1+0x10]
+ stp w1, wzr, [fp, #0x48] // [V02 loc1+0x18], [V02 loc1+0x1c]
+ add x0, fp, #48 // [V02 loc1]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M57884_IG10
+ cbz w0, G_M57884_IG09
;; size=108 bbWeight=1 PerfScore 29.50
G_M57884_IG03:
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M57884_IG04:
- mov x0, x22
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- ldr x1, [fp, #0x48] // [V02 loc1+0x10]
- add x14, x23, #8
+ mov x22, x0
+ ldr x1, [fp, #0x40] // [V02 loc1+0x10]
+ add x14, x22, #8
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x20]
- cbnz x0, G_M57884_IG06
+ cbnz x0, G_M57884_IG05
;; size=40 bbWeight=4 PerfScore 52.00
-G_M57884_IG05:
- cbnz x1, G_M57884_IG08
- b G_M57884_IG07
+G_M57884_IG04:
+ cbnz x1, G_M57884_IG07
+ b G_M57884_IG06
;; size=8 bbWeight=2 PerfScore 4.00
-G_M57884_IG06:
+G_M57884_IG05:
cmp x0, x1
- beq G_M57884_IG07
+ beq G_M57884_IG06
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M57884_IG08
+ cbz w0, G_M57884_IG07
;; size=28 bbWeight=2 PerfScore 25.00
-G_M57884_IG07:
+G_M57884_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,long]:<CloneCast>b__0(long):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M57884_IG09
+ b G_M57884_IG08
;; size=92 bbWeight=2 PerfScore 44.00
-G_M57884_IG08:
+G_M57884_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,long]:<CloneCast>b__1(long):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=76 bbWeight=2 PerfScore 38.00
-G_M57884_IG09:
- add x0, fp, #56 // [V02 loc1]
+G_M57884_IG08:
+ add x0, fp, #48 // [V02 loc1]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M57884_IG04
+ cbnz w0, G_M57884_IG03
;; size=32 bbWeight=4 PerfScore 30.00
-G_M57884_IG10:
+G_M57884_IG09:
ldr x0, [x19, #0x10]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x18] // [V04 loc3], [V04 loc3+0x08]
- str xzr, [fp, #0x28] // [V04 loc3+0x10]
- stp w1, wzr, [fp, #0x30] // [V04 loc3+0x18], [V04 loc3+0x1c]
- add x0, fp, #24 // [V04 loc3]
+ stp x0, x2, [fp, #0x10] // [V04 loc3], [V04 loc3+0x08]
+ str xzr, [fp, #0x20] // [V04 loc3+0x10]
+ stp w1, wzr, [fp, #0x28] // [V04 loc3+0x18], [V04 loc3+0x1c]
+ add x0, fp, #16 // [V04 loc3]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M57884_IG17
+ cbz w0, G_M57884_IG16
;; size=68 bbWeight=1 PerfScore 21.00
-G_M57884_IG11:
- ldr x22, [fp, #0x28] // [V04 loc3+0x10]
+G_M57884_IG10:
+ ldr x22, [fp, #0x20] // [V04 loc3+0x10]
ldr x0, [x19, #0x20]
ldr x0, [x0, #0x20]
- cbnz x0, G_M57884_IG13
+ cbnz x0, G_M57884_IG12
;; size=16 bbWeight=4 PerfScore 36.00
-G_M57884_IG12:
- cbnz x22, G_M57884_IG15
- b G_M57884_IG14
+G_M57884_IG11:
+ cbnz x22, G_M57884_IG14
+ b G_M57884_IG13
;; size=8 bbWeight=2 PerfScore 4.00
-G_M57884_IG13:
+G_M57884_IG12:
cmp x0, x22
- beq G_M57884_IG14
+ beq G_M57884_IG13
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M57884_IG15
+ cbz w0, G_M57884_IG14
;; size=32 bbWeight=2 PerfScore 26.00
-G_M57884_IG14:
+G_M57884_IG13:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #32
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M57884_IG16
+ b G_M57884_IG15
;; size=48 bbWeight=2 PerfScore 30.00
-G_M57884_IG15:
+G_M57884_IG14:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=32 bbWeight=2 PerfScore 24.00
-G_M57884_IG16:
- add x0, fp, #24 // [V04 loc3]
+G_M57884_IG15:
+ add x0, fp, #16 // [V04 loc3]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M57884_IG11
+ cbnz w0, G_M57884_IG10
;; size=32 bbWeight=4 PerfScore 30.00
-G_M57884_IG17:
+G_M57884_IG16:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
-G_M57884_IG18:
- ldr x23, [sp, #0x78]
- ldp x21, x22, [sp, #0x68]
- ldp x19, x20, [sp, #0x58]
- ldp fp, lr, [sp], #0x80
+G_M57884_IG17:
+ ldp x21, x22, [sp, #0x60]
+ ldp x19, x20, [sp, #0x50]
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 696, prolog size 36, PerfScore 408.38, instruction count 174, allocated bytes for code 696 (MethodHash=4b5a1de3) for method System.Data.SortExpressionBuilder`1[int]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts)
+; Total bytes of code 676, prolog size 32, PerfScore 405.00, instruction count 169, allocated bytes for code 676 (MethodHash=4b5a1de3) for method System.Data.SortExpressionBuilder`1[int]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts)
-20 (-2.87 % of base) - System.Data.SortExpressionBuilder`1[int]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this
; Assembly listing for method System.Data.SortExpressionBuilder`1[int]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]: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; 12 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 6, 12 ) ref -> x19 this class-hnd single-def <System.Data.SortExpressionBuilder`1[int]>
; V01 loc0 [V01,T05] ( 8, 14 ) ref -> x20 class-hnd exact single-def <System.Data.SortExpressionBuilder`1[short]>
-; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
-; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x23 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,short]>
-; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
+; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
+; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,short]>
+; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
; V05 loc4 [V05,T07] ( 6, 14 ) ref -> x22 class-hnd <System.Comparison`1[System.Object]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T14] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[short]>
+; V07 tmp1 [V07,T15] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[short]>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,short]>
; V09 tmp3 [V09,T02] ( 4, 20 ) ref -> x1 class-hnd "impAppendStmt" <System.Func`2[int,System.Object]>
; V10 tmp4 [V10,T03] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[short,System.Object]>
-; V11 tmp5 [V11,T12] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
+; V11 tmp5 [V11,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
; V12 tmp6 [V12,T04] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[short,System.Object]>
-; V13 tmp7 [V13,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
-; V14 tmp8 [V14,T10] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
+; V13 tmp7 [V13,T14] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
+; V14 tmp8 [V14,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Func`2[int,System.Object]]>
-; V17 tmp11 [V17,T15] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V17 tmp11 [V17,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V18 tmp12 [V18,T00] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
-; V19 tmp13 [V19,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
+; V19 tmp13 [V19,T12] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
;* V20 tmp14 [V20 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Comparison`1[System.Object]]>
-; V22 tmp16 [V22,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V22 tmp16 [V22,T17] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V23 tmp17 [V23,T01] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref single-def "V15.[000..008)"
-; V25 tmp19 [V25,T20] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
+; V25 tmp19 [V25,T19] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref "V15.[016..024)"
-; V27 tmp21 [V27,T22] ( 2, 2 ) int -> x1 "V15.[024..028)"
+; V27 tmp21 [V27,T21] ( 2, 2 ) int -> x1 "V15.[024..028)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref "V15.[028..032)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V20.[000..008)"
-; V30 tmp24 [V30,T21] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
+; V30 tmp24 [V30,T20] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref "V20.[016..024)"
-; V32 tmp26 [V32,T23] ( 2, 2 ) int -> x1 "V20.[024..028)"
+; V32 tmp26 [V32,T22] ( 2, 2 ) int -> x1 "V20.[024..028)"
;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref "V20.[028..032)"
-; V34 cse0 [V34,T17] ( 3, 6 ) long -> x21 "CSE #01: moderate"
-; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #06: moderate"
-; V36 cse2 [V36,T19] ( 2, 4.25) long -> x22 hoist "CSE #02: moderate"
-; V37 cse3 [V37,T09] ( 3, 12 ) ref -> x1 "CSE #03: aggressive"
+; V34 cse0 [V34,T10] ( 4, 10 ) long -> x21 "CSE #01: aggressive"
+; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #05: moderate"
+; V36 cse2 [V36,T09] ( 3, 12 ) ref -> x1 "CSE #02: aggressive"
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M1500_IG01:
- stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x58]
- stp x21, x22, [sp, #0x68]
- str x23, [sp, #0x78]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x50]
+ stp x21, x22, [sp, #0x60]
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=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M1500_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x1, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1[short]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x38] // [V02 loc1], [V02 loc1+0x08]
- str xzr, [fp, #0x48] // [V02 loc1+0x10]
- stp w1, wzr, [fp, #0x50] // [V02 loc1+0x18], [V02 loc1+0x1c]
- add x0, fp, #56 // [V02 loc1]
+ stp x0, x2, [fp, #0x30] // [V02 loc1], [V02 loc1+0x08]
+ str xzr, [fp, #0x40] // [V02 loc1+0x10]
+ stp w1, wzr, [fp, #0x48] // [V02 loc1+0x18], [V02 loc1+0x1c]
+ add x0, fp, #48 // [V02 loc1]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M1500_IG10
+ cbz w0, G_M1500_IG09
;; size=108 bbWeight=1 PerfScore 29.50
G_M1500_IG03:
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M1500_IG04:
- mov x0, x22
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- ldr x1, [fp, #0x48] // [V02 loc1+0x10]
- add x14, x23, #8
+ mov x22, x0
+ ldr x1, [fp, #0x40] // [V02 loc1+0x10]
+ add x14, x22, #8
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x20]
- cbnz x0, G_M1500_IG06
+ cbnz x0, G_M1500_IG05
;; size=40 bbWeight=4 PerfScore 52.00
-G_M1500_IG05:
- cbnz x1, G_M1500_IG08
- b G_M1500_IG07
+G_M1500_IG04:
+ cbnz x1, G_M1500_IG07
+ b G_M1500_IG06
;; size=8 bbWeight=2 PerfScore 4.00
-G_M1500_IG06:
+G_M1500_IG05:
cmp x0, x1
- beq G_M1500_IG07
+ beq G_M1500_IG06
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M1500_IG08
+ cbz w0, G_M1500_IG07
;; size=28 bbWeight=2 PerfScore 25.00
-G_M1500_IG07:
+G_M1500_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,short]:<CloneCast>b__0(short):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M1500_IG09
+ b G_M1500_IG08
;; size=92 bbWeight=2 PerfScore 44.00
-G_M1500_IG08:
+G_M1500_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,short]:<CloneCast>b__1(short):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=76 bbWeight=2 PerfScore 38.00
-G_M1500_IG09:
- add x0, fp, #56 // [V02 loc1]
+G_M1500_IG08:
+ add x0, fp, #48 // [V02 loc1]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M1500_IG04
+ cbnz w0, G_M1500_IG03
;; size=32 bbWeight=4 PerfScore 30.00
-G_M1500_IG10:
+G_M1500_IG09:
ldr x0, [x19, #0x10]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x18] // [V04 loc3], [V04 loc3+0x08]
- str xzr, [fp, #0x28] // [V04 loc3+0x10]
- stp w1, wzr, [fp, #0x30] // [V04 loc3+0x18], [V04 loc3+0x1c]
- add x0, fp, #24 // [V04 loc3]
+ stp x0, x2, [fp, #0x10] // [V04 loc3], [V04 loc3+0x08]
+ str xzr, [fp, #0x20] // [V04 loc3+0x10]
+ stp w1, wzr, [fp, #0x28] // [V04 loc3+0x18], [V04 loc3+0x1c]
+ add x0, fp, #16 // [V04 loc3]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M1500_IG17
+ cbz w0, G_M1500_IG16
;; size=68 bbWeight=1 PerfScore 21.00
-G_M1500_IG11:
- ldr x22, [fp, #0x28] // [V04 loc3+0x10]
+G_M1500_IG10:
+ ldr x22, [fp, #0x20] // [V04 loc3+0x10]
ldr x0, [x19, #0x20]
ldr x0, [x0, #0x20]
- cbnz x0, G_M1500_IG13
+ cbnz x0, G_M1500_IG12
;; size=16 bbWeight=4 PerfScore 36.00
-G_M1500_IG12:
- cbnz x22, G_M1500_IG15
- b G_M1500_IG14
+G_M1500_IG11:
+ cbnz x22, G_M1500_IG14
+ b G_M1500_IG13
;; size=8 bbWeight=2 PerfScore 4.00
-G_M1500_IG13:
+G_M1500_IG12:
cmp x0, x22
- beq G_M1500_IG14
+ beq G_M1500_IG13
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M1500_IG15
+ cbz w0, G_M1500_IG14
;; size=32 bbWeight=2 PerfScore 26.00
-G_M1500_IG14:
+G_M1500_IG13:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #32
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M1500_IG16
+ b G_M1500_IG15
;; size=48 bbWeight=2 PerfScore 30.00
-G_M1500_IG15:
+G_M1500_IG14:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=32 bbWeight=2 PerfScore 24.00
-G_M1500_IG16:
- add x0, fp, #24 // [V04 loc3]
+G_M1500_IG15:
+ add x0, fp, #16 // [V04 loc3]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M1500_IG11
+ cbnz w0, G_M1500_IG10
;; size=32 bbWeight=4 PerfScore 30.00
-G_M1500_IG17:
+G_M1500_IG16:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
-G_M1500_IG18:
- ldr x23, [sp, #0x78]
- ldp x21, x22, [sp, #0x68]
- ldp x19, x20, [sp, #0x58]
- ldp fp, lr, [sp], #0x80
+G_M1500_IG17:
+ ldp x21, x22, [sp, #0x60]
+ ldp x19, x20, [sp, #0x50]
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 696, prolog size 36, PerfScore 408.38, instruction count 174, allocated bytes for code 696 (MethodHash=1c37fa23) for method System.Data.SortExpressionBuilder`1[int]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts)
+; Total bytes of code 676, prolog size 32, PerfScore 405.00, instruction count 169, allocated bytes for code 676 (MethodHash=1c37fa23) for method System.Data.SortExpressionBuilder`1[int]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts)
-20 (-2.87 % of base) - System.Data.SortExpressionBuilder`1[int]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this
; Assembly listing for method System.Data.SortExpressionBuilder`1[int]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`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; 12 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 6, 12 ) ref -> x19 this class-hnd single-def <System.Data.SortExpressionBuilder`1[int]>
; V01 loc0 [V01,T05] ( 8, 14 ) ref -> x20 class-hnd exact single-def <System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]>
-; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
-; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x23 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,System.Nullable`1[int]]>
-; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
+; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
+; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,System.Nullable`1[int]]>
+; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
; V05 loc4 [V05,T07] ( 6, 14 ) ref -> x22 class-hnd <System.Comparison`1[System.Object]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T14] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]>
+; V07 tmp1 [V07,T15] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,System.Nullable`1[int]]>
; V09 tmp3 [V09,T02] ( 4, 20 ) ref -> x1 class-hnd "impAppendStmt" <System.Func`2[int,System.Object]>
; V10 tmp4 [V10,T03] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[System.Nullable`1[int],System.Object]>
-; V11 tmp5 [V11,T12] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[System.Nullable`1[int],System.Object]]>
+; V11 tmp5 [V11,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[System.Nullable`1[int],System.Object]]>
; V12 tmp6 [V12,T04] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[System.Nullable`1[int],System.Object]>
-; V13 tmp7 [V13,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[System.Nullable`1[int],System.Object]]>
-; V14 tmp8 [V14,T10] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
+; V13 tmp7 [V13,T14] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[System.Nullable`1[int],System.Object]]>
+; V14 tmp8 [V14,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Func`2[int,System.Object]]>
-; V17 tmp11 [V17,T15] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V17 tmp11 [V17,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V18 tmp12 [V18,T00] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
-; V19 tmp13 [V19,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
+; V19 tmp13 [V19,T12] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
;* V20 tmp14 [V20 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Comparison`1[System.Object]]>
-; V22 tmp16 [V22,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V22 tmp16 [V22,T17] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V23 tmp17 [V23,T01] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref single-def "V15.[000..008)"
-; V25 tmp19 [V25,T20] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
+; V25 tmp19 [V25,T19] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref "V15.[016..024)"
-; V27 tmp21 [V27,T22] ( 2, 2 ) int -> x1 "V15.[024..028)"
+; V27 tmp21 [V27,T21] ( 2, 2 ) int -> x1 "V15.[024..028)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref "V15.[028..032)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V20.[000..008)"
-; V30 tmp24 [V30,T21] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
+; V30 tmp24 [V30,T20] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref "V20.[016..024)"
-; V32 tmp26 [V32,T23] ( 2, 2 ) int -> x1 "V20.[024..028)"
+; V32 tmp26 [V32,T22] ( 2, 2 ) int -> x1 "V20.[024..028)"
;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref "V20.[028..032)"
-; V34 cse0 [V34,T17] ( 3, 6 ) long -> x21 "CSE #01: moderate"
-; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #06: moderate"
-; V36 cse2 [V36,T19] ( 2, 4.25) long -> x22 hoist "CSE #02: moderate"
-; V37 cse3 [V37,T09] ( 3, 12 ) ref -> x1 "CSE #03: aggressive"
+; V34 cse0 [V34,T10] ( 4, 10 ) long -> x21 "CSE #01: aggressive"
+; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #05: moderate"
+; V36 cse2 [V36,T09] ( 3, 12 ) ref -> x1 "CSE #02: aggressive"
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M32028_IG01:
- stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x58]
- stp x21, x22, [sp, #0x68]
- str x23, [sp, #0x78]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x50]
+ stp x21, x22, [sp, #0x60]
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=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M32028_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x1, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x38] // [V02 loc1], [V02 loc1+0x08]
- str xzr, [fp, #0x48] // [V02 loc1+0x10]
- stp w1, wzr, [fp, #0x50] // [V02 loc1+0x18], [V02 loc1+0x1c]
- add x0, fp, #56 // [V02 loc1]
+ stp x0, x2, [fp, #0x30] // [V02 loc1], [V02 loc1+0x08]
+ str xzr, [fp, #0x40] // [V02 loc1+0x10]
+ stp w1, wzr, [fp, #0x48] // [V02 loc1+0x18], [V02 loc1+0x1c]
+ add x0, fp, #48 // [V02 loc1]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M32028_IG10
+ cbz w0, G_M32028_IG09
;; size=108 bbWeight=1 PerfScore 29.50
G_M32028_IG03:
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M32028_IG04:
- mov x0, x22
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- ldr x1, [fp, #0x48] // [V02 loc1+0x10]
- add x14, x23, #8
+ mov x22, x0
+ ldr x1, [fp, #0x40] // [V02 loc1+0x10]
+ add x14, x22, #8
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x20]
- cbnz x0, G_M32028_IG06
+ cbnz x0, G_M32028_IG05
;; size=40 bbWeight=4 PerfScore 52.00
-G_M32028_IG05:
- cbnz x1, G_M32028_IG08
- b G_M32028_IG07
+G_M32028_IG04:
+ cbnz x1, G_M32028_IG07
+ b G_M32028_IG06
;; size=8 bbWeight=2 PerfScore 4.00
-G_M32028_IG06:
+G_M32028_IG05:
cmp x0, x1
- beq G_M32028_IG07
+ beq G_M32028_IG06
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M32028_IG08
+ cbz w0, G_M32028_IG07
;; size=28 bbWeight=2 PerfScore 25.00
-G_M32028_IG07:
+G_M32028_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,System.Nullable`1[int]]:<CloneCast>b__0(System.Nullable`1[int]):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M32028_IG09
+ b G_M32028_IG08
;; size=92 bbWeight=2 PerfScore 44.00
-G_M32028_IG08:
+G_M32028_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,System.Nullable`1[int]]:<CloneCast>b__1(System.Nullable`1[int]):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=76 bbWeight=2 PerfScore 38.00
-G_M32028_IG09:
- add x0, fp, #56 // [V02 loc1]
+G_M32028_IG08:
+ add x0, fp, #48 // [V02 loc1]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M32028_IG04
+ cbnz w0, G_M32028_IG03
;; size=32 bbWeight=4 PerfScore 30.00
-G_M32028_IG10:
+G_M32028_IG09:
ldr x0, [x19, #0x10]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x18] // [V04 loc3], [V04 loc3+0x08]
- str xzr, [fp, #0x28] // [V04 loc3+0x10]
- stp w1, wzr, [fp, #0x30] // [V04 loc3+0x18], [V04 loc3+0x1c]
- add x0, fp, #24 // [V04 loc3]
+ stp x0, x2, [fp, #0x10] // [V04 loc3], [V04 loc3+0x08]
+ str xzr, [fp, #0x20] // [V04 loc3+0x10]
+ stp w1, wzr, [fp, #0x28] // [V04 loc3+0x18], [V04 loc3+0x1c]
+ add x0, fp, #16 // [V04 loc3]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M32028_IG17
+ cbz w0, G_M32028_IG16
;; size=68 bbWeight=1 PerfScore 21.00
-G_M32028_IG11:
- ldr x22, [fp, #0x28] // [V04 loc3+0x10]
+G_M32028_IG10:
+ ldr x22, [fp, #0x20] // [V04 loc3+0x10]
ldr x0, [x19, #0x20]
ldr x0, [x0, #0x20]
- cbnz x0, G_M32028_IG13
+ cbnz x0, G_M32028_IG12
;; size=16 bbWeight=4 PerfScore 36.00
-G_M32028_IG12:
- cbnz x22, G_M32028_IG15
- b G_M32028_IG14
+G_M32028_IG11:
+ cbnz x22, G_M32028_IG14
+ b G_M32028_IG13
;; size=8 bbWeight=2 PerfScore 4.00
-G_M32028_IG13:
+G_M32028_IG12:
cmp x0, x22
- beq G_M32028_IG14
+ beq G_M32028_IG13
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M32028_IG15
+ cbz w0, G_M32028_IG14
;; size=32 bbWeight=2 PerfScore 26.00
-G_M32028_IG14:
+G_M32028_IG13:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #32
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M32028_IG16
+ b G_M32028_IG15
;; size=48 bbWeight=2 PerfScore 30.00
-G_M32028_IG15:
+G_M32028_IG14:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=32 bbWeight=2 PerfScore 24.00
-G_M32028_IG16:
- add x0, fp, #24 // [V04 loc3]
+G_M32028_IG15:
+ add x0, fp, #16 // [V04 loc3]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M32028_IG11
+ cbnz w0, G_M32028_IG10
;; size=32 bbWeight=4 PerfScore 30.00
-G_M32028_IG17:
+G_M32028_IG16:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
-G_M32028_IG18:
- ldr x23, [sp, #0x78]
- ldp x21, x22, [sp, #0x68]
- ldp x19, x20, [sp, #0x58]
- ldp fp, lr, [sp], #0x80
+G_M32028_IG17:
+ ldp x21, x22, [sp, #0x60]
+ ldp x19, x20, [sp, #0x50]
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 696, prolog size 36, PerfScore 408.38, instruction count 174, allocated bytes for code 696 (MethodHash=f2ac82e3) for method System.Data.SortExpressionBuilder`1[int]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts)
+; Total bytes of code 676, prolog size 32, PerfScore 405.00, instruction count 169, allocated bytes for code 676 (MethodHash=f2ac82e3) for method System.Data.SortExpressionBuilder`1[int]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts)
-20 (-2.87 % of base) - System.Data.SortExpressionBuilder`1[int]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this
; Assembly listing for method System.Data.SortExpressionBuilder`1[int]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`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; 12 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 6, 12 ) ref -> x19 this class-hnd single-def <System.Data.SortExpressionBuilder`1[int]>
; V01 loc0 [V01,T05] ( 8, 14 ) ref -> x20 class-hnd exact single-def <System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]>
-; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
-; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x23 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,System.Numerics.Vector`1[float]]>
-; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
+; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
+; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,System.Numerics.Vector`1[float]]>
+; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
; V05 loc4 [V05,T07] ( 6, 14 ) ref -> x22 class-hnd <System.Comparison`1[System.Object]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T14] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]>
+; V07 tmp1 [V07,T15] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,System.Numerics.Vector`1[float]]>
; V09 tmp3 [V09,T02] ( 4, 20 ) ref -> x1 class-hnd "impAppendStmt" <System.Func`2[int,System.Object]>
; V10 tmp4 [V10,T03] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[System.Numerics.Vector`1[float],System.Object]>
-; V11 tmp5 [V11,T12] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[System.Numerics.Vector`1[float],System.Object]]>
+; V11 tmp5 [V11,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[System.Numerics.Vector`1[float],System.Object]]>
; V12 tmp6 [V12,T04] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[System.Numerics.Vector`1[float],System.Object]>
-; V13 tmp7 [V13,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[System.Numerics.Vector`1[float],System.Object]]>
-; V14 tmp8 [V14,T10] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
+; V13 tmp7 [V13,T14] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[System.Numerics.Vector`1[float],System.Object]]>
+; V14 tmp8 [V14,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Func`2[int,System.Object]]>
-; V17 tmp11 [V17,T15] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V17 tmp11 [V17,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V18 tmp12 [V18,T00] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
-; V19 tmp13 [V19,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
+; V19 tmp13 [V19,T12] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
;* V20 tmp14 [V20 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Comparison`1[System.Object]]>
-; V22 tmp16 [V22,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V22 tmp16 [V22,T17] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V23 tmp17 [V23,T01] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref single-def "V15.[000..008)"
-; V25 tmp19 [V25,T20] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
+; V25 tmp19 [V25,T19] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref "V15.[016..024)"
-; V27 tmp21 [V27,T22] ( 2, 2 ) int -> x1 "V15.[024..028)"
+; V27 tmp21 [V27,T21] ( 2, 2 ) int -> x1 "V15.[024..028)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref "V15.[028..032)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V20.[000..008)"
-; V30 tmp24 [V30,T21] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
+; V30 tmp24 [V30,T20] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref "V20.[016..024)"
-; V32 tmp26 [V32,T23] ( 2, 2 ) int -> x1 "V20.[024..028)"
+; V32 tmp26 [V32,T22] ( 2, 2 ) int -> x1 "V20.[024..028)"
;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref "V20.[028..032)"
-; V34 cse0 [V34,T17] ( 3, 6 ) long -> x21 "CSE #01: moderate"
-; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #06: moderate"
-; V36 cse2 [V36,T19] ( 2, 4.25) long -> x22 hoist "CSE #02: moderate"
-; V37 cse3 [V37,T09] ( 3, 12 ) ref -> x1 "CSE #03: aggressive"
+; V34 cse0 [V34,T10] ( 4, 10 ) long -> x21 "CSE #01: aggressive"
+; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #05: moderate"
+; V36 cse2 [V36,T09] ( 3, 12 ) ref -> x1 "CSE #02: aggressive"
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M13756_IG01:
- stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x58]
- stp x21, x22, [sp, #0x68]
- str x23, [sp, #0x78]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x50]
+ stp x21, x22, [sp, #0x60]
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=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M13756_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x1, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x38] // [V02 loc1], [V02 loc1+0x08]
- str xzr, [fp, #0x48] // [V02 loc1+0x10]
- stp w1, wzr, [fp, #0x50] // [V02 loc1+0x18], [V02 loc1+0x1c]
- add x0, fp, #56 // [V02 loc1]
+ stp x0, x2, [fp, #0x30] // [V02 loc1], [V02 loc1+0x08]
+ str xzr, [fp, #0x40] // [V02 loc1+0x10]
+ stp w1, wzr, [fp, #0x48] // [V02 loc1+0x18], [V02 loc1+0x1c]
+ add x0, fp, #48 // [V02 loc1]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M13756_IG10
+ cbz w0, G_M13756_IG09
;; size=108 bbWeight=1 PerfScore 29.50
G_M13756_IG03:
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M13756_IG04:
- mov x0, x22
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- ldr x1, [fp, #0x48] // [V02 loc1+0x10]
- add x14, x23, #8
+ mov x22, x0
+ ldr x1, [fp, #0x40] // [V02 loc1+0x10]
+ add x14, x22, #8
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x20]
- cbnz x0, G_M13756_IG06
+ cbnz x0, G_M13756_IG05
;; size=40 bbWeight=4 PerfScore 52.00
-G_M13756_IG05:
- cbnz x1, G_M13756_IG08
- b G_M13756_IG07
+G_M13756_IG04:
+ cbnz x1, G_M13756_IG07
+ b G_M13756_IG06
;; size=8 bbWeight=2 PerfScore 4.00
-G_M13756_IG06:
+G_M13756_IG05:
cmp x0, x1
- beq G_M13756_IG07
+ beq G_M13756_IG06
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M13756_IG08
+ cbz w0, G_M13756_IG07
;; size=28 bbWeight=2 PerfScore 25.00
-G_M13756_IG07:
+G_M13756_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,System.Numerics.Vector`1[float]]:<CloneCast>b__0(System.Numerics.Vector`1[float]):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M13756_IG09
+ b G_M13756_IG08
;; size=92 bbWeight=2 PerfScore 44.00
-G_M13756_IG08:
+G_M13756_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,System.Numerics.Vector`1[float]]:<CloneCast>b__1(System.Numerics.Vector`1[float]):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=76 bbWeight=2 PerfScore 38.00
-G_M13756_IG09:
- add x0, fp, #56 // [V02 loc1]
+G_M13756_IG08:
+ add x0, fp, #48 // [V02 loc1]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M13756_IG04
+ cbnz w0, G_M13756_IG03
;; size=32 bbWeight=4 PerfScore 30.00
-G_M13756_IG10:
+G_M13756_IG09:
ldr x0, [x19, #0x10]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x18] // [V04 loc3], [V04 loc3+0x08]
- str xzr, [fp, #0x28] // [V04 loc3+0x10]
- stp w1, wzr, [fp, #0x30] // [V04 loc3+0x18], [V04 loc3+0x1c]
- add x0, fp, #24 // [V04 loc3]
+ stp x0, x2, [fp, #0x10] // [V04 loc3], [V04 loc3+0x08]
+ str xzr, [fp, #0x20] // [V04 loc3+0x10]
+ stp w1, wzr, [fp, #0x28] // [V04 loc3+0x18], [V04 loc3+0x1c]
+ add x0, fp, #16 // [V04 loc3]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M13756_IG17
+ cbz w0, G_M13756_IG16
;; size=68 bbWeight=1 PerfScore 21.00
-G_M13756_IG11:
- ldr x22, [fp, #0x28] // [V04 loc3+0x10]
+G_M13756_IG10:
+ ldr x22, [fp, #0x20] // [V04 loc3+0x10]
ldr x0, [x19, #0x20]
ldr x0, [x0, #0x20]
- cbnz x0, G_M13756_IG13
+ cbnz x0, G_M13756_IG12
;; size=16 bbWeight=4 PerfScore 36.00
-G_M13756_IG12:
- cbnz x22, G_M13756_IG15
- b G_M13756_IG14
+G_M13756_IG11:
+ cbnz x22, G_M13756_IG14
+ b G_M13756_IG13
;; size=8 bbWeight=2 PerfScore 4.00
-G_M13756_IG13:
+G_M13756_IG12:
cmp x0, x22
- beq G_M13756_IG14
+ beq G_M13756_IG13
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M13756_IG15
+ cbz w0, G_M13756_IG14
;; size=32 bbWeight=2 PerfScore 26.00
-G_M13756_IG14:
+G_M13756_IG13:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #32
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M13756_IG16
+ b G_M13756_IG15
;; size=48 bbWeight=2 PerfScore 30.00
-G_M13756_IG15:
+G_M13756_IG14:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=32 bbWeight=2 PerfScore 24.00
-G_M13756_IG16:
- add x0, fp, #24 // [V04 loc3]
+G_M13756_IG15:
+ add x0, fp, #16 // [V04 loc3]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M13756_IG11
+ cbnz w0, G_M13756_IG10
;; size=32 bbWeight=4 PerfScore 30.00
-G_M13756_IG17:
+G_M13756_IG16:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
-G_M13756_IG18:
- ldr x23, [sp, #0x78]
- ldp x21, x22, [sp, #0x68]
- ldp x19, x20, [sp, #0x58]
- ldp fp, lr, [sp], #0x80
+G_M13756_IG17:
+ ldp x21, x22, [sp, #0x60]
+ ldp x19, x20, [sp, #0x50]
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 696, prolog size 36, PerfScore 408.38, instruction count 174, allocated bytes for code 696 (MethodHash=ff52ca43) for method System.Data.SortExpressionBuilder`1[int]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts)
+; Total bytes of code 676, prolog size 32, PerfScore 405.00, instruction count 169, allocated bytes for code 676 (MethodHash=ff52ca43) for method System.Data.SortExpressionBuilder`1[int]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts)
-20 (-2.87 % of base) - System.Data.SortExpressionBuilder`1[int]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this
; Assembly listing for method System.Data.SortExpressionBuilder`1[int]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[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; 12 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 6, 12 ) ref -> x19 this class-hnd single-def <System.Data.SortExpressionBuilder`1[int]>
; V01 loc0 [V01,T05] ( 8, 14 ) ref -> x20 class-hnd exact single-def <System.Data.SortExpressionBuilder`1[ubyte]>
-; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
-; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x23 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,ubyte]>
-; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
+; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
+; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,ubyte]>
+; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
; V05 loc4 [V05,T07] ( 6, 14 ) ref -> x22 class-hnd <System.Comparison`1[System.Object]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T14] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[ubyte]>
+; V07 tmp1 [V07,T15] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[ubyte]>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,ubyte]>
; V09 tmp3 [V09,T02] ( 4, 20 ) ref -> x1 class-hnd "impAppendStmt" <System.Func`2[int,System.Object]>
; V10 tmp4 [V10,T03] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[ubyte,System.Object]>
-; V11 tmp5 [V11,T12] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[ubyte,System.Object]]>
+; V11 tmp5 [V11,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[ubyte,System.Object]]>
; V12 tmp6 [V12,T04] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[ubyte,System.Object]>
-; V13 tmp7 [V13,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[ubyte,System.Object]]>
-; V14 tmp8 [V14,T10] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
+; V13 tmp7 [V13,T14] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[ubyte,System.Object]]>
+; V14 tmp8 [V14,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[int,System.Object]]>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Func`2[int,System.Object]]>
-; V17 tmp11 [V17,T15] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V17 tmp11 [V17,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V18 tmp12 [V18,T00] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
-; V19 tmp13 [V19,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
+; V19 tmp13 [V19,T12] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
;* V20 tmp14 [V20 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Comparison`1[System.Object]]>
-; V22 tmp16 [V22,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V22 tmp16 [V22,T17] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V23 tmp17 [V23,T01] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref single-def "V15.[000..008)"
-; V25 tmp19 [V25,T20] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
+; V25 tmp19 [V25,T19] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref "V15.[016..024)"
-; V27 tmp21 [V27,T22] ( 2, 2 ) int -> x1 "V15.[024..028)"
+; V27 tmp21 [V27,T21] ( 2, 2 ) int -> x1 "V15.[024..028)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref "V15.[028..032)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V20.[000..008)"
-; V30 tmp24 [V30,T21] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
+; V30 tmp24 [V30,T20] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref "V20.[016..024)"
-; V32 tmp26 [V32,T23] ( 2, 2 ) int -> x1 "V20.[024..028)"
+; V32 tmp26 [V32,T22] ( 2, 2 ) int -> x1 "V20.[024..028)"
;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref "V20.[028..032)"
-; V34 cse0 [V34,T17] ( 3, 6 ) long -> x21 "CSE #01: moderate"
-; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #06: moderate"
-; V36 cse2 [V36,T19] ( 2, 4.25) long -> x22 hoist "CSE #02: moderate"
-; V37 cse3 [V37,T09] ( 3, 12 ) ref -> x1 "CSE #03: aggressive"
+; V34 cse0 [V34,T10] ( 4, 10 ) long -> x21 "CSE #01: aggressive"
+; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #05: moderate"
+; V36 cse2 [V36,T09] ( 3, 12 ) ref -> x1 "CSE #02: aggressive"
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M22780_IG01:
- stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x58]
- stp x21, x22, [sp, #0x68]
- str x23, [sp, #0x78]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x50]
+ stp x21, x22, [sp, #0x60]
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=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M22780_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x1, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1[ubyte]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x38] // [V02 loc1], [V02 loc1+0x08]
- str xzr, [fp, #0x48] // [V02 loc1+0x10]
- stp w1, wzr, [fp, #0x50] // [V02 loc1+0x18], [V02 loc1+0x1c]
- add x0, fp, #56 // [V02 loc1]
+ stp x0, x2, [fp, #0x30] // [V02 loc1], [V02 loc1+0x08]
+ str xzr, [fp, #0x40] // [V02 loc1+0x10]
+ stp w1, wzr, [fp, #0x48] // [V02 loc1+0x18], [V02 loc1+0x1c]
+ add x0, fp, #48 // [V02 loc1]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M22780_IG10
+ cbz w0, G_M22780_IG09
;; size=108 bbWeight=1 PerfScore 29.50
G_M22780_IG03:
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M22780_IG04:
- mov x0, x22
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- ldr x1, [fp, #0x48] // [V02 loc1+0x10]
- add x14, x23, #8
+ mov x22, x0
+ ldr x1, [fp, #0x40] // [V02 loc1+0x10]
+ add x14, x22, #8
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x20]
- cbnz x0, G_M22780_IG06
+ cbnz x0, G_M22780_IG05
;; size=40 bbWeight=4 PerfScore 52.00
-G_M22780_IG05:
- cbnz x1, G_M22780_IG08
- b G_M22780_IG07
+G_M22780_IG04:
+ cbnz x1, G_M22780_IG07
+ b G_M22780_IG06
;; size=8 bbWeight=2 PerfScore 4.00
-G_M22780_IG06:
+G_M22780_IG05:
cmp x0, x1
- beq G_M22780_IG07
+ beq G_M22780_IG06
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M22780_IG08
+ cbz w0, G_M22780_IG07
;; size=28 bbWeight=2 PerfScore 25.00
-G_M22780_IG07:
+G_M22780_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,ubyte]:<CloneCast>b__0(ubyte):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M22780_IG09
+ b G_M22780_IG08
;; size=92 bbWeight=2 PerfScore 44.00
-G_M22780_IG08:
+G_M22780_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[int,ubyte]:<CloneCast>b__1(ubyte):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=76 bbWeight=2 PerfScore 38.00
-G_M22780_IG09:
- add x0, fp, #56 // [V02 loc1]
+G_M22780_IG08:
+ add x0, fp, #48 // [V02 loc1]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M22780_IG04
+ cbnz w0, G_M22780_IG03
;; size=32 bbWeight=4 PerfScore 30.00
-G_M22780_IG10:
+G_M22780_IG09:
ldr x0, [x19, #0x10]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x18] // [V04 loc3], [V04 loc3+0x08]
- str xzr, [fp, #0x28] // [V04 loc3+0x10]
- stp w1, wzr, [fp, #0x30] // [V04 loc3+0x18], [V04 loc3+0x1c]
- add x0, fp, #24 // [V04 loc3]
+ stp x0, x2, [fp, #0x10] // [V04 loc3], [V04 loc3+0x08]
+ str xzr, [fp, #0x20] // [V04 loc3+0x10]
+ stp w1, wzr, [fp, #0x28] // [V04 loc3+0x18], [V04 loc3+0x1c]
+ add x0, fp, #16 // [V04 loc3]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M22780_IG17
+ cbz w0, G_M22780_IG16
;; size=68 bbWeight=1 PerfScore 21.00
-G_M22780_IG11:
- ldr x22, [fp, #0x28] // [V04 loc3+0x10]
+G_M22780_IG10:
+ ldr x22, [fp, #0x20] // [V04 loc3+0x10]
ldr x0, [x19, #0x20]
ldr x0, [x0, #0x20]
- cbnz x0, G_M22780_IG13
+ cbnz x0, G_M22780_IG12
;; size=16 bbWeight=4 PerfScore 36.00
-G_M22780_IG12:
- cbnz x22, G_M22780_IG15
- b G_M22780_IG14
+G_M22780_IG11:
+ cbnz x22, G_M22780_IG14
+ b G_M22780_IG13
;; size=8 bbWeight=2 PerfScore 4.00
-G_M22780_IG13:
+G_M22780_IG12:
cmp x0, x22
- beq G_M22780_IG14
+ beq G_M22780_IG13
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M22780_IG15
+ cbz w0, G_M22780_IG14
;; size=32 bbWeight=2 PerfScore 26.00
-G_M22780_IG14:
+G_M22780_IG13:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #32
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M22780_IG16
+ b G_M22780_IG15
;; size=48 bbWeight=2 PerfScore 30.00
-G_M22780_IG15:
+G_M22780_IG14:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=32 bbWeight=2 PerfScore 24.00
-G_M22780_IG16:
- add x0, fp, #24 // [V04 loc3]
+G_M22780_IG15:
+ add x0, fp, #16 // [V04 loc3]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M22780_IG11
+ cbnz w0, G_M22780_IG10
;; size=32 bbWeight=4 PerfScore 30.00
-G_M22780_IG17:
+G_M22780_IG16:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
-G_M22780_IG18:
- ldr x23, [sp, #0x78]
- ldp x21, x22, [sp, #0x68]
- ldp x19, x20, [sp, #0x58]
- ldp fp, lr, [sp], #0x80
+G_M22780_IG17:
+ ldp x21, x22, [sp, #0x60]
+ ldp x19, x20, [sp, #0x50]
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 696, prolog size 36, PerfScore 408.38, instruction count 174, allocated bytes for code 696 (MethodHash=f671a703) for method System.Data.SortExpressionBuilder`1[int]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts)
+; Total bytes of code 676, prolog size 32, PerfScore 405.00, instruction count 169, allocated bytes for code 676 (MethodHash=f671a703) for method System.Data.SortExpressionBuilder`1[int]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts)
-20 (-2.87 % of base) - System.Data.SortExpressionBuilder`1[short]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this
; Assembly listing for method System.Data.SortExpressionBuilder`1[short]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]: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; 12 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 6, 12 ) ref -> x19 this class-hnd single-def <System.Data.SortExpressionBuilder`1[short]>
; V01 loc0 [V01,T05] ( 8, 14 ) ref -> x20 class-hnd exact single-def <System.Data.SortExpressionBuilder`1[double]>
-; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
-; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x23 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,double]>
-; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
+; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
+; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,double]>
+; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
; V05 loc4 [V05,T07] ( 6, 14 ) ref -> x22 class-hnd <System.Comparison`1[System.Object]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T14] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[double]>
+; V07 tmp1 [V07,T15] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[double]>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,double]>
; V09 tmp3 [V09,T02] ( 4, 20 ) ref -> x1 class-hnd "impAppendStmt" <System.Func`2[short,System.Object]>
; V10 tmp4 [V10,T03] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[double,System.Object]>
-; V11 tmp5 [V11,T12] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[double,System.Object]]>
+; V11 tmp5 [V11,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[double,System.Object]]>
; V12 tmp6 [V12,T04] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[double,System.Object]>
-; V13 tmp7 [V13,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[double,System.Object]]>
-; V14 tmp8 [V14,T10] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
+; V13 tmp7 [V13,T14] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[double,System.Object]]>
+; V14 tmp8 [V14,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Func`2[short,System.Object]]>
-; V17 tmp11 [V17,T15] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V17 tmp11 [V17,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V18 tmp12 [V18,T00] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
-; V19 tmp13 [V19,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
+; V19 tmp13 [V19,T12] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
;* V20 tmp14 [V20 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Comparison`1[System.Object]]>
-; V22 tmp16 [V22,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V22 tmp16 [V22,T17] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V23 tmp17 [V23,T01] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref single-def "V15.[000..008)"
-; V25 tmp19 [V25,T20] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
+; V25 tmp19 [V25,T19] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref "V15.[016..024)"
-; V27 tmp21 [V27,T22] ( 2, 2 ) int -> x1 "V15.[024..028)"
+; V27 tmp21 [V27,T21] ( 2, 2 ) int -> x1 "V15.[024..028)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref "V15.[028..032)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V20.[000..008)"
-; V30 tmp24 [V30,T21] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
+; V30 tmp24 [V30,T20] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref "V20.[016..024)"
-; V32 tmp26 [V32,T23] ( 2, 2 ) int -> x1 "V20.[024..028)"
+; V32 tmp26 [V32,T22] ( 2, 2 ) int -> x1 "V20.[024..028)"
;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref "V20.[028..032)"
-; V34 cse0 [V34,T17] ( 3, 6 ) long -> x21 "CSE #01: moderate"
-; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #06: moderate"
-; V36 cse2 [V36,T19] ( 2, 4.25) long -> x22 hoist "CSE #02: moderate"
-; V37 cse3 [V37,T09] ( 3, 12 ) ref -> x1 "CSE #03: aggressive"
+; V34 cse0 [V34,T10] ( 4, 10 ) long -> x21 "CSE #01: aggressive"
+; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #05: moderate"
+; V36 cse2 [V36,T09] ( 3, 12 ) ref -> x1 "CSE #02: aggressive"
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M31197_IG01:
- stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x58]
- stp x21, x22, [sp, #0x68]
- str x23, [sp, #0x78]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x50]
+ stp x21, x22, [sp, #0x60]
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=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M31197_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x1, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1[double]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x38] // [V02 loc1], [V02 loc1+0x08]
- str xzr, [fp, #0x48] // [V02 loc1+0x10]
- stp w1, wzr, [fp, #0x50] // [V02 loc1+0x18], [V02 loc1+0x1c]
- add x0, fp, #56 // [V02 loc1]
+ stp x0, x2, [fp, #0x30] // [V02 loc1], [V02 loc1+0x08]
+ str xzr, [fp, #0x40] // [V02 loc1+0x10]
+ stp w1, wzr, [fp, #0x48] // [V02 loc1+0x18], [V02 loc1+0x1c]
+ add x0, fp, #48 // [V02 loc1]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M31197_IG10
+ cbz w0, G_M31197_IG09
;; size=108 bbWeight=1 PerfScore 29.50
G_M31197_IG03:
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M31197_IG04:
- mov x0, x22
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- ldr x1, [fp, #0x48] // [V02 loc1+0x10]
- add x14, x23, #8
+ mov x22, x0
+ ldr x1, [fp, #0x40] // [V02 loc1+0x10]
+ add x14, x22, #8
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x20]
- cbnz x0, G_M31197_IG06
+ cbnz x0, G_M31197_IG05
;; size=40 bbWeight=4 PerfScore 52.00
-G_M31197_IG05:
- cbnz x1, G_M31197_IG08
- b G_M31197_IG07
+G_M31197_IG04:
+ cbnz x1, G_M31197_IG07
+ b G_M31197_IG06
;; size=8 bbWeight=2 PerfScore 4.00
-G_M31197_IG06:
+G_M31197_IG05:
cmp x0, x1
- beq G_M31197_IG07
+ beq G_M31197_IG06
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M31197_IG08
+ cbz w0, G_M31197_IG07
;; size=28 bbWeight=2 PerfScore 25.00
-G_M31197_IG07:
+G_M31197_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,double]:<CloneCast>b__0(double):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M31197_IG09
+ b G_M31197_IG08
;; size=92 bbWeight=2 PerfScore 44.00
-G_M31197_IG08:
+G_M31197_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,double]:<CloneCast>b__1(double):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=76 bbWeight=2 PerfScore 38.00
-G_M31197_IG09:
- add x0, fp, #56 // [V02 loc1]
+G_M31197_IG08:
+ add x0, fp, #48 // [V02 loc1]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M31197_IG04
+ cbnz w0, G_M31197_IG03
;; size=32 bbWeight=4 PerfScore 30.00
-G_M31197_IG10:
+G_M31197_IG09:
ldr x0, [x19, #0x10]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x18] // [V04 loc3], [V04 loc3+0x08]
- str xzr, [fp, #0x28] // [V04 loc3+0x10]
- stp w1, wzr, [fp, #0x30] // [V04 loc3+0x18], [V04 loc3+0x1c]
- add x0, fp, #24 // [V04 loc3]
+ stp x0, x2, [fp, #0x10] // [V04 loc3], [V04 loc3+0x08]
+ str xzr, [fp, #0x20] // [V04 loc3+0x10]
+ stp w1, wzr, [fp, #0x28] // [V04 loc3+0x18], [V04 loc3+0x1c]
+ add x0, fp, #16 // [V04 loc3]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M31197_IG17
+ cbz w0, G_M31197_IG16
;; size=68 bbWeight=1 PerfScore 21.00
-G_M31197_IG11:
- ldr x22, [fp, #0x28] // [V04 loc3+0x10]
+G_M31197_IG10:
+ ldr x22, [fp, #0x20] // [V04 loc3+0x10]
ldr x0, [x19, #0x20]
ldr x0, [x0, #0x20]
- cbnz x0, G_M31197_IG13
+ cbnz x0, G_M31197_IG12
;; size=16 bbWeight=4 PerfScore 36.00
-G_M31197_IG12:
- cbnz x22, G_M31197_IG15
- b G_M31197_IG14
+G_M31197_IG11:
+ cbnz x22, G_M31197_IG14
+ b G_M31197_IG13
;; size=8 bbWeight=2 PerfScore 4.00
-G_M31197_IG13:
+G_M31197_IG12:
cmp x0, x22
- beq G_M31197_IG14
+ beq G_M31197_IG13
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M31197_IG15
+ cbz w0, G_M31197_IG14
;; size=32 bbWeight=2 PerfScore 26.00
-G_M31197_IG14:
+G_M31197_IG13:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #32
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M31197_IG16
+ b G_M31197_IG15
;; size=48 bbWeight=2 PerfScore 30.00
-G_M31197_IG15:
+G_M31197_IG14:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=32 bbWeight=2 PerfScore 24.00
-G_M31197_IG16:
- add x0, fp, #24 // [V04 loc3]
+G_M31197_IG15:
+ add x0, fp, #16 // [V04 loc3]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M31197_IG11
+ cbnz w0, G_M31197_IG10
;; size=32 bbWeight=4 PerfScore 30.00
-G_M31197_IG17:
+G_M31197_IG16:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
-G_M31197_IG18:
- ldr x23, [sp, #0x78]
- ldp x21, x22, [sp, #0x68]
- ldp x19, x20, [sp, #0x58]
- ldp fp, lr, [sp], #0x80
+G_M31197_IG17:
+ ldp x21, x22, [sp, #0x60]
+ ldp x19, x20, [sp, #0x50]
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 696, prolog size 36, PerfScore 408.38, instruction count 174, allocated bytes for code 696 (MethodHash=f2ff8622) for method System.Data.SortExpressionBuilder`1[short]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts)
+; Total bytes of code 676, prolog size 32, PerfScore 405.00, instruction count 169, allocated bytes for code 676 (MethodHash=f2ff8622) for method System.Data.SortExpressionBuilder`1[short]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts)
-20 (-2.87 % of base) - System.Data.SortExpressionBuilder`1[short]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this
; Assembly listing for method System.Data.SortExpressionBuilder`1[short]:CloneCast[int]():System.Data.SortExpressionBuilder`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; 12 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 6, 12 ) ref -> x19 this class-hnd single-def <System.Data.SortExpressionBuilder`1[short]>
; V01 loc0 [V01,T05] ( 8, 14 ) ref -> x20 class-hnd exact single-def <System.Data.SortExpressionBuilder`1[int]>
-; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
-; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x23 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,int]>
-; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
+; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
+; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,int]>
+; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
; V05 loc4 [V05,T07] ( 6, 14 ) ref -> x22 class-hnd <System.Comparison`1[System.Object]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T14] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[int]>
+; V07 tmp1 [V07,T15] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[int]>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,int]>
; V09 tmp3 [V09,T02] ( 4, 20 ) ref -> x1 class-hnd "impAppendStmt" <System.Func`2[short,System.Object]>
; V10 tmp4 [V10,T03] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[int,System.Object]>
-; V11 tmp5 [V11,T12] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
+; V11 tmp5 [V11,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
; V12 tmp6 [V12,T04] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[int,System.Object]>
-; V13 tmp7 [V13,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
-; V14 tmp8 [V14,T10] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
+; V13 tmp7 [V13,T14] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
+; V14 tmp8 [V14,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Func`2[short,System.Object]]>
-; V17 tmp11 [V17,T15] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V17 tmp11 [V17,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V18 tmp12 [V18,T00] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
-; V19 tmp13 [V19,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
+; V19 tmp13 [V19,T12] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
;* V20 tmp14 [V20 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Comparison`1[System.Object]]>
-; V22 tmp16 [V22,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V22 tmp16 [V22,T17] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V23 tmp17 [V23,T01] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref single-def "V15.[000..008)"
-; V25 tmp19 [V25,T20] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
+; V25 tmp19 [V25,T19] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref "V15.[016..024)"
-; V27 tmp21 [V27,T22] ( 2, 2 ) int -> x1 "V15.[024..028)"
+; V27 tmp21 [V27,T21] ( 2, 2 ) int -> x1 "V15.[024..028)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref "V15.[028..032)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V20.[000..008)"
-; V30 tmp24 [V30,T21] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
+; V30 tmp24 [V30,T20] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref "V20.[016..024)"
-; V32 tmp26 [V32,T23] ( 2, 2 ) int -> x1 "V20.[024..028)"
+; V32 tmp26 [V32,T22] ( 2, 2 ) int -> x1 "V20.[024..028)"
;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref "V20.[028..032)"
-; V34 cse0 [V34,T17] ( 3, 6 ) long -> x21 "CSE #01: moderate"
-; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #06: moderate"
-; V36 cse2 [V36,T19] ( 2, 4.25) long -> x22 hoist "CSE #02: moderate"
-; V37 cse3 [V37,T09] ( 3, 12 ) ref -> x1 "CSE #03: aggressive"
+; V34 cse0 [V34,T10] ( 4, 10 ) long -> x21 "CSE #01: aggressive"
+; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #05: moderate"
+; V36 cse2 [V36,T09] ( 3, 12 ) ref -> x1 "CSE #02: aggressive"
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M8125_IG01:
- stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x58]
- stp x21, x22, [sp, #0x68]
- str x23, [sp, #0x78]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x50]
+ stp x21, x22, [sp, #0x60]
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=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M8125_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x1, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1[int]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x38] // [V02 loc1], [V02 loc1+0x08]
- str xzr, [fp, #0x48] // [V02 loc1+0x10]
- stp w1, wzr, [fp, #0x50] // [V02 loc1+0x18], [V02 loc1+0x1c]
- add x0, fp, #56 // [V02 loc1]
+ stp x0, x2, [fp, #0x30] // [V02 loc1], [V02 loc1+0x08]
+ str xzr, [fp, #0x40] // [V02 loc1+0x10]
+ stp w1, wzr, [fp, #0x48] // [V02 loc1+0x18], [V02 loc1+0x1c]
+ add x0, fp, #48 // [V02 loc1]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M8125_IG10
+ cbz w0, G_M8125_IG09
;; size=108 bbWeight=1 PerfScore 29.50
G_M8125_IG03:
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M8125_IG04:
- mov x0, x22
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- ldr x1, [fp, #0x48] // [V02 loc1+0x10]
- add x14, x23, #8
+ mov x22, x0
+ ldr x1, [fp, #0x40] // [V02 loc1+0x10]
+ add x14, x22, #8
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x20]
- cbnz x0, G_M8125_IG06
+ cbnz x0, G_M8125_IG05
;; size=40 bbWeight=4 PerfScore 52.00
-G_M8125_IG05:
- cbnz x1, G_M8125_IG08
- b G_M8125_IG07
+G_M8125_IG04:
+ cbnz x1, G_M8125_IG07
+ b G_M8125_IG06
;; size=8 bbWeight=2 PerfScore 4.00
-G_M8125_IG06:
+G_M8125_IG05:
cmp x0, x1
- beq G_M8125_IG07
+ beq G_M8125_IG06
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M8125_IG08
+ cbz w0, G_M8125_IG07
;; size=28 bbWeight=2 PerfScore 25.00
-G_M8125_IG07:
+G_M8125_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,int]:<CloneCast>b__0(int):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M8125_IG09
+ b G_M8125_IG08
;; size=92 bbWeight=2 PerfScore 44.00
-G_M8125_IG08:
+G_M8125_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,int]:<CloneCast>b__1(int):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=76 bbWeight=2 PerfScore 38.00
-G_M8125_IG09:
- add x0, fp, #56 // [V02 loc1]
+G_M8125_IG08:
+ add x0, fp, #48 // [V02 loc1]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M8125_IG04
+ cbnz w0, G_M8125_IG03
;; size=32 bbWeight=4 PerfScore 30.00
-G_M8125_IG10:
+G_M8125_IG09:
ldr x0, [x19, #0x10]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x18] // [V04 loc3], [V04 loc3+0x08]
- str xzr, [fp, #0x28] // [V04 loc3+0x10]
- stp w1, wzr, [fp, #0x30] // [V04 loc3+0x18], [V04 loc3+0x1c]
- add x0, fp, #24 // [V04 loc3]
+ stp x0, x2, [fp, #0x10] // [V04 loc3], [V04 loc3+0x08]
+ str xzr, [fp, #0x20] // [V04 loc3+0x10]
+ stp w1, wzr, [fp, #0x28] // [V04 loc3+0x18], [V04 loc3+0x1c]
+ add x0, fp, #16 // [V04 loc3]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M8125_IG17
+ cbz w0, G_M8125_IG16
;; size=68 bbWeight=1 PerfScore 21.00
-G_M8125_IG11:
- ldr x22, [fp, #0x28] // [V04 loc3+0x10]
+G_M8125_IG10:
+ ldr x22, [fp, #0x20] // [V04 loc3+0x10]
ldr x0, [x19, #0x20]
ldr x0, [x0, #0x20]
- cbnz x0, G_M8125_IG13
+ cbnz x0, G_M8125_IG12
;; size=16 bbWeight=4 PerfScore 36.00
-G_M8125_IG12:
- cbnz x22, G_M8125_IG15
- b G_M8125_IG14
+G_M8125_IG11:
+ cbnz x22, G_M8125_IG14
+ b G_M8125_IG13
;; size=8 bbWeight=2 PerfScore 4.00
-G_M8125_IG13:
+G_M8125_IG12:
cmp x0, x22
- beq G_M8125_IG14
+ beq G_M8125_IG13
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M8125_IG15
+ cbz w0, G_M8125_IG14
;; size=32 bbWeight=2 PerfScore 26.00
-G_M8125_IG14:
+G_M8125_IG13:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #32
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M8125_IG16
+ b G_M8125_IG15
;; size=48 bbWeight=2 PerfScore 30.00
-G_M8125_IG15:
+G_M8125_IG14:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=32 bbWeight=2 PerfScore 24.00
-G_M8125_IG16:
- add x0, fp, #24 // [V04 loc3]
+G_M8125_IG15:
+ add x0, fp, #16 // [V04 loc3]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M8125_IG11
+ cbnz w0, G_M8125_IG10
;; size=32 bbWeight=4 PerfScore 30.00
-G_M8125_IG17:
+G_M8125_IG16:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
-G_M8125_IG18:
- ldr x23, [sp, #0x78]
- ldp x21, x22, [sp, #0x68]
- ldp x19, x20, [sp, #0x58]
- ldp fp, lr, [sp], #0x80
+G_M8125_IG17:
+ ldp x21, x22, [sp, #0x60]
+ ldp x19, x20, [sp, #0x50]
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 696, prolog size 36, PerfScore 408.38, instruction count 174, allocated bytes for code 696 (MethodHash=fbdae042) for method System.Data.SortExpressionBuilder`1[short]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts)
+; Total bytes of code 676, prolog size 32, PerfScore 405.00, instruction count 169, allocated bytes for code 676 (MethodHash=fbdae042) for method System.Data.SortExpressionBuilder`1[short]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts)
-20 (-2.87 % of base) - System.Data.SortExpressionBuilder`1[short]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this
; Assembly listing for method System.Data.SortExpressionBuilder`1[short]:CloneCast[long]():System.Data.SortExpressionBuilder`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; 12 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 6, 12 ) ref -> x19 this class-hnd single-def <System.Data.SortExpressionBuilder`1[short]>
; V01 loc0 [V01,T05] ( 8, 14 ) ref -> x20 class-hnd exact single-def <System.Data.SortExpressionBuilder`1[long]>
-; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
-; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x23 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,long]>
-; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
+; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
+; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,long]>
+; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
; V05 loc4 [V05,T07] ( 6, 14 ) ref -> x22 class-hnd <System.Comparison`1[System.Object]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T14] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[long]>
+; V07 tmp1 [V07,T15] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[long]>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,long]>
; V09 tmp3 [V09,T02] ( 4, 20 ) ref -> x1 class-hnd "impAppendStmt" <System.Func`2[short,System.Object]>
; V10 tmp4 [V10,T03] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[long,System.Object]>
-; V11 tmp5 [V11,T12] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[long,System.Object]]>
+; V11 tmp5 [V11,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[long,System.Object]]>
; V12 tmp6 [V12,T04] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[long,System.Object]>
-; V13 tmp7 [V13,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[long,System.Object]]>
-; V14 tmp8 [V14,T10] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
+; V13 tmp7 [V13,T14] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[long,System.Object]]>
+; V14 tmp8 [V14,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Func`2[short,System.Object]]>
-; V17 tmp11 [V17,T15] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V17 tmp11 [V17,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V18 tmp12 [V18,T00] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
-; V19 tmp13 [V19,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
+; V19 tmp13 [V19,T12] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
;* V20 tmp14 [V20 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Comparison`1[System.Object]]>
-; V22 tmp16 [V22,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V22 tmp16 [V22,T17] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V23 tmp17 [V23,T01] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref single-def "V15.[000..008)"
-; V25 tmp19 [V25,T20] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
+; V25 tmp19 [V25,T19] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref "V15.[016..024)"
-; V27 tmp21 [V27,T22] ( 2, 2 ) int -> x1 "V15.[024..028)"
+; V27 tmp21 [V27,T21] ( 2, 2 ) int -> x1 "V15.[024..028)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref "V15.[028..032)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V20.[000..008)"
-; V30 tmp24 [V30,T21] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
+; V30 tmp24 [V30,T20] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref "V20.[016..024)"
-; V32 tmp26 [V32,T23] ( 2, 2 ) int -> x1 "V20.[024..028)"
+; V32 tmp26 [V32,T22] ( 2, 2 ) int -> x1 "V20.[024..028)"
;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref "V20.[028..032)"
-; V34 cse0 [V34,T17] ( 3, 6 ) long -> x21 "CSE #01: moderate"
-; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #06: moderate"
-; V36 cse2 [V36,T19] ( 2, 4.25) long -> x22 hoist "CSE #02: moderate"
-; V37 cse3 [V37,T09] ( 3, 12 ) ref -> x1 "CSE #03: aggressive"
+; V34 cse0 [V34,T10] ( 4, 10 ) long -> x21 "CSE #01: aggressive"
+; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #05: moderate"
+; V36 cse2 [V36,T09] ( 3, 12 ) ref -> x1 "CSE #02: aggressive"
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M26461_IG01:
- stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x58]
- stp x21, x22, [sp, #0x68]
- str x23, [sp, #0x78]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x50]
+ stp x21, x22, [sp, #0x60]
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=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M26461_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x1, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1[long]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x38] // [V02 loc1], [V02 loc1+0x08]
- str xzr, [fp, #0x48] // [V02 loc1+0x10]
- stp w1, wzr, [fp, #0x50] // [V02 loc1+0x18], [V02 loc1+0x1c]
- add x0, fp, #56 // [V02 loc1]
+ stp x0, x2, [fp, #0x30] // [V02 loc1], [V02 loc1+0x08]
+ str xzr, [fp, #0x40] // [V02 loc1+0x10]
+ stp w1, wzr, [fp, #0x48] // [V02 loc1+0x18], [V02 loc1+0x1c]
+ add x0, fp, #48 // [V02 loc1]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M26461_IG10
+ cbz w0, G_M26461_IG09
;; size=108 bbWeight=1 PerfScore 29.50
G_M26461_IG03:
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M26461_IG04:
- mov x0, x22
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- ldr x1, [fp, #0x48] // [V02 loc1+0x10]
- add x14, x23, #8
+ mov x22, x0
+ ldr x1, [fp, #0x40] // [V02 loc1+0x10]
+ add x14, x22, #8
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x20]
- cbnz x0, G_M26461_IG06
+ cbnz x0, G_M26461_IG05
;; size=40 bbWeight=4 PerfScore 52.00
-G_M26461_IG05:
- cbnz x1, G_M26461_IG08
- b G_M26461_IG07
+G_M26461_IG04:
+ cbnz x1, G_M26461_IG07
+ b G_M26461_IG06
;; size=8 bbWeight=2 PerfScore 4.00
-G_M26461_IG06:
+G_M26461_IG05:
cmp x0, x1
- beq G_M26461_IG07
+ beq G_M26461_IG06
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M26461_IG08
+ cbz w0, G_M26461_IG07
;; size=28 bbWeight=2 PerfScore 25.00
-G_M26461_IG07:
+G_M26461_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,long]:<CloneCast>b__0(long):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M26461_IG09
+ b G_M26461_IG08
;; size=92 bbWeight=2 PerfScore 44.00
-G_M26461_IG08:
+G_M26461_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,long]:<CloneCast>b__1(long):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=76 bbWeight=2 PerfScore 38.00
-G_M26461_IG09:
- add x0, fp, #56 // [V02 loc1]
+G_M26461_IG08:
+ add x0, fp, #48 // [V02 loc1]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M26461_IG04
+ cbnz w0, G_M26461_IG03
;; size=32 bbWeight=4 PerfScore 30.00
-G_M26461_IG10:
+G_M26461_IG09:
ldr x0, [x19, #0x10]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x18] // [V04 loc3], [V04 loc3+0x08]
- str xzr, [fp, #0x28] // [V04 loc3+0x10]
- stp w1, wzr, [fp, #0x30] // [V04 loc3+0x18], [V04 loc3+0x1c]
- add x0, fp, #24 // [V04 loc3]
+ stp x0, x2, [fp, #0x10] // [V04 loc3], [V04 loc3+0x08]
+ str xzr, [fp, #0x20] // [V04 loc3+0x10]
+ stp w1, wzr, [fp, #0x28] // [V04 loc3+0x18], [V04 loc3+0x1c]
+ add x0, fp, #16 // [V04 loc3]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M26461_IG17
+ cbz w0, G_M26461_IG16
;; size=68 bbWeight=1 PerfScore 21.00
-G_M26461_IG11:
- ldr x22, [fp, #0x28] // [V04 loc3+0x10]
+G_M26461_IG10:
+ ldr x22, [fp, #0x20] // [V04 loc3+0x10]
ldr x0, [x19, #0x20]
ldr x0, [x0, #0x20]
- cbnz x0, G_M26461_IG13
+ cbnz x0, G_M26461_IG12
;; size=16 bbWeight=4 PerfScore 36.00
-G_M26461_IG12:
- cbnz x22, G_M26461_IG15
- b G_M26461_IG14
+G_M26461_IG11:
+ cbnz x22, G_M26461_IG14
+ b G_M26461_IG13
;; size=8 bbWeight=2 PerfScore 4.00
-G_M26461_IG13:
+G_M26461_IG12:
cmp x0, x22
- beq G_M26461_IG14
+ beq G_M26461_IG13
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M26461_IG15
+ cbz w0, G_M26461_IG14
;; size=32 bbWeight=2 PerfScore 26.00
-G_M26461_IG14:
+G_M26461_IG13:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #32
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M26461_IG16
+ b G_M26461_IG15
;; size=48 bbWeight=2 PerfScore 30.00
-G_M26461_IG15:
+G_M26461_IG14:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=32 bbWeight=2 PerfScore 24.00
-G_M26461_IG16:
- add x0, fp, #24 // [V04 loc3]
+G_M26461_IG15:
+ add x0, fp, #16 // [V04 loc3]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M26461_IG11
+ cbnz w0, G_M26461_IG10
;; size=32 bbWeight=4 PerfScore 30.00
-G_M26461_IG17:
+G_M26461_IG16:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
-G_M26461_IG18:
- ldr x23, [sp, #0x78]
- ldp x21, x22, [sp, #0x68]
- ldp x19, x20, [sp, #0x58]
- ldp fp, lr, [sp], #0x80
+G_M26461_IG17:
+ ldp x21, x22, [sp, #0x60]
+ ldp x19, x20, [sp, #0x50]
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 696, prolog size 36, PerfScore 408.38, instruction count 174, allocated bytes for code 696 (MethodHash=f86e98a2) for method System.Data.SortExpressionBuilder`1[short]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts)
+; Total bytes of code 676, prolog size 32, PerfScore 405.00, instruction count 169, allocated bytes for code 676 (MethodHash=f86e98a2) for method System.Data.SortExpressionBuilder`1[short]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts)
-20 (-2.87 % of base) - System.Data.SortExpressionBuilder`1[short]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this
; Assembly listing for method System.Data.SortExpressionBuilder`1[short]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]: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; 12 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 6, 12 ) ref -> x19 this class-hnd single-def <System.Data.SortExpressionBuilder`1[short]>
; V01 loc0 [V01,T05] ( 8, 14 ) ref -> x20 class-hnd exact single-def <System.Data.SortExpressionBuilder`1[short]>
-; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
-; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x23 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,short]>
-; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
+; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
+; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,short]>
+; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
; V05 loc4 [V05,T07] ( 6, 14 ) ref -> x22 class-hnd <System.Comparison`1[System.Object]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T14] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[short]>
+; V07 tmp1 [V07,T15] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[short]>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,short]>
; V09 tmp3 [V09,T02] ( 4, 20 ) ref -> x1 class-hnd "impAppendStmt" <System.Func`2[short,System.Object]>
; V10 tmp4 [V10,T03] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[short,System.Object]>
-; V11 tmp5 [V11,T12] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
+; V11 tmp5 [V11,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
; V12 tmp6 [V12,T04] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[short,System.Object]>
-; V13 tmp7 [V13,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
-; V14 tmp8 [V14,T10] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
+; V13 tmp7 [V13,T14] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
+; V14 tmp8 [V14,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Func`2[short,System.Object]]>
-; V17 tmp11 [V17,T15] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V17 tmp11 [V17,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V18 tmp12 [V18,T00] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
-; V19 tmp13 [V19,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
+; V19 tmp13 [V19,T12] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
;* V20 tmp14 [V20 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Comparison`1[System.Object]]>
-; V22 tmp16 [V22,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V22 tmp16 [V22,T17] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V23 tmp17 [V23,T01] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref single-def "V15.[000..008)"
-; V25 tmp19 [V25,T20] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
+; V25 tmp19 [V25,T19] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref "V15.[016..024)"
-; V27 tmp21 [V27,T22] ( 2, 2 ) int -> x1 "V15.[024..028)"
+; V27 tmp21 [V27,T21] ( 2, 2 ) int -> x1 "V15.[024..028)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref "V15.[028..032)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V20.[000..008)"
-; V30 tmp24 [V30,T21] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
+; V30 tmp24 [V30,T20] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref "V20.[016..024)"
-; V32 tmp26 [V32,T23] ( 2, 2 ) int -> x1 "V20.[024..028)"
+; V32 tmp26 [V32,T22] ( 2, 2 ) int -> x1 "V20.[024..028)"
;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref "V20.[028..032)"
-; V34 cse0 [V34,T17] ( 3, 6 ) long -> x21 "CSE #01: moderate"
-; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #06: moderate"
-; V36 cse2 [V36,T19] ( 2, 4.25) long -> x22 hoist "CSE #02: moderate"
-; V37 cse3 [V37,T09] ( 3, 12 ) ref -> x1 "CSE #03: aggressive"
+; V34 cse0 [V34,T10] ( 4, 10 ) long -> x21 "CSE #01: aggressive"
+; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #05: moderate"
+; V36 cse2 [V36,T09] ( 3, 12 ) ref -> x1 "CSE #02: aggressive"
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M1501_IG01:
- stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x58]
- stp x21, x22, [sp, #0x68]
- str x23, [sp, #0x78]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x50]
+ stp x21, x22, [sp, #0x60]
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=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M1501_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x1, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1[short]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x38] // [V02 loc1], [V02 loc1+0x08]
- str xzr, [fp, #0x48] // [V02 loc1+0x10]
- stp w1, wzr, [fp, #0x50] // [V02 loc1+0x18], [V02 loc1+0x1c]
- add x0, fp, #56 // [V02 loc1]
+ stp x0, x2, [fp, #0x30] // [V02 loc1], [V02 loc1+0x08]
+ str xzr, [fp, #0x40] // [V02 loc1+0x10]
+ stp w1, wzr, [fp, #0x48] // [V02 loc1+0x18], [V02 loc1+0x1c]
+ add x0, fp, #48 // [V02 loc1]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M1501_IG10
+ cbz w0, G_M1501_IG09
;; size=108 bbWeight=1 PerfScore 29.50
G_M1501_IG03:
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M1501_IG04:
- mov x0, x22
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- ldr x1, [fp, #0x48] // [V02 loc1+0x10]
- add x14, x23, #8
+ mov x22, x0
+ ldr x1, [fp, #0x40] // [V02 loc1+0x10]
+ add x14, x22, #8
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x20]
- cbnz x0, G_M1501_IG06
+ cbnz x0, G_M1501_IG05
;; size=40 bbWeight=4 PerfScore 52.00
-G_M1501_IG05:
- cbnz x1, G_M1501_IG08
- b G_M1501_IG07
+G_M1501_IG04:
+ cbnz x1, G_M1501_IG07
+ b G_M1501_IG06
;; size=8 bbWeight=2 PerfScore 4.00
-G_M1501_IG06:
+G_M1501_IG05:
cmp x0, x1
- beq G_M1501_IG07
+ beq G_M1501_IG06
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M1501_IG08
+ cbz w0, G_M1501_IG07
;; size=28 bbWeight=2 PerfScore 25.00
-G_M1501_IG07:
+G_M1501_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,short]:<CloneCast>b__0(short):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M1501_IG09
+ b G_M1501_IG08
;; size=92 bbWeight=2 PerfScore 44.00
-G_M1501_IG08:
+G_M1501_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,short]:<CloneCast>b__1(short):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=76 bbWeight=2 PerfScore 38.00
-G_M1501_IG09:
- add x0, fp, #56 // [V02 loc1]
+G_M1501_IG08:
+ add x0, fp, #48 // [V02 loc1]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M1501_IG04
+ cbnz w0, G_M1501_IG03
;; size=32 bbWeight=4 PerfScore 30.00
-G_M1501_IG10:
+G_M1501_IG09:
ldr x0, [x19, #0x10]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x18] // [V04 loc3], [V04 loc3+0x08]
- str xzr, [fp, #0x28] // [V04 loc3+0x10]
- stp w1, wzr, [fp, #0x30] // [V04 loc3+0x18], [V04 loc3+0x1c]
- add x0, fp, #24 // [V04 loc3]
+ stp x0, x2, [fp, #0x10] // [V04 loc3], [V04 loc3+0x08]
+ str xzr, [fp, #0x20] // [V04 loc3+0x10]
+ stp w1, wzr, [fp, #0x28] // [V04 loc3+0x18], [V04 loc3+0x1c]
+ add x0, fp, #16 // [V04 loc3]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M1501_IG17
+ cbz w0, G_M1501_IG16
;; size=68 bbWeight=1 PerfScore 21.00
-G_M1501_IG11:
- ldr x22, [fp, #0x28] // [V04 loc3+0x10]
+G_M1501_IG10:
+ ldr x22, [fp, #0x20] // [V04 loc3+0x10]
ldr x0, [x19, #0x20]
ldr x0, [x0, #0x20]
- cbnz x0, G_M1501_IG13
+ cbnz x0, G_M1501_IG12
;; size=16 bbWeight=4 PerfScore 36.00
-G_M1501_IG12:
- cbnz x22, G_M1501_IG15
- b G_M1501_IG14
+G_M1501_IG11:
+ cbnz x22, G_M1501_IG14
+ b G_M1501_IG13
;; size=8 bbWeight=2 PerfScore 4.00
-G_M1501_IG13:
+G_M1501_IG12:
cmp x0, x22
- beq G_M1501_IG14
+ beq G_M1501_IG13
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M1501_IG15
+ cbz w0, G_M1501_IG14
;; size=32 bbWeight=2 PerfScore 26.00
-G_M1501_IG14:
+G_M1501_IG13:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #32
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M1501_IG16
+ b G_M1501_IG15
;; size=48 bbWeight=2 PerfScore 30.00
-G_M1501_IG15:
+G_M1501_IG14:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=32 bbWeight=2 PerfScore 24.00
-G_M1501_IG16:
- add x0, fp, #24 // [V04 loc3]
+G_M1501_IG15:
+ add x0, fp, #16 // [V04 loc3]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M1501_IG11
+ cbnz w0, G_M1501_IG10
;; size=32 bbWeight=4 PerfScore 30.00
-G_M1501_IG17:
+G_M1501_IG16:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
-G_M1501_IG18:
- ldr x23, [sp, #0x78]
- ldp x21, x22, [sp, #0x68]
- ldp x19, x20, [sp, #0x58]
- ldp fp, lr, [sp], #0x80
+G_M1501_IG17:
+ ldp x21, x22, [sp, #0x60]
+ ldp x19, x20, [sp, #0x50]
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 696, prolog size 36, PerfScore 408.38, instruction count 174, allocated bytes for code 696 (MethodHash=de8afa22) for method System.Data.SortExpressionBuilder`1[short]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts)
+; Total bytes of code 676, prolog size 32, PerfScore 405.00, instruction count 169, allocated bytes for code 676 (MethodHash=de8afa22) for method System.Data.SortExpressionBuilder`1[short]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts)
-20 (-2.87 % of base) - System.Data.SortExpressionBuilder`1[short]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this
; Assembly listing for method System.Data.SortExpressionBuilder`1[short]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`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; 12 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 6, 12 ) ref -> x19 this class-hnd single-def <System.Data.SortExpressionBuilder`1[short]>
; V01 loc0 [V01,T05] ( 8, 14 ) ref -> x20 class-hnd exact single-def <System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]>
-; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
-; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x23 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,System.Numerics.Vector`1[float]]>
-; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
+; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
+; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,System.Numerics.Vector`1[float]]>
+; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
; V05 loc4 [V05,T07] ( 6, 14 ) ref -> x22 class-hnd <System.Comparison`1[System.Object]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T14] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]>
+; V07 tmp1 [V07,T15] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,System.Numerics.Vector`1[float]]>
; V09 tmp3 [V09,T02] ( 4, 20 ) ref -> x1 class-hnd "impAppendStmt" <System.Func`2[short,System.Object]>
; V10 tmp4 [V10,T03] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[System.Numerics.Vector`1[float],System.Object]>
-; V11 tmp5 [V11,T12] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[System.Numerics.Vector`1[float],System.Object]]>
+; V11 tmp5 [V11,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[System.Numerics.Vector`1[float],System.Object]]>
; V12 tmp6 [V12,T04] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[System.Numerics.Vector`1[float],System.Object]>
-; V13 tmp7 [V13,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[System.Numerics.Vector`1[float],System.Object]]>
-; V14 tmp8 [V14,T10] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
+; V13 tmp7 [V13,T14] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[System.Numerics.Vector`1[float],System.Object]]>
+; V14 tmp8 [V14,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Func`2[short,System.Object]]>
-; V17 tmp11 [V17,T15] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V17 tmp11 [V17,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V18 tmp12 [V18,T00] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
-; V19 tmp13 [V19,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
+; V19 tmp13 [V19,T12] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
;* V20 tmp14 [V20 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Comparison`1[System.Object]]>
-; V22 tmp16 [V22,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V22 tmp16 [V22,T17] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V23 tmp17 [V23,T01] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref single-def "V15.[000..008)"
-; V25 tmp19 [V25,T20] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
+; V25 tmp19 [V25,T19] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref "V15.[016..024)"
-; V27 tmp21 [V27,T22] ( 2, 2 ) int -> x1 "V15.[024..028)"
+; V27 tmp21 [V27,T21] ( 2, 2 ) int -> x1 "V15.[024..028)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref "V15.[028..032)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V20.[000..008)"
-; V30 tmp24 [V30,T21] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
+; V30 tmp24 [V30,T20] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref "V20.[016..024)"
-; V32 tmp26 [V32,T23] ( 2, 2 ) int -> x1 "V20.[024..028)"
+; V32 tmp26 [V32,T22] ( 2, 2 ) int -> x1 "V20.[024..028)"
;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref "V20.[028..032)"
-; V34 cse0 [V34,T17] ( 3, 6 ) long -> x21 "CSE #01: moderate"
-; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #06: moderate"
-; V36 cse2 [V36,T19] ( 2, 4.25) long -> x22 hoist "CSE #02: moderate"
-; V37 cse3 [V37,T09] ( 3, 12 ) ref -> x1 "CSE #03: aggressive"
+; V34 cse0 [V34,T10] ( 4, 10 ) long -> x21 "CSE #01: aggressive"
+; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #05: moderate"
+; V36 cse2 [V36,T09] ( 3, 12 ) ref -> x1 "CSE #02: aggressive"
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M50365_IG01:
- stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x58]
- stp x21, x22, [sp, #0x68]
- str x23, [sp, #0x78]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x50]
+ stp x21, x22, [sp, #0x60]
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=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M50365_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x1, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x38] // [V02 loc1], [V02 loc1+0x08]
- str xzr, [fp, #0x48] // [V02 loc1+0x10]
- stp w1, wzr, [fp, #0x50] // [V02 loc1+0x18], [V02 loc1+0x1c]
- add x0, fp, #56 // [V02 loc1]
+ stp x0, x2, [fp, #0x30] // [V02 loc1], [V02 loc1+0x08]
+ str xzr, [fp, #0x40] // [V02 loc1+0x10]
+ stp w1, wzr, [fp, #0x48] // [V02 loc1+0x18], [V02 loc1+0x1c]
+ add x0, fp, #48 // [V02 loc1]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M50365_IG10
+ cbz w0, G_M50365_IG09
;; size=108 bbWeight=1 PerfScore 29.50
G_M50365_IG03:
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M50365_IG04:
- mov x0, x22
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- ldr x1, [fp, #0x48] // [V02 loc1+0x10]
- add x14, x23, #8
+ mov x22, x0
+ ldr x1, [fp, #0x40] // [V02 loc1+0x10]
+ add x14, x22, #8
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x20]
- cbnz x0, G_M50365_IG06
+ cbnz x0, G_M50365_IG05
;; size=40 bbWeight=4 PerfScore 52.00
-G_M50365_IG05:
- cbnz x1, G_M50365_IG08
- b G_M50365_IG07
+G_M50365_IG04:
+ cbnz x1, G_M50365_IG07
+ b G_M50365_IG06
;; size=8 bbWeight=2 PerfScore 4.00
-G_M50365_IG06:
+G_M50365_IG05:
cmp x0, x1
- beq G_M50365_IG07
+ beq G_M50365_IG06
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M50365_IG08
+ cbz w0, G_M50365_IG07
;; size=28 bbWeight=2 PerfScore 25.00
-G_M50365_IG07:
+G_M50365_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,System.Numerics.Vector`1[float]]:<CloneCast>b__0(System.Numerics.Vector`1[float]):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M50365_IG09
+ b G_M50365_IG08
;; size=92 bbWeight=2 PerfScore 44.00
-G_M50365_IG08:
+G_M50365_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,System.Numerics.Vector`1[float]]:<CloneCast>b__1(System.Numerics.Vector`1[float]):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=76 bbWeight=2 PerfScore 38.00
-G_M50365_IG09:
- add x0, fp, #56 // [V02 loc1]
+G_M50365_IG08:
+ add x0, fp, #48 // [V02 loc1]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M50365_IG04
+ cbnz w0, G_M50365_IG03
;; size=32 bbWeight=4 PerfScore 30.00
-G_M50365_IG10:
+G_M50365_IG09:
ldr x0, [x19, #0x10]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x18] // [V04 loc3], [V04 loc3+0x08]
- str xzr, [fp, #0x28] // [V04 loc3+0x10]
- stp w1, wzr, [fp, #0x30] // [V04 loc3+0x18], [V04 loc3+0x1c]
- add x0, fp, #24 // [V04 loc3]
+ stp x0, x2, [fp, #0x10] // [V04 loc3], [V04 loc3+0x08]
+ str xzr, [fp, #0x20] // [V04 loc3+0x10]
+ stp w1, wzr, [fp, #0x28] // [V04 loc3+0x18], [V04 loc3+0x1c]
+ add x0, fp, #16 // [V04 loc3]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M50365_IG17
+ cbz w0, G_M50365_IG16
;; size=68 bbWeight=1 PerfScore 21.00
-G_M50365_IG11:
- ldr x22, [fp, #0x28] // [V04 loc3+0x10]
+G_M50365_IG10:
+ ldr x22, [fp, #0x20] // [V04 loc3+0x10]
ldr x0, [x19, #0x20]
ldr x0, [x0, #0x20]
- cbnz x0, G_M50365_IG13
+ cbnz x0, G_M50365_IG12
;; size=16 bbWeight=4 PerfScore 36.00
-G_M50365_IG12:
- cbnz x22, G_M50365_IG15
- b G_M50365_IG14
+G_M50365_IG11:
+ cbnz x22, G_M50365_IG14
+ b G_M50365_IG13
;; size=8 bbWeight=2 PerfScore 4.00
-G_M50365_IG13:
+G_M50365_IG12:
cmp x0, x22
- beq G_M50365_IG14
+ beq G_M50365_IG13
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M50365_IG15
+ cbz w0, G_M50365_IG14
;; size=32 bbWeight=2 PerfScore 26.00
-G_M50365_IG14:
+G_M50365_IG13:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #32
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M50365_IG16
+ b G_M50365_IG15
;; size=48 bbWeight=2 PerfScore 30.00
-G_M50365_IG15:
+G_M50365_IG14:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=32 bbWeight=2 PerfScore 24.00
-G_M50365_IG16:
- add x0, fp, #24 // [V04 loc3]
+G_M50365_IG15:
+ add x0, fp, #16 // [V04 loc3]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M50365_IG11
+ cbnz w0, G_M50365_IG10
;; size=32 bbWeight=4 PerfScore 30.00
-G_M50365_IG17:
+G_M50365_IG16:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
-G_M50365_IG18:
- ldr x23, [sp, #0x78]
- ldp x21, x22, [sp, #0x68]
- ldp x19, x20, [sp, #0x58]
- ldp fp, lr, [sp], #0x80
+G_M50365_IG17:
+ ldp x21, x22, [sp, #0x60]
+ ldp x19, x20, [sp, #0x50]
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 696, prolog size 36, PerfScore 408.38, instruction count 174, allocated bytes for code 696 (MethodHash=fd313b42) for method System.Data.SortExpressionBuilder`1[short]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts)
+; Total bytes of code 676, prolog size 32, PerfScore 405.00, instruction count 169, allocated bytes for code 676 (MethodHash=fd313b42) for method System.Data.SortExpressionBuilder`1[short]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts)
-20 (-2.87 % of base) - System.Data.SortExpressionBuilder`1[short]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this
; Assembly listing for method System.Data.SortExpressionBuilder`1[short]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[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; 12 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 6, 12 ) ref -> x19 this class-hnd single-def <System.Data.SortExpressionBuilder`1[short]>
; V01 loc0 [V01,T05] ( 8, 14 ) ref -> x20 class-hnd exact single-def <System.Data.SortExpressionBuilder`1[ubyte]>
-; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
-; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x23 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,ubyte]>
-; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
+; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
+; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,ubyte]>
+; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
; V05 loc4 [V05,T07] ( 6, 14 ) ref -> x22 class-hnd <System.Comparison`1[System.Object]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T14] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[ubyte]>
+; V07 tmp1 [V07,T15] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[ubyte]>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,ubyte]>
; V09 tmp3 [V09,T02] ( 4, 20 ) ref -> x1 class-hnd "impAppendStmt" <System.Func`2[short,System.Object]>
; V10 tmp4 [V10,T03] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[ubyte,System.Object]>
-; V11 tmp5 [V11,T12] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[ubyte,System.Object]]>
+; V11 tmp5 [V11,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[ubyte,System.Object]]>
; V12 tmp6 [V12,T04] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[ubyte,System.Object]>
-; V13 tmp7 [V13,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[ubyte,System.Object]]>
-; V14 tmp8 [V14,T10] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
+; V13 tmp7 [V13,T14] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[ubyte,System.Object]]>
+; V14 tmp8 [V14,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[short,System.Object]]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[short,System.Object]]>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Func`2[short,System.Object]]>
-; V17 tmp11 [V17,T15] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V17 tmp11 [V17,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V18 tmp12 [V18,T00] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
-; V19 tmp13 [V19,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
+; V19 tmp13 [V19,T12] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
;* V20 tmp14 [V20 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Comparison`1[System.Object]]>
-; V22 tmp16 [V22,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V22 tmp16 [V22,T17] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V23 tmp17 [V23,T01] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref single-def "V15.[000..008)"
-; V25 tmp19 [V25,T20] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
+; V25 tmp19 [V25,T19] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref "V15.[016..024)"
-; V27 tmp21 [V27,T22] ( 2, 2 ) int -> x1 "V15.[024..028)"
+; V27 tmp21 [V27,T21] ( 2, 2 ) int -> x1 "V15.[024..028)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref "V15.[028..032)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V20.[000..008)"
-; V30 tmp24 [V30,T21] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
+; V30 tmp24 [V30,T20] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref "V20.[016..024)"
-; V32 tmp26 [V32,T23] ( 2, 2 ) int -> x1 "V20.[024..028)"
+; V32 tmp26 [V32,T22] ( 2, 2 ) int -> x1 "V20.[024..028)"
;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref "V20.[028..032)"
-; V34 cse0 [V34,T17] ( 3, 6 ) long -> x21 "CSE #01: moderate"
-; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #06: moderate"
-; V36 cse2 [V36,T19] ( 2, 4.25) long -> x22 hoist "CSE #02: moderate"
-; V37 cse3 [V37,T09] ( 3, 12 ) ref -> x1 "CSE #03: aggressive"
+; V34 cse0 [V34,T10] ( 4, 10 ) long -> x21 "CSE #01: aggressive"
+; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #05: moderate"
+; V36 cse2 [V36,T09] ( 3, 12 ) ref -> x1 "CSE #02: aggressive"
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M15421_IG01:
- stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x58]
- stp x21, x22, [sp, #0x68]
- str x23, [sp, #0x78]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x50]
+ stp x21, x22, [sp, #0x60]
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=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M15421_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x1, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1[ubyte]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x38] // [V02 loc1], [V02 loc1+0x08]
- str xzr, [fp, #0x48] // [V02 loc1+0x10]
- stp w1, wzr, [fp, #0x50] // [V02 loc1+0x18], [V02 loc1+0x1c]
- add x0, fp, #56 // [V02 loc1]
+ stp x0, x2, [fp, #0x30] // [V02 loc1], [V02 loc1+0x08]
+ str xzr, [fp, #0x40] // [V02 loc1+0x10]
+ stp w1, wzr, [fp, #0x48] // [V02 loc1+0x18], [V02 loc1+0x1c]
+ add x0, fp, #48 // [V02 loc1]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M15421_IG10
+ cbz w0, G_M15421_IG09
;; size=108 bbWeight=1 PerfScore 29.50
G_M15421_IG03:
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M15421_IG04:
- mov x0, x22
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- ldr x1, [fp, #0x48] // [V02 loc1+0x10]
- add x14, x23, #8
+ mov x22, x0
+ ldr x1, [fp, #0x40] // [V02 loc1+0x10]
+ add x14, x22, #8
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x20]
- cbnz x0, G_M15421_IG06
+ cbnz x0, G_M15421_IG05
;; size=40 bbWeight=4 PerfScore 52.00
-G_M15421_IG05:
- cbnz x1, G_M15421_IG08
- b G_M15421_IG07
+G_M15421_IG04:
+ cbnz x1, G_M15421_IG07
+ b G_M15421_IG06
;; size=8 bbWeight=2 PerfScore 4.00
-G_M15421_IG06:
+G_M15421_IG05:
cmp x0, x1
- beq G_M15421_IG07
+ beq G_M15421_IG06
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M15421_IG08
+ cbz w0, G_M15421_IG07
;; size=28 bbWeight=2 PerfScore 25.00
-G_M15421_IG07:
+G_M15421_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,ubyte]:<CloneCast>b__0(ubyte):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M15421_IG09
+ b G_M15421_IG08
;; size=92 bbWeight=2 PerfScore 44.00
-G_M15421_IG08:
+G_M15421_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[short,ubyte]:<CloneCast>b__1(ubyte):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=76 bbWeight=2 PerfScore 38.00
-G_M15421_IG09:
- add x0, fp, #56 // [V02 loc1]
+G_M15421_IG08:
+ add x0, fp, #48 // [V02 loc1]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M15421_IG04
+ cbnz w0, G_M15421_IG03
;; size=32 bbWeight=4 PerfScore 30.00
-G_M15421_IG10:
+G_M15421_IG09:
ldr x0, [x19, #0x10]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x18] // [V04 loc3], [V04 loc3+0x08]
- str xzr, [fp, #0x28] // [V04 loc3+0x10]
- stp w1, wzr, [fp, #0x30] // [V04 loc3+0x18], [V04 loc3+0x1c]
- add x0, fp, #24 // [V04 loc3]
+ stp x0, x2, [fp, #0x10] // [V04 loc3], [V04 loc3+0x08]
+ str xzr, [fp, #0x20] // [V04 loc3+0x10]
+ stp w1, wzr, [fp, #0x28] // [V04 loc3+0x18], [V04 loc3+0x1c]
+ add x0, fp, #16 // [V04 loc3]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M15421_IG17
+ cbz w0, G_M15421_IG16
;; size=68 bbWeight=1 PerfScore 21.00
-G_M15421_IG11:
- ldr x22, [fp, #0x28] // [V04 loc3+0x10]
+G_M15421_IG10:
+ ldr x22, [fp, #0x20] // [V04 loc3+0x10]
ldr x0, [x19, #0x20]
ldr x0, [x0, #0x20]
- cbnz x0, G_M15421_IG13
+ cbnz x0, G_M15421_IG12
;; size=16 bbWeight=4 PerfScore 36.00
-G_M15421_IG12:
- cbnz x22, G_M15421_IG15
- b G_M15421_IG14
+G_M15421_IG11:
+ cbnz x22, G_M15421_IG14
+ b G_M15421_IG13
;; size=8 bbWeight=2 PerfScore 4.00
-G_M15421_IG13:
+G_M15421_IG12:
cmp x0, x22
- beq G_M15421_IG14
+ beq G_M15421_IG13
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M15421_IG15
+ cbz w0, G_M15421_IG14
;; size=32 bbWeight=2 PerfScore 26.00
-G_M15421_IG14:
+G_M15421_IG13:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #32
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M15421_IG16
+ b G_M15421_IG15
;; size=48 bbWeight=2 PerfScore 30.00
-G_M15421_IG15:
+G_M15421_IG14:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=32 bbWeight=2 PerfScore 24.00
-G_M15421_IG16:
- add x0, fp, #24 // [V04 loc3]
+G_M15421_IG15:
+ add x0, fp, #16 // [V04 loc3]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M15421_IG11
+ cbnz w0, G_M15421_IG10
;; size=32 bbWeight=4 PerfScore 30.00
-G_M15421_IG17:
+G_M15421_IG16:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
-G_M15421_IG18:
- ldr x23, [sp, #0x78]
- ldp x21, x22, [sp, #0x68]
- ldp x19, x20, [sp, #0x58]
- ldp fp, lr, [sp], #0x80
+G_M15421_IG17:
+ ldp x21, x22, [sp, #0x60]
+ ldp x19, x20, [sp, #0x50]
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 696, prolog size 36, PerfScore 408.38, instruction count 174, allocated bytes for code 696 (MethodHash=a872c3c2) for method System.Data.SortExpressionBuilder`1[short]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts)
+; Total bytes of code 676, prolog size 32, PerfScore 405.00, instruction count 169, allocated bytes for code 676 (MethodHash=a872c3c2) for method System.Data.SortExpressionBuilder`1[short]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts)
-20 (-2.87 % of base) - System.Data.SortExpressionBuilder`1[ubyte]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this
; Assembly listing for method System.Data.SortExpressionBuilder`1[ubyte]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]: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; 12 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 6, 12 ) ref -> x19 this class-hnd single-def <System.Data.SortExpressionBuilder`1[ubyte]>
; V01 loc0 [V01,T05] ( 8, 14 ) ref -> x20 class-hnd exact single-def <System.Data.SortExpressionBuilder`1[double]>
-; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[ubyte,System.Object]]>
-; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x23 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[ubyte,double]>
-; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
+; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[ubyte,System.Object]]>
+; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[ubyte,double]>
+; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
; V05 loc4 [V05,T07] ( 6, 14 ) ref -> x22 class-hnd <System.Comparison`1[System.Object]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T14] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[double]>
+; V07 tmp1 [V07,T15] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[double]>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[ubyte,double]>
; V09 tmp3 [V09,T02] ( 4, 20 ) ref -> x1 class-hnd "impAppendStmt" <System.Func`2[ubyte,System.Object]>
; V10 tmp4 [V10,T03] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[double,System.Object]>
-; V11 tmp5 [V11,T12] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[double,System.Object]]>
+; V11 tmp5 [V11,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[double,System.Object]]>
; V12 tmp6 [V12,T04] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[double,System.Object]>
-; V13 tmp7 [V13,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[double,System.Object]]>
-; V14 tmp8 [V14,T10] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[ubyte,System.Object]]>
+; V13 tmp7 [V13,T14] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[double,System.Object]]>
+; V14 tmp8 [V14,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[ubyte,System.Object]]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[ubyte,System.Object]]>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Func`2[ubyte,System.Object]]>
-; V17 tmp11 [V17,T15] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V17 tmp11 [V17,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V18 tmp12 [V18,T00] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
-; V19 tmp13 [V19,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
+; V19 tmp13 [V19,T12] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
;* V20 tmp14 [V20 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Comparison`1[System.Object]]>
-; V22 tmp16 [V22,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V22 tmp16 [V22,T17] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V23 tmp17 [V23,T01] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref single-def "V15.[000..008)"
-; V25 tmp19 [V25,T20] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
+; V25 tmp19 [V25,T19] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref "V15.[016..024)"
-; V27 tmp21 [V27,T22] ( 2, 2 ) int -> x1 "V15.[024..028)"
+; V27 tmp21 [V27,T21] ( 2, 2 ) int -> x1 "V15.[024..028)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref "V15.[028..032)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V20.[000..008)"
-; V30 tmp24 [V30,T21] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
+; V30 tmp24 [V30,T20] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref "V20.[016..024)"
-; V32 tmp26 [V32,T23] ( 2, 2 ) int -> x1 "V20.[024..028)"
+; V32 tmp26 [V32,T22] ( 2, 2 ) int -> x1 "V20.[024..028)"
;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref "V20.[028..032)"
-; V34 cse0 [V34,T17] ( 3, 6 ) long -> x21 "CSE #01: moderate"
-; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #06: moderate"
-; V36 cse2 [V36,T19] ( 2, 4.25) long -> x22 hoist "CSE #02: moderate"
-; V37 cse3 [V37,T09] ( 3, 12 ) ref -> x1 "CSE #03: aggressive"
+; V34 cse0 [V34,T10] ( 4, 10 ) long -> x21 "CSE #01: aggressive"
+; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #05: moderate"
+; V36 cse2 [V36,T09] ( 3, 12 ) ref -> x1 "CSE #02: aggressive"
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M6416_IG01:
- stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x58]
- stp x21, x22, [sp, #0x68]
- str x23, [sp, #0x78]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x50]
+ stp x21, x22, [sp, #0x60]
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=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M6416_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x1, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1[double]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x38] // [V02 loc1], [V02 loc1+0x08]
- str xzr, [fp, #0x48] // [V02 loc1+0x10]
- stp w1, wzr, [fp, #0x50] // [V02 loc1+0x18], [V02 loc1+0x1c]
- add x0, fp, #56 // [V02 loc1]
+ stp x0, x2, [fp, #0x30] // [V02 loc1], [V02 loc1+0x08]
+ str xzr, [fp, #0x40] // [V02 loc1+0x10]
+ stp w1, wzr, [fp, #0x48] // [V02 loc1+0x18], [V02 loc1+0x1c]
+ add x0, fp, #48 // [V02 loc1]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M6416_IG10
+ cbz w0, G_M6416_IG09
;; size=108 bbWeight=1 PerfScore 29.50
G_M6416_IG03:
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M6416_IG04:
- mov x0, x22
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- ldr x1, [fp, #0x48] // [V02 loc1+0x10]
- add x14, x23, #8
+ mov x22, x0
+ ldr x1, [fp, #0x40] // [V02 loc1+0x10]
+ add x14, x22, #8
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x20]
- cbnz x0, G_M6416_IG06
+ cbnz x0, G_M6416_IG05
;; size=40 bbWeight=4 PerfScore 52.00
-G_M6416_IG05:
- cbnz x1, G_M6416_IG08
- b G_M6416_IG07
+G_M6416_IG04:
+ cbnz x1, G_M6416_IG07
+ b G_M6416_IG06
;; size=8 bbWeight=2 PerfScore 4.00
-G_M6416_IG06:
+G_M6416_IG05:
cmp x0, x1
- beq G_M6416_IG07
+ beq G_M6416_IG06
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M6416_IG08
+ cbz w0, G_M6416_IG07
;; size=28 bbWeight=2 PerfScore 25.00
-G_M6416_IG07:
+G_M6416_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[ubyte,double]:<CloneCast>b__0(double):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M6416_IG09
+ b G_M6416_IG08
;; size=92 bbWeight=2 PerfScore 44.00
-G_M6416_IG08:
+G_M6416_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[ubyte,double]:<CloneCast>b__1(double):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=76 bbWeight=2 PerfScore 38.00
-G_M6416_IG09:
- add x0, fp, #56 // [V02 loc1]
+G_M6416_IG08:
+ add x0, fp, #48 // [V02 loc1]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M6416_IG04
+ cbnz w0, G_M6416_IG03
;; size=32 bbWeight=4 PerfScore 30.00
-G_M6416_IG10:
+G_M6416_IG09:
ldr x0, [x19, #0x10]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x18] // [V04 loc3], [V04 loc3+0x08]
- str xzr, [fp, #0x28] // [V04 loc3+0x10]
- stp w1, wzr, [fp, #0x30] // [V04 loc3+0x18], [V04 loc3+0x1c]
- add x0, fp, #24 // [V04 loc3]
+ stp x0, x2, [fp, #0x10] // [V04 loc3], [V04 loc3+0x08]
+ str xzr, [fp, #0x20] // [V04 loc3+0x10]
+ stp w1, wzr, [fp, #0x28] // [V04 loc3+0x18], [V04 loc3+0x1c]
+ add x0, fp, #16 // [V04 loc3]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M6416_IG17
+ cbz w0, G_M6416_IG16
;; size=68 bbWeight=1 PerfScore 21.00
-G_M6416_IG11:
- ldr x22, [fp, #0x28] // [V04 loc3+0x10]
+G_M6416_IG10:
+ ldr x22, [fp, #0x20] // [V04 loc3+0x10]
ldr x0, [x19, #0x20]
ldr x0, [x0, #0x20]
- cbnz x0, G_M6416_IG13
+ cbnz x0, G_M6416_IG12
;; size=16 bbWeight=4 PerfScore 36.00
-G_M6416_IG12:
- cbnz x22, G_M6416_IG15
- b G_M6416_IG14
+G_M6416_IG11:
+ cbnz x22, G_M6416_IG14
+ b G_M6416_IG13
;; size=8 bbWeight=2 PerfScore 4.00
-G_M6416_IG13:
+G_M6416_IG12:
cmp x0, x22
- beq G_M6416_IG14
+ beq G_M6416_IG13
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M6416_IG15
+ cbz w0, G_M6416_IG14
;; size=32 bbWeight=2 PerfScore 26.00
-G_M6416_IG14:
+G_M6416_IG13:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #32
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M6416_IG16
+ b G_M6416_IG15
;; size=48 bbWeight=2 PerfScore 30.00
-G_M6416_IG15:
+G_M6416_IG14:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=32 bbWeight=2 PerfScore 24.00
-G_M6416_IG16:
- add x0, fp, #24 // [V04 loc3]
+G_M6416_IG15:
+ add x0, fp, #16 // [V04 loc3]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M6416_IG11
+ cbnz w0, G_M6416_IG10
;; size=32 bbWeight=4 PerfScore 30.00
-G_M6416_IG17:
+G_M6416_IG16:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
-G_M6416_IG18:
- ldr x23, [sp, #0x78]
- ldp x21, x22, [sp, #0x68]
- ldp x19, x20, [sp, #0x58]
- ldp fp, lr, [sp], #0x80
+G_M6416_IG17:
+ ldp x21, x22, [sp, #0x60]
+ ldp x19, x20, [sp, #0x50]
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 696, prolog size 36, PerfScore 408.38, instruction count 174, allocated bytes for code 696 (MethodHash=2c05e6ef) for method System.Data.SortExpressionBuilder`1[ubyte]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts)
+; Total bytes of code 676, prolog size 32, PerfScore 405.00, instruction count 169, allocated bytes for code 676 (MethodHash=2c05e6ef) for method System.Data.SortExpressionBuilder`1[ubyte]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts)
-20 (-2.87 % of base) - System.Data.SortExpressionBuilder`1[ubyte]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this
; Assembly listing for method System.Data.SortExpressionBuilder`1[ubyte]:CloneCast[int]():System.Data.SortExpressionBuilder`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; 12 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 6, 12 ) ref -> x19 this class-hnd single-def <System.Data.SortExpressionBuilder`1[ubyte]>
; V01 loc0 [V01,T05] ( 8, 14 ) ref -> x20 class-hnd exact single-def <System.Data.SortExpressionBuilder`1[int]>
-; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[ubyte,System.Object]]>
-; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x23 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[ubyte,int]>
-; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
+; V02 loc1 [V02 ] ( 8, 14 ) struct (32) [fp+0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[ubyte,System.Object]]>
+; V03 loc2 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd exact <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[ubyte,int]>
+; V04 loc3 [V04 ] ( 8, 14 ) struct (32) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
; V05 loc4 [V05,T07] ( 6, 14 ) ref -> x22 class-hnd <System.Comparison`1[System.Object]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T14] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[int]>
+; V07 tmp1 [V07,T15] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Data.SortExpressionBuilder`1[int]>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[ubyte,int]>
; V09 tmp3 [V09,T02] ( 4, 20 ) ref -> x1 class-hnd "impAppendStmt" <System.Func`2[ubyte,System.Object]>
; V10 tmp4 [V10,T03] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[int,System.Object]>
-; V11 tmp5 [V11,T12] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
+; V11 tmp5 [V11,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
; V12 tmp6 [V12,T04] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Func`2[int,System.Object]>
-; V13 tmp7 [V13,T13] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
-; V14 tmp8 [V14,T10] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[ubyte,System.Object]]>
+; V13 tmp7 [V13,T14] ( 2, 8 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.LinkedList`1[System.Func`2[int,System.Object]]>
+; V14 tmp8 [V14,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Func`2[ubyte,System.Object]]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Func`2[ubyte,System.Object]]>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Func`2[ubyte,System.Object]]>
-; V17 tmp11 [V17,T15] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V17 tmp11 [V17,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V18 tmp12 [V18,T00] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
-; V19 tmp13 [V19,T11] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
+; V19 tmp13 [V19,T12] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Collections.Generic.LinkedList`1[System.Comparison`1[System.Object]]>
;* V20 tmp14 [V20 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.LinkedList`1+Enumerator[System.Comparison`1[System.Object]]>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Comparison`1[System.Object]]>
-; V22 tmp16 [V22,T16] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V22 tmp16 [V22,T17] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V23 tmp17 [V23,T01] ( 5, 28 ) ref -> x0 class-hnd "Inlining Arg" <System.__Canon>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref single-def "V15.[000..008)"
-; V25 tmp19 [V25,T20] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
+; V25 tmp19 [V25,T19] ( 2, 2 ) ref -> x2 single-def "V15.[008..016)"
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref "V15.[016..024)"
-; V27 tmp21 [V27,T22] ( 2, 2 ) int -> x1 "V15.[024..028)"
+; V27 tmp21 [V27,T21] ( 2, 2 ) int -> x1 "V15.[024..028)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref "V15.[028..032)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V20.[000..008)"
-; V30 tmp24 [V30,T21] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
+; V30 tmp24 [V30,T20] ( 2, 2 ) ref -> x2 single-def "V20.[008..016)"
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref "V20.[016..024)"
-; V32 tmp26 [V32,T23] ( 2, 2 ) int -> x1 "V20.[024..028)"
+; V32 tmp26 [V32,T22] ( 2, 2 ) int -> x1 "V20.[024..028)"
;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref "V20.[028..032)"
-; V34 cse0 [V34,T17] ( 3, 6 ) long -> x21 "CSE #01: moderate"
-; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #06: moderate"
-; V36 cse2 [V36,T19] ( 2, 4.25) long -> x22 hoist "CSE #02: moderate"
-; V37 cse3 [V37,T09] ( 3, 12 ) ref -> x1 "CSE #03: aggressive"
+; V34 cse0 [V34,T10] ( 4, 10 ) long -> x21 "CSE #01: aggressive"
+; V35 cse1 [V35,T18] ( 3, 6 ) long -> x21 "CSE #05: moderate"
+; V36 cse2 [V36,T09] ( 3, 12 ) ref -> x1 "CSE #02: aggressive"
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M7792_IG01:
- stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x58]
- stp x21, x22, [sp, #0x68]
- str x23, [sp, #0x78]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x50]
+ stp x21, x22, [sp, #0x60]
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=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M7792_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x1, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1[int]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x38] // [V02 loc1], [V02 loc1+0x08]
- str xzr, [fp, #0x48] // [V02 loc1+0x10]
- stp w1, wzr, [fp, #0x50] // [V02 loc1+0x18], [V02 loc1+0x1c]
- add x0, fp, #56 // [V02 loc1]
+ stp x0, x2, [fp, #0x30] // [V02 loc1], [V02 loc1+0x08]
+ str xzr, [fp, #0x40] // [V02 loc1+0x10]
+ stp w1, wzr, [fp, #0x48] // [V02 loc1+0x18], [V02 loc1+0x1c]
+ add x0, fp, #48 // [V02 loc1]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M7792_IG10
+ cbz w0, G_M7792_IG09
;; size=108 bbWeight=1 PerfScore 29.50
G_M7792_IG03:
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M7792_IG04:
- mov x0, x22
+ add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- ldr x1, [fp, #0x48] // [V02 loc1+0x10]
- add x14, x23, #8
+ mov x22, x0
+ ldr x1, [fp, #0x40] // [V02 loc1+0x10]
+ add x14, x22, #8
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x18]
ldr x0, [x0, #0x20]
- cbnz x0, G_M7792_IG06
+ cbnz x0, G_M7792_IG05
;; size=40 bbWeight=4 PerfScore 52.00
-G_M7792_IG05:
- cbnz x1, G_M7792_IG08
- b G_M7792_IG07
+G_M7792_IG04:
+ cbnz x1, G_M7792_IG07
+ b G_M7792_IG06
;; size=8 bbWeight=2 PerfScore 4.00
-G_M7792_IG06:
+G_M7792_IG05:
cmp x0, x1
- beq G_M7792_IG07
+ beq G_M7792_IG06
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M7792_IG08
+ cbz w0, G_M7792_IG07
;; size=28 bbWeight=2 PerfScore 25.00
-G_M7792_IG07:
+G_M7792_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[ubyte,int]:<CloneCast>b__0(int):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M7792_IG09
+ b G_M7792_IG08
;; size=92 bbWeight=2 PerfScore 44.00
-G_M7792_IG08:
+G_M7792_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
ldr x0, [x20, #0x08]
add x14, x1, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x2, #0xD1FFAB1E // code for System.Data.SortExpressionBuilder`1+<>c__DisplayClass10_0`1[ubyte,int]:<CloneCast>b__1(int):System.Object:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=76 bbWeight=2 PerfScore 38.00
-G_M7792_IG09:
- add x0, fp, #56 // [V02 loc1]
+G_M7792_IG08:
+ add x0, fp, #48 // [V02 loc1]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M7792_IG04
+ cbnz w0, G_M7792_IG03
;; size=32 bbWeight=4 PerfScore 30.00
-G_M7792_IG10:
+G_M7792_IG09:
ldr x0, [x19, #0x10]
ldr w1, [x0, #0x1C]
ldr x2, [x0, #0x08]
- stp x0, x2, [fp, #0x18] // [V04 loc3], [V04 loc3+0x08]
- str xzr, [fp, #0x28] // [V04 loc3+0x10]
- stp w1, wzr, [fp, #0x30] // [V04 loc3+0x18], [V04 loc3+0x1c]
- add x0, fp, #24 // [V04 loc3]
+ stp x0, x2, [fp, #0x10] // [V04 loc3], [V04 loc3+0x08]
+ str xzr, [fp, #0x20] // [V04 loc3+0x10]
+ stp w1, wzr, [fp, #0x28] // [V04 loc3+0x18], [V04 loc3+0x1c]
+ add x0, fp, #16 // [V04 loc3]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz w0, G_M7792_IG17
+ cbz w0, G_M7792_IG16
;; size=68 bbWeight=1 PerfScore 21.00
-G_M7792_IG11:
- ldr x22, [fp, #0x28] // [V04 loc3+0x10]
+G_M7792_IG10:
+ ldr x22, [fp, #0x20] // [V04 loc3+0x10]
ldr x0, [x19, #0x20]
ldr x0, [x0, #0x20]
- cbnz x0, G_M7792_IG13
+ cbnz x0, G_M7792_IG12
;; size=16 bbWeight=4 PerfScore 36.00
-G_M7792_IG12:
- cbnz x22, G_M7792_IG15
- b G_M7792_IG14
+G_M7792_IG11:
+ cbnz x22, G_M7792_IG14
+ b G_M7792_IG13
;; size=8 bbWeight=2 PerfScore 4.00
-G_M7792_IG13:
+G_M7792_IG12:
cmp x0, x22
- beq G_M7792_IG14
+ beq G_M7792_IG13
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
- cbz w0, G_M7792_IG15
+ cbz w0, G_M7792_IG14
;; size=32 bbWeight=2 PerfScore 26.00
-G_M7792_IG14:
+G_M7792_IG13:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
add x14, x20, #32
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- b G_M7792_IG16
+ b G_M7792_IG15
;; size=48 bbWeight=2 PerfScore 30.00
-G_M7792_IG15:
+G_M7792_IG14:
ldr x0, [x20, #0x10]
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=32 bbWeight=2 PerfScore 24.00
-G_M7792_IG16:
- add x0, fp, #24 // [V04 loc3]
+G_M7792_IG15:
+ add x0, fp, #16 // [V04 loc3]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz w0, G_M7792_IG11
+ cbnz w0, G_M7792_IG10
;; size=32 bbWeight=4 PerfScore 30.00
-G_M7792_IG17:
+G_M7792_IG16:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
-G_M7792_IG18:
- ldr x23, [sp, #0x78]
- ldp x21, x22, [sp, #0x68]
- ldp x19, x20, [sp, #0x58]
- ldp fp, lr, [sp], #0x80
+G_M7792_IG17:
+ ldp x21, x22, [sp, #0x60]
+ ldp x19, x20, [sp, #0x50]
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 696, prolog size 36, PerfScore 408.38, instruction count 174, allocated bytes for code 696 (MethodHash=b1a6e18f) for method System.Data.SortExpressionBuilder`1[ubyte]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts)
+; Total bytes of code 676, prolog size 32, PerfScore 405.00, instruction count 169, allocated bytes for code 676 (MethodHash=b1a6e18f) for method System.Data.SortExpressionBuilder`1[ubyte]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts)