AsyncMethodBuilderCore.Start()
125 लाइनें
; Assembly listing for method System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start(byref)
; Assembly listing for method System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start(byref)
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; fully interruptible
; fully interruptible
; Final local variable assignments
; Final local variable assignments
;
;
; V00 arg0 [V00,T00] ( 4, 4 ) byref -> rsi
; V00 arg0 [V00,T00] ( 4, 4 ) byref -> rsi
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd
; V01 loc0 [V01,T03] ( 9, 3 ) ref -> [rbp-0x10] EH class-hnd EH-live
; V02 loc1 [V02,T04] ( 5, 3 ) ref -> [rbp-0x10] EH do-not-enreg[] class-hnd EH-live
; V02 loc1 [V02,T05] ( 5, 1.50) ref -> [rbp-0x18] EH class-hnd EH-live
; V03 loc2 [V03,T08] ( 2, 2 ) ref -> rcx class-hnd
; V03 loc2 [V03,T06] ( 5, 1.50) ref -> [rbp-0x20] EH class-hnd EH-live
; V04 loc3 [V04,T05] ( 5, 3 ) ref -> [rbp-0x18] EH do-not-enreg[] class-hnd EH-live
; V04 loc3 [V04,T04] ( 6, 2.50) ref -> r8 class-hnd
; V05 loc4 [V05,T06] ( 5, 3 ) ref -> [rbp-0x20] EH do-not-enreg[] class-hnd EH-live
; V05 OutArgs [V05 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
; V06 loc5 [V06,T09] ( 4, 1.50) ref -> rdx class-hnd
; V06 tmp1 [V06,T02] ( 2, 4 ) ref -> rax class-hnd "dup spill"
; V07 loc6 [V07,T03] ( 8, 3 ) ref -> rsi class-hnd
; V07 tmp2 [V07,T01] ( 6, 5.25) ref -> rax
; V08 loc7 [V08,T10] ( 4, 1.50) ref -> rdx class-hnd
; V08 PSPSym [V08 ] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "PSPSym"
; V09 loc8 [V09,T07] ( 6, 2.50) ref -> r8 class-hnd
; V10 OutArgs [V10 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
; V11 tmp1 [V11,T02] ( 2, 4 ) ref -> rax class-hnd "dup spill"
; V12 tmp2 [V12,T01] ( 6, 5.25) ref -> rax
; V13 PSPSym [V13 ] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "PSPSym"
;
;
; Lcl frame size = 72
; Lcl frame size = 72
G_M2866_IG01:
G_M2866_IG01:
push rbp
push rbp
push rsi
push rsi
sub rsp, 72
sub rsp, 72
lea rbp, [rsp+50H]
lea rbp, [rsp+50H]
mov qword ptr [rbp-30H], rsp
mov qword ptr [rbp-30H], rsp
mov rsi, rcx
mov rsi, rcx
;; bbWeight=1 PerfScore 4.00
;; bbWeight=1 PerfScore 4.00
G_M2866_IG02:
G_M2866_IG02:
cmp dword ptr [rsi], esi
cmp dword ptr [rsi], esi
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov edx, 625
mov edx, 625
call CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE
call CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE
mov rax, gword ptr [rax+24]
mov rax, gword ptr [rax+24]
test rax, rax
test rax, rax
jne SHORT G_M2866_IG04
jne SHORT G_M2866_IG04
;; bbWeight=1 PerfScore 6.75
;; bbWeight=1 PerfScore 6.75
G_M2866_IG03:
G_M2866_IG03:
call System.Threading.Thread:InitializeCurrentThread():System.Threading.Thread
call System.Threading.Thread:InitializeCurrentThread():System.Threading.Thread
;; bbWeight=0.25 PerfScore 0.25
;; bbWeight=0.25 PerfScore 0.25
G_M2866_IG04:
G_M2866_IG04:
mov gword ptr [rbp-10H], rax
mov gword ptr [rbp-10H], rax
mov rcx, gword ptr [rax+8]
mov rdx, gword ptr [rax+8]
mov gword ptr [rbp-18H], rcx
mov gword ptr [rbp-18H], rdx
mov rcx, gword ptr [rax+16]
mov rax, gword ptr [rax+16]
mov gword ptr [rbp-20H], rcx
mov gword ptr [rbp-20H], rax
;; bbWeight=1 PerfScore 7.00
;; bbWeight=1 PerfScore 7.00
G_M2866_IG05:
G_M2866_IG05:
mov rcx, rsi
mov rcx, rsi
call <GetResult>d__2:MoveNext():this
call <GetResult>d__2:MoveNext():this
nop
nop
;; bbWeight=1 PerfScore 1.50
;; bbWeight=1 PerfScore 1.50
G_M2866_IG06:
G_M2866_IG06:
mov rdx, gword ptr [rbp-20H]
mov rax, gword ptr [rbp-20H]
mov rsi, gword ptr [rbp-10H]
mov rcx, gword ptr [rbp-10H]
mov rcx, gword ptr [rbp-20H]
cmp rax, gword ptr [rcx+16]
mov rax, gword ptr [rbp-10H]
cmp rcx, gword ptr [rax+16]
je SHORT G_M2866_IG08
je SHORT G_M2866_IG08
;; bbWeight=1 PerfScore 7.00
;; bbWeight=1 PerfScore 5.00
G_M2866_IG07:
G_M2866_IG07:
lea rcx, bword ptr [rsi+16]
lea rcx, bword ptr [rcx+16]
mov rdx, rax
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
;; bbWeight=0.50 PerfScore 0.75
mov rcx, gword ptr [rbp-10H]
;; bbWeight=0.50 PerfScore 1.38
G_M2866_IG08:
G_M2866_IG08:
mov r8, gword ptr [rcx+8]
mov rdx, gword ptr [rbp-18H]
mov rdx, gword ptr [rbp-18H]
mov r8, gword ptr [rsi+8]
cmp rdx, r8
cmp gword ptr [rbp-18H], r8
je SHORT G_M2866_IG10
je SHORT G_M2866_IG10
;; bbWeight=1 PerfScore 5.00
;; bbWeight=1 PerfScore 4.25
G_M2866_IG09:
G_M2866_IG09:
mov rcx, rsi
call System.Threading.ExecutionContext:RestoreChangedContextToThread(System.Threading.Thread,System.Threading.ExecutionContext,System.Threading.ExecutionContext)
call System.Threading.ExecutionContext:RestoreChangedContextToThread(System.Threading.Thread,System.Threading.ExecutionContext,System.Threading.ExecutionContext)
;; bbWeight=0.50 PerfScore 0.62
;; bbWeight=0.50 PerfScore 0.50
G_M2866_IG10:
G_M2866_IG10:
nop
nop
;; bbWeight=1 PerfScore 0.25
;; bbWeight=1 PerfScore 0.25
G_M2866_IG11:
G_M2866_IG11:
lea rsp, [rbp-08H]
lea rsp, [rbp-08H]
pop rsi
pop rsi
pop rbp
pop rbp
ret
ret
;; bbWeight=1 PerfScore 2.50
;; bbWeight=1 PerfScore 2.50
G_M2866_IG12:
G_M2866_IG12:
push rbp
push rbp
push rsi
push rsi
sub rsp, 40
sub rsp, 40
mov rbp, qword ptr [rcx+32]
mov rbp, qword ptr [rcx+32]
mov qword ptr [rsp+20H], rbp
mov qword ptr [rsp+20H], rbp
lea rbp, [rbp+50H]
lea rbp, [rbp+50H]
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
G_M2866_IG13:
G_M2866_IG13:
mov rdx, gword ptr [rbp-20H]
mov rdx, gword ptr [rbp-20H]
mov rsi, gword ptr [rbp-10H]
mov rcx, gword ptr [rbp-10H]
mov rcx, gword ptr [rbp-20H]
cmp rdx, gword ptr [rcx+16]
mov rax, gword ptr [rbp-10H]
cmp rcx, gword ptr [rax+16]
je SHORT G_M2866_IG14
je SHORT G_M2866_IG14
lea rcx, bword ptr [rsi+16]
lea rcx, bword ptr [rcx+16]
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
mov rcx, gword ptr [rbp-10H]
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
G_M2866_IG14:
G_M2866_IG14:
mov r8, gword ptr [rcx+8]
mov rdx, gword ptr [rbp-18H]
mov rdx, gword ptr [rbp-18H]
mov r8, gword ptr [rsi+8]
cmp rdx, r8
cmp gword ptr [rbp-18H], r8
je SHORT G_M2866_IG15
je SHORT G_M2866_IG15
mov rcx, rsi
call System.Threading.ExecutionContext:RestoreChangedContextToThread(System.Threading.Thread,System.Threading.ExecutionContext,System.Threading.ExecutionContext)
call System.Threading.ExecutionContext:RestoreChangedContextToThread(System.Threading.Thread,System.Threading.ExecutionContext,System.Threading.ExecutionContext)
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
G_M2866_IG15:
G_M2866_IG15:
nop
nop
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
G_M2866_IG16:
G_M2866_IG16:
add rsp, 40
add rsp, 40
pop rsi
pop rsi
pop rbp
pop rbp
ret
ret
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
; Total bytes of code 224, prolog size 18, PerfScore 58.03, instruction count 66, allocated bytes for code 224 (MethodHash=f5f6f4cd) for method System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start(byref)
; Total bytes of code 211, prolog size 18, PerfScore 54.48, instruction count 63, allocated bytes for code 211 (MethodHash=f5f6f4cd) for method System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start(byref)
; ============================================================
; ============================================================