ExecCtx.RunInternal()

Created Diff never expires
66 刪除
總計
刪除
單詞
總計
刪除
要繼續使用此功能,請升級到
Diffchecker logo
Diffchecker Pro
155
66 新增
總計
新增
單詞
總計
新增
要繼續使用此功能,請升級到
Diffchecker logo
Diffchecker Pro
152
; Assembly listing for method System.Threading.ExecutionContext:RunInternal(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object)
; Assembly listing for method System.Threading.ExecutionContext:RunInternal(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object)
; 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] ( 7, 7 ) ref -> rsi class-hnd
; V00 arg0 [V00,T00] ( 7, 7 ) ref -> rsi class-hnd
; V01 arg1 [V01,T04] ( 3, 3 ) ref -> rdi class-hnd
; V01 arg1 [V01,T04] ( 3, 3 ) ref -> rdi class-hnd
; V02 arg2 [V02,T05] ( 3, 3 ) ref -> rbx class-hnd
; V02 arg2 [V02,T05] ( 3, 3 ) ref -> rbx class-hnd
; V03 loc0 [V03,T03] ( 5, 5 ) ref -> rcx class-hnd
; V03 loc0 [V03,T01] ( 8, 7 ) ref -> [rbp-0x20] EH class-hnd EH-live
; V04 loc1 [V04,T10] ( 3, 3 ) ref -> [rbp-0x20] EH do-not-enreg[] class-hnd EH-live
; V04 loc1 [V04,T03] ( 5, 5 ) ref -> rdx class-hnd
; V05 loc2 [V05,T01] ( 7, 7 ) ref -> r8 class-hnd
; V05 loc2 [V05,T06] ( 5, 4 ) ref -> [rbp-0x28] EH class-hnd EH-live
; V06 loc3 [V06,T11] ( 3, 3 ) ref -> [rbp-0x28] EH do-not-enreg[] class-hnd EH-live
; V06 loc3 [V06,T11] ( 3, 2 ) ref -> [rbp-0x30] EH class-hnd EH-live
; V07 loc4 [V07,T12] ( 3, 3 ) ref -> [rbp-0x30] EH do-not-enreg[] class-hnd EH-live
; V07 loc4 [V07,T09] ( 4, 3 ) ref -> [rbp-0x38] EH do-not-enreg[H] class-hnd EH-live
; V08 loc5 [V08,T09] ( 4, 3 ) ref -> [rbp-0x38] EH do-not-enreg[] class-hnd EH-live
; V08 loc5 [V08,T10] ( 3, 3 ) ref -> r8 class-hnd
; V09 loc6 [V09,T14] ( 2, 2 ) ref -> rdx class-hnd
;* V09 loc6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd
; V10 loc7 [V10,T06] ( 4, 4 ) ref -> rsi class-hnd
; V10 OutArgs [V10 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
; V11 loc8 [V11,T15] ( 2, 2 ) ref -> rdx class-hnd
; V11 tmp1 [V11,T12] ( 2, 0 ) ref -> rcx class-hnd "impSpillSpecialSideEff"
; V12 loc9 [V12,T13] ( 3, 3 ) ref -> r8 class-hnd
; V12 tmp2 [V12,T07] ( 2, 4 ) ref -> rcx class-hnd "dup spill"
;* V13 loc10 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd
; V13 tmp3 [V13,T08] ( 4, 3.50) ref -> rcx
; V14 OutArgs [V14 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
; V14 PSPSym [V14 ] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[X] addr-exposed "PSPSym"
; V15 tmp1 [V15,T16] ( 2, 0 ) ref -> rcx class-hnd "impSpillSpecialSideEff"
; V15 rat0 [V15,T02] ( 3, 6 ) ref -> rdi "delegate invoke call"
; V16 tmp2 [V16,T07] ( 2, 4 ) ref -> rcx class-hnd "dup spill"
; V17 tmp3 [V17,T08] ( 4, 3.50) ref -> rcx
; V18 PSPSym [V18 ] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[X] addr-exposed "PSPSym"
; V19 rat0 [V19,T02] ( 3, 6 ) ref -> rdi "delegate invoke call"
;
;
; Lcl frame size = 72
; Lcl frame size = 72


G_M28364_IG01:
G_M28364_IG01:
push rbp
push rbp
push rdi
push rdi
push rsi
push rsi
push rbx
push rbx
sub rsp, 72
sub rsp, 72
lea rbp, [rsp+60H]
lea rbp, [rsp+60H]
mov qword ptr [rbp-40H], rsp
mov qword ptr [rbp-40H], rsp
mov rsi, rcx
mov rsi, rcx
mov rdi, rdx
mov rdi, rdx
mov rbx, r8
mov rbx, r8
;; bbWeight=1 PerfScore 6.50
;; bbWeight=1 PerfScore 6.50
G_M28364_IG02:
G_M28364_IG02:
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 rcx, gword ptr [rax+24]
mov rcx, gword ptr [rax+24]
test rcx, rcx
test rcx, rcx
jne SHORT G_M28364_IG04
jne SHORT G_M28364_IG04
;; bbWeight=1 PerfScore 4.75
;; bbWeight=1 PerfScore 4.75
G_M28364_IG03:
G_M28364_IG03:
call System.Threading.Thread:InitializeCurrentThread():System.Threading.Thread
call System.Threading.Thread:InitializeCurrentThread():System.Threading.Thread
mov rcx, rax
mov rcx, rax
;; bbWeight=0.50 PerfScore 0.62
;; bbWeight=0.50 PerfScore 0.62
G_M28364_IG04:
G_M28364_IG04:
mov gword ptr [rbp-20H], rcx
mov gword ptr [rbp-20H], rcx
mov r8, gword ptr [rcx+8]
mov rdx, gword ptr [rcx+8]
test r8, r8
test rdx, rdx
je SHORT G_M28364_IG05
je SHORT G_M28364_IG05
cmp byte ptr [r8+25], 0
cmp byte ptr [rdx+25], 0
je SHORT G_M28364_IG05
je SHORT G_M28364_IG05
xor r8, r8
xor rdx, rdx
;; bbWeight=1 PerfScore 7.50
;; bbWeight=1 PerfScore 7.50
G_M28364_IG05:
G_M28364_IG05:
mov gword ptr [rbp-28H], r8
mov gword ptr [rbp-28H], rdx
mov rdx, gword ptr [rcx+16]
mov r8, gword ptr [rcx+16]
mov gword ptr [rbp-30H], rdx
mov gword ptr [rbp-30H], r8
test rsi, rsi
test rsi, rsi
je SHORT G_M28364_IG06
je SHORT G_M28364_IG06
cmp byte ptr [rsi+25], 0
cmp byte ptr [rsi+25], 0
je SHORT G_M28364_IG06
je SHORT G_M28364_IG06
xor rsi, rsi
xor rsi, rsi
;; bbWeight=1 PerfScore 8.50
;; bbWeight=1 PerfScore 8.50
G_M28364_IG06:
G_M28364_IG06:
cmp r8, rsi
cmp rdx, rsi
je SHORT G_M28364_IG07
je SHORT G_M28364_IG07
mov rdx, rsi
mov rdx, rsi
mov r8, gword ptr [rbp-28H]
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=1 PerfScore 2.50
mov rcx, gword ptr [rbp-20H]
;; bbWeight=1 PerfScore 4.50
G_M28364_IG07:
G_M28364_IG07:
xor rcx, rcx
xor rax, rax
mov gword ptr [rbp-38H], rcx
mov gword ptr [rbp-38H], rax
;; bbWeight=1 PerfScore 1.25
;; bbWeight=1 PerfScore 1.25
G_M28364_IG08:
G_M28364_IG08:
mov rcx, gword ptr [rdi+8]
mov rcx, gword ptr [rdi+8]
mov rdx, rbx
mov rdx, rbx
call qword ptr [rdi+24]System.Threading.ContextCallback:Invoke(System.Object):this
call qword ptr [rdi+24]System.Threading.ContextCallback:Invoke(System.Object):this
nop
nop
;; bbWeight=1 PerfScore 5.50
;; bbWeight=1 PerfScore 5.50
G_M28364_IG09:
G_M28364_IG09:
mov rdx, gword ptr [rbp-30H]
mov rsi, gword ptr [rbp-20H]
mov rcx, gword ptr [rbp-20H]
mov rcx, gword ptr [rbp-20H]
mov rcx, gword ptr [rcx+16]
mov r8, gword ptr [rbp-30H]
cmp rcx, gword ptr [rbp-30H]
cmp gword ptr [rcx+16], r8
je SHORT G_M28364_IG10
je SHORT G_M28364_IG10
lea rcx, bword ptr [rsi+16]
lea rcx, bword ptr [rcx+16]
mov rdx, r8
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
;; bbWeight=1 PerfScore 8.50
mov rcx, gword ptr [rbp-20H]
;; bbWeight=1 PerfScore 7.75
G_M28364_IG10:
G_M28364_IG10:
mov r8, gword ptr [rcx+8]
mov rdx, gword ptr [rbp-28H]
mov rdx, gword ptr [rbp-28H]
mov r8, gword ptr [rsi+8]
cmp r8, rdx
cmp r8, gword ptr [rbp-28H]
je SHORT G_M28364_IG11
je SHORT G_M28364_IG11
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=1 PerfScore 6.25
;; bbWeight=1 PerfScore 5.25
G_M28364_IG11:
G_M28364_IG11:
cmp gword ptr [rbp-38H], 0
cmp gword ptr [rbp-38H], 0
je SHORT G_M28364_IG13
je SHORT G_M28364_IG13
mov rcx, gword ptr [rbp-38H]
mov rcx, gword ptr [rbp-38H]
;; bbWeight=1 PerfScore 3.00
;; bbWeight=1 PerfScore 3.00
G_M28364_IG12:
G_M28364_IG12:
lea rsp, [rbp-18H]
lea rsp, [rbp-18H]
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
pop rbp
pop rbp
jmp System.Runtime.ExceptionServices.ExceptionDispatchInfo:Throw():this
jmp System.Runtime.ExceptionServices.ExceptionDispatchInfo:Throw():this
;; bbWeight=1 PerfScore 4.50
;; bbWeight=1 PerfScore 4.50
G_M28364_IG13:
G_M28364_IG13:
lea rsp, [rbp-18H]
lea rsp, [rbp-18H]
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
pop rbp
pop rbp
ret
ret
;; bbWeight=1 PerfScore 3.50
;; bbWeight=1 PerfScore 3.50
G_M28364_IG14:
G_M28364_IG14:
push rbp
push rbp
push rdi
push rdi
push rsi
push rsi
push rbx
push rbx
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+60H]
lea rbp, [rbp+60H]
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
G_M28364_IG15:
G_M28364_IG15:
mov rcx, rdx
mov rcx, rdx
call System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo
call System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo
mov gword ptr [rbp-38H], rax
mov gword ptr [rbp-38H], rax
lea rax, G_M28364_IG09
lea rax, G_M28364_IG09
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
G_M28364_IG16:
G_M28364_IG16:
add rsp, 40
add rsp, 40
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
pop rbp
pop rbp
ret
ret
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00


; Total bytes of code 276, prolog size 26, PerfScore 90.48, instruction count 90, allocated bytes for code 276 (MethodHash=914e9133) for method System.Threading.ExecutionContext:RunInternal(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object)
; Total bytes of code 277, prolog size 26, PerfScore 90.83, instruction count 91, allocated bytes for code 277 (MethodHash=914e9133) for method System.Threading.ExecutionContext:RunInternal(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object)
; ============================================================
; ============================================================