Diff
checker
Text
Text
Bilder
Dokumente
Excel
Ordner
Legal
Enterprise
Desktop-App
Preise
Einloggen
Diffchecker Desktop herunterladen
Texte vergleichen
Finde den Unterschied zwischen zwei Textdateien
Werkzeuge
Verlauf
Live-Editor
Gleiches ausblenden
Zeilenumbruch aus
Ansicht
Zweispaltig
Einspaltig
Vergleichsgenauigkeit
Intelligent
Wort
Zeichen
Syntaxhervorhebung
Syntax auswählen
Ignorieren
Text umwandeln
Zur ersten Änderung
Eingabe bearbeiten
Diffchecker Desktop
Der sicherste Weg, Diffchecker zu nutzen. Hol dir die Desktop-App: Deine Diffs verlassen nie deinen Computer!
Desktop holen
ExecCtx.RunInternal()
Erstellt
vor 5 Jahren
Diff läuft nie ab
Löschen
Exportieren
Teilen
Erklären
77 Entfernungen
Zeilen
Gesamt
Entfernt
Zeichen
Gesamt
Entfernt
Um diese Funktion weiterhin zu nutzen, aktualisiere auf
Diff
checker
Pro
Preise anzeigen
155 Zeilen
Kopieren
73 Hinzufügungen
Zeilen
Gesamt
Hinzugefügt
Zeichen
Gesamt
Hinzugefügt
Um diese Funktion weiterhin zu nutzen, aktualisiere auf
Diff
checker
Pro
Preise anzeigen
152 Zeilen
Kopieren
; 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
Kopieren
Kopiert
Kopieren
Kopiert
; 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
; V0
4
loc
1
[V0
4
,T0
3
] (
5
,
5
) ref ->
rdx
class-hnd
; V0
5
loc
2
[V0
5
,T0
1
] (
7
,
7
) ref ->
r8
class-hnd
; V0
5
loc
2
[V0
5,T06
] (
5
,
4
) ref -> [rbp-0x28] EH
class-hnd EH-live
; V0
6
loc
3
[V0
6,T11
] (
3
,
3
) ref -> [rbp-0x28] EH
do-not-enreg[]
class-hnd EH-live
; V0
6
loc
3
[V0
6
,T1
1
] ( 3,
2
) ref -> [rbp-0x30] EH
class-hnd EH-live
; V0
7
loc
4
[V0
7
,T1
2
] ( 3,
3
) ref -> [rbp-0x30] EH
do-not-enreg[]
class-hnd EH-live
; V0
7
loc
4
[V0
7
,T09] ( 4, 3 ) ref -> [rbp-0x38] EH do-not-enreg[
H
] class-hnd EH-live
; V0
8
loc
5
[V0
8
,T09] ( 4, 3 ) ref -> [rbp-0x38] EH do-not-enreg[
] class-hnd EH-live
; V0
8
loc
5 [V08,T10
] ( 3, 3 ) ref -> r8 class-hnd
; V0
9 loc6 [V09,T14] ( 2, 2 ) ref -> rdx class-hnd
;*
V09
loc
6
[
V09
] ( 0, 0 ) ref -> zero-ref class-hnd
; V10
loc
7 [V10,T06] ( 4, 4 ) ref -> rsi class-hnd
; V1
0
OutArgs [V1
0
] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
; V11 loc8 [V11,T15] ( 2, 2 ) ref -> rdx class-hnd
; V1
1
tmp1 [V1
1
,T1
2
] ( 2, 0 ) ref -> rcx class-hnd "impSpillSpecialSideEff"
; V12 loc9 [V12,T13
] ( 3, 3 ) ref -> r8 class-hnd
; V1
2
tmp2 [V1
2
,T07] ( 2, 4 ) ref -> rcx class-hnd "dup spill"
;*
V13
loc
10
[
V13
] ( 0, 0 ) ref -> zero-ref class-hnd
; V1
3
tmp3 [V1
3
,T08] ( 4, 3.50) ref -> rcx
; V1
4
OutArgs [V1
4
] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
; V1
4
PSPSym [V1
4
] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[X] addr-exposed "PSPSym"
; V1
5
tmp1 [V1
5
,T1
6
] ( 2, 0 ) ref -> rcx class-hnd "impSpillSpecialSideEff"
; V1
5
rat0 [V1
5
,T02] ( 3, 6 ) ref -> rdi "delegate invoke call"
; V1
6
tmp2 [V1
6
,T07] ( 2, 4 ) ref -> rcx class-hnd "dup spill"
; V1
7
tmp3 [V1
7
,T08] ( 4, 3.50) ref -> rcx
; V1
8
PSPSym [V1
8
] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[X] addr-exposed "PSPSym"
; V1
9
rat0 [V1
9
,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
Kopieren
Kopiert
Kopieren
Kopiert
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
Kopieren
Kopiert
Kopieren
Kopiert
cmp byte ptr [
r8
+25], 0
cmp byte ptr [
rdx
+25], 0
je SHORT G_M28364_IG05
je SHORT G_M28364_IG05
Kopieren
Kopiert
Kopieren
Kopiert
xor
r8, r8
xor
rdx, rdx
;; bbWeight=1 PerfScore 7.50
;; bbWeight=1 PerfScore 7.50
G_M28364_IG05:
G_M28364_IG05:
Kopieren
Kopiert
Kopieren
Kopiert
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:
Kopieren
Kopiert
Kopieren
Kopiert
cmp
r8
, rsi
cmp
rdx
, rsi
je SHORT G_M28364_IG07
je SHORT G_M28364_IG07
mov rdx, rsi
mov rdx, rsi
Kopieren
Kopiert
Kopieren
Kopiert
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)
Kopieren
Kopiert
Kopieren
Kopiert
;; bbWeight=1 PerfScore
2
.50
mov rcx, gword ptr [rbp-20H]
;; bbWeight=1 PerfScore
4
.50
G_M28364_IG07:
G_M28364_IG07:
Kopieren
Kopiert
Kopieren
Kopiert
xor r
c
x, r
c
x
xor r
a
x, r
a
x
mov gword ptr [rbp-38H], r
c
x
mov gword ptr [rbp-38H], r
a
x
;; 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:
Kopieren
Kopiert
Kopieren
Kopiert
mov rdx, gword ptr [rbp-30H]
mov rsi, gword ptr [rbp-20H]
mov rcx, gword ptr [rbp-20H]
mov rcx, gword ptr [rbp-20H]
Kopieren
Kopiert
Kopieren
Kopiert
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
Kopieren
Kopiert
Kopieren
Kopiert
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
Kopieren
Kopiert
Kopieren
Kopiert
;; bbWeight=1 PerfScore
8.50
mov rcx, gword ptr [rbp-20H]
;; bbWeight=1 PerfScore
7.75
G_M28364_IG10:
G_M28364_IG10:
Kopieren
Kopiert
Kopieren
Kopiert
mov r8, gword ptr [rcx+8]
mov rdx, gword ptr [rbp-28H]
mov rdx, gword ptr [rbp-28H]
Kopieren
Kopiert
Kopieren
Kopiert
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
Kopieren
Kopiert
Kopieren
Kopiert
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)
Kopieren
Kopiert
Kopieren
Kopiert
;; 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
Kopieren
Kopiert
Kopieren
Kopiert
; Total bytes of code 27
6
, prolog size 26, PerfScore 90.
48
, instruction count
90
, allocated bytes for code 27
6
(MethodHash=914e9133) for method System.Threading.ExecutionContext:RunInternal(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object)
; Total bytes of code 27
7
, prolog size 26, PerfScore 90.
83
, instruction count
91
, allocated bytes for code 27
7
(MethodHash=914e9133) for method System.Threading.ExecutionContext:RunInternal(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object)
; ============================================================
; ============================================================
Gespeicherte Diffs
Originaltext
Datei öffnen
; 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 ; optimized code ; rbp based frame ; fully interruptible ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 7, 7 ) ref -> rsi class-hnd ; V01 arg1 [V01,T04] ( 3, 3 ) ref -> rdi class-hnd ; V02 arg2 [V02,T05] ( 3, 3 ) ref -> rbx class-hnd ; V03 loc0 [V03,T03] ( 5, 5 ) ref -> rcx class-hnd ; V04 loc1 [V04,T10] ( 3, 3 ) ref -> [rbp-0x20] EH do-not-enreg[] class-hnd EH-live ; V05 loc2 [V05,T01] ( 7, 7 ) ref -> r8 class-hnd ; V06 loc3 [V06,T11] ( 3, 3 ) ref -> [rbp-0x28] EH do-not-enreg[] class-hnd EH-live ; V07 loc4 [V07,T12] ( 3, 3 ) ref -> [rbp-0x30] EH do-not-enreg[] class-hnd EH-live ; V08 loc5 [V08,T09] ( 4, 3 ) ref -> [rbp-0x38] EH do-not-enreg[] class-hnd EH-live ; V09 loc6 [V09,T14] ( 2, 2 ) ref -> rdx class-hnd ; V10 loc7 [V10,T06] ( 4, 4 ) ref -> rsi class-hnd ; V11 loc8 [V11,T15] ( 2, 2 ) ref -> rdx class-hnd ; V12 loc9 [V12,T13] ( 3, 3 ) ref -> r8 class-hnd ;* V13 loc10 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd ; V14 OutArgs [V14 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace" ; V15 tmp1 [V15,T16] ( 2, 0 ) ref -> rcx class-hnd "impSpillSpecialSideEff" ; 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 G_M28364_IG01: push rbp push rdi push rsi push rbx sub rsp, 72 lea rbp, [rsp+60H] mov qword ptr [rbp-40H], rsp mov rsi, rcx mov rdi, rdx mov rbx, r8 ;; bbWeight=1 PerfScore 6.50 G_M28364_IG02: mov rcx, 0xD1FFAB1E mov edx, 625 call CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE mov rcx, gword ptr [rax+24] test rcx, rcx jne SHORT G_M28364_IG04 ;; bbWeight=1 PerfScore 4.75 G_M28364_IG03: call System.Threading.Thread:InitializeCurrentThread():System.Threading.Thread mov rcx, rax ;; bbWeight=0.50 PerfScore 0.62 G_M28364_IG04: mov gword ptr [rbp-20H], rcx mov r8, gword ptr [rcx+8] test r8, r8 je SHORT G_M28364_IG05 cmp byte ptr [r8+25], 0 je SHORT G_M28364_IG05 xor r8, r8 ;; bbWeight=1 PerfScore 7.50 G_M28364_IG05: mov gword ptr [rbp-28H], r8 mov rdx, gword ptr [rcx+16] mov gword ptr [rbp-30H], rdx test rsi, rsi je SHORT G_M28364_IG06 cmp byte ptr [rsi+25], 0 je SHORT G_M28364_IG06 xor rsi, rsi ;; bbWeight=1 PerfScore 8.50 G_M28364_IG06: cmp r8, rsi je SHORT G_M28364_IG07 mov rdx, rsi call System.Threading.ExecutionContext:RestoreChangedContextToThread(System.Threading.Thread,System.Threading.ExecutionContext,System.Threading.ExecutionContext) ;; bbWeight=1 PerfScore 2.50 G_M28364_IG07: xor rcx, rcx mov gword ptr [rbp-38H], rcx ;; bbWeight=1 PerfScore 1.25 G_M28364_IG08: mov rcx, gword ptr [rdi+8] mov rdx, rbx call qword ptr [rdi+24]System.Threading.ContextCallback:Invoke(System.Object):this nop ;; bbWeight=1 PerfScore 5.50 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 [rcx+16] cmp rcx, gword ptr [rbp-30H] je SHORT G_M28364_IG10 lea rcx, bword ptr [rsi+16] call CORINFO_HELP_ASSIGN_REF ;; bbWeight=1 PerfScore 8.50 G_M28364_IG10: mov rdx, gword ptr [rbp-28H] mov r8, gword ptr [rsi+8] cmp r8, gword ptr [rbp-28H] je SHORT G_M28364_IG11 mov rcx, rsi call System.Threading.ExecutionContext:RestoreChangedContextToThread(System.Threading.Thread,System.Threading.ExecutionContext,System.Threading.ExecutionContext) ;; bbWeight=1 PerfScore 6.25 G_M28364_IG11: cmp gword ptr [rbp-38H], 0 je SHORT G_M28364_IG13 mov rcx, gword ptr [rbp-38H] ;; bbWeight=1 PerfScore 3.00 G_M28364_IG12: lea rsp, [rbp-18H] pop rbx pop rsi pop rdi pop rbp jmp System.Runtime.ExceptionServices.ExceptionDispatchInfo:Throw():this ;; bbWeight=1 PerfScore 4.50 G_M28364_IG13: lea rsp, [rbp-18H] pop rbx pop rsi pop rdi pop rbp ret ;; bbWeight=1 PerfScore 3.50 G_M28364_IG14: push rbp push rdi push rsi push rbx sub rsp, 40 mov rbp, qword ptr [rcx+32] mov qword ptr [rsp+20H], rbp lea rbp, [rbp+60H] ;; bbWeight=0 PerfScore 0.00 G_M28364_IG15: mov rcx, rdx call System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo mov gword ptr [rbp-38H], rax lea rax, G_M28364_IG09 ;; bbWeight=0 PerfScore 0.00 G_M28364_IG16: add rsp, 40 pop rbx pop rsi pop rdi pop rbp ret ;; 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) ; ============================================================
Bearbeitung
Datei öffnen
; 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 ; optimized code ; rbp based frame ; fully interruptible ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 7, 7 ) ref -> rsi class-hnd ; V01 arg1 [V01,T04] ( 3, 3 ) ref -> rdi class-hnd ; V02 arg2 [V02,T05] ( 3, 3 ) ref -> rbx class-hnd ; V03 loc0 [V03,T01] ( 8, 7 ) ref -> [rbp-0x20] EH class-hnd EH-live ; V04 loc1 [V04,T03] ( 5, 5 ) ref -> rdx class-hnd ; V05 loc2 [V05,T06] ( 5, 4 ) ref -> [rbp-0x28] EH class-hnd EH-live ; V06 loc3 [V06,T11] ( 3, 2 ) ref -> [rbp-0x30] EH 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,T10] ( 3, 3 ) ref -> r8 class-hnd ;* V09 loc6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd ; V10 OutArgs [V10 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace" ; V11 tmp1 [V11,T12] ( 2, 0 ) ref -> rcx class-hnd "impSpillSpecialSideEff" ; V12 tmp2 [V12,T07] ( 2, 4 ) ref -> rcx class-hnd "dup spill" ; V13 tmp3 [V13,T08] ( 4, 3.50) ref -> rcx ; V14 PSPSym [V14 ] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[X] addr-exposed "PSPSym" ; V15 rat0 [V15,T02] ( 3, 6 ) ref -> rdi "delegate invoke call" ; ; Lcl frame size = 72 G_M28364_IG01: push rbp push rdi push rsi push rbx sub rsp, 72 lea rbp, [rsp+60H] mov qword ptr [rbp-40H], rsp mov rsi, rcx mov rdi, rdx mov rbx, r8 ;; bbWeight=1 PerfScore 6.50 G_M28364_IG02: mov rcx, 0xD1FFAB1E mov edx, 625 call CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE mov rcx, gword ptr [rax+24] test rcx, rcx jne SHORT G_M28364_IG04 ;; bbWeight=1 PerfScore 4.75 G_M28364_IG03: call System.Threading.Thread:InitializeCurrentThread():System.Threading.Thread mov rcx, rax ;; bbWeight=0.50 PerfScore 0.62 G_M28364_IG04: mov gword ptr [rbp-20H], rcx mov rdx, gword ptr [rcx+8] test rdx, rdx je SHORT G_M28364_IG05 cmp byte ptr [rdx+25], 0 je SHORT G_M28364_IG05 xor rdx, rdx ;; bbWeight=1 PerfScore 7.50 G_M28364_IG05: mov gword ptr [rbp-28H], rdx mov r8, gword ptr [rcx+16] mov gword ptr [rbp-30H], r8 test rsi, rsi je SHORT G_M28364_IG06 cmp byte ptr [rsi+25], 0 je SHORT G_M28364_IG06 xor rsi, rsi ;; bbWeight=1 PerfScore 8.50 G_M28364_IG06: cmp rdx, rsi je SHORT G_M28364_IG07 mov rdx, rsi mov r8, gword ptr [rbp-28H] call System.Threading.ExecutionContext:RestoreChangedContextToThread(System.Threading.Thread,System.Threading.ExecutionContext,System.Threading.ExecutionContext) mov rcx, gword ptr [rbp-20H] ;; bbWeight=1 PerfScore 4.50 G_M28364_IG07: xor rax, rax mov gword ptr [rbp-38H], rax ;; bbWeight=1 PerfScore 1.25 G_M28364_IG08: mov rcx, gword ptr [rdi+8] mov rdx, rbx call qword ptr [rdi+24]System.Threading.ContextCallback:Invoke(System.Object):this nop ;; bbWeight=1 PerfScore 5.50 G_M28364_IG09: mov rcx, gword ptr [rbp-20H] mov r8, gword ptr [rbp-30H] cmp gword ptr [rcx+16], r8 je SHORT G_M28364_IG10 lea rcx, bword ptr [rcx+16] mov rdx, r8 call CORINFO_HELP_ASSIGN_REF mov rcx, gword ptr [rbp-20H] ;; bbWeight=1 PerfScore 7.75 G_M28364_IG10: mov r8, gword ptr [rcx+8] mov rdx, gword ptr [rbp-28H] cmp r8, rdx je SHORT G_M28364_IG11 call System.Threading.ExecutionContext:RestoreChangedContextToThread(System.Threading.Thread,System.Threading.ExecutionContext,System.Threading.ExecutionContext) ;; bbWeight=1 PerfScore 5.25 G_M28364_IG11: cmp gword ptr [rbp-38H], 0 je SHORT G_M28364_IG13 mov rcx, gword ptr [rbp-38H] ;; bbWeight=1 PerfScore 3.00 G_M28364_IG12: lea rsp, [rbp-18H] pop rbx pop rsi pop rdi pop rbp jmp System.Runtime.ExceptionServices.ExceptionDispatchInfo:Throw():this ;; bbWeight=1 PerfScore 4.50 G_M28364_IG13: lea rsp, [rbp-18H] pop rbx pop rsi pop rdi pop rbp ret ;; bbWeight=1 PerfScore 3.50 G_M28364_IG14: push rbp push rdi push rsi push rbx sub rsp, 40 mov rbp, qword ptr [rcx+32] mov qword ptr [rsp+20H], rbp lea rbp, [rbp+60H] ;; bbWeight=0 PerfScore 0.00 G_M28364_IG15: mov rcx, rdx call System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo mov gword ptr [rbp-38H], rax lea rax, G_M28364_IG09 ;; bbWeight=0 PerfScore 0.00 G_M28364_IG16: add rsp, 40 pop rbx pop rsi pop rdi pop rbp ret ;; bbWeight=0 PerfScore 0.00 ; 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) ; ============================================================
Unterschied finden