36 (0.86 % of base) - System.Reflection.TypeLoading.RoType:GetMemberImpl(System.String,int,int):System.Reflection.MemberInfo[]:this
; Assembly listing for method System.Reflection.TypeLoading.RoType:GetMemberImpl(System.String,int,int):System.Reflection.MemberInfo[]: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; 34 single block inlinees; 34 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T74] ( 9, 5.50) ref -> x22 this class-hnd single-def <System.Reflection.TypeLoading.RoType>
; V01 arg1 [V01,T50] ( 13, 7.50) ref -> x20 class-hnd single-def <System.String>
; V02 arg2 [V02,T35] ( 18, 10.50) int -> x19 single-def
; V03 arg3 [V03,T59] ( 10, 6 ) int -> x21 single-def
; V04 loc0 [V04,T78] ( 10, 5.50) ref -> x23 class-hnd single-def <System.String>
; V05 loc1 [V05,T76] ( 11, 6 ) ref -> x24 class-hnd <System.Func`2[System.Reflection.MemberInfo,ubyte]>
; V06 loc2 [V06,T58] ( 15, 8.50) ref -> x0 class-hnd <System.Reflection.MemberInfo[]>
; V07 loc3 [V07 ] ( 15, 16 ) struct (16) [fp+0x68] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.MethodInfo]>
; V08 loc4 [V08 ] ( 15, 16 ) struct (16) [fp+0x58] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.ConstructorInfo]>
; V09 loc5 [V09 ] ( 13, 15 ) struct (16) [fp+0x48] do-not-enreg[XSR] multireg-ret must-init addr-exposed ld-addr-op <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.PropertyInfo]>
; V10 loc6 [V10 ] ( 13, 15 ) struct (16) [fp+0x38] do-not-enreg[XSR] multireg-ret must-init addr-exposed ld-addr-op <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.EventInfo]>
; V11 loc7 [V11 ] ( 13, 15 ) struct (16) [fp+0x28] do-not-enreg[XSR] multireg-ret must-init addr-exposed ld-addr-op <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.FieldInfo]>
; V12 loc8 [V12 ] ( 23, 28.50) struct (16) [fp+0x18] do-not-enreg[XSR] multireg-ret must-init addr-exposed ld-addr-op <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Type]>
; V13 loc9 [V13,T135] ( 3, 1.50) int -> x20 single-def
; V14 loc10 [V14,T75] ( 12, 6 ) int -> x20
;* V15 loc11 [V15 ] ( 0, 0 ) ubyte -> zero-ref single-def
;* V16 loc12 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Reflection.MemberInfo[]>
;# V17 OutArgs [V17 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V18 tmp1 [V18,T100] ( 4, 3 ) int -> x0
;* V19 tmp2 [V19 ] ( 0, 0 ) int -> zero-ref
;* V20 tmp3 [V20 ] ( 0, 0 ) int -> zero-ref single-def
; V21 tmp4 [V21,T108] ( 2, 2 ) ref -> x23
;* V22 tmp5 [V22 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V23 tmp6 [V23 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V24 tmp7 [V24 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V25 tmp8 [V25 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V26 tmp9 [V26,T118] ( 2, 2 ) int -> x20 "impAppendStmt"
; V27 tmp10 [V27,T93] ( 9, 4.50) ref -> x19
; V28 tmp11 [V28,T94] ( 4, 4 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoType+<>c__DisplayClass25_0>
;* V29 tmp12 [V29 ] ( 0, 0 ) ref -> zero-ref single-def
;* V30 tmp13 [V30 ] ( 0, 0 ) ref -> zero-ref single-def
;* V31 tmp14 [V31 ] ( 0, 0 ) ref -> zero-ref single-def
;* V32 tmp15 [V32 ] ( 0, 0 ) ref -> zero-ref single-def
; V33 tmp16 [V33,T155] ( 2, 1 ) int -> x0
; V34 tmp17 [V34,T95] ( 4, 4 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.Reflection.MemberInfo,ubyte]>
;* V35 tmp18 [V35 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V36 tmp19 [V36,T152] ( 2, 1 ) byref -> x0 single-def "clonning data ptr"
; V37 tmp20 [V37,T107] ( 3, 2 ) int -> x0 "spilling unroll qmark"
; V38 tmp21 [V38,T105] ( 4, 2 ) ref -> x15 class-hnd "Inline return value spill temp" <System.String>
; V39 tmp22 [V39,T77] ( 7, 6 ) int -> x2 "Inlining Arg"
; V40 tmp23 [V40,T156] ( 2, 1 ) long -> x25 single-def "Inline stloc first use temp"
; V41 tmp24 [V41,T96] ( 4, 4 ) ref -> x26 class-hnd exact single-def "dup spill" <System.String>
; V42 tmp25 [V42,T109] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
; V43 tmp26 [V43,T110] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
;* V44 tmp27 [V44 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
; V45 tmp28 [V45,T106] ( 3, 2 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Reflection.MethodInfo[]>
;* V46 tmp29 [V46 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.MethodInfo]>
; V47 tmp30 [V47,T97] ( 4, 4 ) int -> x20 "Inlining Arg"
; V48 tmp31 [V48,T136] ( 3, 1.50) ubyte -> x25 single-def "Inline stloc first use temp"
; V49 tmp32 [V49,T157] ( 2, 1 ) ubyte -> x26 single-def "Inline stloc first use temp"
; V50 tmp33 [V50,T120] ( 3, 1.50) ref -> x0 class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V51 tmp34 [V51,T103] ( 5, 2.50) ref -> x0 class-hnd "Inline stloc first use temp" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.Reflection.MethodInfo]>
;* V52 tmp35 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.MethodInfo]>
; V53 tmp36 [V53,T121] ( 3, 1.50) ref -> x20 class-hnd "Inline return value spill temp" <System.Reflection.MethodInfo[]>
; V54 tmp37 [V54,T137] ( 3, 1.50) int -> x0 single-def "Inline stloc first use temp"
; V55 tmp38 [V55,T79] ( 4, 5 ) ref -> x20 class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.MethodInfo[]>
;* V56 tmp39 [V56,T161] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.MethodInfo[]>
; V57 tmp40 [V57,T86] ( 3, 5 ) int -> x26 single-def "Inline stloc first use temp"
; V58 tmp41 [V58,T00] ( 8, 24.50) int -> x0 "Inline stloc first use temp"
; V59 tmp42 [V59,T51] ( 3, 9 ) int -> registers "Inlining Arg"
; V60 tmp43 [V60,T14] ( 4, 16 ) int -> x25 "impSpillLclRefs"
; V61 tmp44 [V61,T60] ( 2, 8 ) ref -> x15 class-hnd "Strict ordering of exceptions for Array store" <System.Reflection.MethodInfo>
; V62 tmp45 [V62,T138] ( 3, 1.50) int -> x26 "Inline return value spill temp"
; V63 tmp46 [V63,T111] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V64 tmp47 [V64,T21] ( 2, 16 ) ref -> x14 class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V65 tmp48 [V65,T43] ( 3, 12 ) int -> x14 "Inline stloc first use temp"
; V66 tmp49 [V66,T28] ( 2, 16 ) int -> x15 "Inlining Arg"
; V67 tmp50 [V67,T61] ( 2, 8 ) ref -> x14 class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V68 tmp51 [V68,T122] ( 3, 1.50) ref -> x0 class-hnd "Inline return value spill temp" <System.Reflection.ConstructorInfo[]>
;* V69 tmp52 [V69 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.ConstructorInfo]>
; V70 tmp53 [V70,T98] ( 4, 4 ) int -> x20 "Inlining Arg"
; V71 tmp54 [V71,T139] ( 3, 1.50) ubyte -> x25 single-def "Inline stloc first use temp"
; V72 tmp55 [V72,T158] ( 2, 1 ) ubyte -> x26 single-def "Inline stloc first use temp"
; V73 tmp56 [V73,T123] ( 3, 1.50) ref -> x0 class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V74 tmp57 [V74,T104] ( 5, 2.50) ref -> x0 class-hnd "Inline stloc first use temp" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.Reflection.ConstructorInfo]>
;* V75 tmp58 [V75 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.ConstructorInfo]>
; V76 tmp59 [V76,T124] ( 3, 1.50) ref -> x20 class-hnd "Inline return value spill temp" <System.Reflection.ConstructorInfo[]>
; V77 tmp60 [V77,T140] ( 3, 1.50) int -> x0 single-def "Inline stloc first use temp"
; V78 tmp61 [V78,T80] ( 4, 5 ) ref -> x20 class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.ConstructorInfo[]>
;* V79 tmp62 [V79,T162] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.ConstructorInfo[]>
; V80 tmp63 [V80,T87] ( 3, 5 ) int -> x26 single-def "Inline stloc first use temp"
; V81 tmp64 [V81,T01] ( 8, 24.50) int -> x0 "Inline stloc first use temp"
; V82 tmp65 [V82,T52] ( 3, 9 ) int -> registers "Inlining Arg"
; V83 tmp66 [V83,T15] ( 4, 16 ) int -> x25 "impSpillLclRefs"
; V84 tmp67 [V84,T62] ( 2, 8 ) ref -> x15 class-hnd "Strict ordering of exceptions for Array store" <System.Reflection.ConstructorInfo>
; V85 tmp68 [V85,T141] ( 3, 1.50) int -> x26 "Inline return value spill temp"
; V86 tmp69 [V86,T112] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V87 tmp70 [V87,T22] ( 2, 16 ) ref -> x14 class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V88 tmp71 [V88,T44] ( 3, 12 ) int -> x14 "Inline stloc first use temp"
; V89 tmp72 [V89,T29] ( 2, 16 ) int -> x15 "Inlining Arg"
; V90 tmp73 [V90,T63] ( 2, 8 ) ref -> x14 class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V91 tmp74 [V91,T125] ( 3, 1.50) ref -> x0 class-hnd "Inline return value spill temp" <System.Reflection.PropertyInfo[]>
; V92 tmp75 [V92,T126] ( 3, 1.50) ref -> x20 class-hnd "Inline return value spill temp" <System.Reflection.PropertyInfo[]>
; V93 tmp76 [V93,T142] ( 3, 1.50) int -> x0 single-def "Inline stloc first use temp"
; V94 tmp77 [V94,T81] ( 4, 5 ) ref -> x20 class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.PropertyInfo[]>
;* V95 tmp78 [V95,T163] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.PropertyInfo[]>
; V96 tmp79 [V96,T88] ( 3, 5 ) int -> x26 single-def "Inline stloc first use temp"
; V97 tmp80 [V97,T02] ( 8, 24.50) int -> x0 "Inline stloc first use temp"
; V98 tmp81 [V98,T53] ( 3, 9 ) int -> registers "Inlining Arg"
; V99 tmp82 [V99,T16] ( 4, 16 ) int -> x25 "impSpillLclRefs"
; V100 tmp83 [V100,T64] ( 2, 8 ) ref -> x15 class-hnd "Strict ordering of exceptions for Array store" <System.Reflection.PropertyInfo>
; V101 tmp84 [V101,T143] ( 3, 1.50) int -> x26 "Inline return value spill temp"
; V102 tmp85 [V102,T113] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V103 tmp86 [V103,T23] ( 2, 16 ) ref -> x14 class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V104 tmp87 [V104,T45] ( 3, 12 ) int -> x14 "Inline stloc first use temp"
; V105 tmp88 [V105,T30] ( 2, 16 ) int -> x15 "Inlining Arg"
; V106 tmp89 [V106,T65] ( 2, 8 ) ref -> x14 class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V107 tmp90 [V107,T127] ( 3, 1.50) ref -> x0 class-hnd "Inline return value spill temp" <System.Reflection.EventInfo[]>
; V108 tmp91 [V108,T128] ( 3, 1.50) ref -> x20 class-hnd "Inline return value spill temp" <System.Reflection.EventInfo[]>
; V109 tmp92 [V109,T144] ( 3, 1.50) int -> x0 single-def "Inline stloc first use temp"
; V110 tmp93 [V110,T82] ( 4, 5 ) ref -> x20 class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.EventInfo[]>
;* V111 tmp94 [V111,T164] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.EventInfo[]>
; V112 tmp95 [V112,T89] ( 3, 5 ) int -> x26 single-def "Inline stloc first use temp"
; V113 tmp96 [V113,T03] ( 8, 24.50) int -> x0 "Inline stloc first use temp"
; V114 tmp97 [V114,T54] ( 3, 9 ) int -> registers "Inlining Arg"
; V115 tmp98 [V115,T17] ( 4, 16 ) int -> x25 "impSpillLclRefs"
; V116 tmp99 [V116,T66] ( 2, 8 ) ref -> x15 class-hnd "Strict ordering of exceptions for Array store" <System.Reflection.EventInfo>
; V117 tmp100 [V117,T145] ( 3, 1.50) int -> x26 "Inline return value spill temp"
; V118 tmp101 [V118,T114] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V119 tmp102 [V119,T24] ( 2, 16 ) ref -> x14 class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V120 tmp103 [V120,T46] ( 3, 12 ) int -> x14 "Inline stloc first use temp"
; V121 tmp104 [V121,T31] ( 2, 16 ) int -> x15 "Inlining Arg"
; V122 tmp105 [V122,T67] ( 2, 8 ) ref -> x14 class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V123 tmp106 [V123,T129] ( 3, 1.50) ref -> x0 class-hnd "Inline return value spill temp" <System.Reflection.FieldInfo[]>
; V124 tmp107 [V124,T130] ( 3, 1.50) ref -> x20 class-hnd "Inline return value spill temp" <System.Reflection.FieldInfo[]>
; V125 tmp108 [V125,T146] ( 3, 1.50) int -> x0 single-def "Inline stloc first use temp"
; V126 tmp109 [V126,T83] ( 4, 5 ) ref -> x20 class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.FieldInfo[]>
;* V127 tmp110 [V127,T165] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.FieldInfo[]>
; V128 tmp111 [V128,T90] ( 3, 5 ) int -> x26 single-def "Inline stloc first use temp"
; V129 tmp112 [V129,T04] ( 8, 24.50) int -> x0 "Inline stloc first use temp"
; V130 tmp113 [V130,T55] ( 3, 9 ) int -> registers "Inlining Arg"
; V131 tmp114 [V131,T18] ( 4, 16 ) int -> x25 "impSpillLclRefs"
; V132 tmp115 [V132,T68] ( 2, 8 ) ref -> x15 class-hnd "Strict ordering of exceptions for Array store" <System.Reflection.FieldInfo>
; V133 tmp116 [V133,T147] ( 3, 1.50) int -> x26 "Inline return value spill temp"
; V134 tmp117 [V134,T115] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V135 tmp118 [V135,T25] ( 2, 16 ) ref -> x14 class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V136 tmp119 [V136,T47] ( 3, 12 ) int -> x14 "Inline stloc first use temp"
; V137 tmp120 [V137,T32] ( 2, 16 ) int -> x15 "Inlining Arg"
; V138 tmp121 [V138,T69] ( 2, 8 ) ref -> x14 class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V139 tmp122 [V139,T131] ( 3, 1.50) ref -> x0 class-hnd "Inline return value spill temp" <System.Type[]>
; V140 tmp123 [V140,T132] ( 3, 1.50) ref -> x20 class-hnd "Inline return value spill temp" <System.Type[]>
; V141 tmp124 [V141,T148] ( 3, 1.50) int -> x0 single-def "Inline stloc first use temp"
; V142 tmp125 [V142,T84] ( 4, 5 ) ref -> x20 class-hnd exact single-def "Inline stloc first use temp" <System.Type[]>
;* V143 tmp126 [V143,T166] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Type[]>
; V144 tmp127 [V144,T91] ( 3, 5 ) int -> x26 single-def "Inline stloc first use temp"
; V145 tmp128 [V145,T05] ( 8, 24.50) int -> x0 "Inline stloc first use temp"
; V146 tmp129 [V146,T56] ( 3, 9 ) int -> registers "Inlining Arg"
; V147 tmp130 [V147,T19] ( 4, 16 ) int -> x25 "impSpillLclRefs"
; V148 tmp131 [V148,T70] ( 2, 8 ) ref -> x15 class-hnd "Strict ordering of exceptions for Array store" <System.Type>
; V149 tmp132 [V149,T149] ( 3, 1.50) int -> x26 "Inline return value spill temp"
; V150 tmp133 [V150,T116] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V151 tmp134 [V151,T26] ( 2, 16 ) ref -> x14 class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V152 tmp135 [V152,T48] ( 3, 12 ) int -> x14 "Inline stloc first use temp"
; V153 tmp136 [V153,T33] ( 2, 16 ) int -> x15 "Inlining Arg"
; V154 tmp137 [V154,T71] ( 2, 8 ) ref -> x14 class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V155 tmp138 [V155,T133] ( 3, 1.50) ref -> x0 class-hnd "Inline return value spill temp" <System.Type[]>
; V156 tmp139 [V156,T134] ( 3, 1.50) ref -> x20 class-hnd "Inline return value spill temp" <System.Type[]>
; V157 tmp140 [V157,T150] ( 3, 1.50) int -> x0 single-def "Inline stloc first use temp"
; V158 tmp141 [V158,T85] ( 4, 5 ) ref -> x20 class-hnd exact single-def "Inline stloc first use temp" <System.Type[]>
;* V159 tmp142 [V159,T167] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Type[]>
; V160 tmp143 [V160,T92] ( 3, 5 ) int -> x22 single-def "Inline stloc first use temp"
; V161 tmp144 [V161,T06] ( 8, 24.50) int -> x0 "Inline stloc first use temp"
; V162 tmp145 [V162,T57] ( 3, 9 ) int -> registers "Inlining Arg"
; V163 tmp146 [V163,T20] ( 4, 16 ) int -> x21 "impSpillLclRefs"
; V164 tmp147 [V164,T72] ( 2, 8 ) ref -> x15 class-hnd "Strict ordering of exceptions for Array store" <System.Type>
; V165 tmp148 [V165,T151] ( 3, 1.50) int -> x22 "Inline return value spill temp"
; V166 tmp149 [V166,T117] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V167 tmp150 [V167,T27] ( 2, 16 ) ref -> x14 class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V168 tmp151 [V168,T49] ( 3, 12 ) int -> x14 "Inline stloc first use temp"
; V169 tmp152 [V169,T34] ( 2, 16 ) int -> x15 "Inlining Arg"
; V170 tmp153 [V170,T73] ( 2, 8 ) ref -> x14 class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
; V171 tmp154 [V171,T99] ( 3, 4 ) ref -> x0 "Single return block return value"
; V172 tmp155 [V172 ] ( 11, 10.50) ref -> [fp+0x68] do-not-enreg[X] addr-exposed "field V07._queriedMembers (fldOffset=0x0)" P-DEP
; V173 tmp156 [V173 ] ( 8, 7.50) int -> [fp+0x70] do-not-enreg[X] addr-exposed "field V07._bindingAttr (fldOffset=0x8)" P-DEP
; V174 tmp157 [V174 ] ( 6, 3 ) int -> [fp+0x74] do-not-enreg[X] addr-exposed "field V07._lazyCount (fldOffset=0xc)" P-DEP
; V175 tmp158 [V175 ] ( 11, 10.50) ref -> [fp+0x58] do-not-enreg[X] addr-exposed "field V08._queriedMembers (fldOffset=0x0)" P-DEP
; V176 tmp159 [V176 ] ( 8, 7.50) int -> [fp+0x60] do-not-enreg[X] addr-exposed "field V08._bindingAttr (fldOffset=0x8)" P-DEP
; V177 tmp160 [V177 ] ( 6, 3 ) int -> [fp+0x64] do-not-enreg[X] addr-exposed "field V08._lazyCount (fldOffset=0xc)" P-DEP
; V178 tmp161 [V178 ] ( 11, 10.50) ref -> [fp+0x48] do-not-enreg[X] addr-exposed "field V09._queriedMembers (fldOffset=0x0)" P-DEP
; V179 tmp162 [V179 ] ( 8, 7.50) int -> [fp+0x50] do-not-enreg[X] addr-exposed "field V09._bindingAttr (fldOffset=0x8)" P-DEP
; V180 tmp163 [V180 ] ( 6, 3 ) int -> [fp+0x54] do-not-enreg[X] addr-exposed "field V09._lazyCount (fldOffset=0xc)" P-DEP
; V181 tmp164 [V181 ] ( 11, 10.50) ref -> [fp+0x38] do-not-enreg[X] addr-exposed "field V10._queriedMembers (fldOffset=0x0)" P-DEP
; V182 tmp165 [V182 ] ( 8, 7.50) int -> [fp+0x40] do-not-enreg[X] addr-exposed "field V10._bindingAttr (fldOffset=0x8)" P-DEP
; V183 tmp166 [V183 ] ( 6, 3 ) int -> [fp+0x44] do-not-enreg[X] addr-exposed "field V10._lazyCount (fldOffset=0xc)" P-DEP
; V184 tmp167 [V184 ] ( 11, 10.50) ref -> [fp+0x28] do-not-enreg[X] addr-exposed "field V11._queriedMembers (fldOffset=0x0)" P-DEP
; V185 tmp168 [V185 ] ( 8, 7.50) int -> [fp+0x30] do-not-enreg[X] addr-exposed "field V11._bindingAttr (fldOffset=0x8)" P-DEP
; V186 tmp169 [V186 ] ( 6, 3 ) int -> [fp+0x34] do-not-enreg[X] addr-exposed "field V11._lazyCount (fldOffset=0xc)" P-DEP
; V187 tmp170 [V187 ] ( 19, 19.50) ref -> [fp+0x18] do-not-enreg[X] addr-exposed "field V12._queriedMembers (fldOffset=0x0)" P-DEP
; V188 tmp171 [V188 ] ( 13, 13.50) int -> [fp+0x20] do-not-enreg[X] addr-exposed "field V12._bindingAttr (fldOffset=0x8)" P-DEP
; V189 tmp172 [V189 ] ( 9, 4.50) int -> [fp+0x24] do-not-enreg[X] addr-exposed "field V12._lazyCount (fldOffset=0xc)" P-DEP
;* V190 tmp173 [V190 ] ( 0, 0 ) ref -> zero-ref "field V46._queriedMembers (fldOffset=0x0)" P-INDEP
;* V191 tmp174 [V191 ] ( 0, 0 ) int -> zero-ref "field V46._bindingAttr (fldOffset=0x8)" P-INDEP
;* V192 tmp175 [V192 ] ( 0, 0 ) int -> zero-ref "field V46._lazyCount (fldOffset=0xc)" P-INDEP
; V193 tmp176 [V193,T153] ( 2, 1 ) ref -> x0 single-def "field V52._queriedMembers (fldOffset=0x0)" P-INDEP
; V194 tmp177 [V194,T159] ( 2, 1 ) int -> x20 single-def "field V52._bindingAttr (fldOffset=0x8)" P-INDEP
;* V195 tmp178 [V195,T168] ( 0, 0 ) int -> zero-ref single-def "field V52._lazyCount (fldOffset=0xc)" P-INDEP
;* V196 tmp179 [V196 ] ( 0, 0 ) ref -> zero-ref "field V69._queriedMembers (fldOffset=0x0)" P-INDEP
;* V197 tmp180 [V197 ] ( 0, 0 ) int -> zero-ref "field V69._bindingAttr (fldOffset=0x8)" P-INDEP
;* V198 tmp181 [V198 ] ( 0, 0 ) int -> zero-ref "field V69._lazyCount (fldOffset=0xc)" P-INDEP
; V199 tmp182 [V199,T154] ( 2, 1 ) ref -> x0 single-def "field V75._queriedMembers (fldOffset=0x0)" P-INDEP
; V200 tmp183 [V200,T160] ( 2, 1 ) int -> x20 single-def "field V75._bindingAttr (fldOffset=0x8)" P-INDEP
;* V201 tmp184 [V201,T169] ( 0, 0 ) int -> zero-ref single-def "field V75._lazyCount (fldOffset=0xc)" P-INDEP
; V202 tmp185 [V202,T101] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V203 tmp186 [V203,T07] ( 3, 24 ) ref -> x14 "arr expr"
; V204 tmp187 [V204,T36] ( 3, 12 ) ref -> x14 "arr expr"
; V205 tmp188 [V205,T102] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V206 tmp189 [V206,T08] ( 3, 24 ) ref -> x14 "arr expr"
; V207 tmp190 [V207,T37] ( 3, 12 ) ref -> x14 "arr expr"
; V208 tmp191 [V208,T09] ( 3, 24 ) ref -> x14 "arr expr"
; V209 tmp192 [V209,T38] ( 3, 12 ) ref -> x14 "arr expr"
; V210 tmp193 [V210,T10] ( 3, 24 ) ref -> x14 "arr expr"
; V211 tmp194 [V211,T39] ( 3, 12 ) ref -> x14 "arr expr"
; V212 tmp195 [V212,T11] ( 3, 24 ) ref -> x14 "arr expr"
; V213 tmp196 [V213,T40] ( 3, 12 ) ref -> x14 "arr expr"
; V214 tmp197 [V214,T12] ( 3, 24 ) ref -> x14 "arr expr"
; V215 tmp198 [V215,T41] ( 3, 12 ) ref -> x14 "arr expr"
; V216 tmp199 [V216,T13] ( 3, 24 ) ref -> x14 "arr expr"
; V217 tmp200 [V217,T42] ( 3, 12 ) ref -> x14 "arr expr"
; V218 tmp201 [V218,T119] ( 2, 2 ) int -> x3 "argument with side effect"
;
; Lcl frame size = 104
G_M32842_IG01:
stp fp, lr, [sp, #-0xC0]!
stp x19, x20, [sp, #0x78]
stp x21, x22, [sp, #0x88]
stp x23, x24, [sp, #0x98]
stp x25, x26, [sp, #0xA8]
str x27, [sp, #0xB8]
mov fp, sp
add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
stp q16, q16, [x9, #0x40]
mov x22, x0
mov x20, x1
mov w19, w2
mov w21, w3
;; size=64 bbWeight=1 PerfScore 12.50
G_M32842_IG02:
cbnz x20, G_M32842_IG04
;; size=4 bbWeight=1 PerfScore 1.00
G_M32842_IG03:
mov w0, wzr
b G_M32842_IG07
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M32842_IG04:
ldr w0, [x20, #0x08]
cmp w0, #0
bgt G_M32842_IG06
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M32842_IG05:
mov w0, wzr
b G_M32842_IG07
align [0 bytes for IG19]
align [0 bytes]
align [0 bytes]
align [0 bytes]
;; size=8 bbWeight=0.25 PerfScore 0.38
G_M32842_IG06:
ldr w0, [x20, #0x08]
ubfiz x0, x0, #1, #32
sub x0, x0, #2
add x0, x0, x20
ldrh w0, [x0, #0x0C]
cmp w0, #42
cset x0, eq
;; size=28 bbWeight=0.25 PerfScore 2.25
G_M32842_IG07:
cmp w0, #0
csel x23, xzr, x20, ne
mov x24, xzr
cbz w0, G_M32842_IG12
;; size=16 bbWeight=1 PerfScore 2.50
G_M32842_IG08:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
mov w0, #4
tst w21, #1
cinc w0, w0, ne
str w0, [x24, #0x10]
ldr w0, [x20, #0x08]
sub w2, w0, #1
ldr w0, [x20, #0x08]
cmp w0, w2
blo G_M32842_IG102
cbz w2, G_M32842_IG10
ldr w0, [x20, #0x08]
cmp w0, w2
beq G_M32842_IG09
mov w25, w2
mov w0, w2
bl System.String:FastAllocateString(int):System.String
mov x26, x0
ldrsb wzr, [x26]
add x0, x26, #12
add x1, x20, #12
lsl x2, x25, #1
movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x15, x26
b G_M32842_IG11
;; size=132 bbWeight=0.50 PerfScore 16.75
G_M32842_IG09:
mov x15, x20
b G_M32842_IG11
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M32842_IG10:
- movz x15, #0xD1FFAB1E
+ movz x15, #8
movk x15, #0xD1FFAB1E LSL #16
movk x15, #0xD1FFAB1E LSL #32
;; size=12 bbWeight=0.50 PerfScore 0.75
G_M32842_IG11:
add x14, x24, #8
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
add x14, x0, #8
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+<>c__DisplayClass25_0:<GetMemberImpl>b__0(System.Reflection.MemberInfo):ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
str x1, [x0, #0x18]
mov x24, x0
;; size=56 bbWeight=0.50 PerfScore 4.50
G_M32842_IG12:
tbz w19, #3, G_M32842_IG25
;; size=4 bbWeight=1 PerfScore 1.00
G_M32842_IG13:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #3
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Reflection.Runtime.BindingFlagSupport.MemberPolicies`1[System.Reflection.MethodInfo]:Default
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, w21
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2]
blr x2
sxtw w20, w0
mov w0, w20
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType:NeedToSearchImmediateTypeOnly(int):ubyte
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
sxtw w25, w0
and w26, w20, #1
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType:get_Cache():System.Reflection.TypeLoading.RoType+TypeComponentsCache:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbz x23, G_M32842_IG14
mov w4, w25
mov x2, x23
mov w3, w26
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x5, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:GetQueriedMembers[System.__Canon](System.String,ubyte,ubyte):System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
ldr wzr, [x0]
blr x5
b G_M32842_IG15
- ;; size=168 bbWeight=0.50 PerfScore 22.25
+ ;; size=172 bbWeight=0.50 PerfScore 22.50
G_M32842_IG14:
mov w2, w25
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:GetQueriedMembers[System.__Canon](ubyte):System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
ldr wzr, [x0]
blr x3
;; size=40 bbWeight=0.50 PerfScore 5.25
G_M32842_IG15:
cbz x24, G_M32842_IG16
mov x1, x24
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:Filter(System.Func`2[System.__Canon,ubyte]):System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`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=0.50 PerfScore 5.00
G_M32842_IG16:
str x0, [fp, #0x68] // [V172 tmp155]
stp w20, wzr, [fp, #0x70] // [V173 tmp156], [V174 tmp157]
tst w19, #0xD1FFAB1E
bne G_M32842_IG26
add x0, fp, #104 // [V07 loc3]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz w0, G_M32842_IG23
sxtw x1, w0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
mov x20, x0
mov w25, wzr
ldr x0, [fp, #0x68] // [V172 tmp155]
cbz x0, G_M32842_IG22
ldr w0, [fp, #0x70] // [V173 tmp156]
tbz w0, #1, G_M32842_IG17
ldr x0, [fp, #0x68] // [V172 tmp155]
ldr w26, [x0, #0x24]
b G_M32842_IG18
;; size=112 bbWeight=0.50 PerfScore 14.00
G_M32842_IG17:
ldr x0, [fp, #0x68] // [V172 tmp155]
movz x1, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:get_TotalCount():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
sxtw w26, w0
;; size=32 bbWeight=0.50 PerfScore 5.50
G_M32842_IG18:
mov w0, wzr
cmp w26, #0
ble G_M32842_IG22
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M32842_IG19:
ldr x14, [fp, #0x68] // [V172 tmp155]
ldr w15, [fp, #0x70] // [V173 tmp156]
ldr x14, [x14, #0x10]
ldr w12, [x14, #0x08]
cmp w0, w12
bhs G_M32842_IG103
add x14, x14, #16
ldr w14, [x14, w0, UXTW #2]
and w15, w15, w14
cmp w15, w14
bne G_M32842_IG21
;; size=44 bbWeight=4 PerfScore 68.00
G_M32842_IG20:
add w14, w25, #1
sxtw w27, w14
ldr x14, [fp, #0x68] // [V172 tmp155]
ldr x14, [x14, #0x08]
ldr w15, [x14, #0x08]
cmp w0, w15
bhs G_M32842_IG103
add x14, x14, #16
ldr x15, [x14, w0, UXTW #3]
ldr w14, [x20, #0x08]
cmp w25, w14
bhs G_M32842_IG103
add x14, x20, #16
add x14, x14, x25, LSL #3
bl CORINFO_HELP_ASSIGN_REF
mov w25, w27
;; size=64 bbWeight=2 PerfScore 43.00
G_M32842_IG21:
add w0, w0, #1
cmp w0, w26
blt G_M32842_IG19
;; size=12 bbWeight=4 PerfScore 8.00
G_M32842_IG22:
b G_M32842_IG24
align [0 bytes for IG34]
align [0 bytes]
align [0 bytes]
align [0 bytes]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32842_IG23:
movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x20, [x0]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M32842_IG24:
b G_M32842_IG27
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32842_IG25:
stp xzr, xzr, [fp, #0x68]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32842_IG26:
mov x20, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M32842_IG27:
mov x0, x20
cbnz x0, G_M32842_IG101
;; size=8 bbWeight=1 PerfScore 1.50
G_M32842_IG28:
tbz w19, #0, G_M32842_IG40
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, wzr
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Reflection.Runtime.BindingFlagSupport.MemberPolicies`1[System.Reflection.ConstructorInfo]:Default
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, w21
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2]
blr x2
sxtw w20, w0
mov w0, w20
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType:NeedToSearchImmediateTypeOnly(int):ubyte
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
sxtw w25, w0
and w26, w20, #1
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType:get_Cache():System.Reflection.TypeLoading.RoType+TypeComponentsCache:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbz x23, G_M32842_IG29
mov w4, w25
mov x2, x23
mov w3, w26
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x5, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:GetQueriedMembers[System.__Canon](System.String,ubyte,ubyte):System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
ldr wzr, [x0]
blr x5
b G_M32842_IG30
- ;; size=172 bbWeight=0.50 PerfScore 22.75
+ ;; size=176 bbWeight=0.50 PerfScore 23.00
G_M32842_IG29:
mov w2, w25
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:GetQueriedMembers[System.__Canon](ubyte):System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
ldr wzr, [x0]
blr x3
;; size=40 bbWeight=0.50 PerfScore 5.25
G_M32842_IG30:
cbz x24, G_M32842_IG31
mov x1, x24
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:Filter(System.Func`2[System.__Canon,ubyte]):System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`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=0.50 PerfScore 5.00
G_M32842_IG31:
str x0, [fp, #0x58] // [V175 tmp158]
stp w20, wzr, [fp, #0x60] // [V176 tmp159], [V177 tmp160]
tst w19, #0xD1FFAB1E
bne G_M32842_IG41
add x0, fp, #88 // [V08 loc4]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz w0, G_M32842_IG38
sxtw x1, w0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
mov x20, x0
mov w25, wzr
ldr x0, [fp, #0x58] // [V175 tmp158]
cbz x0, G_M32842_IG37
ldr w0, [fp, #0x60] // [V176 tmp159]
tbz w0, #1, G_M32842_IG32
ldr x0, [fp, #0x58] // [V175 tmp158]
ldr w26, [x0, #0x24]
b G_M32842_IG33
;; size=112 bbWeight=0.50 PerfScore 14.00
G_M32842_IG32:
ldr x0, [fp, #0x58] // [V175 tmp158]
movz x1, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:get_TotalCount():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
sxtw w26, w0
;; size=32 bbWeight=0.50 PerfScore 5.50
G_M32842_IG33:
mov w0, wzr
cmp w26, #0
ble G_M32842_IG37
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M32842_IG34:
ldr x14, [fp, #0x58] // [V175 tmp158]
ldr w15, [fp, #0x60] // [V176 tmp159]
ldr x14, [x14, #0x10]
ldr w12, [x14, #0x08]
cmp w0, w12
bhs G_M32842_IG103
add x14, x14, #16
ldr w14, [x14, w0, UXTW #2]
and w15, w15, w14
cmp w15, w14
bne G_M32842_IG36
;; size=44 bbWeight=4 PerfScore 68.00
G_M32842_IG35:
add w14, w25, #1
sxtw w27, w14
ldr x14, [fp, #0x58] // [V175 tmp158]
ldr x14, [x14, #0x08]
ldr w15, [x14, #0x08]
cmp w0, w15
bhs G_M32842_IG103
add x14, x14, #16
ldr x15, [x14, w0, UXTW #3]
ldr w14, [x20, #0x08]
cmp w25, w14
bhs G_M32842_IG103
add x14, x20, #16
add x14, x14, x25, LSL #3
bl CORINFO_HELP_ASSIGN_REF
mov w25, w27
;; size=64 bbWeight=2 PerfScore 43.00
G_M32842_IG36:
add w0, w0, #1
cmp w0, w26
blt G_M32842_IG34
;; size=12 bbWeight=4 PerfScore 8.00
G_M32842_IG37:
b G_M32842_IG39
align [0 bytes for IG45]
align [0 bytes]
align [0 bytes]
align [0 bytes]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32842_IG38:
movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x20, [x0]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M32842_IG39:
mov x0, x20
b G_M32842_IG42
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M32842_IG40:
stp xzr, xzr, [fp, #0x58]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32842_IG41:
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M32842_IG42:
cbnz x0, G_M32842_IG101
tbz w19, #4, G_M32842_IG51
mov x0, x22
mov x4, x24
mov x2, x23
mov w3, w21
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x5, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType:Query[System.__Canon](System.String,int,System.Func`2[System.__Canon,ubyte]):System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
stp x0, x1, [fp, #0x48] // [V09 loc5], [V09 loc5+0x08]
tst w19, #0xD1FFAB1E
bne G_M32842_IG52
add x0, fp, #72 // [V09 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz w0, G_M32842_IG49
sxtw x1, w0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
mov x20, x0
mov w25, wzr
ldr x0, [fp, #0x48] // [V178 tmp161]
cbz x0, G_M32842_IG48
ldr w0, [fp, #0x50] // [V179 tmp162]
tbz w0, #1, G_M32842_IG43
ldr x0, [fp, #0x48] // [V178 tmp161]
ldr w26, [x0, #0x24]
b G_M32842_IG44
;; size=164 bbWeight=0.50 PerfScore 19.00
G_M32842_IG43:
ldr x0, [fp, #0x48] // [V178 tmp161]
movz x1, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:get_TotalCount():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
sxtw w26, w0
;; size=32 bbWeight=0.50 PerfScore 5.50
G_M32842_IG44:
mov w0, wzr
cmp w26, #0
ble G_M32842_IG48
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M32842_IG45:
ldr x14, [fp, #0x48] // [V178 tmp161]
ldr w15, [fp, #0x50] // [V179 tmp162]
ldr x14, [x14, #0x10]
ldr w12, [x14, #0x08]
cmp w0, w12
bhs G_M32842_IG103
add x14, x14, #16
ldr w14, [x14, w0, UXTW #2]
and w15, w15, w14
cmp w15, w14
bne G_M32842_IG47
;; size=44 bbWeight=4 PerfScore 68.00
G_M32842_IG46:
add w14, w25, #1
sxtw w27, w14
ldr x14, [fp, #0x48] // [V178 tmp161]
ldr x14, [x14, #0x08]
ldr w15, [x14, #0x08]
cmp w0, w15
bhs G_M32842_IG103
add x14, x14, #16
ldr x15, [x14, w0, UXTW #3]
ldr w14, [x20, #0x08]
cmp w25, w14
bhs G_M32842_IG103
add x14, x20, #16
add x14, x14, x25, LSL #3
bl CORINFO_HELP_ASSIGN_REF
mov w25, w27
;; size=64 bbWeight=2 PerfScore 43.00
G_M32842_IG47:
add w0, w0, #1
cmp w0, w26
blt G_M32842_IG45
;; size=12 bbWeight=4 PerfScore 8.00
G_M32842_IG48:
b G_M32842_IG50
align [0 bytes for IG56]
align [0 bytes]
align [0 bytes]
align [0 bytes]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32842_IG49:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #90
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Reflection.PropertyInfo]:Value
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x20, [x0]
- ;; size=32 bbWeight=0.50 PerfScore 3.50
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M32842_IG50:
mov x0, x20
b G_M32842_IG53
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M32842_IG51:
stp xzr, xzr, [fp, #0x48]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32842_IG52:
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M32842_IG53:
cbnz x0, G_M32842_IG101
tbz w19, #1, G_M32842_IG62
mov x0, x22
mov x4, x24
mov x2, x23
mov w3, w21
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x5, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType:Query[System.__Canon](System.String,int,System.Func`2[System.__Canon,ubyte]):System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
stp x0, x1, [fp, #0x38] // [V10 loc6], [V10 loc6+0x08]
tst w19, #0xD1FFAB1E
bne G_M32842_IG63
add x0, fp, #56 // [V10 loc6]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz w0, G_M32842_IG60
sxtw x1, w0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
mov x20, x0
mov w25, wzr
ldr x0, [fp, #0x38] // [V181 tmp164]
cbz x0, G_M32842_IG59
ldr w0, [fp, #0x40] // [V182 tmp165]
tbz w0, #1, G_M32842_IG54
ldr x0, [fp, #0x38] // [V181 tmp164]
ldr w26, [x0, #0x24]
b G_M32842_IG55
;; size=164 bbWeight=0.50 PerfScore 19.00
G_M32842_IG54:
ldr x0, [fp, #0x38] // [V181 tmp164]
movz x1, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:get_TotalCount():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
sxtw w26, w0
;; size=32 bbWeight=0.50 PerfScore 5.50
G_M32842_IG55:
mov w0, wzr
cmp w26, #0
ble G_M32842_IG59
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M32842_IG56:
ldr x14, [fp, #0x38] // [V181 tmp164]
ldr w15, [fp, #0x40] // [V182 tmp165]
ldr x14, [x14, #0x10]
ldr w12, [x14, #0x08]
cmp w0, w12
bhs G_M32842_IG103
add x14, x14, #16
ldr w14, [x14, w0, UXTW #2]
and w15, w15, w14
cmp w15, w14
bne G_M32842_IG58
;; size=44 bbWeight=4 PerfScore 68.00
G_M32842_IG57:
add w14, w25, #1
sxtw w27, w14
ldr x14, [fp, #0x38] // [V181 tmp164]
ldr x14, [x14, #0x08]
ldr w15, [x14, #0x08]
cmp w0, w15
bhs G_M32842_IG103
add x14, x14, #16
ldr x15, [x14, w0, UXTW #3]
ldr w14, [x20, #0x08]
cmp w25, w14
bhs G_M32842_IG103
add x14, x20, #16
add x14, x14, x25, LSL #3
bl CORINFO_HELP_ASSIGN_REF
mov w25, w27
;; size=64 bbWeight=2 PerfScore 43.00
G_M32842_IG58:
add w0, w0, #1
cmp w0, w26
blt G_M32842_IG56
;; size=12 bbWeight=4 PerfScore 8.00
G_M32842_IG59:
b G_M32842_IG61
align [0 bytes for IG67]
align [0 bytes]
align [0 bytes]
align [0 bytes]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32842_IG60:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #89
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Reflection.EventInfo]:Value
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x20, [x0]
- ;; size=32 bbWeight=0.50 PerfScore 3.50
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M32842_IG61:
mov x0, x20
b G_M32842_IG64
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M32842_IG62:
stp xzr, xzr, [fp, #0x38]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32842_IG63:
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M32842_IG64:
cbnz x0, G_M32842_IG101
tbz w19, #2, G_M32842_IG73
mov x0, x22
mov x4, x24
mov x2, x23
mov w3, w21
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x5, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType:Query[System.__Canon](System.String,int,System.Func`2[System.__Canon,ubyte]):System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
stp x0, x1, [fp, #0x28] // [V11 loc7], [V11 loc7+0x08]
tst w19, #0xD1FFAB1E
bne G_M32842_IG74
add x0, fp, #40 // [V11 loc7]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz w0, G_M32842_IG71
sxtw x1, w0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
mov x20, x0
mov w25, wzr
ldr x0, [fp, #0x28] // [V184 tmp167]
cbz x0, G_M32842_IG70
ldr w0, [fp, #0x30] // [V185 tmp168]
tbz w0, #1, G_M32842_IG65
ldr x0, [fp, #0x28] // [V184 tmp167]
ldr w26, [x0, #0x24]
b G_M32842_IG66
;; size=164 bbWeight=0.50 PerfScore 19.00
G_M32842_IG65:
ldr x0, [fp, #0x28] // [V184 tmp167]
movz x1, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:get_TotalCount():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
sxtw w26, w0
;; size=32 bbWeight=0.50 PerfScore 5.50
G_M32842_IG66:
mov w0, wzr
cmp w26, #0
ble G_M32842_IG70
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M32842_IG67:
ldr x14, [fp, #0x28] // [V184 tmp167]
ldr w15, [fp, #0x30] // [V185 tmp168]
ldr x14, [x14, #0x10]
ldr w12, [x14, #0x08]
cmp w0, w12
bhs G_M32842_IG103
add x14, x14, #16
ldr w14, [x14, w0, UXTW #2]
and w15, w15, w14
cmp w15, w14
bne G_M32842_IG69
;; size=44 bbWeight=4 PerfScore 68.00
G_M32842_IG68:
add w14, w25, #1
sxtw w27, w14
ldr x14, [fp, #0x28] // [V184 tmp167]
ldr x14, [x14, #0x08]
ldr w15, [x14, #0x08]
cmp w0, w15
bhs G_M32842_IG103
add x14, x14, #16
ldr x15, [x14, w0, UXTW #3]
ldr w14, [x20, #0x08]
cmp w25, w14
bhs G_M32842_IG103
add x14, x20, #16
add x14, x14, x25, LSL #3
bl CORINFO_HELP_ASSIGN_REF
mov w25, w27
;; size=64 bbWeight=2 PerfScore 43.00
G_M32842_IG69:
add w0, w0, #1
cmp w0, w26
blt G_M32842_IG67
;; size=12 bbWeight=4 PerfScore 8.00
G_M32842_IG70:
b G_M32842_IG72
align [0 bytes for IG78]
align [0 bytes]
align [0 bytes]
align [0 bytes]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32842_IG71:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #87
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Reflection.FieldInfo]:Value
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x20, [x0]
- ;; size=32 bbWeight=0.50 PerfScore 3.50
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M32842_IG72:
mov x0, x20
b G_M32842_IG75
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M32842_IG73:
stp xzr, xzr, [fp, #0x28]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32842_IG74:
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M32842_IG75:
cbnz x0, G_M32842_IG101
tbz w19, #7, G_M32842_IG84
mov x0, x22
mov x4, x24
mov x2, x23
mov w3, w21
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x5, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType:Query[System.__Canon](System.String,int,System.Func`2[System.__Canon,ubyte]):System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
stp x0, x1, [fp, #0x18] // [V12 loc8], [V12 loc8+0x08]
tst w19, #0xD1FFAB1E
bne G_M32842_IG85
add x0, fp, #24 // [V12 loc8]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz w0, G_M32842_IG82
sxtw x1, w0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
mov x20, x0
mov w25, wzr
ldr x0, [fp, #0x18] // [V187 tmp170]
cbz x0, G_M32842_IG81
ldr w0, [fp, #0x20] // [V188 tmp171]
tbz w0, #1, G_M32842_IG76
ldr x0, [fp, #0x18] // [V187 tmp170]
ldr w26, [x0, #0x24]
b G_M32842_IG77
;; size=164 bbWeight=0.50 PerfScore 19.00
G_M32842_IG76:
ldr x0, [fp, #0x18] // [V187 tmp170]
movz x1, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:get_TotalCount():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
sxtw w26, w0
;; size=32 bbWeight=0.50 PerfScore 5.50
G_M32842_IG77:
mov w0, wzr
cmp w26, #0
ble G_M32842_IG81
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M32842_IG78:
ldr x14, [fp, #0x18] // [V187 tmp170]
ldr w15, [fp, #0x20] // [V188 tmp171]
ldr x14, [x14, #0x10]
ldr w12, [x14, #0x08]
cmp w0, w12
bhs G_M32842_IG103
add x14, x14, #16
ldr w14, [x14, w0, UXTW #2]
and w15, w15, w14
cmp w15, w14
bne G_M32842_IG80
;; size=44 bbWeight=4 PerfScore 68.00
G_M32842_IG79:
add w14, w25, #1
sxtw w27, w14
ldr x14, [fp, #0x18] // [V187 tmp170]
ldr x14, [x14, #0x08]
ldr w15, [x14, #0x08]
cmp w0, w15
bhs G_M32842_IG103
add x14, x14, #16
ldr x15, [x14, w0, UXTW #3]
ldr w14, [x20, #0x08]
cmp w25, w14
bhs G_M32842_IG103
add x14, x20, #16
add x14, x14, x25, LSL #3
bl CORINFO_HELP_ASSIGN_REF
mov w25, w27
;; size=64 bbWeight=2 PerfScore 43.00
G_M32842_IG80:
add w0, w0, #1
cmp w0, w26
blt G_M32842_IG78
;; size=12 bbWeight=4 PerfScore 8.00
G_M32842_IG81:
b G_M32842_IG83
align [0 bytes for IG89]
align [0 bytes]
align [0 bytes]
align [0 bytes]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32842_IG82:
movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x20, [x0]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M32842_IG83:
mov x0, x20
b G_M32842_IG86
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M32842_IG84:
stp xzr, xzr, [fp, #0x18]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32842_IG85:
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M32842_IG86:
cbnz x0, G_M32842_IG101
mov w0, #160
and w0, w19, w0
cmp w0, #32
bne G_M32842_IG98
tbz w19, #5, G_M32842_IG95
mov x0, x22
mov x4, x24
mov x2, x23
mov w3, w21
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x5, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType:Query[System.__Canon](System.String,int,System.Func`2[System.__Canon,ubyte]):System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
stp x0, x1, [fp, #0x18] // [V12 loc8], [V12 loc8+0x08]
tst w19, #0xD1FFAB1E
bne G_M32842_IG96
add x0, fp, #24 // [V12 loc8]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz w0, G_M32842_IG93
sxtw x1, w0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
mov x20, x0
mov w21, wzr
ldr x0, [fp, #0x18] // [V187 tmp170]
cbz x0, G_M32842_IG92
ldr w0, [fp, #0x20] // [V188 tmp171]
tbz w0, #1, G_M32842_IG87
ldr x0, [fp, #0x18] // [V187 tmp170]
ldr w22, [x0, #0x24]
b G_M32842_IG88
;; size=180 bbWeight=0.50 PerfScore 20.25
G_M32842_IG87:
ldr x0, [fp, #0x18] // [V187 tmp170]
movz x1, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:get_TotalCount():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
sxtw w22, w0
;; size=32 bbWeight=0.50 PerfScore 5.50
G_M32842_IG88:
mov w0, wzr
cmp w22, #0
ble G_M32842_IG92
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M32842_IG89:
ldr x14, [fp, #0x18] // [V187 tmp170]
ldr w15, [fp, #0x20] // [V188 tmp171]
ldr x14, [x14, #0x10]
ldr w12, [x14, #0x08]
cmp w0, w12
bhs G_M32842_IG103
add x14, x14, #16
ldr w14, [x14, w0, UXTW #2]
and w15, w15, w14
cmp w15, w14
bne G_M32842_IG91
;; size=44 bbWeight=4 PerfScore 68.00
G_M32842_IG90:
add w14, w21, #1
sxtw w23, w14
ldr x14, [fp, #0x18] // [V187 tmp170]
ldr x14, [x14, #0x08]
ldr w15, [x14, #0x08]
cmp w0, w15
bhs G_M32842_IG103
add x14, x14, #16
ldr x15, [x14, w0, UXTW #3]
ldr w14, [x20, #0x08]
cmp w21, w14
bhs G_M32842_IG103
add x14, x20, #16
add x14, x14, x21, LSL #3
bl CORINFO_HELP_ASSIGN_REF
mov w21, w23
;; size=64 bbWeight=2 PerfScore 43.00
G_M32842_IG91:
add w0, w0, #1
cmp w0, w22
blt G_M32842_IG89
;; size=12 bbWeight=4 PerfScore 8.00
G_M32842_IG92:
b G_M32842_IG94
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32842_IG93:
movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x20, [x0]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M32842_IG94:
mov x0, x20
b G_M32842_IG97
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M32842_IG95:
stp xzr, xzr, [fp, #0x18]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32842_IG96:
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M32842_IG97:
cbnz x0, G_M32842_IG101
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32842_IG98:
add x0, fp, #104 // [V07 loc3]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov w20, w0
add x0, fp, #88 // [V08 loc4]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add w20, w20, w0
add x0, fp, #72 // [V09 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add w20, w20, w0
add x0, fp, #56 // [V10 loc6]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add w20, w20, w0
add x0, fp, #40 // [V11 loc7]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add w20, w20, w0
add x0, fp, #24 // [V12 loc8]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add w20, w0, w20
cmp w19, #9
bne G_M32842_IG99
sxtw x1, w20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
mov x19, x0
b G_M32842_IG100
;; size=276 bbWeight=0.50 PerfScore 27.00
G_M32842_IG99:
sxtw x1, w20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
mov x19, x0
;; size=24 bbWeight=0.50 PerfScore 1.75
G_M32842_IG100:
add x0, fp, #104 // [V07 loc3]
mov x2, x19
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
mov w3, wzr
movz x4, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:CopyTo(System.Reflection.MemberInfo[],int):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
add x0, fp, #104 // [V07 loc3]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
sxtw w20, w0
add x0, fp, #88 // [V08 loc4]
mov w3, w20
mov x2, x19
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x4, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:CopyTo(System.Reflection.MemberInfo[],int):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
add x0, fp, #88 // [V08 loc4]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add w20, w0, w20
add x0, fp, #72 // [V09 loc5]
mov w3, w20
mov x2, x19
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x4, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:CopyTo(System.Reflection.MemberInfo[],int):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
add x0, fp, #72 // [V09 loc5]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add w20, w0, w20
add x0, fp, #56 // [V10 loc6]
mov w3, w20
mov x2, x19
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x4, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:CopyTo(System.Reflection.MemberInfo[],int):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
add x0, fp, #56 // [V10 loc6]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add w20, w0, w20
add x0, fp, #40 // [V11 loc7]
mov w3, w20
mov x2, x19
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x4, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:CopyTo(System.Reflection.MemberInfo[],int):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
add x0, fp, #40 // [V11 loc7]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add w3, w0, w20
add x0, fp, #24 // [V12 loc8]
mov x2, x19
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x4, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:CopyTo(System.Reflection.MemberInfo[],int):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
add x0, fp, #24 // [V12 loc8]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x19
b G_M32842_IG101
;; size=504 bbWeight=0.50 PerfScore 49.75
G_M32842_IG101:
ldr x27, [sp, #0xB8]
ldp x25, x26, [sp, #0xA8]
ldp x23, x24, [sp, #0x98]
ldp x21, x22, [sp, #0x88]
ldp x19, x20, [sp, #0x78]
ldp fp, lr, [sp], #0xC0
ret lr
;; size=28 bbWeight=1 PerfScore 8.00
G_M32842_IG102:
mov x0, x20
mov w1, wzr
movz x3, #0xD1FFAB1E // code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
G_M32842_IG103:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 4208, prolog size 64, PerfScore 1234.38, instruction count 1080, allocated bytes for code 4208 (MethodHash=299f7fb5) for method System.Reflection.TypeLoading.RoType:GetMemberImpl(System.String,int,int):System.Reflection.MemberInfo[]:this (FullOpts)
+; Total bytes of code 4244, prolog size 64, PerfScore 1236.62, instruction count 1089, allocated bytes for code 4244 (MethodHash=299f7fb5) for method System.Reflection.TypeLoading.RoType:GetMemberImpl(System.String,int,int):System.Reflection.MemberInfo[]:this (FullOpts)
20 (0.89 % of base) - System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeHelpers:ToMarshalAsAttribute(System.Reflection.Metadata.BlobHandle,System.Reflection.TypeLoading.Ecma.EcmaModule):System.Runtime.InteropServices.MarshalAsAttribute
; Assembly listing for method System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeHelpers:ToMarshalAsAttribute(System.Reflection.Metadata.BlobHandle,System.Reflection.TypeLoading.Ecma.EcmaModule):System.Runtime.InteropServices.MarshalAsAttribute (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; 93 single block inlinees; 27 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Reflection.Metadata.BlobHandle>
; V01 arg1 [V01,T02] ( 6, 5 ) ref -> x19 class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaModule>
; V02 loc0 [V02,T16] ( 3, 3 ) ref -> x2 class-hnd exact single-def <System.Reflection.Metadata.MetadataReader>
; V03 loc1 [V03 ] (125, 66 ) struct (32) [fp+0x88] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Reflection.Metadata.BlobReader>
; V04 loc2 [V04,T12] ( 5, 4 ) int -> x20 single-def
;* V05 loc3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Runtime.InteropServices.MarshalAsAttribute>
;* V06 loc4 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08,T00] ( 16, 19 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Runtime.InteropServices.MarshalAsAttribute>
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
; V10 tmp3 [V10,T03] ( 3, 6 ) byref -> x21 single-def "Inlining Arg"
; V11 tmp4 [V11,T11] ( 4, 5 ) byref -> x21 single-def "Inlining Arg"
;* V12 tmp5 [V12 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.BlobReader>
;* V13 tmp6 [V13 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Reflection.Internal.MemoryBlock>
;* V14 tmp7 [V14 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.Reflection.Internal.MemoryBlock>
;* V15 tmp8 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.BlobHandle>
; V16 tmp9 [V16,T38] ( 2, 2 ) byref -> x0 single-def "impAppendStmt"
; V17 tmp10 [V17,T31] ( 4, 2 ) int -> x1 ld-addr-op "Inline ldloca(s) first use temp"
; V18 tmp11 [V18,T32] ( 4, 2 ) int -> x0 ld-addr-op "Inline ldloca(s) first use temp"
;* V19 tmp12 [V19 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Reflection.Internal.MemoryBlock>
;* V20 tmp13 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V21 tmp14 [V21 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V22 tmp15 [V22 ] ( 2, 1 ) int -> [fp+0x80] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V23 tmp16 [V23,T45] ( 3, 1.50) int -> x0 single-def "Inline stloc first use temp"
; V24 tmp17 [V24,T17] ( 3, 3 ) byref -> x2 single-def "Inlining Arg"
;* V25 tmp18 [V25 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V27 tmp20 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Internal.MemoryBlock>
;* V28 tmp21 [V28 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
; V29 tmp22 [V29,T14] ( 4, 4 ) long -> x0 single-def "Inline stloc first use temp"
;* V30 tmp23 [V30 ] ( 0, 0 ) int -> zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp"
; V31 tmp24 [V31 ] ( 2, 1 ) int -> [fp+0x78] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V32 tmp25 [V32,T18] ( 3, 3 ) int -> x0 "impAppendStmt"
;* V33 tmp26 [V33 ] ( 0, 0 ) int -> zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp"
; V34 tmp27 [V34 ] ( 2, 1 ) int -> [fp+0x70] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V35 tmp28 [V35,T19] ( 3, 3 ) int -> x0 "impAppendStmt"
;* V36 tmp29 [V36 ] ( 0, 0 ) int -> zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp"
; V37 tmp30 [V37 ] ( 2, 1 ) int -> [fp+0x68] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V38 tmp31 [V38,T20] ( 3, 3 ) int -> x0 "impAppendStmt"
;* V39 tmp32 [V39 ] ( 0, 0 ) int -> zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp"
; V40 tmp33 [V40 ] ( 2, 1 ) int -> [fp+0x60] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V41 tmp34 [V41,T21] ( 3, 3 ) int -> x0 "impAppendStmt"
;* V42 tmp35 [V42 ] ( 0, 0 ) int -> zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp"
; V43 tmp36 [V43 ] ( 2, 1 ) int -> [fp+0x58] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V44 tmp37 [V44,T22] ( 3, 3 ) int -> x0 "impAppendStmt"
; V45 tmp38 [V45,T42] ( 3, 1.50) ref -> x0 class-hnd "Inline return value spill temp" <System.String>
;* V46 tmp39 [V46 ] ( 0, 0 ) int -> zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp"
; V47 tmp40 [V47 ] ( 2, 1 ) int -> [fp+0x50] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V48 tmp41 [V48,T06] ( 5, 5 ) int -> x23 "impAppendStmt"
;* V49 tmp42 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V50 tmp43 [V50,T39] ( 2, 2 ) ref -> x0 class-hnd exact single-def "impAppendStmt" <System.String>
; V51 tmp44 [V51,T23] ( 3, 3 ) int -> x1 "Inlining Arg"
; V52 tmp45 [V52,T33] ( 4, 2 ) long -> x1 single-def "Inline stloc first use temp"
;* V53 tmp46 [V53 ] ( 0, 0 ) int -> zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp"
; V54 tmp47 [V54 ] ( 2, 1 ) int -> [fp+0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V55 tmp48 [V55,T24] ( 3, 3 ) int -> x0 "impAppendStmt"
;* V56 tmp49 [V56 ] ( 0, 0 ) int -> zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp"
; V57 tmp50 [V57 ] ( 2, 1 ) int -> [fp+0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V58 tmp51 [V58,T25] ( 3, 3 ) int -> x0 "impAppendStmt"
;* V59 tmp52 [V59 ] ( 0, 0 ) int -> zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp"
; V60 tmp53 [V60 ] ( 2, 1 ) int -> [fp+0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V61 tmp54 [V61,T26] ( 3, 3 ) int -> x0 "impAppendStmt"
;* V62 tmp55 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
;* V63 tmp56 [V63 ] ( 0, 0 ) int -> zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp"
; V64 tmp57 [V64 ] ( 2, 1 ) int -> [fp+0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V65 tmp58 [V65,T07] ( 5, 5 ) int -> x22 "impAppendStmt"
;* V66 tmp59 [V66 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V67 tmp60 [V67 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.String>
; V68 tmp61 [V68,T27] ( 3, 3 ) int -> x1 "Inlining Arg"
; V69 tmp62 [V69,T34] ( 4, 2 ) long -> x1 single-def "Inline stloc first use temp"
;* V70 tmp63 [V70 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
;* V71 tmp64 [V71 ] ( 0, 0 ) int -> zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp"
; V72 tmp65 [V72 ] ( 2, 1 ) int -> [fp+0x28] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V73 tmp66 [V73,T08] ( 5, 5 ) int -> x23 "impAppendStmt"
;* V74 tmp67 [V74 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V75 tmp68 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.String>
; V76 tmp69 [V76,T28] ( 3, 3 ) int -> x1 "Inlining Arg"
; V77 tmp70 [V77,T35] ( 4, 2 ) long -> x1 single-def "Inline stloc first use temp"
; V78 tmp71 [V78,T43] ( 3, 1.50) ref -> x15 class-hnd "Inline return value spill temp" <System.String>
;* V79 tmp72 [V79 ] ( 0, 0 ) int -> zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp"
; V80 tmp73 [V80 ] ( 2, 1 ) int -> [fp+0x20] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V81 tmp74 [V81,T09] ( 5, 5 ) int -> x20 "impAppendStmt"
;* V82 tmp75 [V82 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V83 tmp76 [V83,T40] ( 2, 2 ) ref -> x15 class-hnd exact single-def "impAppendStmt" <System.String>
; V84 tmp77 [V84,T29] ( 3, 3 ) int -> x1 "Inlining Arg"
; V85 tmp78 [V85,T36] ( 4, 2 ) long -> x1 single-def "Inline stloc first use temp"
; V86 tmp79 [V86,T44] ( 3, 1.50) ref -> x15 class-hnd "Inline return value spill temp" <System.String>
;* V87 tmp80 [V87 ] ( 0, 0 ) int -> zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp"
; V88 tmp81 [V88 ] ( 2, 1 ) int -> [fp+0x18] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V89 tmp82 [V89,T10] ( 5, 5 ) int -> x19 "impAppendStmt"
;* V90 tmp83 [V90 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V91 tmp84 [V91,T41] ( 2, 2 ) ref -> x15 class-hnd exact single-def "impAppendStmt" <System.String>
; V92 tmp85 [V92,T30] ( 3, 3 ) int -> x1 "Inlining Arg"
; V93 tmp86 [V93,T37] ( 4, 2 ) long -> x1 single-def "Inline stloc first use temp"
; V94 tmp87 [V94,T05] ( 5, 3.50) int -> x20 single-def "field V00._value (fldOffset=0x0)" P-INDEP
;* V95 tmp88 [V95 ] ( 0, 0 ) long -> zero-ref single-def "field V13.Pointer (fldOffset=0x0)" P-INDEP
;* V96 tmp89 [V96 ] ( 0, 0 ) int -> zero-ref single-def "field V13.Length (fldOffset=0x8)" P-INDEP
; V97 tmp90 [V97,T13] ( 5, 4 ) long -> x2 single-def "field V14.Pointer (fldOffset=0x0)" P-INDEP
; V98 tmp91 [V98,T15] ( 4, 3 ) int -> x0 single-def "field V14.Length (fldOffset=0x8)" P-INDEP
;* V99 tmp92 [V99 ] ( 0, 0 ) int -> zero-ref single-def "field V15._value (fldOffset=0x0)" P-INDEP
;* V100 tmp93 [V100 ] ( 0, 0 ) long -> zero-ref "field V19.Pointer (fldOffset=0x0)" P-DEP
;* V101 tmp94 [V101 ] ( 0, 0 ) int -> zero-ref "field V19.Length (fldOffset=0x8)" P-DEP
; V102 tmp95 [V102,T58] ( 2, 1 ) long -> x2 single-def "field V27.Pointer (fldOffset=0x0)" P-INDEP
; V103 tmp96 [V103,T59] ( 2, 1 ) int -> x0 single-def "field V27.Length (fldOffset=0x8)" P-INDEP
;* V104 tmp97 [V104 ] ( 0, 0 ) long -> zero-ref single-def "V12.[000..008)"
;* V105 tmp98 [V105 ] ( 0, 0 ) int -> zero-ref single-def "V12.[008..012)"
;* V106 tmp99 [V106 ] ( 0, 0 ) long -> zero-ref "V12.[016..024)"
;* V107 tmp100 [V107 ] ( 0, 0 ) long -> zero-ref "V12.[024..032)"
; V108 cse0 [V108,T01] ( 18, 9 ) long -> x23 multi-def "CSE #03: aggressive"
; V109 cse1 [V109,T46] ( 3, 1.50) long -> x0 "CSE #09: moderate"
; V110 cse2 [V110,T47] ( 3, 1.50) long -> x0 "CSE #10: moderate"
; V111 cse3 [V111,T48] ( 3, 1.50) long -> x0 "CSE #11: moderate"
; V112 cse4 [V112,T49] ( 3, 1.50) long -> x0 "CSE #13: moderate"
; V113 cse5 [V113,T50] ( 3, 1.50) long -> x0 "CSE #14: moderate"
; V114 cse6 [V114,T51] ( 3, 1.50) long -> x0 "CSE #15: moderate"
; V115 cse7 [V115,T52] ( 3, 1.50) long -> x0 "CSE #19: moderate"
; V116 cse8 [V116,T53] ( 3, 1.50) long -> x0 "CSE #20: moderate"
; V117 cse9 [V117,T54] ( 3, 1.50) long -> x0 "CSE #22: moderate"
; V118 cse10 [V118,T55] ( 3, 1.50) long -> x0 "CSE #23: moderate"
; V119 cse11 [V119,T56] ( 3, 1.50) long -> x0 "CSE #25: moderate"
; V120 cse12 [V120,T57] ( 3, 1.50) long -> x0 "CSE #26: moderate"
; V121 rat0 [V121,T04] ( 3, 5.78) int -> x22 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 152
G_M15622_IG01:
stp fp, lr, [sp, #-0xD0]!
stp x19, x20, [sp, #0xA8]
stp x21, x22, [sp, #0xB8]
str x23, [sp, #0xC8]
mov fp, sp
add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
stp q16, q16, [x9, #0x40]
stp q16, q16, [x9, #0x60]
stp xzr, xzr, [x9, #0x80]
mov w20, w0
mov x19, x1
;; size=56 bbWeight=1 PerfScore 11.50
G_M15622_IG02:
ldrsb wzr, [x19]
add x21, x19, #112
ldr x0, [x21]
movz x1, #0xD1FFAB1E // code for System.Reflection.MetadataLoadContext:DisposeCheck():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x2, [x21, #0x10]
ldrsb wzr, [x2]
add x21, x2, #136
tst w20, #0xD1FFAB1E
bne G_M15622_IG06
;; size=56 bbWeight=1 PerfScore 23.00
G_M15622_IG03:
add x0, x21, #8
add x2, fp, #128 // [V22 tmp15]
mov w1, w20
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
movn w1, #0xD1FFAB1E LSL #16
cmp w0, w1
beq G_M15622_IG04
ldr w1, [fp, #0x80] // [V22 tmp15]
add w1, w20, w1
b G_M15622_IG05
;; size=56 bbWeight=0.50 PerfScore 6.25
G_M15622_IG04:
mov w1, wzr
mov w0, wzr
;; size=8 bbWeight=0.50 PerfScore 0.50
G_M15622_IG05:
add x2, x21, #8
mov w3, w1
add x3, x3, w0, UXTW
ldrsw x4, [x2, #0x08]
cmp x3, x4
bhi G_M15622_IG29
ldr x2, [x2]
add x2, x2, w1, SXTW
b G_M15622_IG07
;; size=36 bbWeight=0.50 PerfScore 5.75
G_M15622_IG06:
mov x0, x21
mov w1, w20
movz x2, #0xD1FFAB1E // code for System.Reflection.Metadata.Ecma335.BlobHeap:GetVirtualHandleMemoryBlock(System.Reflection.Metadata.BlobHandle):System.Reflection.Internal.MemoryBlock:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x2, x0
mov w0, w1
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M15622_IG07:
str x2, [fp, #0x88] // [V03 loc1]
str w0, [fp, #0x90] // [V03 loc1+0x08]
add x0, x2, w0, SXTW
stp x0, x2, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
ldp x1, x0, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
cmp x0, x1
beq G_M15622_IG29
add x1, x0, #1
str x1, [fp, #0xA0] // [V03 loc1+0x18]
ldrb w20, [x0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x21, x0
str w20, [x21, #0x28]
sub w22, w20, #23
cmp w22, #7
bhi G_M15622_IG09
;; size=76 bbWeight=1 PerfScore 19.00
G_M15622_IG08:
mov w1, w22
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
adr x2, [G_M15622_IG02]
add x0, x0, x2
br x0
;; size=24 bbWeight=0.89 PerfScore 5.33
G_M15622_IG09:
cmp w20, #42
bne G_M15622_IG10
ldp x1, x23, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
sub x1, x1, x23
cbz w1, G_M15622_IG25
ldr x1, [fp, #0x88] // [V03 loc1]
sub x1, x23, x1
add x0, fp, #136 // [V03 loc1]
add x2, fp, #72 // [V54 tmp47]
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr w2, [fp, #0x48] // [V54 tmp47]
add x1, x1, w2, SXTW
str x1, [fp, #0xA0] // [V03 loc1+0x18]
movn w1, #0xD1FFAB1E LSL #16
cmp w0, w1
beq G_M15622_IG28
str w0, [x21, #0x34]
ldp x1, x0, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
sub x1, x1, x0
cbz w1, G_M15622_IG25
ldr x1, [fp, #0x88] // [V03 loc1]
sub x1, x0, x1
add x0, fp, #136 // [V03 loc1]
add x2, fp, #64 // [V57 tmp50]
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr w2, [fp, #0x40] // [V57 tmp50]
add x1, x1, w2, SXTW
str x1, [fp, #0xA0] // [V03 loc1+0x18]
movn w1, #0xD1FFAB1E LSL #16
cmp w0, w1
beq G_M15622_IG28
strh w0, [x21, #0x3C]
ldp x1, x0, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
sub x1, x1, x0
cbz w1, G_M15622_IG25
ldr x1, [fp, #0x88] // [V03 loc1]
sub x1, x0, x1
add x0, fp, #136 // [V03 loc1]
add x2, fp, #56 // [V60 tmp53]
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr w2, [fp, #0x38] // [V60 tmp53]
add x1, x1, w2, SXTW
str x1, [fp, #0xA0] // [V03 loc1+0x18]
movn w1, #0xD1FFAB1E LSL #16
cmp w0, w1
beq G_M15622_IG28
str w0, [x21, #0x38]
b G_M15622_IG25
;; size=252 bbWeight=0.50 PerfScore 35.00
G_M15622_IG10:
cmp w20, #44
bne G_M15622_IG25
ldp x1, x23, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
sub x1, x1, x23
cbz w1, G_M15622_IG25
ldr x1, [fp, #0x88] // [V03 loc1]
sub x1, x23, x1
add x0, fp, #136 // [V03 loc1]
add x2, fp, #48 // [V64 tmp57]
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
sxtw w22, w0
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr w0, [fp, #0x30] // [V64 tmp57]
add x1, x1, w0, SXTW
str x1, [fp, #0xA0] // [V03 loc1+0x18]
movn w1, #0xD1FFAB1E LSL #16
cmp w22, w1
bne G_M15622_IG11
ldp x0, x1, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
cmp x1, x0
beq G_M15622_IG29
add x0, x1, #1
str x0, [fp, #0xA0] // [V03 loc1+0x18]
ldrb w1, [x1]
cmp w1, #255
beq G_M15622_IG12
b G_M15622_IG27
;; size=124 bbWeight=0.50 PerfScore 17.50
G_M15622_IG11:
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr x0, [fp, #0x88] // [V03 loc1]
sub x1, x1, x0
mov w2, w1
add x2, x2, w22, UXTW
ldrsw x3, [fp, #0x90] // [V03 loc1+0x08]
cmp x2, x3
bhi G_M15622_IG29
add x1, x0, w1, SXTW
movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w2, w22
movz x3, #0xD1FFAB1E // code for System.Text.Encoding:GetString(ulong,int):System.String:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
add x1, x1, w22, SXTW
str x1, [fp, #0xA0] // [V03 loc1+0x18]
- ;; size=84 bbWeight=0.50 PerfScore 12.25
+ ;; size=88 bbWeight=0.50 PerfScore 12.50
G_M15622_IG12:
ldp x1, x0, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
sub x1, x1, x0
cbz w1, G_M15622_IG25
ldr x1, [fp, #0x88] // [V03 loc1]
sub x1, x0, x1
add x0, fp, #136 // [V03 loc1]
add x2, fp, #40 // [V72 tmp65]
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
sxtw w23, w0
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr w0, [fp, #0x28] // [V72 tmp65]
add x1, x1, w0, SXTW
str x1, [fp, #0xA0] // [V03 loc1+0x18]
movn w1, #0xD1FFAB1E LSL #16
cmp w23, w1
bne G_M15622_IG13
ldp x0, x1, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
cmp x1, x0
beq G_M15622_IG29
add x0, x1, #1
str x0, [fp, #0xA0] // [V03 loc1+0x18]
ldrb w1, [x1]
cmp w1, #255
beq G_M15622_IG14
b G_M15622_IG27
;; size=116 bbWeight=0.50 PerfScore 16.75
G_M15622_IG13:
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr x0, [fp, #0x88] // [V03 loc1]
sub x1, x1, x0
mov w2, w1
add x2, x2, w23, UXTW
ldrsw x3, [fp, #0x90] // [V03 loc1+0x08]
cmp x2, x3
bhi G_M15622_IG29
add x1, x0, w1, SXTW
movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w2, w23
movz x3, #0xD1FFAB1E // code for System.Text.Encoding:GetString(ulong,int):System.String:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
add x1, x1, w23, SXTW
str x1, [fp, #0xA0] // [V03 loc1+0x18]
- ;; size=84 bbWeight=0.50 PerfScore 12.25
+ ;; size=88 bbWeight=0.50 PerfScore 12.50
G_M15622_IG14:
ldp x1, x0, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
sub x1, x1, x0
cbz w1, G_M15622_IG25
ldr x1, [fp, #0x88] // [V03 loc1]
sub x1, x0, x1
add x0, fp, #136 // [V03 loc1]
add x2, fp, #32 // [V80 tmp73]
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
sxtw w20, w0
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr w0, [fp, #0x20] // [V80 tmp73]
add x1, x1, w0, SXTW
str x1, [fp, #0xA0] // [V03 loc1+0x18]
movn w1, #0xD1FFAB1E LSL #16
cmp w20, w1
bne G_M15622_IG15
ldp x0, x1, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
cmp x1, x0
beq G_M15622_IG29
add x0, x1, #1
str x0, [fp, #0xA0] // [V03 loc1+0x18]
ldrb w1, [x1]
cmp w1, #255
bne G_M15622_IG27
mov x15, xzr
b G_M15622_IG16
;; size=120 bbWeight=0.50 PerfScore 17.00
G_M15622_IG15:
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr x0, [fp, #0x88] // [V03 loc1]
sub x1, x1, x0
mov w2, w1
add x2, x2, w20, UXTW
ldrsw x3, [fp, #0x90] // [V03 loc1+0x08]
cmp x2, x3
bhi G_M15622_IG29
add x1, x0, w1, SXTW
movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w2, w20
movz x3, #0xD1FFAB1E // code for System.Text.Encoding:GetString(ulong,int):System.String:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x15, x0
ldr x14, [fp, #0xA0] // [V03 loc1+0x18]
add x14, x14, w20, SXTW
str x14, [fp, #0xA0] // [V03 loc1+0x18]
- ;; size=88 bbWeight=0.50 PerfScore 12.50
+ ;; size=92 bbWeight=0.50 PerfScore 12.75
G_M15622_IG16:
add x14, x21, #16
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x21, #0x10]
ldr x1, [x19, #0x40]
mov w2, wzr
mov w3, wzr
movz x4, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Helpers:LoadTypeFromAssemblyQualifiedName(System.String,System.Reflection.TypeLoading.RoAssembly,ubyte,ubyte):System.Reflection.TypeLoading.RoType
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
add x14, x21, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
ldp x1, x0, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
sub x1, x1, x0
cbz w1, G_M15622_IG25
ldr x1, [fp, #0x88] // [V03 loc1]
sub x1, x0, x1
add x0, fp, #136 // [V03 loc1]
add x2, fp, #24 // [V88 tmp81]
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
sxtw w19, w0
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr w0, [fp, #0x18] // [V88 tmp81]
add x1, x1, w0, SXTW
str x1, [fp, #0xA0] // [V03 loc1+0x18]
movn w1, #0xD1FFAB1E LSL #16
cmp w19, w1
bne G_M15622_IG17
ldp x0, x1, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
cmp x1, x0
beq G_M15622_IG29
add x0, x1, #1
str x0, [fp, #0xA0] // [V03 loc1+0x18]
ldrb w1, [x1]
cmp w1, #255
bne G_M15622_IG27
mov x15, xzr
b G_M15622_IG18
;; size=176 bbWeight=0.50 PerfScore 25.00
G_M15622_IG17:
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr x0, [fp, #0x88] // [V03 loc1]
sub x1, x1, x0
mov w2, w1
add x2, x2, w19, UXTW
ldrsw x3, [fp, #0x90] // [V03 loc1+0x08]
cmp x2, x3
bhi G_M15622_IG29
add x1, x0, w1, SXTW
movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w2, w19
movz x3, #0xD1FFAB1E // code for System.Text.Encoding:GetString(ulong,int):System.String:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x15, x0
ldr x14, [fp, #0xA0] // [V03 loc1+0x18]
add x14, x14, w19, SXTW
str x14, [fp, #0xA0] // [V03 loc1+0x18]
- ;; size=88 bbWeight=0.50 PerfScore 12.50
+ ;; size=92 bbWeight=0.50 PerfScore 12.75
G_M15622_IG18:
add x14, x21, #32
bl CORINFO_HELP_ASSIGN_REF
b G_M15622_IG25
;; size=12 bbWeight=0.50 PerfScore 1.25
G_M15622_IG19:
ldp x1, x23, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
sub x1, x1, x23
cbz w1, G_M15622_IG25
ldr x1, [fp, #0x88] // [V03 loc1]
sub x1, x23, x1
add x0, fp, #136 // [V03 loc1]
add x2, fp, #112 // [V34 tmp27]
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr w2, [fp, #0x70] // [V34 tmp27]
add x1, x1, w2, SXTW
str x1, [fp, #0xA0] // [V03 loc1+0x18]
movn w1, #0xD1FFAB1E LSL #16
cmp w0, w1
beq G_M15622_IG28
str w0, [x21, #0x38]
ldp x1, x0, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
sub x1, x1, x0
cbz w1, G_M15622_IG25
ldr x1, [fp, #0x88] // [V03 loc1]
sub x1, x0, x1
add x0, fp, #136 // [V03 loc1]
add x2, fp, #104 // [V37 tmp30]
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr w2, [fp, #0x68] // [V37 tmp30]
add x1, x1, w2, SXTW
str x1, [fp, #0xA0] // [V03 loc1+0x18]
movn w1, #0xD1FFAB1E LSL #16
cmp w0, w1
beq G_M15622_IG28
str w0, [x21, #0x34]
b G_M15622_IG25
;; size=164 bbWeight=0.50 PerfScore 23.00
G_M15622_IG20:
ldp x1, x23, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
sub x1, x1, x23
cbz w1, G_M15622_IG25
ldr x1, [fp, #0x88] // [V03 loc1]
sub x1, x23, x1
add x0, fp, #136 // [V03 loc1]
add x2, fp, #88 // [V43 tmp36]
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr w2, [fp, #0x58] // [V43 tmp36]
add x1, x1, w2, SXTW
str x1, [fp, #0xA0] // [V03 loc1+0x18]
movn w1, #0xD1FFAB1E LSL #16
cmp w0, w1
beq G_M15622_IG28
str w0, [x21, #0x2C]
ldp x1, x0, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
sub x1, x1, x0
cbz w1, G_M15622_IG25
ldr x1, [fp, #0x88] // [V03 loc1]
sub x1, x0, x1
add x0, fp, #136 // [V03 loc1]
add x2, fp, #80 // [V47 tmp40]
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
sxtw w23, w0
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr w0, [fp, #0x50] // [V47 tmp40]
add x1, x1, w0, SXTW
str x1, [fp, #0xA0] // [V03 loc1+0x18]
movn w1, #0xD1FFAB1E LSL #16
cmp w23, w1
bne G_M15622_IG21
ldp x0, x1, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
cmp x1, x0
beq G_M15622_IG29
add x0, x1, #1
str x0, [fp, #0xA0] // [V03 loc1+0x18]
ldrb w1, [x1]
cmp w1, #255
bne G_M15622_IG27
mov x0, xzr
b G_M15622_IG22
;; size=200 bbWeight=0.50 PerfScore 28.25
G_M15622_IG21:
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr x0, [fp, #0x88] // [V03 loc1]
sub x1, x1, x0
mov w2, w1
add x2, x2, w23, UXTW
ldrsw x3, [fp, #0x90] // [V03 loc1+0x08]
cmp x2, x3
bhi G_M15622_IG29
add x1, x0, w1, SXTW
movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w2, w23
movz x3, #0xD1FFAB1E // code for System.Text.Encoding:GetString(ulong,int):System.String:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
add x1, x1, w23, SXTW
str x1, [fp, #0xA0] // [V03 loc1+0x18]
- ;; size=84 bbWeight=0.50 PerfScore 12.25
+ ;; size=88 bbWeight=0.50 PerfScore 12.50
G_M15622_IG22:
ldr x1, [x19, #0x40]
mov w2, wzr
mov w3, wzr
movz x4, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Helpers:LoadTypeFromAssemblyQualifiedName(System.String,System.Reflection.TypeLoading.RoAssembly,ubyte,ubyte):System.Reflection.TypeLoading.RoType
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
add x14, x21, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
b G_M15622_IG25
;; size=48 bbWeight=0.50 PerfScore 6.25
G_M15622_IG23:
ldp x1, x23, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
sub x1, x1, x23
cbz w1, G_M15622_IG25
ldr x1, [fp, #0x88] // [V03 loc1]
sub x1, x23, x1
add x0, fp, #136 // [V03 loc1]
add x2, fp, #120 // [V31 tmp24]
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr w2, [fp, #0x78] // [V31 tmp24]
add x1, x1, w2, SXTW
str x1, [fp, #0xA0] // [V03 loc1+0x18]
movn w1, #0xD1FFAB1E LSL #16
cmp w0, w1
beq G_M15622_IG28
str w0, [x21, #0x30]
b G_M15622_IG25
;; size=84 bbWeight=0.50 PerfScore 11.75
G_M15622_IG24:
ldp x1, x23, [fp, #0x98] // [V03 loc1+0x10], [V03 loc1+0x18]
sub x1, x1, x23
cbz w1, G_M15622_IG25
ldr x1, [fp, #0x88] // [V03 loc1]
sub x1, x23, x1
add x0, fp, #136 // [V03 loc1]
add x2, fp, #96 // [V40 tmp33]
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x1, [fp, #0xA0] // [V03 loc1+0x18]
ldr w2, [fp, #0x60] // [V40 tmp33]
add x1, x1, w2, SXTW
str x1, [fp, #0xA0] // [V03 loc1+0x18]
movn w1, #0xD1FFAB1E LSL #16
cmp w0, w1
beq G_M15622_IG28
str w0, [x21, #0x38]
;; size=80 bbWeight=0.50 PerfScore 11.25
G_M15622_IG25:
mov x0, x21
;; size=4 bbWeight=1 PerfScore 0.50
G_M15622_IG26:
ldr x23, [sp, #0xC8]
ldp x21, x22, [sp, #0xB8]
ldp x19, x20, [sp, #0xA8]
ldp fp, lr, [sp], #0xD0
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M15622_IG27:
movz x0, #0xD1FFAB1E // code for System.Reflection.Throw:InvalidSerializedString()
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_M15622_IG28:
movz x0, #0xD1FFAB1E // code for System.Reflection.Throw:InvalidCompressedInteger()
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_M15622_IG29:
movz x0, #0xD1FFAB1E // code for System.Reflection.Throw:OutOfBounds()
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
RWD00 dd G_M15622_IG24 - G_M15622_IG02
dd G_M15622_IG25 - G_M15622_IG02
dd G_M15622_IG23 - G_M15622_IG02
dd G_M15622_IG23 - G_M15622_IG02
dd G_M15622_IG25 - G_M15622_IG02
dd G_M15622_IG23 - G_M15622_IG02
dd G_M15622_IG20 - G_M15622_IG02
dd G_M15622_IG19 - G_M15622_IG02
-; Total bytes of code 2248, prolog size 48, PerfScore 336.33, instruction count 562, allocated bytes for code 2248 (MethodHash=2a74c2f9) for method System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeHelpers:ToMarshalAsAttribute(System.Reflection.Metadata.BlobHandle,System.Reflection.TypeLoading.Ecma.EcmaModule):System.Runtime.InteropServices.MarshalAsAttribute (FullOpts)
+; Total bytes of code 2268, prolog size 48, PerfScore 337.58, instruction count 567, allocated bytes for code 2268 (MethodHash=2a74c2f9) for method System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeHelpers:ToMarshalAsAttribute(System.Reflection.Metadata.BlobHandle,System.Reflection.TypeLoading.Ecma.EcmaModule):System.Runtime.InteropServices.MarshalAsAttribute (FullOpts)
16 (0.92 % of base) - System.Reflection.InvokerEmitUtil:EmitCallAndReturnHandling(System.Reflection.Emit.ILGenerator,System.Reflection.MethodBase,ubyte,ubyte)
; Assembly listing for method System.Reflection.InvokerEmitUtil:EmitCallAndReturnHandling(System.Reflection.Emit.ILGenerator,System.Reflection.MethodBase,ubyte,ubyte) (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 24 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 32, 17.50) ref -> x19 class-hnd single-def <System.Reflection.Emit.ILGenerator>
; V01 arg1 [V01,T02] ( 18, 9.25) ref -> x20 class-hnd single-def <System.Reflection.MethodBase>
; V02 arg2 [V02,T08] ( 3, 3 ) ubyte -> x21 single-def
; V03 arg3 [V03,T09] ( 3, 3 ) ubyte -> x3 single-def
; V04 loc0 [V04,T18] ( 4, 2 ) ref -> x25 class-hnd single-def <System.Type>
; V05 loc1 [V05,T07] ( 10, 5 ) ref -> x21 class-hnd <System.RuntimeType>
; V06 loc2 [V06,T19] ( 3, 1.50) ref -> x0 class-hnd exact <System.Reflection.RuntimeMethodInfo>
; V07 loc3 [V07,T10] ( 8, 4 ) ref -> x21 class-hnd exact single-def <System.RuntimeType>
;* V08 loc4 [V08 ] ( 0, 0 ) struct ( 8) zero-ref <System.Reflection.Emit.Label>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V10 tmp1 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Reflection.RuntimeMethodInfo>
;* V11 tmp2 [V11 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Emit.OpCode>
;* V12 tmp3 [V12 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Emit.OpCode>
;* V13 tmp4 [V13 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Emit.OpCode>
;* V14 tmp5 [V14 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Emit.OpCode>
;* V15 tmp6 [V15 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Emit.OpCode>
;* V16 tmp7 [V16 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Emit.OpCode>
;* V17 tmp8 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Type>
; V18 tmp9 [V18,T26] ( 2, 2 ) ref -> x1 class-hnd exact single-def "dup spill" <System.Signature>
; V19 tmp10 [V19,T20] ( 4, 2 ) ref -> x1
;* V20 tmp11 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.Emit.DynamicMethod>
; V21 tmp12 [V21,T55] ( 3, 1.50) int -> x26 "field V08.m_label (fldOffset=0x0)" P-INDEP
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref "field V11.m_value (fldOffset=0x0)" P-INDEP
;* V23 tmp14 [V23 ] ( 0, 0 ) int -> zero-ref "field V11.m_flags (fldOffset=0x4)" P-INDEP
;* V24 tmp15 [V24 ] ( 0, 0 ) int -> zero-ref "field V12.m_value (fldOffset=0x0)" P-INDEP
;* V25 tmp16 [V25 ] ( 0, 0 ) int -> zero-ref "field V12.m_flags (fldOffset=0x4)" P-INDEP
;* V26 tmp17 [V26 ] ( 0, 0 ) int -> zero-ref "field V13.m_value (fldOffset=0x0)" P-INDEP
;* V27 tmp18 [V27 ] ( 0, 0 ) int -> zero-ref "field V13.m_flags (fldOffset=0x4)" P-INDEP
;* V28 tmp19 [V28 ] ( 0, 0 ) int -> zero-ref "field V14.m_value (fldOffset=0x0)" P-INDEP
;* V29 tmp20 [V29 ] ( 0, 0 ) int -> zero-ref "field V14.m_flags (fldOffset=0x4)" P-INDEP
;* V30 tmp21 [V30 ] ( 0, 0 ) int -> zero-ref "field V15.m_value (fldOffset=0x0)" P-INDEP
;* V31 tmp22 [V31 ] ( 0, 0 ) int -> zero-ref "field V15.m_flags (fldOffset=0x4)" P-INDEP
; V32 tmp23 [V32,T60] ( 2, 1 ) int -> x0 "field V16.m_value (fldOffset=0x0)" P-INDEP
; V33 tmp24 [V33,T61] ( 2, 1 ) int -> x1 "field V16.m_flags (fldOffset=0x4)" P-INDEP
; V34 tmp25 [V34,T17] ( 3, 3 ) struct ( 8) [fp+0x18] do-not-enreg[SF] "by-value struct argument" <System.Reflection.Emit.OpCode>
; V35 tmp26 [V35,T27] ( 2, 2 ) ref -> x2 single-def "argument with side effect"
; V36 tmp27 [V36,T33] ( 2, 2 ) long -> x1 "argument with side effect"
; V37 tmp28 [V37,T15] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V38 tmp29 [V38,T34] ( 2, 2 ) long -> x23 "argument with side effect"
;* V39 tmp30 [V39,T62] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V40 tmp31 [V40,T35] ( 2, 2 ) long -> x23 "argument with side effect"
;* V41 tmp32 [V41,T63] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V42 tmp33 [V42,T36] ( 2, 2 ) long -> x23 "argument with side effect"
;* V43 tmp34 [V43,T64] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V44 tmp35 [V44,T22] ( 3, 2 ) ref -> x1 single-def "argument with side effect"
; V45 tmp36 [V45,T23] ( 3, 2 ) ref -> x1 single-def "argument with side effect"
; V46 tmp37 [V46,T37] ( 2, 2 ) long -> x1 "argument with side effect"
; V47 tmp38 [V47,T38] ( 2, 2 ) long -> x1 "argument with side effect"
; V48 tmp39 [V48,T28] ( 2, 2 ) ref -> x2 single-def "argument with side effect"
; V49 tmp40 [V49,T39] ( 2, 2 ) long -> x28 "argument with side effect"
; V50 tmp41 [V50,T40] ( 2, 2 ) long -> x1 "argument with side effect"
; V51 tmp42 [V51,T41] ( 2, 2 ) long -> x1 "argument with side effect"
; V52 tmp43 [V52,T42] ( 2, 2 ) long -> x1 "argument with side effect"
; V53 tmp44 [V53,T43] ( 2, 2 ) long -> x1 "argument with side effect"
; V54 tmp45 [V54,T29] ( 2, 2 ) ref -> x2 single-def "argument with side effect"
; V55 tmp46 [V55,T44] ( 2, 2 ) long -> x21 "argument with side effect"
; V56 tmp47 [V56,T30] ( 2, 2 ) ref -> x2 single-def "argument with side effect"
; V57 tmp48 [V57,T45] ( 2, 2 ) long -> x27 "argument with side effect"
; V58 tmp49 [V58,T46] ( 2, 2 ) long -> x1 "argument with side effect"
; V59 tmp50 [V59,T47] ( 2, 2 ) long -> x1 "argument with side effect"
; V60 tmp51 [V60,T48] ( 2, 2 ) long -> x1 "argument with side effect"
; V61 tmp52 [V61,T49] ( 2, 2 ) long -> x1 "argument with side effect"
; V62 tmp53 [V62,T31] ( 2, 2 ) ref -> x2 single-def "argument with side effect"
; V63 tmp54 [V63,T50] ( 2, 2 ) long -> x21 "argument with side effect"
; V64 tmp55 [V64,T32] ( 2, 2 ) ref -> x2 single-def "argument with side effect"
; V65 tmp56 [V65,T51] ( 2, 2 ) long -> x27 "argument with side effect"
; V66 tmp57 [V66,T52] ( 2, 2 ) long -> x1 "argument with side effect"
; V67 tmp58 [V67,T53] ( 2, 2 ) long -> x1 "argument with side effect"
; V68 tmp59 [V68,T54] ( 2, 2 ) long -> x1 "argument with side effect"
; V69 tmp60 [V69,T11] ( 2, 4 ) long -> x1 "argument with side effect"
;* V70 cse0 [V70,T21] ( 0, 0 ) long -> zero-ref multi-def "CSE #03: aggressive"
; V71 cse1 [V71,T06] ( 11, 5.50) long -> x24 multi-def "CSE #07: aggressive"
; V72 cse2 [V72,T04] ( 15, 7.50) long -> x27 multi-def "CSE #10: aggressive"
; V73 cse3 [V73,T05] ( 10, 6 ) long -> x25 multi-def "CSE #11: aggressive"
; V74 cse4 [V74,T56] ( 3, 1.50) long -> x20 "CSE #12: conservative"
; V75 cse5 [V75,T03] ( 17, 9 ) long -> x23 multi-def "CSE #04: aggressive"
; V76 cse6 [V76,T01] ( 29, 15 ) long -> x22 multi-def "CSE #01: aggressive"
; V77 rat0 [V77,T24] ( 3, 2 ) ref -> x1 "Spilling to split statement for tree"
; V78 rat1 [V78,T12] ( 4, 3.50) ref -> x21 "replacement local"
; V79 rat2 [V79,T57] ( 3, 1 ) long -> x0 "CSE for expectedClsNode"
; V80 rat3 [V80,T16] ( 3, 3 ) ref -> x0 "replacement local"
; V81 rat4 [V81,T25] ( 3, 2 ) long -> x2 "CSE for expectedClsNode"
; V82 rat5 [V82,T13] ( 4, 3.50) ref -> x21 "replacement local"
; V83 rat6 [V83,T58] ( 3, 1 ) long -> x0 "CSE for expectedClsNode"
; V84 rat7 [V84,T14] ( 4, 3.50) ref -> x21 "replacement local"
; V85 rat8 [V85,T59] ( 3, 1 ) long -> x0 "CSE for expectedClsNode"
;
; Lcl frame size = 16
G_M27650_IG01:
stp fp, lr, [sp, #-0x70]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
stp x25, x26, [sp, #0x50]
stp x27, x28, [sp, #0x60]
mov fp, sp
mov x19, x0
mov x20, x1
mov w21, w2
;; size=40 bbWeight=1 PerfScore 8.00
G_M27650_IG02:
tst w3, #255
beq G_M27650_IG05
;; size=8 bbWeight=1 PerfScore 1.50
G_M27650_IG03:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M27650_IG30
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M27650_IG04:
- movz x22, #0xD1FFAB1E LSL #16
+ movz x22, #0xD1FFAB1E // data for System.Reflection.Emit.OpCodes:Call
+ movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
ldp w0, w1, [x22]
stp w0, w1, [fp, #0x18] // [V34 tmp25], [V34 tmp25+0x04]
movz x0, #0xD1FFAB1E // code for System.Reflection.InvokerEmitUtil+Methods:NextCallReturnAddress():System.Reflection.MethodInfo
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x2, x0
ldr x1, [fp, #0x18] // [V34 tmp25]
mov x0, x19
ldr x23, [x19]
ldr x24, [x23, #0x48]
ldr x3, [x24, #0x18]
blr x3
ldr x1, [x22, #0xD1FFAB1E]
mov x0, x19
ldr x25, [x23, #0x40]
ldr x2, [x25, #0x20]
blr x2
- ;; size=84 bbWeight=0.50 PerfScore 17.00
+ ;; size=88 bbWeight=0.50 PerfScore 17.25
G_M27650_IG05:
tst w21, #255
bne G_M27650_IG26
;; size=8 bbWeight=1 PerfScore 1.50
G_M27650_IG06:
mov x0, x20
ldr x1, [x20]
ldr x1, [x1, #0x50]
ldr x1, [x1, #0x20]
blr x1
tbnz w0, #4, G_M27650_IG08
mov x0, x20
ldr x1, [x20]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x38]
blr x1
ldr x1, [x0]
ldr x1, [x1, #0x78]
ldr x1, [x1, #0x08]
blr x1
cbnz w0, G_M27650_IG08
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr w1, [x1]
tbz w1, #0, G_M27650_IG31
;; size=84 bbWeight=0.50 PerfScore 19.25
G_M27650_IG07:
- movz x22, #0xD1FFAB1E LSL #16
+ movz x22, #0xD1FFAB1E
+ movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
ldr x23, [x22, #0xD1FFAB1E]
mov x1, x20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x23
mov x2, x20
mov x0, x19
ldr x23, [x19]
ldr x24, [x23, #0x48]
ldr x3, [x24, #0x18]
blr x3
b G_M27650_IG10
- ;; size=80 bbWeight=0.50 PerfScore 12.00
+ ;; size=84 bbWeight=0.50 PerfScore 12.25
G_M27650_IG08:
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr w1, [x1]
tbz w1, #0, G_M27650_IG32
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M27650_IG09:
- movz x22, #0xD1FFAB1E LSL #16
+ movz x22, #0xD1FFAB1E // data for System.Reflection.Emit.OpCodes:Call
+ movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
ldr x23, [x22]
mov x1, x20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x23
mov x2, x20
mov x0, x19
ldr x23, [x19]
ldr x24, [x23, #0x48]
ldr x3, [x24, #0x18]
blr x3
- ;; size=76 bbWeight=0.50 PerfScore 11.50
+ ;; size=80 bbWeight=0.50 PerfScore 11.75
G_M27650_IG10:
ldr x0, [x20]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x0, x1
bne G_M27650_IG15
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M27650_IG11:
mov x0, x20
ldr x1, [x0, #0x30]
cbnz x1, G_M27650_IG12
movz x1, #0xD1FFAB1E // code for System.Reflection.RuntimeMethodInfo:<get_Signature>g__LazyCreateSignature|25_0():System.Signature:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
;; size=36 bbWeight=0.50 PerfScore 5.25
G_M27650_IG12:
ldr x1, [x1, #0x18]
mov x21, x1
cbz x21, G_M27650_IG14
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M27650_IG13:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x2, [x21]
cmp x2, x0
bne G_M27650_IG33
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M27650_IG14:
b G_M27650_IG17
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M27650_IG15:
mov x0, x20
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x0]
cmp x1, x2
bne G_M27650_IG36
ldr x1, [x0, #0x18]
mov x21, x1
cbz x21, G_M27650_IG17
;; size=40 bbWeight=0.50 PerfScore 5.50
G_M27650_IG16:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x2, [x21]
cmp x2, x0
bne G_M27650_IG35
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M27650_IG17:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x21, x0
beq G_M27650_IG25
mov x0, x21
movz x1, #0xD1FFAB1E // code for System.RuntimeType:IsValueTypeImpl():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbnz w0, G_M27650_IG24
mov x0, x21
bl System.RuntimeTypeHandle:GetCorElementType(System.RuntimeType):ubyte
cmp w0, #15
beq G_M27650_IG23
mov x0, x21
bl System.RuntimeTypeHandle:GetCorElementType(System.RuntimeType):ubyte
cmp w0, #27
beq G_M27650_IG22
mov x0, x21
bl System.RuntimeTypeHandle:GetCorElementType(System.RuntimeType):ubyte
cmp w0, #16
bne G_M27650_IG28
mov x0, x21
bl System.RuntimeTypeHandle:GetElementType(System.RuntimeType):System.RuntimeType
mov x1, x0
mov x21, x1
cbz x21, G_M27650_IG19
;; size=120 bbWeight=0.50 PerfScore 12.75
G_M27650_IG18:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x2, [x21]
cmp x2, x0
bne G_M27650_IG34
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M27650_IG19:
mov x0, x19
ldr x20, [x23, #0x58]
ldr x1, [x20, #0x28]
blr x1
sxtw w26, w0
ldr x1, [x22, #0xF0]
mov x0, x19
ldr x25, [x23, #0x40]
ldr x2, [x25, #0x20]
blr x2
ldr x1, [x22, #0xD1FFAB1E]
mov x0, x19
mov w2, w26
ldr x27, [x23, #0x50]
ldr x3, [x27, #0x10]
blr x3
ldr x28, [x22]
movz x0, #0xD1FFAB1E // code for System.Reflection.InvokerEmitUtil+Methods:ThrowHelper_Throw_NullReference_InvokeNullRefReturned():System.Reflection.MethodInfo
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x2, x0
mov x1, x28
mov x0, x19
ldr x3, [x24, #0x18]
blr x3
mov x0, x19
mov w1, w26
ldr x2, [x20, #0x30]
blr x2
mov x0, x21
movz x1, #0xD1FFAB1E // code for System.RuntimeType:IsValueTypeImpl():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbnz w0, G_M27650_IG21
mov x0, x21
bl System.RuntimeTypeHandle:GetCorElementType(System.RuntimeType):ubyte
cmp w0, #15
beq G_M27650_IG20
mov x0, x21
bl System.RuntimeTypeHandle:GetCorElementType(System.RuntimeType):ubyte
cmp w0, #27
beq G_M27650_IG22
ldr x1, [x22, #0xA8]
mov x0, x19
mov x2, x21
ldr x3, [x27, #0x08]
blr x3
b G_M27650_IG28
;; size=212 bbWeight=0.50 PerfScore 36.75
G_M27650_IG20:
ldr x1, [x22, #0x78]
mov x0, x19
ldr x2, [x25, #0x20]
blr x2
ldr x1, [x22, #0xD1FFAB1E]
mov x0, x19
ldr x2, [x25, #0x20]
blr x2
ldr x1, [x22, #0xD1FFAB1E]
mov x0, x19
mov x2, x21
ldr x3, [x27, #0x08]
blr x3
ldr x21, [x22]
movz x0, #0xD1FFAB1E // code for System.Reflection.InvokerEmitUtil+Methods:Type_GetTypeFromHandle():System.Reflection.MethodInfo
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x2, x0
mov x1, x21
mov x0, x19
ldr x3, [x24, #0x18]
blr x3
ldr x27, [x22]
movz x0, #0xD1FFAB1E // code for System.Reflection.InvokerEmitUtil+Methods:Pointer_Box():System.Reflection.MethodInfo
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x2, x0
mov x1, x27
mov x0, x19
ldr x3, [x24, #0x18]
blr x3
b G_M27650_IG28
;; size=144 bbWeight=0.50 PerfScore 26.00
G_M27650_IG21:
ldr x1, [x22, #0xA8]
mov x0, x19
mov x2, x21
ldr x3, [x27, #0x08]
blr x3
ldr x1, [x22, #0xD1FFAB1E]
mov x0, x19
mov x2, x21
ldr x3, [x27, #0x08]
blr x3
b G_M27650_IG28
;; size=44 bbWeight=0.50 PerfScore 8.50
G_M27650_IG22:
ldr x1, [x22, #0xD1FFAB1E]
mov x0, x19
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x27, [x23, #0x50]
ldr x3, [x27, #0x08]
blr x3
b G_M27650_IG28
;; size=36 bbWeight=0.50 PerfScore 6.50
G_M27650_IG23:
ldr x1, [x22, #0xD1FFAB1E]
mov x0, x19
mov x2, x21
ldr x27, [x23, #0x50]
ldr x3, [x27, #0x08]
blr x3
ldr x21, [x22]
movz x0, #0xD1FFAB1E // code for System.Reflection.InvokerEmitUtil+Methods:Type_GetTypeFromHandle():System.Reflection.MethodInfo
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x2, x0
mov x1, x21
mov x0, x19
ldr x3, [x24, #0x18]
blr x3
ldr x27, [x22]
movz x0, #0xD1FFAB1E // code for System.Reflection.InvokerEmitUtil+Methods:Pointer_Box():System.Reflection.MethodInfo
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x2, x0
mov x1, x27
mov x0, x19
ldr x3, [x24, #0x18]
blr x3
b G_M27650_IG28
;; size=116 bbWeight=0.50 PerfScore 20.00
G_M27650_IG24:
ldr x1, [x22, #0xD1FFAB1E]
mov x0, x19
mov x2, x21
ldr x27, [x23, #0x50]
ldr x3, [x27, #0x08]
blr x3
b G_M27650_IG28
;; size=28 bbWeight=0.50 PerfScore 6.00
G_M27650_IG25:
ldr x1, [x22, #0xD1FFAB1E]
mov x0, x19
ldr x25, [x23, #0x40]
ldr x2, [x25, #0x20]
blr x2
b G_M27650_IG28
;; size=24 bbWeight=0.50 PerfScore 5.75
G_M27650_IG26:
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr w1, [x1]
tbz w1, #0, G_M27650_IG37
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M27650_IG27:
- movz x22, #0xD1FFAB1E LSL #16
+ movz x22, #0xD1FFAB1E
+ movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
ldr x23, [x22, #0xD1FFAB1E]
mov x1, x20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x23
mov x2, x20
mov x0, x19
ldr x23, [x19]
ldr x27, [x23, #0x50]
ldr x3, [x27]
blr x3
mov x0, x20
ldr x1, [x20]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x38]
blr x1
mov x25, x0
ldr x1, [x25]
ldr x1, [x1, #0x78]
ldr x1, [x1, #0x08]
blr x1
cbz w0, G_M27650_IG28
ldr x1, [x22, #0xD1FFAB1E]
mov x0, x19
mov x2, x25
ldr x3, [x27, #0x08]
blr x3
- ;; size=140 bbWeight=0.50 PerfScore 26.50
+ ;; size=144 bbWeight=0.50 PerfScore 26.75
G_M27650_IG28:
ldr x1, [x22, #0xD8]
mov x0, x19
ldr x25, [x23, #0x40]
ldr x2, [x25, #0x20]
;; size=16 bbWeight=1 PerfScore 9.50
G_M27650_IG29:
ldp x27, x28, [sp, #0x60]
ldp x25, x26, [sp, #0x50]
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x70
br x2
;; size=28 bbWeight=1 PerfScore 7.00
G_M27650_IG30:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M27650_IG04
;; size=24 bbWeight=0 PerfScore 0.00
G_M27650_IG31:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M27650_IG07
;; size=24 bbWeight=0 PerfScore 0.00
G_M27650_IG32:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M27650_IG09
;; size=24 bbWeight=0 PerfScore 0.00
G_M27650_IG33:
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_M27650_IG34:
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_M27650_IG35:
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_M27650_IG36:
mov x1, x20
mov x0, 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=32 bbWeight=0 PerfScore 0.00
G_M27650_IG37:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M27650_IG27
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1736, prolog size 28, PerfScore 263.75, instruction count 434, allocated bytes for code 1736 (MethodHash=eb4d93fd) for method System.Reflection.InvokerEmitUtil:EmitCallAndReturnHandling(System.Reflection.Emit.ILGenerator,System.Reflection.MethodBase,ubyte,ubyte) (FullOpts)
+; Total bytes of code 1752, prolog size 28, PerfScore 264.75, instruction count 438, allocated bytes for code 1752 (MethodHash=eb4d93fd) for method System.Reflection.InvokerEmitUtil:EmitCallAndReturnHandling(System.Reflection.Emit.ILGenerator,System.Reflection.MethodBase,ubyte,ubyte) (FullOpts)
16 (0.49 % of base) - System.Reflection.TypeLoading.Ecma.EcmaResolver:ComputeTypeRefResolution(System.Reflection.Metadata.TypeReferenceHandle,System.Reflection.TypeLoading.Ecma.EcmaModule):System.Reflection.TypeLoading.RoDefinitionType
; Assembly listing for method System.Reflection.TypeLoading.Ecma.EcmaResolver:ComputeTypeRefResolution(System.Reflection.Metadata.TypeReferenceHandle,System.Reflection.TypeLoading.Ecma.EcmaModule):System.Reflection.TypeLoading.RoDefinitionType (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; 110 single block inlinees; 46 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Reflection.Metadata.TypeReferenceHandle>
; V01 arg1 [V01,T00] ( 13, 7.50) ref -> x19 class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaModule>
; V02 loc0 [V02,T03] ( 9, 6.50) ref -> x21 class-hnd exact single-def <System.Reflection.Metadata.MetadataReader>
;* V03 loc1 [V03 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Reflection.Metadata.TypeReference>
;* V04 loc2 [V04 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret single-def <System.ReadOnlySpan`1[ubyte]>
;* V05 loc3 [V05 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret single-def <System.ReadOnlySpan`1[ubyte]>
;* V06 loc4 [V06 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Reflection.Metadata.EntityHandle>
; V07 loc5 [V07,T29] ( 6, 3 ) ubyte -> x21 single-def
; V08 loc6 [V08 ] ( 2, 0.50) ref -> [fp+0x58] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Exception>
; V09 loc7 [V09 ] ( 2, 0.50) ref -> [fp+0x50] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Exception>
; V10 loc8 [V10,T58] ( 5, 1.50) ref -> x21 class-hnd single-def <System.Reflection.TypeLoading.RoDefinitionType>
; V11 loc9 [V11 ] ( 2, 0.50) ref -> [fp+0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Exception>
;* V12 loc10 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
; V13 loc11 [V13 ] ( 2, 0.50) ref -> [fp+0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Exception>
;* V14 loc12 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Reflection.Metadata.ModuleReference>
; V15 loc13 [V15 ] ( 20, 0 ) struct (40) [fp+0x18] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V16 OutArgs [V16 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V17 tmp1 [V17 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.StringHandle>
;* V18 tmp2 [V18 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.StringHandle>
;* V19 tmp3 [V19 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Metadata.ModuleReferenceHandle>
;* V20 tmp4 [V20 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Metadata.StringHandle>
; V21 tmp5 [V21,T32] ( 3, 3 ) ref -> x0 class-hnd single-def "dup spill" <System.Reflection.TypeLoading.RoModule>
;* V22 tmp6 [V22 ] ( 0, 0 ) ref -> zero-ref single-def
; V23 tmp7 [V23,T33] ( 3, 3 ) ref -> x0 class-hnd single-def "dup spill" <System.Reflection.TypeLoading.RoDefinitionType>
;* V24 tmp8 [V24 ] ( 0, 0 ) ref -> zero-ref single-def
; V25 tmp9 [V25,T102] ( 2, 0 ) ref -> x21 class-hnd exact single-def "impAppendStmt" <System.String>
; V26 tmp10 [V26,T103] ( 2, 0 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.String>
; V27 tmp11 [V27,T98] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.BadImageFormatException>
; V28 tmp12 [V28,T104] ( 2, 0 ) ref -> x21 class-hnd exact single-def "impAppendStmt" <System.String>
; V29 tmp13 [V29,T105] ( 2, 0 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.String>
; V30 tmp14 [V30,T99] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.BadImageFormatException>
;* V31 tmp15 [V31 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.AssemblyReferenceHandle>
; V32 tmp16 [V32,T34] ( 3, 3 ) ref -> x0 class-hnd single-def "dup spill" <System.Reflection.TypeLoading.RoDefinitionType>
;* V33 tmp17 [V33 ] ( 0, 0 ) ref -> zero-ref single-def
; V34 tmp18 [V34,T35] ( 3, 3 ) ref -> x0 class-hnd single-def "dup spill" <System.Reflection.TypeLoading.RoDefinitionType>
;* V35 tmp19 [V35 ] ( 0, 0 ) ref -> zero-ref single-def
;* V36 tmp20 [V36 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.TypeReferenceHandle>
; V37 tmp21 [V37,T36] ( 3, 3 ) ref -> x0 class-hnd single-def "dup spill" <System.Reflection.TypeLoading.RoDefinitionType>
;* V38 tmp22 [V38 ] ( 0, 0 ) ref -> zero-ref single-def
;* V39 tmp23 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.String>
;* V40 tmp24 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.String>
; V41 tmp25 [V41,T106] ( 2, 0 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.String>
; V42 tmp26 [V42,T100] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.TypeLoadException>
; V43 tmp27 [V43,T37] ( 3, 3 ) ref -> x0 class-hnd single-def "dup spill" <System.Reflection.TypeLoading.RoDefinitionType>
;* V44 tmp28 [V44 ] ( 0, 0 ) ref -> zero-ref single-def
; V45 tmp29 [V45,T04] ( 3, 6 ) byref -> x21 single-def "Inlining Arg"
;* V46 tmp30 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeReference>
; V47 tmp31 [V47,T21] ( 8, 4.50) int -> x22 "Inline return value spill temp"
;* V48 tmp32 [V48 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeReferenceHandle>
;* V49 tmp33 [V49 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.Reflection.Metadata.StringHandle>
; V50 tmp34 [V50,T06] ( 5, 5 ) byref -> x0 single-def "impAppendStmt"
;* V51 tmp35 [V51 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.TypeReferenceHandle>
;* V52 tmp36 [V52 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V53 tmp37 [V53 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeReferenceHandle>
;* V54 tmp38 [V54 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeReferenceHandle>
; V55 tmp39 [V55,T70] ( 2, 1 ) int -> x1 single-def "Inline stloc first use temp"
; V56 tmp40 [V56,T61] ( 3, 1.50) int -> x0 "Inline return value spill temp"
;* V57 tmp41 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V58 tmp42 [V58,T07] ( 5, 5 ) byref -> x2 single-def "Inlining Arg"
; V59 tmp43 [V59,T16] ( 5, 5 ) int -> x1 "Inlining Arg"
; V60 tmp44 [V60,T45] ( 3, 3 ) int -> x0 "dup spill"
;* V61 tmp45 [V61 ] ( 0, 0 ) int -> zero-ref single-def
;* V62 tmp46 [V62 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp"
;* V63 tmp47 [V63 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V64 tmp48 [V64 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V65 tmp49 [V65 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V66 tmp50 [V66 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StringHandle>
;* V67 tmp51 [V67 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.Reflection.Metadata.StringHandle>
; V68 tmp52 [V68,T62] ( 3, 1.50) ubyte -> x0 single-def "Inline stloc first use temp"
;* V69 tmp53 [V69 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Reflection.Metadata.StringHandle>
;* V70 tmp54 [V70 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StringHandle>
;* V71 tmp55 [V71 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V72 tmp56 [V72 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V73 tmp57 [V73 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StringHandle>
;* V74 tmp58 [V74 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V75 tmp59 [V75 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.Reflection.Metadata.StringHandle>
; V76 tmp60 [V76,T08] ( 5, 5 ) byref -> x0 single-def "impAppendStmt"
;* V77 tmp61 [V77 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.TypeReferenceHandle>
;* V78 tmp62 [V78 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V79 tmp63 [V79 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeReferenceHandle>
;* V80 tmp64 [V80 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeReferenceHandle>
; V81 tmp65 [V81,T71] ( 2, 1 ) int -> x1 single-def "Inline stloc first use temp"
; V82 tmp66 [V82,T63] ( 3, 1.50) int -> x0 "Inline return value spill temp"
;* V83 tmp67 [V83 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V84 tmp68 [V84,T09] ( 5, 5 ) byref -> x2 single-def "Inlining Arg"
; V85 tmp69 [V85,T17] ( 5, 5 ) int -> x1 "Inlining Arg"
; V86 tmp70 [V86,T46] ( 3, 3 ) int -> x0 "dup spill"
;* V87 tmp71 [V87 ] ( 0, 0 ) int -> zero-ref single-def
;* V88 tmp72 [V88 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp"
;* V89 tmp73 [V89 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V90 tmp74 [V90 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V91 tmp75 [V91 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V92 tmp76 [V92 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StringHandle>
;* V93 tmp77 [V93 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.Reflection.Metadata.StringHandle>
; V94 tmp78 [V94,T10] ( 5, 5 ) byref -> x0 single-def "impAppendStmt"
;* V95 tmp79 [V95 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.TypeReferenceHandle>
;* V96 tmp80 [V96 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V97 tmp81 [V97 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V98 tmp82 [V98 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StringHandle>
;* V99 tmp83 [V99 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V100 tmp84 [V100 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V101 tmp85 [V101 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeReferenceHandle>
;* V102 tmp86 [V102 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeReferenceHandle>
; V103 tmp87 [V103,T72] ( 2, 1 ) int -> x1 single-def "Inline stloc first use temp"
; V104 tmp88 [V104,T64] ( 3, 1.50) int -> x0 "Inline return value spill temp"
;* V105 tmp89 [V105 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V106 tmp90 [V106,T11] ( 5, 5 ) byref -> x2 single-def "Inlining Arg"
; V107 tmp91 [V107,T18] ( 5, 5 ) int -> x1 "Inlining Arg"
; V108 tmp92 [V108,T47] ( 3, 3 ) int -> x0 "dup spill"
;* V109 tmp93 [V109 ] ( 0, 0 ) int -> zero-ref single-def
;* V110 tmp94 [V110 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp"
;* V111 tmp95 [V111 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V112 tmp96 [V112 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V113 tmp97 [V113 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V114 tmp98 [V114 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StringHandle>
;* V115 tmp99 [V115 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.Reflection.Metadata.EntityHandle>
; V116 tmp100 [V116,T12] ( 5, 5 ) byref -> x0 single-def "impAppendStmt"
;* V117 tmp101 [V117 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.TypeReferenceHandle>
;* V118 tmp102 [V118 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V119 tmp103 [V119 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeReferenceHandle>
;* V120 tmp104 [V120 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeReferenceHandle>
; V121 tmp105 [V121,T73] ( 2, 1 ) int -> x1 single-def "Inline stloc first use temp"
; V122 tmp106 [V122,T13] ( 5, 5 ) byref -> x2 single-def "Inlining Arg"
; V123 tmp107 [V123,T19] ( 5, 5 ) int -> x1 "Inlining Arg"
;* V124 tmp108 [V124 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V125 tmp109 [V125,T50] ( 4, 2 ) int -> x0 "Inline return value spill temp"
;* V126 tmp110 [V126 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V127 tmp111 [V127 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V128 tmp112 [V128 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp"
;* V129 tmp113 [V129 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
; V130 tmp114 [V130,T65] ( 3, 1.50) int -> x1 single-def "Inline stloc first use temp"
; V131 tmp115 [V131,T74] ( 2, 1 ) int -> x0 single-def
;* V132 tmp116 [V132 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.EntityHandle>
;* V133 tmp117 [V133 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V134 tmp118 [V134 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.Reflection.Metadata.EntityHandle>
; V135 tmp119 [V135,T66] ( 3, 1.50) ubyte -> x23 single-def "Inline stloc first use temp"
;* V136 tmp120 [V136 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.AssemblyReferenceHandle>
;* V137 tmp121 [V137 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.AssemblyReferenceHandle>
;* V138 tmp122 [V138 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Reflection.Metadata.AssemblyReferenceHandle>
;* V139 tmp123 [V139 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.AssemblyReferenceHandle>
;* V140 tmp124 [V140 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.AssemblyReferenceHandle>
;* V141 tmp125 [V141 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.EntityHandle>
;* V142 tmp126 [V142 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V143 tmp127 [V143 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V144 tmp128 [V144 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V145 tmp129 [V145 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.AssemblyReferenceHandle>
;* V146 tmp130 [V146 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V147 tmp131 [V147 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.AssemblyReferenceHandle>
;* V148 tmp132 [V148 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.EntityHandle>
;* V149 tmp133 [V149 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V150 tmp134 [V150 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.AssemblyReferenceHandle>
;* V151 tmp135 [V151 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.EntityHandle>
;* V152 tmp136 [V152 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V153 tmp137 [V153,T38] ( 3, 3 ) byref -> x22 single-def "Inlining Arg"
; V154 tmp138 [V154,T55] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
;* V155 tmp139 [V155 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.ModuleReference>
;* V156 tmp140 [V156 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.ModuleReferenceHandle>
; V157 tmp141 [V157,T14] ( 5, 5 ) byref -> x0 single-def "impAppendStmt"
;* V158 tmp142 [V158 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.ModuleReferenceHandle>
;* V159 tmp143 [V159 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V160 tmp144 [V160 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.ModuleReferenceHandle>
;* V161 tmp145 [V161 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.ModuleReferenceHandle>
; V162 tmp146 [V162,T75] ( 2, 1 ) int -> x1 single-def "Inline stloc first use temp"
; V163 tmp147 [V163,T49] ( 5, 2.50) int -> x26 "Inline return value spill temp"
;* V164 tmp148 [V164 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V165 tmp149 [V165,T15] ( 5, 5 ) byref -> x2 single-def "Inlining Arg"
; V166 tmp150 [V166,T20] ( 5, 5 ) int -> x1 "Inlining Arg"
; V167 tmp151 [V167,T48] ( 3, 3 ) int -> x26 "dup spill"
;* V168 tmp152 [V168 ] ( 0, 0 ) int -> zero-ref single-def
;* V169 tmp153 [V169 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp"
;* V170 tmp154 [V170 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V171 tmp155 [V171 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V172 tmp156 [V172 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V173 tmp157 [V173 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StringHandle>
; V174 tmp158 [V174,T39] ( 3, 3 ) byref -> x22 single-def "Inlining Arg"
; V175 tmp159 [V175,T40] ( 3, 3 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
; V176 tmp160 [V176,T41] ( 3, 3 ) byref -> x3 single-def "impAppendStmt"
; V177 tmp161 [V177,T59] ( 3, 1.50) ref -> x1 class-hnd "Inline return value spill temp" <System.String>
;* V178 tmp162 [V178 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.StringHandle>
; V179 tmp163 [V179,T24] ( 4, 4 ) ref -> x22 class-hnd single-def "Inlining Arg" <System.Reflection.Metadata.MetadataStringDecoder>
;* V180 tmp164 [V180 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.StringHandle>
; V181 tmp165 [V181,T76] ( 2, 1 ) int -> x2
; V182 tmp166 [V182,T77] ( 2, 1 ) ushort -> x4 single-def "Inline stloc first use temp"
; V183 tmp167 [V183,T25] ( 4, 4 ) byref -> x21 single-def "impAppendStmt"
; V184 tmp168 [V184 ] ( 1, 0.50) int -> [fp+0x10] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V185 tmp169 [V185,T26] ( 4, 4 ) int -> x23 "Inlining Arg"
; V186 tmp170 [V186,T67] ( 3, 1.50) int -> x2 single-def "Inline stloc first use temp"
; V187 tmp171 [V187,T60] ( 3, 1.50) ref -> x1 class-hnd "Inline return value spill temp" <System.String>
; V188 tmp172 [V188,T57] ( 2, 2 ) long -> x1 "Inlining Arg"
;* V189 tmp173 [V189 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V190 tmp174 [V190 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V191 tmp175 [V191,T96] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V192 tmp176 [V192 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V193 tmp177 [V193,T107] ( 2, 0 ) byref -> x22 single-def "Inlining Arg"
; V194 tmp178 [V194,T124] ( 2, 0 ) int -> x0 "Inlining Arg"
;* V195 tmp179 [V195,T125] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V196 tmp180 [V196 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V197 tmp181 [V197 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V198 tmp182 [V198,T108] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
;* V199 tmp183 [V199 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V200 tmp184 [V200,T97] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V201 tmp185 [V201 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V202 tmp186 [V202,T109] ( 2, 0 ) byref -> x22 single-def "Inlining Arg"
; V203 tmp187 [V203,T126] ( 2, 0 ) int -> x0 "Inlining Arg"
;* V204 tmp188 [V204,T127] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V205 tmp189 [V205 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V206 tmp190 [V206 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V207 tmp191 [V207,T110] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
; V208 tmp192 [V208,T02] ( 6, 7 ) ref -> x0 "Single return block return value"
; V209 tmp193 [V209,T23] ( 5, 2 ) int -> x20 single-def "field V00._rowId (fldOffset=0x0)" P-INDEP
;* V210 tmp194 [V210 ] ( 0, 0 ) ref -> zero-ref single-def "field V03._reader (fldOffset=0x0)" P-INDEP
;* V211 tmp195 [V211 ] ( 0, 0 ) int -> zero-ref single-def "field V03._treatmentAndRowId (fldOffset=0x8)" P-INDEP
; V212 tmp196 [V212,T30] ( 5, 3 ) byref -> x24 "field V04._reference (fldOffset=0x0)" P-INDEP
; V213 tmp197 [V213,T31] ( 5, 3 ) int -> x25 "field V04._length (fldOffset=0x8)" P-INDEP
; V214 tmp198 [V214,T27] ( 6, 3.50) byref -> x27 "field V05._reference (fldOffset=0x0)" P-INDEP
; V215 tmp199 [V215,T28] ( 6, 3.50) int -> x28 "field V05._length (fldOffset=0x8)" P-INDEP
;* V216 tmp200 [V216 ] ( 0, 0 ) int -> zero-ref single-def "field V06._vToken (fldOffset=0x0)" P-INDEP
;* V217 tmp201 [V217 ] ( 0, 0 ) ref -> zero-ref single-def "field V14._reader (fldOffset=0x0)" P-INDEP
;* V218 tmp202 [V218 ] ( 0, 0 ) int -> zero-ref single-def "field V14._rowId (fldOffset=0x8)" P-INDEP
;* V219 tmp203 [V219 ] ( 0, 0 ) int -> zero-ref "field V17._value (fldOffset=0x0)" P-INDEP
;* V220 tmp204 [V220 ] ( 0, 0 ) int -> zero-ref "field V18._value (fldOffset=0x0)" P-INDEP
; V221 tmp205 [V221,T78] ( 2, 1 ) int -> x21 "field V19._rowId (fldOffset=0x0)" P-INDEP
;* V222 tmp206 [V222 ] ( 0, 0 ) int -> zero-ref single-def "field V20._value (fldOffset=0x0)" P-INDEP
; V223 tmp207 [V223,T79] ( 2, 1 ) int -> x0 "field V31._value (fldOffset=0x0)" P-INDEP
; V224 tmp208 [V224,T80] ( 2, 1 ) int -> x0 "field V36._rowId (fldOffset=0x0)" P-INDEP
;* V225 tmp209 [V225 ] ( 0, 0 ) ref -> zero-ref single-def "field V46._reader (fldOffset=0x0)" P-INDEP
;* V226 tmp210 [V226 ] ( 0, 0 ) int -> zero-ref single-def "field V46._treatmentAndRowId (fldOffset=0x8)" P-INDEP
;* V227 tmp211 [V227 ] ( 0, 0 ) int -> zero-ref single-def "field V48._rowId (fldOffset=0x0)" P-INDEP
; V228 tmp212 [V228,T53] ( 3, 2 ) int -> x0 "field V49._value (fldOffset=0x0)" P-INDEP
;* V229 tmp213 [V229 ] ( 0, 0 ) int -> zero-ref "field V51._rowId (fldOffset=0x0)" P-INDEP
; V230 tmp214 [V230,T81] ( 2, 1 ) int -> x24 single-def "field V53._rowId (fldOffset=0x0)" P-INDEP
;* V231 tmp215 [V231 ] ( 0, 0 ) int -> zero-ref single-def "field V54._rowId (fldOffset=0x0)" P-INDEP
; V232 tmp216 [V232,T82] ( 2, 1 ) int -> x0 single-def "field V66._value (fldOffset=0x0)" P-INDEP
; V233 tmp217 [V233,T51] ( 4, 2 ) int -> x0 "field V67._value (fldOffset=0x0)" P-INDEP
;* V234 tmp218 [V234 ] ( 0, 0 ) int -> zero-ref single-def "field V69._value (fldOffset=0x0)" P-INDEP
;* V235 tmp219 [V235,T93] ( 0, 0 ) int -> zero-ref single-def "field V70._value (fldOffset=0x0)" P-INDEP
; V236 tmp220 [V236,T83] ( 2, 1 ) int -> x0 single-def "field V73._value (fldOffset=0x0)" P-INDEP
; V237 tmp221 [V237,T54] ( 3, 2 ) int -> x0 "field V75._value (fldOffset=0x0)" P-INDEP
;* V238 tmp222 [V238 ] ( 0, 0 ) int -> zero-ref "field V77._rowId (fldOffset=0x0)" P-INDEP
; V239 tmp223 [V239,T84] ( 2, 1 ) int -> x1 single-def "field V79._rowId (fldOffset=0x0)" P-INDEP
;* V240 tmp224 [V240 ] ( 0, 0 ) int -> zero-ref single-def "field V80._rowId (fldOffset=0x0)" P-INDEP
; V241 tmp225 [V241,T85] ( 2, 1 ) int -> x0 single-def "field V92._value (fldOffset=0x0)" P-INDEP
; V242 tmp226 [V242,T68] ( 3, 1.50) int -> x0 "field V93._value (fldOffset=0x0)" P-INDEP
;* V243 tmp227 [V243 ] ( 0, 0 ) int -> zero-ref "field V95._rowId (fldOffset=0x0)" P-INDEP
; V244 tmp228 [V244,T86] ( 2, 1 ) int -> x0 single-def "field V98._value (fldOffset=0x0)" P-INDEP
; V245 tmp229 [V245,T87] ( 2, 1 ) int -> x1 single-def "field V101._rowId (fldOffset=0x0)" P-INDEP
;* V246 tmp230 [V246 ] ( 0, 0 ) int -> zero-ref single-def "field V102._rowId (fldOffset=0x0)" P-INDEP
; V247 tmp231 [V247,T88] ( 2, 1 ) int -> x0 single-def "field V114._value (fldOffset=0x0)" P-INDEP
; V248 tmp232 [V248,T22] ( 7, 4 ) int -> x0 "field V115._vToken (fldOffset=0x0)" P-INDEP
;* V249 tmp233 [V249 ] ( 0, 0 ) int -> zero-ref "field V117._rowId (fldOffset=0x0)" P-INDEP
; V250 tmp234 [V250,T89] ( 2, 1 ) int -> x1 single-def "field V119._rowId (fldOffset=0x0)" P-INDEP
;* V251 tmp235 [V251 ] ( 0, 0 ) int -> zero-ref single-def "field V120._rowId (fldOffset=0x0)" P-INDEP
; V252 tmp236 [V252,T90] ( 2, 1 ) int -> x0 single-def "field V132._vToken (fldOffset=0x0)" P-INDEP
; V253 tmp237 [V253,T52] ( 4, 2 ) int -> x0 "field V134._vToken (fldOffset=0x0)" P-INDEP
;* V254 tmp238 [V254 ] ( 0, 0 ) int -> zero-ref "field V136._value (fldOffset=0x0)" P-INDEP
;* V255 tmp239 [V255 ] ( 0, 0 ) int -> zero-ref "field V137._value (fldOffset=0x0)" P-INDEP
;* V256 tmp240 [V256 ] ( 0, 0 ) int -> zero-ref single-def "field V138._value (fldOffset=0x0)" P-INDEP
;* V257 tmp241 [V257 ] ( 0, 0 ) int -> zero-ref single-def "field V139._value (fldOffset=0x0)" P-INDEP
;* V258 tmp242 [V258 ] ( 0, 0 ) int -> zero-ref single-def "field V140._value (fldOffset=0x0)" P-INDEP
;* V259 tmp243 [V259,T94] ( 0, 0 ) int -> zero-ref single-def "field V141._vToken (fldOffset=0x0)" P-INDEP
; V260 tmp244 [V260,T91] ( 2, 1 ) int -> x0 single-def "field V145._value (fldOffset=0x0)" P-INDEP
;* V261 tmp245 [V261 ] ( 0, 0 ) int -> zero-ref single-def "field V147._value (fldOffset=0x0)" P-INDEP
; V262 tmp246 [V262,T92] ( 2, 1 ) int -> x0 single-def "field V148._vToken (fldOffset=0x0)" P-INDEP
;* V263 tmp247 [V263 ] ( 0, 0 ) int -> zero-ref single-def "field V150._value (fldOffset=0x0)" P-INDEP
;* V264 tmp248 [V264,T95] ( 0, 0 ) int -> zero-ref single-def "field V151._vToken (fldOffset=0x0)" P-INDEP
;* V265 tmp249 [V265 ] ( 0, 0 ) ref -> zero-ref single-def "field V155._reader (fldOffset=0x0)" P-INDEP
;* V266 tmp250 [V266 ] ( 0, 0 ) int -> zero-ref single-def "field V155._rowId (fldOffset=0x8)" P-INDEP
;* V267 tmp251 [V267 ] ( 0, 0 ) int -> zero-ref single-def "field V156._rowId (fldOffset=0x0)" P-INDEP
;* V268 tmp252 [V268 ] ( 0, 0 ) int -> zero-ref "field V158._rowId (fldOffset=0x0)" P-INDEP
;* V269 tmp253 [V269 ] ( 0, 0 ) int -> zero-ref single-def "field V160._rowId (fldOffset=0x0)" P-INDEP
;* V270 tmp254 [V270 ] ( 0, 0 ) int -> zero-ref single-def "field V161._rowId (fldOffset=0x0)" P-INDEP
; V271 tmp255 [V271,T69] ( 3, 1.50) int -> x21 single-def "field V173._value (fldOffset=0x0)" P-INDEP
;* V272 tmp256 [V272 ] ( 0, 0 ) int -> zero-ref single-def "field V178._value (fldOffset=0x0)" P-INDEP
;* V273 tmp257 [V273 ] ( 0, 0 ) int -> zero-ref single-def "field V180._value (fldOffset=0x0)" P-INDEP
;* V274 tmp258 [V274 ] ( 0, 0 ) byref -> zero-ref "field V190._reference (fldOffset=0x0)" P-INDEP
;* V275 tmp259 [V275 ] ( 0, 0 ) int -> zero-ref "field V190._length (fldOffset=0x8)" P-INDEP
;* V276 tmp260 [V276 ] ( 0, 0 ) byref -> zero-ref single-def "field V192._reference (fldOffset=0x0)" P-INDEP
;* V277 tmp261 [V277 ] ( 0, 0 ) int -> zero-ref single-def "field V192._length (fldOffset=0x8)" P-INDEP
;* V278 tmp262 [V278 ] ( 0, 0 ) byref -> zero-ref single-def "field V196._reference (fldOffset=0x0)" P-INDEP
;* V279 tmp263 [V279 ] ( 0, 0 ) int -> zero-ref single-def "field V196._length (fldOffset=0x8)" P-INDEP
;* V280 tmp264 [V280 ] ( 0, 0 ) byref -> zero-ref "field V199._reference (fldOffset=0x0)" P-INDEP
;* V281 tmp265 [V281 ] ( 0, 0 ) int -> zero-ref "field V199._length (fldOffset=0x8)" P-INDEP
;* V282 tmp266 [V282 ] ( 0, 0 ) byref -> zero-ref single-def "field V201._reference (fldOffset=0x0)" P-INDEP
;* V283 tmp267 [V283 ] ( 0, 0 ) int -> zero-ref single-def "field V201._length (fldOffset=0x8)" P-INDEP
;* V284 tmp268 [V284 ] ( 0, 0 ) byref -> zero-ref single-def "field V205._reference (fldOffset=0x0)" P-INDEP
;* V285 tmp269 [V285 ] ( 0, 0 ) int -> zero-ref single-def "field V205._length (fldOffset=0x8)" P-INDEP
; V286 tmp270 [V286,T42] ( 3, 3 ) ref -> x0 single-def "arr expr"
; V287 tmp271 [V287,T43] ( 3, 3 ) ref -> x0 single-def "arr expr"
; V288 tmp272 [V288,T44] ( 3, 3 ) ref -> x0 single-def "arr expr"
; V289 tmp273 [V289,T56] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V290 tmp274 [V290,T111] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
; V291 tmp275 [V291,T112] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V292 tmp276 [V292,T101] ( 3, 0 ) ref -> x0 single-def "argument with side effect"
; V293 tmp277 [V293,T113] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
; V294 tmp278 [V294,T114] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
; V295 tmp279 [V295,T115] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V296 tmp280 [V296,T116] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V297 tmp281 [V297,T117] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V298 tmp282 [V298,T128] ( 2, 0 ) int -> x20 "argument with side effect"
; V299 tmp283 [V299,T118] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V300 tmp284 [V300,T119] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V301 tmp285 [V301,T120] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V302 tmp286 [V302,T129] ( 2, 0 ) int -> x20 "argument with side effect"
; V303 tmp287 [V303,T121] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V304 tmp288 [V304,T122] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V305 tmp289 [V305,T123] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V306 cse0 [V306,T05] ( 7, 5.50) int -> x23 "CSE #07: moderate"
; V307 cse1 [V307,T01] ( 15, 7.50) int -> registers multi-def "CSE #08: aggressive"
;
; Lcl frame size = 80
G_M62531_IG01:
stp fp, lr, [sp, #-0xB0]!
stp x19, x20, [sp, #0x60]
stp x21, x22, [sp, #0x70]
stp x23, x24, [sp, #0x80]
stp x25, x26, [sp, #0x90]
stp x27, x28, [sp, #0xA0]
mov fp, sp
add x9, fp, #16
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
stp xzr, xzr, [x9, #0x40]
mov w20, w0
mov x19, x1
;; size=56 bbWeight=1 PerfScore 11.50
G_M62531_IG02:
ldrsb wzr, [x19]
add x21, x19, #112
ldr x0, [x21]
movz x1, #0xD1FFAB1E // code for System.Reflection.MetadataLoadContext:DisposeCheck():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x21, [x21, #0x10]
ldr w0, [x21, #0x50]
cbz w0, G_M62531_IG04
;; size=48 bbWeight=1 PerfScore 22.00
G_M62531_IG03:
mov x0, x21
mov w1, w20
movz x2, #0xD1FFAB1E // code for System.Reflection.Metadata.MetadataReader:CalculateTypeRefTreatmentAndRowId(System.Reflection.Metadata.TypeReferenceHandle):uint:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
sxtw w22, w0
b G_M62531_IG05
;; size=36 bbWeight=0.50 PerfScore 4.00
G_M62531_IG04:
sxtw w22, w20
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M62531_IG05:
lsr w0, w22, #24
uxtb w23, w0
cbz w23, G_M62531_IG11
;; size=12 bbWeight=1 PerfScore 2.50
G_M62531_IG06:
sxtw w0, w23
sub w1, w0, #1
cmp w1, #1
bhi G_M62531_IG07
movz w0, #50
movk w0, #0xD1FFAB1E LSL #16
b G_M62531_IG10
;; size=28 bbWeight=0.50 PerfScore 2.25
G_M62531_IG07:
cmp w0, #3
bne G_M62531_IG09
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M62531_IG43
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M62531_IG08:
movz x0, #0xD1FFAB1E // data for System.Reflection.Metadata.MetadataReader:s_projectionInfos
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
and w24, w22, #0xD1FFAB1E
ldr w1, [x0, #0x08]
cmp w24, w1
bhs G_M62531_IG61
mov w1, #24
mov x2, #16
umaddl x1, w24, w1, x2
add x0, x0, x1
ldr w0, [x0, #0x08]
orr w0, w0, #0xD1FFAB1E
b G_M62531_IG10
- ;; size=56 bbWeight=0.50 PerfScore 10.00
+ ;; size=60 bbWeight=0.50 PerfScore 10.25
G_M62531_IG09:
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M62531_IG10:
b G_M62531_IG13
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M62531_IG11:
add x0, x21, #240
and w24, w22, #0xD1FFAB1E
sub w1, w24, #1
ldr w2, [x0, #0x14]
mul w1, w1, w2
add x2, x0, #24
ldr w3, [x0, #0x10]
add w1, w1, w3
ldrb w0, [x0, #0x05]
cbnz w0, G_M62531_IG12
mov w0, w1
add x0, x0, #4
ldrsw x3, [x2, #0x08]
cmp x0, x3
bhi G_M62531_IG60
ldr x2, [x2]
sxtw x1, w1
ldr w0, [x2, x1]
tst w0, #0xD1FFAB1E
bne G_M62531_IG46
b G_M62531_IG13
;; size=84 bbWeight=0.50 PerfScore 14.50
G_M62531_IG12:
mov w0, w1
add x0, x0, #2
ldrsw x3, [x2, #0x08]
cmp x0, x3
bhi G_M62531_IG60
ldr x0, [x2]
sxtw x1, w1
ldrh w0, [x0, x1]
;; size=32 bbWeight=0.50 PerfScore 6.00
G_M62531_IG13:
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Ecma.EcmaHelpers:AsReadOnlySpan(System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.MetadataReader):System.ReadOnlySpan`1[ubyte]
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x24, x0
mov w25, w1
cbz w23, G_M62531_IG20
;; size=36 bbWeight=1 PerfScore 8.00
G_M62531_IG14:
cmp w23, #3
beq G_M62531_IG17
add x0, x21, #240
and w1, w22, #0xD1FFAB1E
sxtw w26, w1
sxtw w1, w26
sub w1, w1, #1
ldr w2, [x0, #0x14]
mul w1, w1, w2
add x2, x0, #24
ldr w3, [x0, #0x0C]
add w1, w1, w3
ldrb w0, [x0, #0x05]
cbnz w0, G_M62531_IG15
mov w0, w1
add x0, x0, #4
ldrsw x3, [x2, #0x08]
cmp x0, x3
bhi G_M62531_IG60
ldr x2, [x2]
sxtw x1, w1
ldr w0, [x2, x1]
tst w0, #0xD1FFAB1E
bne G_M62531_IG46
b G_M62531_IG16
;; size=100 bbWeight=0.50 PerfScore 15.75
G_M62531_IG15:
mov w0, w1
add x0, x0, #2
ldrsw x3, [x2, #0x08]
cmp x0, x3
bhi G_M62531_IG60
ldr x0, [x2]
sxtw x1, w1
ldrh w0, [x0, x1]
;; size=32 bbWeight=0.50 PerfScore 6.00
G_M62531_IG16:
b G_M62531_IG19
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M62531_IG17:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M62531_IG44
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M62531_IG18:
movz x0, #0xD1FFAB1E // data for System.Reflection.Metadata.MetadataReader:s_projectionInfos
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
and w26, w22, #0xD1FFAB1E
ldr w1, [x0, #0x08]
cmp w26, w1
bhs G_M62531_IG61
mov w1, #24
mov x2, #16
umaddl x1, w26, w1, x2
add x0, x0, x1
ldr w0, [x0, #0x0C]
orr w0, w0, #0xD1FFAB1E
- ;; size=52 bbWeight=0.50 PerfScore 9.50
+ ;; size=56 bbWeight=0.50 PerfScore 9.75
G_M62531_IG19:
b G_M62531_IG22
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M62531_IG20:
add x0, x21, #240
and w26, w22, #0xD1FFAB1E
sxtw w1, w26
sub w1, w1, #1
ldr w2, [x0, #0x14]
mul w1, w1, w2
add x2, x0, #24
ldr w3, [x0, #0x0C]
add w1, w1, w3
ldrb w0, [x0, #0x05]
cbnz w0, G_M62531_IG21
mov w0, w1
add x0, x0, #4
ldrsw x3, [x2, #0x08]
cmp x0, x3
bhi G_M62531_IG60
ldr x2, [x2]
sxtw x1, w1
ldr w0, [x2, x1]
tst w0, #0xD1FFAB1E
bne G_M62531_IG46
b G_M62531_IG22
;; size=88 bbWeight=0.50 PerfScore 14.75
G_M62531_IG21:
mov w0, w1
add x0, x0, #2
ldrsw x3, [x2, #0x08]
cmp x0, x3
bhi G_M62531_IG60
ldr x0, [x2]
sxtw x1, w1
ldrh w0, [x0, x1]
;; size=32 bbWeight=0.50 PerfScore 6.00
G_M62531_IG22:
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Ecma.EcmaHelpers:AsReadOnlySpan(System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.MetadataReader):System.ReadOnlySpan`1[ubyte]
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x27, x0
mov w28, w1
cbz w23, G_M62531_IG28
;; size=36 bbWeight=1 PerfScore 8.00
G_M62531_IG23:
sub w0, w23, #1
cmp w0, #1
bhi G_M62531_IG24
mov w0, #0xD1FFAB1E
b G_M62531_IG27
;; size=20 bbWeight=0.50 PerfScore 1.75
G_M62531_IG24:
cmp w23, #3
bne G_M62531_IG26
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M62531_IG45
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M62531_IG25:
movz x0, #0xD1FFAB1E // data for System.Reflection.Metadata.MetadataReader:s_projectionInfos
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
ldr w1, [x0, #0x08]
cmp w26, w1
bhs G_M62531_IG61
mov w1, #24
mov x2, #16
umaddl x1, w26, w1, x2
add x0, x0, x1
ldr w0, [x0, #0x10]
orr w0, w0, #0xD1FFAB1E
mov w1, #0xD1FFAB1E
orr w0, w0, w1
b G_M62531_IG27
- ;; size=60 bbWeight=0.50 PerfScore 10.25
+ ;; size=64 bbWeight=0.50 PerfScore 10.50
G_M62531_IG26:
mov w0, #0xD1FFAB1E
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M62531_IG27:
b G_M62531_IG31
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M62531_IG28:
add x0, x21, #240
sxtw w1, w26
sub w1, w1, #1
ldr w2, [x0, #0x14]
mul w1, w1, w2
add x2, x0, #24
ldr w3, [x0, #0x08]
add w1, w1, w3
ldrb w0, [x0, #0x04]
cbz w0, G_M62531_IG29
mov w0, w1
add x0, x0, #2
ldrsw x3, [x2, #0x08]
cmp x0, x3
bhi G_M62531_IG60
ldr x2, [x2]
sxtw x1, w1
ldrh w0, [x2, x1]
b G_M62531_IG30
;; size=76 bbWeight=0.50 PerfScore 13.75
G_M62531_IG29:
mov w0, w1
add x0, x0, #4
ldrsw x3, [x2, #0x08]
cmp x0, x3
bhi G_M62531_IG60
ldr x0, [x2]
sxtw x1, w1
ldr w0, [x0, x1]
;; size=32 bbWeight=0.50 PerfScore 6.00
G_M62531_IG30:
lsr w1, w0, #2
and w0, w0, #3
lsl w0, w0, #3
movz w2, #0xD1FFAB1E
movk w2, #0xD1FFAB1E LSL #16
lsr w0, w2, w0
lsl w0, w0, #24
tst w1, #0xD1FFAB1E
bne G_M62531_IG59
orr w0, w0, w1
;; size=40 bbWeight=0.50 PerfScore 3.50
G_M62531_IG31:
tst w0, #0xD1FFAB1E
beq G_M62531_IG41
;; size=8 bbWeight=1 PerfScore 1.50
G_M62531_IG32:
and w1, w0, #0xD1FFAB1E
lsr w1, w1, #24
uxtb w21, w1
cmp w21, #1
bls G_M62531_IG39
cmp w21, #26
bne G_M62531_IG38
movz x1, #0xD1FFAB1E // code for System.Reflection.Metadata.ModuleReferenceHandle:op_Explicit(System.Reflection.Metadata.EntityHandle):System.Reflection.Metadata.ModuleReferenceHandle
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
sxtw w21, w0
add x22, x19, #112
ldr x0, [x22]
movz x1, #0xD1FFAB1E // code for System.Reflection.MetadataLoadContext:DisposeCheck():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x22, #0x10]
add x0, x0, #0xD1FFAB1E
sub w1, w21, #1
ldr w2, [x0, #0x0C]
mul w1, w1, w2
add x2, x0, #16
ldr w3, [x0, #0x08]
add w1, w1, w3
ldrb w0, [x0, #0x04]
cbnz w0, G_M62531_IG33
mov w0, w1
add x0, x0, #4
ldrsw x3, [x2, #0x08]
cmp x0, x3
bhi G_M62531_IG60
ldr x2, [x2]
sxtw x1, w1
ldr w26, [x2, x1]
tst w26, #0xD1FFAB1E
bne G_M62531_IG46
b G_M62531_IG34
;; size=168 bbWeight=0.50 PerfScore 27.25
G_M62531_IG33:
mov w0, w1
add x0, x0, #2
ldrsw x3, [x2, #0x08]
cmp x0, x3
bhi G_M62531_IG60
ldr x0, [x2]
sxtw x1, w1
ldrh w26, [x0, x1]
;; size=32 bbWeight=0.50 PerfScore 6.00
G_M62531_IG34:
sxtw w21, w26
add x22, x19, #112
ldr x0, [x22]
movz x1, #0xD1FFAB1E // code for System.Reflection.MetadataLoadContext:DisposeCheck():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x22, #0x10]
add x3, x0, #112
ldr x22, [x0, #0x38]
tst w21, #0xD1FFAB1E
beq G_M62531_IG35
mov x0, x3
mov w1, w21
mov x2, x22
movz x3, #0xD1FFAB1E // code for System.Reflection.Metadata.Ecma335.StringHeap:GetVirtualHandleString(System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.MetadataStringDecoder):System.String:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x1, x0
b G_M62531_IG37
;; size=96 bbWeight=0.50 PerfScore 14.50
G_M62531_IG35:
lsr w2, w26, #29
uxtb w2, w2
mov w0, #46
cmp w2, #1
csel w2, w0, wzr, eq
uxth w4, w2
add x21, x3, #8
and w23, w26, #0xD1FFAB1E
mov w2, w23
ldrsw x0, [x21, #0x08]
cmp x2, x0
bhi G_M62531_IG60
add x2, fp, #16 // [V184 tmp168]
mov x0, x21
mov w1, w23
mov w3, w4
movz x4, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:GetUtf8NullTerminatedLength(int,byref,ushort):int:this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
sxtw w2, w0
ldr x0, [x21]
add x1, x0, w23, SXTW
cbz w2, G_M62531_IG36
mov x0, x22
ldr x3, [x22]
ldr x3, [x3, #0x40]
ldr x3, [x3, #0x20]
blr x3
mov x1, x0
b G_M62531_IG37
;; size=128 bbWeight=0.50 PerfScore 17.25
G_M62531_IG36:
- movz x1, #0xD1FFAB1E
+ movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
;; size=12 bbWeight=0.50 PerfScore 0.75
G_M62531_IG37:
ldr x0, [x19, #0x40]
movz x2, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoAssembly:GetRoModule(System.String):System.Reflection.TypeLoading.RoModule:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
cbz x0, G_M62531_IG48
mov x1, x24
mov w2, w25
mov x3, x27
mov w4, w28
add x6, fp, #64 // [V13 loc11]
mov w5, wzr
movz x7, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoModule:GetTypeCore(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],ubyte,byref):System.Reflection.TypeLoading.RoDefinitionType:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz x0, G_M62531_IG47
b G_M62531_IG42
;; size=84 bbWeight=0.50 PerfScore 11.50
G_M62531_IG38:
cmp w21, #35
bne G_M62531_IG53
movz x1, #0xD1FFAB1E // code for System.Reflection.Metadata.AssemblyReferenceHandle:op_Explicit(System.Reflection.Metadata.EntityHandle):System.Reflection.Metadata.AssemblyReferenceHandle
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x19
movz x2, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Ecma.EcmaResolver:ResolveAssembly(System.Reflection.Metadata.AssemblyReferenceHandle,System.Reflection.TypeLoading.Ecma.EcmaModule):System.Reflection.TypeLoading.RoAssembly
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x24
mov w2, w25
mov x3, x27
mov w4, w28
add x6, fp, #80 // [V09 loc7]
mov w5, wzr
movz x7, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoAssembly:GetTypeCore(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],ubyte,byref):System.Reflection.TypeLoading.RoDefinitionType:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
ldr wzr, [x0]
blr x7
cbz x0, G_M62531_IG51
b G_M62531_IG42
;; size=108 bbWeight=0.50 PerfScore 13.25
G_M62531_IG39:
cbnz w21, G_M62531_IG40
mov x1, x24
mov w2, w25
mov x3, x27
mov w4, w28
add x6, fp, #72 // [V11 loc9]
mov x0, x19
mov w5, wzr
movz x7, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoModule:GetTypeCore(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],ubyte,byref):System.Reflection.TypeLoading.RoDefinitionType:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz x0, G_M62531_IG52
b G_M62531_IG42
;; size=60 bbWeight=0.50 PerfScore 6.00
G_M62531_IG40:
cmp w21, #1
bne G_M62531_IG53
movz x1, #0xD1FFAB1E // code for System.Reflection.Metadata.TypeReferenceHandle:op_Explicit(System.Reflection.Metadata.EntityHandle):System.Reflection.Metadata.TypeReferenceHandle
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x19
movz x2, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Ecma.EcmaResolver:ResolveTypeRef(System.Reflection.Metadata.TypeReferenceHandle,System.Reflection.TypeLoading.Ecma.EcmaModule):System.Reflection.TypeLoading.RoDefinitionType
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x21, x0
mov x1, x27
mov w2, w28
mov x0, x21
ldr x3, [x21]
ldr x3, [x3, #0xE8]
ldr x3, [x3]
blr x3
cbz x0, G_M62531_IG57
b G_M62531_IG42
;; size=92 bbWeight=0.50 PerfScore 13.50
G_M62531_IG41:
mov x1, x24
mov w2, w25
mov x3, x27
mov w4, w28
ldr x0, [x19, #0x40]
add x6, fp, #88 // [V08 loc6]
mov w5, wzr
movz x7, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoAssembly:GetTypeCore(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],ubyte,byref):System.Reflection.TypeLoading.RoDefinitionType:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
ldr wzr, [x0]
blr x7
cbz x0, G_M62531_IG58
;; size=56 bbWeight=0.50 PerfScore 7.75
G_M62531_IG42:
ldp x27, x28, [sp, #0xA0]
ldp x25, x26, [sp, #0x90]
ldp x23, x24, [sp, #0x80]
ldp x21, x22, [sp, #0x70]
ldp x19, x20, [sp, #0x60]
ldp fp, lr, [sp], #0xB0
ret lr
;; size=28 bbWeight=1 PerfScore 7.00
G_M62531_IG43:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #195
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M62531_IG08
;; size=24 bbWeight=0 PerfScore 0.00
G_M62531_IG44:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #195
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M62531_IG18
;; size=24 bbWeight=0 PerfScore 0.00
G_M62531_IG45:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #195
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M62531_IG25
;; size=24 bbWeight=0 PerfScore 0.00
G_M62531_IG46:
movz x0, #0xD1FFAB1E // code for System.Reflection.Throw:ReferenceOverflow()
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_M62531_IG47:
ldr x0, [fp, #0x40] // [V13 loc11]
bl CORINFO_HELP_THROW
brk_unix #0
;; size=12 bbWeight=0 PerfScore 0.00
G_M62531_IG48:
movz x0, #0xD1FFAB1E // code for System.SR:get_BadImageFormat_TypeRefModuleNotInManifest():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x21, x0
ldr x0, [x19, #0x40]
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoAssembly:get_FullName():System.String:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
mov x19, x0
add x0, fp, #24 // [V15 loc13]
mov w1, #2
mov w2, #1
movz x3, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr w0, [fp, #0x28] // [V15 loc13+0x10]
ldr w1, [fp, #0x38] // [V15 loc13+0x20]
cmp w0, w1
bhi G_M62531_IG56
ldr x1, [fp, #0x30] // [V15 loc13+0x18]
ubfiz x2, x0, #1, #32
add x22, x1, x2
ldr w1, [fp, #0x38] // [V15 loc13+0x20]
sub w0, w1, w0
cmp w0, #2
bhs G_M62531_IG49
add x0, fp, #24 // [V15 loc13]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
b G_M62531_IG50
;; size=172 bbWeight=0 PerfScore 0.00
G_M62531_IG49:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w1, [x0]
str w1, [x22]
ldr w0, [fp, #0x28] // [V15 loc13+0x10]
add w0, w0, #2
str w0, [fp, #0x28] // [V15 loc13+0x10]
;; size=32 bbWeight=0 PerfScore 0.00
G_M62531_IG50:
mov w0, w20
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Ecma.MetadataExtensions:GetToken(System.Reflection.Metadata.TypeReferenceHandle):int
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
sxtw w20, w0
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
mov x2, x0
mov w1, w20
add x0, fp, #24 // [V15 loc13]
movz x3, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
add x0, fp, #24 // [V15 loc13]
movz x1, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x2, x0
mov x1, x19
mov x0, x21
movz x3, #0xD1FFAB1E // code for System.SR:Format(System.String,System.Object,System.Object):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x1, x0
mov x0, x20
movz x2, #0xD1FFAB1E // code for System.BadImageFormatException:.ctor(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x20
bl CORINFO_HELP_THROW
brk_unix #0
;; size=196 bbWeight=0 PerfScore 0.00
G_M62531_IG51:
ldr x0, [fp, #0x50] // [V09 loc7]
bl CORINFO_HELP_THROW
brk_unix #0
;; size=12 bbWeight=0 PerfScore 0.00
G_M62531_IG52:
ldr x0, [fp, #0x48] // [V11 loc9]
bl CORINFO_HELP_THROW
brk_unix #0
;; size=12 bbWeight=0 PerfScore 0.00
G_M62531_IG53:
movz x0, #0xD1FFAB1E // code for System.SR:get_BadImageFormat_TypeRefBadScopeType():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x21, x0
ldr x0, [x19, #0x40]
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoAssembly:get_FullName():System.String:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
mov x19, x0
add x0, fp, #24 // [V15 loc13]
mov w1, #2
mov w2, #1
movz x3, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr w0, [fp, #0x28] // [V15 loc13+0x10]
ldr w1, [fp, #0x38] // [V15 loc13+0x20]
cmp w0, w1
bhi G_M62531_IG56
ldr x1, [fp, #0x30] // [V15 loc13+0x18]
ubfiz x2, x0, #1, #32
add x22, x1, x2
ldr w1, [fp, #0x38] // [V15 loc13+0x20]
sub w0, w1, w0
cmp w0, #2
bhs G_M62531_IG54
add x0, fp, #24 // [V15 loc13]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
b G_M62531_IG55
;; size=172 bbWeight=0 PerfScore 0.00
G_M62531_IG54:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w1, [x0]
str w1, [x22]
ldr w0, [fp, #0x28] // [V15 loc13+0x10]
add w0, w0, #2
str w0, [fp, #0x28] // [V15 loc13+0x10]
;; size=32 bbWeight=0 PerfScore 0.00
G_M62531_IG55:
mov w0, w20
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Ecma.MetadataExtensions:GetToken(System.Reflection.Metadata.TypeReferenceHandle):int
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
sxtw w20, w0
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
mov x2, x0
mov w1, w20
add x0, fp, #24 // [V15 loc13]
movz x3, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
add x0, fp, #24 // [V15 loc13]
movz x1, #0xD1FFAB1E // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x2, x0
mov x1, x19
mov x0, x21
movz x3, #0xD1FFAB1E // code for System.SR:Format(System.String,System.Object,System.Object):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x1, x0
mov x0, x20
movz x2, #0xD1FFAB1E // code for System.BadImageFormatException:.ctor(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x20
bl CORINFO_HELP_THROW
brk_unix #0
;; size=196 bbWeight=0 PerfScore 0.00
G_M62531_IG56:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M62531_IG57:
movz x0, #0xD1FFAB1E // code for System.SR:get_TypeNotFound():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x19, x0
mov x0, x21
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoDefinitionType:ToString():System.String:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
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.String:Concat(System.String,System.String):System.String
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x20, x0
mov x0, x21
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType:get_Assembly():System.Reflection.Assembly:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x1, [x0]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x18]
blr x1
mov x2, x0
mov x0, x19
mov x1, x20
movz x3, #0xD1FFAB1E // code for System.SR:Format(System.String,System.Object,System.Object):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x19, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #47
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x1, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Object]:Value
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
mov x0, x19
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, x20
movz x2, #0xD1FFAB1E // code for System.TypeLoadException:.ctor(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x20
bl CORINFO_HELP_THROW
brk_unix #0
- ;; size=296 bbWeight=0 PerfScore 0.00
+ ;; size=300 bbWeight=0 PerfScore 0.00
G_M62531_IG58:
ldr x0, [fp, #0x58] // [V08 loc6]
bl CORINFO_HELP_THROW
brk_unix #0
;; size=12 bbWeight=0 PerfScore 0.00
G_M62531_IG59:
movz x0, #0xD1FFAB1E // code for System.Reflection.Throw:InvalidCodedIndex()
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_M62531_IG60:
movz x0, #0xD1FFAB1E // code for System.Reflection.Throw:OutOfBounds()
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_M62531_IG61:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 3252, prolog size 48, PerfScore 314.75, instruction count 813, allocated bytes for code 3252 (MethodHash=42a80bbc) for method System.Reflection.TypeLoading.Ecma.EcmaResolver:ComputeTypeRefResolution(System.Reflection.Metadata.TypeReferenceHandle,System.Reflection.TypeLoading.Ecma.EcmaModule):System.Reflection.TypeLoading.RoDefinitionType (FullOpts)
+; Total bytes of code 3268, prolog size 48, PerfScore 315.50, instruction count 817, allocated bytes for code 3268 (MethodHash=42a80bbc) for method System.Reflection.TypeLoading.Ecma.EcmaResolver:ComputeTypeRefResolution(System.Reflection.Metadata.TypeReferenceHandle,System.Reflection.TypeLoading.Ecma.EcmaModule):System.Reflection.TypeLoading.RoDefinitionType (FullOpts)
12 (0.82 % of base) - System.Reflection.MetadataLoadContext:LoadFromStreamCore(System.IO.Stream):System.Reflection.TypeLoading.RoAssembly:this
; Assembly listing for method System.Reflection.MetadataLoadContext:LoadFromStreamCore(System.IO.Stream):System.Reflection.TypeLoading.RoAssembly: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; 20 single block inlinees; 8 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T05] ( 5, 4.50) ref -> x19 this class-hnd single-def <System.Reflection.MetadataLoadContext>
; V01 arg1 [V01,T06] ( 4, 4 ) ref -> x20 class-hnd single-def <System.IO.Stream>
;* V02 loc0 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Reflection.PortableExecutable.PEReader>
; V03 loc1 [V03,T21] ( 6, 3 ) ref -> [fp+0x18] do-not-enreg[M] class-hnd EH-live <System.Reflection.PortableExecutable.PEReader>
;* V04 loc2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.String>
; V05 loc3 [V05,T22] ( 4, 3 ) ref -> x0 class-hnd single-def <System.IO.FileStream>
; V06 loc4 [V06,T32] ( 2, 2 ) ref -> x22 class-hnd exact single-def <System.Reflection.Metadata.MetadataReader>
;* V07 loc5 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Reflection.TypeLoading.Ecma.EcmaAssembly>
;* V08 loc6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Reflection.TypeLoading.AssemblyNameData>
; V09 loc7 [V09,T16] ( 4, 3.50) ref -> x22 class-hnd <ubyte[]>
;* V10 loc8 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Reflection.TypeLoading.RoAssemblyName>
;* V11 loc9 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Reflection.TypeLoading.RoAssembly>
;* V12 loc10 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Reflection.TypeLoading.RoAssembly>
;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V14 tmp1 [V14,T01] ( 9, 16 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.PortableExecutable.PEReader>
; V15 tmp2 [V15,T33] ( 2, 2 ) ref -> x20 class-hnd exact single-def "dup spill" <System.String>
; V16 tmp3 [V16,T27] ( 4, 2.50) ref -> x20
; V17 tmp4 [V17,T02] ( 9, 13 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.Ecma.EcmaAssembly>
; V18 tmp5 [V18,T10] ( 2, 4 ) ref -> x22 class-hnd single-def "dup spill" <ubyte[]>
; V19 tmp6 [V19,T17] ( 4, 3.50) ref -> x22
; V20 tmp7 [V20,T00] ( 11, 17 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoAssemblyName>
; V21 tmp8 [V21,T35] ( 2, 2 ) struct (16) [fp+0x40] do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Guid>
; V22 tmp9 [V22,T36] ( 2, 2 ) struct (16) [fp+0x30] do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Guid>
; V23 tmp10 [V23,T42] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.IO.FileLoadException>
; V24 tmp11 [V24,T43] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.BadImageFormatException>
;* V25 tmp12 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.PortableExecutable.PEHeaders>
;* V26 tmp13 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Reflection.TypeLoading.AssemblyNameData>
; V27 tmp14 [V27,T11] ( 2, 4 ) ref -> x20 class-hnd exact single-def "dup spill" <System.Reflection.TypeLoading.AssemblyNameData>
; V28 tmp15 [V28,T04] ( 9, 8 ) ref -> x20
; V29 tmp16 [V29,T23] ( 3, 3 ) ref -> x20 class-hnd exact single-def "dup spill" <System.Reflection.TypeLoading.AssemblyNameData>
;* V30 tmp17 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.AssemblyNameData>
; V31 tmp18 [V31,T12] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.String>
; V32 tmp19 [V32,T13] ( 2, 4 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Version>
;* V33 tmp20 [V33 ] ( 0, 0 ) ref -> zero-ref single-def
; V34 tmp21 [V34,T18] ( 4, 3.50) ref -> x0
; V35 tmp22 [V35,T14] ( 2, 4 ) ref -> x25 class-hnd exact single-def "Inlining Arg" <System.String>
;* V36 tmp23 [V36 ] ( 0, 0 ) ref -> zero-ref single-def
; V37 tmp24 [V37,T08] ( 5, 5 ) ref -> x15
;* V38 tmp25 [V38 ] ( 0, 0 ) ref -> zero-ref single-def
; V39 tmp26 [V39,T19] ( 4, 3.50) ref -> x15
; V40 tmp27 [V40,T15] ( 2, 4 ) int -> x20 "Inlining Arg"
; V41 tmp28 [V41,T07] ( 8, 5.50) ref -> x20 class-hnd single-def "Inline return value spill temp" <System.Reflection.TypeLoading.RoAssembly>
; V42 tmp29 [V42,T03] ( 5, 9 ) ref -> x20 class-hnd single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentDictionary`2[System.Reflection.TypeLoading.RoAssemblyName,System.Reflection.TypeLoading.RoAssembly]>
; V43 tmp30 [V43,T20] ( 4, 3.50) ref -> x22 class-hnd single-def "Inline stloc first use temp" <System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.Reflection.TypeLoading.RoAssemblyName,System.Reflection.TypeLoading.RoAssembly]>
; V44 tmp31 [V44,T37] ( 2, 1.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <System.Collections.Generic.IEqualityComparer`1[System.Reflection.TypeLoading.RoAssemblyName]>
;* V45 tmp32 [V45 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
; V46 tmp33 [V46 ] ( 4, 3.50) ref -> [fp+0x28] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Reflection.TypeLoading.RoAssembly>
;* V47 tmp34 [V47 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
; V48 tmp35 [V48,T28] ( 4, 2.50) int -> x25 "Inline return value spill temp"
;* V49 tmp36 [V49 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd single-def "Inlining Arg" <System.Reflection.TypeLoading.RoAssemblyName>
;* V50 tmp37 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Reflection.TypeLoading.RoAssemblyName>
;* V51 tmp38 [V51 ] ( 0, 0 ) long -> zero-ref single-def "Inline stloc first use temp"
; V52 tmp39 [V52,T24] ( 3, 3 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.String>
; V53 tmp40 [V53,T31] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
; V54 tmp41 [V54,T09] ( 4, 4 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentBag`1[System.IDisposable]>
;* V55 tmp42 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Collections.Concurrent.ConcurrentBag`1+WorkStealingQueue[System.IDisposable]>
; V56 tmp43 [V56,T34] ( 2, 2 ) ref -> x0 class-hnd exact single-def "dup spill" <System.Collections.Concurrent.ConcurrentBag`1+WorkStealingQueue[System.IDisposable]>
; V57 tmp44 [V57,T29] ( 4, 2 ) ref -> x0
;* V58 tmp45 [V58 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Guid>
;* V59 tmp46 [V59 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Guid>
;* V60 tmp47 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V61 tmp48 [V61,T40] ( 0, 0 ) ubyte -> zero-ref single-def "field V47.hasValue (fldOffset=0x0)" P-INDEP
; V62 tmp49 [V62,T38] ( 2, 1 ) int -> x25 single-def "field V47.value (fldOffset=0x4)" P-INDEP
;* V63 tmp50 [V63 ] ( 0, 0 ) simd16 -> zero-ref "V58.[000..016)"
;* V64 tmp51 [V64 ] ( 0, 0 ) simd16 -> zero-ref "V59.[000..016)"
; V65 tmp52 [V65,T26] ( 3, 3 ) struct ( 8) [fp+0x20] do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
; V66 tmp53 [V66,T25] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V67 tmp54 [V67,T44] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
; V68 tmp55 [V68,T45] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V69 tmp56 [V69,T46] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V70 PSPSym [V70,T39] ( 1, 1 ) long -> [fp+0x50] do-not-enreg[V] "PSPSym"
; V71 cse0 [V71,T30] ( 4, 2 ) ref -> x0 "CSE #02: moderate"
; V72 rat0 [V72,T41] ( 3, 3 ) simd16 -> d16 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 72
G_M4296_IG01:
stp fp, lr, [sp, #-0x90]!
stp x19, x20, [sp, #0x58]
stp x21, x22, [sp, #0x68]
stp x23, x24, [sp, #0x78]
str x25, [sp, #0x88]
mov fp, sp
str xzr, [fp, #0x28] // [V46 tmp33]
add x2, sp, #144
str x2, [fp, #0x50] // [V70 PSPSym]
mov x19, x0
mov x20, x1
;; size=44 bbWeight=1 PerfScore 9.00
G_M4296_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x21, x0
mov x1, x20
mov w2, wzr
mov w3, wzr
movz x4, #0xD1FFAB1E // code for System.Reflection.PortableExecutable.PEReader:.ctor(System.IO.Stream,int,int):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
str x21, [fp, #0x18] // [V03 loc1]
;; size=56 bbWeight=1 PerfScore 11.00
G_M4296_IG03:
ldr x0, [x21, #0x10]
cbnz x0, G_M4296_IG05
;; size=8 bbWeight=1 PerfScore 4.00
G_M4296_IG04:
mov x0, x21
movz x1, #0xD1FFAB1E // code for System.Reflection.PortableExecutable.PEReader:InitializePEHeaders():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=24 bbWeight=0.50 PerfScore 3.00
G_M4296_IG05:
ldr x1, [x21, #0x10]
ldr w1, [x1, #0x24]
cmp w1, #0
ble G_M4296_IG31
mov x1, x20
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_M4296_IG07
;; size=56 bbWeight=1 PerfScore 16.00
G_M4296_IG06:
ldr x1, [x0]
ldr x1, [x1, #0x68]
ldr x1, [x1, #0x38]
blr x1
mov x20, x0
cbnz x20, G_M4296_IG08
;; size=24 bbWeight=0.50 PerfScore 5.75
G_M4296_IG07:
- movz x20, #0xD1FFAB1E
+ movz x20, #8
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
;; size=12 bbWeight=0.50 PerfScore 0.75
G_M4296_IG08:
mov x0, x21
mov w1, #1
mov x2, xzr
movz x3, #0xD1FFAB1E // code for System.Reflection.Metadata.PEReaderExtensions:GetMetadataReader(System.Reflection.PortableExecutable.PEReader,int,System.Reflection.Metadata.MetadataStringDecoder):System.Reflection.Metadata.MetadataReader
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x22, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
mov x1, x19
mov x2, x21
mov x3, x22
mov x4, x20
movz x5, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Ecma.EcmaAssembly:.ctor(System.Reflection.MetadataLoadContext,System.Reflection.PortableExecutable.PEReader,System.Reflection.Metadata.MetadataReader,System.String):this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
add x0, x23, #16
ldapr x20, [x0]
cbnz x20, G_M4296_IG10
;; size=104 bbWeight=1 PerfScore 22.50
G_M4296_IG09:
mov x0, x23
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Ecma.EcmaAssembly:ComputeNameData():System.Reflection.TypeLoading.AssemblyNameData:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x20, x0
add x14, x23, #16
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M4296_IG10:
ldr x22, [x20, #0x28]
cbnz x22, G_M4296_IG12
;; size=8 bbWeight=1 PerfScore 4.00
G_M4296_IG11:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #19
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Array+EmptyArray`1[ubyte]:Value
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x22, [x0]
- ;; size=32 bbWeight=0.50 PerfScore 3.50
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4296_IG12:
ldr w0, [x22, #0x08]
cbnz w0, G_M4296_IG14
;; size=8 bbWeight=1 PerfScore 4.00
G_M4296_IG13:
ldr x0, [x20, #0x20]
cbz x0, G_M4296_IG14
ldr w1, [x0, #0x08]
cbz w1, G_M4296_IG14
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Helpers:ComputePublicKeyToken(ubyte[]):ubyte[]
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x22, x0
;; size=40 bbWeight=0.50 PerfScore 7.00
G_M4296_IG14:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
ldp x15, x0, [x20, #0x08]
ldr x25, [x20, #0x18]
ldr w20, [x20, #0x30]
add x14, x24, #8
bl CORINFO_HELP_ASSIGN_REF
cbnz x0, G_M4296_IG17
;; size=44 bbWeight=1 PerfScore 15.50
G_M4296_IG15:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w14, [x0]
tbz w14, #0, G_M4296_IG29
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M4296_IG16:
movz x14, #0xD1FFAB1E // data for System.Reflection.TypeLoading.RoAssemblyName:s_Version0000
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x0, [x14]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M4296_IG17:
add x14, x24, #16
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
mov x15, x25
- movz x14, #0xD1FFAB1E
+ movz x14, #8
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
cmp x15, #0
csel x15, x15, x14, ne
add x14, x24, #24
bl CORINFO_HELP_ASSIGN_REF
mov x15, x22
cbnz x15, G_M4296_IG19
;; size=52 bbWeight=1 PerfScore 8.00
G_M4296_IG18:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #19
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[ubyte]:Value
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
- ;; size=32 bbWeight=0.50 PerfScore 3.50
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4296_IG19:
add x14, x24, #32
bl CORINFO_HELP_ASSIGN_REF
str w20, [x24, #0x28]
ldr x20, [x19, #0x70]
ldrsb wzr, [x20]
add x1, x20, #8
ldapr x22, [x1]
ldr x0, [x22, #0x08]
ldrb w1, [x20, #0x15]
cbz w1, G_M4296_IG21
;; size=40 bbWeight=1 PerfScore 19.00
G_M4296_IG20:
ldr x0, [x24, #0x08]
ldr w1, [x0, #0x08]
lsl w1, w1, #1
add x0, x0, #12
movz w2, #0xD1FFAB1E
movk w2, #0xD1FFAB1E LSL #16
movz w3, #0xD1FFAB1E
movk w3, #0xD1FFAB1E LSL #16
movz x4, #0xD1FFAB1E // code for System.Marvin:ComputeHash32(byref,uint,uint,uint):int
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
sxtw w25, w0
b G_M4296_IG22
;; size=60 bbWeight=0.50 PerfScore 8.25
G_M4296_IG21:
mov x1, x24
movz x11, #0xD1FFAB1E // code for System.Collections.Generic.IEqualityComparer`1[System.__Canon]:GetHashCode(System.__Canon):int:this
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
ldr xip0, [x11]
blr xip0
sxtw w25, w0
;; size=28 bbWeight=0.50 PerfScore 3.25
G_M4296_IG22:
add x4, fp, #40 // [V46 tmp33]
mov x1, x22
mov x2, x24
mov w3, w25
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x5, #0xD1FFAB1E // code for System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:TryGetValueInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.__Canon,System.__Canon],System.__Canon,int,byref):ubyte
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
cbnz w0, G_M4296_IG24
;; size=52 bbWeight=1 PerfScore 10.00
G_M4296_IG23:
mov w3, #1
strb w3, [fp, #0x20] // [V65 tmp52]
str w25, [fp, #0x24] // [V65 tmp52+0x04]
ldr x3, [fp, #0x20] // [V65 tmp52]
add x7, fp, #40 // [V46 tmp33]
mov x1, x22
mov x2, x24
mov x0, x20
mov x4, x23
mov w5, wzr
mov w6, #1
movz x8, #0xD1FFAB1E // code for System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:TryAddInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.__Canon,System.__Canon],System.__Canon,System.Nullable`1[int],System.__Canon,ubyte,ubyte,byref):ubyte:this
movk x8, #0xD1FFAB1E LSL #16
movk x8, #0xD1FFAB1E LSL #32
ldr x8, [x8]
blr x8
;; size=64 bbWeight=0.50 PerfScore 6.75
G_M4296_IG24:
ldr x20, [fp, #0x28] // [V46 tmp33]
str xzr, [fp, #0x28] // [V46 tmp33]
cmp x20, x23
beq G_M4296_IG27
;; size=16 bbWeight=1 PerfScore 4.50
G_M4296_IG25:
cbz x20, G_M4296_IG26
mov x0, x20
mov x1, x23
ldr x2, [x20]
ldr x2, [x2, #0x40]
ldr x2, [x2, #0x10]
blr x2
cbnz w0, G_M4296_IG27
;; size=32 bbWeight=0.50 PerfScore 6.50
G_M4296_IG26:
ldr x0, [x23, #0x40]
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Ecma.EcmaModule:get_ModuleVersionId():System.Guid:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
stp x0, x1, [fp, #0x40] // [V21 tmp8], [V21 tmp8+0x08]
mov x0, x20
ldr x1, [x20]
ldr x1, [x1, #0x70]
ldr x1, [x1, #0x18]
blr x1
ldr x1, [x0]
ldr x1, [x1, #0x48]
ldr x1, [x1]
blr x1
stp x0, x1, [fp, #0x30] // [V22 tmp9], [V22 tmp9+0x08]
ldp q17, q16, [fp, #0x30] // [V22 tmp9], [V21 tmp8]
cmeq v16.16b, v16.16b, v17.16b
uminp v16.4s, v16.4s, v16.4s
umov x0, v16.d[0]
cmn x0, #1
beq G_M4296_IG32
b G_M4296_IG30
;; size=100 bbWeight=0.50 PerfScore 20.75
G_M4296_IG27:
ldr x19, [x19, #0x28]
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E // code for System.Threading.ThreadLocal`1[System.__Canon]:get_Value():System.__Canon:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbnz x0, G_M4296_IG28
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.Collections.Concurrent.ConcurrentBag`1[System.__Canon]:CreateWorkStealingQueueForCurrentThread():System.Collections.Concurrent.ConcurrentBag`1+WorkStealingQueue[System.__Canon]:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=60 bbWeight=0.50 PerfScore 10.75
G_M4296_IG28:
add x2, x19, #24
mov x1, x21
movz x3, #0xD1FFAB1E // code for System.Collections.Concurrent.ConcurrentBag`1+WorkStealingQueue[System.__Canon]:LocalPush(System.__Canon,byref):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
ldr wzr, [x0]
blr x3
str xzr, [fp, #0x18] // [V03 loc1]
b G_M4296_IG32
;; size=40 bbWeight=0.50 PerfScore 5.75
G_M4296_IG29:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #43
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M4296_IG16
;; size=24 bbWeight=0 PerfScore 0.00
G_M4296_IG30:
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_FileLoadDuplicateAssemblies():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x1, x24
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.IO.FileLoadException:.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=104 bbWeight=0 PerfScore 0.00
G_M4296_IG31:
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_NoMetadataInPeImage():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for System.BadImageFormatException:.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_M4296_IG32:
ldr x0, [fp, #0x18] // [V03 loc1]
cbz x0, G_M4296_IG34
;; size=8 bbWeight=1 PerfScore 3.00
G_M4296_IG33:
ldr x0, [fp, #0x18] // [V03 loc1]
movz x1, #0xD1FFAB1E // code for System.Reflection.PortableExecutable.PEReader:Dispose():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=24 bbWeight=0.50 PerfScore 3.75
G_M4296_IG34:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
G_M4296_IG35:
ldr x25, [sp, #0x88]
ldp x23, x24, [sp, #0x78]
ldp x21, x22, [sp, #0x68]
ldp x19, x20, [sp, #0x58]
ldp fp, lr, [sp], #0x90
ret lr
;; size=24 bbWeight=1 PerfScore 7.00
G_M4296_IG36:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
stp x23, x24, [sp, #0x38]
str x25, [sp, #0x48]
add x3, fp, #144
str x3, [sp, #0x10]
;; size=28 bbWeight=0 PerfScore 0.00
G_M4296_IG37:
ldr x0, [fp, #0x18] // [V03 loc1]
cbz x0, G_M4296_IG38
ldr x0, [fp, #0x18] // [V03 loc1]
movz x1, #0xD1FFAB1E // code for System.Reflection.PortableExecutable.PEReader:Dispose():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=32 bbWeight=0 PerfScore 0.00
G_M4296_IG38:
ldr x25, [sp, #0x48]
ldp x23, x24, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x50
ret lr
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1460, prolog size 44, PerfScore 236.25, instruction count 365, allocated bytes for code 1460 (MethodHash=d2fbef37) for method System.Reflection.MetadataLoadContext:LoadFromStreamCore(System.IO.Stream):System.Reflection.TypeLoading.RoAssembly:this (FullOpts)
+; Total bytes of code 1472, prolog size 44, PerfScore 237.00, instruction count 368, allocated bytes for code 1472 (MethodHash=d2fbef37) for method System.Reflection.MetadataLoadContext:LoadFromStreamCore(System.IO.Stream):System.Reflection.TypeLoading.RoAssembly:this (FullOpts)
12 (1.06 % of base) - System.Reflection.TypeLoading.Ecma.EcmaMethodBody:get_LocalVariables():System.Collections.Generic.IList`1[System.Reflection.LocalVariableInfo]:this
; Assembly listing for method System.Reflection.TypeLoading.Ecma.EcmaMethodBody:get_LocalVariables():System.Collections.Generic.IList`1[System.Reflection.LocalVariableInfo]: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; 45 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T04] ( 7, 6.50) ref -> x19 this class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaMethodBody>
; V01 loc0 [V01,T18] ( 5, 3 ) ref -> x20 class-hnd exact single-def <System.Reflection.Metadata.MetadataReader>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Reflection.TypeLoading.Ecma.EcmaPinnedTypeProvider>
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Reflection.Metadata.StandaloneSignatureHandle>
;* V04 loc3 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[System.Reflection.TypeLoading.RoType]>
; V05 loc4 [V05,T08] ( 5, 5.96) int -> x20 single-def
; V06 loc5 [V06,T07] ( 5, 5.96) ref -> x21 class-hnd single-def <System.Reflection.LocalVariableInfo[]>
;* V07 loc6 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Reflection.Metadata.StandaloneSignature>
; V08 loc7 [V08,T01] ( 7, 24.26) int -> x22
; V09 loc8 [V09,T03] ( 3, 9.90) ubyte -> x24
; V10 loc9 [V10,T02] ( 6, 16.83) ref -> x25 class-hnd <System.Reflection.TypeLoading.RoType>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V12 tmp1 [V12,T06] ( 4, 7 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.Ecma.EcmaPinnedTypeProvider>
;* V13 tmp2 [V13 ] ( 0, 0 ) struct (16) zero-ref multireg-ret single-def "spilled call-like call argument" <System.Reflection.TypeLoading.TypeContext>
; V14 tmp3 [V14,T31] ( 3, 1.50) ref -> x21
;* V15 tmp4 [V15,T05] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Reflection.TypeLoading.RoPinnedType>
; V16 tmp5 [V16,T00] ( 5, 39.60) ref -> x2 class-hnd exact "NewObj constructor temp" <System.Reflection.TypeLoading.RoLocalVariableInfo>
; V17 tmp6 [V17,T09] ( 3, 6 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Reflection.TypeLoading.Ecma.EcmaModule>
; V18 tmp7 [V18,T10] ( 3, 6 ) byref -> x20 single-def "Inlining Arg"
; V19 tmp8 [V19,T11] ( 3, 6 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Reflection.TypeLoading.Ecma.EcmaModule>
;* V20 tmp9 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.TypeLoading.Ecma.EcmaModule>
;* V21 tmp10 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.TypeLoading.Ecma.EcmaAssembly>
;* V22 tmp11 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.Metadata.MethodBodyBlock>
;* V23 tmp12 [V23 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Reflection.Metadata.StandaloneSignatureHandle>
;* V24 tmp13 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StandaloneSignature>
;* V25 tmp14 [V25 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.StandaloneSignatureHandle>
;* V26 tmp15 [V26 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Reflection.TypeLoading.TypeContext>
; V27 tmp16 [V27 ] ( 5, 2.50) struct (32) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Reflection.Metadata.Ecma335.SignatureDecoder`2[System.Reflection.TypeLoading.RoType,System.Reflection.TypeLoading.TypeContext]>
;* V28 tmp17 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.MetadataReader>
;* V29 tmp18 [V29 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.BlobHandle>
; V30 tmp19 [V30 ] ( 8, 4 ) struct (32) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.Reflection.Metadata.BlobReader>
;* V31 tmp20 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
;* V32 tmp21 [V32 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V33 tmp22 [V33,T12] ( 5, 5 ) byref -> x2 single-def "Inlining Arg"
; V34 tmp23 [V34,T37] ( 2, 1 ) int -> x0 single-def "Inline stloc first use temp"
; V35 tmp24 [V35,T22] ( 5, 2.50) int -> x19 "Inline return value spill temp"
;* V36 tmp25 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V37 tmp26 [V37,T13] ( 5, 5 ) byref -> x1 single-def "Inlining Arg"
; V38 tmp27 [V38,T14] ( 5, 5 ) int -> x0 "Inlining Arg"
; V39 tmp28 [V39,T21] ( 3, 3 ) int -> x19 "dup spill"
;* V40 tmp29 [V40 ] ( 0, 0 ) int -> zero-ref single-def
;* V41 tmp30 [V41 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp"
;* V42 tmp31 [V42 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V43 tmp32 [V43 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V44 tmp33 [V44 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V45 tmp34 [V45 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.BlobHandle>
; V46 tmp35 [V46,T17] ( 4, 4 ) byref -> x20 single-def "Inlining Arg"
;* V47 tmp36 [V47 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.BlobReader>
;* V48 tmp37 [V48 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Reflection.Internal.MemoryBlock>
;* V49 tmp38 [V49 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.Reflection.Internal.MemoryBlock>
;* V50 tmp39 [V50 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.BlobHandle>
; V51 tmp40 [V51,T29] ( 2, 2 ) byref -> x0 single-def "impAppendStmt"
; V52 tmp41 [V52,T25] ( 4, 2 ) int -> x1 ld-addr-op "Inline ldloca(s) first use temp"
; V53 tmp42 [V53,T26] ( 4, 2 ) int -> x0 ld-addr-op "Inline ldloca(s) first use temp"
;* V54 tmp43 [V54 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Reflection.Internal.MemoryBlock>
;* V55 tmp44 [V55 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V56 tmp45 [V56 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V57 tmp46 [V57 ] ( 2, 1 ) int -> [fp+0x10] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V58 tmp47 [V58,T33] ( 3, 1.50) int -> x0 single-def "Inline stloc first use temp"
; V59 tmp48 [V59,T19] ( 3, 3 ) byref -> x2 single-def "Inlining Arg"
;* V60 tmp49 [V60 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V61 tmp50 [V61 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V62 tmp51 [V62 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Internal.MemoryBlock>
;* V63 tmp52 [V63 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V64 tmp53 [V64 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.SignatureHeader>
;* V65 tmp54 [V65 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.SignatureHeader>
; V66 tmp55 [V66,T27] ( 4, 2 ) long -> x1 single-def "Inline stloc first use temp"
;* V67 tmp56 [V67 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V68 tmp57 [V68,T32] ( 3, 1.50) ref -> x0 class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Reflection.LocalVariableInfo]>
; V69 tmp58 [V69,T20] ( 3, 3 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Reflection.LocalVariableInfo]>
; V70 tmp59 [V70,T24] ( 3, 2.50) int -> x22 single-def "field V03._rowId (fldOffset=0x0)" P-INDEP
; V71 tmp60 [V71,T30] ( 4, 1.50) ref -> x19 "field V04.array (fldOffset=0x0)" P-INDEP
;* V72 tmp61 [V72 ] ( 0, 0 ) ref -> zero-ref single-def "field V07._reader (fldOffset=0x0)" P-INDEP
;* V73 tmp62 [V73 ] ( 0, 0 ) int -> zero-ref single-def "field V07._rowId (fldOffset=0x8)" P-INDEP
; V74 tmp63 [V74,T35] ( 2, 1 ) ref -> x0 "field V13.<GenericTypeArguments>k__BackingField (fldOffset=0x0)" P-INDEP
; V75 tmp64 [V75,T36] ( 2, 1 ) ref -> x1 "field V13.<GenericMethodArguments>k__BackingField (fldOffset=0x8)" P-INDEP
;* V76 tmp65 [V76 ] ( 0, 0 ) int -> zero-ref single-def "field V23._rowId (fldOffset=0x0)" P-INDEP
;* V77 tmp66 [V77 ] ( 0, 0 ) ref -> zero-ref single-def "field V24._reader (fldOffset=0x0)" P-INDEP
;* V78 tmp67 [V78 ] ( 0, 0 ) int -> zero-ref single-def "field V24._rowId (fldOffset=0x8)" P-INDEP
;* V79 tmp68 [V79 ] ( 0, 0 ) int -> zero-ref single-def "field V25._rowId (fldOffset=0x0)" P-INDEP
;* V80 tmp69 [V80 ] ( 0, 0 ) ref -> zero-ref "field V26.<GenericTypeArguments>k__BackingField (fldOffset=0x0)" P-DEP
;* V81 tmp70 [V81 ] ( 0, 0 ) ref -> zero-ref "field V26.<GenericMethodArguments>k__BackingField (fldOffset=0x8)" P-DEP
;* V82 tmp71 [V82 ] ( 0, 0 ) int -> zero-ref single-def "field V29._value (fldOffset=0x0)" P-INDEP
; V83 tmp72 [V83,T34] ( 3, 1.50) int -> x1 single-def "field V45._value (fldOffset=0x0)" P-INDEP
;* V84 tmp73 [V84 ] ( 0, 0 ) long -> zero-ref single-def "field V48.Pointer (fldOffset=0x0)" P-INDEP
;* V85 tmp74 [V85 ] ( 0, 0 ) int -> zero-ref single-def "field V48.Length (fldOffset=0x8)" P-INDEP
; V86 tmp75 [V86,T23] ( 5, 2.50) long -> x2 single-def "field V49.Pointer (fldOffset=0x0)" P-INDEP
; V87 tmp76 [V87,T28] ( 4, 2 ) int -> x0 single-def "field V49.Length (fldOffset=0x8)" P-INDEP
;* V88 tmp77 [V88 ] ( 0, 0 ) int -> zero-ref single-def "field V50._value (fldOffset=0x0)" P-INDEP
;* V89 tmp78 [V89 ] ( 0, 0 ) long -> zero-ref "field V54.Pointer (fldOffset=0x0)" P-DEP
;* V90 tmp79 [V90 ] ( 0, 0 ) int -> zero-ref "field V54.Length (fldOffset=0x8)" P-DEP
; V91 tmp80 [V91,T38] ( 2, 1 ) long -> x2 single-def "field V62.Pointer (fldOffset=0x0)" P-INDEP
; V92 tmp81 [V92,T39] ( 2, 1 ) int -> x0 single-def "field V62.Length (fldOffset=0x8)" P-INDEP
;* V93 tmp82 [V93 ] ( 0, 0 ) ubyte -> zero-ref "field V64._rawValue (fldOffset=0x0)" P-INDEP
; V94 tmp83 [V94,T40] ( 2, 1 ) ubyte -> x1 single-def "field V65._rawValue (fldOffset=0x0)" P-INDEP
;* V95 tmp84 [V95 ] ( 0, 0 ) long -> zero-ref single-def "V47.[000..008)"
;* V96 tmp85 [V96 ] ( 0, 0 ) int -> zero-ref single-def "V47.[008..012)"
;* V97 tmp86 [V97 ] ( 0, 0 ) long -> zero-ref "V47.[016..024)"
;* V98 tmp87 [V98 ] ( 0, 0 ) long -> zero-ref "V47.[024..032)"
; V99 cse0 [V99,T15] ( 2, 4.21) byref -> x19 hoist multi-def "CSE #12: moderate"
; V100 cse1 [V100,T16] ( 2, 4.21) long -> x23 hoist multi-def "CSE #13: moderate"
;
; Lcl frame size = 72
G_M24289_IG01:
stp fp, lr, [sp, #-0x90]!
stp x19, x20, [sp, #0x58]
stp x21, x22, [sp, #0x68]
stp x23, x24, [sp, #0x78]
str x25, [sp, #0x88]
mov fp, sp
add x9, fp, #16
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
str xzr, [x9, #0x40]
mov x19, x0
;; size=48 bbWeight=1 PerfScore 10.00
G_M24289_IG02:
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Ecma.EcmaMethodBody:GetEcmaModule():System.Reflection.TypeLoading.Ecma.EcmaModule:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldrsb wzr, [x0]
add x20, x0, #112
ldr x0, [x20]
movz x1, #0xD1FFAB1E // code for System.Reflection.MetadataLoadContext:DisposeCheck():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x20, [x20, #0x10]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x21, x0
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Ecma.EcmaMethodBody:GetEcmaModule():System.Reflection.TypeLoading.Ecma.EcmaModule:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
add x14, x21, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #16
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Ecma.EcmaMethodBody:GetEcmaModule():System.Reflection.TypeLoading.Ecma.EcmaModule:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x0, #0x40]
ldr x0, [x0, #0x28]
movz x1, #0xD1FFAB1E // code for System.Reflection.MetadataLoadContext:DisposeCheck():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x19, #0x18]
ldr w22, [x0, #0x20]
cbz w22, G_M24289_IG20
;; size=200 bbWeight=1 PerfScore 64.50
G_M24289_IG03:
ldrsb wzr, [x20]
ldr x0, [x19, #0x10]
movz x11, #0xD1FFAB1E // code for System.Reflection.TypeLoading.IRoMethodBase:get_TypeContext():System.Reflection.TypeLoading.TypeContext:this
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
ldr xip0, [x11]
blr xip0
stp x21, x20, [fp, #0x38] // [V27 tmp16], [V27 tmp16+0x08]
stp x0, x1, [fp, #0x48] // [V27 tmp16+0x10], [V27 tmp16+0x18]
add x2, x20, #0xD1FFAB1E
sub w0, w22, #1
ldr w1, [x2, #0x0C]
mul w0, w0, w1
add x1, x2, #16
ldr w3, [x2, #0x08]
add w0, w0, w3
ldrb w2, [x2, #0x04]
cbnz w2, G_M24289_IG04
mov w2, w0
add x2, x2, #4
ldrsw x3, [x1, #0x08]
cmp x2, x3
bhi G_M24289_IG24
ldr x1, [x1]
sxtw x0, w0
ldr w19, [x1, x0]
tst w19, #0xD1FFAB1E
bne G_M24289_IG22
b G_M24289_IG05
;; size=116 bbWeight=0.50 PerfScore 21.00
G_M24289_IG04:
mov w2, w0
add x2, x2, #2
ldrsw x3, [x1, #0x08]
cmp x2, x3
bhi G_M24289_IG24
ldr x2, [x1]
sxtw x0, w0
ldrh w19, [x2, x0]
;; size=32 bbWeight=0.50 PerfScore 6.00
G_M24289_IG05:
sxtw w1, w19
add x20, x20, #136
tst w1, #0xD1FFAB1E
bne G_M24289_IG08
add x0, x20, #8
add x2, fp, #16 // [V57 tmp46]
mov w1, w19
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
movn w1, #0xD1FFAB1E LSL #16
cmp w0, w1
beq G_M24289_IG06
ldr w1, [fp, #0x10] // [V57 tmp46]
add w1, w19, w1
b G_M24289_IG07
;; size=72 bbWeight=0.50 PerfScore 7.50
G_M24289_IG06:
mov w1, wzr
mov w0, wzr
;; size=8 bbWeight=0.50 PerfScore 0.50
G_M24289_IG07:
add x2, x20, #8
mov w3, w1
add x3, x3, w0, UXTW
ldrsw x4, [x2, #0x08]
cmp x3, x4
bhi G_M24289_IG24
ldr x2, [x2]
add x2, x2, w1, SXTW
b G_M24289_IG09
;; size=36 bbWeight=0.50 PerfScore 5.75
G_M24289_IG08:
mov x0, x20
movz x2, #0xD1FFAB1E // code for System.Reflection.Metadata.Ecma335.BlobHeap:GetVirtualHandleMemoryBlock(System.Reflection.Metadata.BlobHandle):System.Reflection.Internal.MemoryBlock:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x2, x0
mov w0, w1
;; size=32 bbWeight=0.50 PerfScore 3.50
G_M24289_IG09:
str x2, [fp, #0x18] // [V30 tmp19]
str w0, [fp, #0x20] // [V30 tmp19+0x08]
add x1, x2, w0, SXTW
stp x1, x2, [fp, #0x28] // [V30 tmp19+0x10], [V30 tmp19+0x18]
ldp x0, x1, [fp, #0x28] // [V30 tmp19+0x10], [V30 tmp19+0x18]
cmp x1, x0
beq G_M24289_IG24
add x0, x1, #1
str x0, [fp, #0x30] // [V30 tmp19+0x18]
ldrb w1, [x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w2, #7
movz x3, #0xD1FFAB1E // code for System.Reflection.Metadata.Ecma335.SignatureDecoder`2[System.__Canon,System.Reflection.TypeLoading.TypeContext]:CheckHeader(System.Reflection.Metadata.SignatureHeader,ubyte)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
add x0, fp, #56 // [V27 tmp16]
add x2, fp, #24 // [V30 tmp19]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Reflection.Metadata.Ecma335.SignatureDecoder`2[System.__Canon,System.Reflection.TypeLoading.TypeContext]:DecodeTypeSequence(byref):System.Collections.Immutable.ImmutableArray`1[System.__Canon]:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x19, x0
ldr w20, [x19, #0x08]
cbz w20, G_M24289_IG10
sxtw x1, w20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
mov x21, x0
b G_M24289_IG11
;; size=156 bbWeight=0.50 PerfScore 18.75
G_M24289_IG10:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #95
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Reflection.LocalVariableInfo]:Value
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x21, [x0]
- ;; size=32 bbWeight=0.50 PerfScore 3.50
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M24289_IG11:
mov w22, wzr
cmp w20, #0
ble G_M24289_IG17
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M24289_IG12:
ldr wzr, [x19, #0x08]
add x19, x19, #16
movz x23, #0xD1FFAB1E
movk x23, #0xD1FFAB1E LSL #16
movk x23, #0xD1FFAB1E LSL #32
;; size=20 bbWeight=0.25 PerfScore 1.25
G_M24289_IG13:
mov w24, wzr
ldr x25, [x19, w22, UXTW #3]
cbz x25, G_M24289_IG16
;; size=12 bbWeight=3.96 PerfScore 17.82
G_M24289_IG14:
ldr x0, [x25]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x0, x1
bne G_M24289_IG16
;; size=24 bbWeight=0.99 PerfScore 5.94
G_M24289_IG15:
mov w24, #1
mov x0, x25
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Helpers:SkipTypeWrappers(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoType
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x25, x0
;; size=32 bbWeight=1.98 PerfScore 13.86
G_M24289_IG16:
mov x0, x23
bl CORINFO_HELP_NEWSFAST
mov x2, x0
str w22, [x2, #0x10]
strb w24, [x2, #0x14]
add x14, x2, #8
mov x15, x25
bl CORINFO_HELP_ASSIGN_REF
sxtw x1, w22
mov x0, x21
movz x3, #0xD1FFAB1E // code for CORINFO_HELP_ARRADDR_ST
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
add w22, w22, #1
cmp w22, w20
blt G_M24289_IG13
;; size=72 bbWeight=3.96 PerfScore 57.42
G_M24289_IG17:
cbz x21, G_M24289_IG23
ldr w0, [x21, #0x08]
cbnz w0, G_M24289_IG18
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #94
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Collections.ObjectModel.ReadOnlyCollection`1[System.Reflection.LocalVariableInfo]:<Empty>k__BackingField
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
b G_M24289_IG19
- ;; size=48 bbWeight=0.50 PerfScore 6.50
+ ;; size=52 bbWeight=0.50 PerfScore 6.75
G_M24289_IG18:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
add x14, x0, #8
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
;; size=28 bbWeight=0.50 PerfScore 2.25
G_M24289_IG19:
ldr x25, [sp, #0x88]
ldp x23, x24, [sp, #0x78]
ldp x21, x22, [sp, #0x68]
ldp x19, x20, [sp, #0x58]
ldp fp, lr, [sp], #0x90
ret lr
;; size=24 bbWeight=0.50 PerfScore 3.50
G_M24289_IG20:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #95
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Reflection.LocalVariableInfo]:Value
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
- ;; size=32 bbWeight=0.50 PerfScore 3.50
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M24289_IG21:
ldr x25, [sp, #0x88]
ldp x23, x24, [sp, #0x78]
ldp x21, x22, [sp, #0x68]
ldp x19, x20, [sp, #0x58]
ldp fp, lr, [sp], #0x90
ret lr
;; size=24 bbWeight=0.50 PerfScore 3.50
G_M24289_IG22:
movz x0, #0xD1FFAB1E // code for System.Reflection.Throw:ReferenceOverflow()
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_M24289_IG23:
mov w0, #2
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_M24289_IG24:
movz x0, #0xD1FFAB1E // code for System.Reflection.Throw:OutOfBounds()
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 1136, prolog size 48, PerfScore 257.54, instruction count 284, allocated bytes for code 1136 (MethodHash=7b53a11e) for method System.Reflection.TypeLoading.Ecma.EcmaMethodBody:get_LocalVariables():System.Collections.Generic.IList`1[System.Reflection.LocalVariableInfo]:this (FullOpts)
+; Total bytes of code 1148, prolog size 48, PerfScore 258.29, instruction count 287, allocated bytes for code 1148 (MethodHash=7b53a11e) for method System.Reflection.TypeLoading.Ecma.EcmaMethodBody:get_LocalVariables():System.Collections.Generic.IList`1[System.Reflection.LocalVariableInfo]:this (FullOpts)
12 (1.17 % of base) - System.Reflection.TypeLoading.Ecma.EcmaModule:GetFields(int):System.Reflection.FieldInfo[]:this
; Assembly listing for method System.Reflection.TypeLoading.Ecma.EcmaModule:GetFields(int):System.Reflection.FieldInfo[]: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; 25 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T04] ( 7, 5 ) ref -> x19 this class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaModule>
; V01 arg1 [V01,T09] ( 3, 3 ) int -> x20 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.TypeDefinitionHandle>
;* V04 tmp2 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
; V05 tmp3 [V05,T06] ( 3, 6 ) ref -> x1 class-hnd exact single-def "impAppendStmt" <System.Reflection.TypeLoading.Ecma.MetadataTable`2[System.Reflection.TypeLoading.Ecma.EcmaDefinitionType,System.Reflection.TypeLoading.Ecma.EcmaModule]>
;* V06 tmp4 [V06 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.EntityHandle>
; V07 tmp5 [V07,T16] ( 2, 4 ) ref -> x1 class-hnd exact single-def "dup spill" <System.Reflection.TypeLoading.Ecma.MetadataTable`2[System.Reflection.TypeLoading.Ecma.EcmaDefinitionType,System.Reflection.TypeLoading.Ecma.EcmaModule]>
; V08 tmp6 [V08,T11] ( 6, 4.50) ref -> x1
; V09 tmp7 [V09,T20] ( 3, 3 ) byref -> x21 single-def "impAppendStmt"
; V10 tmp8 [V10,T32] ( 2, 2 ) ref -> x1 class-hnd exact single-def "dup spill" <System.Reflection.TypeLoading.Ecma.MetadataTable`2[System.Reflection.TypeLoading.Ecma.EcmaDefinitionType,System.Reflection.TypeLoading.Ecma.EcmaModule]>
; V11 tmp9 [V11,T13] ( 4, 4 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.Ecma.MetadataTable`2[System.Reflection.TypeLoading.Ecma.EcmaDefinitionType,System.Reflection.TypeLoading.Ecma.EcmaModule]>
; V12 tmp10 [V12,T21] ( 3, 3 ) byref -> x22 single-def "Inlining Arg"
; V13 tmp11 [V13,T22] ( 3, 3 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
; V14 tmp12 [V14,T25] ( 3, 3 ) int -> x1 "Inlining Arg"
;* V15 tmp13 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.EntityHandle>
;* V16 tmp14 [V16 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V17 tmp15 [V17,T12] ( 6, 4 ) ref -> x19 class-hnd "Inline return value spill temp" <System.Reflection.TypeLoading.Ecma.EcmaDefinitionType>
;* V18 tmp16 [V18,T40] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V19 tmp17 [V19,T18] ( 4, 3.50) ref -> x21 class-hnd single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.Ecma.EcmaDefinitionType[]>
; V20 tmp18 [V20,T28] ( 3, 2.50) ref -> x22 class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.Ecma.EcmaDefinitionType>
; V21 tmp19 [V21,T15] ( 3, 4 ) ref -> x3 class-hnd exact single-def "Inlining Arg" <System.Func`3[System.Reflection.Metadata.EntityHandle,System.Reflection.TypeLoading.Ecma.EcmaModule,System.Reflection.TypeLoading.Ecma.EcmaDefinitionType]>
; V22 tmp20 [V22,T38] ( 3, 1.50) ref -> x22 class-hnd single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.Ecma.EcmaDefinitionType>
;* V23 tmp21 [V23 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Reflection.TypeLoading.Ecma.EcmaDefinitionType>
; V24 tmp22 [V24,T23] ( 3, 3 ) byref -> x0 single-def "impAppendStmt"
; V25 tmp23 [V25,T33] ( 2, 2 ) ref -> x0 class-hnd exact single-def "dup spill" <System.Reflection.TypeLoading.Ecma.EcmaDefinitionType>
; V26 tmp24 [V26,T27] ( 5, 2.50) ref -> x19
;* V27 tmp25 [V27,T41] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V28 tmp26 [V28 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.EntityHandle>
;* V29 tmp27 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Reflection.TypeLoading.Ecma.EcmaDefinitionType>
; V30 tmp28 [V30 ] ( 12, 17 ) struct (16) [fp+0x18] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.FieldInfo]>
;* V31 tmp29 [V31 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.FieldInfo]>
; V32 tmp30 [V32,T05] ( 4, 7 ) int -> x20 "Inlining Arg"
;* V33 tmp31 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V34 tmp32 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V35 tmp33 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V36 tmp34 [V36,T34] ( 2, 2 ) ref -> x0 class-hnd single-def "Inline stloc first use temp" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.Reflection.FieldInfo]>
;* V37 tmp35 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.FieldInfo]>
; V38 tmp36 [V38,T31] ( 3, 2 ) ubyte -> x21 "Inline return value spill temp"
;* V39 tmp37 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V40 tmp38 [V40,T17] ( 2, 4 ) ref -> x0 class-hnd exact single-def "dup spill" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V41 tmp39 [V41,T19] ( 4, 3.50) ref -> x0
; V42 tmp40 [V42,T14] ( 4, 4 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
;* V43 tmp41 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V44 tmp42 [V44,T30] ( 3, 2 ) ref -> x19 class-hnd "Inline return value spill temp" <System.Reflection.FieldInfo[]>
; V45 tmp43 [V45,T29] ( 3, 2.50) int -> x0 "Inline stloc first use temp"
; V46 tmp44 [V46,T08] ( 4, 5 ) ref -> x19 class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.FieldInfo[]>
;* V47 tmp45 [V47,T45] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.FieldInfo[]>
; V48 tmp46 [V48,T10] ( 3, 5 ) int -> x21 "Inline stloc first use temp"
; V49 tmp47 [V49,T00] ( 6, 18.50) int -> x22 "Inline stloc first use temp"
; V50 tmp48 [V50,T02] ( 3, 9 ) int -> registers "Inlining Arg"
; V51 tmp49 [V51,T01] ( 4, 16 ) int -> x20 "impSpillLclRefs"
; V52 tmp50 [V52,T03] ( 2, 8 ) ref -> x15 class-hnd "Strict ordering of exceptions for Array store" <System.Reflection.FieldInfo>
; V53 tmp51 [V53,T39] ( 3, 1.50) int -> x21 "Inline return value spill temp"
; V54 tmp52 [V54,T35] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
;* V55 tmp53 [V55 ] ( 0, 0 ) int -> zero-ref "field V03._rowId (fldOffset=0x0)" P-INDEP
;* V56 tmp54 [V56 ] ( 0, 0 ) int -> zero-ref "field V04._rowId (fldOffset=0x0)" P-INDEP
;* V57 tmp55 [V57,T42] ( 0, 0 ) int -> zero-ref "field V06._vToken (fldOffset=0x0)" P-INDEP
;* V58 tmp56 [V58,T43] ( 0, 0 ) int -> zero-ref "field V15._vToken (fldOffset=0x0)" P-INDEP
;* V59 tmp57 [V59 ] ( 0, 0 ) int -> zero-ref "field V28._vToken (fldOffset=0x0)" P-INDEP
; V60 tmp58 [V60 ] ( 8, 10.50) ref -> [fp+0x18] do-not-enreg[X] addr-exposed "field V30._queriedMembers (fldOffset=0x0)" P-DEP
; V61 tmp59 [V61 ] ( 5, 7.50) int -> [fp+0x20] do-not-enreg[X] addr-exposed "field V30._bindingAttr (fldOffset=0x8)" P-DEP
; V62 tmp60 [V62 ] ( 3, 3 ) int -> [fp+0x24] do-not-enreg[X] addr-exposed "field V30._lazyCount (fldOffset=0xc)" P-DEP
;* V63 tmp61 [V63 ] ( 0, 0 ) ref -> zero-ref "field V31._queriedMembers (fldOffset=0x0)" P-INDEP
;* V64 tmp62 [V64 ] ( 0, 0 ) int -> zero-ref "field V31._bindingAttr (fldOffset=0x8)" P-INDEP
;* V65 tmp63 [V65 ] ( 0, 0 ) int -> zero-ref "field V31._lazyCount (fldOffset=0xc)" P-INDEP
; V66 tmp64 [V66,T36] ( 2, 2 ) ref -> x0 single-def "field V37._queriedMembers (fldOffset=0x0)" P-INDEP
; V67 tmp65 [V67,T37] ( 2, 2 ) int -> x20 "field V37._bindingAttr (fldOffset=0x8)" P-INDEP
;* V68 tmp66 [V68,T44] ( 0, 0 ) int -> zero-ref "field V37._lazyCount (fldOffset=0xc)" P-INDEP
; V69 tmp67 [V69,T24] ( 3, 3 ) ref -> x1 single-def "arr expr"
; V70 tmp68 [V70,T07] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
;* V71 cse0 [V71,T26] ( 0, 0 ) int -> zero-ref "CSE #03: moderate"
;
; Lcl frame size = 24
G_M34493_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x28]
stp x21, x22, [sp, #0x38]
str x23, [sp, #0x48]
mov fp, sp
str xzr, [fp, #0x18] // [V30 tmp28]
mov x19, x0
mov w20, w1
;; size=32 bbWeight=1 PerfScore 6.50
G_M34493_IG02:
add x0, x19, #72
ldapr x1, [x0]
cbnz x1, G_M34493_IG05
;; size=12 bbWeight=1 PerfScore 4.50
G_M34493_IG03:
add x21, x19, #72
add x22, x19, #112
ldr x0, [x22]
movz x1, #0xD1FFAB1E // code for System.Reflection.MetadataLoadContext:DisposeCheck():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x22, [x22, #0x10]
cbz x22, G_M34493_IG27
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M34493_IG24
;; size=64 bbWeight=0.50 PerfScore 11.00
G_M34493_IG04:
movz x0, #0xD1FFAB1E // data for System.Reflection.Metadata.Ecma335.MetadataTokens:TableCount
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
cmp w0, #2
ble G_M34493_IG26
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
ldr x1, [x22, #0x30]
ldr w0, [x1, #0x08]
cmp w0, #2
bls G_M34493_IG28
ldr w1, [x1, #0x18]
str w1, [x23, #0x10]
sxtw x1, w1
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
cbz x21, G_M34493_IG25
mov x0, x21
mov x1, x23
mov x2, xzr
bl System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
mov x1, x0
cbnz x1, G_M34493_IG05
add x1, x19, #72
ldapr x1, [x1]
;; size=136 bbWeight=0.50 PerfScore 17.00
G_M34493_IG05:
movz x2, #0xD1FFAB1E
+ movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x3, [x2]
ldrsb wzr, [x1]
ldr x21, [x1, #0x08]
ldr w1, [x21, #0x08]
cmp w1, #0
bls G_M34493_IG28
add x1, x21, #16
ldapr x22, [x1]
cbnz x22, G_M34493_IG07
- ;; size=44 bbWeight=1 PerfScore 19.00
+ ;; size=48 bbWeight=1 PerfScore 19.50
G_M34493_IG06:
movz w1, #1
movk w1, #0xD1FFAB1E LSL #16
mov x2, x19
ldr x0, [x3, #0x08]
ldr x3, [x3, #0x18]
blr x3
mov x22, x0
add x0, x21, #16
cbz x0, G_M34493_IG25
mov x1, x22
mov x2, xzr
bl System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
mov x19, x0
cmp x19, #0
csel x19, x19, x22, ne
b G_M34493_IG08
;; size=64 bbWeight=0.50 PerfScore 7.50
G_M34493_IG07:
mov x19, x22
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M34493_IG08:
ldrsb wzr, [x19]
stp xzr, xzr, [fp, #0x18]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #2
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Reflection.Runtime.BindingFlagSupport.MemberPolicies`1[System.Reflection.FieldInfo]:Default
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, w20
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2]
blr x2
sxtw w20, w0
mov w0, #72
and w0, w20, w0
cmp w0, #72
beq G_M34493_IG10
- ;; size=80 bbWeight=1 PerfScore 24.50
+ ;; size=84 bbWeight=1 PerfScore 25.00
G_M34493_IG09:
and w0, w20, #6
cmp w0, #4
beq G_M34493_IG10
mov w21, #1
b G_M34493_IG11
;; size=20 bbWeight=0.50 PerfScore 1.75
G_M34493_IG10:
mov w21, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M34493_IG11:
add x0, x19, #8
ldapr x0, [x0]
cbnz x0, G_M34493_IG13
;; size=12 bbWeight=1 PerfScore 4.50
G_M34493_IG12:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x22, x0
mov x1, x19
movz x2, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:.ctor(System.Reflection.TypeLoading.RoType):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x19, #8
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x0, x22
;; size=60 bbWeight=0.50 PerfScore 5.75
G_M34493_IG13:
mov w2, w21
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:GetQueriedMembers[System.__Canon](ubyte):System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
ldr wzr, [x0]
blr x3
str x0, [fp, #0x18] // [V60 tmp58]
stp w20, wzr, [fp, #0x20] // [V61 tmp59], [V62 tmp60]
add x0, fp, #24 // [V30 tmp28]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz w0, G_M34493_IG21
;; size=88 bbWeight=1 PerfScore 21.00
G_M34493_IG14:
sxtw x1, w0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
mov x19, x0
mov w20, wzr
ldr x0, [fp, #0x18] // [V60 tmp58]
cbz x0, G_M34493_IG20
ldr w0, [fp, #0x20] // [V61 tmp59]
tbz w0, #1, G_M34493_IG15
ldr x0, [fp, #0x18] // [V60 tmp58]
ldr w21, [x0, #0x24]
b G_M34493_IG16
;; size=56 bbWeight=0.50 PerfScore 8.00
G_M34493_IG15:
ldr x0, [fp, #0x18] // [V60 tmp58]
movz x1, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:get_TotalCount():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
sxtw w21, w0
;; size=32 bbWeight=0.50 PerfScore 5.50
G_M34493_IG16:
mov w22, wzr
cmp w21, #0
ble G_M34493_IG20
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M34493_IG17:
ldr x0, [fp, #0x18] // [V60 tmp58]
mov w1, w22
ldr w2, [fp, #0x20] // [V61 tmp59]
movz x3, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:Matches(int,int):ubyte:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
ldr wzr, [x0]
blr x3
cbz w0, G_M34493_IG19
;; size=40 bbWeight=4 PerfScore 56.00
G_M34493_IG18:
add w0, w20, #1
sxtw w23, w0
ldr x0, [fp, #0x18] // [V60 tmp58]
mov w1, w22
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:get_Item(int):System.__Canon:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
mov x15, x0
ldr w14, [x19, #0x08]
cmp w20, w14
bhs G_M34493_IG28
add x14, x19, #16
add x14, x14, x20, LSL #3
bl CORINFO_HELP_ASSIGN_REF
mov w20, w23
;; size=72 bbWeight=2 PerfScore 40.00
G_M34493_IG19:
add w22, w22, #1
cmp w22, w21
blt G_M34493_IG17
;; size=12 bbWeight=4 PerfScore 8.00
G_M34493_IG20:
b G_M34493_IG22
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M34493_IG21:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #87
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Reflection.FieldInfo]:Value
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x19, [x0]
- ;; size=32 bbWeight=0.50 PerfScore 3.50
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M34493_IG22:
mov x0, x19
;; size=4 bbWeight=1 PerfScore 0.50
G_M34493_IG23:
ldr x23, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M34493_IG24:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M34493_IG04
;; size=24 bbWeight=0 PerfScore 0.00
G_M34493_IG25:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowNullReferenceException()
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_M34493_IG26:
movz x0, #0xD1FFAB1E // code for System.Reflection.Throw:TableIndexOutOfRange()
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_M34493_IG27:
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
movz x1, #0xD1FFAB1E // code for System.Reflection.Throw:ArgumentNull(System.String)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=44 bbWeight=0 PerfScore 0.00
G_M34493_IG28:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1028, prolog size 24, PerfScore 252.50, instruction count 257, allocated bytes for code 1028 (MethodHash=745c7942) for method System.Reflection.TypeLoading.Ecma.EcmaModule:GetFields(int):System.Reflection.FieldInfo[]:this (FullOpts)
+; Total bytes of code 1040, prolog size 24, PerfScore 253.75, instruction count 260, allocated bytes for code 1040 (MethodHash=745c7942) for method System.Reflection.TypeLoading.Ecma.EcmaModule:GetFields(int):System.Reflection.FieldInfo[]:this (FullOpts)
12 (1.19 % of base) - System.Reflection.TypeLoading.Ecma.EcmaModule:GetMethods(int):System.Reflection.MethodInfo[]:this
; Assembly listing for method System.Reflection.TypeLoading.Ecma.EcmaModule:GetMethods(int):System.Reflection.MethodInfo[]: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; 25 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T04] ( 7, 5 ) ref -> x19 this class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaModule>
; V01 arg1 [V01,T09] ( 3, 3 ) int -> x20 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.TypeDefinitionHandle>
;* V04 tmp2 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
; V05 tmp3 [V05,T06] ( 3, 6 ) ref -> x1 class-hnd exact single-def "impAppendStmt" <System.Reflection.TypeLoading.Ecma.MetadataTable`2[System.Reflection.TypeLoading.Ecma.EcmaDefinitionType,System.Reflection.TypeLoading.Ecma.EcmaModule]>
;* V06 tmp4 [V06 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.EntityHandle>
; V07 tmp5 [V07,T16] ( 2, 4 ) ref -> x1 class-hnd exact single-def "dup spill" <System.Reflection.TypeLoading.Ecma.MetadataTable`2[System.Reflection.TypeLoading.Ecma.EcmaDefinitionType,System.Reflection.TypeLoading.Ecma.EcmaModule]>
; V08 tmp6 [V08,T11] ( 6, 4.50) ref -> x1
; V09 tmp7 [V09,T20] ( 3, 3 ) byref -> x21 single-def "impAppendStmt"
; V10 tmp8 [V10,T32] ( 2, 2 ) ref -> x1 class-hnd exact single-def "dup spill" <System.Reflection.TypeLoading.Ecma.MetadataTable`2[System.Reflection.TypeLoading.Ecma.EcmaDefinitionType,System.Reflection.TypeLoading.Ecma.EcmaModule]>
; V11 tmp9 [V11,T13] ( 4, 4 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.Ecma.MetadataTable`2[System.Reflection.TypeLoading.Ecma.EcmaDefinitionType,System.Reflection.TypeLoading.Ecma.EcmaModule]>
; V12 tmp10 [V12,T21] ( 3, 3 ) byref -> x22 single-def "Inlining Arg"
; V13 tmp11 [V13,T22] ( 3, 3 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
; V14 tmp12 [V14,T25] ( 3, 3 ) int -> x1 "Inlining Arg"
;* V15 tmp13 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.EntityHandle>
;* V16 tmp14 [V16 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V17 tmp15 [V17,T12] ( 6, 4 ) ref -> x19 class-hnd "Inline return value spill temp" <System.Reflection.TypeLoading.Ecma.EcmaDefinitionType>
;* V18 tmp16 [V18,T40] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V19 tmp17 [V19,T18] ( 4, 3.50) ref -> x21 class-hnd single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.Ecma.EcmaDefinitionType[]>
; V20 tmp18 [V20,T28] ( 3, 2.50) ref -> x22 class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.Ecma.EcmaDefinitionType>
; V21 tmp19 [V21,T15] ( 3, 4 ) ref -> x3 class-hnd exact single-def "Inlining Arg" <System.Func`3[System.Reflection.Metadata.EntityHandle,System.Reflection.TypeLoading.Ecma.EcmaModule,System.Reflection.TypeLoading.Ecma.EcmaDefinitionType]>
; V22 tmp20 [V22,T38] ( 3, 1.50) ref -> x22 class-hnd single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.Ecma.EcmaDefinitionType>
;* V23 tmp21 [V23 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Reflection.TypeLoading.Ecma.EcmaDefinitionType>
; V24 tmp22 [V24,T23] ( 3, 3 ) byref -> x0 single-def "impAppendStmt"
; V25 tmp23 [V25,T33] ( 2, 2 ) ref -> x0 class-hnd exact single-def "dup spill" <System.Reflection.TypeLoading.Ecma.EcmaDefinitionType>
; V26 tmp24 [V26,T27] ( 5, 2.50) ref -> x19
;* V27 tmp25 [V27,T41] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V28 tmp26 [V28 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.EntityHandle>
;* V29 tmp27 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Reflection.TypeLoading.Ecma.EcmaDefinitionType>
; V30 tmp28 [V30 ] ( 12, 17 ) struct (16) [fp+0x18] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.MethodInfo]>
;* V31 tmp29 [V31 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.MethodInfo]>
; V32 tmp30 [V32,T05] ( 4, 7 ) int -> x20 "Inlining Arg"
;* V33 tmp31 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V34 tmp32 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V35 tmp33 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V36 tmp34 [V36,T34] ( 2, 2 ) ref -> x0 class-hnd single-def "Inline stloc first use temp" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.Reflection.MethodInfo]>
;* V37 tmp35 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.MethodInfo]>
; V38 tmp36 [V38,T31] ( 3, 2 ) ubyte -> x21 "Inline return value spill temp"
;* V39 tmp37 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V40 tmp38 [V40,T17] ( 2, 4 ) ref -> x0 class-hnd exact single-def "dup spill" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V41 tmp39 [V41,T19] ( 4, 3.50) ref -> x0
; V42 tmp40 [V42,T14] ( 4, 4 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
;* V43 tmp41 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V44 tmp42 [V44,T30] ( 3, 2 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Reflection.MethodInfo[]>
; V45 tmp43 [V45,T29] ( 3, 2.50) int -> x0 "Inline stloc first use temp"
; V46 tmp44 [V46,T08] ( 4, 5 ) ref -> x19 class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.MethodInfo[]>
;* V47 tmp45 [V47,T45] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.MethodInfo[]>
; V48 tmp46 [V48,T10] ( 3, 5 ) int -> x21 "Inline stloc first use temp"
; V49 tmp47 [V49,T00] ( 6, 18.50) int -> x22 "Inline stloc first use temp"
; V50 tmp48 [V50,T02] ( 3, 9 ) int -> registers "Inlining Arg"
; V51 tmp49 [V51,T01] ( 4, 16 ) int -> x20 "impSpillLclRefs"
; V52 tmp50 [V52,T03] ( 2, 8 ) ref -> x15 class-hnd "Strict ordering of exceptions for Array store" <System.Reflection.MethodInfo>
; V53 tmp51 [V53,T39] ( 3, 1.50) int -> x21 "Inline return value spill temp"
; V54 tmp52 [V54,T35] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
;* V55 tmp53 [V55 ] ( 0, 0 ) int -> zero-ref "field V03._rowId (fldOffset=0x0)" P-INDEP
;* V56 tmp54 [V56 ] ( 0, 0 ) int -> zero-ref "field V04._rowId (fldOffset=0x0)" P-INDEP
;* V57 tmp55 [V57,T42] ( 0, 0 ) int -> zero-ref "field V06._vToken (fldOffset=0x0)" P-INDEP
;* V58 tmp56 [V58,T43] ( 0, 0 ) int -> zero-ref "field V15._vToken (fldOffset=0x0)" P-INDEP
;* V59 tmp57 [V59 ] ( 0, 0 ) int -> zero-ref "field V28._vToken (fldOffset=0x0)" P-INDEP
; V60 tmp58 [V60 ] ( 8, 10.50) ref -> [fp+0x18] do-not-enreg[X] addr-exposed "field V30._queriedMembers (fldOffset=0x0)" P-DEP
; V61 tmp59 [V61 ] ( 5, 7.50) int -> [fp+0x20] do-not-enreg[X] addr-exposed "field V30._bindingAttr (fldOffset=0x8)" P-DEP
; V62 tmp60 [V62 ] ( 3, 3 ) int -> [fp+0x24] do-not-enreg[X] addr-exposed "field V30._lazyCount (fldOffset=0xc)" P-DEP
;* V63 tmp61 [V63 ] ( 0, 0 ) ref -> zero-ref "field V31._queriedMembers (fldOffset=0x0)" P-INDEP
;* V64 tmp62 [V64 ] ( 0, 0 ) int -> zero-ref "field V31._bindingAttr (fldOffset=0x8)" P-INDEP
;* V65 tmp63 [V65 ] ( 0, 0 ) int -> zero-ref "field V31._lazyCount (fldOffset=0xc)" P-INDEP
; V66 tmp64 [V66,T36] ( 2, 2 ) ref -> x0 single-def "field V37._queriedMembers (fldOffset=0x0)" P-INDEP
; V67 tmp65 [V67,T37] ( 2, 2 ) int -> x20 "field V37._bindingAttr (fldOffset=0x8)" P-INDEP
;* V68 tmp66 [V68,T44] ( 0, 0 ) int -> zero-ref "field V37._lazyCount (fldOffset=0xc)" P-INDEP
; V69 tmp67 [V69,T24] ( 3, 3 ) ref -> x1 single-def "arr expr"
; V70 tmp68 [V70,T07] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
;* V71 cse0 [V71,T26] ( 0, 0 ) int -> zero-ref "CSE #03: moderate"
;
; Lcl frame size = 24
G_M25661_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x28]
stp x21, x22, [sp, #0x38]
str x23, [sp, #0x48]
mov fp, sp
str xzr, [fp, #0x18] // [V30 tmp28]
mov x19, x0
mov w20, w1
;; size=32 bbWeight=1 PerfScore 6.50
G_M25661_IG02:
add x0, x19, #72
ldapr x1, [x0]
cbnz x1, G_M25661_IG05
;; size=12 bbWeight=1 PerfScore 4.50
G_M25661_IG03:
add x21, x19, #72
add x22, x19, #112
ldr x0, [x22]
movz x1, #0xD1FFAB1E // code for System.Reflection.MetadataLoadContext:DisposeCheck():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x22, [x22, #0x10]
cbz x22, G_M25661_IG26
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M25661_IG23
;; size=64 bbWeight=0.50 PerfScore 11.00
G_M25661_IG04:
movz x0, #0xD1FFAB1E // data for System.Reflection.Metadata.Ecma335.MetadataTokens:TableCount
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
cmp w0, #2
ble G_M25661_IG25
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
ldr x1, [x22, #0x30]
ldr w0, [x1, #0x08]
cmp w0, #2
bls G_M25661_IG27
ldr w1, [x1, #0x18]
str w1, [x23, #0x10]
sxtw x1, w1
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
cbz x21, G_M25661_IG24
mov x0, x21
mov x1, x23
mov x2, xzr
bl System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
mov x1, x0
cbnz x1, G_M25661_IG05
add x1, x19, #72
ldapr x1, [x1]
;; size=136 bbWeight=0.50 PerfScore 17.00
G_M25661_IG05:
movz x2, #0xD1FFAB1E
+ movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x3, [x2]
ldrsb wzr, [x1]
ldr x21, [x1, #0x08]
ldr w1, [x21, #0x08]
cmp w1, #0
bls G_M25661_IG27
add x1, x21, #16
ldapr x22, [x1]
cbnz x22, G_M25661_IG07
- ;; size=44 bbWeight=1 PerfScore 19.00
+ ;; size=48 bbWeight=1 PerfScore 19.50
G_M25661_IG06:
movz w1, #1
movk w1, #0xD1FFAB1E LSL #16
mov x2, x19
ldr x0, [x3, #0x08]
ldr x3, [x3, #0x18]
blr x3
mov x22, x0
add x0, x21, #16
cbz x0, G_M25661_IG24
mov x1, x22
mov x2, xzr
bl System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
mov x19, x0
cmp x19, #0
csel x19, x19, x22, ne
b G_M25661_IG08
;; size=64 bbWeight=0.50 PerfScore 7.50
G_M25661_IG07:
mov x19, x22
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M25661_IG08:
ldrsb wzr, [x19]
stp xzr, xzr, [fp, #0x18]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #3
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Reflection.Runtime.BindingFlagSupport.MemberPolicies`1[System.Reflection.MethodInfo]:Default
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, w20
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2]
blr x2
sxtw w20, w0
mov w0, #72
and w0, w20, w0
cmp w0, #72
beq G_M25661_IG10
- ;; size=80 bbWeight=1 PerfScore 24.50
+ ;; size=84 bbWeight=1 PerfScore 25.00
G_M25661_IG09:
and w0, w20, #6
cmp w0, #4
beq G_M25661_IG10
mov w21, #1
b G_M25661_IG11
;; size=20 bbWeight=0.50 PerfScore 1.75
G_M25661_IG10:
mov w21, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M25661_IG11:
add x0, x19, #8
ldapr x0, [x0]
cbnz x0, G_M25661_IG13
;; size=12 bbWeight=1 PerfScore 4.50
G_M25661_IG12:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x22, x0
mov x1, x19
movz x2, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:.ctor(System.Reflection.TypeLoading.RoType):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x19, #8
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x0, x22
;; size=60 bbWeight=0.50 PerfScore 5.75
G_M25661_IG13:
mov w2, w21
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:GetQueriedMembers[System.__Canon](ubyte):System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
ldr wzr, [x0]
blr x3
str x0, [fp, #0x18] // [V60 tmp58]
stp w20, wzr, [fp, #0x20] // [V61 tmp59], [V62 tmp60]
add x0, fp, #24 // [V30 tmp28]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:get_Count():int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz w0, G_M25661_IG21
;; size=88 bbWeight=1 PerfScore 21.00
G_M25661_IG14:
sxtw x1, w0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
mov x19, x0
mov w20, wzr
ldr x0, [fp, #0x18] // [V60 tmp58]
cbz x0, G_M25661_IG20
ldr w0, [fp, #0x20] // [V61 tmp59]
tbz w0, #1, G_M25661_IG15
ldr x0, [fp, #0x18] // [V60 tmp58]
ldr w21, [x0, #0x24]
b G_M25661_IG16
;; size=56 bbWeight=0.50 PerfScore 8.00
G_M25661_IG15:
ldr x0, [fp, #0x18] // [V60 tmp58]
movz x1, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:get_TotalCount():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
sxtw w21, w0
;; size=32 bbWeight=0.50 PerfScore 5.50
G_M25661_IG16:
mov w22, wzr
cmp w21, #0
ble G_M25661_IG20
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M25661_IG17:
ldr x0, [fp, #0x18] // [V60 tmp58]
mov w1, w22
ldr w2, [fp, #0x20] // [V61 tmp59]
movz x3, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:Matches(int,int):ubyte:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
ldr wzr, [x0]
blr x3
cbz w0, G_M25661_IG19
;; size=40 bbWeight=4 PerfScore 56.00
G_M25661_IG18:
add w0, w20, #1
sxtw w23, w0
ldr x0, [fp, #0x18] // [V60 tmp58]
mov w1, w22
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:get_Item(int):System.__Canon:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
mov x15, x0
ldr w14, [x19, #0x08]
cmp w20, w14
bhs G_M25661_IG27
add x14, x19, #16
add x14, x14, x20, LSL #3
bl CORINFO_HELP_ASSIGN_REF
mov w20, w23
;; size=72 bbWeight=2 PerfScore 40.00
G_M25661_IG19:
add w22, w22, #1
cmp w22, w21
blt G_M25661_IG17
;; size=12 bbWeight=4 PerfScore 8.00
G_M25661_IG20:
mov x0, x19
b G_M25661_IG22
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M25661_IG21:
movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M25661_IG22:
ldr x23, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M25661_IG23:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M25661_IG04
;; size=24 bbWeight=0 PerfScore 0.00
G_M25661_IG24:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowNullReferenceException()
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_M25661_IG25:
movz x0, #0xD1FFAB1E // code for System.Reflection.Throw:TableIndexOutOfRange()
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_M25661_IG26:
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
movz x1, #0xD1FFAB1E // code for System.Reflection.Throw:ArgumentNull(System.String)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=44 bbWeight=0 PerfScore 0.00
G_M25661_IG27:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1008, prolog size 24, PerfScore 250.75, instruction count 252, allocated bytes for code 1008 (MethodHash=7d3b9bc2) for method System.Reflection.TypeLoading.Ecma.EcmaModule:GetMethods(int):System.Reflection.MethodInfo[]:this (FullOpts)
+; Total bytes of code 1020, prolog size 24, PerfScore 252.00, instruction count 255, allocated bytes for code 1020 (MethodHash=7d3b9bc2) for method System.Reflection.TypeLoading.Ecma.EcmaModule:GetMethods(int):System.Reflection.MethodInfo[]:this (FullOpts)
12 (0.42 % of base) - System.Reflection.TypeLoading.Ecma.EcmaModule:GetTypeCoreNoCache(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],byref):System.Reflection.TypeLoading.RoDefinitionType:this
; Assembly listing for method System.Reflection.TypeLoading.Ecma.EcmaModule:GetTypeCoreNoCache(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],byref):System.Reflection.TypeLoading.RoDefinitionType: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; 177 single block inlinees; 72 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T42] ( 10, 10 ) ref -> x21 this class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaModule>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
;* V02 arg2 [V02 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
; V03 arg3 [V03,T63] ( 7, 8 ) byref -> x24 single-def
; V04 loc0 [V04,T01] ( 11, 26 ) ref -> x25 class-hnd exact single-def <System.Reflection.Metadata.MetadataReader>
;* V05 loc1 [V05 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Reflection.Metadata.TypeDefinitionHandleCollection+Enumerator>
;* V06 loc2 [V06 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Reflection.Metadata.TypeDefinitionHandleCollection>
;* V07 loc3 [V07 ] ( 0, 0 ) struct ( 8) zero-ref <System.Reflection.Metadata.TypeDefinitionHandle>
; V08 loc4 [V08 ] ( 16, 32 ) struct (16) [fp+0x40] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.Metadata.TypeDefinition>
; V09 loc5 [V09,T157] ( 3, 1.50) ref -> x0 class-hnd <System.Reflection.TypeLoading.RoDefinitionType>
;* V10 loc6 [V10 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Reflection.Metadata.ExportedTypeHandleCollection+Enumerator>
;* V11 loc7 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Reflection.Metadata.ExportedTypeHandleCollection>
;* V12 loc8 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Reflection.Metadata.ExportedType>
;* V13 loc9 [V13 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Reflection.Metadata.EntityHandle>
;# V14 OutArgs [V14 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V15 tmp1 [V15 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.StringHandle>
;* V16 tmp2 [V16 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.StringHandle>
;* V17 tmp3 [V17 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.ExportedTypeHandle>
;* V18 tmp4 [V18 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.StringHandle>
;* V19 tmp5 [V19 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.StringHandle>
;* V20 tmp6 [V20 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.AssemblyReferenceHandle>
;* V21 tmp7 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <System.Reflection.TypeLoading.RoAssembly>
;* V22 tmp8 [V22 ] ( 0, 0 ) ref -> zero-ref
; V23 tmp9 [V23,T158] ( 3, 1.50) ref -> x0
; V24 tmp10 [V24,T30] ( 2, 16 ) ref -> x25 class-hnd exact single-def "impAppendStmt" <System.String>
;* V25 tmp11 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.String>
; V26 tmp12 [V26,T31] ( 2, 16 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.String>
; V27 tmp13 [V27,T04] ( 3, 24 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.TypeLoadException>
; V28 tmp14 [V28,T87] ( 3, 6 ) byref -> x25 single-def "Inlining Arg"
;* V29 tmp15 [V29 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandleCollection>
;* V30 tmp16 [V30 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V31 tmp17 [V31 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandleCollection+Enumerator>
;* V32 tmp18 [V32 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V33 tmp19 [V33 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V34 tmp20 [V34 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
;* V35 tmp21 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinition>
; V36 tmp22 [V36,T88] ( 3, 6 ) int -> x0 "Inline return value spill temp"
;* V37 tmp23 [V37 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
; V38 tmp24 [V38,T89] ( 3, 6 ) int -> x0 "Inline return value spill temp"
; V39 tmp25 [V39,T28] ( 4, 16 ) byref -> x0 "impAppendStmt"
;* V40 tmp26 [V40 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.TypeDefinitionHandle>
;* V41 tmp27 [V41 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V42 tmp28 [V42 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
;* V43 tmp29 [V43 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
; V44 tmp30 [V44,T116] ( 2, 4 ) int -> x1 "Inline stloc first use temp"
;* V45 tmp31 [V45 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V46 tmp32 [V46,T43] ( 3, 12 ) byref -> x2 "Inlining Arg"
; V47 tmp33 [V47,T52] ( 3, 12 ) int -> x0 "Inlining Arg"
;* V48 tmp34 [V48 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V49 tmp35 [V49 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.Reflection.Metadata.StringHandle>
; V50 tmp36 [V50,T06] ( 5, 20 ) byref -> x0 "impAppendStmt"
;* V51 tmp37 [V51 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.TypeDefinitionHandle>
;* V52 tmp38 [V52 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V53 tmp39 [V53 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
;* V54 tmp40 [V54 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
; V55 tmp41 [V55,T117] ( 2, 4 ) int -> x1 "Inline stloc first use temp"
; V56 tmp42 [V56,T90] ( 3, 6 ) int -> x1 "Inline return value spill temp"
;* V57 tmp43 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V58 tmp44 [V58,T07] ( 5, 20 ) byref -> x2 "Inlining Arg"
; V59 tmp45 [V59,T15] ( 5, 20 ) int -> x1 "Inlining Arg"
; V60 tmp46 [V60,T53] ( 3, 12 ) int -> x1 "dup spill"
;* V61 tmp47 [V61 ] ( 0, 0 ) int -> zero-ref
;* V62 tmp48 [V62 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp"
;* V63 tmp49 [V63 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V64 tmp50 [V64 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V65 tmp51 [V65 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V66 tmp52 [V66 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StringHandle>
; V67 tmp53 [V67,T08] ( 5, 20 ) byref -> x1 "impAppendStmt"
;* V68 tmp54 [V68 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.TypeDefinitionHandle>
;* V69 tmp55 [V69 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Reflection.Metadata.StringHandle>
; V70 tmp56 [V70,T91] ( 3, 6 ) ubyte -> x0 "Inline stloc first use temp"
;* V71 tmp57 [V71 ] ( 0, 0 ) struct ( 8) zero-ref "Inline stloc first use temp" <System.Reflection.Metadata.StringHandle>
;* V72 tmp58 [V72 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V73 tmp59 [V73 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
;* V74 tmp60 [V74 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
; V75 tmp61 [V75,T118] ( 2, 4 ) int -> x2 "Inline stloc first use temp"
; V76 tmp62 [V76,T64] ( 5, 10 ) int -> x1 "Inline return value spill temp"
;* V77 tmp63 [V77 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V78 tmp64 [V78,T09] ( 5, 20 ) byref -> x3 "Inlining Arg"
; V79 tmp65 [V79,T16] ( 5, 20 ) int -> x2 "Inlining Arg"
; V80 tmp66 [V80,T54] ( 3, 12 ) int -> x1 "dup spill"
;* V81 tmp67 [V81 ] ( 0, 0 ) int -> zero-ref
;* V82 tmp68 [V82 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp"
;* V83 tmp69 [V83 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V84 tmp70 [V84 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V85 tmp71 [V85 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V86 tmp72 [V86 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StringHandle>
;* V87 tmp73 [V87 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StringHandle>
;* V88 tmp74 [V88 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V89 tmp75 [V89 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StringHandle>
;* V90 tmp76 [V90 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V91 tmp77 [V91 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "Inline stloc first use temp" <System.Reflection.Metadata.BlobReader>
;* V92 tmp78 [V92 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V93 tmp79 [V93 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
; V94 tmp80 [V94,T44] ( 3, 12 ) byref -> x0 "Inlining Arg"
;* V95 tmp81 [V95 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.BlobReader>
;* V96 tmp82 [V96 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Reflection.Internal.MemoryBlock>
;* V97 tmp83 [V97 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.Reflection.Internal.MemoryBlock>
;* V98 tmp84 [V98 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.StringHandle>
;* V99 tmp85 [V99 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Reflection.Internal.MemoryBlock>
;* V100 tmp86 [V100 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V101 tmp87 [V101,T92] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
;* V102 tmp88 [V102 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V103 tmp89 [V103 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V104 tmp90 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V105 tmp91 [V105 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V106 tmp92 [V106 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V107 tmp93 [V107 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V108 tmp94 [V108 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V109 tmp95 [V109 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V110 tmp96 [V110 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V111 tmp97 [V111 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V112 tmp98 [V112 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.Reflection.Metadata.StringHandle>
; V113 tmp99 [V113,T10] ( 5, 20 ) byref -> x0 "impAppendStmt"
;* V114 tmp100 [V114 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.TypeDefinitionHandle>
;* V115 tmp101 [V115 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V116 tmp102 [V116 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
;* V117 tmp103 [V117 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
; V118 tmp104 [V118,T119] ( 2, 4 ) int -> x1 "Inline stloc first use temp"
; V119 tmp105 [V119,T93] ( 3, 6 ) int -> x1 "Inline return value spill temp"
;* V120 tmp106 [V120 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V121 tmp107 [V121,T11] ( 5, 20 ) byref -> x2 "Inlining Arg"
; V122 tmp108 [V122,T17] ( 5, 20 ) int -> x1 "Inlining Arg"
; V123 tmp109 [V123,T55] ( 3, 12 ) int -> x1 "dup spill"
;* V124 tmp110 [V124 ] ( 0, 0 ) int -> zero-ref
;* V125 tmp111 [V125 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp"
;* V126 tmp112 [V126 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V127 tmp113 [V127 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V128 tmp114 [V128 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V129 tmp115 [V129 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StringHandle>
; V130 tmp116 [V130,T12] ( 5, 20 ) byref -> x0 "impAppendStmt"
;* V131 tmp117 [V131 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.TypeDefinitionHandle>
;* V132 tmp118 [V132 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V133 tmp119 [V133 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
;* V134 tmp120 [V134 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
; V135 tmp121 [V135,T120] ( 2, 4 ) int -> x1 "Inline stloc first use temp"
; V136 tmp122 [V136,T94] ( 3, 6 ) int -> x1 "Inline return value spill temp"
;* V137 tmp123 [V137 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V138 tmp124 [V138,T13] ( 5, 20 ) byref -> x2 "Inlining Arg"
; V139 tmp125 [V139,T18] ( 5, 20 ) int -> x1 "Inlining Arg"
; V140 tmp126 [V140,T56] ( 3, 12 ) int -> x1 "dup spill"
;* V141 tmp127 [V141 ] ( 0, 0 ) int -> zero-ref
;* V142 tmp128 [V142 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp"
;* V143 tmp129 [V143 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V144 tmp130 [V144 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V145 tmp131 [V145 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V146 tmp132 [V146 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StringHandle>
;* V147 tmp133 [V147 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "Inline stloc first use temp" <System.Reflection.Metadata.BlobReader>
;* V148 tmp134 [V148 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V149 tmp135 [V149 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
; V150 tmp136 [V150,T45] ( 3, 12 ) byref -> x0 "Inlining Arg"
;* V151 tmp137 [V151 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.BlobReader>
;* V152 tmp138 [V152 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Reflection.Internal.MemoryBlock>
;* V153 tmp139 [V153 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.Reflection.Internal.MemoryBlock>
;* V154 tmp140 [V154 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.StringHandle>
;* V155 tmp141 [V155 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Reflection.Internal.MemoryBlock>
;* V156 tmp142 [V156 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V157 tmp143 [V157,T95] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
;* V158 tmp144 [V158 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V159 tmp145 [V159 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V160 tmp146 [V160 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V161 tmp147 [V161 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V162 tmp148 [V162 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V163 tmp149 [V163 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V164 tmp150 [V164 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V165 tmp151 [V165 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V166 tmp152 [V166 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V167 tmp153 [V167 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V168 tmp154 [V168 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Reflection.TypeLoading.Ecma.MetadataTable`2[System.Reflection.TypeLoading.Ecma.EcmaDefinitionType,System.Reflection.TypeLoading.Ecma.EcmaModule]>
;* V169 tmp155 [V169 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.EntityHandle>
; V170 tmp156 [V170,T150] ( 2, 2 ) ref -> x0 class-hnd exact "dup spill" <System.Reflection.TypeLoading.Ecma.MetadataTable`2[System.Reflection.TypeLoading.Ecma.EcmaDefinitionType,System.Reflection.TypeLoading.Ecma.EcmaModule]>
; V171 tmp157 [V171,T142] ( 6, 3 ) ref -> x0
; V172 tmp158 [V172,T143] ( 3, 3 ) byref -> x26 "impAppendStmt"
; V173 tmp159 [V173,T151] ( 2, 2 ) ref -> x0 class-hnd exact "dup spill" <System.Reflection.TypeLoading.Ecma.MetadataTable`2[System.Reflection.TypeLoading.Ecma.EcmaDefinitionType,System.Reflection.TypeLoading.Ecma.EcmaModule]>
; V174 tmp160 [V174,T111] ( 4, 4 ) ref -> x20 class-hnd exact "NewObj constructor temp" <System.Reflection.TypeLoading.Ecma.MetadataTable`2[System.Reflection.TypeLoading.Ecma.EcmaDefinitionType,System.Reflection.TypeLoading.Ecma.EcmaModule]>
; V175 tmp161 [V175,T144] ( 3, 3 ) byref -> x25 "Inlining Arg"
; V176 tmp162 [V176,T145] ( 3, 3 ) ref -> x25 class-hnd exact "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
; V177 tmp163 [V177,T147] ( 3, 3 ) int -> x1 "Inlining Arg"
;* V178 tmp164 [V178 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.EntityHandle>
;* V179 tmp165 [V179 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V180 tmp166 [V180,T81] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V181 tmp167 [V181 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.ExportedTypeHandleCollection>
;* V182 tmp168 [V182 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V183 tmp169 [V183 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.ExportedTypeHandleCollection+Enumerator>
;* V184 tmp170 [V184 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V185 tmp171 [V185 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V186 tmp172 [V186 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.ExportedTypeHandle>
;* V187 tmp173 [V187 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.ExportedTypeHandle>
;* V188 tmp174 [V188 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.ExportedType>
;* V189 tmp175 [V189 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V190 tmp176 [V190,T155] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V191 tmp177 [V191 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Reflection.Metadata.EntityHandle>
;* V192 tmp178 [V192 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V193 tmp179 [V193,T00] ( 4, 32 ) byref -> x0 "Inlining Arg"
; V194 tmp180 [V194,T82] ( 2, 8 ) int -> x3 "Inline stloc first use temp"
;* V195 tmp181 [V195 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V196 tmp182 [V196,T23] ( 3, 20 ) byref -> x5 "Inlining Arg"
; V197 tmp183 [V197,T24] ( 3, 20 ) int -> x0 "Inlining Arg"
;* V198 tmp184 [V198 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V199 tmp185 [V199 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V200 tmp186 [V200,T46] ( 3, 12 ) byref -> x0 "Inlining Arg"
; V201 tmp187 [V201,T121] ( 2, 4 ) int -> x5 "Inline stloc first use temp"
;* V202 tmp188 [V202,T137] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V203 tmp189 [V203,T19] ( 5, 20 ) int -> x7 "Inlining Arg"
;* V204 tmp190 [V204 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V205 tmp191 [V205,T74] ( 4, 8 ) int -> x7 "Inline return value spill temp"
;* V206 tmp192 [V206 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V207 tmp193 [V207 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V208 tmp194 [V208 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp"
;* V209 tmp195 [V209 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
; V210 tmp196 [V210,T96] ( 3, 6 ) int -> x8 "Inline stloc first use temp"
; V211 tmp197 [V211,T57] ( 3, 12 ) int -> x7 "dup spill"
;* V212 tmp198 [V212 ] ( 0, 0 ) int -> zero-ref
;* V213 tmp199 [V213 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.EntityHandle>
;* V214 tmp200 [V214 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V215 tmp201 [V215 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V216 tmp202 [V216,T138] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V217 tmp203 [V217,T156] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V218 tmp204 [V218,T139] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V219 tmp205 [V219,T20] ( 5, 20 ) int -> x5 "Inlining Arg"
;* V220 tmp206 [V220 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V221 tmp207 [V221,T75] ( 4, 8 ) int -> x0 "Inline return value spill temp"
;* V222 tmp208 [V222 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V223 tmp209 [V223 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V224 tmp210 [V224 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp"
;* V225 tmp211 [V225 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
; V226 tmp212 [V226,T97] ( 3, 6 ) int -> x5 "Inline stloc first use temp"
; V227 tmp213 [V227,T58] ( 3, 12 ) int -> x0 "dup spill"
;* V228 tmp214 [V228 ] ( 0, 0 ) int -> zero-ref
;* V229 tmp215 [V229 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.EntityHandle>
;* V230 tmp216 [V230 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V231 tmp217 [V231 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V232 tmp218 [V232,T47] ( 3, 12 ) byref -> x0 "Inlining Arg"
; V233 tmp219 [V233,T122] ( 2, 4 ) int -> x1 "Inline stloc first use temp"
; V234 tmp220 [V234,T98] ( 3, 6 ) int -> x1 "Inline return value spill temp"
;* V235 tmp221 [V235 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V236 tmp222 [V236,T140] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V237 tmp223 [V237,T21] ( 5, 20 ) int -> x1 "Inlining Arg"
; V238 tmp224 [V238,T59] ( 3, 12 ) int -> x1 "dup spill"
;* V239 tmp225 [V239 ] ( 0, 0 ) int -> zero-ref
;* V240 tmp226 [V240 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp"
;* V241 tmp227 [V241 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V242 tmp228 [V242 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V243 tmp229 [V243 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V244 tmp230 [V244 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StringHandle>
;* V245 tmp231 [V245 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "Inline stloc first use temp" <System.Reflection.Metadata.BlobReader>
;* V246 tmp232 [V246 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V247 tmp233 [V247 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
; V248 tmp234 [V248,T48] ( 3, 12 ) byref -> x0 "Inlining Arg"
;* V249 tmp235 [V249 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.BlobReader>
;* V250 tmp236 [V250 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Reflection.Internal.MemoryBlock>
;* V251 tmp237 [V251 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.Reflection.Internal.MemoryBlock>
;* V252 tmp238 [V252 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.StringHandle>
;* V253 tmp239 [V253 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Reflection.Internal.MemoryBlock>
;* V254 tmp240 [V254 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V255 tmp241 [V255,T99] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
;* V256 tmp242 [V256 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V257 tmp243 [V257 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V258 tmp244 [V258 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V259 tmp245 [V259 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V260 tmp246 [V260 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V261 tmp247 [V261 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V262 tmp248 [V262 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V263 tmp249 [V263 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V264 tmp250 [V264 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V265 tmp251 [V265 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V266 tmp252 [V266 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V267 tmp253 [V267,T29] ( 4, 16 ) byref -> x0 "Inlining Arg"
; V268 tmp254 [V268,T123] ( 2, 4 ) int -> x3 "Inline stloc first use temp"
; V269 tmp255 [V269,T100] ( 3, 6 ) int -> x1 "Inline return value spill temp"
;* V270 tmp256 [V270 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V271 tmp257 [V271,T14] ( 5, 20 ) byref -> x1 "Inlining Arg"
; V272 tmp258 [V272,T22] ( 5, 20 ) int -> x3 "Inlining Arg"
; V273 tmp259 [V273,T60] ( 3, 12 ) int -> x1 "dup spill"
;* V274 tmp260 [V274 ] ( 0, 0 ) int -> zero-ref
;* V275 tmp261 [V275 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp"
;* V276 tmp262 [V276 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V277 tmp263 [V277 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V278 tmp264 [V278 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V279 tmp265 [V279 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.StringHandle>
;* V280 tmp266 [V280 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "Inline stloc first use temp" <System.Reflection.Metadata.BlobReader>
;* V281 tmp267 [V281 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V282 tmp268 [V282 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
; V283 tmp269 [V283,T49] ( 3, 12 ) byref -> x0 "Inlining Arg"
;* V284 tmp270 [V284 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.BlobReader>
;* V285 tmp271 [V285 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Reflection.Internal.MemoryBlock>
;* V286 tmp272 [V286 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Inline return value spill temp" <System.Reflection.Internal.MemoryBlock>
;* V287 tmp273 [V287 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.StringHandle>
;* V288 tmp274 [V288 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Reflection.Internal.MemoryBlock>
;* V289 tmp275 [V289 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V290 tmp276 [V290,T101] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
;* V291 tmp277 [V291 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V292 tmp278 [V292 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V293 tmp279 [V293 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V294 tmp280 [V294 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V295 tmp281 [V295 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V296 tmp282 [V296 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V297 tmp283 [V297 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V298 tmp284 [V298 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V299 tmp285 [V299 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V300 tmp286 [V300 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V301 tmp287 [V301,T149] ( 4, 2 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Reflection.TypeLoading.RoAssembly>
; V302 tmp288 [V302,T148] ( 5, 2.25) ref -> x0 class-hnd "Inline stloc first use temp" <System.Reflection.TypeLoading.RoAssembly>
;* V303 tmp289 [V303 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Reflection.TypeLoading.RoExceptionAssembly>
; V304 tmp290 [V304,T159] ( 2, 1 ) ref -> x0 class-hnd exact "Inline stloc first use temp" <System.Reflection.TypeLoading.RoExceptionAssembly>
;* V305 tmp291 [V305,T83] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V306 tmp292 [V306,T79] ( 2, 8 ) ref -> x19 class-hnd exact single-def "Inline return value spill temp" <System.String>
;* V307 tmp293 [V307 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V308 tmp294 [V308 ] ( 2, 8 ) byref -> [fp+0x38] must-init pinned "Inline stloc first use temp"
; V309 tmp295 [V309,T32] ( 2, 16 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.UTF8Encoding+UTF8EncodingSealed>
; V310 tmp296 [V310,T50] ( 3, 12 ) byref -> x0 "Inline return value spill temp"
;* V311 tmp297 [V311 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V312 tmp298 [V312,T80] ( 2, 8 ) ref -> x1 class-hnd exact single-def "Inline return value spill temp" <System.String>
;* V313 tmp299 [V313 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V314 tmp300 [V314 ] ( 2, 8 ) byref -> [fp+0x30] must-init pinned "Inline stloc first use temp"
; V315 tmp301 [V315,T33] ( 2, 16 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.UTF8Encoding+UTF8EncodingSealed>
; V316 tmp302 [V316,T51] ( 3, 12 ) byref -> x0 "Inline return value spill temp"
;* V317 tmp303 [V317 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V318 tmp304 [V318,T61] ( 5, 9.50) byref -> x22 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
; V319 tmp305 [V319,T39] ( 6, 13.50) int -> x19 single-def "field V01._length (fldOffset=0x8)" P-INDEP
; V320 tmp306 [V320,T62] ( 5, 9.50) byref -> x23 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
; V321 tmp307 [V321,T40] ( 6, 13.50) int -> x20 single-def "field V02._length (fldOffset=0x8)" P-INDEP
; V322 tmp308 [V322,T72] ( 2, 9 ) int -> x26 single-def "field V05._lastRowId (fldOffset=0x0)" P-INDEP
; V323 tmp309 [V323,T02] ( 5, 21 ) int -> x27 "field V05._currentRowId (fldOffset=0x4)" P-INDEP
;* V324 tmp310 [V324 ] ( 0, 0 ) int -> zero-ref single-def "field V06._lastRowId (fldOffset=0x0)" P-INDEP
;* V325 tmp311 [V325 ] ( 0, 0 ) int -> zero-ref "field V07._rowId (fldOffset=0x0)" P-INDEP
; V326 tmp312 [V326 ] ( 7, 14 ) ref -> [fp+0x40] do-not-enreg[X] addr-exposed "field V08._reader (fldOffset=0x0)" P-DEP
; V327 tmp313 [V327 ] ( 10, 20 ) int -> [fp+0x48] do-not-enreg[X] addr-exposed "field V08._treatmentAndRowId (fldOffset=0x8)" P-DEP
; V328 tmp314 [V328,T84] ( 2, 8 ) int -> x26 single-def "field V10._lastRowId (fldOffset=0x0)" P-INDEP
; V329 tmp315 [V329,T03] ( 5, 20 ) int -> x28 "field V10._currentRowId (fldOffset=0x4)" P-INDEP
;* V330 tmp316 [V330 ] ( 0, 0 ) int -> zero-ref single-def "field V11._lastRowId (fldOffset=0x0)" P-INDEP
;* V331 tmp317 [V331 ] ( 0, 0 ) ref -> zero-ref "field V12.reader (fldOffset=0x0)" P-INDEP
;* V332 tmp318 [V332 ] ( 0, 0 ) int -> zero-ref "field V12.rowId (fldOffset=0x8)" P-INDEP
;* V333 tmp319 [V333 ] ( 0, 0 ) int -> zero-ref "field V13._vToken (fldOffset=0x0)" P-INDEP
;* V334 tmp320 [V334 ] ( 0, 0 ) int -> zero-ref "field V15._value (fldOffset=0x0)" P-INDEP
;* V335 tmp321 [V335 ] ( 0, 0 ) int -> zero-ref "field V16._value (fldOffset=0x0)" P-INDEP
;* V336 tmp322 [V336 ] ( 0, 0 ) int -> zero-ref "field V17._rowId (fldOffset=0x0)" P-INDEP
;* V337 tmp323 [V337 ] ( 0, 0 ) int -> zero-ref "field V18._value (fldOffset=0x0)" P-INDEP
;* V338 tmp324 [V338 ] ( 0, 0 ) int -> zero-ref "field V19._value (fldOffset=0x0)" P-INDEP
; V339 tmp325 [V339,T160] ( 2, 1 ) int -> x0 "field V20._value (fldOffset=0x0)" P-INDEP
; V340 tmp326 [V340,T152] ( 2, 2 ) int -> x26 single-def "field V29._lastRowId (fldOffset=0x0)" P-INDEP
; V341 tmp327 [V341,T153] ( 2, 2 ) int -> x26 single-def "field V31._lastRowId (fldOffset=0x0)" P-INDEP
;* V342 tmp328 [V342,T162] ( 0, 0 ) int -> zero-ref single-def "field V31._currentRowId (fldOffset=0x4)" P-INDEP
; V343 tmp329 [V343,T73] ( 4, 8.50) int -> x28 "field V34._rowId (fldOffset=0x0)" P-INDEP
;* V344 tmp330 [V344,T154] ( 0, 0 ) ref -> zero-ref "field V35._reader (fldOffset=0x0)" P-INDEP
; V345 tmp331 [V345,T124] ( 2, 4 ) int -> x0 "field V35._treatmentAndRowId (fldOffset=0x8)" P-INDEP
;* V346 tmp332 [V346 ] ( 0, 0 ) int -> zero-ref "field V37._rowId (fldOffset=0x0)" P-INDEP
;* V347 tmp333 [V347 ] ( 0, 0 ) int -> zero-ref "field V40._rowId (fldOffset=0x0)" P-INDEP
; V348 tmp334 [V348,T125] ( 2, 4 ) int -> x1 "field V42._rowId (fldOffset=0x0)" P-INDEP
;* V349 tmp335 [V349 ] ( 0, 0 ) int -> zero-ref "field V43._rowId (fldOffset=0x0)" P-INDEP
; V350 tmp336 [V350,T65] ( 5, 10 ) int -> x1 "field V49._value (fldOffset=0x0)" P-INDEP
;* V351 tmp337 [V351 ] ( 0, 0 ) int -> zero-ref "field V51._rowId (fldOffset=0x0)" P-INDEP
; V352 tmp338 [V352,T126] ( 2, 4 ) int -> x1 "field V53._rowId (fldOffset=0x0)" P-INDEP
;* V353 tmp339 [V353 ] ( 0, 0 ) int -> zero-ref "field V54._rowId (fldOffset=0x0)" P-INDEP
; V354 tmp340 [V354,T127] ( 2, 4 ) int -> x1 "field V66._value (fldOffset=0x0)" P-INDEP
;* V355 tmp341 [V355 ] ( 0, 0 ) int -> zero-ref "field V68._rowId (fldOffset=0x0)" P-INDEP
;* V356 tmp342 [V356 ] ( 0, 0 ) int -> zero-ref "field V69._value (fldOffset=0x0)" P-INDEP
; V357 tmp343 [V357,T76] ( 4, 8 ) int -> x1 "field V71._value (fldOffset=0x0)" P-INDEP
; V358 tmp344 [V358,T128] ( 2, 4 ) int -> x2 "field V73._rowId (fldOffset=0x0)" P-INDEP
;* V359 tmp345 [V359 ] ( 0, 0 ) int -> zero-ref "field V74._rowId (fldOffset=0x0)" P-INDEP
; V360 tmp346 [V360,T129] ( 2, 4 ) int -> x2 "field V86._value (fldOffset=0x0)" P-INDEP
; V361 tmp347 [V361,T130] ( 2, 4 ) int -> x1 "field V87._value (fldOffset=0x0)" P-INDEP
; V362 tmp348 [V362,T131] ( 2, 4 ) int -> x1 "field V89._value (fldOffset=0x0)" P-INDEP
; V363 tmp349 [V363,T112] ( 2, 4 ) byref -> x3 "field V92._reference (fldOffset=0x0)" P-INDEP
;* V364 tmp350 [V364 ] ( 0, 0 ) int -> zero-ref "field V92._length (fldOffset=0x8)" P-INDEP
;* V365 tmp351 [V365 ] ( 0, 0 ) long -> zero-ref "field V96.Pointer (fldOffset=0x0)" P-INDEP
;* V366 tmp352 [V366 ] ( 0, 0 ) int -> zero-ref "field V96.Length (fldOffset=0x8)" P-INDEP
; V367 tmp353 [V367,T102] ( 3, 6 ) long -> x0 "field V97.Pointer (fldOffset=0x0)" P-INDEP
; V368 tmp354 [V368,T66] ( 5, 10 ) int -> x1 "field V97.Length (fldOffset=0x8)" P-INDEP
;* V369 tmp355 [V369 ] ( 0, 0 ) int -> zero-ref "field V98._value (fldOffset=0x0)" P-INDEP
;* V370 tmp356 [V370 ] ( 0, 0 ) long -> zero-ref "field V99.Pointer (fldOffset=0x0)" P-DEP
;* V371 tmp357 [V371 ] ( 0, 0 ) int -> zero-ref "field V99.Length (fldOffset=0x8)" P-DEP
;* V372 tmp358 [V372 ] ( 0, 0 ) byref -> zero-ref "field V102._reference (fldOffset=0x0)" P-INDEP
;* V373 tmp359 [V373 ] ( 0, 0 ) int -> zero-ref "field V102._length (fldOffset=0x8)" P-INDEP
;* V374 tmp360 [V374 ] ( 0, 0 ) byref -> zero-ref "field V104._reference (fldOffset=0x0)" P-INDEP
;* V375 tmp361 [V375 ] ( 0, 0 ) int -> zero-ref "field V104._length (fldOffset=0x8)" P-INDEP
;* V376 tmp362 [V376 ] ( 0, 0 ) byref -> zero-ref "field V108._reference (fldOffset=0x0)" P-INDEP
;* V377 tmp363 [V377 ] ( 0, 0 ) int -> zero-ref "field V108._length (fldOffset=0x8)" P-INDEP
;* V378 tmp364 [V378 ] ( 0, 0 ) byref -> zero-ref "field V109._reference (fldOffset=0x0)" P-INDEP
;* V379 tmp365 [V379 ] ( 0, 0 ) int -> zero-ref "field V109._length (fldOffset=0x8)" P-INDEP
;* V380 tmp366 [V380 ] ( 0, 0 ) byref -> zero-ref "field V110._reference (fldOffset=0x0)" P-INDEP
;* V381 tmp367 [V381 ] ( 0, 0 ) int -> zero-ref "field V110._length (fldOffset=0x8)" P-INDEP
;* V382 tmp368 [V382 ] ( 0, 0 ) byref -> zero-ref "field V111._reference (fldOffset=0x0)" P-INDEP
;* V383 tmp369 [V383 ] ( 0, 0 ) int -> zero-ref "field V111._length (fldOffset=0x8)" P-INDEP
; V384 tmp370 [V384,T67] ( 5, 10 ) int -> x1 "field V112._value (fldOffset=0x0)" P-INDEP
;* V385 tmp371 [V385 ] ( 0, 0 ) int -> zero-ref "field V114._rowId (fldOffset=0x0)" P-INDEP
; V386 tmp372 [V386,T132] ( 2, 4 ) int -> x1 "field V116._rowId (fldOffset=0x0)" P-INDEP
;* V387 tmp373 [V387 ] ( 0, 0 ) int -> zero-ref "field V117._rowId (fldOffset=0x0)" P-INDEP
; V388 tmp374 [V388,T133] ( 2, 4 ) int -> x1 "field V129._value (fldOffset=0x0)" P-INDEP
;* V389 tmp375 [V389 ] ( 0, 0 ) int -> zero-ref "field V131._rowId (fldOffset=0x0)" P-INDEP
; V390 tmp376 [V390,T134] ( 2, 4 ) int -> x1 "field V133._rowId (fldOffset=0x0)" P-INDEP
;* V391 tmp377 [V391 ] ( 0, 0 ) int -> zero-ref "field V134._rowId (fldOffset=0x0)" P-INDEP
; V392 tmp378 [V392,T135] ( 2, 4 ) int -> x1 "field V146._value (fldOffset=0x0)" P-INDEP
; V393 tmp379 [V393,T113] ( 2, 4 ) byref -> x3 "field V148._reference (fldOffset=0x0)" P-INDEP
;* V394 tmp380 [V394 ] ( 0, 0 ) int -> zero-ref "field V148._length (fldOffset=0x8)" P-INDEP
;* V395 tmp381 [V395 ] ( 0, 0 ) long -> zero-ref "field V152.Pointer (fldOffset=0x0)" P-INDEP
;* V396 tmp382 [V396 ] ( 0, 0 ) int -> zero-ref "field V152.Length (fldOffset=0x8)" P-INDEP
; V397 tmp383 [V397,T103] ( 3, 6 ) long -> x0 "field V153.Pointer (fldOffset=0x0)" P-INDEP
; V398 tmp384 [V398,T68] ( 5, 10 ) int -> x1 "field V153.Length (fldOffset=0x8)" P-INDEP
;* V399 tmp385 [V399 ] ( 0, 0 ) int -> zero-ref "field V154._value (fldOffset=0x0)" P-INDEP
;* V400 tmp386 [V400 ] ( 0, 0 ) long -> zero-ref "field V155.Pointer (fldOffset=0x0)" P-DEP
;* V401 tmp387 [V401 ] ( 0, 0 ) int -> zero-ref "field V155.Length (fldOffset=0x8)" P-DEP
;* V402 tmp388 [V402 ] ( 0, 0 ) byref -> zero-ref "field V158._reference (fldOffset=0x0)" P-INDEP
;* V403 tmp389 [V403 ] ( 0, 0 ) int -> zero-ref "field V158._length (fldOffset=0x8)" P-INDEP
;* V404 tmp390 [V404 ] ( 0, 0 ) byref -> zero-ref "field V160._reference (fldOffset=0x0)" P-INDEP
;* V405 tmp391 [V405 ] ( 0, 0 ) int -> zero-ref "field V160._length (fldOffset=0x8)" P-INDEP
;* V406 tmp392 [V406 ] ( 0, 0 ) byref -> zero-ref "field V164._reference (fldOffset=0x0)" P-INDEP
;* V407 tmp393 [V407 ] ( 0, 0 ) int -> zero-ref "field V164._length (fldOffset=0x8)" P-INDEP
;* V408 tmp394 [V408 ] ( 0, 0 ) byref -> zero-ref "field V165._reference (fldOffset=0x0)" P-INDEP
;* V409 tmp395 [V409 ] ( 0, 0 ) int -> zero-ref "field V165._length (fldOffset=0x8)" P-INDEP
;* V410 tmp396 [V410 ] ( 0, 0 ) byref -> zero-ref "field V166._reference (fldOffset=0x0)" P-INDEP
;* V411 tmp397 [V411 ] ( 0, 0 ) int -> zero-ref "field V166._length (fldOffset=0x8)" P-INDEP
;* V412 tmp398 [V412 ] ( 0, 0 ) byref -> zero-ref "field V167._reference (fldOffset=0x0)" P-INDEP
;* V413 tmp399 [V413 ] ( 0, 0 ) int -> zero-ref "field V167._length (fldOffset=0x8)" P-INDEP
;* V414 tmp400 [V414 ] ( 0, 0 ) int -> zero-ref "field V169._vToken (fldOffset=0x0)" P-INDEP
; V415 tmp401 [V415,T161] ( 2, 1 ) int -> x1 "field V178._vToken (fldOffset=0x0)" P-INDEP
; V416 tmp402 [V416,T85] ( 2, 8 ) int -> x26 single-def "field V181._lastRowId (fldOffset=0x0)" P-INDEP
; V417 tmp403 [V417,T86] ( 2, 8 ) int -> x26 single-def "field V183._lastRowId (fldOffset=0x0)" P-INDEP
;* V418 tmp404 [V418,T141] ( 0, 0 ) int -> zero-ref single-def "field V183._currentRowId (fldOffset=0x4)" P-INDEP
; V419 tmp405 [V419,T71] ( 3, 10 ) int -> x27 "field V186._rowId (fldOffset=0x0)" P-INDEP
;* V420 tmp406 [V420 ] ( 0, 0 ) int -> zero-ref "field V187._rowId (fldOffset=0x0)" P-INDEP
;* V421 tmp407 [V421 ] ( 0, 0 ) ref -> zero-ref "field V188.reader (fldOffset=0x0)" P-INDEP
;* V422 tmp408 [V422 ] ( 0, 0 ) int -> zero-ref "field V188.rowId (fldOffset=0x8)" P-INDEP
;* V423 tmp409 [V423 ] ( 0, 0 ) int -> zero-ref "field V191._vToken (fldOffset=0x0)" P-INDEP
; V424 tmp410 [V424,T136] ( 2, 4 ) int -> x7 "field V213._vToken (fldOffset=0x0)" P-INDEP
; V425 tmp411 [V425,T110] ( 3, 4.50) int -> [fp+0x2C] "field V229._vToken (fldOffset=0x0)" P-INDEP
; V426 tmp412 [V426,T77] ( 4, 8 ) int -> x1 "field V244._value (fldOffset=0x0)" P-INDEP
; V427 tmp413 [V427,T114] ( 2, 4 ) byref -> x3 "field V246._reference (fldOffset=0x0)" P-INDEP
;* V428 tmp414 [V428 ] ( 0, 0 ) int -> zero-ref "field V246._length (fldOffset=0x8)" P-INDEP
;* V429 tmp415 [V429 ] ( 0, 0 ) long -> zero-ref "field V250.Pointer (fldOffset=0x0)" P-INDEP
;* V430 tmp416 [V430 ] ( 0, 0 ) int -> zero-ref "field V250.Length (fldOffset=0x8)" P-INDEP
; V431 tmp417 [V431,T104] ( 3, 6 ) long -> x0 "field V251.Pointer (fldOffset=0x0)" P-INDEP
; V432 tmp418 [V432,T69] ( 5, 10 ) int -> x1 "field V251.Length (fldOffset=0x8)" P-INDEP
;* V433 tmp419 [V433 ] ( 0, 0 ) int -> zero-ref "field V252._value (fldOffset=0x0)" P-INDEP
;* V434 tmp420 [V434 ] ( 0, 0 ) long -> zero-ref "field V253.Pointer (fldOffset=0x0)" P-DEP
;* V435 tmp421 [V435 ] ( 0, 0 ) int -> zero-ref "field V253.Length (fldOffset=0x8)" P-DEP
;* V436 tmp422 [V436 ] ( 0, 0 ) byref -> zero-ref "field V256._reference (fldOffset=0x0)" P-INDEP
;* V437 tmp423 [V437 ] ( 0, 0 ) int -> zero-ref "field V256._length (fldOffset=0x8)" P-INDEP
;* V438 tmp424 [V438 ] ( 0, 0 ) byref -> zero-ref "field V258._reference (fldOffset=0x0)" P-INDEP
;* V439 tmp425 [V439 ] ( 0, 0 ) int -> zero-ref "field V258._length (fldOffset=0x8)" P-INDEP
;* V440 tmp426 [V440 ] ( 0, 0 ) byref -> zero-ref "field V262._reference (fldOffset=0x0)" P-INDEP
;* V441 tmp427 [V441 ] ( 0, 0 ) int -> zero-ref "field V262._length (fldOffset=0x8)" P-INDEP
;* V442 tmp428 [V442 ] ( 0, 0 ) byref -> zero-ref "field V263._reference (fldOffset=0x0)" P-INDEP
;* V443 tmp429 [V443 ] ( 0, 0 ) int -> zero-ref "field V263._length (fldOffset=0x8)" P-INDEP
;* V444 tmp430 [V444 ] ( 0, 0 ) byref -> zero-ref "field V264._reference (fldOffset=0x0)" P-INDEP
;* V445 tmp431 [V445 ] ( 0, 0 ) int -> zero-ref "field V264._length (fldOffset=0x8)" P-INDEP
;* V446 tmp432 [V446 ] ( 0, 0 ) byref -> zero-ref "field V265._reference (fldOffset=0x0)" P-INDEP
;* V447 tmp433 [V447 ] ( 0, 0 ) int -> zero-ref "field V265._length (fldOffset=0x8)" P-INDEP
; V448 tmp434 [V448,T78] ( 4, 8 ) int -> x1 "field V279._value (fldOffset=0x0)" P-INDEP
; V449 tmp435 [V449,T115] ( 2, 4 ) byref -> x3 "field V281._reference (fldOffset=0x0)" P-INDEP
;* V450 tmp436 [V450 ] ( 0, 0 ) int -> zero-ref "field V281._length (fldOffset=0x8)" P-INDEP
;* V451 tmp437 [V451 ] ( 0, 0 ) long -> zero-ref "field V285.Pointer (fldOffset=0x0)" P-INDEP
;* V452 tmp438 [V452 ] ( 0, 0 ) int -> zero-ref "field V285.Length (fldOffset=0x8)" P-INDEP
; V453 tmp439 [V453,T105] ( 3, 6 ) long -> x0 "field V286.Pointer (fldOffset=0x0)" P-INDEP
; V454 tmp440 [V454,T70] ( 5, 10 ) int -> x1 "field V286.Length (fldOffset=0x8)" P-INDEP
;* V455 tmp441 [V455 ] ( 0, 0 ) int -> zero-ref "field V287._value (fldOffset=0x0)" P-INDEP
;* V456 tmp442 [V456 ] ( 0, 0 ) long -> zero-ref "field V288.Pointer (fldOffset=0x0)" P-DEP
;* V457 tmp443 [V457 ] ( 0, 0 ) int -> zero-ref "field V288.Length (fldOffset=0x8)" P-DEP
;* V458 tmp444 [V458 ] ( 0, 0 ) byref -> zero-ref "field V291._reference (fldOffset=0x0)" P-INDEP
;* V459 tmp445 [V459 ] ( 0, 0 ) int -> zero-ref "field V291._length (fldOffset=0x8)" P-INDEP
;* V460 tmp446 [V460 ] ( 0, 0 ) byref -> zero-ref "field V293._reference (fldOffset=0x0)" P-INDEP
;* V461 tmp447 [V461 ] ( 0, 0 ) int -> zero-ref "field V293._length (fldOffset=0x8)" P-INDEP
;* V462 tmp448 [V462 ] ( 0, 0 ) byref -> zero-ref "field V297._reference (fldOffset=0x0)" P-INDEP
;* V463 tmp449 [V463 ] ( 0, 0 ) int -> zero-ref "field V297._length (fldOffset=0x8)" P-INDEP
;* V464 tmp450 [V464 ] ( 0, 0 ) byref -> zero-ref "field V298._reference (fldOffset=0x0)" P-INDEP
;* V465 tmp451 [V465 ] ( 0, 0 ) int -> zero-ref "field V298._length (fldOffset=0x8)" P-INDEP
;* V466 tmp452 [V466 ] ( 0, 0 ) byref -> zero-ref "field V299._reference (fldOffset=0x0)" P-INDEP
;* V467 tmp453 [V467 ] ( 0, 0 ) int -> zero-ref "field V299._length (fldOffset=0x8)" P-INDEP
;* V468 tmp454 [V468 ] ( 0, 0 ) byref -> zero-ref "field V300._reference (fldOffset=0x0)" P-INDEP
;* V469 tmp455 [V469 ] ( 0, 0 ) int -> zero-ref "field V300._length (fldOffset=0x8)" P-INDEP
;* V470 tmp456 [V470 ] ( 0, 0 ) byref -> zero-ref single-def "field V307._reference (fldOffset=0x0)" P-INDEP
;* V471 tmp457 [V471 ] ( 0, 0 ) int -> zero-ref single-def "field V307._length (fldOffset=0x8)" P-INDEP
;* V472 tmp458 [V472 ] ( 0, 0 ) byref -> zero-ref single-def "field V311._reference (fldOffset=0x0)" P-INDEP
;* V473 tmp459 [V473 ] ( 0, 0 ) int -> zero-ref single-def "field V311._length (fldOffset=0x8)" P-INDEP
;* V474 tmp460 [V474 ] ( 0, 0 ) byref -> zero-ref single-def "field V313._reference (fldOffset=0x0)" P-INDEP
;* V475 tmp461 [V475 ] ( 0, 0 ) int -> zero-ref single-def "field V313._length (fldOffset=0x8)" P-INDEP
;* V476 tmp462 [V476 ] ( 0, 0 ) byref -> zero-ref single-def "field V317._reference (fldOffset=0x0)" P-INDEP
;* V477 tmp463 [V477 ] ( 0, 0 ) int -> zero-ref single-def "field V317._length (fldOffset=0x8)" P-INDEP
;* V478 tmp464 [V478 ] ( 0, 0 ) long -> zero-ref "V91.[000..008)"
;* V479 tmp465 [V479 ] ( 0, 0 ) int -> zero-ref "V91.[008..012)"
;* V480 tmp466 [V480 ] ( 0, 0 ) long -> zero-ref "V91.[016..024)"
;* V481 tmp467 [V481 ] ( 0, 0 ) long -> zero-ref "V91.[024..032)"
;* V482 tmp468 [V482 ] ( 0, 0 ) long -> zero-ref "V95.[000..008)"
;* V483 tmp469 [V483 ] ( 0, 0 ) int -> zero-ref "V95.[008..012)"
;* V484 tmp470 [V484 ] ( 0, 0 ) long -> zero-ref "V95.[016..024)"
;* V485 tmp471 [V485 ] ( 0, 0 ) long -> zero-ref "V95.[024..032)"
;* V486 tmp472 [V486 ] ( 0, 0 ) long -> zero-ref "V147.[000..008)"
;* V487 tmp473 [V487 ] ( 0, 0 ) int -> zero-ref "V147.[008..012)"
;* V488 tmp474 [V488 ] ( 0, 0 ) long -> zero-ref "V147.[016..024)"
;* V489 tmp475 [V489 ] ( 0, 0 ) long -> zero-ref "V147.[024..032)"
;* V490 tmp476 [V490 ] ( 0, 0 ) long -> zero-ref "V151.[000..008)"
;* V491 tmp477 [V491 ] ( 0, 0 ) int -> zero-ref "V151.[008..012)"
;* V492 tmp478 [V492 ] ( 0, 0 ) long -> zero-ref "V151.[016..024)"
;* V493 tmp479 [V493 ] ( 0, 0 ) long -> zero-ref "V151.[024..032)"
;* V494 tmp480 [V494 ] ( 0, 0 ) long -> zero-ref "V245.[000..008)"
;* V495 tmp481 [V495 ] ( 0, 0 ) int -> zero-ref "V245.[008..012)"
;* V496 tmp482 [V496 ] ( 0, 0 ) long -> zero-ref "V245.[016..024)"
;* V497 tmp483 [V497 ] ( 0, 0 ) long -> zero-ref "V245.[024..032)"
;* V498 tmp484 [V498 ] ( 0, 0 ) long -> zero-ref "V249.[000..008)"
;* V499 tmp485 [V499 ] ( 0, 0 ) int -> zero-ref "V249.[008..012)"
;* V500 tmp486 [V500 ] ( 0, 0 ) long -> zero-ref "V249.[016..024)"
;* V501 tmp487 [V501 ] ( 0, 0 ) long -> zero-ref "V249.[024..032)"
;* V502 tmp488 [V502 ] ( 0, 0 ) long -> zero-ref "V280.[000..008)"
;* V503 tmp489 [V503 ] ( 0, 0 ) int -> zero-ref "V280.[008..012)"
;* V504 tmp490 [V504 ] ( 0, 0 ) long -> zero-ref "V280.[016..024)"
;* V505 tmp491 [V505 ] ( 0, 0 ) long -> zero-ref "V280.[024..032)"
;* V506 tmp492 [V506 ] ( 0, 0 ) long -> zero-ref "V284.[000..008)"
;* V507 tmp493 [V507 ] ( 0, 0 ) int -> zero-ref "V284.[008..012)"
;* V508 tmp494 [V508 ] ( 0, 0 ) long -> zero-ref "V284.[016..024)"
;* V509 tmp495 [V509 ] ( 0, 0 ) long -> zero-ref "V284.[024..032)"
; V510 tmp496 [V510,T146] ( 3, 3 ) ref -> x1 "arr expr"
; V511 tmp497 [V511,T35] ( 2, 16 ) long -> x0 "Cast away GC"
; V512 tmp498 [V512,T36] ( 2, 16 ) long -> x0 "argument with side effect"
; V513 tmp499 [V513,T37] ( 2, 16 ) long -> x0 "Cast away GC"
; V514 tmp500 [V514,T38] ( 2, 16 ) long -> x0 "argument with side effect"
; V515 tmp501 [V515,T34] ( 2, 16 ) ref -> x1 single-def "argument with side effect"
; V516 cse0 [V516,T41] ( 4, 12 ) int -> x1 "CSE #48: conservative"
; V517 cse1 [V517,T106] ( 3, 6 ) int -> x0 "CSE #21: conservative"
; V518 cse2 [V518,T107] ( 3, 6 ) int -> x5 "CSE #56: conservative"
; V519 cse3 [V519,T05] ( 8, 20 ) long -> x6 "CSE #51: moderate"
; V520 cse4 [V520,T108] ( 3, 6 ) int -> x0 "CSE #57: conservative"
; V521 cse5 [V521,T109] ( 3, 6 ) int -> x9 "CSE #62: conservative"
; V522 cse6 [V522,T25] ( 8, 16 ) long -> x3 "CSE #52: moderate"
; V523 cse7 [V523,T26] ( 5, 14 ) byref -> [fp+0x20] "CSE #45: moderate"
; V524 cse8 [V524,T27] ( 3, 10 ) byref -> [fp+0x18] "CSE #49: moderate"
;
; Lcl frame size = 64
G_M22513_IG01:
stp fp, lr, [sp, #-0xA0]!
stp x19, x20, [sp, #0x50]
stp x21, x22, [sp, #0x60]
stp x23, x24, [sp, #0x70]
stp x25, x26, [sp, #0x80]
stp x27, x28, [sp, #0x90]
mov fp, sp
stp xzr, xzr, [fp, #0x40] // [V08 loc4], [V08 loc4+0x08]
stp xzr, xzr, [fp, #0x30] // [V314 tmp300], [V308 tmp294]
mov x21, x0
mov x22, x1
mov w19, w2
mov x23, x3
mov w20, w4
mov x24, x5
;; size=60 bbWeight=1 PerfScore 11.50
G_M22513_IG02:
add x25, x21, #112
ldr x0, [x25]
movz x1, #0xD1FFAB1E // code for System.Reflection.MetadataLoadContext:DisposeCheck():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x25, [x25, #0x10]
ldr w26, [x25, #0xD1FFAB1E]
mov w27, wzr
;; size=44 bbWeight=1 PerfScore 18.50
G_M22513_IG03:
cmp w27, w26
bge G_M22513_IG30
;; size=8 bbWeight=8 PerfScore 12.00
G_M22513_IG04:
add w27, w27, #1
and w28, w27, #0xD1FFAB1E
ldr w0, [x25, #0x50]
cbz w0, G_M22513_IG06
;; size=16 bbWeight=4 PerfScore 20.00
G_M22513_IG05:
mov x0, x25
mov w1, w28
movz x2, #0xD1FFAB1E // code for System.Reflection.Metadata.MetadataReader:CalculateTypeDefTreatmentAndRowId(System.Reflection.Metadata.TypeDefinitionHandle):uint:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
b G_M22513_IG07
;; size=32 bbWeight=2 PerfScore 15.00
G_M22513_IG06:
sxtw w0, w28
;; size=4 bbWeight=2 PerfScore 1.00
G_M22513_IG07:
str x25, [fp, #0x40] // [V326 tmp312]
str w0, [fp, #0x48] // [V327 tmp313]
ldr w0, [fp, #0x48] // [V327 tmp313]
lsr w0, w0, #24
uxtb w0, w0
cbz w0, G_M22513_IG08
add x0, fp, #64 // [V08 loc4]
movz x1, #0xD1FFAB1E // code for System.Reflection.Metadata.TypeDefinition:GetProjectedFlags():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
b G_M22513_IG09
;; size=52 bbWeight=2 PerfScore 27.00
G_M22513_IG08:
ldr x0, [fp, #0x40] // [V326 tmp312]
add x0, x0, #0xD1FFAB1E
ldr w1, [fp, #0x48] // [V327 tmp313]
and w1, w1, #0xD1FFAB1E
sub w1, w1, #1
ldr w2, [x0, #0x20]
mul w1, w1, w2
add x2, x0, #40
ldr w0, [x0, #0x08]
add w0, w1, w0
mov w1, w0
add x1, x1, #4
ldrsw x3, [x2, #0x08]
cmp x1, x3
bhi G_M22513_IG60
ldr x1, [x2]
sxtw x0, w0
ldr w0, [x1, x0]
;; size=72 bbWeight=2 PerfScore 53.00
G_M22513_IG09:
tst w0, #6
bne G_M22513_IG03
ldr w0, [fp, #0x48] // [V327 tmp313]
lsr w0, w0, #24
uxtb w0, w0
cbz w0, G_M22513_IG15
ldr x1, [fp, #0x40] // [V326 tmp312]
add x1, x1, #0xD1FFAB1E
ldr w2, [fp, #0x48] // [V327 tmp313]
and w2, w2, #0xD1FFAB1E
sub w2, w2, #1
ldr w3, [x1, #0x20]
mul w2, w2, w3
add x3, x1, #40
ldr w4, [x1, #0x0C]
add w2, w2, w4
ldrb w1, [x1, #0x07]
cbnz w1, G_M22513_IG10
mov w1, w2
add x1, x1, #4
ldrsw x4, [x3, #0x08]
cmp x1, x4
bhi G_M22513_IG60
ldr x3, [x3]
sxtw x2, w2
ldr w1, [x3, x2]
tst w1, #0xD1FFAB1E
bne G_M22513_IG57
b G_M22513_IG11
;; size=116 bbWeight=2 PerfScore 78.00
G_M22513_IG10:
mov w1, w2
add x1, x1, #2
ldrsw x4, [x3, #0x08]
cmp x1, x4
bhi G_M22513_IG60
ldr x1, [x3]
sxtw x2, w2
ldrh w1, [x1, x2]
;; size=32 bbWeight=2 PerfScore 24.00
G_M22513_IG11:
sxtw w2, w1
and w0, w0, #15
cmp w0, #3
bne G_M22513_IG12
add w1, w1, #5
b G_M22513_IG14
;; size=24 bbWeight=2 PerfScore 8.00
G_M22513_IG12:
cmp w0, #4
bne G_M22513_IG13
mov w2, #0xD1FFAB1E
orr w1, w1, w2
b G_M22513_IG14
;; size=20 bbWeight=2 PerfScore 7.00
G_M22513_IG13:
sxtw w1, w2
;; size=4 bbWeight=2 PerfScore 1.00
G_M22513_IG14:
b G_M22513_IG17
;; size=4 bbWeight=2 PerfScore 2.00
G_M22513_IG15:
ldr x1, [fp, #0x40] // [V326 tmp312]
add x0, x1, #0xD1FFAB1E
ldr w1, [fp, #0x48] // [V327 tmp313]
and w1, w1, #0xD1FFAB1E
sub w1, w1, #1
ldr w2, [x0, #0x20]
mul w1, w1, w2
add x2, x0, #40
ldr w3, [x0, #0x0C]
add w1, w1, w3
ldrb w0, [x0, #0x07]
cbnz w0, G_M22513_IG16
mov w0, w1
add x0, x0, #4
ldrsw x3, [x2, #0x08]
cmp x0, x3
bhi G_M22513_IG60
ldr x2, [x2]
sxtw x1, w1
ldr w1, [x2, x1]
tst w1, #0xD1FFAB1E
bne G_M22513_IG57
b G_M22513_IG17
;; size=92 bbWeight=2 PerfScore 66.00
G_M22513_IG16:
mov w0, w1
add x0, x0, #2
ldrsw x3, [x2, #0x08]
cmp x0, x3
bhi G_M22513_IG60
ldr x0, [x2]
sxtw x1, w1
ldrh w1, [x0, x1]
;; size=32 bbWeight=2 PerfScore 24.00
G_M22513_IG17:
add x0, x25, #112
tst w1, #0xD1FFAB1E
beq G_M22513_IG18
movz x2, #0xD1FFAB1E // code for System.Reflection.Metadata.Ecma335.StringHeap:GetVirtualHandleMemoryBlock(System.Reflection.Metadata.StringHandle):System.Reflection.Internal.MemoryBlock:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
b G_M22513_IG19
;; size=36 bbWeight=2 PerfScore 17.00
G_M22513_IG18:
movz x2, #0xD1FFAB1E // code for System.Reflection.Metadata.Ecma335.StringHeap:GetNonVirtualStringMemoryBlock(System.Reflection.Metadata.StringHandle):System.Reflection.Internal.MemoryBlock:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=20 bbWeight=2 PerfScore 11.00
G_M22513_IG19:
tbnz w1, #31, G_M22513_IG58
mov x3, x0
cmp w20, w1
bne G_M22513_IG03
mov w2, w1
mov x0, x23
mov x1, x3
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
cbz w0, G_M22513_IG03
ldr w0, [fp, #0x48] // [V327 tmp313]
lsr w0, w0, #24
uxtb w0, w0
cbz w0, G_M22513_IG22
ldr x0, [fp, #0x40] // [V326 tmp312]
add x0, x0, #0xD1FFAB1E
ldr w1, [fp, #0x48] // [V327 tmp313]
and w1, w1, #0xD1FFAB1E
sub w1, w1, #1
ldr w2, [x0, #0x20]
mul w1, w1, w2
add x2, x0, #40
ldr w3, [x0, #0x10]
add w1, w1, w3
ldrb w0, [x0, #0x07]
cbnz w0, G_M22513_IG20
mov w0, w1
add x0, x0, #4
ldrsw x3, [x2, #0x08]
cmp x0, x3
bhi G_M22513_IG60
ldr x2, [x2]
sxtw x1, w1
ldr w1, [x2, x1]
tst w1, #0xD1FFAB1E
bne G_M22513_IG57
b G_M22513_IG21
;; size=160 bbWeight=2 PerfScore 97.00
G_M22513_IG20:
mov w0, w1
add x0, x0, #2
ldrsw x3, [x2, #0x08]
cmp x0, x3
bhi G_M22513_IG60
ldr x0, [x2]
sxtw x1, w1
ldrh w1, [x0, x1]
;; size=32 bbWeight=2 PerfScore 24.00
G_M22513_IG21:
b G_M22513_IG24
;; size=4 bbWeight=2 PerfScore 2.00
G_M22513_IG22:
ldr x1, [fp, #0x40] // [V326 tmp312]
add x0, x1, #0xD1FFAB1E
ldr w1, [fp, #0x48] // [V327 tmp313]
and w1, w1, #0xD1FFAB1E
sub w1, w1, #1
ldr w2, [x0, #0x20]
mul w1, w1, w2
add x2, x0, #40
ldr w3, [x0, #0x10]
add w1, w1, w3
ldrb w0, [x0, #0x07]
cbnz w0, G_M22513_IG23
mov w0, w1
add x0, x0, #4
ldrsw x3, [x2, #0x08]
cmp x0, x3
bhi G_M22513_IG60
ldr x2, [x2]
sxtw x1, w1
ldr w1, [x2, x1]
tst w1, #0xD1FFAB1E
bne G_M22513_IG57
b G_M22513_IG24
;; size=92 bbWeight=2 PerfScore 66.00
G_M22513_IG23:
mov w0, w1
add x0, x0, #2
ldrsw x3, [x2, #0x08]
cmp x0, x3
bhi G_M22513_IG60
ldr x0, [x2]
sxtw x1, w1
ldrh w1, [x0, x1]
;; size=32 bbWeight=2 PerfScore 24.00
G_M22513_IG24:
add x0, x25, #112
tst w1, #0xD1FFAB1E
beq G_M22513_IG25
movz x2, #0xD1FFAB1E // code for System.Reflection.Metadata.Ecma335.StringHeap:GetVirtualHandleMemoryBlock(System.Reflection.Metadata.StringHandle):System.Reflection.Internal.MemoryBlock:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
b G_M22513_IG26
;; size=36 bbWeight=2 PerfScore 17.00
G_M22513_IG25:
movz x2, #0xD1FFAB1E // code for System.Reflection.Metadata.Ecma335.StringHeap:GetNonVirtualStringMemoryBlock(System.Reflection.Metadata.StringHandle):System.Reflection.Internal.MemoryBlock:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=20 bbWeight=2 PerfScore 11.00
G_M22513_IG26:
tbnz w1, #31, G_M22513_IG58
mov x3, x0
cmp w19, w1
bne G_M22513_IG03
mov w2, w1
mov x0, x22
mov x1, x3
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
cbz w0, G_M22513_IG03
;; size=52 bbWeight=2 PerfScore 22.00
G_M22513_IG27:
str xzr, [x24]
add x0, x21, #72
ldapr x0, [x0]
cbnz x0, G_M22513_IG29
add x26, x21, #72
add x25, x21, #112
ldr x0, [x25]
movz x1, #0xD1FFAB1E // code for System.Reflection.MetadataLoadContext:DisposeCheck():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x25, [x25, #0x10]
cbz x25, G_M22513_IG56
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M22513_IG53
;; size=80 bbWeight=0.50 PerfScore 13.75
G_M22513_IG28:
movz x0, #0xD1FFAB1E // data for System.Reflection.Metadata.Ecma335.MetadataTokens:TableCount
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
cmp w0, #2
ble G_M22513_IG55
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
ldr x1, [x25, #0x30]
ldr w0, [x1, #0x08]
cmp w0, #2
bls G_M22513_IG61
ldr w1, [x1, #0x18]
str w1, [x20, #0x10]
sxtw x1, w1
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
add x14, x20, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
cbz x26, G_M22513_IG54
mov x0, x26
mov x1, x20
mov x2, xzr
bl System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
cbnz x0, G_M22513_IG29
add x0, x21, #72
ldapr x0, [x0]
;; size=132 bbWeight=0.50 PerfScore 16.75
G_M22513_IG29:
orr w1, w28, #0xD1FFAB1E
movz x3, #0xD1FFAB1E
+ movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
mov x2, x21
movz x4, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Ecma.MetadataTable`2[System.__Canon,System.__Canon]:GetOrAdd(System.Reflection.Metadata.EntityHandle,System.__Canon,System.Func`3[System.Reflection.Metadata.EntityHandle,System.__Canon,System.__Canon]):System.__Canon:this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
ldr wzr, [x0]
blr x4
b G_M22513_IG50
- ;; size=48 bbWeight=0.50 PerfScore 7.25
+ ;; size=52 bbWeight=0.50 PerfScore 7.50
G_M22513_IG30:
ldr w26, [x25, #0xD1FFAB1E]
mov w28, wzr
;; size=8 bbWeight=4 PerfScore 14.00
G_M22513_IG31:
cmp w28, w26
bge G_M22513_IG51
add w28, w28, #1
and w27, w28, #0xD1FFAB1E
add x2, x25, #0xD1FFAB1E
mov x0, x2
sub w1, w27, #1
ldr w3, [x0, #0x1C]
mul w1, w1, w3
sxtw w3, w1
add x4, x0, #32
mov x5, x4
ldr w0, [x0, #0x08]
add w0, w3, w0
mov w3, w0
add x3, x3, #4
ldrsw x6, [x5, #0x08]
cmp x3, x6
bhi G_M22513_IG60
;; size=76 bbWeight=4 PerfScore 78.00
G_M22513_IG32:
ldr x3, [x5]
sxtw x0, w0
ldr w0, [x3, x0]
tbz w0, #21, G_M22513_IG31
mov x0, x2
sxtw w5, w1
ldr w7, [x0, #0x18]
add w5, w5, w7
sxtw w7, w5
ldrb w0, [x0, #0x04]
cbz w0, G_M22513_IG33
mov w8, w7
add x8, x8, #2
cmp x8, x6
bhi G_M22513_IG60
sxtw x7, w7
ldrh w7, [x3, x7]
b G_M22513_IG34
;; size=72 bbWeight=2 PerfScore 47.00
G_M22513_IG33:
mov w8, w7
add x8, x8, #4
cmp x8, x6
bhi G_M22513_IG60
sxtw x7, w7
ldr w7, [x3, x7]
;; size=24 bbWeight=2 PerfScore 12.00
G_M22513_IG34:
lsr w8, w7, #2
and w7, w7, #3
lsl w7, w7, #3
movz w9, #0xD1FFAB1E
movk w9, #39 LSL #16
lsr w7, w9, w7
lsl w7, w7, #24
cbz w7, G_M22513_IG59
tst w8, #0xD1FFAB1E
bne G_M22513_IG59
orr w7, w7, w8
and w7, w7, #0xD1FFAB1E
lsr w7, w7, #24
uxtb w7, w7
cmp w7, #35
bne G_M22513_IG31
cbz w0, G_M22513_IG35
mov w0, w5
add x0, x0, #2
cmp x0, x6
bhi G_M22513_IG60
sxtw x5, w5
ldrh w0, [x3, x5]
b G_M22513_IG36
;; size=96 bbWeight=2 PerfScore 39.00
G_M22513_IG35:
mov w0, w5
add x0, x0, #4
cmp x0, x6
bhi G_M22513_IG60
sxtw x0, w5
ldr w0, [x3, x0]
;; size=24 bbWeight=2 PerfScore 12.00
G_M22513_IG36:
lsr w5, w0, #2
and w0, w0, #3
lsl w0, w0, #3
lsr w0, w9, w0
lsl w0, w0, #24
cbz w0, G_M22513_IG59
tst w5, #0xD1FFAB1E
bne G_M22513_IG59
orr w5, w0, w5
and w0, w5, #0xD1FFAB1E
lsr w0, w0, #24
uxtb w0, w0
cmp w0, #35
str x4, [fp, #0x18] // [V524 cse8]
str w5, [fp, #0x2C] // [V425 tmp411]
bne G_M22513_IG31
str x2, [fp, #0x20] // [V523 cse7]
mov x0, x2
ldr w7, [x0, #0x10]
add w1, w1, w7
ldrb w0, [x0, #0x05]
cbnz w0, G_M22513_IG37
mov w0, w1
add x0, x0, #4
cmp x0, x6
bhi G_M22513_IG60
sxtw x1, w1
ldr w1, [x3, x1]
tst w1, #0xD1FFAB1E
bne G_M22513_IG57
b G_M22513_IG38
;; size=124 bbWeight=2 PerfScore 60.00
G_M22513_IG37:
mov w0, w1
add x0, x0, #2
cmp x0, x6
bhi G_M22513_IG60
sxtw x0, w1
ldrh w1, [x3, x0]
;; size=24 bbWeight=2 PerfScore 12.00
G_M22513_IG38:
add x0, x25, #112
tst w1, #0xD1FFAB1E
beq G_M22513_IG39
movz x3, #0xD1FFAB1E // code for System.Reflection.Metadata.Ecma335.StringHeap:GetVirtualHandleMemoryBlock(System.Reflection.Metadata.StringHandle):System.Reflection.Internal.MemoryBlock:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M22513_IG40
;; size=36 bbWeight=2 PerfScore 17.00
G_M22513_IG39:
movz x3, #0xD1FFAB1E // code for System.Reflection.Metadata.Ecma335.StringHeap:GetNonVirtualStringMemoryBlock(System.Reflection.Metadata.StringHandle):System.Reflection.Internal.MemoryBlock:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
;; size=20 bbWeight=2 PerfScore 11.00
G_M22513_IG40:
tbnz w1, #31, G_M22513_IG58
mov x3, x0
cmp w20, w1
bne G_M22513_IG31
mov w2, w1
mov x0, x23
mov x1, x3
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
cbz w0, G_M22513_IG31
ldp x1, x0, [fp, #0x18] // [V524 cse8], [V523 cse7]
sub w3, w27, #1
ldr w4, [x0, #0x1C]
mul w3, w3, w4
ldr w4, [x0, #0x14]
add w3, w3, w4
ldrb w0, [x0, #0x05]
cbnz w0, G_M22513_IG41
mov w0, w3
add x0, x0, #4
ldrsw x4, [x1, #0x08]
cmp x0, x4
bhi G_M22513_IG60
ldr x1, [x1]
sxtw x3, w3
ldr w1, [x1, x3]
tst w1, #0xD1FFAB1E
bne G_M22513_IG57
b G_M22513_IG42
;; size=128 bbWeight=2 PerfScore 83.00
G_M22513_IG41:
mov w0, w3
add x0, x0, #2
ldrsw x4, [x1, #0x08]
cmp x0, x4
bhi G_M22513_IG60
ldr x0, [x1]
sxtw x1, w3
ldrh w1, [x0, x1]
;; size=32 bbWeight=2 PerfScore 24.00
G_M22513_IG42:
add x0, x25, #112
tst w1, #0xD1FFAB1E
beq G_M22513_IG43
movz x3, #0xD1FFAB1E // code for System.Reflection.Metadata.Ecma335.StringHeap:GetVirtualHandleMemoryBlock(System.Reflection.Metadata.StringHandle):System.Reflection.Internal.MemoryBlock:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M22513_IG44
;; size=36 bbWeight=2 PerfScore 17.00
G_M22513_IG43:
movz x3, #0xD1FFAB1E // code for System.Reflection.Metadata.Ecma335.StringHeap:GetNonVirtualStringMemoryBlock(System.Reflection.Metadata.StringHandle):System.Reflection.Internal.MemoryBlock:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
;; size=20 bbWeight=2 PerfScore 11.00
G_M22513_IG44:
tbnz w1, #31, G_M22513_IG58
mov x3, x0
cmp w19, w1
bne G_M22513_IG31
ldr w27, [fp, #0x2C] // [V425 tmp411]
mov w2, w1
mov x0, x22
mov x1, x3
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
cbz w0, G_M22513_IG31
;; size=56 bbWeight=2 PerfScore 26.00
G_M22513_IG45:
mov w0, w27
movz x1, #0xD1FFAB1E // code for System.Reflection.Metadata.AssemblyReferenceHandle:op_Explicit(System.Reflection.Metadata.EntityHandle):System.Reflection.Metadata.AssemblyReferenceHandle
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
str xzr, [x24]
mov x1, x21
movz x2, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Ecma.EcmaResolver:ResolveToAssemblyOrExceptionAssembly(System.Reflection.Metadata.AssemblyReferenceHandle,System.Reflection.TypeLoading.Ecma.EcmaModule):System.Reflection.TypeLoading.RoAssembly
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M22513_IG48
;; size=56 bbWeight=0.50 PerfScore 7.00
G_M22513_IG46:
ldr x14, [x0]
movz x15, #0xD1FFAB1E
movk x15, #0xD1FFAB1E LSL #16
movk x15, #0xD1FFAB1E LSL #32
cmp x14, x15
bne G_M22513_IG48
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M22513_IG47:
ldr x15, [x0, #0x38]
mov x14, x24
bl CORINFO_HELP_CHECKED_ASSIGN_REF
mov x0, xzr
b G_M22513_IG48
;; size=20 bbWeight=0.50 PerfScore 3.00
G_M22513_IG48:
cbz x0, G_M22513_IG49
mov x3, x23
mov w4, w20
mov x1, x22
mov w2, w19
mov x6, x24
mov w5, wzr
movz x7, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoAssembly:GetTypeCore(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],ubyte,byref):System.Reflection.TypeLoading.RoDefinitionType:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
b G_M22513_IG50
;; size=52 bbWeight=0.50 PerfScore 5.25
G_M22513_IG49:
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M22513_IG50:
ldp x27, x28, [sp, #0x90]
ldp x25, x26, [sp, #0x80]
ldp x23, x24, [sp, #0x70]
ldp x21, x22, [sp, #0x60]
ldp x19, x20, [sp, #0x50]
ldp fp, lr, [sp], #0xA0
ret lr
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M22513_IG51:
movz x0, #0xD1FFAB1E // code for System.SR:get_TypeNotFound():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x25, x0
movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x2, [x0]
mov x0, #1
cmp w19, #0
csel x0, x22, x0, ne
str x0, [fp, #0x38] // [V308 tmp294]
mov w1, w19
movz x3, #0xD1FFAB1E // code for System.String:CreateStringFromEncoding(ulong,int,System.Text.Encoding):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x19, x0
str xzr, [fp, #0x38] // [V308 tmp294]
movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x2, [x0]
mov x0, #1
cmp w20, #0
csel x0, x23, x0, ne
str x0, [fp, #0x30] // [V314 tmp300]
mov w1, w20
movz x3, #0xD1FFAB1E // code for System.String:CreateStringFromEncoding(ulong,int,System.Text.Encoding):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x1, x0
str xzr, [fp, #0x30] // [V314 tmp300]
mov x0, x19
movz x2, #0xD1FFAB1E // code for System.Reflection.TypeLoading.Helpers:AppendTypeName(System.String,System.String):System.String
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x19, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
ldr x2, [x21, #0x08]
mov x0, x25
mov x1, x19
movz x3, #0xD1FFAB1E // code for System.SR:Format(System.String,System.Object,System.Object):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x1, x0
mov x0, x20
movz x2, #0xD1FFAB1E // code for System.TypeLoadException:.ctor(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x14, x24
mov x15, x20
bl CORINFO_HELP_CHECKED_ASSIGN_REF
mov x0, xzr
- ;; size=268 bbWeight=4 PerfScore 248.00
+ ;; size=276 bbWeight=4 PerfScore 252.00
G_M22513_IG52:
ldp x27, x28, [sp, #0x90]
ldp x25, x26, [sp, #0x80]
ldp x23, x24, [sp, #0x70]
ldp x21, x22, [sp, #0x60]
ldp x19, x20, [sp, #0x50]
ldp fp, lr, [sp], #0xA0
ret lr
;; size=28 bbWeight=4 PerfScore 28.00
G_M22513_IG53:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M22513_IG28
;; size=24 bbWeight=0 PerfScore 0.00
G_M22513_IG54:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowNullReferenceException()
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_M22513_IG55:
movz x0, #0xD1FFAB1E // code for System.Reflection.Throw:TableIndexOutOfRange()
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_M22513_IG56:
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
movz x1, #0xD1FFAB1E // code for System.Reflection.Throw:ArgumentNull(System.String)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=44 bbWeight=0 PerfScore 0.00
G_M22513_IG57:
movz x0, #0xD1FFAB1E // code for System.Reflection.Throw:ReferenceOverflow()
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_M22513_IG58:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M22513_IG59:
movz x0, #0xD1FFAB1E // code for System.Reflection.Throw:InvalidCodedIndex()
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_M22513_IG60:
movz x0, #0xD1FFAB1E // code for System.Reflection.Throw:OutOfBounds()
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_M22513_IG61:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2832, prolog size 60, PerfScore 1456.25, instruction count 708, allocated bytes for code 2832 (MethodHash=63aaa80e) for method System.Reflection.TypeLoading.Ecma.EcmaModule:GetTypeCoreNoCache(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],byref):System.Reflection.TypeLoading.RoDefinitionType:this (FullOpts)
+; Total bytes of code 2844, prolog size 60, PerfScore 1460.50, instruction count 711, allocated bytes for code 2844 (MethodHash=63aaa80e) for method System.Reflection.TypeLoading.Ecma.EcmaModule:GetTypeCoreNoCache(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],byref):System.Reflection.TypeLoading.RoDefinitionType:this (FullOpts)
12 (2.61 % of base) - System.Reflection.TypeLoading.Ecma.MetadataExtensions:GetBlobBytes(System.Reflection.Metadata.BlobHandle,System.Reflection.Metadata.MetadataReader):ubyte[]
; Assembly listing for method System.Reflection.TypeLoading.Ecma.MetadataExtensions:GetBlobBytes(System.Reflection.Metadata.BlobHandle,System.Reflection.Metadata.MetadataReader):ubyte[] (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Reflection.Metadata.BlobHandle>
; V01 arg1 [V01,T01] ( 4, 4 ) ref -> x1 class-hnd single-def <System.Reflection.Metadata.MetadataReader>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T09] ( 4, 2.50) ref -> registers class-hnd "Inline return value spill temp" <ubyte[]>
;* V04 tmp2 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.BlobHandle>
;* V05 tmp3 [V05 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V06 tmp4 [V06,T02] ( 3, 4 ) byref -> x20 single-def "Inlining Arg"
; V07 tmp5 [V07 ] ( 2, 1 ) int -> [fp+0x20] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V08 tmp6 [V08,T04] ( 7, 3.50) int -> x21 "Inline stloc first use temp"
;* V09 tmp7 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <ubyte[]>
;* V10 tmp8 [V10 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.BlobHandle>
; V11 tmp9 [V11,T10] ( 4, 2 ) ubyte -> x20 "Inline stloc first use temp"
; V12 tmp10 [V12,T03] ( 7, 3.50) ref -> x0 class-hnd "Inline stloc first use temp" <ubyte[]>
; V13 tmp11 [V13 ] ( 3, 1.50) byref -> [fp+0x18] must-init pinned "Inline stloc first use temp"
; V14 tmp12 [V14,T05] ( 3, 3 ) byref -> x1 single-def "Inlining Arg"
; V15 tmp13 [V15,T08] ( 3, 3 ) int -> x0 "Inlining Arg"
;* V16 tmp14 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V17 tmp15 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
; V18 tmp16 [V18,T12] ( 2, 2 ) long -> x19 "Inlining Arg"
; V19 tmp17 [V19,T15] ( 3, 1.50) ref -> x20 class-hnd "Inline return value spill temp" <ubyte[]>
; V20 tmp18 [V20,T06] ( 3, 3 ) ref -> x20 class-hnd exact single-def "dup spill" <ubyte[]>
; V21 tmp19 [V21,T11] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
;* V22 tmp20 [V22 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V23 tmp21 [V23,T13] ( 2, 2 ) long -> x2 "Inlining Arg"
; V24 tmp22 [V24,T00] ( 6, 4 ) int -> x19 single-def "field V00._value (fldOffset=0x0)" P-INDEP
;* V25 tmp23 [V25 ] ( 0, 0 ) int -> zero-ref "field V04._value (fldOffset=0x0)" P-INDEP
;* V26 tmp24 [V26 ] ( 0, 0 ) int -> zero-ref "field V10._value (fldOffset=0x0)" P-INDEP
; V27 tmp25 [V27,T16] ( 2, 1 ) byref -> x19 single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;* V28 tmp26 [V28 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
;* V29 tmp27 [V29 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
;* V30 tmp28 [V30 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
; V31 tmp29 [V31,T07] ( 3, 3 ) ref -> x0 single-def "arr expr"
; V32 tmp30 [V32,T14] ( 2, 2 ) long -> x1 "Cast away GC"
;
; Lcl frame size = 24
G_M42642_IG01:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x28]
str x21, [sp, #0x38]
mov fp, sp
str xzr, [fp, #0x18] // [V13 tmp11]
mov w19, w0
;; size=24 bbWeight=1 PerfScore 5.00
G_M42642_IG02:
ldrsb wzr, [x1]
add x20, x1, #136
tst w19, #0xD1FFAB1E
bne G_M42642_IG07
;; size=16 bbWeight=1 PerfScore 5.00
G_M42642_IG03:
add x0, x20, #8
add x2, fp, #32 // [V07 tmp5]
mov w1, w19
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
sxtw w21, w0
movn w1, #0xD1FFAB1E LSL #16
cmp w21, w1
beq G_M42642_IG06
add x1, x20, #8
ldr w0, [fp, #0x20] // [V07 tmp5]
add w0, w19, w0
mov w2, w0
add x2, x2, w21, UXTW
ldrsw x3, [x1, #0x08]
cmp x2, x3
bhi G_M42642_IG12
ldr x1, [x1]
add x19, x1, w0, SXTW
tbnz w21, #31, G_M42642_IG11
cbz w21, G_M42642_IG04
sxtw x1, w21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_VC
mov x20, x0
add x0, x20, #16
mov w2, w21
mov x1, x19
movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M42642_IG05
;; size=156 bbWeight=0.50 PerfScore 18.00
G_M42642_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #19
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Array+EmptyArray`1[ubyte]:Value
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x20, [x0]
- ;; size=32 bbWeight=0.50 PerfScore 3.50
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M42642_IG05:
b G_M42642_IG09
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M42642_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #19
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Array+EmptyArray`1[ubyte]:Value
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x20, [x0]
b G_M42642_IG09
- ;; size=36 bbWeight=0.50 PerfScore 4.00
+ ;; size=40 bbWeight=0.50 PerfScore 4.25
G_M42642_IG07:
uxtb w20, w19
movz x0, #0xD1FFAB1E // data for System.Reflection.Metadata.Ecma335.BlobHeap:s_virtualValues
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
ldr w1, [x0, #0x08]
cmp w20, w1
bhs G_M42642_IG13
add x0, x0, #16
ldr x0, [x0, w20, UXTW #3]
ldrsb wzr, [x0]
movz x1, #0xD1FFAB1E // code for System.Object:MemberwiseClone():System.Object:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
sub w1, w20, #3
cmp w1, #1
bhi G_M42642_IG08
ldr w1, [x0, #0x08]
cmp w1, #2
bls G_M42642_IG13
add x1, x0, #18
str x1, [fp, #0x18] // [V13 tmp11]
ldr x1, [fp, #0x18] // [V13 tmp11]
lsr w2, w19, #8
uxth w2, w2
str w2, [x1]
str xzr, [fp, #0x18] // [V13 tmp11]
- ;; size=112 bbWeight=0.50 PerfScore 17.25
+ ;; size=116 bbWeight=0.50 PerfScore 17.50
G_M42642_IG08:
mov x20, x0
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M42642_IG09:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
G_M42642_IG10:
ldr x21, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x40
ret lr
;; size=16 bbWeight=1 PerfScore 5.00
G_M42642_IG11:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M42642_IG12:
movz x0, #0xD1FFAB1E // code for System.Reflection.Throw:OutOfBounds()
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_M42642_IG13:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 460, prolog size 20, PerfScore 59.00, instruction count 115, allocated bytes for code 460 (MethodHash=615d596d) for method System.Reflection.TypeLoading.Ecma.MetadataExtensions:GetBlobBytes(System.Reflection.Metadata.BlobHandle,System.Reflection.Metadata.MetadataReader):ubyte[] (FullOpts)
+; Total bytes of code 472, prolog size 20, PerfScore 59.75, instruction count 118, allocated bytes for code 472 (MethodHash=615d596d) for method System.Reflection.TypeLoading.Ecma.MetadataExtensions:GetBlobBytes(System.Reflection.Metadata.BlobHandle,System.Reflection.Metadata.MetadataReader):ubyte[] (FullOpts)
12 (2.61 % of base) - System.Reflection.TypeLoading.Ecma.MetadataExtensions:GetBlobContent(System.Reflection.Metadata.BlobHandle,System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[ubyte]
; Assembly listing for method System.Reflection.TypeLoading.Ecma.MetadataExtensions:GetBlobContent(System.Reflection.Metadata.BlobHandle,System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[ubyte] (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 16 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Reflection.Metadata.BlobHandle>
; V01 arg1 [V01,T01] ( 4, 4 ) ref -> x1 class-hnd single-def <System.Reflection.Metadata.MetadataReader>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T09] ( 4, 2.50) ref -> registers class-hnd "Inline return value spill temp" <ubyte[]>
;* V04 tmp2 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.BlobHandle>
;* V05 tmp3 [V05 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V06 tmp4 [V06,T02] ( 3, 4 ) byref -> x20 single-def "Inlining Arg"
; V07 tmp5 [V07 ] ( 2, 1 ) int -> [fp+0x20] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V08 tmp6 [V08,T04] ( 7, 3.50) int -> x21 "Inline stloc first use temp"
;* V09 tmp7 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <ubyte[]>
;* V10 tmp8 [V10 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.BlobHandle>
; V11 tmp9 [V11,T10] ( 4, 2 ) ubyte -> x20 "Inline stloc first use temp"
; V12 tmp10 [V12,T03] ( 7, 3.50) ref -> x0 class-hnd "Inline stloc first use temp" <ubyte[]>
; V13 tmp11 [V13 ] ( 3, 1.50) byref -> [fp+0x18] must-init pinned "Inline stloc first use temp"
; V14 tmp12 [V14,T05] ( 3, 3 ) byref -> x1 single-def "Inlining Arg"
; V15 tmp13 [V15,T08] ( 3, 3 ) int -> x0 "Inlining Arg"
;* V16 tmp14 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V17 tmp15 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
; V18 tmp16 [V18,T12] ( 2, 2 ) long -> x19 "Inlining Arg"
; V19 tmp17 [V19,T15] ( 3, 1.50) ref -> x20 class-hnd "Inline return value spill temp" <ubyte[]>
; V20 tmp18 [V20,T06] ( 3, 3 ) ref -> x20 class-hnd exact single-def "dup spill" <ubyte[]>
; V21 tmp19 [V21,T11] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
;* V22 tmp20 [V22 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V23 tmp21 [V23,T13] ( 2, 2 ) long -> x2 "Inlining Arg"
;* V24 tmp22 [V24 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
; V25 tmp23 [V25,T00] ( 6, 4 ) int -> x19 single-def "field V00._value (fldOffset=0x0)" P-INDEP
;* V26 tmp24 [V26 ] ( 0, 0 ) int -> zero-ref "field V04._value (fldOffset=0x0)" P-INDEP
;* V27 tmp25 [V27 ] ( 0, 0 ) int -> zero-ref "field V10._value (fldOffset=0x0)" P-INDEP
; V28 tmp26 [V28,T16] ( 2, 1 ) byref -> x19 single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;* V29 tmp27 [V29 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
;* V30 tmp28 [V30 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
;* V31 tmp29 [V31 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
;* V32 tmp30 [V32 ] ( 0, 0 ) ref -> zero-ref single-def "field V24.array (fldOffset=0x0)" P-INDEP
; V33 tmp31 [V33,T07] ( 3, 3 ) ref -> x0 single-def "arr expr"
; V34 tmp32 [V34,T14] ( 2, 2 ) long -> x1 "Cast away GC"
;
; Lcl frame size = 24
G_M9028_IG01:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x28]
str x21, [sp, #0x38]
mov fp, sp
str xzr, [fp, #0x18] // [V13 tmp11]
mov w19, w0
;; size=24 bbWeight=1 PerfScore 5.00
G_M9028_IG02:
ldrsb wzr, [x1]
add x20, x1, #136
tst w19, #0xD1FFAB1E
bne G_M9028_IG07
;; size=16 bbWeight=1 PerfScore 5.00
G_M9028_IG03:
add x0, x20, #8
add x2, fp, #32 // [V07 tmp5]
mov w1, w19
movz x3, #0xD1FFAB1E // code for System.Reflection.Internal.MemoryBlock:PeekCompressedInteger(int,byref):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
sxtw w21, w0
movn w1, #0xD1FFAB1E LSL #16
cmp w21, w1
beq G_M9028_IG06
add x1, x20, #8
ldr w0, [fp, #0x20] // [V07 tmp5]
add w0, w19, w0
mov w2, w0
add x2, x2, w21, UXTW
ldrsw x3, [x1, #0x08]
cmp x2, x3
bhi G_M9028_IG12
ldr x1, [x1]
add x19, x1, w0, SXTW
tbnz w21, #31, G_M9028_IG11
cbz w21, G_M9028_IG04
sxtw x1, w21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_VC
mov x20, x0
add x0, x20, #16
mov w2, w21
mov x1, x19
movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M9028_IG05
;; size=156 bbWeight=0.50 PerfScore 18.00
G_M9028_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #19
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Array+EmptyArray`1[ubyte]:Value
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x20, [x0]
- ;; size=32 bbWeight=0.50 PerfScore 3.50
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M9028_IG05:
b G_M9028_IG09
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M9028_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #19
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Array+EmptyArray`1[ubyte]:Value
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x20, [x0]
b G_M9028_IG09
- ;; size=36 bbWeight=0.50 PerfScore 4.00
+ ;; size=40 bbWeight=0.50 PerfScore 4.25
G_M9028_IG07:
uxtb w20, w19
movz x0, #0xD1FFAB1E // data for System.Reflection.Metadata.Ecma335.BlobHeap:s_virtualValues
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
ldr w1, [x0, #0x08]
cmp w20, w1
bhs G_M9028_IG13
add x0, x0, #16
ldr x0, [x0, w20, UXTW #3]
ldrsb wzr, [x0]
movz x1, #0xD1FFAB1E // code for System.Object:MemberwiseClone():System.Object:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
sub w1, w20, #3
cmp w1, #1
bhi G_M9028_IG08
ldr w1, [x0, #0x08]
cmp w1, #2
bls G_M9028_IG13
add x1, x0, #18
str x1, [fp, #0x18] // [V13 tmp11]
ldr x1, [fp, #0x18] // [V13 tmp11]
lsr w2, w19, #8
uxth w2, w2
str w2, [x1]
str xzr, [fp, #0x18] // [V13 tmp11]
- ;; size=112 bbWeight=0.50 PerfScore 17.25
+ ;; size=116 bbWeight=0.50 PerfScore 17.50
G_M9028_IG08:
mov x20, x0
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M9028_IG09:
mov x0, x20
;; size=4 bbWeight=1 PerfScore 0.50
G_M9028_IG10:
ldr x21, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x40
ret lr
;; size=16 bbWeight=1 PerfScore 5.00
G_M9028_IG11:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M9028_IG12:
movz x0, #0xD1FFAB1E // code for System.Reflection.Throw:OutOfBounds()
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_M9028_IG13:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 460, prolog size 20, PerfScore 59.00, instruction count 115, allocated bytes for code 460 (MethodHash=4e67dcbb) for method System.Reflection.TypeLoading.Ecma.MetadataExtensions:GetBlobContent(System.Reflection.Metadata.BlobHandle,System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[ubyte] (FullOpts)
+; Total bytes of code 472, prolog size 20, PerfScore 59.75, instruction count 118, allocated bytes for code 472 (MethodHash=4e67dcbb) for method System.Reflection.TypeLoading.Ecma.MetadataExtensions:GetBlobContent(System.Reflection.Metadata.BlobHandle,System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[ubyte] (FullOpts)
12 (1.69 % of base) - System.Reflection.TypeLoading.RoDefinitionType+d__30:MoveNext():ubyte:this
; Assembly listing for method System.Reflection.TypeLoading.RoDefinitionType+<get_CustomAttributes>d__30:MoveNext():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; 12 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 18, 10.50) ref -> [fp+0x10] this class-hnd EH-live single-def <System.Reflection.TypeLoading.RoDefinitionType+<get_CustomAttributes>d__30>
; V01 loc0 [V01,T05] ( 5, 3 ) ubyte -> registers
; V02 loc1 [V02,T09] ( 3, 2.75) int -> x1 single-def
; V03 loc2 [V03,T02] ( 8, 4.50) ref -> x19 class-hnd single-def <System.Reflection.TypeLoading.RoDefinitionType>
; V04 loc3 [V04,T18] ( 2, 1 ) ref -> x15 class-hnd <System.Reflection.CustomAttributeData>
;* V05 loc4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Reflection.ConstructorInfo>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T01] ( 5, 5 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoPseudoCustomAttributeData>
; V08 tmp2 [V08,T17] ( 3, 1.50) int -> x0 "Inline return value spill temp"
; V09 tmp3 [V09,T08] ( 3, 3 ) int -> x0 "dup spill"
;* V10 tmp4 [V10 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.TypeLoading.RoModule>
;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.TypeLoading.RoAssembly>
;* V13 tmp7 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Reflection.ConstructorInfo>
; V14 tmp8 [V14,T03] ( 4, 4 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <System.Reflection.MetadataLoadContext>
; V15 tmp9 [V15,T14] ( 2, 2 ) ref -> x20 class-hnd single-def "dup spill" <System.Reflection.ConstructorInfo>
; V16 tmp10 [V16,T10] ( 5, 2.50) ref -> x20
; V17 tmp11 [V17,T06] ( 3, 3 ) ref -> x20 class-hnd single-def "dup spill" <System.Reflection.ConstructorInfo>
;* V18 tmp12 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.Reflection.ConstructorInfo>
;* V19 tmp13 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V20 tmp14 [V20 ] ( 0, 0 ) ref -> zero-ref
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref
;* V22 tmp16 [V22 ] ( 0, 0 ) ref -> zero-ref single-def
; V23 tmp17 [V23,T19] ( 2, 1 ) ref -> x15 single-def
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref
;* V25 tmp19 [V25 ] ( 0, 0 ) ref -> zero-ref
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref single-def
; V27 tmp21 [V27,T20] ( 2, 1 ) ref -> x15 single-def
; V28 tmp22 [V28,T15] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V29 tmp23 [V29,T07] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V30 tmp24 [V30,T16] ( 2, 2 ) ref -> x2 single-def "argument with side effect"
; V31 PSPSym [V31,T21] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
; V32 cse0 [V32,T11] ( 5, 2.50) ref -> x0 multi-def "CSE #02: aggressive"
; V33 cse1 [V33,T13] ( 4, 2 ) byref -> x20 "CSE #03: aggressive"
; V34 cse2 [V34,T04] ( 6, 3 ) long -> x20 multi-def "CSE #01: aggressive"
; V35 cse3 [V35,T12] ( 5, 2.50) long -> x22 multi-def "CSE #06: aggressive"
;
; Lcl frame size = 16
G_M36375_IG01:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
mov fp, sp
add x1, sp, #64
stp x0, x1, [fp, #0x10] // [V00 this], [V31 PSPSym]
;; size=24 bbWeight=1 PerfScore 5.00
G_M36375_IG02:
ldr w1, [x0, #0x20]
ldr x19, [x0, #0x10]
cmp w1, #2
bhi G_M36375_IG04
;; size=16 bbWeight=1 PerfScore 7.50
G_M36375_IG03:
mov w1, w1
adr x2, [@RWD00]
ldr w2, [x2, x1, LSL #2]
adr x3, [G_M36375_IG02]
add x2, x2, x3
br x2
;; size=24 bbWeight=0.75 PerfScore 4.50
G_M36375_IG04:
mov w2, wzr
b G_M36375_IG15
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M36375_IG05:
movn w1, #0
str w1, [x0, #0x20]
b G_M36375_IG12
;; size=12 bbWeight=0.50 PerfScore 1.25
G_M36375_IG06:
movn w1, #0
str w1, [x0, #0x20]
mov x0, x19
ldr x1, [x19]
ldr x1, [x1, #0xD8]
ldr x1, [x1, #0x30]
blr x1
movz x20, #0xD1FFAB1E // code for System.Collections.Generic.IEnumerable`1[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.__Canon]:this
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
mov x11, x20
ldr xip0, [x11]
blr xip0
ldr x20, [fp, #0x10] // [V00 this]
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
mov x0, x20
;; size=72 bbWeight=0.50 PerfScore 11.25
G_M36375_IG07:
movn w11, #2
str w11, [x0, #0x20]
ldr x0, [x0, #0x18]
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
sub x11, x20, #16
ldr xip0, [x11]
blr xip0
cbnz w0, G_M36375_IG14
movn w0, #0
ldr x21, [fp, #0x10] // [V00 this]
str w0, [x21, #0x20]
ldr x0, [x21, #0x18]
cbz x0, G_M36375_IG08
add x11, x20, #8
ldr xip0, [x11]
blr xip0
;; size=72 bbWeight=0.50 PerfScore 11.75
G_M36375_IG08:
str xzr, [x21, #0x18]
add x20, x19, #80
ldapr w0, [x20]
cmn w0, #1
bne G_M36375_IG09
mov x0, x19
ldr x1, [x19]
ldr x1, [x1, #0xD0]
ldr x1, [x1, #0x20]
blr x1
stlr w0, [x20]
b G_M36375_IG10
;; size=48 bbWeight=0.50 PerfScore 9.25
G_M36375_IG09:
ldapr w0, [x20]
;; size=4 bbWeight=0.50 PerfScore 1.50
G_M36375_IG10:
tbz w0, #12, G_M36375_IG12
mov x0, x19
ldr x1, [x19]
ldr x1, [x1, #0xC8]
ldr x1, [x1, #0x30]
blr x1
ldr x1, [x0]
ldr x1, [x1, #0x60]
ldr x1, [x1, #0x18]
blr x1
ldr x19, [x0, #0x28]
add x0, x19, #88
ldapr x20, [x0]
cbnz x20, G_M36375_IG11
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
mov x0, x22
mov w1, #50
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x2, #0xD1FFAB1E // data for System.Array+EmptyArray`1[int]:Value
+ movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
mov x0, x19
mov w1, #35
movz x3, #0xD1FFAB1E // code for System.Reflection.MetadataLoadContext:TryGetConstructor(int,int[]):System.Reflection.ConstructorInfo:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x20, x0
add x14, x19, #88
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
- ;; size=136 bbWeight=0.50 PerfScore 22.75
+ ;; size=140 bbWeight=0.50 PerfScore 23.00
G_M36375_IG11:
cbnz x20, G_M36375_IG13
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M36375_IG12:
ldr x0, [fp, #0x10] // [V00 this]
mov w1, wzr
mov w2, w1
b G_M36375_IG15
;; size=16 bbWeight=0.50 PerfScore 2.00
G_M36375_IG13:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
add x14, x19, #24
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
mov x0, x22
mov w1, #61
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Reflection.CustomAttributeTypedArgument]:Value
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x19, #40
bl CORINFO_HELP_ASSIGN_REF
mov x0, x22
mov w1, #63
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Reflection.CustomAttributeNamedArgument]:Value
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x19, #48
bl CORINFO_HELP_ASSIGN_REF
ldr x20, [fp, #0x10] // [V00 this]
add x14, x20, #8
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
mov w0, #2
str w0, [x20, #0x20]
mov w1, #1
mov w2, w1
b G_M36375_IG15
- ;; size=144 bbWeight=0.50 PerfScore 14.50
+ ;; size=152 bbWeight=0.50 PerfScore 15.00
G_M36375_IG14:
ldr x19, [fp, #0x10] // [V00 this]
ldr x0, [x19, #0x18]
sub x11, x20, #8
ldr xip0, [x11]
blr xip0
mov x15, x0
add x14, x19, #8
bl CORINFO_HELP_ASSIGN_REF
mov w0, #1
str w0, [x19, #0x20]
sxtw w1, w0
mov w2, w1
;; size=48 bbWeight=0.50 PerfScore 7.00
G_M36375_IG15:
mov w0, w2
;; size=4 bbWeight=1 PerfScore 0.50
G_M36375_IG16:
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x40
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
G_M36375_IG17:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
add x3, fp, #64
str x3, [sp, #0x18]
;; size=20 bbWeight=0 PerfScore 0.00
G_M36375_IG18:
ldr x0, [fp, #0x10] // [V00 this]
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoDefinitionType+<get_CustomAttributes>d__30:System.IDisposable.Dispose():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=24 bbWeight=0 PerfScore 0.00
G_M36375_IG19:
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x40
ret lr
;; size=16 bbWeight=0 PerfScore 0.00
RWD00 dd G_M36375_IG06 - G_M36375_IG02
dd G_M36375_IG07 - G_M36375_IG02
dd G_M36375_IG05 - G_M36375_IG02
-; Total bytes of code 708, prolog size 24, PerfScore 104.00, instruction count 177, allocated bytes for code 708 (MethodHash=964f71e8) for method System.Reflection.TypeLoading.RoDefinitionType+<get_CustomAttributes>d__30:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 720, prolog size 24, PerfScore 104.75, instruction count 180, allocated bytes for code 720 (MethodHash=964f71e8) for method System.Reflection.TypeLoading.RoDefinitionType+<get_CustomAttributes>d__30:MoveNext():ubyte:this (FullOpts)
12 (3.61 % of base) - System.Reflection.TypeLoading.RoExceptionType:.ctor(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Exception):this
; Assembly listing for method System.Reflection.TypeLoading.RoExceptionType:.ctor(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Exception):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; 6 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 7, 7 ) ref -> x19 this class-hnd single-def <System.Reflection.TypeLoading.RoExceptionType>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
;* V02 arg2 [V02 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
; V03 arg3 [V03,T03] ( 3, 3 ) ref -> x22 class-hnd single-def <System.Exception>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T08] ( 3, 2 ) ref -> x25 class-hnd "Inline return value spill temp" <ubyte[]>
; V06 tmp2 [V06,T06] ( 3, 3 ) ref -> x25 class-hnd exact single-def "dup spill" <ubyte[]>
; V07 tmp3 [V07,T10] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
;* V08 tmp4 [V08 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V09 tmp5 [V09,T12] ( 2, 2 ) long -> x2 "Inlining Arg"
; V10 tmp6 [V10,T09] ( 3, 2 ) ref -> x20 class-hnd "Inline return value spill temp" <ubyte[]>
; V11 tmp7 [V11,T07] ( 3, 3 ) ref -> x20 class-hnd exact single-def "dup spill" <ubyte[]>
; V12 tmp8 [V12,T11] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
;* V13 tmp9 [V13 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V14 tmp10 [V14,T13] ( 2, 2 ) long -> x2 "Inlining Arg"
; V15 tmp11 [V15,T04] ( 2, 1.50) byref -> x23 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
; V16 tmp12 [V16,T01] ( 4, 3 ) int -> x20 single-def "field V01._length (fldOffset=0x8)" P-INDEP
; V17 tmp13 [V17,T05] ( 2, 1.50) byref -> x24 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
; V18 tmp14 [V18,T02] ( 4, 3 ) int -> x21 single-def "field V02._length (fldOffset=0x8)" P-INDEP
;
; Lcl frame size = 8
G_M14661_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
stp x23, x24, [sp, #0x38]
str x25, [sp, #0x48]
mov fp, sp
mov x19, x0
mov x23, x1
mov w20, w2
mov x24, x3
mov w21, w4
mov x22, x5
;; size=48 bbWeight=1 PerfScore 8.50
G_M14661_IG02:
movz x14, #0xD1FFAB1E
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x19, #56
bl CORINFO_HELP_ASSIGN_REF
add x1, x19, #80
movn w0, #0
stlr w0, [x1]
cbz w20, G_M14661_IG04
- ;; size=36 bbWeight=1 PerfScore 8.50
+ ;; size=40 bbWeight=1 PerfScore 9.00
G_M14661_IG03:
mov w1, w20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_VC
mov x25, x0
add x0, x25, #16
mov w2, w20
mov x1, x23
movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M14661_IG05
;; size=60 bbWeight=0.50 PerfScore 5.75
G_M14661_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #19
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[ubyte]:Value
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x25, [x14]
- ;; size=32 bbWeight=0.50 PerfScore 3.50
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M14661_IG05:
add x14, x19, #96
mov x15, x25
bl CORINFO_HELP_ASSIGN_REF
cbz w21, G_M14661_IG07
;; size=16 bbWeight=1 PerfScore 3.00
G_M14661_IG06:
mov w1, w21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_VC
mov x20, x0
add x0, x20, #16
mov w2, w21
mov x1, x24
movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M14661_IG08
;; size=60 bbWeight=0.50 PerfScore 5.75
G_M14661_IG07:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #19
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[ubyte]:Value
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x20, [x14]
- ;; size=32 bbWeight=0.50 PerfScore 3.50
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M14661_IG08:
add x14, x19, #104
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #112
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
;; size=24 bbWeight=1 PerfScore 4.00
G_M14661_IG09:
ldr x25, [sp, #0x48]
ldp x23, x24, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x50
ret lr
;; size=24 bbWeight=1 PerfScore 7.00
-; Total bytes of code 332, prolog size 24, PerfScore 49.50, instruction count 83, allocated bytes for code 332 (MethodHash=b21fc6ba) for method System.Reflection.TypeLoading.RoExceptionType:.ctor(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Exception):this (FullOpts)
+; Total bytes of code 344, prolog size 24, PerfScore 50.50, instruction count 86, allocated bytes for code 344 (MethodHash=b21fc6ba) for method System.Reflection.TypeLoading.RoExceptionType:.ctor(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Exception):this (FullOpts)
12 (0.72 % of base) - System.Reflection.TypeLoading.RoFatMethodParameter+d__11:MoveNext():ubyte:this
; Assembly listing for method System.Reflection.TypeLoading.RoFatMethodParameter+<get_CustomAttributes>d__11:MoveNext():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; 36 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 33, 18 ) ref -> [fp+0x18] this class-hnd EH-live single-def <System.Reflection.TypeLoading.RoFatMethodParameter+<get_CustomAttributes>d__11>
-; V01 loc0 [V01,T07] ( 8, 4.50) ubyte -> registers
-; V02 loc1 [V02,T16] ( 3, 2.86) int -> x1 single-def
-; V03 loc2 [V03,T02] ( 13, 7 ) ref -> x19 class-hnd single-def <System.Reflection.TypeLoading.RoFatMethodParameter>
+; V01 loc0 [V01,T08] ( 8, 4.50) ubyte -> registers
+; V02 loc1 [V02,T17] ( 3, 2.86) int -> x1 single-def
+; V03 loc2 [V03,T01] ( 15, 8 ) ref -> x19 class-hnd single-def <System.Reflection.TypeLoading.RoFatMethodParameter>
; V04 loc3 [V04,T36] ( 2, 1 ) ref -> x15 class-hnd <System.Reflection.CustomAttributeData>
;* V05 loc4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Reflection.ConstructorInfo>
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Reflection.ConstructorInfo>
;* V07 loc6 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Reflection.ConstructorInfo>
; V08 loc7 [V08,T34] ( 3, 1.50) ref -> registers class-hnd single-def <System.Reflection.CustomAttributeData>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V10 tmp1 [V10,T08] ( 4, 4 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Func`1[System.Runtime.InteropServices.MarshalAsAttribute]>
-; V11 tmp2 [V11,T04] ( 5, 5 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoPseudoCustomAttributeData>
-; V12 tmp3 [V12,T05] ( 5, 5 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoPseudoCustomAttributeData>
-; V13 tmp4 [V13,T06] ( 5, 5 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoPseudoCustomAttributeData>
+; V10 tmp1 [V10,T09] ( 4, 4 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Func`1[System.Runtime.InteropServices.MarshalAsAttribute]>
+; V11 tmp2 [V11,T05] ( 5, 5 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoPseudoCustomAttributeData>
+; V12 tmp3 [V12,T06] ( 5, 5 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoPseudoCustomAttributeData>
+; V13 tmp4 [V13,T07] ( 5, 5 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoPseudoCustomAttributeData>
; V14 tmp5 [V14,T35] ( 3, 1.50) int -> x0 "Inline return value spill temp"
-; V15 tmp6 [V15,T15] ( 3, 3 ) int -> x0 "dup spill"
+; V15 tmp6 [V15,T16] ( 3, 3 ) int -> x0 "dup spill"
;* V16 tmp7 [V16 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
;* V17 tmp8 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Reflection.ConstructorInfo>
-; V18 tmp9 [V18,T09] ( 4, 4 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <System.Reflection.MetadataLoadContext>
+; V18 tmp9 [V18,T10] ( 4, 4 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <System.Reflection.MetadataLoadContext>
; V19 tmp10 [V19,T21] ( 2, 2 ) ref -> x22 class-hnd single-def "dup spill" <System.Reflection.ConstructorInfo>
-; V20 tmp11 [V20,T17] ( 5, 2.50) ref -> x22
-; V21 tmp12 [V21,T12] ( 3, 3 ) ref -> x22 class-hnd single-def "dup spill" <System.Reflection.ConstructorInfo>
+; V20 tmp11 [V20,T18] ( 5, 2.50) ref -> x22
+; V21 tmp12 [V21,T13] ( 3, 3 ) ref -> x22 class-hnd single-def "dup spill" <System.Reflection.ConstructorInfo>
;* V22 tmp13 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.Reflection.ConstructorInfo>
;* V23 tmp14 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V24 tmp15 [V24 ] ( 0, 0 ) ref -> zero-ref
;* V25 tmp16 [V25 ] ( 0, 0 ) ref -> zero-ref
;* V26 tmp17 [V26 ] ( 0, 0 ) ref -> zero-ref single-def
; V27 tmp18 [V27,T37] ( 2, 1 ) ref -> x15 single-def
;* V28 tmp19 [V28 ] ( 0, 0 ) ref -> zero-ref
;* V29 tmp20 [V29 ] ( 0, 0 ) ref -> zero-ref
;* V30 tmp21 [V30 ] ( 0, 0 ) ref -> zero-ref single-def
; V31 tmp22 [V31,T38] ( 2, 1 ) ref -> x15 single-def
;* V32 tmp23 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Reflection.ConstructorInfo>
-; V33 tmp24 [V33,T10] ( 4, 4 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <System.Reflection.MetadataLoadContext>
+; V33 tmp24 [V33,T11] ( 4, 4 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <System.Reflection.MetadataLoadContext>
; V34 tmp25 [V34,T22] ( 2, 2 ) ref -> x22 class-hnd single-def "dup spill" <System.Reflection.ConstructorInfo>
-; V35 tmp26 [V35,T18] ( 5, 2.50) ref -> x22
-; V36 tmp27 [V36,T13] ( 3, 3 ) ref -> x22 class-hnd single-def "dup spill" <System.Reflection.ConstructorInfo>
+; V35 tmp26 [V35,T19] ( 5, 2.50) ref -> x22
+; V36 tmp27 [V36,T14] ( 3, 3 ) ref -> x22 class-hnd single-def "dup spill" <System.Reflection.ConstructorInfo>
;* V37 tmp28 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.Reflection.ConstructorInfo>
;* V38 tmp29 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V39 tmp30 [V39 ] ( 0, 0 ) ref -> zero-ref
;* V40 tmp31 [V40 ] ( 0, 0 ) ref -> zero-ref
;* V41 tmp32 [V41 ] ( 0, 0 ) ref -> zero-ref single-def
; V42 tmp33 [V42,T39] ( 2, 1 ) ref -> x15 single-def
;* V43 tmp34 [V43 ] ( 0, 0 ) ref -> zero-ref
;* V44 tmp35 [V44 ] ( 0, 0 ) ref -> zero-ref
;* V45 tmp36 [V45 ] ( 0, 0 ) ref -> zero-ref single-def
; V46 tmp37 [V46,T40] ( 2, 1 ) ref -> x15 single-def
;* V47 tmp38 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Reflection.ConstructorInfo>
-; V48 tmp39 [V48,T11] ( 4, 4 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <System.Reflection.MetadataLoadContext>
+; V48 tmp39 [V48,T12] ( 4, 4 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <System.Reflection.MetadataLoadContext>
; V49 tmp40 [V49,T23] ( 2, 2 ) ref -> x22 class-hnd single-def "dup spill" <System.Reflection.ConstructorInfo>
-; V50 tmp41 [V50,T19] ( 5, 2.50) ref -> x22
-; V51 tmp42 [V51,T14] ( 3, 3 ) ref -> x22 class-hnd single-def "dup spill" <System.Reflection.ConstructorInfo>
+; V50 tmp41 [V50,T20] ( 5, 2.50) ref -> x22
+; V51 tmp42 [V51,T15] ( 3, 3 ) ref -> x22 class-hnd single-def "dup spill" <System.Reflection.ConstructorInfo>
;* V52 tmp43 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.Reflection.ConstructorInfo>
;* V53 tmp44 [V53 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V54 tmp45 [V54 ] ( 0, 0 ) ref -> zero-ref
;* V55 tmp46 [V55 ] ( 0, 0 ) ref -> zero-ref
;* V56 tmp47 [V56 ] ( 0, 0 ) ref -> zero-ref single-def
; V57 tmp48 [V57,T41] ( 2, 1 ) ref -> x15 single-def
;* V58 tmp49 [V58 ] ( 0, 0 ) ref -> zero-ref
;* V59 tmp50 [V59 ] ( 0, 0 ) ref -> zero-ref
;* V60 tmp51 [V60 ] ( 0, 0 ) ref -> zero-ref single-def
; V61 tmp52 [V61,T42] ( 2, 1 ) ref -> x15 single-def
; V62 tmp53 [V62,T33] ( 2, 2 ) long -> x0 "Inlining Arg"
; V63 tmp54 [V63,T24] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V64 tmp55 [V64,T25] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V65 tmp56 [V65,T26] ( 2, 2 ) ref -> x2 single-def "argument with side effect"
; V66 tmp57 [V66,T27] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V67 tmp58 [V67,T28] ( 2, 2 ) ref -> x2 single-def "argument with side effect"
; V68 tmp59 [V68,T29] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V69 tmp60 [V69,T30] ( 2, 2 ) ref -> x2 single-def "argument with side effect"
; V70 tmp61 [V70,T31] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V71 tmp62 [V71,T32] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
; V72 PSPSym [V72,T43] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
-; V73 cse0 [V73,T03] ( 13, 6.50) long -> x20 multi-def "CSE #01: aggressive"
-; V74 cse1 [V74,T01] ( 15, 7.50) long -> x23 multi-def "CSE #06: aggressive"
-; V75 cse2 [V75,T20] ( 4, 2 ) byref -> x22 "CSE #03: moderate"
+; V73 cse0 [V73,T04] ( 13, 6.50) long -> x20 multi-def "CSE #01: aggressive"
+; V74 cse1 [V74,T02] ( 15, 7.50) long -> x23 multi-def "CSE #06: aggressive"
+; V75 cse2 [V75,T03] ( 15, 7.50) long -> registers multi-def "CSE #07: aggressive"
;
; Lcl frame size = 24
G_M65340_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x28]
stp x21, x22, [sp, #0x38]
str x23, [sp, #0x48]
mov fp, sp
add x1, sp, #80
stp x0, x1, [fp, #0x18] // [V00 this], [V72 PSPSym]
;; size=28 bbWeight=1 PerfScore 6.00
G_M65340_IG02:
ldr w1, [x0, #0x20]
ldr x19, [x0, #0x10]
cmp w1, #5
bhi G_M65340_IG04
;; size=16 bbWeight=1 PerfScore 7.50
G_M65340_IG03:
mov w1, w1
adr x2, [@RWD00]
ldr w2, [x2, x1, LSL #2]
adr x3, [G_M65340_IG02]
add x2, x2, x3
br x2
;; size=24 bbWeight=0.86 PerfScore 5.14
G_M65340_IG04:
mov w2, wzr
b G_M65340_IG27
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M65340_IG05:
movn w1, #0
str w1, [x0, #0x20]
b G_M65340_IG20
;; size=12 bbWeight=0.50 PerfScore 1.25
G_M65340_IG06:
movn w1, #0
str w1, [x0, #0x20]
b G_M65340_IG19
;; size=12 bbWeight=0.50 PerfScore 1.25
G_M65340_IG07:
movn w1, #0
str w1, [x0, #0x20]
b G_M65340_IG17
;; size=12 bbWeight=0.50 PerfScore 1.25
G_M65340_IG08:
movn w1, #0
str w1, [x0, #0x20]
b G_M65340_IG15
;; size=12 bbWeight=0.50 PerfScore 1.25
G_M65340_IG09:
movn w1, #0
str w1, [x0, #0x20]
mov x0, x19
ldr x1, [x19]
ldr x1, [x1, #0x58]
ldr x1, [x1, #0x08]
blr x1
movz x20, #0xD1FFAB1E // code for System.Collections.Generic.IEnumerable`1[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.__Canon]:this
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
mov x11, x20
ldr xip0, [x11]
blr xip0
ldr x20, [fp, #0x18] // [V00 this]
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
mov x0, x20
;; size=72 bbWeight=0.50 PerfScore 11.25
G_M65340_IG10:
movn w11, #2
str w11, [x0, #0x20]
ldr x0, [x0, #0x18]
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
sub x11, x20, #16
ldr xip0, [x11]
blr xip0
cbnz w0, G_M65340_IG25
movn w0, #0
ldr x21, [fp, #0x18] // [V00 this]
str w0, [x21, #0x20]
ldr x0, [x21, #0x18]
cbz x0, G_M65340_IG11
ldr x0, [x21, #0x18]
add x11, x20, #8
ldr xip0, [x11]
blr xip0
;; size=76 bbWeight=0.50 PerfScore 13.25
G_M65340_IG11:
str xzr, [x21, #0x18]
- add x22, x19, #88
- ldapr w0, [x22]
+ add x0, x19, #88
+ ldapr w0, [x0]
cmn w0, #1
bne G_M65340_IG12
mov x0, x19
ldr x1, [x19]
ldr x1, [x1, #0x50]
ldr x1, [x1, #0x38]
blr x1
- stlr w0, [x22]
+ add x1, x19, #88
+ stlr w0, [x1]
b G_M65340_IG13
- ;; size=48 bbWeight=0.50 PerfScore 9.25
+ ;; size=52 bbWeight=0.50 PerfScore 9.50
G_M65340_IG12:
- ldapr w0, [x22]
- ;; size=4 bbWeight=0.50 PerfScore 1.50
+ add x0, x19, #88
+ ldapr w0, [x0]
+ ;; size=8 bbWeight=0.50 PerfScore 1.75
G_M65340_IG13:
str w0, [x21, #0x28]
ldr w1, [x21, #0x28]
tbz w1, #0, G_M65340_IG15
ldr x1, [x19, #0x30]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x11, x20, #16
ldr xip0, [x11]
blr xip0
mov x20, x0
add x0, x20, #56
ldapr x22, [x0]
cbnz x22, G_M65340_IG14
movz x23, #0xD1FFAB1E
movk x23, #0xD1FFAB1E LSL #16
movk x23, #0xD1FFAB1E LSL #32
mov x0, x23
mov w1, #50
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- movz x2, #0xD1FFAB1E // data for System.Array+EmptyArray`1[int]:Value
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
+ movz x23, #0xD1FFAB1E // data for System.Array+EmptyArray`1[int]:Value
+ movk x23, #0xD1FFAB1E LSL #16
+ movk x23, #0xD1FFAB1E LSL #32
+ ldr x2, [x23]
mov x0, x20
mov w1, #42
movz x3, #0xD1FFAB1E // code for System.Reflection.MetadataLoadContext:TryGetConstructor(int,int[]):System.Reflection.ConstructorInfo:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x22, x0
add x14, x20, #56
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
- ;; size=156 bbWeight=0.50 PerfScore 20.50
+ ;; size=160 bbWeight=0.50 PerfScore 20.75
G_M65340_IG14:
cbnz x22, G_M65340_IG24
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M65340_IG15:
ldr x0, [fp, #0x18] // [V00 this]
ldr w1, [x0, #0x28]
tbz w1, #1, G_M65340_IG17
ldr x1, [x19, #0x30]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
add x11, x20, #24
ldr xip0, [x11]
blr xip0
mov x20, x0
add x0, x20, #64
ldapr x22, [x0]
cbnz x22, G_M65340_IG16
movz x23, #0xD1FFAB1E
movk x23, #0xD1FFAB1E LSL #16
movk x23, #0xD1FFAB1E LSL #32
mov x0, x23
mov w1, #50
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- movz x2, #0xD1FFAB1E // data for System.Array+EmptyArray`1[int]:Value
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
+ movz x23, #0xD1FFAB1E // data for System.Array+EmptyArray`1[int]:Value
+ movk x23, #0xD1FFAB1E LSL #16
+ movk x23, #0xD1FFAB1E LSL #32
+ ldr x2, [x23]
mov x0, x20
mov w1, #43
movz x3, #0xD1FFAB1E // code for System.Reflection.MetadataLoadContext:TryGetConstructor(int,int[]):System.Reflection.ConstructorInfo:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x22, x0
add x14, x20, #64
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
- ;; size=168 bbWeight=0.50 PerfScore 21.75
+ ;; size=172 bbWeight=0.50 PerfScore 22.00
G_M65340_IG16:
cbnz x22, G_M65340_IG23
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M65340_IG17:
ldr x0, [fp, #0x18] // [V00 this]
ldr w1, [x0, #0x28]
tbz w1, #4, G_M65340_IG19
ldr x1, [x19, #0x30]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
add x11, x20, #32
ldr xip0, [x11]
blr xip0
mov x20, x0
add x0, x20, #72
ldapr x22, [x0]
cbnz x22, G_M65340_IG18
movz x23, #0xD1FFAB1E
movk x23, #0xD1FFAB1E LSL #16
movk x23, #0xD1FFAB1E LSL #32
mov x0, x23
mov w1, #50
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- movz x2, #0xD1FFAB1E // data for System.Array+EmptyArray`1[int]:Value
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
+ movz x23, #0xD1FFAB1E // data for System.Array+EmptyArray`1[int]:Value
+ movk x23, #0xD1FFAB1E LSL #16
+ movk x23, #0xD1FFAB1E LSL #32
+ ldr x2, [x23]
mov x0, x20
mov w1, #44
movz x3, #0xD1FFAB1E // code for System.Reflection.MetadataLoadContext:TryGetConstructor(int,int[]):System.Reflection.ConstructorInfo:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x22, x0
add x14, x20, #72
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
- ;; size=168 bbWeight=0.50 PerfScore 21.75
+ ;; size=172 bbWeight=0.50 PerfScore 22.00
G_M65340_IG18:
cbnz x22, G_M65340_IG22
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M65340_IG19:
ldr x0, [fp, #0x18] // [V00 this]
ldr w1, [x0, #0x28]
tbz w1, #13, G_M65340_IG20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x22, x0
mov x0, x19
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_VIRTUAL_FUNC_PTR
cbz x19, G_M65340_IG26
add x14, x22, #8
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
str x0, [x22, #0x18]
ldr x1, [x19, #0x30]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
add x11, x20, #40
ldr xip0, [x11]
blr xip0
mov x1, x0
mov x0, x22
movz x2, #0xD1FFAB1E // code for System.Reflection.TypeLoading.CustomAttributeHelpers:TryComputeMarshalAsCustomAttributeData(System.Func`1[System.Runtime.InteropServices.MarshalAsAttribute],System.Reflection.MetadataLoadContext):System.Reflection.CustomAttributeData
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M65340_IG21
;; size=176 bbWeight=0.50 PerfScore 20.50
G_M65340_IG20:
ldr x0, [fp, #0x18] // [V00 this]
mov w1, wzr
mov w2, w1
b G_M65340_IG27
;; size=16 bbWeight=0.50 PerfScore 2.00
G_M65340_IG21:
mov x12, x0
ldr x0, [fp, #0x18] // [V00 this]
add x14, x0, #8
mov x15, x12
bl CORINFO_HELP_ASSIGN_REF
mov w1, #5
str w1, [x0, #0x20]
mov w1, #1
mov w2, w1
b G_M65340_IG27
;; size=40 bbWeight=0.50 PerfScore 4.00
G_M65340_IG22:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
add x14, x20, #24
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x23, #0xD1FFAB1E
movk x23, #0xD1FFAB1E LSL #16
movk x23, #0xD1FFAB1E LSL #32
mov x0, x23
mov w1, #61
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Reflection.CustomAttributeTypedArgument]:Value
+ movz x14, #0xD1FFAB1E
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- ldr x15, [x14]
+ mov x19, x14
+ ldr x15, [x19, #0x30]
add x14, x20, #40
bl CORINFO_HELP_ASSIGN_REF
mov x0, x23
mov w1, #63
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Reflection.CustomAttributeNamedArgument]:Value
- movk x14, #0xD1FFAB1E LSL #32
- ldr x15, [x14]
+ ldr x15, [x19, #0x38]
add x14, x20, #48
bl CORINFO_HELP_ASSIGN_REF
ldr x21, [fp, #0x18] // [V00 this]
add x14, x21, #8
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
mov w0, #4
str w0, [x21, #0x20]
mov w1, #1
mov w2, w1
b G_M65340_IG27
;; size=144 bbWeight=0.50 PerfScore 14.50
G_M65340_IG23:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x19, x0
- add x14, x19, #24
+ mov x20, x0
+ add x14, x20, #24
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x23, #0xD1FFAB1E
movk x23, #0xD1FFAB1E LSL #16
movk x23, #0xD1FFAB1E LSL #32
mov x0, x23
mov w1, #61
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Reflection.CustomAttributeTypedArgument]:Value
- movk x14, #0xD1FFAB1E LSL #32
- ldr x15, [x14]
- add x14, x19, #40
+ movz x19, #0xD1FFAB1E
+ movk x19, #0xD1FFAB1E LSL #16
+ movk x19, #0xD1FFAB1E LSL #32
+ ldr x15, [x19, #0x30]
+ add x14, x20, #40
bl CORINFO_HELP_ASSIGN_REF
mov x0, x23
mov w1, #63
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Reflection.CustomAttributeNamedArgument]:Value
- movk x14, #0xD1FFAB1E LSL #32
- ldr x15, [x14]
- add x14, x19, #48
+ ldr x15, [x19, #0x38]
+ add x14, x20, #48
bl CORINFO_HELP_ASSIGN_REF
ldr x21, [fp, #0x18] // [V00 this]
add x14, x21, #8
- mov x15, x19
+ mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
mov w0, #3
str w0, [x21, #0x20]
mov w1, #1
mov w2, w1
b G_M65340_IG27
- ;; size=144 bbWeight=0.50 PerfScore 14.50
+ ;; size=140 bbWeight=0.50 PerfScore 14.25
G_M65340_IG24:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x19, x0
- add x14, x19, #24
+ mov x20, x0
+ add x14, x20, #24
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x23, #0xD1FFAB1E
movk x23, #0xD1FFAB1E LSL #16
movk x23, #0xD1FFAB1E LSL #32
mov x0, x23
mov w1, #61
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Reflection.CustomAttributeTypedArgument]:Value
- movk x14, #0xD1FFAB1E LSL #32
- ldr x15, [x14]
- add x14, x19, #40
+ movz x19, #0xD1FFAB1E
+ movk x19, #0xD1FFAB1E LSL #16
+ movk x19, #0xD1FFAB1E LSL #32
+ ldr x15, [x19, #0x30]
+ add x14, x20, #40
bl CORINFO_HELP_ASSIGN_REF
mov x0, x23
mov w1, #63
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Reflection.CustomAttributeNamedArgument]:Value
- movk x14, #0xD1FFAB1E LSL #32
- ldr x15, [x14]
- add x14, x19, #48
+ ldr x15, [x19, #0x38]
+ add x14, x20, #48
bl CORINFO_HELP_ASSIGN_REF
ldr x21, [fp, #0x18] // [V00 this]
add x14, x21, #8
- mov x15, x19
+ mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
mov w0, #2
str w0, [x21, #0x20]
mov w1, #1
mov w2, w1
b G_M65340_IG27
- ;; size=144 bbWeight=0.50 PerfScore 14.50
+ ;; size=140 bbWeight=0.50 PerfScore 14.25
G_M65340_IG25:
ldr x21, [fp, #0x18] // [V00 this]
ldr x0, [x21, #0x18]
sub x11, x20, #8
ldr xip0, [x11]
blr xip0
mov x15, x0
add x14, x21, #8
bl CORINFO_HELP_ASSIGN_REF
mov w0, #1
str w0, [x21, #0x20]
sxtw w1, w0
mov w2, w1
b G_M65340_IG27
;; size=52 bbWeight=0.50 PerfScore 7.50
G_M65340_IG26:
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_M65340_IG27:
mov w0, w2
;; size=4 bbWeight=1 PerfScore 0.50
G_M65340_IG28:
ldr x23, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M65340_IG29:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
str x23, [sp, #0x38]
add x3, fp, #80
str x3, [sp, #0x10]
;; size=24 bbWeight=0 PerfScore 0.00
G_M65340_IG30:
ldr x0, [fp, #0x18] // [V00 this]
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoFatMethodParameter+<get_CustomAttributes>d__11:System.IDisposable.Dispose():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=24 bbWeight=0 PerfScore 0.00
G_M65340_IG31:
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
RWD00 dd G_M65340_IG09 - G_M65340_IG02
dd G_M65340_IG10 - G_M65340_IG02
dd G_M65340_IG08 - G_M65340_IG02
dd G_M65340_IG07 - G_M65340_IG02
dd G_M65340_IG06 - G_M65340_IG02
dd G_M65340_IG05 - G_M65340_IG02
-; Total bytes of code 1660, prolog size 28, PerfScore 209.14, instruction count 415, allocated bytes for code 1660 (MethodHash=a40b00c3) for method System.Reflection.TypeLoading.RoFatMethodParameter+<get_CustomAttributes>d__11:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 1672, prolog size 28, PerfScore 209.89, instruction count 418, allocated bytes for code 1672 (MethodHash=a40b00c3) for method System.Reflection.TypeLoading.RoFatMethodParameter+<get_CustomAttributes>d__11:MoveNext():ubyte:this (FullOpts)
12 (1.60 % of base) - System.Reflection.TypeLoading.RoModule:GetTypeCore(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],ubyte,byref):System.Reflection.TypeLoading.RoDefinitionType:this
; Assembly listing for method System.Reflection.TypeLoading.RoModule:GetTypeCore(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],ubyte,byref):System.Reflection.TypeLoading.RoDefinitionType: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; 15 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T03] ( 6, 4.50) ref -> x21 this class-hnd single-def <System.Reflection.TypeLoading.RoModule>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
;* V02 arg2 [V02 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
; V03 arg3 [V03,T07] ( 3, 3 ) ubyte -> x5 single-def
; V04 arg4 [V04,T05] ( 6, 4 ) byref -> x23 single-def
; V05 loc0 [V05,T10] ( 3, 2.50) int -> x25 single-def
; V06 loc1 [V06 ] ( 7, 4.25) ref -> [fp+0x18] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Reflection.TypeLoading.RoDefinitionType>
; V07 loc2 [V07,T20] ( 2, 1 ) ref -> x14 class-hnd exact <System.Reflection.TypeLoading.RoExceptionType>
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V09 tmp1 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Reflection.TypeLoading.RoExceptionType>
; V10 tmp2 [V10,T12] ( 2, 2 ) ref -> x0 class-hnd single-def "dup spill" <System.Reflection.TypeLoading.RoDefinitionType>
; V11 tmp3 [V11,T11] ( 4, 2 ) ref -> x0
; V12 tmp4 [V12,T01] ( 7, 7 ) ref -> x26 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoExceptionType>
; V13 tmp5 [V13,T21] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException>
;* V14 tmp6 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.TypeLoading.GetTypeCoreCache>
;* V15 tmp7 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V16 tmp8 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V17 tmp9 [V17,T13] ( 2, 2 ) ref -> x27 class-hnd single-def "Inlining Arg" <System.Exception>
; V18 tmp10 [V18,T18] ( 3, 1.50) ref -> x28 class-hnd "Inline return value spill temp" <ubyte[]>
; V19 tmp11 [V19,T08] ( 3, 3 ) ref -> x28 class-hnd exact single-def "dup spill" <ubyte[]>
; V20 tmp12 [V20,T14] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
;* V21 tmp13 [V21 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V22 tmp14 [V22,T16] ( 2, 2 ) long -> x2 "Inlining Arg"
; V23 tmp15 [V23,T19] ( 3, 1.50) ref -> x28 class-hnd "Inline return value spill temp" <ubyte[]>
; V24 tmp16 [V24,T09] ( 3, 3 ) ref -> x28 class-hnd exact single-def "dup spill" <ubyte[]>
; V25 tmp17 [V25,T15] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
;* V26 tmp18 [V26 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V27 tmp19 [V27,T17] ( 2, 2 ) long -> x2 "Inlining Arg"
; V28 tmp20 [V28,T06] ( 5, 3.50) byref -> x24 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
; V29 tmp21 [V29,T02] ( 7, 4.50) int -> x20 single-def "field V01._length (fldOffset=0x8)" P-INDEP
; V30 tmp22 [V30,T04] ( 6, 4.50) byref -> x22 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
; V31 tmp23 [V31,T00] ( 8, 5.50) int -> x19 single-def "field V02._length (fldOffset=0x8)" P-INDEP
;* V32 tmp24 [V32 ] ( 0, 0 ) byref -> zero-ref single-def "field V15._reference (fldOffset=0x0)" P-INDEP
;* V33 tmp25 [V33 ] ( 0, 0 ) int -> zero-ref single-def "field V15._length (fldOffset=0x8)" P-INDEP
;* V34 tmp26 [V34 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;* V35 tmp27 [V35 ] ( 0, 0 ) int -> zero-ref single-def "field V16._length (fldOffset=0x8)" P-INDEP
; V36 tmp28 [V36,T22] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
;
; Lcl frame size = 16
G_M4188_IG01:
stp fp, lr, [sp, #-0x70]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
stp x25, x26, [sp, #0x50]
stp x27, x28, [sp, #0x60]
mov fp, sp
str xzr, [fp, #0x18] // [V06 loc1]
mov x21, x0
mov x24, x1
mov w20, w2
mov x22, x3
mov w19, w4
mov x23, x6
;; size=56 bbWeight=1 PerfScore 10.50
G_M4188_IG02:
tst w5, #255
bne G_M4188_IG15
mov x0, x22
mov w1, w19
movz x2, #0xD1FFAB1E // code for System.Reflection.TypeLoading.GetTypeCoreCache:ComputeHashCode(System.ReadOnlySpan`1[ubyte]):int
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
sxtw w25, w0
ldr x0, [x21, #0x10]
add x0, x0, #8
ldapr x0, [x0]
mov x1, x24
mov w2, w20
mov x3, x22
mov w4, w19
add x6, fp, #24 // [V06 loc1]
mov w5, w25
movz x7, #0xD1FFAB1E // code for System.Reflection.TypeLoading.GetTypeCoreCache+Container:TryGetValue(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],int,byref):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
ldr wzr, [x0]
blr x7
cbnz w0, G_M4188_IG09
;; size=104 bbWeight=1 PerfScore 27.50
G_M4188_IG03:
mov x3, x22
mov w4, w19
mov x1, x24
mov w2, w20
mov x0, x21
mov x5, x23
ldr x6, [x21]
ldr x6, [x6, #0x60]
ldr x6, [x6, #0x28]
blr x6
cbnz x0, G_M4188_IG08
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x26, x0
ldr x27, [x23]
movz x14, #0xD1FFAB1E
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x26, #56
bl CORINFO_HELP_ASSIGN_REF
add x1, x26, #80
movn w0, #0
stlr w0, [x1]
cbz w20, G_M4188_IG04
mov w1, w20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_VC
mov x28, x0
add x0, x28, #16
mov w2, w20
mov x1, x24
movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M4188_IG05
- ;; size=164 bbWeight=0.50 PerfScore 20.00
+ ;; size=168 bbWeight=0.50 PerfScore 20.25
G_M4188_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #19
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[ubyte]:Value
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x28, [x14]
- ;; size=32 bbWeight=0.50 PerfScore 3.50
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4188_IG05:
add x14, x26, #96
mov x15, x28
bl CORINFO_HELP_ASSIGN_REF
cbz w19, G_M4188_IG06
mov w1, w19
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_VC
mov x28, x0
add x0, x28, #16
mov w2, w19
mov x1, x22
movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M4188_IG07
;; size=76 bbWeight=0.50 PerfScore 7.25
G_M4188_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #19
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[ubyte]:Value
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x28, [x14]
- ;; size=32 bbWeight=0.50 PerfScore 3.50
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M4188_IG07:
add x14, x26, #104
mov x15, x28
bl CORINFO_HELP_ASSIGN_REF
add x14, x26, #112
mov x15, x27
bl CORINFO_HELP_ASSIGN_REF
mov x0, x26
;; size=28 bbWeight=0.50 PerfScore 2.25
G_M4188_IG08:
str x0, [fp, #0x18] // [V06 loc1]
mov x1, x24
mov w2, w20
mov x3, x22
mov w4, w19
ldr x0, [x21, #0x10]
mov w5, w25
ldr x6, [fp, #0x18] // [V06 loc1]
movz x7, #0xD1FFAB1E // code for System.Reflection.TypeLoading.GetTypeCoreCache:GetOrAdd(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],int,System.Reflection.TypeLoading.RoDefinitionType):System.Reflection.TypeLoading.RoDefinitionType:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
ldr wzr, [x0]
blr x7
;; size=56 bbWeight=0.50 PerfScore 8.50
G_M4188_IG09:
ldr x14, [fp, #0x18] // [V06 loc1]
cbz x14, G_M4188_IG13
;; size=8 bbWeight=1 PerfScore 3.00
G_M4188_IG10:
ldr x14, [fp, #0x18] // [V06 loc1]
ldr x14, [x14]
movz x15, #0xD1FFAB1E
movk x15, #0xD1FFAB1E LSL #16
movk x15, #0xD1FFAB1E LSL #32
cmp x14, x15
bne G_M4188_IG13
;; size=28 bbWeight=0.25 PerfScore 2.00
G_M4188_IG11:
ldr x14, [fp, #0x18] // [V06 loc1]
ldr x15, [x14, #0x70]
mov x14, x23
bl CORINFO_HELP_CHECKED_ASSIGN_REF
mov x0, xzr
;; size=20 bbWeight=0.50 PerfScore 3.50
G_M4188_IG12:
ldp x27, x28, [sp, #0x60]
ldp x25, x26, [sp, #0x50]
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x70
ret lr
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M4188_IG13:
str xzr, [x23]
ldr x0, [fp, #0x18] // [V06 loc1]
;; size=8 bbWeight=0.50 PerfScore 1.50
G_M4188_IG14:
ldp x27, x28, [sp, #0x60]
ldp x25, x26, [sp, #0x50]
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x70
ret lr
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M4188_IG15:
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_NotSupported_CaseInsensitive():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for System.NotSupportedException:.ctor(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x19
bl CORINFO_HELP_THROW
brk_unix #0
;; size=80 bbWeight=0 PerfScore 0.00
-; Total bytes of code 748, prolog size 32, PerfScore 100.00, instruction count 187, allocated bytes for code 748 (MethodHash=ce82efa3) for method System.Reflection.TypeLoading.RoModule:GetTypeCore(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],ubyte,byref):System.Reflection.TypeLoading.RoDefinitionType:this (FullOpts)
+; Total bytes of code 760, prolog size 32, PerfScore 100.75, instruction count 190, allocated bytes for code 760 (MethodHash=ce82efa3) for method System.Reflection.TypeLoading.RoModule:GetTypeCore(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],ubyte,byref):System.Reflection.TypeLoading.RoDefinitionType:this (FullOpts)
12 (0.95 % of base) - System.Reflection.TypeLoading.RoType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
; Assembly listing for method System.Reflection.TypeLoading.RoType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 21 single block inlinees; 9 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T13] ( 7, 5 ) ref -> x22 this class-hnd single-def <System.Reflection.TypeLoading.RoType>
; V01 arg1 [V01,T10] ( 6, 12 ) int -> x19 single-def
; V02 arg2 [V02,T15] ( 6, 4 ) ref -> x23 class-hnd <System.Reflection.Binder>
; V03 arg3 [V03,T12] ( 3, 10 ) int -> x21 single-def
; V04 arg4 [V04,T11] ( 6, 11.50) ref -> x20 class-hnd single-def <System.Type[]>
; V05 arg5 [V05,T19] ( 3, 2.50) ref -> x24 class-hnd single-def <System.Reflection.ParameterModifier[]>
;* V06 loc0 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.ConstructorInfo]>
; V07 loc1 [V07 ] ( 20, 19.50) struct (24) [fp+0x18] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.Runtime.General.ListBuilder`1[System.Reflection.ConstructorInfo]>
;* V08 loc2 [V08 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1+QueryResultEnumerator[System.Reflection.ConstructorInfo]>
; V09 loc3 [V09,T08] ( 3, 18 ) ref -> [fp+0x10] class-hnd <System.Reflection.ConstructorInfo>
;* V10 loc4 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Reflection.ConstructorInfo>
;* V11 loc5 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Reflection.MethodBase[]>
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V13 tmp1 [V13 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.ConstructorInfo]>
; V14 tmp2 [V14,T14] ( 4, 7 ) int -> x25 "Inlining Arg"
;* V15 tmp3 [V15 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline stloc first use temp"
;* V16 tmp4 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V17 tmp5 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V18 tmp6 [V18,T23] ( 4, 3 ) ref -> x26 class-hnd single-def "Inline stloc first use temp" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.Reflection.ConstructorInfo]>
;* V19 tmp7 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.ConstructorInfo]>
; V20 tmp8 [V20,T33] ( 3, 2 ) ubyte -> x26 "Inline return value spill temp"
;* V21 tmp9 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V22 tmp10 [V22,T21] ( 2, 4 ) ref -> x0 class-hnd exact single-def "dup spill" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V23 tmp11 [V23,T22] ( 4, 3.50) ref -> x0
; V24 tmp12 [V24,T20] ( 4, 4 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
;* V25 tmp13 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
;* V26 tmp14 [V26 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1+QueryResultEnumerator[System.Reflection.ConstructorInfo]>
;* V27 tmp15 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.ConstructorInfo]>
; V28 tmp16 [V28,T34] ( 3, 2 ) int -> x27 "Inline return value spill temp"
;* V29 tmp17 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
;* V30 tmp18 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
;* V31 tmp19 [V31 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V32 tmp20 [V32,T09] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V33 tmp21 [V33,T01] ( 2,256 ) int -> x28 "Inline stloc first use temp"
;* V34 tmp22 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
;* V35 tmp23 [V35 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V36 tmp24 [V36,T04] ( 3, 96 ) int -> x0 "Inline stloc first use temp"
;* V37 tmp25 [V37 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V38 tmp26 [V38,T29] ( 4, 2 ) ref -> x26 class-hnd "Inline return value spill temp" <System.Reflection.ConstructorInfo>
; V39 tmp27 [V39,T30] ( 4, 2 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Reflection.ConstructorInfo[]>
; V40 tmp28 [V40,T24] ( 3, 3 ) ref -> x28 class-hnd exact single-def "dup spill" <System.Reflection.ConstructorInfo[]>
;* V41 tmp29 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.TypeLoading.RoModule>
;* V42 tmp30 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.TypeLoading.RoAssembly>
;* V43 tmp31 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Reflection.Binder>
; V44 tmp32 [V44,T17] ( 5, 5 ) ref -> x23 class-hnd exact single-def "Inlining Arg" <System.Reflection.MetadataLoadContext>
; V45 tmp33 [V45,T35] ( 2, 2 ) ref -> x1 class-hnd single-def "dup spill" <System.Reflection.Binder>
; V46 tmp34 [V46,T31] ( 4, 2 ) ref -> x1
; V47 tmp35 [V47,T18] ( 5, 5 ) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <System.DefaultBinder>
;* V48 tmp36 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.DefaultBinder>
;* V49 tmp37 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.TypeLoading.CoreTypes>
; V50 tmp38 [V50,T32] ( 4, 2 ) ref -> x2 class-hnd "Inline return value spill temp" <System.Reflection.ConstructorInfo[]>
; V51 tmp39 [V51,T25] ( 3, 3 ) ref -> x26 class-hnd exact single-def "dup spill" <System.Reflection.ConstructorInfo[]>
;* V52 tmp40 [V52 ] ( 0, 0 ) ref -> zero-ref single-def "field V06._queriedMembers (fldOffset=0x0)" P-INDEP
;* V53 tmp41 [V53 ] ( 0, 0 ) int -> zero-ref single-def "field V06._bindingAttr (fldOffset=0x8)" P-INDEP
;* V54 tmp42 [V54 ] ( 0, 0 ) int -> zero-ref single-def "field V06._lazyCount (fldOffset=0xc)" P-INDEP
; V55 tmp43 [V55 ] ( 9, 6.50) ref -> [fp+0x18] do-not-enreg[X] addr-exposed "field V07._items (fldOffset=0x0)" P-DEP
; V56 tmp44 [V56 ] ( 5, 4.50) ref -> [fp+0x20] do-not-enreg[X] addr-exposed "field V07._item (fldOffset=0x8)" P-DEP
; V57 tmp45 [V57 ] ( 10, 14.50) int -> [fp+0x28] do-not-enreg[X] addr-exposed "field V07._count (fldOffset=0x10)" P-DEP
; V58 tmp46 [V58 ] ( 2, 3 ) int -> [fp+0x2C] do-not-enreg[X] addr-exposed "field V07._capacity (fldOffset=0x14)" P-DEP
; V59 tmp47 [V59,T06] ( 3, 41 ) ref -> x26 single-def "field V08._queriedMembers (fldOffset=0x0)" P-INDEP
; V60 tmp48 [V60,T00] ( 8,465 ) int -> x28 "field V08._index (fldOffset=0x8)" P-INDEP
; V61 tmp49 [V61,T03] ( 2,129 ) int -> x27 single-def "field V08._unfilteredCount (fldOffset=0xc)" P-INDEP
; V62 tmp50 [V62,T07] ( 2, 33 ) int -> x25 single-def "field V08._bindingAttr (fldOffset=0x10)" P-INDEP
;* V63 tmp51 [V63 ] ( 0, 0 ) ref -> zero-ref "field V13._queriedMembers (fldOffset=0x0)" P-INDEP
;* V64 tmp52 [V64 ] ( 0, 0 ) int -> zero-ref "field V13._bindingAttr (fldOffset=0x8)" P-INDEP
;* V65 tmp53 [V65 ] ( 0, 0 ) int -> zero-ref "field V13._lazyCount (fldOffset=0xc)" P-INDEP
;* V66 tmp54 [V66 ] ( 0, 0 ) ref -> zero-ref single-def "field V19._queriedMembers (fldOffset=0x0)" P-INDEP
;* V67 tmp55 [V67 ] ( 0, 0 ) int -> zero-ref single-def "field V19._bindingAttr (fldOffset=0x8)" P-INDEP
;* V68 tmp56 [V68 ] ( 0, 0 ) int -> zero-ref single-def "field V19._lazyCount (fldOffset=0xc)" P-INDEP
; V69 tmp57 [V69,T36] ( 2, 2 ) ref -> x26 single-def "field V26._queriedMembers (fldOffset=0x0)" P-INDEP
;* V70 tmp58 [V70,T40] ( 0, 0 ) int -> zero-ref single-def "field V26._index (fldOffset=0x8)" P-INDEP
; V71 tmp59 [V71,T39] ( 2, 2 ) int -> x27 single-def "field V26._unfilteredCount (fldOffset=0xc)" P-INDEP
; V72 tmp60 [V72,T28] ( 3, 3 ) int -> x25 single-def "field V26._bindingAttr (fldOffset=0x10)" P-INDEP
;* V73 tmp61 [V73 ] ( 0, 0 ) ref -> zero-ref single-def "field V27._queriedMembers (fldOffset=0x0)" P-INDEP
;* V74 tmp62 [V74 ] ( 0, 0 ) int -> zero-ref single-def "field V27._bindingAttr (fldOffset=0x8)" P-INDEP
;* V75 tmp63 [V75 ] ( 0, 0 ) int -> zero-ref "field V27._lazyCount (fldOffset=0xc)" P-INDEP
; V76 tmp64 [V76,T16] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
; V77 tmp65 [V77,T02] ( 3,192 ) ref -> x0 "arr expr"
; V78 tmp66 [V78,T05] ( 3, 48 ) ref -> x0 "arr expr"
; V79 tmp67 [V79,T26] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V80 tmp68 [V80,T27] ( 3, 3 ) ref -> x14 single-def "arr expr"
; V81 tmp69 [V81,T37] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
; V82 tmp70 [V82,T38] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
;
; Lcl frame size = 32
G_M5225_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
stp xzr, xzr, [fp, #0x18] // [V07 loc1], [V07 loc1+0x08]
str xzr, [fp, #0x28] // [V07 loc1+0x10]
mov x22, x0
mov w19, w1
mov x23, x2
mov w21, w3
mov x20, x4
mov x24, x5
;; size=60 bbWeight=1 PerfScore 11.50
G_M5225_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, wzr
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Reflection.Runtime.BindingFlagSupport.MemberPolicies`1[System.Reflection.ConstructorInfo]:Default
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, w19
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2]
blr x2
sxtw w25, w0
mov w0, #72
and w0, w25, w0
cmp w0, #72
beq G_M5225_IG04
- ;; size=72 bbWeight=1 PerfScore 20.50
+ ;; size=76 bbWeight=1 PerfScore 21.00
G_M5225_IG03:
and w0, w25, #6
cmp w0, #4
beq G_M5225_IG04
mov w26, #1
b G_M5225_IG05
;; size=20 bbWeight=0.50 PerfScore 1.75
G_M5225_IG04:
mov w26, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M5225_IG05:
add x0, x22, #8
ldapr x0, [x0]
cbnz x0, G_M5225_IG07
;; size=12 bbWeight=1 PerfScore 4.50
G_M5225_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x27, x0
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:.ctor(System.Reflection.TypeLoading.RoType):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x22, #8
mov x15, x27
bl CORINFO_HELP_ASSIGN_REF
mov x0, x27
;; size=60 bbWeight=0.50 PerfScore 5.75
G_M5225_IG07:
mov w2, w26
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:GetQueriedMembers[System.__Canon](ubyte):System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
ldr wzr, [x0]
blr x3
mov x26, x0
stp xzr, xzr, [fp, #0x18]
str xzr, [fp, #0x28]
tbz w25, #1, G_M5225_IG09
;; size=56 bbWeight=1 PerfScore 14.00
G_M5225_IG08:
ldr w27, [x26, #0x24]
b G_M5225_IG10
;; size=8 bbWeight=0.50 PerfScore 2.00
G_M5225_IG09:
mov x0, x26
movz x1, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:get_TotalCount():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
sxtw w27, w0
;; size=32 bbWeight=0.50 PerfScore 4.75
G_M5225_IG10:
movn w28, #0
b G_M5225_IG12
;; size=8 bbWeight=1 PerfScore 1.50
G_M5225_IG11:
ldr x2, [fp, #0x10] // [V09 loc3]
add x0, fp, #24 // [V07 loc1]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Reflection.Runtime.General.ListBuilder`1[System.__Canon]:Add(System.__Canon):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
;; size=40 bbWeight=2 PerfScore 19.00
G_M5225_IG12:
add w28, w28, #1
cmp w28, w27
blt G_M5225_IG33
;; size=12 bbWeight=128 PerfScore 256.00
G_M5225_IG13:
ldr w0, [fp, #0x28] // [V57 tmp45]
cbz w0, G_M5225_IG31
;; size=8 bbWeight=8 PerfScore 24.00
G_M5225_IG14:
ldr w0, [x20, #0x08]
cbnz w0, G_M5225_IG17
ldr w0, [fp, #0x28] // [V57 tmp45]
cmp w0, #1
bne G_M5225_IG17
ldr x0, [fp, #0x18] // [V55 tmp43]
cbz x0, G_M5225_IG15
ldr x0, [fp, #0x18] // [V55 tmp43]
ldr w0, [x0, #0x08]
cmp w0, #0
bls G_M5225_IG35
ldr x0, [fp, #0x18] // [V55 tmp43]
ldr x26, [x0, #0x10]
b G_M5225_IG16
;; size=56 bbWeight=0.50 PerfScore 11.50
G_M5225_IG15:
ldr x26, [fp, #0x20] // [V56 tmp44]
;; size=4 bbWeight=0.50 PerfScore 1.00
G_M5225_IG16:
mov x0, x26
movz x1, #0xD1FFAB1E // code for System.Reflection.TypeLoading.DefaultBinderThunks:GetParametersNoCopy(System.Reflection.MethodBase):System.Reflection.ParameterInfo[]
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr w0, [x0, #0x08]
cbz w0, G_M5225_IG29
;; size=32 bbWeight=0.50 PerfScore 5.00
G_M5225_IG17:
tbnz w19, #16, G_M5225_IG24
cbnz x23, G_M5225_IG19
mov x0, x22
ldr x1, [x22]
ldr x1, [x1, #0xC8]
ldr x1, [x1, #0x30]
blr x1
ldr x1, [x0]
ldr x1, [x1, #0x60]
ldr x1, [x1, #0x18]
blr x1
ldr x23, [x0, #0x28]
add x0, x23, #32
ldapr x1, [x0]
cbnz x1, G_M5225_IG18
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
add x14, x1, #8
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
ldr x14, [x23, #0x18]
ldr x14, [x14, #0x08]
ldr w15, [x14, #0x08]
cmp w15, #10
bls G_M5225_IG35
ldr x15, [x14, #0x60]
add x14, x1, #16
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #32
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
;; size=136 bbWeight=0.50 PerfScore 26.00
G_M5225_IG18:
mov x23, x1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M5225_IG19:
ldr w1, [fp, #0x28] // [V57 tmp45]
cbz w1, G_M5225_IG21
ldr w1, [fp, #0x28] // [V57 tmp45]
cmp w1, #1
beq G_M5225_IG20
add x1, fp, #24 // [V55 tmp43]
ldr w2, [fp, #0x28] // [V57 tmp45]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Array:Resize[System.__Canon](byref,int)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x2, [fp, #0x18] // [V55 tmp43]
b G_M5225_IG22
;; size=68 bbWeight=0.50 PerfScore 9.50
G_M5225_IG20:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov x1, #1
bl CORINFO_HELP_NEWARR_1_OBJ
mov x26, x0
ldr x2, [fp, #0x20] // [V56 tmp44]
mov x1, xzr
movz x3, #0xD1FFAB1E // code for CORINFO_HELP_ARRADDR_ST
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x2, x26
b G_M5225_IG22
;; size=60 bbWeight=0.50 PerfScore 6.50
G_M5225_IG21:
movz x2, #0xD1FFAB1E
+ movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M5225_IG22:
mov x0, x23
mov w1, w19
mov x3, x20
mov x4, x24
ldr x5, [x23]
ldr x5, [x5, #0x48]
ldr x5, [x5]
blr x5
mov x1, x0
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
;; size=68 bbWeight=0.50 PerfScore 9.75
G_M5225_IG23:
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_M5225_IG24:
ldr w1, [fp, #0x28] // [V57 tmp45]
cbz w1, G_M5225_IG26
ldr w1, [fp, #0x28] // [V57 tmp45]
cmp w1, #1
beq G_M5225_IG25
add x1, fp, #24 // [V55 tmp43]
ldr w2, [fp, #0x28] // [V57 tmp45]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Array:Resize[System.__Canon](byref,int)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x0, [fp, #0x18] // [V55 tmp43]
b G_M5225_IG27
;; size=68 bbWeight=0.50 PerfScore 9.50
G_M5225_IG25:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov x1, #1
bl CORINFO_HELP_NEWARR_1_OBJ
mov x28, x0
ldr x2, [fp, #0x20] // [V56 tmp44]
mov x1, xzr
movz x3, #0xD1FFAB1E // code for CORINFO_HELP_ARRADDR_ST
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x0, x28
b G_M5225_IG27
;; size=60 bbWeight=0.50 PerfScore 6.50
G_M5225_IG26:
movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M5225_IG27:
mov x1, x20
movz x2, #0xD1FFAB1E // code for System.DefaultBinder:ExactBinding(System.Reflection.MethodBase[],System.Type[]):System.Reflection.MethodBase
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x0
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
;; size=60 bbWeight=0.50 PerfScore 6.75
G_M5225_IG28:
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_M5225_IG29:
mov x0, x26
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M5225_IG30:
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_M5225_IG31:
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M5225_IG32:
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_M5225_IG33:
ldr x0, [x26, #0x10]
ldr w1, [x0, #0x08]
cmp w28, w1
bhs G_M5225_IG35
add x0, x0, #16
ldr w0, [x0, w28, UXTW #2]
and w1, w25, w0
cmp w1, w0
bne G_M5225_IG12
;; size=36 bbWeight=32 PerfScore 416.00
G_M5225_IG34:
ldr x0, [x26, #0x08]
ldr w1, [x0, #0x08]
cmp w28, w1
bhs G_M5225_IG35
add x0, x0, #16
ldr x4, [x0, w28, UXTW #3]
str x4, [fp, #0x10] // [V09 loc3]
mov x0, x4
mov w1, w19
mov w2, w21
mov x3, x20
movz x5, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.Shared:QualifiesBasedOnParameterCount(System.Reflection.MethodBase,int,int,System.Type[]):ubyte
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
cbz w0, G_M5225_IG12
b G_M5225_IG11
;; size=72 bbWeight=8 PerfScore 172.00
G_M5225_IG35:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1268, prolog size 60, PerfScore 1064.25, instruction count 317, allocated bytes for code 1268 (MethodHash=a08eeb96) for method System.Reflection.TypeLoading.RoType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (FullOpts)
+; Total bytes of code 1280, prolog size 60, PerfScore 1065.25, instruction count 320, allocated bytes for code 1280 (MethodHash=a08eeb96) for method System.Reflection.TypeLoading.RoType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (FullOpts)
12 (0.79 % of base) - System.Reflection.TypeLoading.RoType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
; Assembly listing for method System.Reflection.TypeLoading.RoType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo: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; 14 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T11] ( 10, 6 ) ref -> x20 this class-hnd single-def <System.Reflection.TypeLoading.RoType>
; V01 arg1 [V01,T14] ( 6, 4 ) ref -> x23 class-hnd single-def <System.String>
; V02 arg2 [V02,T10] ( 4, 12 ) int -> x19 single-def
; V03 arg3 [V03,T13] ( 6, 5.50) int -> x22 single-def
; V04 arg4 [V04,T15] ( 6, 4 ) ref -> x24 class-hnd <System.Reflection.Binder>
; V05 arg5 [V05,T16] ( 3, 4 ) int -> x25 single-def
; V06 arg6 [V06,T12] ( 6, 6 ) ref -> x21 class-hnd single-def <System.Type[]>
; V07 arg7 [V07,T20] ( 3, 2.50) ref -> x26 class-hnd single-def <System.Reflection.ParameterModifier[]>
; V08 loc0 [V08 ] ( 4, 2 ) struct (16) [fp+0x50] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.MethodInfo]>
;* V09 loc1 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.MethodInfo]>
; V10 loc2 [V10 ] ( 14, 16 ) struct (24) [fp+0x38] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.Runtime.General.ListBuilder`1[System.Reflection.MethodInfo]>
;* V11 loc3 [V11 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1+QueryResultEnumerator[System.Reflection.MethodInfo]>
; V12 loc4 [V12,T09] ( 4, 14 ) ref -> [fp+0x20] class-hnd <System.Reflection.MethodInfo>
;* V13 loc5 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Reflection.MethodInfo[]>
;# V14 OutArgs [V14 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V15 tmp1 [V15,T48] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
;* V16 tmp2 [V16 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.MethodInfo]>
; V17 tmp3 [V17,T17] ( 5, 5 ) int -> x19 "Inlining Arg"
;* V18 tmp4 [V18 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline stloc first use temp"
; V19 tmp5 [V19,T42] ( 2, 1 ) ubyte -> x21 single-def "Inline stloc first use temp"
;* V20 tmp6 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V21 tmp7 [V21,T39] ( 2, 1 ) ref -> x0 class-hnd single-def "Inline stloc first use temp" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.Reflection.MethodInfo]>
;* V22 tmp8 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.MethodInfo]>
; V23 tmp9 [V23,T35] ( 3, 1.50) ubyte -> x28 "Inline return value spill temp"
;* V24 tmp10 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V25 tmp11 [V25,T31] ( 2, 2 ) ref -> x0 class-hnd exact single-def "dup spill" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V26 tmp12 [V26,T27] ( 4, 2 ) ref -> x0
; V27 tmp13 [V27,T21] ( 4, 4 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
;* V28 tmp14 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V29 tmp15 [V29,T49] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
;* V30 tmp16 [V30 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.MethodInfo]>
; V31 tmp17 [V31,T18] ( 5, 5 ) int -> x27 "Inlining Arg"
;* V32 tmp18 [V32 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline stloc first use temp"
; V33 tmp19 [V33,T43] ( 2, 1 ) ubyte -> [fp+0x34] spill-single-def "Inline stloc first use temp"
;* V34 tmp20 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V35 tmp21 [V35,T28] ( 4, 2 ) ref -> x23 class-hnd single-def "Inline stloc first use temp" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.Reflection.MethodInfo]>
;* V36 tmp22 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.MethodInfo]>
; V37 tmp23 [V37,T36] ( 3, 1.50) ubyte -> x28 "Inline return value spill temp"
;* V38 tmp24 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V39 tmp25 [V39,T32] ( 2, 2 ) ref -> x0 class-hnd exact single-def "dup spill" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V40 tmp26 [V40,T29] ( 4, 2 ) ref -> x0
; V41 tmp27 [V41,T22] ( 4, 4 ) ref -> [fp+0x18] class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
;* V42 tmp28 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
;* V43 tmp29 [V43 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1+QueryResultEnumerator[System.Reflection.MethodInfo]>
;* V44 tmp30 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.MethodInfo]>
; V45 tmp31 [V45,T37] ( 3, 1.50) int -> x1 "Inline return value spill temp"
;* V46 tmp32 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
;* V47 tmp33 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
;* V48 tmp34 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V49 tmp35 [V49,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V50 tmp36 [V50,T02] ( 2,128 ) int -> x2 "Inline stloc first use temp"
;* V51 tmp37 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
;* V52 tmp38 [V52 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V53 tmp39 [V53,T03] ( 3, 96 ) int -> x0 "Inline stloc first use temp"
;* V54 tmp40 [V54 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V55 tmp41 [V55,T34] ( 3, 1.50) ref -> x0 class-hnd "Inline return value spill temp" <System.Reflection.MethodInfo>
;* V56 tmp42 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.TypeLoading.RoModule>
;* V57 tmp43 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.TypeLoading.RoAssembly>
; V58 tmp44 [V58,T30] ( 4, 2 ) ref -> x2 class-hnd "Inline return value spill temp" <System.Reflection.MethodInfo[]>
; V59 tmp45 [V59,T23] ( 3, 3 ) ref -> x23 class-hnd exact single-def "dup spill" <System.Reflection.MethodInfo[]>
; V60 tmp46 [V60 ] ( 2, 1 ) ref -> [fp+0x50] do-not-enreg[X] addr-exposed "field V08._queriedMembers (fldOffset=0x0)" P-DEP
; V61 tmp47 [V61 ] ( 2, 1 ) int -> [fp+0x58] do-not-enreg[X] addr-exposed "field V08._bindingAttr (fldOffset=0x8)" P-DEP
; V62 tmp48 [V62 ] ( 2, 1 ) int -> [fp+0x5C] do-not-enreg[X] addr-exposed "field V08._lazyCount (fldOffset=0xc)" P-DEP
;* V63 tmp49 [V63 ] ( 0, 0 ) ref -> zero-ref single-def "field V09._queriedMembers (fldOffset=0x0)" P-INDEP
;* V64 tmp50 [V64 ] ( 0, 0 ) int -> zero-ref single-def "field V09._bindingAttr (fldOffset=0x8)" P-INDEP
;* V65 tmp51 [V65 ] ( 0, 0 ) int -> zero-ref single-def "field V09._lazyCount (fldOffset=0xc)" P-INDEP
; V66 tmp52 [V66 ] ( 7, 5 ) ref -> [fp+0x38] do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
; V67 tmp53 [V67 ] ( 4, 3.50) ref -> [fp+0x40] do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
; V68 tmp54 [V68 ] ( 7, 12.50) int -> [fp+0x48] do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
; V69 tmp55 [V69 ] ( 2, 2.50) int -> [fp+0x4C] do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
; V70 tmp56 [V70,T06] ( 3, 40.50) ref -> x23 single-def "field V11._queriedMembers (fldOffset=0x0)" P-INDEP
; V71 tmp57 [V71,T00] ( 8,272.50) int -> [fp+0x30] "field V11._index (fldOffset=0x8)" P-INDEP
; V72 tmp58 [V72,T04] ( 2, 64.50) int -> [fp+0x2C] spill-single-def "field V11._unfilteredCount (fldOffset=0xc)" P-INDEP
; V73 tmp59 [V73,T07] ( 2, 32.50) int -> x27 single-def "field V11._bindingAttr (fldOffset=0x10)" P-INDEP
;* V74 tmp60 [V74 ] ( 0, 0 ) ref -> zero-ref "field V16._queriedMembers (fldOffset=0x0)" P-INDEP
;* V75 tmp61 [V75 ] ( 0, 0 ) int -> zero-ref "field V16._bindingAttr (fldOffset=0x8)" P-INDEP
;* V76 tmp62 [V76 ] ( 0, 0 ) int -> zero-ref "field V16._lazyCount (fldOffset=0xc)" P-INDEP
; V77 tmp63 [V77,T40] ( 2, 1 ) ref -> x0 single-def "field V22._queriedMembers (fldOffset=0x0)" P-INDEP
; V78 tmp64 [V78,T44] ( 2, 1 ) int -> x19 single-def "field V22._bindingAttr (fldOffset=0x8)" P-INDEP
;* V79 tmp65 [V79,T46] ( 0, 0 ) int -> zero-ref single-def "field V22._lazyCount (fldOffset=0xc)" P-INDEP
;* V80 tmp66 [V80 ] ( 0, 0 ) ref -> zero-ref "field V30._queriedMembers (fldOffset=0x0)" P-INDEP
;* V81 tmp67 [V81 ] ( 0, 0 ) int -> zero-ref "field V30._bindingAttr (fldOffset=0x8)" P-INDEP
;* V82 tmp68 [V82 ] ( 0, 0 ) int -> zero-ref "field V30._lazyCount (fldOffset=0xc)" P-INDEP
;* V83 tmp69 [V83 ] ( 0, 0 ) ref -> zero-ref single-def "field V36._queriedMembers (fldOffset=0x0)" P-INDEP
;* V84 tmp70 [V84 ] ( 0, 0 ) int -> zero-ref single-def "field V36._bindingAttr (fldOffset=0x8)" P-INDEP
;* V85 tmp71 [V85 ] ( 0, 0 ) int -> zero-ref single-def "field V36._lazyCount (fldOffset=0xc)" P-INDEP
; V86 tmp72 [V86,T41] ( 2, 1 ) ref -> x23 single-def "field V43._queriedMembers (fldOffset=0x0)" P-INDEP
;* V87 tmp73 [V87,T47] ( 0, 0 ) int -> zero-ref single-def "field V43._index (fldOffset=0x8)" P-INDEP
; V88 tmp74 [V88,T45] ( 2, 1 ) int -> x1 single-def "field V43._unfilteredCount (fldOffset=0xc)" P-INDEP
; V89 tmp75 [V89,T38] ( 3, 1.50) int -> x27 single-def "field V43._bindingAttr (fldOffset=0x10)" P-INDEP
;* V90 tmp76 [V90 ] ( 0, 0 ) ref -> zero-ref single-def "field V44._queriedMembers (fldOffset=0x0)" P-INDEP
;* V91 tmp77 [V91 ] ( 0, 0 ) int -> zero-ref single-def "field V44._bindingAttr (fldOffset=0x8)" P-INDEP
;* V92 tmp78 [V92 ] ( 0, 0 ) int -> zero-ref "field V44._lazyCount (fldOffset=0xc)" P-INDEP
; V93 tmp79 [V93,T24] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V94 tmp80 [V94,T01] ( 3,192 ) ref -> x0 "arr expr"
; V95 tmp81 [V95,T05] ( 3, 48 ) ref -> x0 "arr expr"
; V96 tmp82 [V96,T25] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V97 tmp83 [V97,T33] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
; V98 tmp84 [V98,T50] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V99 tmp85 [V99,T26] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V100 tmp86 [V100,T51] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V101 cse0 [V101,T19] ( 6, 4.50) long -> x28 multi-def "CSE #02: moderate"
;
; Lcl frame size = 80
G_M43497_IG01:
stp fp, lr, [sp, #-0xB0]!
stp x19, x20, [sp, #0x60]
stp x21, x22, [sp, #0x70]
stp x23, x24, [sp, #0x80]
stp x25, x26, [sp, #0x90]
stp x27, x28, [sp, #0xA0]
mov fp, sp
add x9, fp, #56
movi v16.16b, #0
stp q16, q16, [x9]
str xzr, [x9, #0x20]
mov x20, x0
mov x23, x1
mov w19, w2
mov w22, w3
mov x24, x4
mov w25, w5
mov x21, x6
mov x26, x7
;; size=76 bbWeight=1 PerfScore 13.50
G_M43497_IG02:
cbz x21, G_M43497_IG32
;; size=4 bbWeight=1 PerfScore 1.00
G_M43497_IG03:
cbz x23, G_M43497_IG37
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #3
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Reflection.Runtime.BindingFlagSupport.MemberPolicies`1[System.Reflection.MethodInfo]:Default
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, w22
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2]
blr x2
sxtw w27, w0
mov w0, #72
and w0, w27, w0
cmp w0, #72
beq G_M43497_IG04
and w0, w27, #6
cmp w0, #4
beq G_M43497_IG04
mov w28, #1
b G_M43497_IG05
- ;; size=96 bbWeight=0.50 PerfScore 12.50
+ ;; size=100 bbWeight=0.50 PerfScore 12.75
G_M43497_IG04:
mov w28, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M43497_IG05:
and w1, w27, #1
str w1, [fp, #0x34] // [V33 tmp19]
add x0, x20, #8
ldapr x0, [x0]
cbnz x0, G_M43497_IG07
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
str x0, [fp, #0x18] // [V41 tmp27]
mov x1, x20
movz x2, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:.ctor(System.Reflection.TypeLoading.RoType):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x20, #8
ldr x15, [fp, #0x18] // [V41 tmp27]
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [fp, #0x18] // [V41 tmp27]
ldr w1, [fp, #0x34] // [V33 tmp19]
;; size=84 bbWeight=0.50 PerfScore 11.50
G_M43497_IG06:
mov w4, w28
mov x2, x23
mov w3, w1
movz x28, #0xD1FFAB1E
movk x28, #0xD1FFAB1E LSL #16
movk x28, #0xD1FFAB1E LSL #32
add x1, x28, #0xD1FFAB1E
movz x5, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:GetQueriedMembers[System.__Canon](System.String,ubyte,ubyte):System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
ldr wzr, [x0]
blr x5
mov x23, x0
stp xzr, xzr, [fp, #0x38]
str xzr, [fp, #0x48]
tbnz w27, #1, G_M43497_IG08
b G_M43497_IG09
;; size=72 bbWeight=0.50 PerfScore 8.25
G_M43497_IG07:
ldr w1, [fp, #0x34] // [V33 tmp19]
b G_M43497_IG06
;; size=8 bbWeight=0.25 PerfScore 0.75
G_M43497_IG08:
ldr w1, [x23, #0x24]
b G_M43497_IG10
;; size=8 bbWeight=0.50 PerfScore 2.00
G_M43497_IG09:
mov x0, x23
movz x1, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:get_TotalCount():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
sxtw w1, w0
;; size=32 bbWeight=0.50 PerfScore 4.75
G_M43497_IG10:
movn w2, #0
str w1, [fp, #0x2C] // [V72 tmp58]
b G_M43497_IG12
;; size=12 bbWeight=0.50 PerfScore 1.25
G_M43497_IG11:
ldr x3, [fp, #0x20] // [V12 loc4]
add x0, fp, #56 // [V10 loc2]
mov x2, x3
add x1, x28, #0xD1FFAB1E
movz x3, #0xD1FFAB1E // code for System.Reflection.Runtime.General.ListBuilder`1[System.__Canon]:Add(System.__Canon):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldp w1, w2, [fp, #0x2C] // [V72 tmp58], [V71 tmp57]
;; size=40 bbWeight=2 PerfScore 22.00
G_M43497_IG12:
add w2, w2, #1
cmp w2, w1
blt G_M43497_IG26
;; size=12 bbWeight=64 PerfScore 128.00
G_M43497_IG13:
ldr w0, [fp, #0x48] // [V68 tmp54]
cbz w0, G_M43497_IG24
;; size=8 bbWeight=8 PerfScore 24.00
G_M43497_IG14:
ldr w0, [x21, #0x08]
cbnz w0, G_M43497_IG15
ldr w0, [fp, #0x48] // [V68 tmp54]
cmp w0, #1
beq G_M43497_IG21
;; size=20 bbWeight=0.50 PerfScore 3.75
G_M43497_IG15:
cbnz x24, G_M43497_IG16
mov x0, x20
ldr x1, [x20]
ldr x1, [x1, #0xC8]
ldr x1, [x1, #0x30]
blr x1
ldr x1, [x0]
ldr x1, [x1, #0x60]
ldr x1, [x1, #0x18]
blr x1
ldr x0, [x0, #0x28]
movz x1, #0xD1FFAB1E // code for System.Reflection.MetadataLoadContext:GetDefaultBinder():System.Reflection.Binder:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
mov x24, x0
;; size=72 bbWeight=0.50 PerfScore 16.75
G_M43497_IG16:
ldr w1, [fp, #0x48] // [V68 tmp54]
cbz w1, G_M43497_IG18
ldr w1, [fp, #0x48] // [V68 tmp54]
cmp w1, #1
beq G_M43497_IG17
add x1, fp, #56 // [V66 tmp52]
ldr w2, [fp, #0x48] // [V68 tmp54]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Array:Resize[System.__Canon](byref,int)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x2, [fp, #0x38] // [V66 tmp52]
b G_M43497_IG19
;; size=68 bbWeight=0.50 PerfScore 9.50
G_M43497_IG17:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov x1, #1
bl CORINFO_HELP_NEWARR_1_OBJ
mov x23, x0
ldr x2, [fp, #0x40] // [V67 tmp53]
mov x1, xzr
movz x3, #0xD1FFAB1E // code for CORINFO_HELP_ARRADDR_ST
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x2, x23
b G_M43497_IG19
;; size=60 bbWeight=0.50 PerfScore 6.50
G_M43497_IG18:
movz x2, #0xD1FFAB1E
+ movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M43497_IG19:
mov x0, x24
mov w1, w22
mov x3, x21
mov x4, x26
ldr x5, [x24]
ldr x5, [x5, #0x48]
ldr x5, [x5]
blr x5
mov x1, x0
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
;; size=68 bbWeight=0.50 PerfScore 9.75
G_M43497_IG20:
ldp x27, x28, [sp, #0xA0]
ldp x25, x26, [sp, #0x90]
ldp x23, x24, [sp, #0x80]
ldp x21, x22, [sp, #0x70]
ldp x19, x20, [sp, #0x60]
ldp fp, lr, [sp], #0xB0
ret lr
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M43497_IG21:
ldr x0, [fp, #0x38] // [V66 tmp52]
cbz x0, G_M43497_IG22
ldr x0, [fp, #0x38] // [V66 tmp52]
ldr w0, [x0, #0x08]
cmp w0, #0
bls G_M43497_IG39
ldr x0, [fp, #0x38] // [V66 tmp52]
ldr x0, [x0, #0x10]
b G_M43497_IG23
;; size=36 bbWeight=0.50 PerfScore 7.75
G_M43497_IG22:
ldr x0, [fp, #0x40] // [V67 tmp53]
;; size=4 bbWeight=0.50 PerfScore 1.00
G_M43497_IG23:
ldp x27, x28, [sp, #0xA0]
ldp x25, x26, [sp, #0x90]
ldp x23, x24, [sp, #0x80]
ldp x21, x22, [sp, #0x70]
ldp x19, x20, [sp, #0x60]
ldp fp, lr, [sp], #0xB0
ret lr
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M43497_IG24:
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M43497_IG25:
ldp x27, x28, [sp, #0xA0]
ldp x25, x26, [sp, #0x90]
ldp x23, x24, [sp, #0x80]
ldp x21, x22, [sp, #0x70]
ldp x19, x20, [sp, #0x60]
ldp fp, lr, [sp], #0xB0
ret lr
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M43497_IG26:
ldr x0, [x23, #0x10]
ldr w3, [x0, #0x08]
cmp w2, w3
bhs G_M43497_IG39
add x0, x0, #16
ldr w0, [x0, w2, UXTW #2]
and w3, w27, w0
cmp w3, w0
ldr w1, [fp, #0x2C] // [V72 tmp58]
bne G_M43497_IG12
;; size=40 bbWeight=32 PerfScore 480.00
G_M43497_IG27:
ldr x0, [x23, #0x08]
ldr w3, [x0, #0x08]
cmp w2, w3
bhs G_M43497_IG39
add x0, x0, #16
str w2, [fp, #0x30] // [V71 tmp57]
ldr x3, [x0, w2, UXTW #3]
cmn w19, #1
beq G_M43497_IG29
;; size=36 bbWeight=8 PerfScore 108.00
G_M43497_IG28:
str x3, [fp, #0x20] // [V12 loc4]
mov x0, x3
movz x4, #0xD1FFAB1E // code for System.Reflection.TypeLoading.DefaultBinderThunks:GetGenericParameterCount(System.Reflection.MethodInfo):int
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
cmp w0, w19
ldr x3, [fp, #0x20] // [V12 loc4]
bne G_M43497_IG31
;; size=40 bbWeight=2 PerfScore 21.00
G_M43497_IG29:
str x3, [fp, #0x20] // [V12 loc4]
mov x0, x3
mov w1, w22
mov w2, w25
mov x3, x21
movz x4, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.Shared:QualifiesBasedOnParameterCount(System.Reflection.MethodBase,int,int,System.Type[]):ubyte
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
cbnz w0, G_M43497_IG11
;; size=44 bbWeight=2 PerfScore 19.00
G_M43497_IG30:
ldp w1, w2, [fp, #0x2C] // [V72 tmp58], [V71 tmp57]
b G_M43497_IG12
;; size=8 bbWeight=1 PerfScore 3.00
G_M43497_IG31:
ldp w1, w2, [fp, #0x2C] // [V72 tmp58], [V71 tmp57]
b G_M43497_IG12
;; size=8 bbWeight=1 PerfScore 3.00
G_M43497_IG32:
cbz x23, G_M43497_IG38
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #3
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Reflection.Runtime.BindingFlagSupport.MemberPolicies`1[System.Reflection.MethodInfo]:Default
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, w22
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2]
blr x2
sxtw w19, w0
mov w0, #72
and w0, w19, w0
cmp w0, #72
beq G_M43497_IG33
and w0, w19, #6
cmp w0, #4
beq G_M43497_IG33
mov w28, #1
b G_M43497_IG34
- ;; size=96 bbWeight=0.50 PerfScore 12.50
+ ;; size=100 bbWeight=0.50 PerfScore 12.75
G_M43497_IG33:
mov w28, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M43497_IG34:
and w21, w19, #1
add x0, x20, #8
ldapr x0, [x0]
cbnz x0, G_M43497_IG35
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x22, x0
mov x1, x20
movz x2, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:.ctor(System.Reflection.TypeLoading.RoType):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x20, #8
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x0, x22
;; size=76 bbWeight=0.50 PerfScore 8.25
G_M43497_IG35:
mov w4, w28
mov x2, x23
mov w3, w21
movz x28, #0xD1FFAB1E
movk x28, #0xD1FFAB1E LSL #16
movk x28, #0xD1FFAB1E LSL #32
add x1, x28, #0xD1FFAB1E
movz x5, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:GetQueriedMembers[System.__Canon](System.String,ubyte,ubyte):System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
ldr wzr, [x0]
blr x5
str x0, [fp, #0x50] // [V60 tmp46]
stp w19, wzr, [fp, #0x58] // [V61 tmp47], [V62 tmp48]
add x0, fp, #80 // [V08 loc0]
mov x1, x28
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:Disambiguate():System.__Canon:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=88 bbWeight=0.50 PerfScore 10.25
G_M43497_IG36:
ldp x27, x28, [sp, #0xA0]
ldp x25, x26, [sp, #0x90]
ldp x23, x24, [sp, #0x80]
ldp x21, x22, [sp, #0x70]
ldp x19, x20, [sp, #0x60]
ldp fp, lr, [sp], #0xB0
ret lr
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M43497_IG37:
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_M43497_IG38:
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_M43497_IG39:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1520, prolog size 76, PerfScore 966.25, instruction count 380, allocated bytes for code 1520 (MethodHash=19db5616) for method System.Reflection.TypeLoading.RoType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this (FullOpts)
+; Total bytes of code 1532, prolog size 76, PerfScore 967.00, instruction count 383, allocated bytes for code 1532 (MethodHash=19db5616) for method System.Reflection.TypeLoading.RoType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this (FullOpts)
12 (0.72 % of base) - System.Reflection.TypeLoading.RoType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this
; Assembly listing for method System.Reflection.TypeLoading.RoType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 21 single block inlinees; 14 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T11] ( 10, 6 ) ref -> x20 this class-hnd single-def <System.Reflection.TypeLoading.RoType>
; V01 arg1 [V01,T13] ( 6, 4 ) ref -> x22 class-hnd single-def <System.String>
; V02 arg2 [V02,T15] ( 6, 4 ) int -> x24 single-def
; V03 arg3 [V03,T14] ( 6, 4 ) ref -> x23 class-hnd <System.Reflection.Binder>
; V04 arg4 [V04,T12] ( 9, 6 ) ref -> x21 class-hnd single-def <System.Type>
; V05 arg5 [V05,T08] ( 9, 15 ) ref -> x19 class-hnd single-def <System.Type[]>
; V06 arg6 [V06,T22] ( 3, 2.50) ref -> x25 class-hnd single-def <System.Reflection.ParameterModifier[]>
; V07 loc0 [V07 ] ( 4, 2 ) struct (16) [fp+0x40] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.PropertyInfo]>
;* V08 loc1 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.PropertyInfo]>
; V09 loc2 [V09 ] ( 19, 18.50) struct (24) [fp+0x28] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.Runtime.General.ListBuilder`1[System.Reflection.PropertyInfo]>
;* V10 loc3 [V10 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1+QueryResultEnumerator[System.Reflection.PropertyInfo]>
; V11 loc4 [V11,T10] ( 4, 14 ) ref -> [fp+0x18] class-hnd spill-single-def <System.Reflection.PropertyInfo>
;* V12 loc5 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Reflection.PropertyInfo>
;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V14 tmp1 [V14,T56] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
;* V15 tmp2 [V15 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.PropertyInfo]>
; V16 tmp3 [V16,T20] ( 5, 5 ) int -> x19 "Inlining Arg"
;* V17 tmp4 [V17 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline stloc first use temp"
; V18 tmp5 [V18,T49] ( 2, 1 ) ubyte -> x21 single-def "Inline stloc first use temp"
;* V19 tmp6 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V20 tmp7 [V20,T46] ( 2, 1 ) ref -> x0 class-hnd single-def "Inline stloc first use temp" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.Reflection.PropertyInfo]>
;* V21 tmp8 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.PropertyInfo]>
; V22 tmp9 [V22,T42] ( 3, 1.50) ubyte -> x27 "Inline return value spill temp"
;* V23 tmp10 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V24 tmp11 [V24,T37] ( 2, 2 ) ref -> x0 class-hnd exact single-def "dup spill" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V25 tmp12 [V25,T32] ( 4, 2 ) ref -> x0
; V26 tmp13 [V26,T23] ( 4, 4 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
;* V27 tmp14 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V28 tmp15 [V28,T57] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
;* V29 tmp16 [V29 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.PropertyInfo]>
; V30 tmp17 [V30,T21] ( 5, 5 ) int -> x26 "Inlining Arg"
;* V31 tmp18 [V31 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline stloc first use temp"
; V32 tmp19 [V32,T50] ( 2, 1 ) ubyte -> x28 single-def "Inline stloc first use temp"
;* V33 tmp20 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V34 tmp21 [V34,T33] ( 4, 2 ) ref -> x22 class-hnd single-def "Inline stloc first use temp" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.Reflection.PropertyInfo]>
;* V35 tmp22 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.PropertyInfo]>
; V36 tmp23 [V36,T43] ( 3, 1.50) ubyte -> x27 "Inline return value spill temp"
;* V37 tmp24 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V38 tmp25 [V38,T38] ( 2, 2 ) ref -> x0 class-hnd exact single-def "dup spill" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
; V39 tmp26 [V39,T34] ( 4, 2 ) ref -> x0
; V40 tmp27 [V40,T24] ( 4, 4 ) ref -> [fp+0x10] class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
;* V41 tmp28 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.TypeLoading.RoType+TypeComponentsCache>
;* V42 tmp29 [V42 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1+QueryResultEnumerator[System.Reflection.PropertyInfo]>
;* V43 tmp30 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.Reflection.PropertyInfo]>
; V44 tmp31 [V44,T44] ( 3, 1.50) int -> x28 "Inline return value spill temp"
;* V45 tmp32 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
;* V46 tmp33 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
;* V47 tmp34 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V48 tmp35 [V48,T09] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V49 tmp36 [V49,T02] ( 2,128 ) int -> x1 "Inline stloc first use temp"
;* V50 tmp37 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]>
;* V51 tmp38 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V52 tmp39 [V52,T03] ( 3, 96 ) int -> x0 "Inline stloc first use temp"
;* V53 tmp40 [V53 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V54 tmp41 [V54,T31] ( 6, 2.50) ref -> x28 class-hnd "Inline return value spill temp" <System.Reflection.PropertyInfo>
; V55 tmp42 [V55,T41] ( 3, 1.50) ref -> x0 class-hnd "Inline return value spill temp" <System.Reflection.PropertyInfo[]>
; V56 tmp43 [V56,T25] ( 3, 3 ) ref -> x28 class-hnd exact single-def "dup spill" <System.Reflection.PropertyInfo[]>
;* V57 tmp44 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.TypeLoading.RoModule>
;* V58 tmp45 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.TypeLoading.RoAssembly>
;* V59 tmp46 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Reflection.Binder>
; V60 tmp47 [V60,T17] ( 5, 5 ) ref -> x23 class-hnd exact single-def "Inlining Arg" <System.Reflection.MetadataLoadContext>
; V61 tmp48 [V61,T39] ( 2, 2 ) ref -> x1 class-hnd single-def "dup spill" <System.Reflection.Binder>
; V62 tmp49 [V62,T35] ( 4, 2 ) ref -> x1
; V63 tmp50 [V63,T18] ( 5, 5 ) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <System.DefaultBinder>
;* V64 tmp51 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.DefaultBinder>
;* V65 tmp52 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.TypeLoading.CoreTypes>
; V66 tmp53 [V66,T36] ( 4, 2 ) ref -> x2 class-hnd "Inline return value spill temp" <System.Reflection.PropertyInfo[]>
; V67 tmp54 [V67,T26] ( 3, 3 ) ref -> x27 class-hnd exact single-def "dup spill" <System.Reflection.PropertyInfo[]>
; V68 tmp55 [V68,T19] ( 5, 5 ) ref -> x0 "Single return block return value"
; V69 tmp56 [V69 ] ( 2, 1 ) ref -> [fp+0x40] do-not-enreg[X] addr-exposed "field V07._queriedMembers (fldOffset=0x0)" P-DEP
; V70 tmp57 [V70 ] ( 2, 1 ) int -> [fp+0x48] do-not-enreg[X] addr-exposed "field V07._bindingAttr (fldOffset=0x8)" P-DEP
; V71 tmp58 [V71 ] ( 2, 1 ) int -> [fp+0x4C] do-not-enreg[X] addr-exposed "field V07._lazyCount (fldOffset=0xc)" P-DEP
;* V72 tmp59 [V72 ] ( 0, 0 ) ref -> zero-ref single-def "field V08._queriedMembers (fldOffset=0x0)" P-INDEP
;* V73 tmp60 [V73 ] ( 0, 0 ) int -> zero-ref single-def "field V08._bindingAttr (fldOffset=0x8)" P-INDEP
;* V74 tmp61 [V74 ] ( 0, 0 ) int -> zero-ref single-def "field V08._lazyCount (fldOffset=0xc)" P-INDEP
; V75 tmp62 [V75 ] ( 9, 6 ) ref -> [fp+0x28] do-not-enreg[X] addr-exposed "field V09._items (fldOffset=0x0)" P-DEP
; V76 tmp63 [V76 ] ( 5, 4 ) ref -> [fp+0x30] do-not-enreg[X] addr-exposed "field V09._item (fldOffset=0x8)" P-DEP
; V77 tmp64 [V77 ] ( 9, 13.50) int -> [fp+0x38] do-not-enreg[X] addr-exposed "field V09._count (fldOffset=0x10)" P-DEP
; V78 tmp65 [V78 ] ( 2, 2.50) int -> [fp+0x3C] do-not-enreg[X] addr-exposed "field V09._capacity (fldOffset=0x14)" P-DEP
; V79 tmp66 [V79,T06] ( 3, 40.50) ref -> x22 single-def "field V10._queriedMembers (fldOffset=0x0)" P-INDEP
; V80 tmp67 [V80,T00] ( 8,272.50) int -> [fp+0x24] "field V10._index (fldOffset=0x8)" P-INDEP
; V81 tmp68 [V81,T04] ( 2, 64.50) int -> x28 single-def "field V10._unfilteredCount (fldOffset=0xc)" P-INDEP
; V82 tmp69 [V82,T07] ( 2, 32.50) int -> x26 single-def "field V10._bindingAttr (fldOffset=0x10)" P-INDEP
;* V83 tmp70 [V83 ] ( 0, 0 ) ref -> zero-ref "field V15._queriedMembers (fldOffset=0x0)" P-INDEP
;* V84 tmp71 [V84 ] ( 0, 0 ) int -> zero-ref "field V15._bindingAttr (fldOffset=0x8)" P-INDEP
;* V85 tmp72 [V85 ] ( 0, 0 ) int -> zero-ref "field V15._lazyCount (fldOffset=0xc)" P-INDEP
; V86 tmp73 [V86,T47] ( 2, 1 ) ref -> x0 single-def "field V21._queriedMembers (fldOffset=0x0)" P-INDEP
; V87 tmp74 [V87,T51] ( 2, 1 ) int -> x19 single-def "field V21._bindingAttr (fldOffset=0x8)" P-INDEP
;* V88 tmp75 [V88,T53] ( 0, 0 ) int -> zero-ref single-def "field V21._lazyCount (fldOffset=0xc)" P-INDEP
;* V89 tmp76 [V89 ] ( 0, 0 ) ref -> zero-ref "field V29._queriedMembers (fldOffset=0x0)" P-INDEP
;* V90 tmp77 [V90 ] ( 0, 0 ) int -> zero-ref "field V29._bindingAttr (fldOffset=0x8)" P-INDEP
;* V91 tmp78 [V91 ] ( 0, 0 ) int -> zero-ref "field V29._lazyCount (fldOffset=0xc)" P-INDEP
;* V92 tmp79 [V92 ] ( 0, 0 ) ref -> zero-ref single-def "field V35._queriedMembers (fldOffset=0x0)" P-INDEP
;* V93 tmp80 [V93 ] ( 0, 0 ) int -> zero-ref single-def "field V35._bindingAttr (fldOffset=0x8)" P-INDEP
;* V94 tmp81 [V94 ] ( 0, 0 ) int -> zero-ref single-def "field V35._lazyCount (fldOffset=0xc)" P-INDEP
; V95 tmp82 [V95,T48] ( 2, 1 ) ref -> x22 single-def "field V42._queriedMembers (fldOffset=0x0)" P-INDEP
;* V96 tmp83 [V96,T54] ( 0, 0 ) int -> zero-ref single-def "field V42._index (fldOffset=0x8)" P-INDEP
; V97 tmp84 [V97,T52] ( 2, 1 ) int -> x28 single-def "field V42._unfilteredCount (fldOffset=0xc)" P-INDEP
; V98 tmp85 [V98,T45] ( 3, 1.50) int -> x26 single-def "field V42._bindingAttr (fldOffset=0x10)" P-INDEP
;* V99 tmp86 [V99 ] ( 0, 0 ) ref -> zero-ref single-def "field V43._queriedMembers (fldOffset=0x0)" P-INDEP
;* V100 tmp87 [V100 ] ( 0, 0 ) int -> zero-ref single-def "field V43._bindingAttr (fldOffset=0x8)" P-INDEP
;* V101 tmp88 [V101 ] ( 0, 0 ) int -> zero-ref "field V43._lazyCount (fldOffset=0xc)" P-INDEP
; V102 tmp89 [V102,T27] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V103 tmp90 [V103,T01] ( 3,192 ) ref -> x0 "arr expr"
; V104 tmp91 [V104,T05] ( 3, 48 ) ref -> x0 "arr expr"
; V105 tmp92 [V105,T28] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V106 tmp93 [V106,T29] ( 3, 3 ) ref -> x14 single-def "arr expr"
; V107 tmp94 [V107,T40] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
; V108 tmp95 [V108,T58] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V109 tmp96 [V109,T30] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V110 tmp97 [V110,T59] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
;* V111 cse0 [V111,T55] ( 0, 0 ) long -> zero-ref "CSE #13: moderate"
; V112 cse1 [V112,T16] ( 8, 5.50) long -> x27 multi-def "CSE #02: moderate"
;
; Lcl frame size = 64
G_M53755_IG01:
stp fp, lr, [sp, #-0xA0]!
stp x19, x20, [sp, #0x50]
stp x21, x22, [sp, #0x60]
stp x23, x24, [sp, #0x70]
stp x25, x26, [sp, #0x80]
stp x27, x28, [sp, #0x90]
mov fp, sp
add x9, fp, #40
movi v16.16b, #0
stp q16, q16, [x9]
str xzr, [x9, #0x20]
mov x20, x0
mov x22, x1
mov w24, w2
mov x23, x3
mov x21, x4
mov x19, x5
mov x25, x6
;; size=72 bbWeight=1 PerfScore 13.00
G_M53755_IG02:
orr x0, x19, x21
cbz x0, G_M53755_IG33
;; size=8 bbWeight=1 PerfScore 1.50
G_M53755_IG03:
cbz x22, G_M53755_IG39
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #5
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Reflection.Runtime.BindingFlagSupport.MemberPolicies`1[System.Reflection.PropertyInfo]:Default
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, w24
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2]
blr x2
sxtw w26, w0
mov w0, #72
and w0, w26, w0
cmp w0, #72
beq G_M53755_IG04
and w0, w26, #6
cmp w0, #4
beq G_M53755_IG04
mov w27, #1
b G_M53755_IG05
- ;; size=96 bbWeight=0.50 PerfScore 12.50
+ ;; size=100 bbWeight=0.50 PerfScore 12.75
G_M53755_IG04:
mov w27, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M53755_IG05:
and w28, w26, #1
add x0, x20, #8
ldapr x0, [x0]
cbnz x0, G_M53755_IG06
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
str x0, [fp, #0x10] // [V40 tmp27]
mov x1, x20
movz x2, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:.ctor(System.Reflection.TypeLoading.RoType):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x20, #8
ldr x15, [fp, #0x10] // [V40 tmp27]
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [fp, #0x10] // [V40 tmp27]
;; size=76 bbWeight=0.50 PerfScore 10.00
G_M53755_IG06:
mov w4, w27
mov x2, x22
mov w3, w28
movz x27, #0xD1FFAB1E
movk x27, #0xD1FFAB1E LSL #16
movk x27, #0xD1FFAB1E LSL #32
add x1, x27, #0xD1FFAB1E
movz x5, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:GetQueriedMembers[System.__Canon](System.String,ubyte,ubyte):System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
ldr wzr, [x0]
blr x5
mov x22, x0
stp xzr, xzr, [fp, #0x28]
str xzr, [fp, #0x38]
tbz w26, #1, G_M53755_IG07
ldr w28, [x22, #0x24]
b G_M53755_IG08
;; size=76 bbWeight=0.50 PerfScore 9.75
G_M53755_IG07:
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:get_TotalCount():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
sxtw w28, w0
;; size=32 bbWeight=0.50 PerfScore 4.75
G_M53755_IG08:
movn w1, #0
b G_M53755_IG10
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M53755_IG09:
add x0, fp, #40 // [V09 loc2]
add x1, x27, #0xD1FFAB1E
movz x3, #0xD1FFAB1E // code for System.Reflection.Runtime.General.ListBuilder`1[System.__Canon]:Add(System.__Canon):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr w1, [fp, #0x24] // [V80 tmp67]
;; size=32 bbWeight=2 PerfScore 17.00
G_M53755_IG10:
add w1, w1, #1
cmp w1, w28
blt G_M53755_IG29
;; size=12 bbWeight=64 PerfScore 128.00
G_M53755_IG11:
ldr w0, [fp, #0x38] // [V77 tmp64]
cbz w0, G_M53755_IG27
;; size=8 bbWeight=8 PerfScore 24.00
G_M53755_IG12:
cbz x19, G_M53755_IG13
ldr w0, [x19, #0x08]
cbnz w0, G_M53755_IG16
;; size=12 bbWeight=0.50 PerfScore 2.50
G_M53755_IG13:
ldr x0, [fp, #0x28] // [V75 tmp62]
cbz x0, G_M53755_IG14
ldr x0, [fp, #0x28] // [V75 tmp62]
ldr w0, [x0, #0x08]
cmp w0, #0
bls G_M53755_IG41
ldr x0, [fp, #0x28] // [V75 tmp62]
ldr x28, [x0, #0x10]
b G_M53755_IG15
;; size=36 bbWeight=0.50 PerfScore 7.75
G_M53755_IG14:
ldr x28, [fp, #0x30] // [V76 tmp63]
;; size=4 bbWeight=0.50 PerfScore 1.00
G_M53755_IG15:
ldr w0, [fp, #0x38] // [V77 tmp64]
cmp w0, #1
beq G_M53755_IG25
cbz x21, G_M53755_IG38
;; size=16 bbWeight=0.50 PerfScore 2.25
G_M53755_IG16:
tbnz w24, #16, G_M53755_IG22
cbnz x23, G_M53755_IG18
mov x0, x20
ldr x1, [x20]
ldr x1, [x1, #0xC8]
ldr x1, [x1, #0x30]
blr x1
ldr x1, [x0]
ldr x1, [x1, #0x60]
ldr x1, [x1, #0x18]
blr x1
ldr x23, [x0, #0x28]
add x0, x23, #32
ldapr x1, [x0]
cbnz x1, G_M53755_IG17
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x1, x0
add x14, x1, #8
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
ldr x14, [x23, #0x18]
ldr x14, [x14, #0x08]
ldr w15, [x14, #0x08]
cmp w15, #10
bls G_M53755_IG41
ldr x15, [x14, #0x60]
add x14, x1, #16
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #32
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
;; size=136 bbWeight=0.50 PerfScore 26.00
G_M53755_IG17:
mov x23, x1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M53755_IG18:
ldr w1, [fp, #0x38] // [V77 tmp64]
cbz w1, G_M53755_IG20
ldr w1, [fp, #0x38] // [V77 tmp64]
cmp w1, #1
beq G_M53755_IG19
add x1, fp, #40 // [V75 tmp62]
ldr w2, [fp, #0x38] // [V77 tmp64]
add x0, x27, #0xD1FFAB1E
movz x3, #0xD1FFAB1E // code for System.Array:Resize[System.__Canon](byref,int)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x2, [fp, #0x28] // [V75 tmp62]
b G_M53755_IG21
;; size=60 bbWeight=0.50 PerfScore 9.00
G_M53755_IG19:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov x1, #1
bl CORINFO_HELP_NEWARR_1_OBJ
mov x27, x0
ldr x2, [fp, #0x30] // [V76 tmp63]
mov x1, xzr
movz x3, #0xD1FFAB1E // code for CORINFO_HELP_ARRADDR_ST
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x2, x27
b G_M53755_IG21
;; size=60 bbWeight=0.50 PerfScore 6.50
G_M53755_IG20:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #90
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Reflection.PropertyInfo]:Value
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x2, [x0]
- ;; size=32 bbWeight=0.50 PerfScore 3.50
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
G_M53755_IG21:
mov x0, x23
mov w1, w24
mov x3, x21
mov x4, x19
mov x5, x25
ldr x6, [x23]
ldr x6, [x6, #0x48]
ldr x6, [x6, #0x08]
blr x6
b G_M53755_IG37
;; size=40 bbWeight=0.50 PerfScore 6.75
G_M53755_IG22:
ldr w1, [fp, #0x38] // [V77 tmp64]
cmp w1, #1
beq G_M53755_IG23
add x1, fp, #40 // [V75 tmp62]
ldr w2, [fp, #0x38] // [V77 tmp64]
add x0, x27, #0xD1FFAB1E
movz x3, #0xD1FFAB1E // code for System.Array:Resize[System.__Canon](byref,int)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
ldr x0, [fp, #0x28] // [V75 tmp62]
b G_M53755_IG24
;; size=52 bbWeight=0.50 PerfScore 7.50
G_M53755_IG23:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov x1, #1
bl CORINFO_HELP_NEWARR_1_OBJ
mov x28, x0
ldr x2, [fp, #0x30] // [V76 tmp63]
mov x1, xzr
movz x3, #0xD1FFAB1E // code for CORINFO_HELP_ARRADDR_ST
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x0, x28
;; size=56 bbWeight=0.50 PerfScore 6.00
G_M53755_IG24:
mov x1, x21
mov x2, x19
movz x3, #0xD1FFAB1E // code for System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M53755_IG37
;; size=32 bbWeight=0.50 PerfScore 3.75
G_M53755_IG25:
cbz x21, G_M53755_IG26
mov x0, x28
ldr x1, [x28]
ldr x1, [x1, #0x50]
ldr x1, [x1, #0x10]
blr x1
mov x1, x0
mov x0, x21
ldr x2, [x21]
ldr x2, [x2, #0xA0]
ldr x2, [x2, #0x10]
blr x2
cbz w0, G_M53755_IG27
;; size=52 bbWeight=0.50 PerfScore 11.75
G_M53755_IG26:
mov x0, x28
b G_M53755_IG37
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M53755_IG27:
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M53755_IG28:
ldp x27, x28, [sp, #0x90]
ldp x25, x26, [sp, #0x80]
ldp x23, x24, [sp, #0x70]
ldp x21, x22, [sp, #0x60]
ldp x19, x20, [sp, #0x50]
ldp fp, lr, [sp], #0xA0
ret lr
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M53755_IG29:
ldr x0, [x22, #0x10]
ldr w2, [x0, #0x08]
cmp w1, w2
bhs G_M53755_IG41
add x0, x0, #16
ldr w0, [x0, w1, UXTW #2]
and w2, w26, w0
cmp w2, w0
bne G_M53755_IG10
;; size=36 bbWeight=32 PerfScore 416.00
G_M53755_IG30:
ldr x0, [x22, #0x08]
ldr w2, [x0, #0x08]
cmp w1, w2
bhs G_M53755_IG41
add x0, x0, #16
str w1, [fp, #0x24] // [V80 tmp67]
ldr x2, [x0, w1, UXTW #3]
str x2, [fp, #0x18] // [V11 loc4]
cbz x19, G_M53755_IG09
;; size=36 bbWeight=8 PerfScore 112.00
G_M53755_IG31:
mov x0, x2
ldr x3, [x2]
ldr x3, [x3, #0x50]
ldr x3, [x3, #0x18]
blr x3
ldr w0, [x0, #0x08]
ldr w2, [x19, #0x08]
cmp w0, w2
ldr x2, [fp, #0x18] // [V11 loc4]
beq G_M53755_IG09
;; size=40 bbWeight=2 PerfScore 40.00
G_M53755_IG32:
ldr w1, [fp, #0x24] // [V80 tmp67]
b G_M53755_IG10
;; size=8 bbWeight=1 PerfScore 3.00
G_M53755_IG33:
cbz x22, G_M53755_IG40
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #5
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x0, #0xD1FFAB1E // data for System.Reflection.Runtime.BindingFlagSupport.MemberPolicies`1[System.Reflection.PropertyInfo]:Default
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, w24
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2]
blr x2
sxtw w19, w0
mov w0, #72
and w0, w19, w0
cmp w0, #72
beq G_M53755_IG34
and w0, w19, #6
cmp w0, #4
beq G_M53755_IG34
mov w27, #1
b G_M53755_IG35
- ;; size=96 bbWeight=0.50 PerfScore 12.50
+ ;; size=100 bbWeight=0.50 PerfScore 12.75
G_M53755_IG34:
mov w27, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M53755_IG35:
and w21, w19, #1
add x0, x20, #8
ldapr x0, [x0]
cbnz x0, G_M53755_IG36
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
mov x1, x20
movz x2, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:.ctor(System.Reflection.TypeLoading.RoType):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x20, #8
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x0, x23
;; size=76 bbWeight=0.50 PerfScore 8.25
G_M53755_IG36:
mov w4, w27
mov x2, x22
mov w3, w21
movz x27, #0xD1FFAB1E
movk x27, #0xD1FFAB1E LSL #16
movk x27, #0xD1FFAB1E LSL #32
add x1, x27, #0xD1FFAB1E
movz x5, #0xD1FFAB1E // code for System.Reflection.TypeLoading.RoType+TypeComponentsCache:GetQueriedMembers[System.__Canon](System.String,ubyte,ubyte):System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList`1[System.__Canon]:this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
ldr wzr, [x0]
blr x5
str x0, [fp, #0x40] // [V69 tmp56]
stp w19, wzr, [fp, #0x48] // [V70 tmp57], [V71 tmp58]
add x0, fp, #64 // [V07 loc0]
mov x1, x27
movz x2, #0xD1FFAB1E // code for System.Reflection.Runtime.BindingFlagSupport.QueryResult`1[System.__Canon]:Disambiguate():System.__Canon:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=88 bbWeight=0.50 PerfScore 10.25
G_M53755_IG37:
ldp x27, x28, [sp, #0x90]
ldp x25, x26, [sp, #0x80]
ldp x23, x24, [sp, #0x70]
ldp x21, x22, [sp, #0x60]
ldp x19, x20, [sp, #0x50]
ldp fp, lr, [sp], #0xA0
ret lr
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M53755_IG38:
mov x0, x28
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:GetAmbiguousMatchException(System.Reflection.MemberInfo):System.Reflection.AmbiguousMatchException
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
bl CORINFO_HELP_THROW
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
G_M53755_IG39:
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_M53755_IG40:
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_M53755_IG41:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1668, prolog size 72, PerfScore 926.25, instruction count 417, allocated bytes for code 1668 (MethodHash=6d182e04) for method System.Reflection.TypeLoading.RoType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
+; Total bytes of code 1680, prolog size 72, PerfScore 927.00, instruction count 420, allocated bytes for code 1680 (MethodHash=6d182e04) for method System.Reflection.TypeLoading.RoType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
8 (0.69 % of base) - System.DefaultBinder:FindMostSpecific(System.Reflection.ParameterInfo[],int[],System.Type,System.Reflection.ParameterInfo[],int[],System.Type,System.Type[],System.Object[]):int
; Assembly listing for method System.DefaultBinder:FindMostSpecific(System.Reflection.ParameterInfo[],int[],System.Type,System.Reflection.ParameterInfo[],int[],System.Type,System.Type[],System.Object[]):int (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T06] ( 10, 9 ) ref -> x19 class-hnd single-def <System.Reflection.ParameterInfo[]>
; V01 arg1 [V01,T12] ( 10, 6.54) ref -> x24 class-hnd single-def <int[]>
; V02 arg2 [V02,T09] ( 8, 7.50) ref -> x21 class-hnd single-def <System.Type>
; V03 arg3 [V03,T07] ( 10, 9 ) ref -> x20 class-hnd single-def <System.Reflection.ParameterInfo[]>
; V04 arg4 [V04,T13] ( 10, 6.54) ref -> x25 class-hnd single-def <int[]>
; V05 arg5 [V05,T11] ( 8, 7 ) ref -> x23 class-hnd single-def <System.Type>
; V06 arg6 [V06,T16] ( 5, 4.50) ref -> x26 class-hnd single-def <System.Type[]>
; V07 arg7 [V07,T10] ( 9, 7.04) ref -> x22 class-hnd single-def <System.Object[]>
; V08 loc0 [V08,T18] ( 5, 3.50) ubyte -> x27
; V09 loc1 [V09,T19] ( 5, 3.50) ubyte -> x28
; V10 loc2 [V10,T01] ( 19, 16.68) int -> [fp+0x2C]
; V11 loc3 [V11,T14] ( 8, 8 ) ref -> [fp+0x18] class-hnd <System.Type>
; V12 loc4 [V12,T15] ( 8, 8 ) ref -> [fp+0x10] class-hnd <System.Type>
;* V13 loc5 [V13 ] ( 0, 0 ) int -> zero-ref
;# V14 OutArgs [V14 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V15 tmp1 [V15,T04] ( 6, 12 ) int -> x4 "index expr"
; V16 tmp2 [V16,T02] ( 6, 12 ) ref -> x0 "argument with side effect"
; V17 tmp3 [V17,T05] ( 6, 12 ) int -> x4 "index expr"
; V18 tmp4 [V18,T03] ( 6, 12 ) ref -> x0 "argument with side effect"
; V19 cse0 [V19,T17] ( 7, 5.75) int -> [fp+0x28] spill-single-def "CSE #01: aggressive"
; V20 cse1 [V20,T00] ( 7, 17.82) long -> [fp+0x20] spill-single-def "CSE #02: aggressive"
; V21 rat0 [V21,T08] ( 3, 10.89) int -> x0 "ReplaceWithLclVar is creating a new local variable"
; V22 rat1 [V22,T20] ( 3, 0.11) int -> x0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 32
G_M47007_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 x19, x0
mov x24, x1
mov x21, x2
mov x20, x3
mov x25, x4
mov x23, x5
mov x26, x6
mov x22, x7
;; size=60 bbWeight=1 PerfScore 10.50
G_M47007_IG02:
cbz x21, G_M47007_IG04
;; size=4 bbWeight=1 PerfScore 1.00
G_M47007_IG03:
cbz x23, G_M47007_IG44
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M47007_IG04:
cbz x23, G_M47007_IG05
cbz x21, G_M47007_IG41
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M47007_IG05:
mov w27, wzr
mov w28, wzr
mov w1, wzr
ldr w2, [x26, #0x08]
str w2, [fp, #0x28] // [V19 cse0]
cmp w2, #0
ble G_M47007_IG39
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M47007_IG06:
cbz x22, G_M47007_IG22
cbz x24, G_M47007_IG22
cbz x25, G_M47007_IG22
ldr w0, [x22, #0x08]
cmp w0, w2
blt G_M47007_IG22
ldr w0, [x24, #0x08]
cmp w0, w2
blt G_M47007_IG22
ldr w0, [x25, #0x08]
cmp w0, w2
blt G_M47007_IG09
;; size=48 bbWeight=0.25 PerfScore 4.12
G_M47007_IG07:
add x0, x22, #16
str w1, [fp, #0x2C] // [V10 loc2]
mov w3, w1
str x3, [fp, #0x20] // [V20 cse1]
ldr x0, [x0, x3, LSL #3]
movz x4, #0xD1FFAB1E
+ movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
cmp x0, x4
beq G_M47007_IG21
- ;; size=40 bbWeight=3.96 PerfScore 45.54
+ ;; size=44 bbWeight=3.96 PerfScore 47.52
G_M47007_IG08:
cbz x21, G_M47007_IG10
add x0, x24, #16
ldr w0, [x0, x3, LSL #2]
ldr w4, [x19, #0x08]
sub w4, w4, #1
cmp w0, w4
blt G_M47007_IG10
b G_M47007_IG11
;; size=32 bbWeight=1.98 PerfScore 20.79
G_M47007_IG09:
ldr w2, [fp, #0x28] // [V19 cse0]
b G_M47007_IG22
;; size=8 bbWeight=0.12 PerfScore 0.38
G_M47007_IG10:
add x0, x24, #16
ldr w4, [x0, x3, LSL #2]
ldr w0, [x19, #0x08]
cmp w4, w0
bhs G_M47007_IG48
add x0, x19, #16
ldr x0, [x0, w4, UXTW #3]
ldr x4, [x0]
ldr x4, [x4, #0x40]
ldr x4, [x4, #0x38]
blr x4
mov x1, x0
b G_M47007_IG12
;; size=52 bbWeight=1.98 PerfScore 45.54
G_M47007_IG11:
str x21, [fp, #0x18] // [V11 loc3]
ldr x1, [fp, #0x18] // [V11 loc3]
;; size=8 bbWeight=1.98 PerfScore 5.94
G_M47007_IG12:
cbz x23, G_M47007_IG14
add x0, x25, #16
ldr x3, [fp, #0x20] // [V20 cse1]
ldr w0, [x0, x3, LSL #2]
ldr w4, [x20, #0x08]
sub w4, w4, #1
cmp w0, w4
bge G_M47007_IG16
;; size=32 bbWeight=1.98 PerfScore 22.77
G_M47007_IG13:
str x1, [fp, #0x18] // [V11 loc3]
b G_M47007_IG15
;; size=8 bbWeight=0.99 PerfScore 1.98
G_M47007_IG14:
str x1, [fp, #0x18] // [V11 loc3]
;; size=4 bbWeight=0.99 PerfScore 0.99
G_M47007_IG15:
add x0, x25, #16
ldr x3, [fp, #0x20] // [V20 cse1]
ldr w4, [x0, x3, LSL #2]
ldr w0, [x20, #0x08]
cmp w4, w0
bhs G_M47007_IG48
add x0, x20, #16
ldr x0, [x0, w4, UXTW #3]
ldr x4, [x0]
ldr x4, [x4, #0x40]
ldr x4, [x4, #0x38]
blr x4
mov x2, x0
ldr x1, [fp, #0x18] // [V11 loc3]
b G_M47007_IG17
;; size=60 bbWeight=1.98 PerfScore 53.46
G_M47007_IG16:
mov x4, x23
mov x2, x4
;; size=8 bbWeight=1.98 PerfScore 1.98
G_M47007_IG17:
str x1, [fp, #0x18] // [V11 loc3]
mov x0, x1
str x2, [fp, #0x10] // [V12 loc4]
mov x1, x2
movz x4, #0xD1FFAB1E // code for System.Type:op_Equality(System.Type,System.Type):ubyte
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
cbnz w0, G_M47007_IG21
add x2, x26, #16
ldr x0, [fp, #0x20] // [V20 cse1]
ldr x2, [x2, x0, LSL #3]
ldp x1, x0, [fp, #0x10] // [V12 loc4], [V11 loc3]
movz x3, #0xD1FFAB1E // code for System.DefaultBinder:FindMostSpecificType(System.Type,System.Type,System.Type):int
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
cmp w0, #2
bhi G_M47007_IG21
;; size=84 bbWeight=1.98 PerfScore 49.50
G_M47007_IG18:
mov w0, w0
adr x3, [@RWD00]
ldr w3, [x3, x0, LSL #2]
adr x4, [G_M47007_IG02]
add x3, x3, x4
br x3
;; size=24 bbWeight=1.49 PerfScore 8.91
G_M47007_IG19:
mov w28, #1
b G_M47007_IG21
;; size=8 bbWeight=1.98 PerfScore 2.97
G_M47007_IG20:
mov w27, #1
;; size=4 bbWeight=1.98 PerfScore 0.99
G_M47007_IG21:
ldr w1, [fp, #0x2C] // [V10 loc2]
add w1, w1, #1
ldr w2, [fp, #0x28] // [V19 cse0]
cmp w2, w1
bgt G_M47007_IG07
b G_M47007_IG39
;; size=24 bbWeight=3.96 PerfScore 27.72
G_M47007_IG22:
cbz x22, G_M47007_IG24
;; size=4 bbWeight=0.04 PerfScore 0.04
G_M47007_IG23:
ldr w0, [x22, #0x08]
cmp w1, w0
bhs G_M47007_IG48
add x0, x22, #16
ldr x0, [x0, w1, UXTW #3]
movz x3, #0xD1FFAB1E
+ movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
cmp x0, x3
beq G_M47007_IG38
- ;; size=40 bbWeight=0.02 PerfScore 0.27
+ ;; size=44 bbWeight=0.02 PerfScore 0.28
G_M47007_IG24:
cbz x21, G_M47007_IG26
ldr w0, [x24, #0x08]
cmp w1, w0
bhs G_M47007_IG48
add x0, x24, #16
ldr w0, [x0, w1, UXTW #2]
ldr w3, [x19, #0x08]
sub w3, w3, #1
cmp w0, w3
bge G_M47007_IG27
;; size=40 bbWeight=0.02 PerfScore 0.28
G_M47007_IG25:
b G_M47007_IG26
;; size=4 bbWeight=0.01 PerfScore 0.01
G_M47007_IG26:
ldr w0, [x24, #0x08]
cmp w1, w0
bhs G_M47007_IG48
add x0, x24, #16
str w1, [fp, #0x2C] // [V10 loc2]
ldr w4, [x0, w1, UXTW #2]
ldr w0, [x19, #0x08]
cmp w4, w0
bhs G_M47007_IG48
add x0, x19, #16
ldr x0, [x0, w4, UXTW #3]
ldr x3, [x0]
ldr x3, [x3, #0x40]
ldr x3, [x3, #0x38]
blr x3
mov x1, x0
b G_M47007_IG28
;; size=68 bbWeight=0.02 PerfScore 0.57
G_M47007_IG27:
str x21, [fp, #0x18] // [V11 loc3]
str w1, [fp, #0x2C] // [V10 loc2]
ldr x1, [fp, #0x18] // [V11 loc3]
;; size=12 bbWeight=0.02 PerfScore 0.08
G_M47007_IG28:
cbz x23, G_M47007_IG30
ldr w0, [x25, #0x08]
ldr w3, [fp, #0x2C] // [V10 loc2]
cmp w3, w0
bhs G_M47007_IG48
add x0, x25, #16
ldr w0, [x0, w3, UXTW #2]
ldr w4, [x20, #0x08]
sub w4, w4, #1
cmp w0, w4
str w3, [fp, #0x2C] // [V10 loc2]
bge G_M47007_IG32
;; size=48 bbWeight=0.02 PerfScore 0.34
G_M47007_IG29:
str x1, [fp, #0x18] // [V11 loc3]
b G_M47007_IG31
;; size=8 bbWeight=0.01 PerfScore 0.02
G_M47007_IG30:
str x1, [fp, #0x18] // [V11 loc3]
;; size=4 bbWeight=0.01 PerfScore 0.01
G_M47007_IG31:
ldr w0, [x25, #0x08]
ldr w3, [fp, #0x2C] // [V10 loc2]
cmp w3, w0
bhs G_M47007_IG48
add x0, x25, #16
str w3, [fp, #0x2C] // [V10 loc2]
ldr w4, [x0, w3, UXTW #2]
ldr w0, [x20, #0x08]
cmp w4, w0
bhs G_M47007_IG48
add x0, x20, #16
ldr x0, [x0, w4, UXTW #3]
ldr x4, [x0]
ldr x4, [x4, #0x40]
ldr x4, [x4, #0x38]
blr x4
mov x2, x0
ldr x1, [fp, #0x18] // [V11 loc3]
b G_M47007_IG33
;; size=76 bbWeight=0.02 PerfScore 0.65
G_M47007_IG32:
mov x3, x23
mov x2, x3
;; size=8 bbWeight=0.02 PerfScore 0.02
G_M47007_IG33:
str x1, [fp, #0x18] // [V11 loc3]
mov x0, x1
str x2, [fp, #0x10] // [V12 loc4]
mov x1, x2
movz x3, #0xD1FFAB1E // code for System.Type:op_Equality(System.Type,System.Type):ubyte
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
cbnz w0, G_M47007_IG35
add x2, x26, #16
ldr w3, [fp, #0x2C] // [V10 loc2]
ldr x2, [x2, w3, UXTW #3]
ldp x1, x0, [fp, #0x10] // [V12 loc4], [V11 loc3]
movz x4, #0xD1FFAB1E // code for System.DefaultBinder:FindMostSpecificType(System.Type,System.Type,System.Type):int
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
cmp w0, #2
ldp w2, w1, [fp, #0x28] // [V19 cse0], [V10 loc2]
bhi G_M47007_IG38
;; size=88 bbWeight=0.02 PerfScore 0.54
G_M47007_IG34:
mov w0, w0
adr x3, [@RWD12]
ldr w3, [x3, x0, LSL #2]
adr x4, [G_M47007_IG02]
add x3, x3, x4
br x3
;; size=24 bbWeight=0.02 PerfScore 0.09
G_M47007_IG35:
ldp w2, w1, [fp, #0x28] // [V19 cse0], [V10 loc2]
b G_M47007_IG38
;; size=8 bbWeight=0.01 PerfScore 0.03
G_M47007_IG36:
mov w28, #1
b G_M47007_IG38
;; size=8 bbWeight=0.02 PerfScore 0.03
G_M47007_IG37:
mov w27, #1
;; size=4 bbWeight=0.02 PerfScore 0.01
G_M47007_IG38:
add w1, w1, #1
cmp w2, w1
bgt G_M47007_IG22
;; size=12 bbWeight=0.04 PerfScore 0.08
G_M47007_IG39:
cmp w27, w28
beq G_M47007_IG40
cbnz w27, G_M47007_IG41
b G_M47007_IG44
;; size=16 bbWeight=0.50 PerfScore 1.75
G_M47007_IG40:
cbnz w28, G_M47007_IG46
cbz x22, G_M47007_IG46
ldr w0, [x19, #0x08]
ldr w1, [x20, #0x08]
cmp w0, w1
ble G_M47007_IG43
;; size=24 bbWeight=0.50 PerfScore 4.75
G_M47007_IG41:
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M47007_IG42:
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_M47007_IG43:
ldr w0, [x20, #0x08]
ldr w2, [x19, #0x08]
cmp w0, w2
ble G_M47007_IG46
;; size=16 bbWeight=0.50 PerfScore 3.75
G_M47007_IG44:
mov w0, #2
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M47007_IG45:
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_M47007_IG46:
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M47007_IG47:
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_M47007_IG48:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
RWD00 dd G_M47007_IG46 - G_M47007_IG02
dd G_M47007_IG20 - G_M47007_IG02
dd G_M47007_IG19 - G_M47007_IG02
RWD12 dd G_M47007_IG46 - G_M47007_IG02
dd G_M47007_IG37 - G_M47007_IG02
dd G_M47007_IG36 - G_M47007_IG02
-; Total bytes of code 1164, prolog size 60, PerfScore 334.65, instruction count 291, allocated bytes for code 1164 (MethodHash=85354860) for method System.DefaultBinder:FindMostSpecific(System.Reflection.ParameterInfo[],int[],System.Type,System.Reflection.ParameterInfo[],int[],System.Type,System.Type[],System.Object[]):int (FullOpts)
+; Total bytes of code 1172, prolog size 60, PerfScore 336.64, instruction count 293, allocated bytes for code 1172 (MethodHash=85354860) for method System.DefaultBinder:FindMostSpecific(System.Reflection.ParameterInfo[],int[],System.Type,System.Reflection.ParameterInfo[],int[],System.Type,System.Type[],System.Object[]):int (FullOpts)
8 (1.01 % of base) - System.Net.HttpWebRequest:BeginGetResponse(System.AsyncCallback,System.Object):System.IAsyncResult:this
; Assembly listing for method System.Net.HttpWebRequest:BeginGetResponse(System.AsyncCallback,System.Object):System.IAsyncResult: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; 15 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 8, 8 ) ref -> x19 this class-hnd single-def <System.Net.HttpWebRequest>
; V01 arg1 [V01,T04] ( 4, 4 ) ref -> x20 class-hnd single-def <System.AsyncCallback>
; V02 arg2 [V02,T10] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Object>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T19] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
;* V05 tmp2 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.TaskCompletionSource`1[System.Net.WebResponse]>
;* V06 tmp3 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Net.TaskExtensions+<>c__DisplayClass0_0`1[System.Net.WebResponse]>
-; V07 tmp4 [V07,T09] ( 5, 5 ) ref -> x24 class-hnd exact single-def "Inline stloc first use temp" <System.Net.TaskExtensions+<>c__DisplayClass0_0`1[System.Net.WebResponse]>
+; V07 tmp4 [V07,T09] ( 5, 5 ) ref -> x23 class-hnd exact single-def "Inline stloc first use temp" <System.Net.TaskExtensions+<>c__DisplayClass0_0`1[System.Net.WebResponse]>
; V08 tmp5 [V08,T06] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource`1[System.Net.WebResponse]>
; V09 tmp6 [V09,T02] ( 4, 8 ) ref -> x22 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.Net.WebResponse]>
-; V10 tmp7 [V10,T03] ( 4, 8 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Threading.Tasks.Task`1[System.Net.WebResponse]]>
+; V10 tmp7 [V10,T03] ( 4, 8 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Threading.Tasks.Task`1[System.Net.WebResponse]]>
;* V11 tmp8 [V11 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-; V12 tmp9 [V12,T07] ( 3, 6 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[System.Net.WebResponse]>
+; V12 tmp9 [V12,T07] ( 3, 6 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[System.Net.WebResponse]>
;* V13 tmp10 [V13 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V14 tmp11 [V14 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V15 tmp12 [V15,T08] ( 3, 6 ) ref -> x21 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskScheduler>
+; V15 tmp12 [V15,T08] ( 3, 6 ) ref -> x24 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskScheduler>
;* V16 tmp13 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.ContinuationTaskFromResultTask`1[System.Net.WebResponse]>
;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
; V18 tmp15 [V18 ] ( 2, 2 ) int -> [fp+0x1C] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V19 tmp16 [V19,T01] ( 6, 10 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.ContinuationTaskFromResultTask`1[System.Net.WebResponse]>
;* V20 tmp17 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.ContinuationTaskFromResultTask`1[System.Net.WebResponse]>
;* V21 tmp18 [V21 ] ( 0, 0 ) byref -> zero-ref
;* V22 tmp19 [V22 ] ( 0, 0 ) byref -> zero-ref
;* V23 tmp20 [V23 ] ( 0, 0 ) int -> zero-ref
;* V24 tmp21 [V24,T14] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V25 tmp22 [V25 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V26 tmp23 [V26,T13] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task>
-; V27 tmp24 [V27,T12] ( 2, 4 ) int -> x5 "Inlining Arg"
+; V27 tmp24 [V27,T11] ( 2, 4 ) int -> x5 "Inlining Arg"
;* V28 tmp25 [V28 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
; V29 tmp26 [V29,T05] ( 4, 6 ) ref -> x26 class-hnd exact single-def "Inlining Arg" <System.Threading.ExecutionContext>
;* V30 tmp27 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.TaskCompletionSource`1[System.Net.WebResponse]>
;* V31 tmp28 [V31,T16] ( 0, 0 ) ref -> zero-ref single-def "field V11._source (fldOffset=0x0)" P-INDEP
;* V32 tmp29 [V32,T17] ( 0, 0 ) ref -> zero-ref single-def "field V13._source (fldOffset=0x0)" P-INDEP
;* V33 tmp30 [V33 ] ( 0, 0 ) ref -> zero-ref single-def "field V14._source (fldOffset=0x0)" P-INDEP
;* V34 tmp31 [V34 ] ( 0, 0 ) ref -> zero-ref single-def "field V25._source (fldOffset=0x0)" P-INDEP
;* V35 tmp32 [V35,T18] ( 0, 0 ) ref -> zero-ref single-def "field V28._source (fldOffset=0x0)" P-INDEP
; V36 tmp33 [V36,T20] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V37 cse0 [V37,T11] ( 4, 4 ) long -> x23 "CSE #01: aggressive"
+; V37 cse0 [V37,T12] ( 3, 3 ) long -> x20 "CSE #01: aggressive"
; V38 cse1 [V38,T15] ( 3, 1.50) byref -> x14 "CSE #02: moderate"
;
; Lcl frame size = 16
G_M35245_IG01:
stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
stp x25, x26, [sp, #0x50]
mov fp, sp
mov x19, x0
mov x20, x1
mov x21, x2
;; size=36 bbWeight=1 PerfScore 7.00
G_M35245_IG02:
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.Net.HttpWebRequest:CheckAbort():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
add x14, x19, #208
mov w15, #1
swpal w15, w14, [x14]
cbnz w14, G_M35245_IG12
add x14, x19, #144
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
mov x0, x19
mov w1, #1
movz x2, #0xD1FFAB1E // code for System.Net.HttpWebRequest:HandleResponse(ubyte):System.Threading.Tasks.Task`1[System.Net.WebResponse]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x22, x0
- movz x23, #0xD1FFAB1E
- movk x23, #0xD1FFAB1E LSL #16
- movk x23, #0xD1FFAB1E LSL #32
- mov x0, x23
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x24, x0
- add x14, x24, #16
+ mov x23, x0
+ add x14, x23, #16
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x25, x0
+ mov x24, x0
mov x3, xzr
mov x2, x21
mov x1, xzr
mov w4, wzr
mov w5, #0xD1FFAB1E
mov x6, xzr
movz x7, #0xD1FFAB1E // code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
add x14, x20, #8
- mov x15, x25
+ mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
- add x14, x24, #8
+ add x14, x23, #8
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
- add x0, x23, #184
+ movz x20, #0xD1FFAB1E
+ movk x20, #0xD1FFAB1E LSL #16
+ movk x20, #0xD1FFAB1E LSL #32
+ mov x0, x20
bl CORINFO_HELP_NEWSFAST
- mov x20, x0
- add x14, x20, #8
- mov x15, x24
+ mov x21, x0
+ add x14, x21, #8
+ mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E // code for System.Net.TaskExtensions+<>c__DisplayClass0_0`1[System.__Canon]:<ToApm>b__0(System.Threading.Tasks.Task`1[System.__Canon]):this
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- str x0, [x20, #0x18]
+ str x0, [x21, #0x18]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M35245_IG09
- ;; size=288 bbWeight=1 PerfScore 56.00
+ ;; size=296 bbWeight=1 PerfScore 57.00
G_M35245_IG03:
movz x0, #0xD1FFAB1E // data for System.Threading.Tasks.TaskScheduler:s_defaultTaskScheduler
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldr x21, [x0]
+ ldr x24, [x0]
ldrsb wzr, [x22]
- cbz x21, G_M35245_IG11
+ cbz x24, G_M35245_IG11
mov w0, #0xD1FFAB1E
str w0, [fp, #0x1C] // [V18 tmp15]
- add x0, x23, #0xD1FFAB1E
+ add x0, x20, #224
bl CORINFO_HELP_NEWSFAST
mov x25, x0
ldr w5, [fp, #0x1C] // [V18 tmp15]
mov x0, x25
- mov x1, x20
+ mov x1, x21
mov x3, xzr
mov w4, wzr
mov x2, xzr
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 x26, x0
cbz x26, G_M35245_IG06
;; size=120 bbWeight=1 PerfScore 29.50
G_M35245_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M35245_IG10
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M35245_IG05:
movz x0, #0xD1FFAB1E // data for System.Threading.ExecutionContext:Default
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
cmp x26, x0
beq G_M35245_IG07
mov x0, x25
movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
add x14, x0, #8
mov x15, x26
bl CORINFO_HELP_ASSIGN_REF
b G_M35245_IG07
;; size=64 bbWeight=0.50 PerfScore 7.50
G_M35245_IG06:
add x14, x25, #52
ldapr w15, [x14]
orr w15, w15, #0xD1FFAB1E
stlr w15, [x14]
;; size=16 bbWeight=0.50 PerfScore 2.50
G_M35245_IG07:
add x14, x25, #56
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x0, x22
mov x1, x25
- mov x2, x21
+ mov x2, x24
mov x3, xzr
mov w4, wzr
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 x15, [x24, #0x08]
+ ldr x15, [x23, #0x08]
add x14, x19, #128
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x80]
ldr x0, [x0, #0x08]
;; size=72 bbWeight=1 PerfScore 20.50
G_M35245_IG08:
ldp x25, x26, [sp, #0x50]
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x60
ret lr
;; size=24 bbWeight=1 PerfScore 6.00
G_M35245_IG09:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M35245_IG03
;; size=24 bbWeight=0 PerfScore 0.00
G_M35245_IG10:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M35245_IG05
;; size=24 bbWeight=0 PerfScore 0.00
G_M35245_IG11:
mov w0, #47
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentNullException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
G_M35245_IG12:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_net_repcall():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for System.InvalidOperationException:.ctor(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x19
bl CORINFO_HELP_THROW
brk_unix #0
;; size=80 bbWeight=0 PerfScore 0.00
-; Total bytes of code 796, prolog size 24, PerfScore 131.75, instruction count 199, allocated bytes for code 796 (MethodHash=566e7652) for method System.Net.HttpWebRequest:BeginGetResponse(System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts)
+; Total bytes of code 804, prolog size 24, PerfScore 132.75, instruction count 201, allocated bytes for code 804 (MethodHash=566e7652) for method System.Net.HttpWebRequest:BeginGetResponse(System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts)