-32 (-1.71 % of base) - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateInstance(System.IServiceProvider,System.Type,System.Object[]):System.Object
; Assembly listing for method Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateInstance(System.IServiceProvider,System.Type,System.Object[]):System.Object (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 18 single block inlinees; 10 inlinees without PGO data
+; 0 inlinees with PGO data; 20 single block inlinees; 10 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T13] ( 7, 6.98) ref -> r14 class-hnd single-def <System.IServiceProvider>
-; V01 arg1 [V01,T11] ( 8, 7.48) ref -> r15 class-hnd single-def <System.Type>
-; V02 arg2 [V02,T09] ( 11, 13.77) ref -> rbx class-hnd single-def <System.Object[]>
+; V00 arg0 [V00,T14] ( 7, 6.98) ref -> r14 class-hnd single-def <System.IServiceProvider>
+; V01 arg1 [V01,T12] ( 8, 7.48) ref -> r15 class-hnd single-def <System.Type>
+; V02 arg2 [V02,T08] ( 11, 13.77) ref -> rbx class-hnd single-def <System.Object[]>
; V03 loc0 [V03 ] ( 17, 43.96) struct ( 8) [rbp-0x30] do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.Extensions.DependencyInjection.ActivatorUtilities+<>c__DisplayClass4_0>
-;* V04 loc1 [V04 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Span`1[System.Object]>
-; V05 loc2 [V05 ] ( 2, 1.50) struct (64) [rbp-0x70] do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.Extensions.DependencyInjection.ActivatorUtilities+StackAllocatedObjects>
-; V06 loc3 [V06,T17] ( 7, 5.50) int -> r13 single-def
+; V04 loc1 [V04 ] ( 2, 1.50) struct (64) [rbp-0x70] do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.Extensions.DependencyInjection.ActivatorUtilities+StackAllocatedObjects>
+; V05 loc2 [V05,T19] ( 5, 4.50) int -> r13 single-def
+;* V06 loc3 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Span`1[System.Object]>
;* V07 loc4 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Span`1[System.Object]>
;* V08 loc5 [V08 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[System.Object]>
; V09 loc6 [V09 ] ( 16, 31.40) struct (24) [rbp-0x88] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorMatcher>
; V10 loc7 [V10,T00] ( 10, 26.94) ref -> [rbp-0xE8] class-hnd <Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorInfoEx>
; V11 loc8 [V11,T18] ( 4, 6.50) ref -> [rbp-0xF0] class-hnd spill-single-def <Microsoft.Extensions.DependencyInjection.IServiceProviderIsService>
-; V12 loc9 [V12,T15] ( 6, 7.48) ref -> [rbp-0xF8] class-hnd <System.Type[]>
+; V12 loc9 [V12,T16] ( 6, 7.48) ref -> [rbp-0xF8] class-hnd <System.Type[]>
; V13 loc10 [V13 ] ( 2, 3.96) ref -> [rbp-0x90] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Reflection.ConstructorInfo>
; V14 loc11 [V14 ] ( 2, 3.96) ref -> [rbp-0x98] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Nullable`1[int][]>
-; V15 loc12 [V15,T12] ( 6, 9 ) int -> [rbp-0x9C]
+; V15 loc12 [V15,T13] ( 6, 9 ) int -> [rbp-0x9C]
; V16 loc13 [V16 ] ( 5, 7 ) struct (24) [rbp-0xB8] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorMatcher>
-; V17 loc14 [V17,T20] ( 4, 5 ) ubyte -> [rbp-0xBC]
-; V18 loc15 [V18,T34] ( 2, 1 ) int -> rsi
-; V19 loc16 [V19,T36] ( 2, 1 ) int -> rsi
-;* V20 loc17 [V20,T39] ( 0, 0 ) int -> zero-ref
+; V17 loc14 [V17,T21] ( 4, 5 ) ubyte -> [rbp-0xBC]
+; V18 loc15 [V18,T30] ( 2, 1 ) int -> rsi
+; V19 loc16 [V19,T33] ( 2, 1 ) int -> rsi
+;* V20 loc17 [V20,T37] ( 0, 0 ) int -> zero-ref
; V21 loc18 [V21,T10] ( 4, 12 ) int -> rax
; V22 loc19 [V22,T03] ( 12, 20.54) int -> [rbp-0xC0]
;# V23 OutArgs [V23 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V24 tmp1 [V24,T05] ( 6, 20 ) ref -> rdi class-hnd "dup spill" <System.Object>
-;* V25 tmp2 [V25 ] ( 0, 0 ) ref -> zero-ref
-;* V26 tmp3 [V26 ] ( 0, 0 ) int -> zero-ref
-;* V27 tmp4 [V27 ] ( 0, 0 ) ref -> zero-ref
+;* V24 tmp1 [V24 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[System.__Canon]>
+; V25 tmp2 [V25,T05] ( 6, 20 ) ref -> rdi class-hnd "dup spill" <System.Object>
+;* V26 tmp3 [V26 ] ( 0, 0 ) ref -> zero-ref
+;* V27 tmp4 [V27 ] ( 0, 0 ) int -> zero-ref
;* V28 tmp5 [V28 ] ( 0, 0 ) ref -> zero-ref
-;* V29 tmp6 [V29 ] ( 0, 0 ) int -> zero-ref
-; V30 tmp7 [V30,T14] ( 6, 8 ) ref -> [rbp-0x100]
-; V31 tmp8 [V31,T40] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <System.Int32>
-; V32 tmp9 [V32,T44] ( 2, 0 ) ref -> r14 class-hnd exact single-def "impImportAndPushBox" <System.String>
-; V33 tmp10 [V33,T41] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
-; V34 tmp11 [V34,T42] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
-; V35 tmp12 [V35,T43] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
-;* V36 tmp13 [V36 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V37 tmp14 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[System.Object]>
-;* V38 tmp15 [V38 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V39 tmp16 [V39,T28] ( 3, 3 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.Object[]>
-; V40 tmp17 [V40,T29] ( 3, 3 ) int -> rdi "Inlining Arg"
-;* V41 tmp18 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[System.Object]>
-;* V42 tmp19 [V42 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V43 tmp20 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[System.Object]>
-; V44 tmp21 [V44,T23] ( 2, 4 ) byref -> rdx single-def "Inlining Arg"
-; V45 tmp22 [V45,T25] ( 2, 4 ) int -> rax "Inlining Arg"
-;* V46 tmp23 [V46 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[System.Object]>
-;* V47 tmp24 [V47 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[System.Object]>
-;* V48 tmp25 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[System.Object]>
-;* V49 tmp26 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V50 tmp27 [V50 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V51 tmp28 [V51,T26] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V52 tmp29 [V52,T08] ( 4, 16 ) long -> rdx "Inlining Arg"
-;* V53 tmp30 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorInfoEx>
-;* V54 tmp31 [V54 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[System.Object]>
-; V55 tmp32 [V55 ] ( 17, 43.96) ref -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V03.constructors (fldOffset=0x0)" P-DEP
-; V56 tmp33 [V56,T30] ( 3, 2 ) byref -> r12 "field V04._reference (fldOffset=0x0)" P-INDEP
-; V57 tmp34 [V57,T27] ( 4, 3 ) int -> rax "field V04._length (fldOffset=0x8)" P-INDEP
-; V58 tmp35 [V58,T07] ( 10, 18.96) byref -> r12 single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-; V59 tmp36 [V59,T06] ( 10, 17.96) int -> r13 single-def "field V07._length (fldOffset=0x8)" P-INDEP
-; V60 tmp37 [V60,T16] ( 4, 7 ) byref -> [rbp-0x108] spill-single-def "field V08._reference (fldOffset=0x0)" P-INDEP
-; V61 tmp38 [V61,T21] ( 3, 5 ) int -> [rbp-0xC4] spill-single-def "field V08._length (fldOffset=0x8)" P-INDEP
-; V62 tmp39 [V62,T35] ( 2, 1 ) byref -> r12 single-def "field V37._reference (fldOffset=0x0)" P-INDEP
-; V63 tmp40 [V63,T37] ( 2, 1 ) int -> rax single-def "field V37._length (fldOffset=0x8)" P-INDEP
-; V64 tmp41 [V64,T31] ( 2, 2 ) byref -> r12 single-def "field V41._reference (fldOffset=0x0)" P-INDEP
-;* V65 tmp42 [V65,T38] ( 0, 0 ) int -> zero-ref single-def "field V41._length (fldOffset=0x8)" P-INDEP
-; V66 tmp43 [V66,T32] ( 2, 2 ) byref -> rdx single-def "field V43._reference (fldOffset=0x0)" P-INDEP
-; V67 tmp44 [V67,T33] ( 2, 2 ) int -> rax single-def "field V43._length (fldOffset=0x8)" P-INDEP
-;* V68 tmp45 [V68 ] ( 0, 0 ) byref -> zero-ref "field V46._reference (fldOffset=0x0)" P-INDEP
-;* V69 tmp46 [V69 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP
-;* V70 tmp47 [V70 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
-;* V71 tmp48 [V71 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
-;* V72 tmp49 [V72 ] ( 0, 0 ) byref -> zero-ref "field V48._reference (fldOffset=0x0)" P-INDEP
-;* V73 tmp50 [V73 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
-;* V74 tmp51 [V74 ] ( 0, 0 ) byref -> zero-ref single-def "field V54._reference (fldOffset=0x0)" P-INDEP
-;* V75 tmp52 [V75 ] ( 0, 0 ) int -> zero-ref single-def "field V54._length (fldOffset=0x8)" P-INDEP
-; V76 tmp53 [V76,T24] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
-; V77 tmp54 [V77,T45] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V78 tmp55 [V78,T46] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V79 tmp56 [V79,T47] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V80 cse0 [V80,T22] ( 3, 4 ) long -> [rbp-0xD0] spill-single-def "CSE #03: conservative"
-; V81 cse1 [V81,T19] ( 5, 5.25) int -> [rbp-0xD4] spill-single-def "CSE #07: moderate"
-; V82 rat0 [V82,T01] ( 7, 21 ) long -> rsi "Widened IV V18"
-; V83 rat1 [V83,T04] ( 6, 20.50) long -> [rbp-0xE0] "Widened IV V20"
-; V84 rat2 [V84,T02] ( 7, 21 ) long -> rsi "Widened IV V19"
+;* V29 tmp6 [V29 ] ( 0, 0 ) ref -> zero-ref
+;* V30 tmp7 [V30 ] ( 0, 0 ) int -> zero-ref
+; V31 tmp8 [V31,T15] ( 6, 8 ) ref -> [rbp-0x100]
+; V32 tmp9 [V32,T39] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <System.Int32>
+; V33 tmp10 [V33,T43] ( 2, 0 ) ref -> r14 class-hnd exact single-def "impImportAndPushBox" <System.String>
+; V34 tmp11 [V34,T40] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
+; V35 tmp12 [V35,T41] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
+; V36 tmp13 [V36,T42] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
+; V37 tmp14 [V37,T26] ( 3, 3 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.Object[]>
+;* V38 tmp15 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[System.Object]>
+;* V39 tmp16 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[System.Object]>
+;* V40 tmp17 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[System.Object]>
+;* V41 tmp18 [V41 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V42 tmp19 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[System.Object]>
+;* V43 tmp20 [V43 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V44 tmp21 [V44 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[System.Object]>
+;* V45 tmp22 [V45 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[System.Object]>
+;* V46 tmp23 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[System.Object]>
+;* V47 tmp24 [V47 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V48 tmp25 [V48 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V49 tmp26 [V49,T24] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V50 tmp27 [V50,T07] ( 4, 16 ) long -> rdx "Inlining Arg"
+;* V51 tmp28 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorInfoEx>
+;* V52 tmp29 [V52 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[System.Object]>
+; V53 tmp30 [V53 ] ( 17, 43.96) ref -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V03.constructors (fldOffset=0x0)" P-DEP
+;* V54 tmp31 [V54 ] ( 0, 0 ) byref -> zero-ref single-def "field V06._reference (fldOffset=0x0)" P-INDEP
+;* V55 tmp32 [V55 ] ( 0, 0 ) int -> zero-ref single-def "field V06._length (fldOffset=0x8)" P-INDEP
+; V56 tmp33 [V56,T06] ( 10, 18.96) byref -> r12 single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+; V57 tmp34 [V57,T09] ( 10, 11.96) int -> r13 single-def "field V07._length (fldOffset=0x8)" P-INDEP
+; V58 tmp35 [V58,T17] ( 4, 7 ) byref -> [rbp-0x108] spill-single-def "field V08._reference (fldOffset=0x0)" P-INDEP
+; V59 tmp36 [V59,T11] ( 3, 9 ) int -> [rbp-0xC4] spill-single-def "field V08._length (fldOffset=0x8)" P-INDEP
+; V60 tmp37 [V60,T27] ( 3, 2 ) byref -> r12 "field V24._reference (fldOffset=0x0)" P-INDEP
+; V61 tmp38 [V61,T25] ( 4, 3 ) int -> rdi "field V24._length (fldOffset=0x8)" P-INDEP
+; V62 tmp39 [V62,T31] ( 2, 1 ) byref -> r12 "field V38._reference (fldOffset=0x0)" P-INDEP
+; V63 tmp40 [V63,T34] ( 2, 1 ) int -> rdi "field V38._length (fldOffset=0x8)" P-INDEP
+; V64 tmp41 [V64,T32] ( 2, 1 ) byref -> r12 single-def "field V39._reference (fldOffset=0x0)" P-INDEP
+;* V65 tmp42 [V65,T38] ( 0, 0 ) int -> zero-ref single-def "field V39._length (fldOffset=0x8)" P-INDEP
+; V66 tmp43 [V66,T28] ( 2, 2 ) byref -> r12 single-def "field V40._reference (fldOffset=0x0)" P-INDEP
+;* V67 tmp44 [V67,T35] ( 0, 0 ) int -> zero-ref single-def "field V40._length (fldOffset=0x8)" P-INDEP
+; V68 tmp45 [V68,T29] ( 2, 2 ) byref -> rcx single-def "field V42._reference (fldOffset=0x0)" P-INDEP
+;* V69 tmp46 [V69,T36] ( 0, 0 ) int -> zero-ref single-def "field V42._length (fldOffset=0x8)" P-INDEP
+;* V70 tmp47 [V70 ] ( 0, 0 ) byref -> zero-ref "field V44._reference (fldOffset=0x0)" P-INDEP
+;* V71 tmp48 [V71 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP
+;* V72 tmp49 [V72 ] ( 0, 0 ) byref -> zero-ref "field V45._reference (fldOffset=0x0)" P-INDEP
+;* V73 tmp50 [V73 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
+;* V74 tmp51 [V74 ] ( 0, 0 ) byref -> zero-ref "field V46._reference (fldOffset=0x0)" P-INDEP
+;* V75 tmp52 [V75 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP
+;* V76 tmp53 [V76 ] ( 0, 0 ) byref -> zero-ref single-def "field V52._reference (fldOffset=0x0)" P-INDEP
+;* V77 tmp54 [V77 ] ( 0, 0 ) int -> zero-ref single-def "field V52._length (fldOffset=0x8)" P-INDEP
+; V78 tmp55 [V78,T23] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
+; V79 tmp56 [V79,T44] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V80 tmp57 [V80,T45] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V81 tmp58 [V81,T46] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V82 cse0 [V82,T22] ( 3, 4 ) long -> [rbp-0xD0] spill-single-def "CSE #02: conservative"
+; V83 cse1 [V83,T20] ( 5, 5.25) int -> [rbp-0xD4] spill-single-def "CSE #06: moderate"
+; V84 rat0 [V84,T01] ( 7, 21 ) long -> rsi "Widened IV V18"
+; V85 rat1 [V85,T04] ( 6, 20.50) long -> [rbp-0xE0] "Widened IV V20"
+; V86 rat2 [V86,T02] ( 7, 21 ) long -> rsi "Widened IV V19"
;
; Lcl frame size = 232
G_M32498_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 232
lea rbp, [rsp+0x110]
xor eax, eax
mov qword ptr [rbp-0xB8], rax
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0xB0], ymm8
vmovdqu ymmword ptr [rbp-0x90], ymm8
vmovdqu ymmword ptr [rbp-0x70], ymm8
vmovdqu ymmword ptr [rbp-0x50], ymm8
mov qword ptr [rbp-0x30], rax
mov r14, rdi
mov r15, rsi
mov rbx, rdx
;; size=78 bbWeight=1 PerfScore 18.08
G_M32498_IG02:
test r14, r14
je G_M32498_IG42
mov rdi, r15
mov rax, qword ptr [r15]
mov rax, qword ptr [rax+0x70]
call [rax+0x18]System.Type:GetAttributeFlagsImpl():int:this
test al, 128
jne G_M32498_IG43
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
lea rdx, [rbp-0x30]
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:TryGetValue(System.__Canon,byref):ubyte:this
call [rax]System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:TryGetValue(System.__Canon,byref):ubyte:this
test eax, eax
jne SHORT G_M32498_IG04
;; size=66 bbWeight=1 PerfScore 17.25
G_M32498_IG03:
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.ActivatorUtilities:GetOrAddConstructors(System.Type):Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorInfoEx[]
call [rax]Microsoft.Extensions.DependencyInjection.ActivatorUtilities:GetOrAddConstructors(System.Type):Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorInfoEx[]
mov gword ptr [rbp-0x30], rax
;; size=19 bbWeight=0.50 PerfScore 2.25
G_M32498_IG04:
vxorps ymm0, ymm0, ymm0
vmovdqu ymmword ptr [rbp-0x70], ymm0
vmovdqu ymmword ptr [rbp-0x50], ymm0
lea rdi, [rbp-0x30]
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.ActivatorUtilities:<CreateInstance>g__GetMaxArgCount|4_0(byref):int
call [rax]Microsoft.Extensions.DependencyInjection.ActivatorUtilities:<CreateInstance>g__GetMaxArgCount|4_0(byref):int
mov r13d, eax
cmp r13d, 4
- jg SHORT G_M32498_IG06
+ jle SHORT G_M32498_IG06
;; size=39 bbWeight=1 PerfScore 7.58
G_M32498_IG05:
- lea r12, bword ptr [rbp-0x70]
- lea eax, [r13+r13]
- jmp SHORT G_M32498_IG07
- align [0 bytes for IG09]
- ;; size=11 bbWeight=0.50 PerfScore 2.25
-G_M32498_IG06:
lea esi, [r13+r13]
movsxd rsi, esi
mov rdi, 0xD1FFAB1E ; System.Object[]
call CORINFO_HELP_NEWARR_1_OBJ
- lea edi, [r13+r13]
- cmp dword ptr [rax+0x08], edi
- jb G_M32498_IG44
lea r12, bword ptr [rax+0x10]
- mov eax, edi
- ;; size=43 bbWeight=0.50 PerfScore 5.12
+ mov edi, dword ptr [rax+0x08]
+ jmp SHORT G_M32498_IG07
+ align [0 bytes for IG09]
+ ;; size=32 bbWeight=0.50 PerfScore 4.00
+G_M32498_IG06:
+ lea r12, bword ptr [rbp-0x70]
+ mov edi, 8
+ ;; size=9 bbWeight=0.50 PerfScore 0.38
G_M32498_IG07:
- cmp r13d, eax
+ cmp r13d, edi
+ ja G_M32498_IG44
+ mov r11d, r13d
+ mov esi, r13d
+ add r11, rsi
+ mov edi, edi
+ cmp r11, rdi
ja G_M32498_IG44
- mov ecx, r13d
- shl rcx, 3
- mov qword ptr [rbp-0xD0], rcx
- lea rdx, bword ptr [r12+rcx]
- sub eax, r13d
- mov bword ptr [rbp-0x108], rdx
- mov dword ptr [rbp-0xC4], eax
+ mov eax, r13d
+ shl rax, 3
+ mov qword ptr [rbp-0xD0], rax
+ lea rcx, bword ptr [r12+rax]
+ mov bword ptr [rbp-0x108], rcx
+ mov dword ptr [rbp-0xC4], r13d
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [rbp-0x88], xmm0
vmovdqu xmmword ptr [rbp-0x80], xmm0
mov rdi, r14
mov r11, 0xD1FFAB1E ; code for System.IServiceProvider:GetService(System.Type):System.Object:this
mov rsi, 0xD1FFAB1E ; 'Microsoft.Extensions.DependencyInjection.IServiceProviderIsServ'
call [r11]System.IServiceProvider:GetService(System.Type):System.Object:this
mov rsi, rax
mov rdi, 0xD1FFAB1E ; Microsoft.Extensions.DependencyInjection.IServiceProviderIsService
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
call [rax]CORINFO_HELP_CHKCASTINTERFACE
mov gword ptr [rbp-0xF0], rax
test rax, rax
je G_M32498_IG26
- ;; size=127 bbWeight=1 PerfScore 17.83
+ ;; size=145 bbWeight=1 PerfScore 19.83
G_M32498_IG08:
xor esi, esi
mov rdi, gword ptr [rbp-0x30]
cmp dword ptr [rdi+0x08], 0
jle SHORT G_M32498_IG10
;; size=12 bbWeight=0.50 PerfScore 2.62
G_M32498_IG09:
mov rdi, gword ptr [rbp-0x30]
cmp esi, dword ptr [rdi+0x08]
jae G_M32498_IG41
mov rdi, gword ptr [rbp-0x30]
mov rcx, gword ptr [rdi+8*rsi+0x10]
cmp byte ptr [rcx+0x28], 0
jne G_M32498_IG22
inc esi
mov rcx, gword ptr [rbp-0x30]
cmp dword ptr [rcx+0x08], esi
jg SHORT G_M32498_IG09
;; size=43 bbWeight=4 PerfScore 69.00
G_M32498_IG10:
mov dword ptr [rbp-0x9C], -1
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [rbp-0xB8], xmm0
vmovdqu xmmword ptr [rbp-0xB0], xmm0
xor edx, edx
mov dword ptr [rbp-0xBC], edx
xor r8d, r8d
mov rsi, gword ptr [rbp-0x30]
cmp dword ptr [rsi+0x08], 0
jle G_M32498_IG13
;; size=55 bbWeight=0.50 PerfScore 4.92
G_M32498_IG11:
mov rsi, gword ptr [rbp-0x30]
cmp r8d, dword ptr [rsi+0x08]
jae G_M32498_IG41
mov rsi, gword ptr [rbp-0x30]
mov qword ptr [rbp-0xE0], r8
mov rsi, gword ptr [rsi+8*r8+0x10]
mov r9, rsi
mov gword ptr [rbp-0xE8], r9
mov rsi, gword ptr [r9+0x10]
mov esi, dword ptr [rsi+0x08]
- mov esi, r13d
+ mov esi, dword ptr [rbp-0xC4]
mov rdi, r12
- mov r10, 0xD1FFAB1E ; code for System.SpanHelpers:ClearWithReferences(byref,ulong)
- call [r10]System.SpanHelpers:ClearWithReferences(byref,ulong)
+ mov r11, 0xD1FFAB1E ; code for System.SpanHelpers:ClearWithReferences(byref,ulong)
+ call [r11]System.SpanHelpers:ClearWithReferences(byref,ulong)
mov rax, gword ptr [rbp-0xE8]
mov gword ptr [rbp-0x88], rax
mov bword ptr [rbp-0x80], r12
- mov dword ptr [rbp-0x78], r13d
+ mov eax, dword ptr [rbp-0xC4]
+ mov dword ptr [rbp-0x78], eax
lea rdi, [rbp-0x88]
mov rsi, rbx
mov rdx, gword ptr [rbp-0xF0]
- mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorMatcher:Match(System.Object[],Microsoft.Extensions.DependencyInjection.IServiceProviderIsService):int:this
- call [rax]Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorMatcher:Match(System.Object[],Microsoft.Extensions.DependencyInjection.IServiceProviderIsService):int:this
+ mov rcx, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorMatcher:Match(System.Object[],Microsoft.Extensions.DependencyInjection.IServiceProviderIsService):int:this
+ call [rcx]Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorMatcher:Match(System.Object[],Microsoft.Extensions.DependencyInjection.IServiceProviderIsService):int:this
mov ecx, dword ptr [rbp-0x9C]
cmp ecx, eax
- jge G_M32498_IG16
- ;; size=131 bbWeight=4 PerfScore 117.00
+ jge SHORT G_M32498_IG16
+ ;; size=135 bbWeight=4 PerfScore 124.00
G_M32498_IG12:
mov dword ptr [rbp-0x9C], eax
- cmp r13d, dword ptr [rbp-0xC4]
- ja G_M32498_IG48
- mov r9, qword ptr [rbp-0xD0]
- mov rdx, r9
+ mov r8, qword ptr [rbp-0xD0]
+ mov rdx, r8
cmp rdx, 0x4000
ja SHORT G_M32498_IG14
mov rdi, bword ptr [rbp-0x108]
mov rsi, r12
call System.Buffer:__BulkMoveWithWriteBarrier(byref,byref,ulong)
jmp SHORT G_M32498_IG15
- ;; size=55 bbWeight=2 PerfScore 21.50
+ ;; size=42 bbWeight=2 PerfScore 15.50
G_M32498_IG13:
- mov edx, dword ptr [rbp-0xBC]
+ mov edi, dword ptr [rbp-0xBC]
jmp SHORT G_M32498_IG18
align [0 bytes for IG23]
;; size=8 bbWeight=0.25 PerfScore 0.75
G_M32498_IG14:
mov rdi, bword ptr [rbp-0x108]
mov rsi, r12
mov rax, 0xD1FFAB1E ; code for System.Buffer:_BulkMoveWithWriteBarrier(byref,byref,ulong)
call [rax]System.Buffer:_BulkMoveWithWriteBarrier(byref,byref,ulong)
;; size=22 bbWeight=2 PerfScore 9.00
G_M32498_IG15:
mov rsi, gword ptr [rbp-0x88]
mov gword ptr [rbp-0xB8], rsi
mov rsi, bword ptr [rbp-0x108]
mov bword ptr [rbp-0xB0], rsi
- mov edi, dword ptr [rbp-0xC4]
- mov dword ptr [rbp-0xA8], edi
+ mov dword ptr [rbp-0xA8], r13d
xor edx, edx
+ xor edi, edi
jmp SHORT G_M32498_IG17
- ;; size=44 bbWeight=2 PerfScore 16.50
+ ;; size=41 bbWeight=2 PerfScore 15.00
G_M32498_IG16:
cmp ecx, eax
- mov edx, dword ptr [rbp-0xBC]
+ mov edi, dword ptr [rbp-0xBC]
jne SHORT G_M32498_IG21
- mov edx, 1
+ mov edi, 1
mov dword ptr [rbp-0x9C], ecx
mov rsi, bword ptr [rbp-0x108]
- mov edi, dword ptr [rbp-0xC4]
- ;; size=34 bbWeight=2 PerfScore 11.00
+ ;; size=28 bbWeight=2 PerfScore 9.00
G_M32498_IG17:
mov r8, qword ptr [rbp-0xE0]
inc r8d
mov rax, gword ptr [rbp-0x30]
cmp dword ptr [rax+0x08], r8d
jg SHORT G_M32498_IG20
;; size=20 bbWeight=4 PerfScore 25.00
G_M32498_IG18:
cmp dword ptr [rbp-0x9C], -1
je G_M32498_IG26
- test edx, edx
+ test edi, edi
jne G_M32498_IG45
lea rdi, [rbp-0xB8]
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorMatcher:CreateInstance(System.IServiceProvider):System.Object:this
call [rax]Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorMatcher:CreateInstance(System.IServiceProvider):System.Object:this
nop
;; size=44 bbWeight=0.50 PerfScore 4.25
G_M32498_IG19:
add rsp, 232
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
G_M32498_IG20:
- mov dword ptr [rbp-0xBC], edx
+ mov dword ptr [rbp-0xBC], edi
jmp G_M32498_IG11
;; size=11 bbWeight=2 PerfScore 6.00
G_M32498_IG21:
mov dword ptr [rbp-0x9C], ecx
mov rsi, bword ptr [rbp-0x108]
- mov edi, dword ptr [rbp-0xC4]
jmp SHORT G_M32498_IG17
- ;; size=21 bbWeight=1 PerfScore 5.00
+ ;; size=15 bbWeight=1 PerfScore 4.00
G_M32498_IG22:
inc esi
mov rdi, gword ptr [rbp-0x30]
cmp dword ptr [rdi+0x08], esi
jle SHORT G_M32498_IG24
;; size=11 bbWeight=0.50 PerfScore 2.62
G_M32498_IG23:
mov rdi, gword ptr [rbp-0x30]
cmp esi, dword ptr [rdi+0x08]
jae G_M32498_IG41
mov rdi, gword ptr [rbp-0x30]
mov rdi, gword ptr [rdi+8*rsi+0x10]
cmp byte ptr [rdi+0x28], 0
jne G_M32498_IG47
inc esi
mov rdi, gword ptr [rbp-0x30]
cmp dword ptr [rdi+0x08], esi
jg SHORT G_M32498_IG23
;; size=43 bbWeight=4 PerfScore 69.00
G_M32498_IG24:
mov gword ptr [rbp-0xE8], rcx
mov rsi, gword ptr [rcx+0x10]
mov esi, dword ptr [rsi+0x08]
mov esi, r13d
mov rdi, r12
mov rdx, 0xD1FFAB1E ; code for System.SpanHelpers:ClearWithReferences(byref,ulong)
call [rdx]System.SpanHelpers:ClearWithReferences(byref,ulong)
mov r15, gword ptr [rbp-0xE8]
mov gword ptr [rbp-0x88], r15
mov bword ptr [rbp-0x80], r12
mov dword ptr [rbp-0x78], r13d
lea rdi, [rbp-0x88]
mov rsi, rbx
mov rdx, gword ptr [rbp-0xF0]
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorMatcher:Match(System.Object[],Microsoft.Extensions.DependencyInjection.IServiceProviderIsService):int:this
call [rax]Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorMatcher:Match(System.Object[],Microsoft.Extensions.DependencyInjection.IServiceProviderIsService):int:this
cmp eax, -1
je G_M32498_IG46
lea rdi, [rbp-0x88]
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorMatcher:CreateInstance(System.IServiceProvider):System.Object:this
call [rax]Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorMatcher:CreateInstance(System.IServiceProvider):System.Object:this
nop
;; size=115 bbWeight=0.50 PerfScore 11.62
G_M32498_IG25:
add rsp, 232
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
G_M32498_IG26:
cmp dword ptr [rbx+0x08], 0
jne SHORT G_M32498_IG27
mov rax, 0xD1FFAB1E ; 'System.Type[]'
jmp G_M32498_IG38
;; size=21 bbWeight=0.50 PerfScore 3.12
G_M32498_IG27:
mov esi, dword ptr [rbx+0x08]
mov rdi, 0xD1FFAB1E ; System.Type[]
call CORINFO_HELP_NEWARR_1_OBJ
xor ecx, ecx
mov gword ptr [rbp-0xF8], rax
mov edx, dword ptr [rax+0x08]
mov dword ptr [rbp-0xD4], edx
test edx, edx
mov rax, gword ptr [rbp-0xF8]
jle G_M32498_IG38
;; size=51 bbWeight=0.50 PerfScore 4.88
G_M32498_IG28:
cmp dword ptr [rbx+0x08], edx
jl SHORT G_M32498_IG34
;; size=5 bbWeight=0.25 PerfScore 1.00
G_M32498_IG29:
mov dword ptr [rbp-0xC0], ecx
mov edi, ecx
mov rdi, gword ptr [rbx+8*rdi+0x10]
test rdi, rdi
jne SHORT G_M32498_IG31
;; size=18 bbWeight=3.96 PerfScore 17.82
G_M32498_IG30:
xor rsi, rsi
mov gword ptr [rbp-0x100], rsi
jmp SHORT G_M32498_IG32
;; size=11 bbWeight=1.98 PerfScore 6.44
G_M32498_IG31:
mov gword ptr [rbp-0xF8], rax
call System.Object:GetType():System.Type:this
mov gword ptr [rbp-0x100], rax
mov rax, gword ptr [rbp-0xF8]
;; size=26 bbWeight=1.98 PerfScore 7.92
G_M32498_IG32:
movsxd rsi, dword ptr [rbp-0xC0]
mov gword ptr [rbp-0xF8], rax
mov rdi, rax
mov rdx, gword ptr [rbp-0x100]
call CORINFO_HELP_ARRADDR_ST
mov ecx, dword ptr [rbp-0xC0]
inc ecx
cmp dword ptr [rbp-0xD4], ecx
mov rax, gword ptr [rbp-0xF8]
jg SHORT G_M32498_IG29
;; size=52 bbWeight=3.96 PerfScore 45.54
G_M32498_IG33:
jmp G_M32498_IG38
;; size=5 bbWeight=1.98 PerfScore 3.96
G_M32498_IG34:
cmp ecx, dword ptr [rbx+0x08]
jae G_M32498_IG41
mov dword ptr [rbp-0xC0], ecx
mov edi, ecx
mov rdi, gword ptr [rbx+8*rdi+0x10]
test rdi, rdi
jne SHORT G_M32498_IG36
;; size=27 bbWeight=0.04 PerfScore 0.34
G_M32498_IG35:
xor rdi, rdi
xor rsi, rsi
mov gword ptr [rbp-0x100], rsi
jmp SHORT G_M32498_IG37
;; size=13 bbWeight=0.02 PerfScore 0.07
G_M32498_IG36:
mov gword ptr [rbp-0xF8], rax
call System.Object:GetType():System.Type:this
mov gword ptr [rbp-0x100], rax
mov rax, gword ptr [rbp-0xF8]
;; size=26 bbWeight=0.02 PerfScore 0.08
G_M32498_IG37:
movsxd rsi, dword ptr [rbp-0xC0]
mov gword ptr [rbp-0xF8], rax
mov rdi, rax
mov rdx, gword ptr [rbp-0x100]
call CORINFO_HELP_ARRADDR_ST
mov r8d, dword ptr [rbp-0xC0]
inc r8d
mov ecx, dword ptr [rbp-0xD4]
cmp ecx, r8d
mov rax, gword ptr [rbp-0xF8]
jg G_M32498_IG40
;; size=61 bbWeight=0.04 PerfScore 0.43
G_M32498_IG38:
lea r8, [rbp-0x98]
lea rcx, [rbp-0x90]
mov rdi, r15
mov rsi, rax
mov rdx, gword ptr [rbp-0x30]
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.ActivatorUtilities:FindApplicableConstructor(System.Type,System.Type[],Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorInfoEx[],byref,byref)
call [rax]Microsoft.Extensions.DependencyInjection.ActivatorUtilities:FindApplicableConstructor(System.Type,System.Type[],Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorInfoEx[],byref,byref)
mov rdi, gword ptr [rbp-0x90]
mov rsi, gword ptr [rbp-0x30]
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.ActivatorUtilities:FindConstructorEx(System.Reflection.ConstructorInfo,Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorInfoEx[]):Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorInfoEx
call [rax]Microsoft.Extensions.DependencyInjection.ActivatorUtilities:FindConstructorEx(System.Reflection.ConstructorInfo,Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorInfoEx[]):Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorInfoEx
mov r15, rax
mov rsi, gword ptr [r15+0x10]
mov esi, dword ptr [rsi+0x08]
mov esi, r13d
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:ClearWithReferences(byref,ulong)
call [rax]System.SpanHelpers:ClearWithReferences(byref,ulong)
mov gword ptr [rbp-0x88], r15
mov bword ptr [rbp-0x80], r12
mov dword ptr [rbp-0x78], r13d
lea rdi, [rbp-0x88]
mov rsi, gword ptr [rbp-0x98]
mov rdx, rbx
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorMatcher:MapParameters(System.Nullable`1[int][],System.Object[]):this
call [rax]Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorMatcher:MapParameters(System.Nullable`1[int][],System.Object[]):this
lea rdi, [rbp-0x88]
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorMatcher:CreateInstance(System.IServiceProvider):System.Object:this
call [rax]Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorMatcher:CreateInstance(System.IServiceProvider):System.Object:this
nop
;; size=154 bbWeight=1.98 PerfScore 61.87
G_M32498_IG39:
add rsp, 232
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1.98 PerfScore 8.42
G_M32498_IG40:
mov ecx, r8d
jmp G_M32498_IG34
;; size=8 bbWeight=0.02 PerfScore 0.05
G_M32498_IG41:
call CORINFO_HELP_RNGCHKFAIL
;; size=5 bbWeight=0 PerfScore 0.00
G_M32498_IG42:
mov rdi, 0xD1FFAB1E ; System.ArgumentNullException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov edi, 945
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rsi, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:.ctor(System.String):this
call [rax]System.ArgumentNullException:.ctor(System.String):this
mov rdi, r15
call CORINFO_HELP_THROW
;; size=64 bbWeight=0 PerfScore 0.00
G_M32498_IG43:
mov rdi, 0xD1FFAB1E ; System.InvalidOperationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_CannotCreateAbstractClasses():System.String
call [rax]System.SR:get_CannotCreateAbstractClasses():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.InvalidOperationException:.ctor(System.String):this
call [rax]System.InvalidOperationException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
;; size=56 bbWeight=0 PerfScore 0.00
G_M32498_IG44:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M32498_IG45:
mov rdi, 0xD1FFAB1E ; System.Int32
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_MultipleCtorsFoundWithBestLength():System.String
call [rax]System.SR:get_MultipleCtorsFoundWithBestLength():System.String
mov r14, rax
mov r13d, dword ptr [rbp-0x9C]
mov dword ptr [rbx+0x08], r13d
mov rdi, 0xD1FFAB1E ; System.InvalidOperationException
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdx, rbx
mov rdi, r14
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object,System.Object):System.String
call [rax]System.SR:Format(System.String,System.Object,System.Object):System.String
mov rsi, rax
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.InvalidOperationException:.ctor(System.String):this
call [rax]System.InvalidOperationException:.ctor(System.String):this
mov rdi, r13
call CORINFO_HELP_THROW
;; size=109 bbWeight=0 PerfScore 0.00
G_M32498_IG46:
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.ActivatorUtilities:ThrowMarkedCtorDoesNotTakeAllProvidedArguments()
call [rax]Microsoft.Extensions.DependencyInjection.ActivatorUtilities:ThrowMarkedCtorDoesNotTakeAllProvidedArguments()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M32498_IG47:
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.ActivatorUtilities:ThrowMultipleCtorsMarkedWithAttributeException()
call [rax]Microsoft.Extensions.DependencyInjection.ActivatorUtilities:ThrowMultipleCtorsMarkedWithAttributeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M32498_IG48:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
- call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1870, prolog size 78, PerfScore 612.35, instruction count 406, allocated bytes for code 1873 (MethodHash=9f15810d) for method Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateInstance(System.IServiceProvider,System.Type,System.Object[]):System.Object (FullOpts)
+; Total bytes of code 1838, prolog size 78, PerfScore 607.85, instruction count 402, allocated bytes for code 1845 (MethodHash=9f15810d) for method Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateInstance(System.IServiceProvider,System.Type,System.Object[]):System.Object (FullOpts)
-14 (-5.93 % of base) - System.Runtime.Loader.AssemblyLoadContext:GetResolvedUnmanagedDll(System.Reflection.Assembly,System.String):long:this
; Assembly listing for method System.Runtime.Loader.AssemblyLoadContext:GetResolvedUnmanagedDll(System.Reflection.Assembly,System.String):long:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T10] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Runtime.Loader.AssemblyLoadContext>
; V01 arg1 [V01,T07] ( 3, 4 ) ref -> rbx class-hnd single-def <System.Reflection.Assembly>
; V02 arg2 [V02,T08] ( 3, 4 ) ref -> r15 class-hnd single-def <System.String>
; V03 loc0 [V03 ] ( 8, 33 ) struct (24) [rbp-0x40] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Delegate+InvocationListEnumerator`1[System.Func`3[System.Reflection.Assembly,System.String,long]]>
;* V04 loc1 [V04 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Delegate+InvocationListEnumerator`1[System.Func`3[System.Reflection.Assembly,System.String,long]]>
; V05 loc2 [V05,T09] ( 3, 6 ) ref -> rax class-hnd <System.Func`3[System.Reflection.Assembly,System.String,long]>
; V06 loc3 [V06,T11] ( 3, 4.50) long -> rax
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08,T12] ( 2, 4 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.Func`3[System.Reflection.Assembly,System.String,long]>
;* V09 tmp2 [V09 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Delegate+InvocationListEnumerator`1[System.Func`3[System.Reflection.Assembly,System.String,long]]>
;* V10 tmp3 [V10,T06] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V11 tmp4 [V11,T01] ( 6, 34 ) int -> r14 "Inline stloc first use temp"
; V12 tmp5 [V12,T00] ( 5, 84 ) ref -> r13 class-hnd "dup spill" <System.MulticastDelegate>
; V13 tmp6 [V13,T04] ( 2, 16 ) byref -> r12
;* V14 tmp7 [V14 ] ( 0, 0 ) ref -> zero-ref
;* V15 tmp8 [V15 ] ( 0, 0 ) byref -> zero-ref
; V16 tmp9 [V16,T02] ( 4, 20 ) ref -> rax
;* V17 tmp10 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Func`3[System.Reflection.Assembly,System.String,long]>
;* V18 tmp11 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Func`3[System.Reflection.Assembly,System.String,long]>
; V19 tmp12 [V19,T03] ( 4, 20 ) ref -> rax class-hnd "Inline return value spill temp" <System.Object>
; V20 tmp13 [V20,T05] ( 4, 8 ) ref -> rax class-hnd "Inline stloc first use temp" <System.Object[]>
;* V21 tmp14 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V22 tmp15 [V22 ] ( 3, 17 ) ref -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V03._delegate (fldOffset=0x0)" P-DEP
; V23 tmp16 [V23 ] ( 3, 11 ) ref -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V03._current (fldOffset=0x8)" P-DEP
; V24 tmp17 [V24 ] ( 4, 21 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V03._index (fldOffset=0x10)" P-DEP
;* V25 tmp18 [V25 ] ( 0, 0 ) ref -> zero-ref "field V04._delegate (fldOffset=0x0)" P-INDEP
;* V26 tmp19 [V26 ] ( 0, 0 ) ref -> zero-ref "field V04._current (fldOffset=0x8)" P-INDEP
;* V27 tmp20 [V27 ] ( 0, 0 ) int -> zero-ref "field V04._index (fldOffset=0x10)" P-INDEP
; V28 tmp21 [V28,T13] ( 2, 2 ) ref -> rsi single-def "field V09._delegate (fldOffset=0x0)" P-INDEP
;* V29 tmp22 [V29,T14] ( 0, 0 ) ref -> zero-ref single-def "field V09._current (fldOffset=0x8)" P-INDEP
;* V30 tmp23 [V30,T15] ( 0, 0 ) int -> zero-ref "field V09._index (fldOffset=0x10)" P-INDEP
;
; Lcl frame size = 24
G_M27358_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
lea rbp, [rsp+0x40]
vxorps xmm8, xmm8, xmm8
vmovdqa xmmword ptr [rbp-0x40], xmm8
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov rbx, rsi
mov r15, rdx
;; size=41 bbWeight=1 PerfScore 10.83
G_M27358_IG02:
mov rsi, gword ptr [rdi+0x10]
mov gword ptr [rbp-0x40], rsi
xor rsi, rsi
mov gword ptr [rbp-0x38], rsi
mov dword ptr [rbp-0x30], -1
jmp SHORT G_M27358_IG04
;; size=23 bbWeight=1 PerfScore 7.25
G_M27358_IG03:
mov rax, gword ptr [rbp-0x38]
mov rsi, rbx
mov rdx, r15
mov rdi, gword ptr [rax+0x08]
call [rax+0x18]System.Func`3[System.__Canon,System.__Canon,long]:Invoke(System.__Canon,System.__Canon):long:this
test rax, rax
- jne G_M27358_IG15
- ;; size=26 bbWeight=2 PerfScore 15.50
+ jne SHORT G_M27358_IG15
+ ;; size=22 bbWeight=2 PerfScore 15.50
G_M27358_IG04:
mov r14d, dword ptr [rbp-0x30]
inc r14d
mov r13, gword ptr [rbp-0x40]
lea r12, bword ptr [rbp-0x40]
test r13, r13
jne SHORT G_M27358_IG06
;; size=20 bbWeight=8 PerfScore 32.00
G_M27358_IG05:
xor rax, rax
jmp SHORT G_M27358_IG11
;; size=4 bbWeight=2 PerfScore 4.50
G_M27358_IG06:
mov rsi, gword ptr [r13+0x28]
mov rdi, 0xD1FFAB1E ; System.Object[]
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFARRAY
- call [rax]CORINFO_HELP_ISINSTANCEOFARRAY
+ call CORINFO_HELP_ISINSTANCEOFARRAY
test rax, rax
jne SHORT G_M27358_IG09
test r14d, r14d
je SHORT G_M27358_IG08
- ;; size=36 bbWeight=2 PerfScore 16.00
+ ;; size=29 bbWeight=2 PerfScore 11.50
G_M27358_IG07:
xor rax, rax
jmp SHORT G_M27358_IG11
;; size=4 bbWeight=8 PerfScore 18.00
G_M27358_IG08:
mov rax, r13
jmp SHORT G_M27358_IG11
;; size=5 bbWeight=8 PerfScore 18.00
G_M27358_IG09:
cmp r14d, dword ptr [r13+0x30]
jae SHORT G_M27358_IG07
;; size=6 bbWeight=16 PerfScore 64.00
G_M27358_IG10:
cmp r14d, dword ptr [rax+0x08]
jae SHORT G_M27358_IG16
mov esi, r14d
mov rax, gword ptr [rax+8*rsi+0x10]
;; size=14 bbWeight=2 PerfScore 12.50
G_M27358_IG11:
mov gword ptr [r12+0x08], rax
test rax, rax
je SHORT G_M27358_IG13
;; size=10 bbWeight=8 PerfScore 18.00
G_M27358_IG12:
mov dword ptr [rbp-0x30], r14d
- jmp G_M27358_IG03
- ;; size=9 bbWeight=4 PerfScore 12.00
+ jmp SHORT G_M27358_IG03
+ ;; size=6 bbWeight=4 PerfScore 12.00
G_M27358_IG13:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M27358_IG14:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M27358_IG15:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M27358_IG16:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 236, prolog size 35, PerfScore 232.96, instruction count 77, allocated bytes for code 236 (MethodHash=16d79521) for method System.Runtime.Loader.AssemblyLoadContext:GetResolvedUnmanagedDll(System.Reflection.Assembly,System.String):long:this (FullOpts)
+; Total bytes of code 222, prolog size 35, PerfScore 228.46, instruction count 76, allocated bytes for code 222 (MethodHash=16d79521) for method System.Runtime.Loader.AssemblyLoadContext:GetResolvedUnmanagedDll(System.Reflection.Assembly,System.String):long:this (FullOpts)
-11 (-1.25 % of base) - System.Runtime.Loader.AssemblyLoadContext:GetFirstResolvedAssemblyFromResolvingEvent(System.Reflection.AssemblyName):System.Reflection.Assembly:this
; Assembly listing for method System.Runtime.Loader.AssemblyLoadContext:GetFirstResolvedAssemblyFromResolvingEvent(System.Reflection.AssemblyName):System.Reflection.Assembly:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 15 single block inlinees; 10 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T05] ( 8, 13 ) ref -> [rbp-0x78] this class-hnd single-def <System.Runtime.Loader.AssemblyLoadContext>
; V01 arg1 [V01,T11] ( 4, 6 ) ref -> [rbp-0x80] class-hnd single-def <System.Reflection.AssemblyName>
; V02 loc0 [V02 ] ( 8, 33 ) struct (24) [rbp-0x40] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Delegate+InvocationListEnumerator`1[System.Func`3[System.Runtime.Loader.AssemblyLoadContext,System.Reflection.AssemblyName,System.Reflection.Assembly]]>
;* V03 loc1 [V03 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Delegate+InvocationListEnumerator`1[System.Func`3[System.Runtime.Loader.AssemblyLoadContext,System.Reflection.AssemblyName,System.Reflection.Assembly]]>
; V04 loc2 [V04,T12] ( 4, 8 ) ref -> r13 class-hnd <System.Func`3[System.Runtime.Loader.AssemblyLoadContext,System.Reflection.AssemblyName,System.Reflection.Assembly]>
; V05 loc3 [V05,T06] ( 8, 14.50) ref -> [rbp-0x88] class-hnd <System.Reflection.Assembly>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T07] ( 3, 12 ) ref -> [rbp-0x90] class-hnd exact spill-single-def "impAppendStmt" <System.String>
; V08 tmp2 [V08,T08] ( 3, 12 ) ref -> r13 class-hnd exact "impAppendStmt" <System.String>
;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref
;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref
;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref
; V13 tmp7 [V13,T13] ( 4, 8 ) ref -> [rbp-0x98]
;* V14 tmp8 [V14 ] ( 0, 0 ) ref -> zero-ref
;* V15 tmp9 [V15 ] ( 0, 0 ) ref -> zero-ref
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref
;* V17 tmp11 [V17 ] ( 0, 0 ) ref -> zero-ref
;* V18 tmp12 [V18 ] ( 0, 0 ) ref -> zero-ref
;* V19 tmp13 [V19 ] ( 0, 0 ) ref -> zero-ref
; V20 tmp14 [V20,T14] ( 4, 8 ) ref -> [rbp-0xA0]
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref
;* V22 tmp16 [V22 ] ( 0, 0 ) ref -> zero-ref
;* V23 tmp17 [V23 ] ( 0, 0 ) ref -> zero-ref
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref
;* V25 tmp19 [V25 ] ( 0, 0 ) ref -> zero-ref
;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref
;* V27 tmp21 [V27 ] ( 0, 0 ) ref -> zero-ref
;* V28 tmp22 [V28 ] ( 0, 0 ) ref -> zero-ref
; V29 tmp23 [V29,T15] ( 3, 6 ) ref -> rax
; V30 tmp24 [V30,T31] ( 2, 4 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.Func`3[System.Runtime.Loader.AssemblyLoadContext,System.Reflection.AssemblyName,System.Reflection.Assembly]>
;* V31 tmp25 [V31 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Delegate+InvocationListEnumerator`1[System.Func`3[System.Runtime.Loader.AssemblyLoadContext,System.Reflection.AssemblyName,System.Reflection.Assembly]]>
;* V32 tmp26 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V33 tmp27 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V34 tmp28 [V34 ] ( 2, 4 ) byref -> [rbp-0x48] must-init pinned "Inline stloc first use temp"
;* V35 tmp29 [V35 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V36 tmp30 [V36 ] ( 2, 4 ) byref -> [rbp-0x50] must-init pinned "Inline stloc first use temp"
;* V37 tmp31 [V37 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V38 tmp32 [V38 ] ( 2, 4 ) byref -> [rbp-0x58] must-init pinned "Inline stloc first use temp"
;* V39 tmp33 [V39 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V40 tmp34 [V40 ] ( 2, 4 ) byref -> [rbp-0x60] must-init pinned "Inline stloc first use temp"
;* V41 tmp35 [V41 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V42 tmp36 [V42 ] ( 2, 4 ) byref -> [rbp-0x68] must-init pinned "Inline stloc first use temp"
;* V43 tmp37 [V43 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V44 tmp38 [V44 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V45 tmp39 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
; V46 tmp40 [V46,T16] ( 4, 8 ) byref -> r8 "Inline return value spill temp"
; V47 tmp41 [V47,T17] ( 4, 8 ) byref -> rcx "Inline return value spill temp"
; V48 tmp42 [V48,T18] ( 4, 8 ) byref -> rdx "Inline return value spill temp"
; V49 tmp43 [V49,T19] ( 4, 8 ) byref -> rsi "Inline return value spill temp"
; V50 tmp44 [V50,T20] ( 4, 8 ) byref -> r13 "Inline return value spill temp"
;* V51 tmp45 [V51 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V52 tmp46 [V52,T23] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V53 tmp47 [V53,T01] ( 6, 34 ) int -> r13 "Inline stloc first use temp"
; V54 tmp48 [V54,T00] ( 5, 84 ) ref -> r12 class-hnd "dup spill" <System.MulticastDelegate>
; V55 tmp49 [V55,T04] ( 2, 16 ) byref -> [rbp-0xA8] spill-single-def
;* V56 tmp50 [V56 ] ( 0, 0 ) ref -> zero-ref
;* V57 tmp51 [V57 ] ( 0, 0 ) byref -> zero-ref
; V58 tmp52 [V58,T02] ( 4, 20 ) ref -> rcx
;* V59 tmp53 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Func`3[System.Runtime.Loader.AssemblyLoadContext,System.Reflection.AssemblyName,System.Reflection.Assembly]>
;* V60 tmp54 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Func`3[System.Runtime.Loader.AssemblyLoadContext,System.Reflection.AssemblyName,System.Reflection.Assembly]>
; V61 tmp55 [V61,T03] ( 4, 20 ) ref -> rcx class-hnd "Inline return value spill temp" <System.Object>
; V62 tmp56 [V62,T21] ( 4, 8 ) ref -> rax class-hnd "Inline stloc first use temp" <System.Object[]>
;* V63 tmp57 [V63 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V64 tmp58 [V64,T30] ( 3, 4 ) ref -> rax "Single return block return value"
; V65 FramesRoot [V65,T10] ( 6, 10 ) long -> r14 "Pinvoke FrameListRoot"
; V66 PInvokeFrame [V66 ] ( 8, 12 ) struct (72) [rbp-0xF0] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
; V67 tmp61 [V67 ] ( 3, 17 ) ref -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V02._delegate (fldOffset=0x0)" P-DEP
; V68 tmp62 [V68 ] ( 3, 11 ) ref -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V02._current (fldOffset=0x8)" P-DEP
; V69 tmp63 [V69 ] ( 4, 21 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V02._index (fldOffset=0x10)" P-DEP
;* V70 tmp64 [V70 ] ( 0, 0 ) ref -> zero-ref "field V03._delegate (fldOffset=0x0)" P-INDEP
;* V71 tmp65 [V71 ] ( 0, 0 ) ref -> zero-ref "field V03._current (fldOffset=0x8)" P-INDEP
;* V72 tmp66 [V72 ] ( 0, 0 ) int -> zero-ref "field V03._index (fldOffset=0x10)" P-INDEP
; V73 tmp67 [V73,T32] ( 2, 2 ) ref -> rsi single-def "field V31._delegate (fldOffset=0x0)" P-INDEP
;* V74 tmp68 [V74,T33] ( 0, 0 ) ref -> zero-ref single-def "field V31._current (fldOffset=0x8)" P-INDEP
;* V75 tmp69 [V75,T34] ( 0, 0 ) int -> zero-ref "field V31._index (fldOffset=0x10)" P-INDEP
; V76 tmp70 [V76,T09] ( 3, 12 ) ref -> rax "argument with side effect"
; V77 tmp71 [V77,T24] ( 2, 8 ) long -> r8 "Cast away GC"
; V78 tmp72 [V78,T25] ( 2, 8 ) long -> rcx "Cast away GC"
; V79 tmp73 [V79,T26] ( 2, 8 ) long -> rdx "Cast away GC"
; V80 tmp74 [V80,T27] ( 2, 8 ) long -> rsi "Cast away GC"
; V81 tmp75 [V81,T28] ( 2, 8 ) long -> rdi "Cast away GC"
; V82 tmp76 [V82,T29] ( 2, 8 ) long -> rdi "argument with side effect"
; V83 cse0 [V83,T22] ( 4, 8 ) long -> [rbp-0x70] spill-single-def "CSE #02: moderate"
;
; Lcl frame size = 200
G_M53640_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 200
vzeroupper
lea rbp, [rsp+0xF0]
xor ecx, ecx
mov qword ptr [rbp-0x68], rcx
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x60], ymm8
vmovdqa xmmword ptr [rbp-0x40], xmm8
mov qword ptr [rbp-0x30], rcx
mov rbx, rdi
mov r15, rsi
;; size=59 bbWeight=1 PerfScore 14.83
G_M53640_IG02:
lea rdi, [rbp-0xE8]
mov rsi, r10
call CORINFO_HELP_INIT_PINVOKE_FRAME
mov r14, rax
mov rsi, rsp
mov qword ptr [rbp-0xC8], rsi
mov rsi, rbp
mov qword ptr [rbp-0xB8], rsi
mov rsi, gword ptr [rbx+0x18]
mov gword ptr [rbp-0x40], rsi
xor rsi, rsi
mov gword ptr [rbp-0x38], rsi
mov dword ptr [rbp-0x30], -1
jmp G_M53640_IG29
;; size=64 bbWeight=1 PerfScore 11.75
G_M53640_IG03:
mov r13, gword ptr [rbp-0x38]
mov rsi, rbx
mov rdx, r15
mov rdi, gword ptr [r13+0x08]
call [r13+0x18]System.Func`3[System.__Canon,System.__Canon,System.__Canon]:Invoke(System.__Canon,System.__Canon):System.__Canon:this
mov r12, rax
call System.Runtime.Loader.AssemblyLoadContext:IsTracingEnabled():ubyte
test eax, eax
je G_M53640_IG28
mov gword ptr [rbp-0x80], r15
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Reflection.AssemblyName:get_FullName():System.String:this
cmp dword ptr [rdi], edi
call [rax]System.Reflection.AssemblyName:get_FullName():System.String:this
mov gword ptr [rbp-0x90], rax
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:GetMethodImpl():System.Reflection.MethodInfo:this
cmp dword ptr [rdi], edi
call [rax]System.MulticastDelegate:GetMethodImpl():System.Reflection.MethodInfo:this
mov rdi, rax
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x40]
call [rax+0x30]System.Reflection.MemberInfo:get_Name():System.String:this
mov r13, rax
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M53640_IG42
;; size=114 bbWeight=2 PerfScore 71.50
G_M53640_IG04:
mov rdi, 0xD1FFAB1E ; data for System.Runtime.Loader.DefaultAssemblyLoadContext:s_loadContext
cmp rbx, gword ptr [rdi]
jne SHORT G_M53640_IG05
mov rax, gword ptr [rbx+0x28]
mov rdx, rax
jmp SHORT G_M53640_IG06
;; size=24 bbWeight=2 PerfScore 17.00
G_M53640_IG05:
mov rdi, rbx
mov gword ptr [rbp-0x78], rbx
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x40]
call [rax+0x08]System.Object:ToString():System.String:this
mov gword ptr [rbp-0x98], rax
mov rdx, gword ptr [rbp-0x98]
mov rbx, gword ptr [rbp-0x78]
;; size=35 bbWeight=2 PerfScore 22.50
G_M53640_IG06:
test r12, r12
jne SHORT G_M53640_IG07
xor rax, rax
xor rcx, rcx
jmp SHORT G_M53640_IG10
;; size=11 bbWeight=2 PerfScore 7.50
G_M53640_IG07:
mov gword ptr [rbp-0x98], rdx
mov rdi, r12
mov rax, qword ptr [r12]
mov rax, qword ptr [rax+0x48]
mov qword ptr [rbp-0x70], rax
call [rax+0x18]System.Reflection.Assembly:get_FullName():System.String:this
mov gword ptr [rbp-0xA0], rax
mov rdi, r12
mov rax, qword ptr [rbp-0x70]
call [rax+0x28]System.Reflection.Assembly:get_IsDynamic():ubyte:this
test eax, eax
jne SHORT G_M53640_IG09
mov gword ptr [rbp-0x88], r12
mov rdi, r12
mov rax, qword ptr [rbp-0x70]
call [rax+0x30]System.Reflection.Assembly:get_Location():System.String:this
test rax, rax
je SHORT G_M53640_IG08
add rax, 12
mov r8, rax
jmp SHORT G_M53640_IG11
;; size=77 bbWeight=2 PerfScore 49.50
G_M53640_IG08:
mov rcx, gword ptr [rbp-0xA0]
mov rdx, gword ptr [rbp-0x98]
mov r12, gword ptr [rbp-0x88]
jmp SHORT G_M53640_IG10
;; size=23 bbWeight=1 PerfScore 5.00
G_M53640_IG09:
mov rcx, gword ptr [rbp-0xA0]
mov rdx, gword ptr [rbp-0x98]
;; size=14 bbWeight=1 PerfScore 2.00
G_M53640_IG10:
xor r8d, r8d
mov gword ptr [rbp-0x88], r12
mov gword ptr [rbp-0x98], rdx
mov gword ptr [rbp-0xA0], rcx
;; size=24 bbWeight=2 PerfScore 6.50
G_M53640_IG11:
mov bword ptr [rbp-0x48], r8
mov rcx, gword ptr [rbp-0xA0]
test rcx, rcx
je SHORT G_M53640_IG12
add rcx, 12
jmp SHORT G_M53640_IG13
;; size=22 bbWeight=2 PerfScore 11.00
G_M53640_IG12:
xor ecx, ecx
;; size=2 bbWeight=2 PerfScore 0.50
G_M53640_IG13:
mov bword ptr [rbp-0x50], rcx
mov rdx, gword ptr [rbp-0x98]
test rdx, rdx
je SHORT G_M53640_IG14
add rdx, 12
jmp SHORT G_M53640_IG15
;; size=22 bbWeight=2 PerfScore 11.00
G_M53640_IG14:
xor edx, edx
;; size=2 bbWeight=2 PerfScore 0.50
G_M53640_IG15:
mov bword ptr [rbp-0x58], rdx
test r13, r13
je SHORT G_M53640_IG16
add r13, 12
mov rsi, r13
jmp SHORT G_M53640_IG17
;; size=18 bbWeight=2 PerfScore 9.50
G_M53640_IG16:
xor esi, esi
;; size=2 bbWeight=2 PerfScore 0.50
G_M53640_IG17:
mov bword ptr [rbp-0x60], rsi
mov r13, gword ptr [rbp-0x90]
test r13, r13
je SHORT G_M53640_IG18
add r13, 12
mov gword ptr [rbp-0x78], rbx
jmp SHORT G_M53640_IG19
;; size=26 bbWeight=2 PerfScore 13.00
G_M53640_IG18:
xor r13d, r13d
mov gword ptr [rbp-0x78], rbx
;; size=7 bbWeight=2 PerfScore 2.50
G_M53640_IG19:
mov bword ptr [rbp-0x68], r13
mov rdi, r13
mov rax, 0xD1FFAB1E ; function address
mov qword ptr [rbp-0xD8], rax
lea rax, G_M53640_IG22
mov qword ptr [rbp-0xC0], rax
lea rax, bword ptr [rbp-0xE8]
mov qword ptr [r14+0x10], rax
mov byte ptr [r14+0x0C], 0
;; size=54 bbWeight=2 PerfScore 14.00
G_M53640_IG20:
mov rax, 0xD1FFAB1E ; code for System.Runtime.Loader.AssemblyLoadContext:<TraceResolvingHandlerInvoked>g____PInvoke|9_0(ulong,ulong,ulong,ulong,ulong):int
;; size=10 bbWeight=2 PerfScore 0.50
G_M53640_IG21:
call [rax]System.Runtime.Loader.AssemblyLoadContext:<TraceResolvingHandlerInvoked>g____PInvoke|9_0(ulong,ulong,ulong,ulong,ulong):int
;; size=2 bbWeight=2 PerfScore 6.00
G_M53640_IG22:
mov byte ptr [r14+0x0C], 1
mov rcx, 0xD1FFAB1E ; function address
cmp dword ptr [rcx], 0
je SHORT G_M53640_IG23
mov rdi, 0xD1FFAB1E
call [rdi]CORINFO_HELP_STOP_FOR_GC
;; size=32 bbWeight=2 PerfScore 17.00
G_M53640_IG23:
mov rax, bword ptr [rbp-0xE0]
mov qword ptr [r14+0x10], rax
xor eax, eax
mov bword ptr [rbp-0x68], rax
;; size=17 bbWeight=2 PerfScore 6.50
G_M53640_IG24:
mov bword ptr [rbp-0x60], rax
;; size=4 bbWeight=2 PerfScore 2.00
G_M53640_IG25:
mov bword ptr [rbp-0x58], rax
;; size=4 bbWeight=2 PerfScore 2.00
G_M53640_IG26:
mov bword ptr [rbp-0x50], rax
;; size=4 bbWeight=2 PerfScore 2.00
G_M53640_IG27:
mov bword ptr [rbp-0x48], rax
mov rbx, gword ptr [rbp-0x78]
mov r12, gword ptr [rbp-0x88]
mov r15, gword ptr [rbp-0x80]
;; size=19 bbWeight=2 PerfScore 8.00
G_M53640_IG28:
test r12, r12
- jne G_M53640_IG39
- ;; size=9 bbWeight=2 PerfScore 2.50
+ jne SHORT G_M53640_IG39
+ ;; size=5 bbWeight=2 PerfScore 2.50
G_M53640_IG29:
mov r13d, dword ptr [rbp-0x30]
inc r13d
mov r12, gword ptr [rbp-0x40]
lea rax, bword ptr [rbp-0x40]
mov bword ptr [rbp-0xA8], rax
test r12, r12
jne SHORT G_M53640_IG31
;; size=27 bbWeight=8 PerfScore 40.00
G_M53640_IG30:
xor rcx, rcx
jmp SHORT G_M53640_IG36
;; size=4 bbWeight=2 PerfScore 4.50
G_M53640_IG31:
mov rsi, gword ptr [r12+0x28]
mov rdi, 0xD1FFAB1E ; System.Object[]
- mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFARRAY
- call [rcx]CORINFO_HELP_ISINSTANCEOFARRAY
+ call CORINFO_HELP_ISINSTANCEOFARRAY
test rax, rax
jne SHORT G_M53640_IG34
test r13d, r13d
je SHORT G_M53640_IG33
- ;; size=37 bbWeight=2 PerfScore 16.00
+ ;; size=30 bbWeight=2 PerfScore 11.50
G_M53640_IG32:
xor rcx, rcx
jmp SHORT G_M53640_IG36
;; size=4 bbWeight=8 PerfScore 18.00
G_M53640_IG33:
mov rcx, r12
jmp SHORT G_M53640_IG36
;; size=5 bbWeight=8 PerfScore 18.00
G_M53640_IG34:
cmp r13d, dword ptr [r12+0x30]
jae SHORT G_M53640_IG32
;; size=7 bbWeight=16 PerfScore 64.00
G_M53640_IG35:
cmp r13d, dword ptr [rax+0x08]
jae SHORT G_M53640_IG41
mov ecx, r13d
mov rcx, gword ptr [rax+8*rcx+0x10]
;; size=14 bbWeight=2 PerfScore 12.50
G_M53640_IG36:
mov rax, bword ptr [rbp-0xA8]
mov gword ptr [rax+0x08], rcx
test rcx, rcx
je SHORT G_M53640_IG38
;; size=16 bbWeight=8 PerfScore 26.00
G_M53640_IG37:
mov dword ptr [rbp-0x30], r13d
jmp G_M53640_IG03
;; size=9 bbWeight=4 PerfScore 12.00
G_M53640_IG38:
xor rax, rax
jmp SHORT G_M53640_IG40
;; size=4 bbWeight=0.50 PerfScore 1.12
G_M53640_IG39:
mov rax, r12
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M53640_IG40:
add rsp, 200
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
G_M53640_IG41:
call CORINFO_HELP_RNGCHKFAIL
;; size=5 bbWeight=0 PerfScore 0.00
G_M53640_IG42:
mov rdi, 0xD1FFAB1E
mov esi, 0x4F7
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
jmp G_M53640_IG04
;; size=25 bbWeight=0 PerfScore 0.00
-; Total bytes of code 879, prolog size 53, PerfScore 533.58, instruction count 217, allocated bytes for code 879 (MethodHash=69bc2e77) for method System.Runtime.Loader.AssemblyLoadContext:GetFirstResolvedAssemblyFromResolvingEvent(System.Reflection.AssemblyName):System.Reflection.Assembly:this (FullOpts)
+; Total bytes of code 868, prolog size 53, PerfScore 529.08, instruction count 216, allocated bytes for code 868 (MethodHash=69bc2e77) for method System.Runtime.Loader.AssemblyLoadContext:GetFirstResolvedAssemblyFromResolvingEvent(System.Reflection.AssemblyName):System.Reflection.Assembly:this (FullOpts)
-7 (-0.79 % of base) - System.Runtime.Loader.AssemblyLoadContext:InvokeResolveEvent(System.ResolveEventHandler,System.Reflection.RuntimeAssembly,System.String):System.Reflection.RuntimeAssembly
; Assembly listing for method System.Runtime.Loader.AssemblyLoadContext:InvokeResolveEvent(System.ResolveEventHandler,System.Reflection.RuntimeAssembly,System.String):System.Reflection.RuntimeAssembly (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 15 single block inlinees; 10 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T07] ( 6, 7.50) ref -> [rbp-0x70] class-hnd single-def <System.ResolveEventHandler>
; V01 arg1 [V01,T29] ( 3, 2.50) ref -> r14 class-hnd single-def <System.Reflection.RuntimeAssembly>
; V02 arg2 [V02,T09] ( 5, 6.50) ref -> [rbp-0x78] class-hnd single-def <System.String>
; V03 loc0 [V03,T33] ( 2, 2.50) ref -> [rbp-0x80] class-hnd exact single-def <System.ResolveEventArgs>
; V04 loc1 [V04 ] ( 8, 19.50) struct (24) [rbp-0x40] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Delegate+InvocationListEnumerator`1[System.ResolveEventHandler]>
;* V05 loc2 [V05 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Delegate+InvocationListEnumerator`1[System.ResolveEventHandler]>
; V06 loc3 [V06,T10] ( 4, 8 ) ref -> r14 class-hnd exact <System.ResolveEventHandler>
; V07 loc4 [V07,T04] ( 7, 14 ) ref -> [rbp-0x88] class-hnd spill-single-def <System.Reflection.Assembly>
; V08 loc5 [V08,T30] ( 3, 4.50) ref -> rax class-hnd exact <System.Reflection.RuntimeAssembly>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V10 tmp1 [V10,T31] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.ResolveEventArgs>
;* V11 tmp2 [V11 ] ( 0, 0 ) ref -> zero-ref
; V12 tmp3 [V12,T27] ( 3, 6 ) ref -> r14
;* V13 tmp4 [V13 ] ( 0, 0 ) ref -> zero-ref
;* V14 tmp5 [V14 ] ( 0, 0 ) ref -> zero-ref
; V15 tmp6 [V15,T11] ( 4, 8 ) ref -> [rbp-0x90]
;* V16 tmp7 [V16 ] ( 0, 0 ) ref -> zero-ref
;* V17 tmp8 [V17 ] ( 0, 0 ) ref -> zero-ref
;* V18 tmp9 [V18 ] ( 0, 0 ) ref -> zero-ref
;* V19 tmp10 [V19 ] ( 0, 0 ) ref -> zero-ref
;* V20 tmp11 [V20 ] ( 0, 0 ) ref -> zero-ref
;* V21 tmp12 [V21 ] ( 0, 0 ) ref -> zero-ref
; V22 tmp13 [V22,T12] ( 3, 6 ) ref -> rax
;* V23 tmp14 [V23 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Delegate+InvocationListEnumerator`1[System.ResolveEventHandler]>
; V24 tmp15 [V24,T28] ( 2, 4 ) ubyte -> rax "Inline return value spill temp"
; V25 tmp16 [V25,T03] ( 4, 16 ) ref -> rdi class-hnd exact "Inlining Arg" <System.ResolveEventHandler>
;* V26 tmp17 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V27 tmp18 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V28 tmp19 [V28 ] ( 2, 4 ) byref -> [rbp-0x48] must-init pinned "Inline stloc first use temp"
;* V29 tmp20 [V29 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V30 tmp21 [V30 ] ( 2, 4 ) byref -> [rbp-0x50] must-init pinned "Inline stloc first use temp"
;* V31 tmp22 [V31 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V32 tmp23 [V32 ] ( 2, 4 ) byref -> [rbp-0x58] must-init pinned "Inline stloc first use temp"
;* V33 tmp24 [V33 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V34 tmp25 [V34 ] ( 2, 4 ) byref -> [rbp-0x60] must-init pinned "Inline stloc first use temp"
;* V35 tmp26 [V35 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V36 tmp27 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V37 tmp28 [V37 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
; V38 tmp29 [V38,T13] ( 4, 8 ) byref -> rcx "Inline return value spill temp"
; V39 tmp30 [V39,T14] ( 4, 8 ) byref -> rdx "Inline return value spill temp"
; V40 tmp31 [V40,T15] ( 4, 8 ) byref -> rsi "Inline return value spill temp"
; V41 tmp32 [V41,T16] ( 4, 8 ) byref -> rdi "Inline return value spill temp"
;* V42 tmp33 [V42 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V43 tmp34 [V43,T21] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V44 tmp35 [V44,T01] ( 6, 30 ) int -> r14 "Inline stloc first use temp"
; V45 tmp36 [V45,T00] ( 5, 68 ) ref -> [rbp-0x98] class-hnd spill-single-def "dup spill" <System.MulticastDelegate>
; V46 tmp37 [V46,T19] ( 2, 8 ) byref -> [rbp-0xA0] spill-single-def
;* V47 tmp38 [V47 ] ( 0, 0 ) ref -> zero-ref
;* V48 tmp39 [V48 ] ( 0, 0 ) byref -> zero-ref
; V49 tmp40 [V49,T05] ( 4, 12 ) ref -> rdx
;* V50 tmp41 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.ResolveEventHandler>
;* V51 tmp42 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.ResolveEventHandler>
; V52 tmp43 [V52,T02] ( 4, 20 ) ref -> rdx class-hnd "Inline return value spill temp" <System.Object>
; V53 tmp44 [V53,T17] ( 4, 8 ) ref -> rax class-hnd "Inline stloc first use temp" <System.Object[]>
;* V54 tmp45 [V54 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V55 tmp46 [V55,T32] ( 3, 4 ) ref -> rax "Single return block return value"
; V56 FramesRoot [V56,T08] ( 6, 10 ) long -> r13 "Pinvoke FrameListRoot"
; V57 PInvokeFrame [V57 ] ( 8, 12 ) struct (72) [rbp-0xE8] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
; V58 tmp49 [V58 ] ( 3, 8.50) ref -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V04._delegate (fldOffset=0x0)" P-DEP
; V59 tmp50 [V59 ] ( 3, 6.50) ref -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V04._current (fldOffset=0x8)" P-DEP
; V60 tmp51 [V60 ] ( 4, 12.50) int -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V04._index (fldOffset=0x10)" P-DEP
;* V61 tmp52 [V61 ] ( 0, 0 ) ref -> zero-ref "field V05._delegate (fldOffset=0x0)" P-INDEP
;* V62 tmp53 [V62 ] ( 0, 0 ) ref -> zero-ref "field V05._current (fldOffset=0x8)" P-INDEP
;* V63 tmp54 [V63 ] ( 0, 0 ) int -> zero-ref "field V05._index (fldOffset=0x10)" P-INDEP
;* V64 tmp55 [V64,T34] ( 0, 0 ) ref -> zero-ref single-def "field V23._delegate (fldOffset=0x0)" P-INDEP
;* V65 tmp56 [V65,T35] ( 0, 0 ) ref -> zero-ref single-def "field V23._current (fldOffset=0x8)" P-INDEP
;* V66 tmp57 [V66,T36] ( 0, 0 ) int -> zero-ref "field V23._index (fldOffset=0x10)" P-INDEP
; V67 tmp58 [V67,T20] ( 2, 8 ) ref -> rsi "argument with side effect"
; V68 tmp59 [V68,T06] ( 3, 12 ) ref -> rax "argument with side effect"
; V69 tmp60 [V69,T22] ( 2, 8 ) long -> rcx "Cast away GC"
; V70 tmp61 [V70,T23] ( 2, 8 ) long -> rdx "Cast away GC"
; V71 tmp62 [V71,T24] ( 2, 8 ) long -> rsi "Cast away GC"
; V72 tmp63 [V72,T25] ( 2, 8 ) long -> rdi "Cast away GC"
; V73 tmp64 [V73,T26] ( 2, 8 ) long -> rdi "argument with side effect"
; V74 cse0 [V74,T18] ( 4, 8 ) long -> [rbp-0x68] spill-single-def "CSE #02: moderate"
;
; Lcl frame size = 200
G_M55783_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 200
vzeroupper
lea rbp, [rsp+0xF0]
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x60], ymm8
vmovdqa xmmword ptr [rbp-0x40], xmm8
xor ecx, ecx
mov qword ptr [rbp-0x30], rcx
mov rbx, rdi
mov r14, rsi
mov r15, rdx
;; size=58 bbWeight=1 PerfScore 14.08
G_M55783_IG02:
lea rdi, [rbp-0xE0]
mov rsi, r10
call CORINFO_HELP_INIT_PINVOKE_FRAME
mov r13, rax
mov rdi, rsp
mov qword ptr [rbp-0xC0], rdi
mov rdi, rbp
mov qword ptr [rbp-0xB0], rdi
test rbx, rbx
jne SHORT G_M55783_IG04
;; size=43 bbWeight=1 PerfScore 5.75
G_M55783_IG03:
xor rax, rax
jmp G_M55783_IG37
;; size=7 bbWeight=0.50 PerfScore 1.12
G_M55783_IG04:
mov rdi, 0xD1FFAB1E ; System.ResolveEventArgs
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r12+0x10]
mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
mov gword ptr [rbp-0x40], rbx
xor rsi, rsi
mov gword ptr [rbp-0x38], rsi
mov dword ptr [rbp-0x30], -1
jmp G_M55783_IG29
;; size=66 bbWeight=0.50 PerfScore 5.12
G_M55783_IG05:
mov r14, gword ptr [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.AppDomain:get_CurrentDomain():System.AppDomain
call [rax]System.AppDomain:get_CurrentDomain():System.AppDomain
mov rsi, rax
mov gword ptr [rbp-0x80], r12
mov rdx, r12
mov rdi, gword ptr [r14+0x08]
call [r14+0x18]System.ResolveEventHandler:Invoke(System.Object,System.ResolveEventArgs):System.Reflection.Assembly:this
mov gword ptr [rbp-0x88], rax
mov rdi, 0xD1FFAB1E ; data for System.Runtime.Loader.AssemblyLoadContext:AssemblyResolve
mov rdi, gword ptr [rdi]
test rdi, rdi
je SHORT G_M55783_IG09
cmp rdi, rbx
je SHORT G_M55783_IG06
mov gword ptr [rbp-0x70], rbx
mov rsi, rbx
mov rcx, 0xD1FFAB1E ; code for System.MulticastDelegate:Equals(System.Object):ubyte:this
call [rcx]System.MulticastDelegate:Equals(System.Object):ubyte:this
test eax, eax
mov rbx, gword ptr [rbp-0x70]
je SHORT G_M55783_IG08
;; size=91 bbWeight=2 PerfScore 46.50
G_M55783_IG06:
call System.Runtime.Loader.AssemblyLoadContext:IsTracingEnabled():ubyte
test eax, eax
je SHORT G_M55783_IG07
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:GetMethodImpl():System.Reflection.MethodInfo:this
cmp dword ptr [rdi], edi
call [rax]System.MulticastDelegate:GetMethodImpl():System.Reflection.MethodInfo:this
mov rdi, rax
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x40]
call [rax+0x30]System.Reflection.MemberInfo:get_Name():System.String:this
mov r14, rax
mov rax, gword ptr [rbp-0x88]
test rax, rax
jne SHORT G_M55783_IG10
xor rcx, rcx
xor rdx, rdx
jmp G_M55783_IG13
;; size=63 bbWeight=2 PerfScore 42.00
G_M55783_IG07:
mov rax, gword ptr [rbp-0x88]
jmp G_M55783_IG28
;; size=12 bbWeight=1 PerfScore 3.00
G_M55783_IG08:
mov rax, gword ptr [rbp-0x88]
jmp G_M55783_IG28
;; size=12 bbWeight=1 PerfScore 3.00
G_M55783_IG09:
mov rax, gword ptr [rbp-0x88]
jmp G_M55783_IG28
;; size=12 bbWeight=1 PerfScore 3.00
G_M55783_IG10:
mov rdi, rax
mov rcx, qword ptr [rax]
mov rcx, qword ptr [rcx+0x48]
mov qword ptr [rbp-0x68], rcx
call [rcx+0x18]System.Reflection.Assembly:get_FullName():System.String:this
mov gword ptr [rbp-0x90], rax
mov rdi, gword ptr [rbp-0x88]
mov rax, qword ptr [rbp-0x68]
call [rax+0x28]System.Reflection.Assembly:get_IsDynamic():ubyte:this
test eax, eax
jne SHORT G_M55783_IG12
mov rdi, gword ptr [rbp-0x88]
mov rax, qword ptr [rbp-0x68]
call [rax+0x30]System.Reflection.Assembly:get_Location():System.String:this
test rax, rax
je SHORT G_M55783_IG11
add rax, 12
mov rcx, rax
mov rax, gword ptr [rbp-0x88]
jmp SHORT G_M55783_IG14
;; size=77 bbWeight=2 PerfScore 50.50
G_M55783_IG11:
mov rax, gword ptr [rbp-0x88]
mov rdx, gword ptr [rbp-0x90]
jmp SHORT G_M55783_IG13
;; size=16 bbWeight=1 PerfScore 4.00
G_M55783_IG12:
mov rax, gword ptr [rbp-0x88]
mov rdx, gword ptr [rbp-0x90]
;; size=14 bbWeight=1 PerfScore 2.00
G_M55783_IG13:
xor ecx, ecx
mov gword ptr [rbp-0x90], rdx
;; size=9 bbWeight=2 PerfScore 2.50
G_M55783_IG14:
mov bword ptr [rbp-0x48], rcx
mov rdx, gword ptr [rbp-0x90]
test rdx, rdx
je SHORT G_M55783_IG15
add rdx, 12
jmp SHORT G_M55783_IG16
;; size=22 bbWeight=2 PerfScore 11.00
G_M55783_IG15:
xor edx, edx
;; size=2 bbWeight=2 PerfScore 0.50
G_M55783_IG16:
mov bword ptr [rbp-0x50], rdx
test r14, r14
je SHORT G_M55783_IG17
add r14, 12
mov rsi, r14
jmp SHORT G_M55783_IG18
;; size=18 bbWeight=2 PerfScore 9.50
G_M55783_IG17:
xor esi, esi
;; size=2 bbWeight=2 PerfScore 0.50
G_M55783_IG18:
mov bword ptr [rbp-0x58], rsi
test r15, r15
je SHORT G_M55783_IG19
mov gword ptr [rbp-0x78], r15
lea rdi, bword ptr [r15+0x0C]
mov gword ptr [rbp-0x70], rbx
jmp SHORT G_M55783_IG20
;; size=23 bbWeight=2 PerfScore 13.50
G_M55783_IG19:
xor edi, edi
mov gword ptr [rbp-0x70], rbx
mov gword ptr [rbp-0x78], r15
;; size=10 bbWeight=2 PerfScore 4.50
G_M55783_IG20:
mov bword ptr [rbp-0x60], rdi
mov r8, 0xD1FFAB1E ; function address
mov qword ptr [rbp-0xD0], r8
lea r8, G_M55783_IG23
mov qword ptr [rbp-0xB8], r8
lea r8, bword ptr [rbp-0xE0]
mov qword ptr [r13+0x10], r8
mov byte ptr [r13+0x0C], 0
;; size=51 bbWeight=2 PerfScore 13.50
G_M55783_IG21:
mov rax, 0xD1FFAB1E ; code for System.Runtime.Loader.AssemblyLoadContext:<TraceAssemblyResolveHandlerInvoked>g____PInvoke|10_0(ulong,ulong,ulong,ulong):int
;; size=10 bbWeight=2 PerfScore 0.50
G_M55783_IG22:
call [rax]System.Runtime.Loader.AssemblyLoadContext:<TraceAssemblyResolveHandlerInvoked>g____PInvoke|10_0(ulong,ulong,ulong,ulong):int
;; size=2 bbWeight=2 PerfScore 6.00
G_M55783_IG23:
mov byte ptr [r13+0x0C], 1
mov rcx, 0xD1FFAB1E ; function address
cmp dword ptr [rcx], 0
je SHORT G_M55783_IG24
mov rdi, 0xD1FFAB1E
call [rdi]CORINFO_HELP_STOP_FOR_GC
;; size=32 bbWeight=2 PerfScore 17.00
G_M55783_IG24:
mov rdi, bword ptr [rbp-0xD8]
mov qword ptr [r13+0x10], rdi
xor edi, edi
mov bword ptr [rbp-0x60], rdi
;; size=17 bbWeight=2 PerfScore 6.50
G_M55783_IG25:
mov bword ptr [rbp-0x58], rdi
;; size=4 bbWeight=2 PerfScore 2.00
G_M55783_IG26:
mov bword ptr [rbp-0x50], rdi
;; size=4 bbWeight=2 PerfScore 2.00
G_M55783_IG27:
mov bword ptr [rbp-0x48], rdi
mov rax, gword ptr [rbp-0x88]
mov rbx, gword ptr [rbp-0x70]
mov r15, gword ptr [rbp-0x78]
;; size=19 bbWeight=2 PerfScore 8.00
G_M55783_IG28:
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Runtime.Loader.AssemblyLoadContext:GetRuntimeAssembly(System.Reflection.Assembly):System.Reflection.RuntimeAssembly
call [rax]System.Runtime.Loader.AssemblyLoadContext:GetRuntimeAssembly(System.Reflection.Assembly):System.Reflection.RuntimeAssembly
test rax, rax
mov r12, gword ptr [rbp-0x80]
jne G_M55783_IG37
;; size=28 bbWeight=2 PerfScore 11.50
G_M55783_IG29:
mov r14d, dword ptr [rbp-0x30]
inc r14d
mov rax, gword ptr [rbp-0x40]
mov gword ptr [rbp-0x98], rax
lea rcx, bword ptr [rbp-0x40]
mov bword ptr [rbp-0xA0], rcx
test rax, rax
jne SHORT G_M55783_IG31
;; size=34 bbWeight=4 PerfScore 24.00
G_M55783_IG30:
xor rdx, rdx
jmp SHORT G_M55783_IG36
;; size=4 bbWeight=2 PerfScore 4.50
G_M55783_IG31:
mov rsi, gword ptr [rax+0x28]
mov rdi, 0xD1FFAB1E ; System.Object[]
- mov rdx, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFARRAY
- call [rdx]CORINFO_HELP_ISINSTANCEOFARRAY
+ call CORINFO_HELP_ISINSTANCEOFARRAY
test rax, rax
jne SHORT G_M55783_IG34
test r14d, r14d
je SHORT G_M55783_IG33
- ;; size=36 bbWeight=2 PerfScore 16.00
+ ;; size=29 bbWeight=2 PerfScore 11.50
G_M55783_IG32:
xor rdx, rdx
jmp SHORT G_M55783_IG36
;; size=4 bbWeight=8 PerfScore 18.00
G_M55783_IG33:
mov rdx, gword ptr [rbp-0x98]
jmp SHORT G_M55783_IG36
;; size=9 bbWeight=8 PerfScore 24.00
G_M55783_IG34:
mov rdx, gword ptr [rbp-0x98]
cmp r14d, dword ptr [rdx+0x30]
jae SHORT G_M55783_IG32
;; size=13 bbWeight=16 PerfScore 80.00
G_M55783_IG35:
cmp r14d, dword ptr [rax+0x08]
jae SHORT G_M55783_IG38
mov edx, r14d
mov rdx, gword ptr [rax+8*rdx+0x10]
;; size=14 bbWeight=2 PerfScore 12.50
G_M55783_IG36:
mov rcx, bword ptr [rbp-0xA0]
mov gword ptr [rcx+0x08], rdx
test rdx, rdx
je G_M55783_IG03
mov dword ptr [rbp-0x30], r14d
jmp G_M55783_IG05
;; size=29 bbWeight=4 PerfScore 25.00
G_M55783_IG37:
add rsp, 200
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
G_M55783_IG38:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 891, prolog size 49, PerfScore 497.33, instruction count 217, allocated bytes for code 891 (MethodHash=d34b2618) for method System.Runtime.Loader.AssemblyLoadContext:InvokeResolveEvent(System.ResolveEventHandler,System.Reflection.RuntimeAssembly,System.String):System.Reflection.RuntimeAssembly (FullOpts)
+; Total bytes of code 884, prolog size 49, PerfScore 492.83, instruction count 216, allocated bytes for code 884 (MethodHash=d34b2618) for method System.Runtime.Loader.AssemblyLoadContext:InvokeResolveEvent(System.ResolveEventHandler,System.Reflection.RuntimeAssembly,System.String):System.Reflection.RuntimeAssembly (FullOpts)