AsyncMethodBuilderCore.Start()

Created Diff never expires
61 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
125 lines
47 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
117 lines
; 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)
; ============================================================
; ============================================================