ExecCtx.RunInternal()

Created Diff never expires
66 Entfernungen
Zeilen
Gesamt
Entfernt
Wörter
Gesamt
Entfernt
Um diese Funktion weiterhin zu nutzen, aktualisieren Sie auf
Diffchecker logo
Diffchecker Pro
155 Zeilen
66 Hinzufügungen
Zeilen
Gesamt
Hinzugefügt
Wörter
Gesamt
Hinzugefügt
Um diese Funktion weiterhin zu nutzen, aktualisieren Sie auf
Diffchecker logo
Diffchecker Pro
152 Zeilen
; 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)
; ============================================================
; ============================================================