36 (1.96 % of base) - Microsoft.CSharp.RuntimeBinder.RuntimeBinder:CreateMemberGroupExpr(System.String,System.Type[],Microsoft.CSharp.RuntimeBinder.Semantics.Expr,int):Microsoft.CSharp.RuntimeBinder.Semantics.ExprMemberGroup
; Assembly listing for method Microsoft.CSharp.RuntimeBinder.RuntimeBinder:CreateMemberGroupExpr(System.String,System.Type[],Microsoft.CSharp.RuntimeBinder.Semantics.Expr,int):Microsoft.CSharp.RuntimeBinder.Semantics.ExprMemberGroup (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; 33 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T11] ( 14, 9.50) ref -> x19 class-hnd single-def <System.String>
-; V01 arg1 [V01,T21] ( 5, 4 ) ref -> x21 class-hnd single-def <System.Type[]>
-; V02 arg2 [V02,T20] ( 6, 4.25) ref -> x20 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
-; V03 arg3 [V03,T29] ( 4, 3.25) int -> x22 single-def
-; V04 loc0 [V04,T32] ( 4, 4 ) ref -> x23 class-hnd exact single-def <Microsoft.CSharp.RuntimeBinder.Syntax.Name>
-; V05 loc1 [V05,T36] ( 6, 3.75) ref -> x24 class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
-; V06 loc2 [V06,T37] ( 7, 3.50) ref -> x1 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-; V07 loc3 [V07,T41] ( 2, 3 ) ref -> x25 class-hnd exact single-def <System.Collections.Generic.HashSet`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V08 loc4 [V08,T07] ( 8, 14 ) ref -> x28 class-hnd exact single-def <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V09 loc5 [V09,T01] ( 4, 34 ) long -> x26
-; V10 loc6 [V10,T31] ( 2, 5 ) ubyte -> [fp+0x54] spill-single-def
-; V11 loc7 [V11,T30] ( 8, 5 ) int -> x25
-; V12 loc8 [V12,T45] ( 2, 2 ) ref -> x19 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
-; V13 loc9 [V13,T49] ( 3, 1.75) ref -> x0 class-hnd exact single-def <Microsoft.CSharp.RuntimeBinder.Semantics.ExprMemberGroup>
-; V14 loc10 [V14,T53] ( 2, 1 ) ref -> x0 class-hnd exact <Microsoft.CSharp.RuntimeBinder.Semantics.NullableType>
-; V15 loc11 [V15,T10] ( 6, 13 ) ref -> [fp+0x38] class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType]>
-; V16 loc12 [V16,T08] ( 5, 14 ) ref -> [fp+0x30] class-hnd spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
+; V01 arg1 [V01,T20] ( 5, 4 ) ref -> x21 class-hnd single-def <System.Type[]>
+; V02 arg2 [V02,T19] ( 6, 4.25) ref -> x20 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.Expr>
+; V03 arg3 [V03,T28] ( 4, 3.25) int -> x22 single-def
+; V04 loc0 [V04,T31] ( 4, 4 ) ref -> x23 class-hnd exact single-def <Microsoft.CSharp.RuntimeBinder.Syntax.Name>
+; V05 loc1 [V05,T35] ( 6, 3.75) ref -> x24 class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
+; V06 loc2 [V06,T36] ( 7, 3.50) ref -> x1 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+; V07 loc3 [V07,T40] ( 2, 3 ) ref -> x25 class-hnd exact single-def <System.Collections.Generic.HashSet`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V08 loc4 [V08,T07] ( 8, 14 ) ref -> x27 class-hnd exact single-def <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V09 loc5 [V09,T01] ( 4, 34 ) long -> x28
+; V10 loc6 [V10,T30] ( 2, 5 ) ubyte -> x26
+; V11 loc7 [V11,T29] ( 8, 5 ) int -> x25
+; V12 loc8 [V12,T44] ( 2, 2 ) ref -> x19 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
+; V13 loc9 [V13,T48] ( 3, 1.75) ref -> x0 class-hnd exact single-def <Microsoft.CSharp.RuntimeBinder.Semantics.ExprMemberGroup>
+; V14 loc10 [V14,T52] ( 2, 1 ) ref -> x0 class-hnd exact <Microsoft.CSharp.RuntimeBinder.Semantics.NullableType>
+; V15 loc11 [V15,T10] ( 6, 13 ) ref -> [fp+0x30] class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType]>
+; V16 loc12 [V16,T08] ( 5, 14 ) ref -> [fp+0x28] class-hnd spill-single-def <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
;# V17 OutArgs [V17 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V18 tmp1 [V18,T44] ( 0, 0 ) int -> zero-ref "spilling qmarkNull"
+;* V18 tmp1 [V18,T43] ( 0, 0 ) int -> zero-ref "spilling qmarkNull"
;* V19 tmp2 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <Microsoft.CSharp.RuntimeBinder.Semantics.NullableType>
-; V20 tmp3 [V20,T22] ( 3, 6 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V21 tmp4 [V21,T23] ( 3, 6 ) ref -> x28 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
-; V22 tmp5 [V22,T43] ( 3, 2 ) ref -> x19
-; V23 tmp6 [V23,T19] ( 4, 6.50) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults>
-;* V24 tmp7 [V24,T47] ( 0, 0 ) int -> zero-ref "spilling qmarkNull"
+; V20 tmp3 [V20,T21] ( 3, 6 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V21 tmp4 [V21,T22] ( 3, 6 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]>
+; V22 tmp5 [V22,T42] ( 3, 2 ) ref -> x19
+; V23 tmp6 [V23,T18] ( 4, 6.50) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults>
+;* V24 tmp7 [V24,T46] ( 0, 0 ) int -> zero-ref "spilling qmarkNull"
;* V25 tmp8 [V25 ] ( 0, 0 ) ref -> zero-ref
;* V26 tmp9 [V26 ] ( 0, 0 ) ref -> zero-ref
;* V27 tmp10 [V27 ] ( 0, 0 ) ref -> zero-ref single-def
-; V28 tmp11 [V28,T46] ( 2, 2 ) ref -> x15 single-def
-; V29 tmp12 [V29,T13] ( 5, 10 ) ref -> [fp+0x28] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType+<get_TypeHierarchy>d__17>
-; V30 tmp13 [V30,T04] ( 2, 16 ) ref -> [fp+0x20] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol>
+; V28 tmp11 [V28,T45] ( 2, 2 ) ref -> x15 single-def
+; V29 tmp12 [V29,T12] ( 5, 10 ) ref -> [fp+0x20] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType+<get_TypeHierarchy>d__17>
+; V30 tmp13 [V30,T04] ( 2, 16 ) ref -> [fp+0x18] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol>
; V31 tmp14 [V31,T09] ( 4, 14 ) ref -> x0
-; V32 tmp15 [V32,T05] ( 2, 16 ) ref -> [fp+0x18] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Syntax.Name>
-; V33 tmp16 [V33,T24] ( 2, 4 ) ref -> x2 class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Symbol>
+; V32 tmp15 [V32,T05] ( 2, 16 ) ref -> [fp+0x10] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Syntax.Name>
+; V33 tmp16 [V33,T23] ( 2, 4 ) ref -> x2 class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Symbol>
;* V34 tmp17 [V34 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SymbolStore+Key>
; V35 tmp18 [V35,T02] ( 3, 24 ) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Generic.Dictionary`2[Microsoft.CSharp.RuntimeBinder.Semantics.SymbolStore+Key,Microsoft.CSharp.RuntimeBinder.Semantics.Symbol]>
-; V36 tmp19 [V36,T25] ( 2, 4 ) ref -> x2 ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Symbol>
-;* V37 tmp20 [V37,T35] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V36 tmp19 [V36,T24] ( 2, 4 ) ref -> x2 ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Symbol>
+;* V37 tmp20 [V37,T34] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V38 tmp21 [V38 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.SymbolStore+Key>
-; V39 tmp22 [V39,T14] ( 3, 10 ) byref -> x0 "Inline stloc first use temp"
-; V40 tmp23 [V40,T15] ( 3, 10 ) ref -> x2 class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Symbol>
+; V39 tmp22 [V39,T13] ( 3, 10 ) byref -> x0 "Inline stloc first use temp"
+; V40 tmp23 [V40,T14] ( 3, 10 ) ref -> x2 class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.Symbol>
; V41 tmp24 [V41,T00] ( 6,268 ) ref -> x2 class-hnd "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.Symbol>
-; V42 tmp25 [V42 ] ( 1, 2 ) int -> [fp+0x48] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V43 tmp26 [V43,T26] ( 3, 6 ) ref -> x2 class-hnd "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType[]>
-; V44 tmp27 [V44,T16] ( 4, 8 ) int -> x0 "Inline stloc first use temp"
+; V42 tmp25 [V42 ] ( 1, 2 ) int -> [fp+0x40] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+; V43 tmp26 [V43,T25] ( 3, 6 ) ref -> x2 class-hnd "Inline stloc first use temp" <Microsoft.CSharp.RuntimeBinder.Semantics.CType[]>
+; V44 tmp27 [V44,T15] ( 4, 8 ) int -> x0 "Inline stloc first use temp"
;* V45 tmp28 [V45 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V46 tmp29 [V46,T50] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V46 tmp29 [V46,T49] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V47 tmp30 [V47 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V48 tmp31 [V48,T51] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V48 tmp31 [V48,T50] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V49 tmp32 [V49 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V50 tmp33 [V50,T52] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
-; V51 tmp34 [V51,T33] ( 2, 4 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
+;* V50 tmp33 [V50,T51] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+; V51 tmp34 [V51,T32] ( 2, 4 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
; V52 tmp35 [V52,T06] ( 11, 13 ) ref -> x26 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ExprMemberGroup>
-;* V53 tmp36 [V53,T55] ( 0, 0 ) ref -> zero-ref single-def
-; V54 tmp37 [V54,T42] ( 4, 2.75) ref -> x15
-; V55 tmp38 [V55,T34] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.MethodGroupType>
-; V56 tmp39 [V56,T17] ( 2, 8 ) ref -> x1 "field V34._name (fldOffset=0x0)" P-INDEP
-; V57 tmp40 [V57,T18] ( 2, 8 ) ref -> x2 "field V34._parent (fldOffset=0x8)" P-INDEP
+;* V53 tmp36 [V53,T54] ( 0, 0 ) ref -> zero-ref single-def
+; V54 tmp37 [V54,T41] ( 4, 2.75) ref -> x15
+; V55 tmp38 [V55,T33] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.MethodGroupType>
+; V56 tmp39 [V56,T16] ( 2, 8 ) ref -> x1 "field V34._name (fldOffset=0x0)" P-INDEP
+; V57 tmp40 [V57,T17] ( 2, 8 ) ref -> x2 "field V34._parent (fldOffset=0x8)" P-INDEP
;* V58 tmp41 [V58 ] ( 0, 0 ) ref -> zero-ref "field V38._name (fldOffset=0x0)" P-INDEP
;* V59 tmp42 [V59 ] ( 0, 0 ) ref -> zero-ref "field V38._parent (fldOffset=0x8)" P-INDEP
-; V60 tmp43 [V60,T27] ( 3, 6 ) ref -> x0 single-def "arr expr"
-; V61 tmp44 [V61,T40] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
-; V62 PSPSym [V62,T56] ( 1, 1 ) long -> [fp+0x58] do-not-enreg[V] "PSPSym"
-; V63 cse0 [V63,T12] ( 8, 10 ) long -> x27 "CSE #05: moderate"
-; V64 cse1 [V64,T03] ( 6, 21 ) long -> [fp+0x40] multi-def "CSE #06: aggressive"
-; V65 cse2 [V65,T39] ( 4, 3 ) long -> x26 "CSE #04: moderate"
-; V66 rat0 [V66,T38] ( 4, 3.50) ref -> x24 "replacement local"
-; V67 rat1 [V67,T54] ( 3, 1 ) long -> x0 "CSE for expectedClsNode"
-; V68 rat2 [V68,T48] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
-; V69 rat3 [V69,T28] ( 3, 5.67) int -> x1 "ReplaceWithLclVar is creating a new local variable"
+; V60 tmp43 [V60,T26] ( 3, 6 ) ref -> x0 single-def "arr expr"
+; V61 tmp44 [V61,T39] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V62 PSPSym [V62,T55] ( 1, 1 ) long -> [fp+0x48] do-not-enreg[V] "PSPSym"
+; V63 cse0 [V63,T03] ( 6, 21 ) long -> [fp+0x38] multi-def "CSE #06: aggressive"
+; V64 cse1 [V64,T38] ( 4, 3 ) long -> x26 "CSE #04: moderate"
+; V65 rat0 [V65,T37] ( 4, 3.50) ref -> x24 "replacement local"
+; V66 rat1 [V66,T53] ( 3, 1 ) long -> x0 "CSE for expectedClsNode"
+; V67 rat2 [V67,T47] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V68 rat3 [V68,T27] ( 3, 5.67) int -> x26 "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 80
+; Lcl frame size = 64
G_M49301_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]
+ 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 x4, sp, #176
- str x4, [fp, #0x58] // [V62 PSPSym]
+ add x4, sp, #160
+ str x4, [fp, #0x48] // [V62 PSPSym]
mov x19, x0
mov x21, x1
mov x20, x2
mov w22, w3
;; size=52 bbWeight=1 PerfScore 10.00
G_M49301_IG02:
mov x0, x19
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.RuntimeBinder.Syntax.NameManager:Add(System.String):Microsoft.CSharp.RuntimeBinder.Syntax.Name
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x23, x0
ldr x1, [x20, #0x08]
cbnz x1, G_M49301_IG09
;; size=36 bbWeight=1 PerfScore 10.50
G_M49301_IG03:
mov x24, x1
cbz x24, G_M49301_IG05
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M49301_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x2, [x24]
cmp x2, x0
bne G_M49301_IG58
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M49301_IG05:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x25, x0
movz x26, #0xD1FFAB1E
movk x26, #0xD1FFAB1E LSL #16
movk x26, #0xD1FFAB1E LSL #32
add x0, x26, #0xD1FFAB1E
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M49301_IG52
;; size=56 bbWeight=1 PerfScore 10.50
G_M49301_IG06:
- movz x27, #0xD1FFAB1E // data for System.Collections.Generic.EqualityComparer`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]:<Default>k__BackingField
- movk x27, #0xD1FFAB1E LSL #16
- movk x27, #0xD1FFAB1E LSL #32
- ldr x15, [x27]
+ movz x14, #0xD1FFAB1E // data for System.Collections.Generic.EqualityComparer`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]:<Default>k__BackingField
+ movk x14, #0xD1FFAB1E LSL #32
+ ldr x15, [x14]
add x14, x25, #24
bl CORINFO_HELP_ASSIGN_REF
mov x0, x26
bl CORINFO_HELP_NEWSFAST
- mov x28, x0
+ mov x27, x0
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M49301_IG53
- ;; size=56 bbWeight=1 PerfScore 13.50
+ ;; size=52 bbWeight=1 PerfScore 13.00
G_M49301_IG07:
- ldr x15, [x27, #-0x18]
- add x14, x28, #8
+ movz x14, #0xD1FFAB1E // data for System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]:s_emptyArray
+ movk x14, #0xD1FFAB1E LSL #32
+ ldr x15, [x14]
+ add x14, x27, #8
bl CORINFO_HELP_ASSIGN_REF
- mov x26, #32
- sub w1, w22, #5
- cmp w1, #4
+ mov x28, #32
+ sub w26, w22, #5
+ cmp w26, #4
bhi G_M49301_IG14
- ;; size=28 bbWeight=1 PerfScore 7.00
+ ;; size=36 bbWeight=1 PerfScore 8.00
G_M49301_IG08:
- mov w0, w1
+ mov w0, w26
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
adr x2, [G_M49301_IG02]
add x1, x1, x2
br x1
;; size=24 bbWeight=0.83 PerfScore 5.00
G_M49301_IG09:
ldr x0, [x1]
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
cmp x0, x2
beq G_M49301_IG11
ldr x0, [x1]
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
cmp x0, x2
bne G_M49301_IG03
;; size=48 bbWeight=0.25 PerfScore 3.00
G_M49301_IG10:
mov x0, x1
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.RuntimeBinder.Semantics.NullableType:GetAts():Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x24, x0
b G_M49301_IG05
align [0 bytes for IG22]
align [0 bytes]
align [0 bytes]
align [0 bytes]
;; size=32 bbWeight=0.50 PerfScore 3.75
G_M49301_IG11:
mov w0, #19
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.RuntimeBinder.Semantics.PredefinedTypes:GetPredefinedAggregate(uint):Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol:getThisType():Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
mov x24, x0
b G_M49301_IG05
;; size=56 bbWeight=0.50 PerfScore 8.00
G_M49301_IG12:
- mov x26, #64
+ mov x28, #64
b G_M49301_IG14
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M49301_IG13:
- mov x26, #32
+ mov x28, #32
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M49301_IG14:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M49301_IG54
;; size=20 bbWeight=1 PerfScore 5.50
G_M49301_IG15:
- ldr x0, [x27, #-0x50]
+ movz x0, #0xD1FFAB1E // data for Microsoft.CSharp.RuntimeBinder.Syntax.NameManager:s_predefinedNames
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr x0, [x0]
ldr w1, [x0, #0x08]
cmp w1, #0
bls G_M49301_IG59
ldr x0, [x0, #0x10]
cmp x23, x0
- cset x1, eq
- str w1, [fp, #0x54] // [V10 loc6]
+ cset x26, eq
ldrsb wzr, [x24]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- str x0, [fp, #0x28] // [V29 tmp12]
+ str x0, [fp, #0x20] // [V29 tmp12]
movn w1, #1
str w1, [x0, #0x28]
bl System.Environment:get_CurrentManagedThreadId():int
- ldr x1, [fp, #0x28] // [V29 tmp12]
+ ldr x1, [fp, #0x20] // [V29 tmp12]
str w0, [x1, #0x2C]
add x14, x1, #16
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x0, x1
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType+<get_TypeHierarchy>d__17:System.Collections.Generic.IEnumerable<Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>.GetEnumerator():System.Collections.Generic.IEnumerator`1[Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType]:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- str x0, [fp, #0x38] // [V15 loc11]
- ;; size=116 bbWeight=1 PerfScore 33.50
+ str x0, [fp, #0x30] // [V15 loc11]
+ ;; size=120 bbWeight=1 PerfScore 33.50
G_M49301_IG16:
- ldr x0, [fp, #0x38] // [V15 loc11]
+ ldr x0, [fp, #0x30] // [V15 loc11]
movz x1, #0xD1FFAB1E // code for System.Collections.IEnumerator:MoveNext():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- str x1, [fp, #0x40] // [V64 cse1]
+ str x1, [fp, #0x38] // [V63 cse0]
mov x11, x1
ldr xip0, [x11]
blr xip0
cbz w0, G_M49301_IG30
;; size=36 bbWeight=8 PerfScore 80.00
G_M49301_IG17:
- ldp x0, x1, [fp, #0x38] // [V15 loc11], [V64 cse1]
+ ldp x0, x1, [fp, #0x30] // [V15 loc11], [V63 cse0]
add x11, x1, #8
ldr xip0, [x11]
blr xip0
mov x1, x0
- str x1, [fp, #0x30] // [V16 loc12]
+ str x1, [fp, #0x28] // [V16 loc12]
ldr x2, [x1, #0x30]
- str x2, [fp, #0x20] // [V30 tmp13]
+ str x2, [fp, #0x18] // [V30 tmp13]
mov x0, x19
cbnz x0, G_M49301_IG19
;; size=40 bbWeight=4 PerfScore 58.00
G_M49301_IG18:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
;; size=12 bbWeight=2 PerfScore 3.00
G_M49301_IG19:
movz x3, #0xD1FFAB1E // code for Microsoft.CSharp.RuntimeBinder.Syntax.NameManager:Add(System.String):Microsoft.CSharp.RuntimeBinder.Syntax.Name
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x1, x0
- str x1, [fp, #0x18] // [V32 tmp15]
+ str x1, [fp, #0x10] // [V32 tmp15]
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr w2, [x2]
tbz w2, #0, G_M49301_IG29
;; size=48 bbWeight=4 PerfScore 50.00
G_M49301_IG20:
- ldr x0, [x27, #0x08]
- ldr x2, [fp, #0x20] // [V30 tmp13]
+ movz x2, #0xD1FFAB1E // data for Microsoft.CSharp.RuntimeBinder.Semantics.SymbolStore:s_dictionary
+ movk x2, #0xD1FFAB1E LSL #32
+ ldr x0, [x2]
+ ldr x2, [fp, #0x18] // [V30 tmp13]
ldrsb wzr, [x0]
movz x3, #0xD1FFAB1E // code for System.Collections.Generic.Dictionary`2[Microsoft.CSharp.RuntimeBinder.Semantics.SymbolStore+Key,System.__Canon]:FindValue(Microsoft.CSharp.RuntimeBinder.Semantics.SymbolStore+Key):byref:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
cbz x0, G_M49301_IG28
- ;; size=36 bbWeight=4 PerfScore 58.00
+ ;; size=44 bbWeight=4 PerfScore 62.00
G_M49301_IG21:
ldr x2, [x0]
;; size=4 bbWeight=2 PerfScore 6.00
G_M49301_IG22:
ldr w0, [x2, #0x28]
mov w1, #1
lsl w0, w1, w0
sxtw x0, w0
- tst x26, x0
+ tst x28, x0
beq G_M49301_IG24
;; size=24 bbWeight=32 PerfScore 192.00
G_M49301_IG23:
b G_M49301_IG26
;; size=4 bbWeight=4 PerfScore 4.00
G_M49301_IG24:
ldr x2, [x2, #0x20]
cbnz x2, G_M49301_IG22
;; size=8 bbWeight=32 PerfScore 128.00
G_M49301_IG25:
mov x2, xzr
;; size=4 bbWeight=4 PerfScore 2.00
G_M49301_IG26:
cbz x2, G_M49301_IG28
- add x2, fp, #72 // [V42 tmp25]
+ add x2, fp, #64 // [V42 tmp25]
mov x0, x25
- ldr x1, [fp, #0x30] // [V16 loc12]
+ ldr x1, [fp, #0x28] // [V16 loc12]
movz x3, #0xD1FFAB1E // code for System.Collections.Generic.HashSet`1[System.__Canon]:AddIfNotPresent(System.__Canon,byref):ubyte:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
cbz w0, G_M49301_IG28
- ldp w0, w1, [x28, #0x10]
+ ldp w0, w1, [x27, #0x10]
add w1, w1, #1
- str w1, [x28, #0x14]
- ldr x2, [x28, #0x08]
+ str w1, [x27, #0x14]
+ ldr x2, [x27, #0x08]
ldr w1, [x2, #0x08]
cmp w1, w0
bls G_M49301_IG27
add w1, w0, #1
- str w1, [x28, #0x10]
+ str w1, [x27, #0x10]
sxtw x1, w0
mov x0, x2
- ldr x2, [fp, #0x30] // [V16 loc12]
+ ldr x2, [fp, #0x28] // [V16 loc12]
movz x3, #0xD1FFAB1E // code for CORINFO_HELP_ARRADDR_ST
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M49301_IG28
;; size=112 bbWeight=2 PerfScore 67.00
G_M49301_IG27:
- mov x0, x28
- ldr x1, [fp, #0x30] // [V16 loc12]
+ mov x0, x27
+ ldr x1, [fp, #0x28] // [V16 loc12]
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=28 bbWeight=2 PerfScore 16.00
G_M49301_IG28:
- ldr w1, [fp, #0x54] // [V10 loc6]
- cbz w1, G_M49301_IG16
+ cbz w26, G_M49301_IG16
b G_M49301_IG30
- ;; size=12 bbWeight=4 PerfScore 16.00
+ ;; size=8 bbWeight=4 PerfScore 8.00
G_M49301_IG29:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
- ldr x1, [fp, #0x18] // [V32 tmp15]
+ ldr x1, [fp, #0x10] // [V32 tmp15]
b G_M49301_IG20
;; size=24 bbWeight=0 PerfScore 0.00
G_M49301_IG30:
- ldp x0, x25, [fp, #0x38] // [V15 loc11], [V64 cse1]
+ ldp x0, x25, [fp, #0x30] // [V15 loc11], [V63 cse0]
add x11, x25, #16
ldr xip0, [x11]
blr xip0
mov w25, #0xD1FFAB1E
cbz x19, G_M49301_IG40
;; size=24 bbWeight=1 PerfScore 9.00
G_M49301_IG31:
ldr w0, [x19, #0x08]
cmp w0, #6
bne G_M49301_IG34
;; size=12 bbWeight=0.25 PerfScore 1.12
G_M49301_IG32:
ldr x0, [x19, #0x0C]
movz x1, #73
movk x1, #110 LSL #16
movk x1, #118 LSL #32
movk x1, #111 LSL #48
eor x0, x0, x1
ldr w1, [x19, #0x14]
movz w2, #107
movk w2, #101 LSL #16
eor w1, w1, w2
mov w1, w1
orr x0, x0, x1
cbnz x0, G_M49301_IG34
;; size=52 bbWeight=0.12 PerfScore 1.50
G_M49301_IG33:
ldr x0, [x20, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x10]
blr x1
mov w1, #0xD1FFAB1E
cmp w0, #0
csel w25, w25, w1, eq
;; size=32 bbWeight=0.50 PerfScore 7.25
G_M49301_IG34:
ldr w0, [x19, #0x08]
cmp w0, #5
bne G_M49301_IG37
;; size=12 bbWeight=0.25 PerfScore 1.12
G_M49301_IG35:
ldr x0, [x19, #0x0C]
movz x1, #46
movk x1, #99 LSL #16
movk x1, #116 LSL #32
movk x1, #111 LSL #48
eor x0, x0, x1
ldr w1, [x19, #0x12]
movz w2, #111
movk w2, #114 LSL #16
eor w1, w1, w2
mov w1, w1
orr x0, x0, x1
cbnz x0, G_M49301_IG37
;; size=52 bbWeight=0.12 PerfScore 1.50
G_M49301_IG36:
orr w25, w25, #2
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M49301_IG37:
ldr w0, [x19, #0x08]
cmp w0, #6
bne G_M49301_IG40
;; size=12 bbWeight=0.25 PerfScore 1.12
G_M49301_IG38:
ldr x0, [x19, #0x0C]
movz x1, #36
movk x1, #73 LSL #16
movk x1, #116 LSL #32
movk x1, #101 LSL #48
eor x0, x0, x1
ldr w1, [x19, #0x14]
movz w2, #109
movk w2, #36 LSL #16
eor w1, w1, w2
mov w1, w1
orr x0, x0, x1
cbnz x0, G_M49301_IG40
;; size=52 bbWeight=0.12 PerfScore 1.50
G_M49301_IG39:
orr w25, w25, #4
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M49301_IG40:
cbz x21, G_M49301_IG42
;; size=4 bbWeight=1 PerfScore 1.00
G_M49301_IG41:
ldr w0, [x21, #0x08]
cbnz w0, G_M49301_IG50
;; size=8 bbWeight=0.50 PerfScore 2.00
G_M49301_IG42:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M49301_IG55
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M49301_IG43:
- ldr x19, [x27, #-0x08]
- ;; size=4 bbWeight=0.50 PerfScore 1.50
+ movz x0, #0xD1FFAB1E // data for Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray:Empty
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr x19, [x0]
+ ;; size=12 bbWeight=0.50 PerfScore 2.00
G_M49301_IG44:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x21, x0
- mov x0, x28
+ mov x0, x27
movz x1, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:ToArray():System.__Canon[]:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray:Allocate(Microsoft.CSharp.RuntimeBinder.Semantics.CType[]):Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
add x14, x21, #16
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x26, x0
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M49301_IG56
;; size=128 bbWeight=1 PerfScore 27.00
G_M49301_IG45:
- ldr x15, [x27, #0x10]
+ movz x14, #0xD1FFAB1E // data for Microsoft.CSharp.RuntimeBinder.Semantics.MethodGroupType:Instance
+ movk x14, #0xD1FFAB1E LSL #32
+ ldr x15, [x14]
mov w14, #22
str w14, [x26, #0x28]
add x14, x26, #8
bl CORINFO_HELP_ASSIGN_REF
str w25, [x26, #0x2C]
add x14, x26, #56
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x15, x19
cbnz x15, G_M49301_IG48
- ;; size=44 bbWeight=1 PerfScore 10.50
+ ;; size=52 bbWeight=1 PerfScore 11.50
G_M49301_IG46:
movz x15, #0xD1FFAB1E
movk x15, #0xD1FFAB1E LSL #16
movk x15, #0xD1FFAB1E LSL #32
ldr w14, [x15]
tbz w14, #0, G_M49301_IG57
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M49301_IG47:
- ldr x15, [x27, #-0x08]
- ;; size=4 bbWeight=0.50 PerfScore 1.50
+ movz x14, #0xD1FFAB1E // data for Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray:Empty
+ movk x14, #0xD1FFAB1E LSL #32
+ ldr x15, [x14]
+ ;; size=12 bbWeight=0.50 PerfScore 2.00
G_M49301_IG48:
add x14, x26, #64
bl CORINFO_HELP_ASSIGN_REF
str w22, [x26, #0x60]
add x14, x26, #88
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
str xzr, [x26, #0x48]
add x14, x26, #80
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
mov x0, x26
ldr x14, [x20]
movz x15, #0xD1FFAB1E
movk x15, #0xD1FFAB1E LSL #16
movk x15, #0xD1FFAB1E LSL #32
cmp x14, x15
beq G_M49301_IG51
;; size=68 bbWeight=0.25 PerfScore 3.50
G_M49301_IG49:
add x14, x0, #72
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
b G_M49301_IG51
;; size=16 bbWeight=0.50 PerfScore 1.50
G_M49301_IG50:
mov x0, x21
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.RuntimeBinder.SymbolTable:GetCTypeArrayFromTypes(System.Type[]):Microsoft.CSharp.RuntimeBinder.Semantics.CType[]
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray:Allocate(Microsoft.CSharp.RuntimeBinder.Semantics.CType[]):Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x19, x0
b G_M49301_IG44
;; size=52 bbWeight=0.50 PerfScore 6.50
G_M49301_IG51:
- 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
+ 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=1 PerfScore 7.00
G_M49301_IG52:
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M49301_IG06
;; size=8 bbWeight=0 PerfScore 0.00
G_M49301_IG53:
mov x0, x26
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M49301_IG07
;; size=12 bbWeight=0 PerfScore 0.00
G_M49301_IG54:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M49301_IG15
;; size=20 bbWeight=0 PerfScore 0.00
G_M49301_IG55:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M49301_IG43
;; size=20 bbWeight=0 PerfScore 0.00
G_M49301_IG56:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M49301_IG45
;; size=20 bbWeight=0 PerfScore 0.00
G_M49301_IG57:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M49301_IG47
;; size=20 bbWeight=0 PerfScore 0.00
G_M49301_IG58:
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_M49301_IG59:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
G_M49301_IG60:
stp fp, lr, [sp, #-0x70]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
stp x25, x26, [sp, #0x50]
stp x27, x28, [sp, #0x60]
- add x3, fp, #176
+ add x3, fp, #160
str x3, [sp, #0x18]
;; size=32 bbWeight=0 PerfScore 0.00
G_M49301_IG61:
- ldr x0, [fp, #0x38] // [V15 loc11]
+ ldr x0, [fp, #0x30] // [V15 loc11]
cbz x0, G_M49301_IG62
movz x25, #0xD1FFAB1E
movk x25, #0xD1FFAB1E LSL #16
movk x25, #0xD1FFAB1E LSL #32
add x11, x25, #16
ldr xip0, [x11]
blr xip0
;; size=32 bbWeight=0 PerfScore 0.00
G_M49301_IG62:
ldp x27, x28, [sp, #0x60]
ldp x25, x26, [sp, #0x50]
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x70
ret lr
;; size=28 bbWeight=0 PerfScore 0.00
RWD00 dd G_M49301_IG13 - G_M49301_IG02
dd G_M49301_IG12 - G_M49301_IG02
dd G_M49301_IG14 - G_M49301_IG02
dd G_M49301_IG14 - G_M49301_IG02
dd G_M49301_IG12 - G_M49301_IG02
-; Total bytes of code 1836, prolog size 52, PerfScore 885.62, instruction count 463, allocated bytes for code 1836 (MethodHash=83463f6a) for method Microsoft.CSharp.RuntimeBinder.RuntimeBinder:CreateMemberGroupExpr(System.String,System.Type[],Microsoft.CSharp.RuntimeBinder.Semantics.Expr,int):Microsoft.CSharp.RuntimeBinder.Semantics.ExprMemberGroup (FullOpts)
+; Total bytes of code 1872, prolog size 52, PerfScore 884.12, instruction count 472, allocated bytes for code 1872 (MethodHash=83463f6a) for method Microsoft.CSharp.RuntimeBinder.RuntimeBinder:CreateMemberGroupExpr(System.String,System.Type[],Microsoft.CSharp.RuntimeBinder.Semantics.Expr,int):Microsoft.CSharp.RuntimeBinder.Semantics.ExprMemberGroup (FullOpts)
24 (60.00 % of base) - System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[])
; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[]) (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; 1 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 TypeCtx [V00,T00] ( 3, 3 ) long -> x0 single-def
+; V00 TypeCtx [V00,T00] ( 4, 3 ) long -> x0 single-def
;* V01 arg0 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.Runtime.Intrinsics.Vector128`1[System.__Canon]>
; V02 arg1 [V02,T01] ( 3, 2 ) ref -> x3 class-hnd single-def <System.__Canon[]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp4 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V10 tmp7 [V10,T02] ( 1, 1 ) long -> x1 single-def "field V01._lower (fldOffset=0x0)" P-INDEP
; V11 tmp8 [V11,T03] ( 1, 1 ) long -> x2 single-def "field V01._upper (fldOffset=0x8)" P-INDEP
-;* V12 tmp9 [V12 ] ( 0, 0 ) byref -> zero-ref "BlockOp address local"
+;* V12 tmp9 [V12,T04] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V13 tmp10 [V13 ] ( 0, 0 ) byref -> zero-ref "BlockOp address local"
+;* V14 rat0 [V14,T05] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V15 rat1 [V15,T06] ( 2, 0 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V16 rat2 [V16,T08] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V17 rat3 [V17,T07] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M23152_IG01:
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x20]!
mov fp, sp
- ;; size=8 bbWeight=0 PerfScore 0.00
+ str x0, [fp, #0x18]
+ ;; size=12 bbWeight=0 PerfScore 0.00
G_M23152_IG02:
+ ldr x0, [x0, #0x30]
+ ldr x0, [x0]
+ ldr x0, [x0, #0xA0]
+ cbz x0, G_M23152_IG03
+ b G_M23152_IG03
+ ;; size=20 bbWeight=0 PerfScore 0.00
+G_M23152_IG03:
ldr wzr, [x3, #0x08]
mov w0, #67
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowNotSupportedException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 40, prolog size 8, PerfScore 0.00, instruction count 10, allocated bytes for code 40 (MethodHash=fb03a58f) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[]) (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 0.00, instruction count 16, allocated bytes for code 64 (MethodHash=fb03a58f) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[]) (FullOpts)
24 (60.00 % of base) - System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon]
; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (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; 1 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 TypeCtx [V00,T00] ( 3, 3 ) long -> x0 single-def
+; V00 TypeCtx [V00,T00] ( 4, 3 ) long -> x0 single-def
; V01 arg0 [V01,T01] ( 3, 2 ) ref -> x1 class-hnd single-def <System.__Canon[]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V04 tmp2 [V04 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Runtime.Intrinsics.Vector128`1[System.__Canon]>
;* V05 tmp3 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V06 tmp4 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp5 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp6 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V09 tmp7 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V10 tmp8 [V10 ] ( 0, 0 ) long -> zero-ref "field V04._lower (fldOffset=0x0)" P-DEP
;* V11 tmp9 [V11 ] ( 0, 0 ) long -> zero-ref "field V04._upper (fldOffset=0x8)" P-DEP
-;* V12 tmp10 [V12 ] ( 0, 0 ) byref -> zero-ref "BlockOp address local"
+;* V12 tmp10 [V12,T02] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V13 tmp11 [V13 ] ( 0, 0 ) byref -> zero-ref "BlockOp address local"
+;* V14 rat0 [V14,T03] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V15 rat1 [V15,T04] ( 2, 0 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V16 rat2 [V16,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V17 rat3 [V17,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M59324_IG01:
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x20]!
mov fp, sp
- ;; size=8 bbWeight=0 PerfScore 0.00
+ str x0, [fp, #0x18]
+ ;; size=12 bbWeight=0 PerfScore 0.00
G_M59324_IG02:
+ ldr x0, [x0, #0x30]
+ ldr x0, [x0]
+ ldr x0, [x0, #0xB8]
+ cbz x0, G_M59324_IG03
+ b G_M59324_IG03
+ ;; size=20 bbWeight=0 PerfScore 0.00
+G_M59324_IG03:
ldr wzr, [x1, #0x08]
mov w0, #67
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowNotSupportedException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 40, prolog size 8, PerfScore 0.00, instruction count 10, allocated bytes for code 40 (MethodHash=ec911843) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 0.00, instruction count 16, allocated bytes for code 64 (MethodHash=ec911843) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (FullOpts)
24 (60.00 % of base) - System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[])
; Assembly listing for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[]) (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; 1 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 TypeCtx [V00,T00] ( 3, 3 ) long -> x0 single-def
+; V00 TypeCtx [V00,T00] ( 4, 3 ) long -> x0 single-def
;* V01 arg0 [V01 ] ( 0, 0 ) byref -> zero-ref single-def
; V02 arg1 [V02,T01] ( 3, 2 ) ref -> x2 class-hnd single-def <System.__Canon[]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp4 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V10 tmp7 [V10,T02] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V11 rat0 [V11,T03] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V12 rat1 [V12,T04] ( 2, 0 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V13 rat2 [V13,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V14 rat3 [V14,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M9626_IG01:
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x20]!
mov fp, sp
- ;; size=8 bbWeight=0 PerfScore 0.00
+ str x0, [fp, #0x18]
+ ;; size=12 bbWeight=0 PerfScore 0.00
G_M9626_IG02:
+ ldr x0, [x0, #0x30]
+ ldr x0, [x0]
+ ldr x0, [x0, #0x98]
+ cbz x0, G_M9626_IG03
+ b G_M9626_IG03
+ ;; size=20 bbWeight=0 PerfScore 0.00
+G_M9626_IG03:
ldr wzr, [x2, #0x08]
mov w0, #67
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowNotSupportedException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 40, prolog size 8, PerfScore 0.00, instruction count 10, allocated bytes for code 40 (MethodHash=57a4da65) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[]) (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 0.00, instruction count 16, allocated bytes for code 64 (MethodHash=57a4da65) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[]) (FullOpts)
24 (60.00 % of base) - System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon]
; Assembly listing for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (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; 1 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
;* V00 RetBuf [V00 ] ( 0, 0 ) byref -> zero-ref single-def
-; V01 TypeCtx [V01,T00] ( 3, 3 ) long -> x0 single-def
+; V01 TypeCtx [V01,T00] ( 4, 3 ) long -> x0 single-def
; V02 arg0 [V02,T01] ( 3, 2 ) ref -> x1 class-hnd single-def <System.__Canon[]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 loc1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp4 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V10 tmp7 [V10,T02] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V11 rat0 [V11,T03] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V12 rat1 [V12,T04] ( 2, 0 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V13 rat2 [V13,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V14 rat3 [V14,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M1942_IG01:
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x20]!
mov fp, sp
- ;; size=8 bbWeight=0 PerfScore 0.00
+ str x0, [fp, #0x18]
+ ;; size=12 bbWeight=0 PerfScore 0.00
G_M1942_IG02:
+ ldr x0, [x0, #0x30]
+ ldr x0, [x0]
+ ldr x0, [x0, #0xB0]
+ cbz x0, G_M1942_IG03
+ b G_M1942_IG03
+ ;; size=20 bbWeight=0 PerfScore 0.00
+G_M1942_IG03:
ldr wzr, [x1, #0x08]
mov w0, #67
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowNotSupportedException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 40, prolog size 8, PerfScore 0.00, instruction count 10, allocated bytes for code 40 (MethodHash=f020f869) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 0.00, instruction count 16, allocated bytes for code 64 (MethodHash=f020f869) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (FullOpts)
24 (60.00 % of base) - System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[])
; Assembly listing for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[]) (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; 1 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 TypeCtx [V00,T00] ( 3, 3 ) long -> x0 single-def
+; V00 TypeCtx [V00,T00] ( 4, 3 ) long -> x0 single-def
;* V01 arg0 [V01 ] ( 0, 0 ) byref -> zero-ref single-def
; V02 arg1 [V02,T01] ( 3, 2 ) ref -> x2 class-hnd single-def <System.__Canon[]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp4 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V10 tmp7 [V10,T02] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V11 rat0 [V11,T03] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V12 rat1 [V12,T04] ( 2, 0 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V13 rat2 [V13,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V14 rat3 [V14,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M25821_IG01:
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x20]!
mov fp, sp
- ;; size=8 bbWeight=0 PerfScore 0.00
+ str x0, [fp, #0x18]
+ ;; size=12 bbWeight=0 PerfScore 0.00
G_M25821_IG02:
+ ldr x0, [x0, #0x30]
+ ldr x0, [x0]
+ ldr x0, [x0, #0x98]
+ cbz x0, G_M25821_IG03
+ b G_M25821_IG03
+ ;; size=20 bbWeight=0 PerfScore 0.00
+G_M25821_IG03:
ldr wzr, [x2, #0x08]
mov w0, #67
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowNotSupportedException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 40, prolog size 8, PerfScore 0.00, instruction count 10, allocated bytes for code 40 (MethodHash=fed49b22) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[]) (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 0.00, instruction count 16, allocated bytes for code 64 (MethodHash=fed49b22) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[]) (FullOpts)
24 (60.00 % of base) - System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon]
; Assembly listing for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (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; 1 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
;* V00 RetBuf [V00 ] ( 0, 0 ) byref -> zero-ref single-def
-; V01 TypeCtx [V01,T00] ( 3, 3 ) long -> x0 single-def
+; V01 TypeCtx [V01,T00] ( 4, 3 ) long -> x0 single-def
; V02 arg0 [V02,T01] ( 3, 2 ) ref -> x1 class-hnd single-def <System.__Canon[]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 loc1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp4 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V10 tmp7 [V10,T02] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V11 rat0 [V11,T03] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V12 rat1 [V12,T04] ( 2, 0 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V13 rat2 [V13,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V14 rat3 [V14,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M49233_IG01:
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x20]!
mov fp, sp
- ;; size=8 bbWeight=0 PerfScore 0.00
+ str x0, [fp, #0x18]
+ ;; size=12 bbWeight=0 PerfScore 0.00
G_M49233_IG02:
+ ldr x0, [x0, #0x30]
+ ldr x0, [x0]
+ ldr x0, [x0, #0xB0]
+ cbz x0, G_M49233_IG03
+ b G_M49233_IG03
+ ;; size=20 bbWeight=0 PerfScore 0.00
+G_M49233_IG03:
ldr wzr, [x1, #0x08]
mov w0, #67
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowNotSupportedException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 40, prolog size 8, PerfScore 0.00, instruction count 10, allocated bytes for code 40 (MethodHash=19413fae) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 0.00, instruction count 16, allocated bytes for code 64 (MethodHash=19413fae) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (FullOpts)
24 (60.00 % of base) - System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.__Canon[])
; Assembly listing for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.__Canon[]) (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; 1 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 TypeCtx [V00,T00] ( 3, 3 ) long -> x0 single-def
+; V00 TypeCtx [V00,T00] ( 4, 3 ) long -> x0 single-def
;* V01 arg0 [V01 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Runtime.Intrinsics.Vector64`1[System.__Canon]>
; V02 arg1 [V02,T01] ( 3, 2 ) ref -> x2 class-hnd single-def <System.__Canon[]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp4 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V10 tmp7 [V10,T02] ( 1, 1 ) long -> x1 single-def "field V01._00 (fldOffset=0x0)" P-INDEP
+;* V11 tmp8 [V11,T03] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V12 rat0 [V12,T04] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V13 rat1 [V13,T05] ( 2, 0 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V14 rat2 [V14,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V15 rat3 [V15,T06] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M28585_IG01:
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x20]!
mov fp, sp
- ;; size=8 bbWeight=0 PerfScore 0.00
+ str x0, [fp, #0x18]
+ ;; size=12 bbWeight=0 PerfScore 0.00
G_M28585_IG02:
+ ldr x0, [x0, #0x30]
+ ldr x0, [x0]
+ ldr x0, [x0, #0x80]
+ cbz x0, G_M28585_IG03
+ b G_M28585_IG03
+ ;; size=20 bbWeight=0 PerfScore 0.00
+G_M28585_IG03:
ldr wzr, [x2, #0x08]
mov w0, #67
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowNotSupportedException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 40, prolog size 8, PerfScore 0.00, instruction count 10, allocated bytes for code 40 (MethodHash=da809056) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.__Canon[]) (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 0.00, instruction count 16, allocated bytes for code 64 (MethodHash=da809056) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.__Canon[]) (FullOpts)
24 (60.00 % of base) - System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector64`1[System.__Canon]
; Assembly listing for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector64`1[System.__Canon] (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; 1 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 TypeCtx [V00,T00] ( 3, 3 ) long -> x0 single-def
+; V00 TypeCtx [V00,T00] ( 4, 3 ) long -> x0 single-def
; V01 arg0 [V01,T01] ( 3, 2 ) ref -> x1 class-hnd single-def <System.__Canon[]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V04 tmp2 [V04 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V05 tmp3 [V05 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V06 tmp4 [V06 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V07 tmp5 [V07 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V08 tmp6 [V08 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V09 tmp7 [V09,T02] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V10 rat0 [V10,T03] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V11 rat1 [V11,T04] ( 2, 0 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V12 rat2 [V12,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V13 rat3 [V13,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M52357_IG01:
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x20]!
mov fp, sp
- ;; size=8 bbWeight=0 PerfScore 0.00
+ str x0, [fp, #0x18]
+ ;; size=12 bbWeight=0 PerfScore 0.00
G_M52357_IG02:
+ ldr x0, [x0, #0x30]
+ ldr x0, [x0]
+ ldr x0, [x0, #0x98]
+ cbz x0, G_M52357_IG03
+ b G_M52357_IG03
+ ;; size=20 bbWeight=0 PerfScore 0.00
+G_M52357_IG03:
ldr wzr, [x1, #0x08]
mov w0, #67
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowNotSupportedException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 40, prolog size 8, PerfScore 0.00, instruction count 10, allocated bytes for code 40 (MethodHash=631a337a) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector64`1[System.__Canon] (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 0.00, instruction count 16, allocated bytes for code 64 (MethodHash=631a337a) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector64`1[System.__Canon] (FullOpts)
20 (4.03 % of base) - Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol:set_Params(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray):this
; Assembly listing for method Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol:set_Params(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray):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; 6 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 15, 9 ) ref -> x19 this class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol>
; V01 arg1 [V01,T01] ( 4, 4 ) ref -> x1 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray>
-; V02 loc0 [V02,T05] ( 3, 2.50) int -> x1
+; V02 loc0 [V02,T04] ( 3, 2.50) int -> x1
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <ubyte[]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T02] ( 4, 4 ) ref -> x1 class-hnd single-def "dup spill" <ubyte[]>
-; V06 cse0 [V06,T04] ( 5, 2.50) long -> x21 "CSE #02: aggressive"
-; V07 cse1 [V07,T06] ( 4, 2 ) long -> x20 "CSE #01: moderate"
-; V08 cse2 [V08,T07] ( 4, 2 ) long -> x21 "CSE #04: moderate"
-; V09 cse3 [V09,T03] ( 7, 3.50) long -> x20 "CSE #03: aggressive"
-; V10 rat0 [V10,T08] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
-; V11 rat1 [V11,T09] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
-; V12 rat2 [V12,T10] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
+; V06 cse0 [V06,T05] ( 4, 2 ) long -> x20 "CSE #01: aggressive"
+; V07 cse1 [V07,T06] ( 4, 2 ) long -> x21 "CSE #04: aggressive"
+; V08 cse2 [V08,T03] ( 7, 3.50) long -> x20 "CSE #03: aggressive"
+; V09 rat0 [V09,T07] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
+; V10 rat1 [V10,T08] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
+; V11 rat2 [V11,T09] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
;
; Lcl frame size = 8
G_M19070_IG01:
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x18]
str x21, [sp, #0x28]
mov fp, sp
mov x19, x0
;; size=20 bbWeight=1 PerfScore 4.00
G_M19070_IG02:
add x14, x19, #136
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
ldr x14, [x1, #0x08]
ldr w1, [x14, #0x08]
cbnz w1, G_M19070_IG09
;; size=24 bbWeight=1 PerfScore 9.00
G_M19070_IG03:
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
mov x0, x20
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M19070_IG11
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M19070_IG04:
- movz x21, #0xD1FFAB1E
- movk x21, #0xD1FFAB1E LSL #16
- movk x21, #0xD1FFAB1E LSL #32
- ldr x1, [x21, #0xD1FFAB1E]
+ movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[ubyte]:Value
+ movk x14, #0xD1FFAB1E LSL #32
+ ldr x1, [x14]
add x14, x19, #104
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #80
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #72
mov x15, x1
bl CORINFO_HELP_ASSIGN_REF
add x0, x20, #232
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M19070_IG12
- ;; size=76 bbWeight=0.50 PerfScore 8.25
+ ;; size=72 bbWeight=0.50 PerfScore 8.00
G_M19070_IG05:
- ldr x15, [x21, #0xD1FFAB1E]
+ movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal]:Value
+ movk x14, #0xD1FFAB1E LSL #32
+ ldr x15, [x14]
add x14, x19, #88
bl CORINFO_HELP_ASSIGN_REF
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M19070_IG13
- ;; size=32 bbWeight=0.50 PerfScore 5.00
+ ;; size=40 bbWeight=0.50 PerfScore 5.50
G_M19070_IG06:
- ldr x15, [x21]
+ movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[Microsoft.CSharp.RuntimeBinder.Semantics.CType]:Value
+ movk x14, #0xD1FFAB1E LSL #32
+ ldr x15, [x14]
add x14, x19, #96
bl CORINFO_HELP_ASSIGN_REF
add x0, x20, #0xD1FFAB1E
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M19070_IG14
- ;; size=36 bbWeight=0.50 PerfScore 5.25
+ ;; size=44 bbWeight=0.50 PerfScore 5.75
G_M19070_IG07:
- ldr x15, [x21, #0xD1FFAB1E]
+ movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[int]:Value
+ movk x14, #0xD1FFAB1E LSL #32
+ ldr x15, [x14]
add x14, x19, #112
bl CORINFO_HELP_ASSIGN_REF
- ;; size=12 bbWeight=0.50 PerfScore 2.25
+ ;; size=20 bbWeight=0.50 PerfScore 2.75
G_M19070_IG08:
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=0.50 PerfScore 2.50
G_M19070_IG09:
sxtw x20, w1
mov x1, x20
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x0, x21
bl CORINFO_HELP_NEWARR_1_VC
add x14, x19, #72
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
mov x1, x20
mov x0, x21
bl CORINFO_HELP_NEWARR_1_VC
add x14, x19, #80
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
mov x1, x20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_VC
add x14, x19, #88
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
mov x1, x20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
add x14, x19, #96
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
mov x1, x20
mov x0, x21
bl CORINFO_HELP_NEWARR_1_VC
add x14, x19, #104
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
mov x1, x20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_VC
add x14, x19, #112
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
;; size=184 bbWeight=0.50 PerfScore 14.50
G_M19070_IG10:
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=0.50 PerfScore 2.50
G_M19070_IG11:
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M19070_IG04
;; size=8 bbWeight=0 PerfScore 0.00
G_M19070_IG12:
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M19070_IG05
;; size=8 bbWeight=0 PerfScore 0.00
G_M19070_IG13:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M19070_IG06
;; size=20 bbWeight=0 PerfScore 0.00
G_M19070_IG14:
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M19070_IG07
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 496, prolog size 16, PerfScore 57.00, instruction count 124, allocated bytes for code 496 (MethodHash=98aab581) for method Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol:set_Params(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray):this (FullOpts)
+; Total bytes of code 516, prolog size 16, PerfScore 58.25, instruction count 129, allocated bytes for code 516 (MethodHash=98aab581) for method Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol:set_Params(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray):this (FullOpts)
16 (2.42 % of base) - System.Threading.Channels.BoundedChannel`1[int]:.ctor(int,int,ubyte,System.Action`1[int]):this
; Assembly listing for method System.Threading.Channels.BoundedChannel`1[int]:.ctor(int,int,ubyte,System.Action`1[int]):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 19 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 14, 14 ) ref -> x19 this class-hnd single-def <System.Threading.Channels.BoundedChannel`1[int]>
-; V01 arg1 [V01,T11] ( 3, 3 ) int -> x22 single-def
-; V02 arg2 [V02,T12] ( 3, 3 ) int -> x23 single-def
-; V03 arg3 [V03,T03] ( 4, 4 ) ubyte -> x20 single-def
-; V04 arg4 [V04,T10] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Action`1[int]>
+; V01 arg1 [V01,T10] ( 3, 3 ) int -> x22 single-def
+; V02 arg2 [V02,T11] ( 3, 3 ) int -> x23 single-def
+; V03 arg3 [V03,T02] ( 4, 4 ) ubyte -> x20 single-def
+; V04 arg4 [V04,T09] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Action`1[int]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T04] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[int]>
-; V07 tmp2 [V07,T05] ( 3, 6 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.AsyncOperation`1[int]]>
-; V08 tmp3 [V08,T06] ( 3, 6 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.VoidAsyncOperationWithData`1[int]]>
+; V06 tmp1 [V06,T03] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[int]>
+; V07 tmp2 [V07,T04] ( 3, 6 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.AsyncOperation`1[int]]>
+; V08 tmp3 [V08,T05] ( 3, 6 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.VoidAsyncOperationWithData`1[int]]>
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref
;* V10 tmp5 [V10 ] ( 0, 0 ) ref -> zero-ref single-def
-; V11 tmp6 [V11,T13] ( 4, 4 ) int -> x28
-; V12 tmp7 [V12,T07] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource>
-; V13 tmp8 [V13,T08] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[int]>
-; V14 tmp9 [V14,T09] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[int]>
+; V11 tmp6 [V11,T12] ( 4, 4 ) int -> x28
+; V12 tmp7 [V12,T06] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource>
+; V13 tmp8 [V13,T07] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[int]>
+; V14 tmp9 [V14,T08] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[int]>
; V15 tmp10 [V15,T01] ( 4, 7 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V16 tmp11 [V16 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V17 tmp12 [V17,T19] ( 3, 1.50) ref -> x25 class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
-;* V18 tmp13 [V18,T20] ( 0, 0 ) ref -> zero-ref single-def "field V16._source (fldOffset=0x0)" P-INDEP
-; V19 cse0 [V19,T02] ( 6, 6 ) long -> x24 "CSE #01: aggressive"
-; V20 cse1 [V20,T15] ( 3, 3 ) long -> x26 "CSE #02: aggressive"
+; V17 tmp12 [V17,T20] ( 3, 1.50) ref -> x25 class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
+;* V18 tmp13 [V18,T21] ( 0, 0 ) ref -> zero-ref single-def "field V16._source (fldOffset=0x0)" P-INDEP
+; V19 cse0 [V19,T13] ( 4, 4 ) long -> x24 "CSE #01: aggressive"
+; V20 cse1 [V20,T14] ( 4, 4 ) long -> x26 "CSE #02: aggressive"
; V21 rat0 [V21,T18] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
-; V22 rat1 [V22,T17] ( 3, 2 ) byref -> x1 "TLS field access"
-; V23 rat2 [V23,T16] ( 3, 3 ) long -> x0 "TLS access"
-; V24 rat3 [V24,T14] ( 3, 3 ) byref -> x1 "ThreadStaticBlockBase access"
+; V22 rat1 [V22,T19] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V23 rat2 [V23,T17] ( 3, 2 ) byref -> x1 "TLS field access"
+; V24 rat3 [V24,T16] ( 3, 3 ) long -> x0 "TLS access"
+; V25 rat4 [V25,T15] ( 3, 3 ) byref -> x1 "ThreadStaticBlockBase access"
;
; Lcl frame size = 0
G_M50650_IG01:
stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x10]
stp x21, x22, [sp, #0x20]
stp x23, x24, [sp, #0x30]
stp x25, x26, [sp, #0x40]
stp x27, x28, [sp, #0x50]
mov fp, sp
mov x19, x0
mov w22, w1
mov w23, w2
mov w20, w3
mov x21, x4
;; size=48 bbWeight=1 PerfScore 9.00
G_M50650_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x0, #0x08]
add x14, x19, #40
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
movz x24, #0xD1FFAB1E
movk x24, #0xD1FFAB1E LSL #16
movk x24, #0xD1FFAB1E LSL #32
mov x0, x24
bl CORINFO_HELP_NEWSFAST
mov x25, x0
- add x0, x24, #0xD1FFAB1E
+ movz x26, #0xD1FFAB1E
+ movk x26, #0xD1FFAB1E LSL #16
+ movk x26, #0xD1FFAB1E LSL #32
+ add x0, x26, #0xD1FFAB1E
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M50650_IG09
- ;; size=92 bbWeight=1 PerfScore 16.50
+ ;; size=104 bbWeight=1 PerfScore 18.00
G_M50650_IG03:
- movz x26, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Threading.Channels.AsyncOperation`1[int]]:Value
- movk x26, #0xD1FFAB1E LSL #16
- movk x26, #0xD1FFAB1E LSL #32
- ldr x15, [x26]
+ movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Threading.Channels.AsyncOperation`1[int]]:Value
+ movk x14, #0xD1FFAB1E LSL #16
+ movk x14, #0xD1FFAB1E LSL #32
+ ldr x15, [x14]
add x14, x25, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #48
mov x15, x25
bl CORINFO_HELP_ASSIGN_REF
add x0, x24, #200
bl CORINFO_HELP_NEWSFAST
mov x27, x0
+ add x0, x26, #0xD1FFAB1E
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M50650_IG10
- ;; size=68 bbWeight=1 PerfScore 15.50
+ ;; size=72 bbWeight=1 PerfScore 16.00
G_M50650_IG04:
- ldr x15, [x26, #0x08]
+ movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Threading.Channels.VoidAsyncOperationWithData`1[int]]:Value
+ movk x14, #0xD1FFAB1E LSL #16
+ movk x14, #0xD1FFAB1E LSL #32
+ ldr x15, [x14]
add x14, x27, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #56
mov x15, x27
bl CORINFO_HELP_ASSIGN_REF
stp w23, w22, [x19, #0x58]
strb w20, [x19, #0x60]
add x14, x19, #24
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
mov w0, #64
tst w20, #255
csel w28, w0, wzr, ne
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x21, x0
movn w0, #68
tst w28, w0
bne G_M50650_IG12
tbz w28, #2, G_M50650_IG07
- ;; size=112 bbWeight=1 PerfScore 21.00
+ ;; size=124 bbWeight=1 PerfScore 22.50
G_M50650_IG05:
mrs x0, tpidr_el0
ldr w1, [x0, #0xD1FFAB1E]
cmp w1, #9
ble G_M50650_IG11
ldr x0, [x0, #0xD1FFAB1E]
ldr x1, [x0, #0x48]
cbz x1, G_M50650_IG11
;; size=28 bbWeight=0.50 PerfScore 6.25
G_M50650_IG06:
ldr x25, [x1, #0x10]
cbz x25, G_M50650_IG07
mov x0, x21
movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Task:EnsureContingentPropertiesInitializedUnsafe():System.Threading.Tasks.Task+ContingentProperties:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
add x14, x0, #48
mov x15, x25
bl CORINFO_HELP_ASSIGN_REF
;; size=44 bbWeight=0.50 PerfScore 6.00
G_M50650_IG07:
mov x0, x21
mov x3, xzr
mov w4, w28
mov x1, xzr
mov x2, xzr
mov w5, #0xD1FFAB1E
mov x6, xzr
movz x7, #0xD1FFAB1E // code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
add x14, x20, #8
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #32
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
add x0, x24, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
mov x22, x0
mov x1, x19
movz x2, #0xD1FFAB1E // code for System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[int]:.ctor(System.Threading.Channels.BoundedChannel`1[int]):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x19, #8
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
- add x0, x24, #0xD1FFAB1E
+ mov x0, x26
bl CORINFO_HELP_NEWSFAST
mov x23, x0
mov x1, x19
movz x2, #0xD1FFAB1E // code for System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[int]:.ctor(System.Threading.Channels.BoundedChannel`1[int]):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x19, #16
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
;; size=168 bbWeight=1 PerfScore 33.00
G_M50650_IG08:
ldp x27, x28, [sp, #0x50]
ldp x25, x26, [sp, #0x40]
ldp x23, x24, [sp, #0x30]
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x60
ret lr
;; size=28 bbWeight=1 PerfScore 7.00
G_M50650_IG09:
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M50650_IG03
;; size=8 bbWeight=0 PerfScore 0.00
G_M50650_IG10:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M50650_IG04
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
G_M50650_IG11:
mov w0, #9
bl CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
mov x1, x0
b G_M50650_IG06
;; size=16 bbWeight=0 PerfScore 0.00
G_M50650_IG12:
mov w0, #45
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 660, prolog size 28, PerfScore 114.25, instruction count 165, allocated bytes for code 660 (MethodHash=a5523a25) for method System.Threading.Channels.BoundedChannel`1[int]:.ctor(int,int,ubyte,System.Action`1[int]):this (FullOpts)
+; Total bytes of code 676, prolog size 28, PerfScore 117.75, instruction count 169, allocated bytes for code 676 (MethodHash=a5523a25) for method System.Threading.Channels.BoundedChannel`1[int]:.ctor(int,int,ubyte,System.Action`1[int]):this (FullOpts)
12 (2.21 % of base) - System.Threading.Channels.UnboundedChannel`1[System.Numerics.Vector`1[float]]:.ctor(ubyte):this
; Assembly listing for method System.Threading.Channels.UnboundedChannel`1[System.Numerics.Vector`1[float]]:.ctor(ubyte):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 16 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 10, 10 ) ref -> x19 this class-hnd single-def <System.Threading.Channels.UnboundedChannel`1[System.Numerics.Vector`1[float]]>
; V01 arg1 [V01,T02] ( 4, 4 ) ubyte -> x20 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T03] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Concurrent.ConcurrentQueue`1[System.Numerics.Vector`1[float]]>
-; V04 tmp2 [V04,T04] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.AsyncOperation`1[System.Numerics.Vector`1[float]]]>
+; V04 tmp2 [V04,T04] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Deque`1[System.Threading.Channels.AsyncOperation`1[System.Numerics.Vector`1[float]]]>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref single-def
-; V07 tmp5 [V07,T08] ( 4, 4 ) int -> x22
+; V07 tmp5 [V07,T08] ( 4, 4 ) int -> x23
; V08 tmp6 [V08,T05] ( 3, 6 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource>
-; V09 tmp7 [V09,T06] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.UnboundedChannel`1+UnboundedChannelReader[System.Numerics.Vector`1[float]]>
+; V09 tmp7 [V09,T06] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.UnboundedChannel`1+UnboundedChannelReader[System.Numerics.Vector`1[float]]>
; V10 tmp8 [V10,T07] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.UnboundedChannel`1+UnboundedChannelWriter[System.Numerics.Vector`1[float]]>
; V11 tmp9 [V11,T01] ( 4, 7 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V12 tmp10 [V12 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-; V13 tmp11 [V13,T15] ( 3, 1.50) ref -> x20 class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
-;* V14 tmp12 [V14,T16] ( 0, 0 ) ref -> zero-ref single-def "field V12._source (fldOffset=0x0)" P-INDEP
-; V15 cse0 [V15,T09] ( 4, 4 ) long -> x21 "CSE #02: aggressive"
-; V16 cse1 [V16,T11] ( 3, 3 ) long -> x22 "CSE #01: aggressive"
-; V17 rat0 [V17,T14] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
-; V18 rat1 [V18,T13] ( 3, 2 ) byref -> x1 "TLS field access"
-; V19 rat2 [V19,T12] ( 3, 3 ) long -> x0 "TLS access"
-; V20 rat3 [V20,T10] ( 3, 3 ) byref -> x1 "ThreadStaticBlockBase access"
+; V13 tmp11 [V13,T13] ( 3, 1.50) ref -> x20 class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
+;* V14 tmp12 [V14,T14] ( 0, 0 ) ref -> zero-ref single-def "field V12._source (fldOffset=0x0)" P-INDEP
+; V15 cse0 [V15,T10] ( 3, 3 ) long -> x21 "CSE #01: aggressive"
+; V16 rat0 [V16,T12] ( 3, 2 ) byref -> x1 "TLS field access"
+; V17 rat1 [V17,T11] ( 3, 3 ) long -> x0 "TLS access"
+; V18 rat2 [V18,T09] ( 3, 3 ) byref -> x1 "ThreadStaticBlockBase access"
;
; Lcl frame size = 8
G_M3052_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 w20, w1
;; size=32 bbWeight=1 PerfScore 6.50
G_M3052_IG02:
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x0, x21
bl CORINFO_HELP_NEWSFAST
mov x22, x0
movz x1, #0xD1FFAB1E // code for System.Collections.Concurrent.ConcurrentQueue`1[System.Numerics.Vector`1[float]]:.ctor():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
add x14, x19, #32
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- mov x0, x22
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
- add x0, x22, #0xD1FFAB1E
+ mov x22, x0
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M3052_IG08
- ;; size=104 bbWeight=1 PerfScore 20.50
+ ;; size=96 bbWeight=1 PerfScore 19.50
G_M3052_IG03:
movz x14, #0xD1FFAB1E // data for System.Array+EmptyArray`1[System.Threading.Channels.AsyncOperation`1[System.Numerics.Vector`1[float]]]:Value
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
- add x14, x23, #8
+ add x14, x22, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #40
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
strb w20, [x19, #0x40]
mov w0, #64
tst w20, #255
- csel w22, w0, wzr, ne
+ csel w23, w0, wzr, ne
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x25, x0
movn w0, #68
- tst w22, w0
+ tst w23, w0
bne G_M3052_IG10
- tbz w22, #2, G_M3052_IG06
+ tbz w23, #2, G_M3052_IG06
;; size=108 bbWeight=1 PerfScore 19.50
G_M3052_IG04:
mrs x0, tpidr_el0
ldr w1, [x0, #0xD1FFAB1E]
cmp w1, #9
ble G_M3052_IG09
ldr x0, [x0, #0xD1FFAB1E]
ldr x1, [x0, #0x48]
cbz x1, G_M3052_IG09
;; size=28 bbWeight=0.50 PerfScore 6.25
G_M3052_IG05:
ldr x20, [x1, #0x10]
cbz x20, G_M3052_IG06
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, #48
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
;; size=44 bbWeight=0.50 PerfScore 6.00
G_M3052_IG06:
mov x0, x25
mov x3, xzr
- mov w4, w22
+ mov w4, w23
mov x1, xzr
mov x2, xzr
mov w5, #0xD1FFAB1E
mov x6, xzr
movz x7, #0xD1FFAB1E // code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
add x14, x24, #8
mov x15, x25
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #24
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
add x0, x21, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
+ mov x22, x0
mov x1, x19
movz x2, #0xD1FFAB1E // code for System.Threading.Channels.UnboundedChannel`1+UnboundedChannelReader[System.Numerics.Vector`1[float]]:.ctor(System.Threading.Channels.UnboundedChannel`1[System.Numerics.Vector`1[float]]):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x19, #8
- mov x15, x23
+ mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
- add x0, x21, #0xD1FFAB1E
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
add x14, x0, #8
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #16
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- ;; size=152 bbWeight=1 PerfScore 28.50
+ ;; size=160 bbWeight=1 PerfScore 29.50
G_M3052_IG07:
ldr x25, [sp, #0x48]
ldp x23, x24, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x50
ret lr
;; size=24 bbWeight=1 PerfScore 7.00
G_M3052_IG08:
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M3052_IG03
- ;; size=8 bbWeight=0 PerfScore 0.00
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M3052_IG09:
mov w0, #9
bl CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
mov x1, x0
b G_M3052_IG05
;; size=16 bbWeight=0 PerfScore 0.00
G_M3052_IG10:
mov w0, #45
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 544, prolog size 24, PerfScore 94.25, instruction count 136, allocated bytes for code 544 (MethodHash=7a0af413) for method System.Threading.Channels.UnboundedChannel`1[System.Numerics.Vector`1[float]]:.ctor(ubyte):this (FullOpts)
+; Total bytes of code 556, prolog size 24, PerfScore 94.25, instruction count 139, allocated bytes for code 556 (MethodHash=7a0af413) for method System.Threading.Channels.UnboundedChannel`1[System.Numerics.Vector`1[float]]:.ctor(ubyte):this (FullOpts)
8 (2.78 % of base) - Microsoft.VisualBasic.CompilerServices.IDOUtils:.cctor()
; Assembly listing for method Microsoft.VisualBasic.CompilerServices.IDOUtils:.cctor() (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; 10 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <Microsoft.VisualBasic.CompilerServices.CacheSet`1[System.Runtime.CompilerServices.CallSiteBinder]>
; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <Microsoft.VisualBasic.CompilerServices.CacheDict`2[int,System.Func`4[System.Runtime.CompilerServices.CallSiteBinder,System.Object,System.Object[],System.Object]]>
; V03 tmp3 [V03,T02] ( 3, 6 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Dictionary`2[System.Runtime.CompilerServices.CallSiteBinder,System.Collections.Generic.LinkedListNode`1[System.Runtime.CompilerServices.CallSiteBinder]]>
-; V04 tmp4 [V04,T05] ( 2, 4 ) ref -> x15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.LinkedList`1[System.Runtime.CompilerServices.CallSiteBinder]>
+; V04 tmp4 [V04,T04] ( 2, 4 ) ref -> x15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.LinkedList`1[System.Runtime.CompilerServices.CallSiteBinder]>
; V05 tmp5 [V05,T03] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Dictionary`2[int,Microsoft.VisualBasic.CompilerServices.CacheDict`2+KeyInfo[int,System.Func`4[System.Runtime.CompilerServices.CallSiteBinder,System.Object,System.Object[],System.Object]]]>
-; V06 tmp6 [V06,T06] ( 2, 4 ) ref -> x15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.LinkedList`1[int]>
-; V07 cse0 [V07,T04] ( 4, 4 ) long -> x19 "CSE #01: aggressive"
+; V06 tmp6 [V06,T05] ( 2, 4 ) ref -> x15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.LinkedList`1[int]>
+; V07 cse0 [V07,T06] ( 3, 3 ) long -> x19 "CSE #01: aggressive"
; V08 cse1 [V08,T07] ( 3, 3 ) long -> x21 "CSE #02: aggressive"
;
; Lcl frame size = 8
G_M50570_IG01:
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x18]
str x21, [sp, #0x28]
mov fp, sp
;; size=16 bbWeight=1 PerfScore 3.50
G_M50570_IG02:
movz x19, #0xD1FFAB1E
movk x19, #0xD1FFAB1E LSL #16
movk x19, #0xD1FFAB1E LSL #32
mov x0, x19
bl CORINFO_HELP_NEWSFAST
mov x20, x0
- add x0, x19, #0xD1FFAB1E
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x21, x0
mov w1, wzr
mov x2, xzr
movz x3, #0xD1FFAB1E // code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:.ctor(int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
add x14, x20, #8
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x15, x0
add x14, x20, #16
bl CORINFO_HELP_ASSIGN_REF
mov w14, #64
str w14, [x20, #0x18]
movz x21, #0xD1FFAB1E // data for Microsoft.VisualBasic.CompilerServices.IDOUtils:s_binderCache
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x14, x21
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
mov w1, wzr
mov x2, xzr
movz x3, #0xD1FFAB1E // code for System.Collections.Generic.Dictionary`2[int,Microsoft.VisualBasic.CompilerServices.CacheDict`2+KeyInfo[int,System.__Canon]]:.ctor(int,System.Collections.Generic.IEqualityComparer`1[int]):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
add x14, x19, #8
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 x15, x0
add x14, x19, #16
bl CORINFO_HELP_ASSIGN_REF
mov w14, #16
str w14, [x19, #0x18]
add x14, x21, #8
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
- ;; size=256 bbWeight=1 PerfScore 45.00
+ ;; size=264 bbWeight=1 PerfScore 46.00
G_M50570_IG03:
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=1 PerfScore 5.00
-; Total bytes of code 288, prolog size 16, PerfScore 53.50, instruction count 72, allocated bytes for code 288 (MethodHash=236b3a75) for method Microsoft.VisualBasic.CompilerServices.IDOUtils:.cctor() (FullOpts)
+; Total bytes of code 296, prolog size 16, PerfScore 54.50, instruction count 74, allocated bytes for code 296 (MethodHash=236b3a75) for method Microsoft.VisualBasic.CompilerServices.IDOUtils:.cctor() (FullOpts)
8 (0.60 % of base) - Microsoft.VisualBasic.CompilerServices.VBIndexSetComplexBinder:FallbackSetIndex(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject:this
; Assembly listing for method Microsoft.VisualBasic.CompilerServices.VBIndexSetComplexBinder:FallbackSetIndex(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject: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; 7 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 8, 5 ) ref -> x19 this class-hnd single-def <Microsoft.VisualBasic.CompilerServices.VBIndexSetComplexBinder>
; V01 arg1 [V01,T01] ( 7, 5 ) ref -> x20 class-hnd single-def <System.Dynamic.DynamicMetaObject>
-; V02 arg2 [V02 ] ( 10, 6.50) ref -> [fp+0x38] do-not-enreg[X] addr-exposed ld-addr-op class-hnd single-def <System.Dynamic.DynamicMetaObject[]>
+; V02 arg2 [V02 ] ( 10, 6.50) ref -> [fp+0x28] do-not-enreg[X] addr-exposed ld-addr-op class-hnd single-def <System.Dynamic.DynamicMetaObject[]>
; V03 arg3 [V03,T02] ( 7, 5 ) ref -> x21 class-hnd single-def <System.Dynamic.DynamicMetaObject>
; V04 arg4 [V04,T05] ( 4, 3 ) ref -> x22 class-hnd single-def <System.Dynamic.DynamicMetaObject>
; V05 loc0 [V05,T16] ( 4, 2.50) ref -> x0 class-hnd <System.Dynamic.DynamicMetaObject>
-; V06 loc1 [V06 ] ( 4, 2 ) ref -> [fp+0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String[]>
-; V07 loc2 [V07 ] ( 6, 3 ) ref -> [fp+0x28] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Linq.Expressions.Expression[]>
-; V08 loc3 [V08 ] ( 5, 2.50) ref -> [fp+0x20] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Object[]>
+; V06 loc1 [V06 ] ( 4, 2 ) ref -> [fp+0x20] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String[]>
+; V07 loc2 [V07 ] ( 6, 3 ) ref -> [fp+0x18] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Linq.Expressions.Expression[]>
+; V08 loc3 [V08 ] ( 5, 2.50) ref -> [fp+0x10] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Object[]>
; V09 loc4 [V09,T06] ( 7, 3.50) ref -> x23 class-hnd exact single-def <System.Object[]>
-; V10 loc5 [V10,T32] ( 3, 1.50) ref -> x22 class-hnd single-def <System.Linq.Expressions.Expression>
-; V11 loc6 [V11,T07] ( 7, 3.50) ref -> x26 class-hnd exact single-def <System.Linq.Expressions.Expression[]>
+; V10 loc5 [V10,T31] ( 3, 1.50) ref -> x22 class-hnd single-def <System.Linq.Expressions.Expression>
+; V11 loc6 [V11,T07] ( 7, 3.50) ref -> x23 class-hnd exact single-def <System.Linq.Expressions.Expression[]>
;* V12 loc7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Linq.Expressions.MethodCallExpression>
;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V14 tmp1 [V14,T18] ( 2, 2 ) ref -> x0 class-hnd single-def "impAppendStmt" <System.Dynamic.DynamicMetaObject[]>
+; V14 tmp1 [V14,T17] ( 2, 2 ) ref -> x0 class-hnd single-def "impAppendStmt" <System.Dynamic.DynamicMetaObject[]>
; V15 tmp2 [V15,T13] ( 3, 3 ) int -> x26 "impAppendStmt"
-; V16 tmp3 [V16,T19] ( 2, 2 ) ref -> x15 class-hnd "Strict ordering of exceptions for Array store" <System.Object>
-; V17 tmp4 [V17,T20] ( 2, 2 ) ref -> x28 class-hnd single-def "impAppendStmt" <System.Reflection.MethodInfo>
-; V18 tmp5 [V18,T21] ( 2, 2 ) ref -> x27 class-hnd single-def "impAppendStmt" <System.Linq.Expressions.Expression>
-; V19 tmp6 [V19,T22] ( 2, 2 ) ref -> x26 class-hnd single-def "impAppendStmt" <System.Linq.Expressions.NewArrayExpression>
-; V20 tmp7 [V20,T08] ( 3, 3 ) ref -> x24 class-hnd exact single-def "Single-def Box Helper" <System.Boolean>
-; V21 tmp8 [V21,T23] ( 2, 2 ) ref -> x25 class-hnd single-def "impImportAndPushBox" <System.Linq.Expressions.ConstantExpression>
-; V22 tmp9 [V22,T09] ( 3, 3 ) ref -> x24 class-hnd exact single-def "Single-def Box Helper" <System.Boolean>
+; V16 tmp3 [V16,T18] ( 2, 2 ) ref -> x15 class-hnd "Strict ordering of exceptions for Array store" <System.Object>
+; V17 tmp4 [V17,T19] ( 2, 2 ) ref -> x27 class-hnd single-def "impAppendStmt" <System.Reflection.MethodInfo>
+; V18 tmp5 [V18,T20] ( 2, 2 ) ref -> x26 class-hnd single-def "impAppendStmt" <System.Linq.Expressions.Expression>
+; V19 tmp6 [V19,T21] ( 2, 2 ) ref -> x23 class-hnd single-def "impAppendStmt" <System.Linq.Expressions.NewArrayExpression>
+; V20 tmp7 [V20,T08] ( 3, 3 ) ref -> x28 class-hnd exact single-def "Single-def Box Helper" <System.Boolean>
+; V21 tmp8 [V21,T22] ( 2, 2 ) ref -> x24 class-hnd single-def "impImportAndPushBox" <System.Linq.Expressions.ConstantExpression>
+; V22 tmp9 [V22,T09] ( 3, 3 ) ref -> x28 class-hnd exact single-def "Single-def Box Helper" <System.Boolean>
;* V23 tmp10 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impImportAndPushBox" <System.Linq.Expressions.ConstantExpression>
-; V24 tmp11 [V24,T24] ( 2, 2 ) ref -> x22 class-hnd single-def "impAppendStmt" <System.Linq.Expressions.BlockExpression>
-; V25 tmp12 [V25,T10] ( 3, 3 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Dynamic.DynamicMetaObject>
+; V24 tmp11 [V24,T23] ( 2, 2 ) ref -> x22 class-hnd single-def "impAppendStmt" <System.Linq.Expressions.BlockExpression>
+; V25 tmp12 [V25,T10] ( 3, 3 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Dynamic.DynamicMetaObject>
; V26 tmp13 [V26,T03] ( 5, 5 ) ref -> x24 class-hnd single-def "Inlining Arg" <System.Object[]>
;* V27 tmp14 [V27 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V28 tmp15 [V28,T36] ( 2, 1 ) int -> x25 "Inline return value spill temp"
+; V28 tmp15 [V28,T35] ( 2, 1 ) int -> x25 "Inline return value spill temp"
;* V29 tmp16 [V29 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
; V30 tmp17 [V30,T14] ( 3, 3 ) int -> x25 "impAppendStmt"
-; V31 tmp18 [V31,T25] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
-; V32 tmp19 [V32,T38] ( 2, 1 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Object>
-; V33 tmp20 [V33,T04] ( 5, 5 ) ref -> x27 class-hnd single-def "Inlining Arg" <System.Linq.Expressions.Expression[]>
+; V31 tmp18 [V31,T24] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
+; V32 tmp19 [V32,T37] ( 2, 1 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Object>
+; V33 tmp20 [V33,T04] ( 5, 5 ) ref -> x26 class-hnd single-def "Inlining Arg" <System.Linq.Expressions.Expression[]>
;* V34 tmp21 [V34 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V35 tmp22 [V35,T37] ( 2, 1 ) int -> x28 "Inline return value spill temp"
+; V35 tmp22 [V35,T36] ( 2, 1 ) int -> x27 "Inline return value spill temp"
;* V36 tmp23 [V36 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
-; V37 tmp24 [V37,T15] ( 3, 3 ) int -> x28 "impAppendStmt"
-; V38 tmp25 [V38,T26] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
+; V37 tmp24 [V37,T15] ( 3, 3 ) int -> x27 "impAppendStmt"
+; V38 tmp25 [V38,T25] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
;* V39 tmp26 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Boolean>
-; V40 tmp27 [V40,T11] ( 3, 3 ) ref -> [fp+0x18] class-hnd exact spill-single-def "NewObj constructor temp" <System.Linq.Expressions.ConstantExpression>
+; V40 tmp27 [V40,T11] ( 3, 3 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Linq.Expressions.ConstantExpression>
;* V41 tmp28 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Boolean>
;* V42 tmp29 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Boolean>
; V43 tmp30 [V43,T12] ( 3, 3 ) ref -> x5 class-hnd exact single-def "NewObj constructor temp" <System.Linq.Expressions.ConstantExpression>
;* V44 tmp31 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Boolean>
-; V45 tmp32 [V45,T30] ( 2, 2 ) int -> x1 "argument with side effect"
-; V46 tmp33 [V46,T31] ( 2, 2 ) int -> x1 "argument with side effect"
-; V47 tmp34 [V47,T27] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-; V48 tmp35 [V48,T28] ( 2, 2 ) ref -> x2 single-def "argument with side effect"
-; V49 cse0 [V49,T33] ( 3, 1.50) ref -> x4 "CSE #06: moderate"
-; V50 cse1 [V50,T34] ( 3, 1.50) ref -> x27 "CSE #01: moderate"
-; V51 cse2 [V51,T35] ( 3, 1.50) ref -> x3 "CSE #07: moderate"
-; V52 cse3 [V52,T17] ( 4, 2 ) long -> x23 "CSE #08: moderate"
-; V53 rat0 [V53,T29] ( 2, 2 ) ref -> x28 "Spilling to split statement for tree"
+; V45 tmp32 [V45,T29] ( 2, 2 ) int -> x1 "argument with side effect"
+; V46 tmp33 [V46,T30] ( 2, 2 ) int -> x1 "argument with side effect"
+; V47 tmp34 [V47,T26] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
+; V48 tmp35 [V48,T27] ( 2, 2 ) ref -> x2 single-def "argument with side effect"
+; V49 cse0 [V49,T32] ( 3, 1.50) ref -> x4 "CSE #06: moderate"
+; V50 cse1 [V50,T33] ( 3, 1.50) ref -> x27 "CSE #01: moderate"
+; V51 cse2 [V51,T34] ( 3, 1.50) ref -> x3 "CSE #07: moderate"
+; V52 rat0 [V52,T28] ( 2, 2 ) ref -> x28 "Spilling to split statement for tree"
;
-; Lcl frame size = 48
+; Lcl frame size = 32
G_M56087_IG01:
- stp fp, lr, [sp, #-0x90]!
- stp x19, x20, [sp, #0x40]
- stp x21, x22, [sp, #0x50]
- stp x23, x24, [sp, #0x60]
- stp x25, x26, [sp, #0x70]
- stp x27, x28, [sp, #0x80]
+ 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, #0x28] // [V07 loc2], [V06 loc1]
- str xzr, [fp, #0x20] // [V08 loc3]
- str x2, [fp, #0x38] // [V02 arg2]
+ stp xzr, xzr, [fp, #0x18] // [V07 loc2], [V06 loc1]
+ str xzr, [fp, #0x10] // [V08 loc3]
+ str x2, [fp, #0x28] // [V02 arg2]
mov x19, x0
mov x20, x1
mov x21, x3
mov x22, x4
;; size=56 bbWeight=1 PerfScore 11.50
G_M56087_IG02:
mov x0, x20
- ldr x1, [fp, #0x38] // [V02 arg2]
+ ldr x1, [fp, #0x28] // [V02 arg2]
mov x2, x21
movz x3, #0xD1FFAB1E // code for Microsoft.VisualBasic.CompilerServices.IDOUtils:NeedsDeferral(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject):ubyte
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
cbz w0, G_M56087_IG04
;; size=36 bbWeight=1 PerfScore 9.50
G_M56087_IG03:
- ldr x2, [fp, #0x38] // [V02 arg2]
+ ldr x2, [fp, #0x28] // [V02 arg2]
ldr w2, [x2, #0x08]
adds w2, w2, #1
bvs G_M56087_IG15
- add x1, fp, #56 // [V02 arg2]
+ add x1, fp, #40 // [V02 arg2]
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 x1, [fp, #0x38] // [V02 arg2]
+ ldr x1, [fp, #0x28] // [V02 arg2]
ldr w1, [x1, #0x08]
subs w1, w1, #1
bvs G_M56087_IG15
sxtw x1, w1
- ldr x0, [fp, #0x38] // [V02 arg2]
+ ldr x0, [fp, #0x28] // [V02 arg2]
mov x2, x21
movz x3, #0xD1FFAB1E // code for CORINFO_HELP_ARRADDR_ST
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x0, x19
mov x1, x20
- ldr x2, [fp, #0x38] // [V02 arg2]
+ ldr x2, [fp, #0x28] // [V02 arg2]
movz x3, #0xD1FFAB1E // code for System.Dynamic.DynamicMetaObjectBinder:Defer(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[]):System.Dynamic.DynamicMetaObject:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M56087_IG10
;; size=136 bbWeight=0.50 PerfScore 19.25
G_M56087_IG04:
- stp xzr, xzr, [fp, #0x28] // [V07 loc2], [V06 loc1]
- str xzr, [fp, #0x20] // [V08 loc3]
- ldr x0, [fp, #0x38] // [V02 arg2]
+ stp xzr, xzr, [fp, #0x18] // [V07 loc2], [V06 loc1]
+ str xzr, [fp, #0x10] // [V08 loc3]
+ ldr x0, [fp, #0x28] // [V02 arg2]
ldr x1, [x19, #0x10]
- add x4, fp, #32 // [V08 loc3]
- add x2, fp, #40 // [V07 loc2]
- add x3, fp, #48 // [V06 loc1]
+ add x4, fp, #16 // [V08 loc3]
+ add x2, fp, #24 // [V07 loc2]
+ add x3, fp, #32 // [V06 loc1]
movz x5, #0xD1FFAB1E // code for Microsoft.VisualBasic.CompilerServices.IDOUtils:UnpackArguments(System.Dynamic.DynamicMetaObject[],System.Dynamic.CallInfo,byref,byref,byref)
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
- ldr x1, [fp, #0x20] // [V08 loc3]
+ ldr x1, [fp, #0x10] // [V08 loc3]
ldr w1, [x1, #0x08]
adds w1, w1, #1
bvs G_M56087_IG15
sxtw x1, w1
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
mov x23, x0
- ldr x24, [fp, #0x20] // [V08 loc3]
+ ldr x24, [fp, #0x10] // [V08 loc3]
ldrsb wzr, [x24]
ldr x0, [x23]
ldr w0, [x0, #0x04]
sub w0, w0, #24
lsr w25, w0, #3
cbnz w25, G_M56087_IG07
;; size=116 bbWeight=0.50 PerfScore 18.75
G_M56087_IG05:
mov x0, x24
mov w1, wzr
movz x2, #0xD1FFAB1E // code for System.Array:GetLowerBound(int):int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
sxtw w1, w0
ldr w4, [x24, #0x08]
cmp w4, #0
blt G_M56087_IG15
mov x0, x24
mov x2, x23
mov w3, wzr
movz x5, #0xD1FFAB1E // code for System.Array:Copy(System.Array,int,System.Array,int,int)
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
- ldr x14, [fp, #0x20] // [V08 loc3]
+ ldr x14, [fp, #0x10] // [V08 loc3]
ldr w26, [x14, #0x08]
ldr x27, [x21, #0x08]
mov x28, x27
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M56087_IG12
;; size=112 bbWeight=0.50 PerfScore 16.25
G_M56087_IG06:
movz x14, #0xD1FFAB1E // data for System.Dynamic.DynamicMetaObject:s_noValueSentinel
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x4, [x14]
cmp x28, x4
csel x15, x27, xzr, ne
ldr w14, [x23, #0x08]
cmp w26, w14
bhs G_M56087_IG14
add x14, x23, #16
add x14, x14, x26, LSL #3
bl CORINFO_HELP_ASSIGN_REF
cbz x22, G_M56087_IG08
ldr x3, [x20, #0x08]
cmp x3, x4
csel x0, x3, xzr, ne
ldrb w4, [x19, #0x19]
ldrb w3, [x19, #0x18]
mov x1, x23
- ldr x2, [fp, #0x30] // [V06 loc1]
+ ldr x2, [fp, #0x20] // [V06 loc1]
movz x5, #0xD1FFAB1E // code for Microsoft.VisualBasic.CompilerServices.NewLateBinding:CanIndexSetComplex(System.Object,System.Object[],System.String[],ubyte,ubyte):ubyte
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
cbnz w0, G_M56087_IG08
mov x0, x22
b G_M56087_IG10
;; size=112 bbWeight=0.50 PerfScore 17.00
G_M56087_IG07:
cmp w25, #1
beq G_M56087_IG05
b G_M56087_IG13
;; size=12 bbWeight=0.50 PerfScore 1.25
G_M56087_IG08:
ldr x0, [x21, #0x10]
movz x1, #0xD1FFAB1E // code for Microsoft.VisualBasic.CompilerServices.IDOUtils:ConvertToObject(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x22, x0
- ldr x1, [fp, #0x28] // [V07 loc2]
+ ldr x1, [fp, #0x18] // [V07 loc2]
ldr w1, [x1, #0x08]
adds w1, w1, #1
bvs G_M56087_IG15
sxtw x1, w1
- 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_NEWARR_1_OBJ
- mov x26, x0
- ldr x27, [fp, #0x28] // [V07 loc2]
- ldrsb wzr, [x27]
- ldr x0, [x26]
+ mov x23, x0
+ ldr x26, [fp, #0x18] // [V07 loc2]
+ ldrsb wzr, [x26]
+ ldr x0, [x23]
ldr w0, [x0, #0x04]
sub w0, w0, #24
- lsr w28, w0, #3
- cbnz w28, G_M56087_IG11
- ;; size=100 bbWeight=0.50 PerfScore 16.50
+ lsr w27, w0, #3
+ cbnz w27, G_M56087_IG11
+ ;; size=96 bbWeight=0.50 PerfScore 16.25
G_M56087_IG09:
- mov x0, x27
+ mov x0, x26
mov w1, wzr
movz x2, #0xD1FFAB1E // code for System.Array:GetLowerBound(int):int:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
sxtw w1, w0
- ldr w4, [x27, #0x08]
+ ldr w4, [x26, #0x08]
cmp w4, #0
blt G_M56087_IG15
- mov x0, x27
- mov x2, x26
+ mov x0, x26
+ mov x2, x23
mov w3, wzr
movz x5, #0xD1FFAB1E // code for System.Array:Copy(System.Array,int,System.Array,int,int)
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
- ldr x14, [fp, #0x28] // [V07 loc2]
+ ldr x14, [fp, #0x18] // [V07 loc2]
ldr w14, [x14, #0x08]
- ldr w15, [x26, #0x08]
+ ldr w15, [x23, #0x08]
cmp w14, w15
bhs G_M56087_IG14
- ldr x14, [fp, #0x28] // [V07 loc2]
+ ldr x14, [fp, #0x18] // [V07 loc2]
ldr w14, [x14, #0x08]
- add x15, x26, #16
+ add x15, x23, #16
add x14, x15, x14, LSL #3
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movn w2, #0
mov w3, #28
mov x4, xzr
mov w5, #3
mov x6, xzr
mov x7, xzr
movz x8, #0xD1FFAB1E // code for System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
movk x8, #0xD1FFAB1E LSL #16
movk x8, #0xD1FFAB1E LSL #32
ldr x8, [x8]
blr x8
- mov x28, x0
- ldr x27, [x20, #0x10]
- mov x1, x26
+ mov x27, x0
+ ldr x26, [x20, #0x10]
+ mov x1, x23
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Linq.Expressions.Expression:NewArrayInit(System.Type,System.Collections.Generic.IEnumerable`1[System.Linq.Expressions.Expression]):System.Linq.Expressions.NewArrayExpression
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- mov x26, x0
+ mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x24, x0
- ldr x0, [fp, #0x30] // [V06 loc1]
+ mov x28, x0
+ ldr x0, [fp, #0x20] // [V06 loc1]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Linq.Expressions.Expression:Constant(System.Object,System.Type):System.Linq.Expressions.ConstantExpression
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- mov x25, x0
+ mov x24, x0
ldrb w0, [x19, #0x18]
- strb w0, [x24, #0x08]
- add x0, x23, #0xD1FFAB1E
+ strb w0, [x28, #0x08]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x1, x0
- str x1, [fp, #0x18] // [V40 tmp27]
- add x14, x1, #8
- mov x15, x24
+ mov x25, x0
+ add x14, x25, #8
+ mov x15, x28
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x24, x0
+ mov x28, x0
ldrb w0, [x19, #0x19]
- strb w0, [x24, #0x08]
- add x0, x23, #0xD1FFAB1E
+ strb w0, [x28, #0x08]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x5, x0
add x14, x5, #8
- mov x15, x24
+ mov x15, x28
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x28
- mov x1, x27
- mov x2, x26
- mov x3, x25
- ldr x4, [fp, #0x18] // [V40 tmp27]
+ mov x0, x27
+ mov x1, x26
+ mov x2, x23
+ mov x3, x24
+ mov x4, x25
movz x6, #0xD1FFAB1E // code for System.Linq.Expressions.Expression:Call(System.Reflection.MethodInfo,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression):System.Linq.Expressions.MethodCallExpression
movk x6, #0xD1FFAB1E LSL #16
movk x6, #0xD1FFAB1E LSL #32
ldr x6, [x6]
blr x6
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Linq.Expressions.Expression:Block(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression):System.Linq.Expressions.BlockExpression
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x22, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
+ mov x19, x0
mov x0, x20
- ldr x1, [fp, #0x38] // [V02 arg2]
+ ldr x1, [fp, #0x28] // [V02 arg2]
mov x2, x21
movz x3, #0xD1FFAB1E // code for Microsoft.VisualBasic.CompilerServices.IDOUtils:CreateRestrictions(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject):System.Dynamic.BindingRestrictions
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x2, x0
mov x1, x22
- mov x0, x23
+ mov x0, x19
movz x3, #0xD1FFAB1E // code for System.Dynamic.DynamicMetaObject:.ctor(System.Linq.Expressions.Expression,System.Dynamic.BindingRestrictions):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- mov x0, x23
- ;; size=540 bbWeight=0.50 PerfScore 63.25
+ mov x0, x19
+ ;; size=552 bbWeight=0.50 PerfScore 63.00
G_M56087_IG10:
- ldp x27, x28, [sp, #0x80]
- ldp x25, x26, [sp, #0x70]
- ldp x23, x24, [sp, #0x60]
- ldp x21, x22, [sp, #0x50]
- ldp x19, x20, [sp, #0x40]
- ldp fp, lr, [sp], #0x90
+ ldp x27, x28, [sp, #0x70]
+ ldp x25, x26, [sp, #0x60]
+ ldp x23, x24, [sp, #0x50]
+ ldp x21, x22, [sp, #0x40]
+ ldp x19, x20, [sp, #0x30]
+ ldp fp, lr, [sp], #0x80
ret lr
;; size=28 bbWeight=1 PerfScore 7.00
G_M56087_IG11:
- cmp w28, #1
+ cmp w27, #1
beq G_M56087_IG09
b G_M56087_IG13
;; size=12 bbWeight=0.50 PerfScore 1.25
G_M56087_IG12:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M56087_IG06
;; size=20 bbWeight=0 PerfScore 0.00
G_M56087_IG13:
mov w0, #9
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentException(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_M56087_IG14:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
G_M56087_IG15:
bl CORINFO_HELP_OVERFLOW
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1324, prolog size 36, PerfScore 181.50, instruction count 331, allocated bytes for code 1324 (MethodHash=975c24e8) for method Microsoft.VisualBasic.CompilerServices.VBIndexSetComplexBinder:FallbackSetIndex(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject:this (FullOpts)
+; Total bytes of code 1332, prolog size 36, PerfScore 181.00, instruction count 333, allocated bytes for code 1332 (MethodHash=975c24e8) for method Microsoft.VisualBasic.CompilerServices.VBIndexSetComplexBinder:FallbackSetIndex(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject:this (FullOpts)
8 (1.02 % of base) - Microsoft.VisualBasic.CompilerServices.VBSetComplexBinder:FallbackSetMember(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject:this
; Assembly listing for method Microsoft.VisualBasic.CompilerServices.VBSetComplexBinder:FallbackSetMember(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject: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; 22 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 9, 5.50) ref -> x19 this class-hnd single-def <Microsoft.VisualBasic.CompilerServices.VBSetComplexBinder>
; V01 arg1 [V01,T01] ( 7, 5 ) ref -> x20 class-hnd single-def <System.Dynamic.DynamicMetaObject>
; V02 arg2 [V02,T02] ( 7, 5 ) ref -> x21 class-hnd single-def <System.Dynamic.DynamicMetaObject>
; V03 arg3 [V03,T03] ( 4, 3 ) ref -> x22 class-hnd single-def <System.Dynamic.DynamicMetaObject>
-; V04 loc0 [V04,T13] ( 4, 2.50) ref -> x0 class-hnd <System.Dynamic.DynamicMetaObject>
+; V04 loc0 [V04,T12] ( 4, 2.50) ref -> x0 class-hnd <System.Dynamic.DynamicMetaObject>
; V05 loc1 [V05,T24] ( 3, 1.50) ref -> x22 class-hnd single-def <System.Linq.Expressions.Expression>
;* V06 loc2 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Linq.Expressions.Expression[]>
;* V07 loc3 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Linq.Expressions.MethodCallExpression>
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V09 tmp1 [V09,T04] ( 3, 3 ) ref -> x24 class-hnd exact single-def "dup spill" <System.Linq.Expressions.Expression[]>
-; V10 tmp2 [V10,T14] ( 2, 2 ) ref -> x25 class-hnd single-def "impAppendStmt" <System.Reflection.MethodInfo>
-; V11 tmp3 [V11,T15] ( 2, 2 ) ref -> x26 class-hnd single-def "impAppendStmt" <System.Linq.Expressions.Expression>
+; V09 tmp1 [V09,T04] ( 3, 3 ) ref -> x23 class-hnd exact single-def "dup spill" <System.Linq.Expressions.Expression[]>
+; V10 tmp2 [V10,T14] ( 2, 2 ) ref -> x24 class-hnd single-def "impAppendStmt" <System.Reflection.MethodInfo>
+; V11 tmp3 [V11,T15] ( 2, 2 ) ref -> x25 class-hnd single-def "impAppendStmt" <System.Linq.Expressions.Expression>
;* V12 tmp4 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Linq.Expressions.ConstantExpression>
-; V13 tmp5 [V13,T05] ( 3, 3 ) ref -> x27 class-hnd exact single-def "Single-def Box Helper" <System.Boolean>
-; V14 tmp6 [V14,T16] ( 2, 2 ) ref -> x24 class-hnd single-def "impImportAndPushBox" <System.Linq.Expressions.NewArrayExpression>
-; V15 tmp7 [V15,T06] ( 3, 3 ) ref -> x27 class-hnd exact single-def "Single-def Box Helper" <System.Boolean>
+; V13 tmp5 [V13,T05] ( 3, 3 ) ref -> x26 class-hnd exact single-def "Single-def Box Helper" <System.Boolean>
+; V14 tmp6 [V14,T16] ( 2, 2 ) ref -> x23 class-hnd single-def "impImportAndPushBox" <System.Linq.Expressions.NewArrayExpression>
+; V15 tmp7 [V15,T06] ( 3, 3 ) ref -> x26 class-hnd exact single-def "Single-def Box Helper" <System.Boolean>
;* V16 tmp8 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impImportAndPushBox" <System.Linq.Expressions.ConstantExpression>
; V17 tmp9 [V17,T17] ( 2, 2 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Linq.Expressions.BlockExpression>
; V18 tmp10 [V18,T07] ( 3, 3 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Dynamic.DynamicMetaObject>
; V19 tmp11 [V19,T18] ( 2, 2 ) ref -> x0 class-hnd "impAppendStmt" <System.Object>
; V20 tmp12 [V20,T19] ( 2, 2 ) ref -> x1 class-hnd exact single-def "impAppendStmt" <System.String>
; V21 tmp13 [V21,T08] ( 3, 3 ) ref -> x2 class-hnd exact single-def "dup spill" <System.Dynamic.DynamicMetaObject[]>
; V22 tmp14 [V22,T28] ( 2, 1 ) ref -> x2 class-hnd "Inline return value spill temp" <System.Object>
-; V23 tmp15 [V23,T20] ( 2, 2 ) ref -> x27 class-hnd exact single-def "Inlining Arg" <System.String>
+; V23 tmp15 [V23,T20] ( 2, 2 ) ref -> x26 class-hnd exact single-def "Inlining Arg" <System.String>
; V24 tmp16 [V24,T09] ( 3, 3 ) ref -> x28 class-hnd exact single-def "NewObj constructor temp" <System.Linq.Expressions.ConstantExpression>
;* V25 tmp17 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Boolean>
; V26 tmp18 [V26,T10] ( 3, 3 ) ref -> [fp+0x18] class-hnd exact spill-single-def "NewObj constructor temp" <System.Linq.Expressions.ConstantExpression>
;* V27 tmp19 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Boolean>
;* V28 tmp20 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Boolean>
; V29 tmp21 [V29,T11] ( 3, 3 ) ref -> x5 class-hnd exact single-def "NewObj constructor temp" <System.Linq.Expressions.ConstantExpression>
;* V30 tmp22 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Boolean>
; V31 tmp23 [V31,T21] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V32 tmp24 [V32,T22] ( 2, 2 ) ref -> x2 single-def "argument with side effect"
; V33 cse0 [V33,T25] ( 3, 1.50) ref -> x4 "CSE #06: moderate"
-; V34 cse1 [V34,T26] ( 3, 1.50) ref -> x23 "CSE #01: moderate"
+; V34 cse1 [V34,T26] ( 3, 1.50) ref -> x23 "CSE #02: moderate"
; V35 cse2 [V35,T27] ( 3, 1.50) ref -> x3 "CSE #07: moderate"
-; V36 cse3 [V36,T12] ( 5, 2.50) long -> x23 "CSE #08: moderate"
+; V36 cse3 [V36,T13] ( 4, 2 ) long -> x27 "CSE #08: moderate"
; V37 rat0 [V37,T23] ( 2, 2 ) ref -> x24 "Spilling to split statement for tree"
;
; Lcl frame size = 16
G_M45408_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 x21, x2
mov x22, x3
;; size=44 bbWeight=1 PerfScore 8.50
G_M45408_IG02:
mov x0, x20
mov x2, x21
mov x1, xzr
movz x3, #0xD1FFAB1E // code for Microsoft.VisualBasic.CompilerServices.IDOUtils:NeedsDeferral(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject):ubyte
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
cbz w0, G_M45408_IG04
;; size=36 bbWeight=1 PerfScore 8.00
G_M45408_IG03:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov x1, #1
bl CORINFO_HELP_NEWARR_1_OBJ
mov x2, x0
add x14, x2, #16
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
mov x0, x19
mov x1, x20
movz x3, #0xD1FFAB1E // code for System.Dynamic.DynamicMetaObjectBinder:Defer(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[]):System.Dynamic.DynamicMetaObject:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M45408_IG07
;; size=68 bbWeight=0.50 PerfScore 6.50
G_M45408_IG04:
cbz x22, G_M45408_IG06
ldr x23, [x20, #0x08]
mov x24, x23
movz x4, #0xD1FFAB1E
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr w4, [x4]
tbz w4, #0, G_M45408_IG08
;; size=32 bbWeight=0.50 PerfScore 5.00
G_M45408_IG05:
movz x4, #0xD1FFAB1E // data for System.Dynamic.DynamicMetaObject:s_noValueSentinel
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
cmp x24, x4
csel x0, x23, xzr, ne
ldr x1, [x19, #0x10]
ldr x3, [x21, #0x08]
cmp x3, x4
csel x2, x3, xzr, ne
ldrb w4, [x19, #0x1A]
ldrb w3, [x19, #0x19]
movz x5, #0xD1FFAB1E // code for Microsoft.VisualBasic.CompilerServices.NewLateBinding:CanBindSet(System.Object,System.String,System.Object,ubyte,ubyte):ubyte
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
cbnz w0, G_M45408_IG06
mov x0, x22
b G_M45408_IG07
;; size=80 bbWeight=0.50 PerfScore 13.25
G_M45408_IG06:
ldr x0, [x21, #0x10]
movz x1, #0xD1FFAB1E // code for Microsoft.VisualBasic.CompilerServices.IDOUtils:ConvertToObject(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
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
mov x1, #1
bl CORINFO_HELP_NEWARR_1_OBJ
- mov x24, x0
- add x14, x24, #16
+ mov x23, x0
+ add x14, x23, #16
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movn w2, #0
mov w3, #28
mov x4, xzr
mov w5, #3
mov x6, xzr
mov x7, xzr
movz x8, #0xD1FFAB1E // code for System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
movk x8, #0xD1FFAB1E LSL #16
movk x8, #0xD1FFAB1E LSL #32
ldr x8, [x8]
blr x8
- mov x25, x0
- ldr x26, [x20, #0x10]
- ldr x27, [x19, #0x10]
- add x0, x23, #0xD1FFAB1E
+ mov x24, x0
+ ldr x25, [x20, #0x10]
+ ldr x26, [x19, #0x10]
+ movz x27, #0xD1FFAB1E
+ movk x27, #0xD1FFAB1E LSL #16
+ movk x27, #0xD1FFAB1E LSL #32
+ mov x0, x27
bl CORINFO_HELP_NEWSFAST
mov x28, x0
add x14, x28, #8
- mov x15, x27
+ mov x15, x26
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x27, x0
- mov x1, x24
+ mov x26, x0
+ mov x1, x23
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Linq.Expressions.Expression:NewArrayInit(System.Type,System.Collections.Generic.IEnumerable`1[System.Linq.Expressions.Expression]):System.Linq.Expressions.NewArrayExpression
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- mov x24, x0
+ mov x23, x0
ldrb w0, [x19, #0x19]
- strb w0, [x27, #0x08]
- add x0, x23, #0xD1FFAB1E
+ strb w0, [x26, #0x08]
+ mov x0, x27
bl CORINFO_HELP_NEWSFAST
mov x1, x0
str x1, [fp, #0x18] // [V26 tmp18]
add x14, x1, #8
- mov x15, x27
+ mov x15, x26
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x27, x0
+ mov x26, x0
ldrb w0, [x19, #0x1A]
- strb w0, [x27, #0x08]
- add x0, x23, #0xD1FFAB1E
+ strb w0, [x26, #0x08]
+ mov x0, x27
bl CORINFO_HELP_NEWSFAST
mov x5, x0
add x14, x5, #8
- mov x15, x27
+ mov x15, x26
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x25
- mov x1, x26
+ mov x0, x24
+ mov x1, x25
mov x2, x28
- mov x3, x24
+ mov x3, x23
ldr x4, [fp, #0x18] // [V26 tmp18]
movz x6, #0xD1FFAB1E // code for System.Linq.Expressions.Expression:Call(System.Reflection.MethodInfo,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression):System.Linq.Expressions.MethodCallExpression
movk x6, #0xD1FFAB1E LSL #16
movk x6, #0xD1FFAB1E LSL #32
ldr x6, [x6]
blr x6
mov x1, x22
movz x2, #0xD1FFAB1E // code for System.Linq.Expressions.Expression:Block(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression):System.Linq.Expressions.BlockExpression
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 x22, x0
mov x0, x20
mov x2, x21
mov x1, xzr
movz x3, #0xD1FFAB1E // code for Microsoft.VisualBasic.CompilerServices.IDOUtils:CreateRestrictions(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject):System.Dynamic.BindingRestrictions
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x2, x0
mov x1, x19
mov x0, x22
movz x3, #0xD1FFAB1E // code for System.Dynamic.DynamicMetaObject:.ctor(System.Linq.Expressions.Expression,System.Dynamic.BindingRestrictions):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x0, x22
- ;; size=476 bbWeight=0.50 PerfScore 50.75
+ ;; size=484 bbWeight=0.50 PerfScore 51.25
G_M45408_IG07:
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=1 PerfScore 7.00
G_M45408_IG08:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M45408_IG05
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 784, prolog size 28, PerfScore 99.00, instruction count 196, allocated bytes for code 784 (MethodHash=73a74e9f) for method Microsoft.VisualBasic.CompilerServices.VBSetComplexBinder:FallbackSetMember(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject:this (FullOpts)
+; Total bytes of code 792, prolog size 28, PerfScore 99.50, instruction count 198, allocated bytes for code 792 (MethodHash=73a74e9f) for method Microsoft.VisualBasic.CompilerServices.VBSetComplexBinder:FallbackSetMember(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject:this (FullOpts)
8 (0.96 % of base) - Microsoft.VisualBasic.FileIO.FileSystem:FxCopyOrMoveDirectory(int,System.String,System.String,ubyte)
; Assembly listing for method Microsoft.VisualBasic.FileIO.FileSystem:FxCopyOrMoveDirectory(int,System.String,System.String,ubyte) (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T13] ( 4, 4 ) int -> [fp+0x2C] EH-live single-def
; V01 arg1 [V01,T12] ( 5, 5 ) ref -> [fp+0x20] class-hnd EH-live single-def <System.String>
; V02 arg2 [V02,T09] ( 8, 8 ) ref -> [fp+0x18] class-hnd EH-live single-def <System.String>
; V03 arg3 [V03,T17] ( 3, 3 ) ubyte -> [fp+0x28] EH-live single-def
;* V04 loc0 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <Microsoft.VisualBasic.FileIO.FileSystem+DirectoryNode>
; V05 loc1 [V05,T16] ( 5, 5 ) ref -> x21 class-hnd exact single-def <System.Collections.Specialized.ListDictionary>
;* V06 loc2 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.IO.IOException>
;* V07 loc3 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.UnauthorizedAccessException>
; V08 loc4 [V08,T05] ( 5, 17 ) ref -> x19 class-hnd exact single-def <System.IO.IOException>
; V09 loc5 [V09,T04] ( 4, 18 ) ref -> x22 class-hnd exact single-def <System.Collections.Specialized.ListDictionary+NodeEnumerator>
;* V10 loc6 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.DictionaryEntry>
;* V11 loc7 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.DictionaryEntry>
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V13 tmp1 [V13 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V14 tmp2 [V14,T14] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <Microsoft.VisualBasic.FileIO.FileSystem+DirectoryNode>
;* V15 tmp3 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Collections.Specialized.ListDictionary>
; V16 tmp4 [V16,T15] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.IO.IOException>
; V17 tmp5 [V17,T00] ( 6, 60 ) ref -> x23 class-hnd "dup spill" <System.Object>
;* V18 tmp6 [V18 ] ( 0, 0 ) ref -> zero-ref
;* V19 tmp7 [V19 ] ( 0, 0 ) struct (16) zero-ref <System.Collections.DictionaryEntry>
;* V20 tmp8 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.IDictionary>
;* V21 tmp9 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Object>
;* V22 tmp10 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.UnauthorizedAccessException>
;* V23 tmp11 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.IO.IOException>
; V24 tmp12 [V24,T08] ( 6, 12 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Specialized.ListDictionary+NodeEnumerator>
; V25 tmp13 [V25,T01] ( 2, 32 ) ref -> x0 class-hnd "dup spill" <System.Collections.IDictionary>
; V26 tmp14 [V26,T02] ( 4, 28 ) ref -> x0
; V27 tmp15 [V27,T03] ( 3, 24 ) ref -> x0 class-hnd "dup spill" <System.Collections.IDictionary>
;* V28 tmp16 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.IDictionary>
;* V29 tmp17 [V29 ] ( 0, 0 ) ref -> zero-ref "field V10._key (fldOffset=0x0)" P-INDEP
;* V30 tmp18 [V30 ] ( 0, 0 ) ref -> zero-ref "field V10._value (fldOffset=0x8)" P-INDEP
;* V31 tmp19 [V31 ] ( 0, 0 ) ref -> zero-ref "field V11._key (fldOffset=0x0)" P-INDEP
;* V32 tmp20 [V32 ] ( 0, 0 ) ref -> zero-ref "field V11._value (fldOffset=0x8)" P-INDEP
; V33 tmp21 [V33,T06] ( 3, 16 ) ref -> x24 "field V19._key (fldOffset=0x0)" P-INDEP
; V34 tmp22 [V34,T07] ( 3, 16 ) ref -> x25 "field V19._value (fldOffset=0x8)" P-INDEP
; V35 tmp23 [V35,T18] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V36 PSPSym [V36,T19] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym"
-; V37 cse0 [V37,T11] ( 2, 9 ) long -> x21 hoist "CSE #02: aggressive"
-; V38 cse1 [V38,T10] ( 5, 9 ) long -> x20 "CSE #01: aggressive"
+; V37 cse0 [V37,T10] ( 2, 9 ) long -> x21 hoist "CSE #02: aggressive"
+; V38 cse1 [V38,T11] ( 4, 8 ) long -> x20 "CSE #01: aggressive"
;
; Lcl frame size = 40
G_M48296_IG01:
stp fp, lr, [sp, #-0x70]!
stp x19, x20, [sp, #0x38]
stp x21, x22, [sp, #0x48]
stp x23, x24, [sp, #0x58]
str x25, [sp, #0x68]
mov fp, sp
add x4, sp, #112
str x4, [fp, #0x30] // [V36 PSPSym]
str w0, [fp, #0x2C] // [V00 arg0]
stp x2, x1, [fp, #0x18] // [V02 arg2], [V01 arg1]
str w3, [fp, #0x28] // [V03 arg3]
;; size=44 bbWeight=1 PerfScore 10.00
G_M48296_IG02:
mov x0, x2
movz x4, #0xD1FFAB1E // code for System.IO.Directory:Exists(System.String):ubyte
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
cmp w0, #0
ldr w0, [fp, #0x2C] // [V00 arg0]
ccmp w0, #1, 0, eq
cset x19, eq
ldp x1, x0, [fp, #0x18] // [V02 arg2], [V01 arg1]
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.FileIO.FileSystem:IsOnSameDrive(System.String,System.String):ubyte
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
tst w19, w0
beq G_M48296_IG04
ldr x0, [fp, #0x18] // [V02 arg2]
movz x1, #0xD1FFAB1E // code for Microsoft.VisualBasic.FileIO.FileSystem:GetParentPath(System.String):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
movz x1, #0xD1FFAB1E // code for System.IO.Directory:CreateDirectory(System.String):System.IO.DirectoryInfo
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=116 bbWeight=1 PerfScore 32.50
G_M48296_IG03:
ldp x1, x0, [fp, #0x18] // [V02 arg2], [V01 arg1]
movz x2, #0xD1FFAB1E // code for System.IO.Directory:Move(System.String,System.String)
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
b G_M48296_IG13
;; size=28 bbWeight=1 PerfScore 9.50
G_M48296_IG04:
ldr x0, [fp, #0x18] // [V02 arg2]
movz x1, #0xD1FFAB1E // code for System.IO.Directory:CreateDirectory(System.String):System.IO.DirectoryInfo
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
ldp x2, x1, [fp, #0x18] // [V02 arg2], [V01 arg1]
movz x3, #0xD1FFAB1E // code for Microsoft.VisualBasic.FileIO.FileSystem+DirectoryNode:.ctor(System.String,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- movz x20, #24
+ movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
mov x0, x20
bl CORINFO_HELP_NEWSFAST
mov x21, x0
ldrb w2, [fp, #0x28] // [V03 arg3]
ldr w0, [fp, #0x2C] // [V00 arg0]
mov x1, x19
mov x3, x21
movz x4, #0xD1FFAB1E // code for Microsoft.VisualBasic.FileIO.FileSystem:CopyOrMoveDirectoryNode(int,Microsoft.VisualBasic.FileIO.FileSystem+DirectoryNode,ubyte,System.Collections.Specialized.ListDictionary)
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
ldr w0, [x21, #0x1C]
cmp w0, #0
ble G_M48296_IG13
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov x1, xzr
movz x2, #0xD1FFAB1E // code for System.SR:GetResourceString(System.String,System.String):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.IOException:.ctor(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- add x0, x20, #0xD1FFAB1E
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x22, x0
add x14, x22, #8
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
ldr w0, [x21, #0x18]
str w0, [x22, #0x18]
mov w0, #1
strb w0, [x22, #0x1C]
str xzr, [x22, #0x10]
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.Collections.Specialized.ListDictionary+NodeEnumerator:MoveNext():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbz w0, G_M48296_IG14
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
- ;; size=308 bbWeight=1 PerfScore 73.50
+ ;; size=316 bbWeight=1 PerfScore 74.50
G_M48296_IG05:
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.Collections.Specialized.ListDictionary+NodeEnumerator:get_Current():System.Object:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x23, x0
cbnz x23, G_M48296_IG07
;; size=32 bbWeight=8 PerfScore 60.00
G_M48296_IG06:
mov x24, xzr
mov x25, xzr
b G_M48296_IG10
;; size=12 bbWeight=4 PerfScore 8.00
G_M48296_IG07:
ldr x1, [x23]
add x0, x20, #0xD1FFAB1E
cmp x1, x0
beq G_M48296_IG09
;; size=16 bbWeight=4 PerfScore 20.00
G_M48296_IG08:
mov x1, x23
add x0, x20, #0xD1FFAB1E
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=28 bbWeight=2 PerfScore 13.00
G_M48296_IG09:
ldp x24, x25, [x23, #0x08]
;; size=4 bbWeight=4 PerfScore 16.00
G_M48296_IG10:
ldr x0, [x19, #0x18]
cbnz x0, G_M48296_IG12
;; size=8 bbWeight=8 PerfScore 32.00
G_M48296_IG11:
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.Exception:CreateDataContainer():System.Collections.IDictionary:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
add x14, x19, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
;; size=36 bbWeight=4 PerfScore 32.00
G_M48296_IG12:
mov x2, x25
mov x1, x24
mov x11, x21
ldr xip0, [x11]
blr xip0
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.Collections.Specialized.ListDictionary+NodeEnumerator:MoveNext():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
cbnz w0, G_M48296_IG05
b G_M48296_IG14
;; size=52 bbWeight=8 PerfScore 108.00
G_M48296_IG13:
ldr x25, [sp, #0x68]
ldp x23, x24, [sp, #0x58]
ldp x21, x22, [sp, #0x48]
ldp x19, x20, [sp, #0x38]
ldp fp, lr, [sp], #0x70
ret lr
;; size=24 bbWeight=1 PerfScore 7.00
G_M48296_IG14:
mov x0, x19
bl CORINFO_HELP_THROW
brk_unix #0
;; size=12 bbWeight=0 PerfScore 0.00
G_M48296_IG15:
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, #112
str x3, [sp, #0x10]
;; size=28 bbWeight=0 PerfScore 0.00
G_M48296_IG16:
adr x0, [G_M48296_IG04]
;; size=4 bbWeight=0 PerfScore 0.00
G_M48296_IG17:
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
G_M48296_IG18:
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, #112
str x3, [sp, #0x10]
;; size=28 bbWeight=0 PerfScore 0.00
G_M48296_IG19:
adr x0, [G_M48296_IG04]
;; size=4 bbWeight=0 PerfScore 0.00
G_M48296_IG20:
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 832, prolog size 44, PerfScore 421.50, instruction count 208, allocated bytes for code 832 (MethodHash=ad994357) for method Microsoft.VisualBasic.FileIO.FileSystem:FxCopyOrMoveDirectory(int,System.String,System.String,ubyte) (FullOpts)
+; Total bytes of code 840, prolog size 44, PerfScore 422.50, instruction count 210, allocated bytes for code 840 (MethodHash=ad994357) for method Microsoft.VisualBasic.FileIO.FileSystem:FxCopyOrMoveDirectory(int,System.String,System.String,ubyte) (FullOpts)
8 (7.14 % of base) - System.SR:get_ResourceManager():System.Resources.ResourceManager
; Assembly listing for method System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V01 tmp1 [V01,T01] ( 2, 4 ) ref -> x0 class-hnd single-def "dup spill" <System.Resources.ResourceManager>
; V02 tmp2 [V02,T02] ( 4, 3.50) ref -> x0
; V03 tmp3 [V03,T00] ( 4, 4 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Resources.ResourceManager>
;
; Lcl frame size = 8
G_M50404_IG01:
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
;; size=12 bbWeight=1 PerfScore 2.50
G_M50404_IG02:
movz x0, #0xD1FFAB1E // data for System.SR:s_resourceManager
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
cbnz x0, G_M50404_IG04
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=20 bbWeight=1 PerfScore 5.50
G_M50404_IG03:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Resources.ResourceManager:.ctor(System.Type):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
movz x14, #0xD1FFAB1E // data for System.SR:s_resourceManager
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
mov x0, x19
- ;; size=72 bbWeight=0.50 PerfScore 6.50
+ ;; size=76 bbWeight=0.50 PerfScore 6.75
G_M50404_IG04:
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 112, prolog size 12, PerfScore 18.00, instruction count 28, allocated bytes for code 112 (MethodHash=91843b1b) for method System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts)
+; Total bytes of code 120, prolog size 12, PerfScore 18.75, instruction count 30, allocated bytes for code 120 (MethodHash=91843b1b) for method System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts)
8 (7.14 % of base) - System.SR:get_ResourceManager():System.Resources.ResourceManager
; Assembly listing for method System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V01 tmp1 [V01,T01] ( 2, 4 ) ref -> x0 class-hnd single-def "dup spill" <System.Resources.ResourceManager>
; V02 tmp2 [V02,T02] ( 4, 3.50) ref -> x0
; V03 tmp3 [V03,T00] ( 4, 4 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Resources.ResourceManager>
;
; Lcl frame size = 8
G_M50404_IG01:
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
;; size=12 bbWeight=1 PerfScore 2.50
G_M50404_IG02:
movz x0, #0xD1FFAB1E // data for System.SR:s_resourceManager
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
cbnz x0, G_M50404_IG04
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=20 bbWeight=1 PerfScore 5.50
G_M50404_IG03:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.Resources.ResourceManager:.ctor(System.Type):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
movz x14, #0xD1FFAB1E // data for System.SR:s_resourceManager
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
mov x0, x19
- ;; size=72 bbWeight=0.50 PerfScore 6.50
+ ;; size=76 bbWeight=0.50 PerfScore 6.75
G_M50404_IG04:
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 112, prolog size 12, PerfScore 18.00, instruction count 28, allocated bytes for code 112 (MethodHash=91843b1b) for method System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts)
+; Total bytes of code 120, prolog size 12, PerfScore 18.75, instruction count 30, allocated bytes for code 120 (MethodHash=91843b1b) for method System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts)
4 (1.15 % of base) - Microsoft.CSharp.RuntimeBinder.Semantics.MemberLookup:.ctor():this
; Assembly listing for method Microsoft.CSharp.RuntimeBinder.Semantics.MemberLookup:.ctor():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; 17 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 10, 10 ) ref -> x19 this class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.MemberLookup>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V02 tmp1 [V02,T02] ( 3, 6 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.MethPropWithType]>
-; V03 tmp2 [V03,T03] ( 3, 6 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType]>
+; V03 tmp2 [V03,T03] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType]>
; V04 tmp3 [V04,T04] ( 2, 4 ) ref -> x15 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType>
; V05 tmp4 [V05,T05] ( 2, 4 ) ref -> x15 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType>
; V06 tmp5 [V06,T06] ( 2, 4 ) ref -> x15 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType>
; V07 tmp6 [V07,T07] ( 2, 4 ) ref -> x15 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType>
; V08 tmp7 [V08,T08] ( 2, 4 ) ref -> x15 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType>
; V09 tmp8 [V09,T09] ( 2, 4 ) ref -> x15 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType>
; V10 cse0 [V10,T01] ( 7, 7 ) long -> x20 "CSE #04: aggressive"
-; V11 cse1 [V11,T11] ( 3, 2 ) long -> x20 "CSE #01: aggressive"
-; V12 cse2 [V12,T12] ( 3, 2 ) long -> x23 "CSE #02: aggressive"
-; V13 cse3 [V13,T10] ( 3, 3 ) long -> x22 "CSE #03: aggressive"
+; V11 cse1 [V11,T10] ( 3, 2 ) long -> x20 "CSE #01: aggressive"
+; V12 cse2 [V12,T11] ( 3, 2 ) long -> x22 "CSE #02: aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M19575_IG01:
stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x10]
- stp x21, x22, [sp, #0x20]
- stp x23, x24, [sp, #0x30]
+ stp x19, x20, [sp, #0x18]
+ stp x21, x22, [sp, #0x28]
+ str x23, [sp, #0x38]
mov fp, sp
mov x19, x0
;; size=24 bbWeight=1 PerfScore 5.00
G_M19575_IG02:
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
mov x0, x20
bl CORINFO_HELP_NEWSFAST
mov x21, x0
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M19575_IG06
;; size=44 bbWeight=1 PerfScore 9.00
G_M19575_IG03:
- movz x22, #0xD1FFAB1E // data for System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.MethPropWithType]:s_emptyArray
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ldr x15, [x22]
+ movz x14, #0xD1FFAB1E // data for System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.MethPropWithType]:s_emptyArray
+ movk x14, #0xD1FFAB1E LSL #32
+ ldr x15, [x14]
add x14, x21, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #64
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
- movz x23, #0xD1FFAB1E
- movk x23, #0xD1FFAB1E LSL #16
- movk x23, #0xD1FFAB1E LSL #32
- mov x0, x23
+ movz x22, #0xD1FFAB1E
+ movk x22, #0xD1FFAB1E LSL #16
+ movk x22, #0xD1FFAB1E LSL #32
+ mov x0, x22
bl CORINFO_HELP_NEWSFAST
- mov x24, x0
+ mov x23, x0
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr w14, [x14]
tbz w14, #0, G_M19575_IG07
- ;; size=80 bbWeight=1 PerfScore 17.00
+ ;; size=76 bbWeight=1 PerfScore 16.50
G_M19575_IG04:
- ldr x15, [x22, #-0x08]
- add x14, x24, #8
+ movz x14, #0xD1FFAB1E // data for System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType]:s_emptyArray
+ movk x14, #0xD1FFAB1E LSL #32
+ ldr x15, [x14]
+ add x14, x23, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #40
- mov x15, x24
+ mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
mov x0, x20
bl CORINFO_HELP_NEWSFAST
mov x15, x0
add x14, x19, #56
bl CORINFO_HELP_ASSIGN_REF
mov x0, x20
bl CORINFO_HELP_NEWSFAST
mov x15, x0
add x14, x19, #72
bl CORINFO_HELP_ASSIGN_REF
mov x0, x20
bl CORINFO_HELP_NEWSFAST
mov x15, x0
add x14, x19, #80
bl CORINFO_HELP_ASSIGN_REF
mov x0, x20
bl CORINFO_HELP_NEWSFAST
mov x15, x0
add x14, x19, #88
bl CORINFO_HELP_ASSIGN_REF
mov x0, x20
bl CORINFO_HELP_NEWSFAST
mov x15, x0
add x14, x19, #96
bl CORINFO_HELP_ASSIGN_REF
mov x0, x20
bl CORINFO_HELP_NEWSFAST
mov x15, x0
add x14, x19, #104
bl CORINFO_HELP_ASSIGN_REF
- ;; size=156 bbWeight=1 PerfScore 29.00
+ ;; size=164 bbWeight=1 PerfScore 30.00
G_M19575_IG05:
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
- ;; size=20 bbWeight=1 PerfScore 5.00
+ ;; size=20 bbWeight=1 PerfScore 6.00
G_M19575_IG06:
mov x0, x20
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M19575_IG03
;; size=12 bbWeight=0 PerfScore 0.00
G_M19575_IG07:
- mov x0, x23
+ mov x0, x22
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M19575_IG04
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 348, prolog size 20, PerfScore 65.00, instruction count 87, allocated bytes for code 348 (MethodHash=4a89b388) for method Microsoft.CSharp.RuntimeBinder.Semantics.MemberLookup:.ctor():this (FullOpts)
+; Total bytes of code 352, prolog size 20, PerfScore 66.50, instruction count 88, allocated bytes for code 352 (MethodHash=4a89b388) for method Microsoft.CSharp.RuntimeBinder.Semantics.MemberLookup:.ctor():this (FullOpts)
4 (2.56 % of base) - Microsoft.CSharp.RuntimeBinder.Semantics.PredefinedMembers:LoadMethod(int):Microsoft.CSharp.RuntimeBinder.Semantics.MethodSymbol
; Assembly listing for method Microsoft.CSharp.RuntimeBinder.Semantics.PredefinedMembers:LoadMethod(int):Microsoft.CSharp.RuntimeBinder.Semantics.MethodSymbol (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; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T01] ( 4, 4 ) int -> x0 single-def
-; V01 loc0 [V01,T00] ( 7, 7 ) ref -> x20 class-hnd exact single-def <Microsoft.CSharp.RuntimeBinder.Semantics.PredefinedMethodInfo>
+; V01 loc0 [V01,T00] ( 7, 7 ) ref -> x19 class-hnd exact single-def <Microsoft.CSharp.RuntimeBinder.Semantics.PredefinedMethodInfo>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol>
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <int[]>
;* V05 tmp3 [V05 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V06 tmp4 [V06 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V07 tmp5 [V07 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V08 tmp6 [V08,T03] ( 2, 4 ) ref -> x1 single-def "arr expr"
; V09 tmp7 [V09,T04] ( 2, 4 ) ref -> x3 single-def "arr expr"
; V10 tmp8 [V10,T02] ( 3, 6 ) int -> x4 "index expr"
; V11 tmp9 [V11,T05] ( 2, 4 ) ref -> x0 single-def "argument with side effect"
; V12 tmp10 [V12,T06] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V13 tmp11 [V13,T08] ( 2, 4 ) int -> x2 "argument with side effect"
; V14 tmp12 [V14,T07] ( 2, 4 ) ref -> x3 single-def "argument with side effect"
; V15 cse0 [V15,T09] ( 3, 3 ) int -> x6 "CSE #02: aggressive"
-; V16 cse1 [V16,T10] ( 3, 3 ) long -> x19 "CSE #01: aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M10893_IG01:
stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp
;; size=12 bbWeight=1 PerfScore 2.50
G_M10893_IG02:
- movz x19, #0xD1FFAB1E
- movk x19, #0xD1FFAB1E LSL #16
- movk x19, #0xD1FFAB1E LSL #32
- ldr x1, [x19, #0xD1FFAB1E]
+ movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #32
+ ldr x1, [x1]
cmp w0, #81
bhs G_M10893_IG04
add x1, x1, #16
- ldr x20, [x1, w0, UXTW #3]
- ldr w0, [x20, #0x14]
+ ldr x19, [x1, w0, UXTW #3]
+ ldr w0, [x19, #0x14]
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.RuntimeBinder.Semantics.PredefinedTypes:GetPredefinedAggregate(uint):Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- ldr x1, [x20, #0x08]
- ldr w2, [x20, #0x24]
- ldr x3, [x19]
- ldr w4, [x20, #0x18]
+ ldr x1, [x19, #0x08]
+ ldr w2, [x19, #0x24]
+ movz x3, #0xD1FFAB1E
+ movk x3, #0xD1FFAB1E LSL #32
+ ldr x3, [x3]
+ ldr w4, [x19, #0x18]
cmp w4, #121
bhs G_M10893_IG04
add x3, x3, #16
ldr x3, [x3, w4, UXTW #3]
- ldp w6, w4, [x20, #0x1C]
+ ldp w6, w4, [x19, #0x1C]
cmp w6, #0
cset x5, eq
cmp w6, #1
cset x6, eq
movz x7, #0xD1FFAB1E // code for Microsoft.CSharp.RuntimeBinder.Semantics.PredefinedMembers:LoadMethod(Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol,int[],int,Microsoft.CSharp.RuntimeBinder.Syntax.Name,int,ubyte,ubyte):Microsoft.CSharp.RuntimeBinder.Semantics.MethodSymbol
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
- ;; size=124 bbWeight=1 PerfScore 44.50
+ ;; size=128 bbWeight=1 PerfScore 45.00
G_M10893_IG03:
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
br x7
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M10893_IG04:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 156, prolog size 12, PerfScore 50.00, instruction count 39, allocated bytes for code 156 (MethodHash=e11cd572) for method Microsoft.CSharp.RuntimeBinder.Semantics.PredefinedMembers:LoadMethod(int):Microsoft.CSharp.RuntimeBinder.Semantics.MethodSymbol (FullOpts)
+; Total bytes of code 160, prolog size 12, PerfScore 51.50, instruction count 40, allocated bytes for code 160 (MethodHash=e11cd572) for method Microsoft.CSharp.RuntimeBinder.Semantics.PredefinedMembers:LoadMethod(int):Microsoft.CSharp.RuntimeBinder.Semantics.MethodSymbol (FullOpts)