Diff
checker
テキスト
テキスト
画像
ドキュメント
Excel
フォルダ
Legal
Enterprise
デスクトップ
料金
ログイン
Diffchecker デスクトップのダウンロード
テキスト比較
2 つのテキスト ファイルの違いを見つける
ツール
履歴
ライブエディター
未変更行を折りたたむ
折り返しなし
レイアウト
分割
統合
比較精度
スマート
単語
文字
シンタックスハイライト
構文を選択
無視
テキスト変換
最初の差分へ移動
入力を編集
Diffchecker Desktop
Diffcheckerを実行する最も安全な方法。Diffchecker Desktopアプリを入手:あなたの差分はコンピューターから出ることはありません!
Desktopを入手
Untitled diff
作成日
2 年前
差分は期限切れになりません
クリア
エクスポート
共有
説明
52 削除
行
合計
削除
文字
合計
削除
この機能を引き続き使用するには、アップグレードしてください
Diff
checker
Pro
価格を見る
350 行
すべてコピー
42 追加
行
合計
追加
文字
合計
追加
この機能を引き続き使用するには、アップグレードしてください
Diff
checker
Pro
価格を見る
345 行
すべてコピー
; Assembly listing for method Program:TestPInvoke() (Tier0)
; Assembly listing for method Program:TestPInvoke() (Tier0)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; Emitting BLENDED_CODE for X64 with AVX - Windows
; Tier0 code
; Tier0 code
; rbp based frame
; rbp based frame
; partially interruptible
; partially interruptible
G_M000_IG01:
G_M000_IG01:
push rbp
push rbp
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rdi
push rdi
push rsi
push rsi
push rbx
push rbx
コピー
コピー済み
コピー
コピー済み
sub rsp, 1
20
sub rsp, 1
04
vzeroupper
vzeroupper
コピー
コピー済み
コピー
コピー済み
lea rbp, [rsp+0x
B
0]
lea rbp, [rsp+0x
A
0]
G_M000_IG02:
G_M000_IG02:
コピー
コピー済み
コピー
コピー済み
lea rcx, [rbp-0x
80]
lea rcx, [rbp-0x
78]
xor edx, edx
call CORINFO_HELP_INIT_PINVOKE_FRAME
call CORINFO_HELP_INIT_PINVOKE_FRAME
mov qword ptr [rbp-0x40], rax
mov qword ptr [rbp-0x40], rax
mov rax, rsp
mov rax, rsp
mov qword ptr [rbp-0x60], rax
mov qword ptr [rbp-0x60], rax
mov rax, rbp
mov rax, rbp
mov qword ptr [rbp-0x50], rax
mov qword ptr [rbp-0x50], rax
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
コピー
コピー済み
コピー
コピー済み
mov qword ptr [rbp-
0x70
], rax
mov qword ptr [rbp-
0x68
], rax
lea rax, G_M000_IG04
lea rax, G_M000_IG04
mov qword ptr [rbp-0x58], rax
mov qword ptr [rbp-0x58], rax
mov rax, qword ptr [rbp-0x40]
mov rax, qword ptr [rbp-0x40]
コピー
コピー済み
コピー
コピー済み
lea rcx,
bword ptr
[rbp-0x
80
]
lea rcx,
[rbp-0x
78
]
mov qword ptr [rax+0x08], rcx
mov qword ptr [rax+0x08], rcx
mov rax, qword ptr [rbp-0x40]
mov rax, qword ptr [rbp-0x40]
mov byte ptr [rax+0x04], 0
mov byte ptr [rax+0x04], 0
G_M000_IG03:
G_M000_IG03:
call [Program:GetTickCount():uint]
call [Program:GetTickCount():uint]
G_M000_IG04:
G_M000_IG04:
mov rax, qword ptr [rbp-0x40]
mov rax, qword ptr [rbp-0x40]
mov byte ptr [rax+0x04], 1
mov byte ptr [rax+0x04], 1
cmp dword ptr [(reloc)], 0
cmp dword ptr [(reloc)], 0
je SHORT G_M000_IG05
je SHORT G_M000_IG05
call [CORINFO_HELP_STOP_FOR_GC]
call [CORINFO_HELP_STOP_FOR_GC]
G_M000_IG05:
G_M000_IG05:
mov rax, qword ptr [rbp-0x40]
mov rax, qword ptr [rbp-0x40]
コピー
コピー済み
コピー
コピー済み
mov rcx,
b
word ptr [rbp-0x7
8
]
mov rcx,
q
word ptr [rbp-0x7
0
]
mov qword ptr [rax+0x08], rcx
mov qword ptr [rax+0x08], rcx
G_M000_IG06:
G_M000_IG06:
コピー
コピー済み
コピー
コピー済み
add rsp, 1
20
add rsp, 1
04
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
pop r12
pop r12
pop r13
pop r13
pop r14
pop r14
pop r15
pop r15
pop rbp
pop rbp
ret
ret
コピー
コピー済み
コピー
コピー済み
; Total bytes of code 15
9
; Total bytes of code 15
7
; Assembly listing for method Program:TestPInvokeILStub() (Tier0)
; Assembly listing for method Program:TestPInvokeILStub() (Tier0)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; Emitting BLENDED_CODE for X64 with AVX - Windows
; Tier0 code
; Tier0 code
; rbp based frame
; rbp based frame
; partially interruptible
; partially interruptible
G_M000_IG01:
G_M000_IG01:
push rbp
push rbp
sub rsp, 32
sub rsp, 32
vzeroupper
vzeroupper
lea rbp, [rsp+0x20]
lea rbp, [rsp+0x20]
G_M000_IG02:
G_M000_IG02:
call Program:GetTickCountILStub():uint
call Program:GetTickCountILStub():uint
nop
nop
G_M000_IG03:
G_M000_IG03:
add rsp, 32
add rsp, 32
pop rbp
pop rbp
ret
ret
; Total bytes of code 25
; Total bytes of code 25
; Assembly listing for method (dynamicClass):IL_STUB_PInvoke():uint (FullOpts)
; Assembly listing for method (dynamicClass):IL_STUB_PInvoke():uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; FullOpts code
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; partially interruptible
; partially interruptible
; No PGO data
; No PGO data
G_M000_IG01:
G_M000_IG01:
push rbp
push rbp
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rdi
push rdi
push rsi
push rsi
push rbx
push rbx
sub rsp, 120
sub rsp, 120
lea rbp, [rsp+0xB0]
lea rbp, [rsp+0xB0]
コピー
コピー済み
コピー
コピー済み
mov
qword ptr [rbp-0x40]
, r10
mov
rbx
, r10
G_M000_IG02:
G_M000_IG02:
コピー
コピー済み
コピー
コピー済み
mov qword ptr [rbp-0x48], rbx
lea rcx, [rbp-0x80]
lea rcx, [rbp-0x80]
コピー
コピー済み
コピー
コピー済み
mov rdx, qword ptr [rbp-0x40]
call CORINFO_HELP_INIT_PINVOKE_FRAME
call CORINFO_HELP_INIT_PINVOKE_FRAME
コピー
コピー済み
コピー
コピー済み
mov
rbx
, rax
mov
rsi
, rax
mov rax, rsp
mov rax, rsp
コピー
コピー済み
コピー
コピー済み
mov qword ptr [rbp-0x6
0
], rax
mov qword ptr [rbp-0x6
8
], rax
mov rax, rbp
mov rax, rbp
コピー
コピー済み
コピー
コピー済み
mov qword ptr [rbp-0x5
0
], rax
mov qword ptr [rbp-0x5
8
], rax
lea rax,
bword ptr
[rbp-0x80]
lea rax,
[rbp-0x80]
mov qword ptr [
rbx
+0x08], rax
mov qword ptr [
rsi
+0x08], rax
call System.StubHelpers.StubHelpers:ClearLastError()
call System.StubHelpers.StubHelpers:ClearLastError()
コピー
コピー済み
コピー
コピー済み
mov rax, qword ptr [
rbp-0x40]
mov rax, qword ptr [
rbx
+0x18]
mov rax, qword ptr [rax
+0x18]
mov qword ptr [rbp-0x70], r
b
x
mov rcx, qword ptr [rbp-0x40]
mov qword ptr [rbp-0x70], r
c
x
lea rcx, G_M000_IG04
lea rcx, G_M000_IG04
コピー
コピー済み
コピー
コピー済み
mov qword ptr [rbp-
0x58
], rcx
mov qword ptr [rbp-
0x60
], rcx
mov byte ptr [
rbx
+0x04], 0
mov byte ptr [
rsi
+0x04], 0
G_M000_IG03:
G_M000_IG03:
call rax
call rax
G_M000_IG04:
G_M000_IG04:
コピー
コピー済み
コピー
コピー済み
mov byte ptr [
rbx
+0x04], 1
mov byte ptr [
rsi
+0x04], 1
cmp dword ptr [(reloc)], 0
cmp dword ptr [(reloc)], 0
je SHORT G_M000_IG05
je SHORT G_M000_IG05
call [CORINFO_HELP_STOP_FOR_GC]
call [CORINFO_HELP_STOP_FOR_GC]
G_M000_IG05:
G_M000_IG05:
コピー
コピー済み
コピー
コピー済み
mov
esi
, eax
mov
ebx
, eax
call System.StubHelpers.StubHelpers:SetLastError()
call System.StubHelpers.StubHelpers:SetLastError()
コピー
コピー済み
コピー
コピー済み
mov eax,
esi
mov eax,
ebx
mov rcx,
b
word ptr [rbp-0x78]
mov rcx,
q
word ptr [rbp-0x78]
mov qword ptr [
rbx
+0x08], rcx
mov qword ptr [
rsi
+0x08], rcx
G_M000_IG06:
G_M000_IG06:
add rsp, 120
add rsp, 120
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
pop r12
pop r12
pop r13
pop r13
pop r14
pop r14
pop r15
pop r15
pop rbp
pop rbp
ret
ret
コピー
コピー済み
コピー
コピー済み
; Total bytes of code
157
; Total bytes of code
148
; Assembly listing for method Program:TestPInvoke() (Instrumented Tier0)
; Assembly listing for method Program:TestPInvoke() (Instrumented Tier0)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; Emitting BLENDED_CODE for X64 with AVX - Windows
; Instrumented Tier0 code
; Instrumented Tier0 code
; rbp based frame
; rbp based frame
; partially interruptible
; partially interruptible
G_M000_IG01:
G_M000_IG01:
push rbp
push rbp
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rdi
push rdi
push rsi
push rsi
push rbx
push rbx
コピー
コピー済み
コピー
コピー済み
sub rsp, 1
20
sub rsp, 1
04
vzeroupper
vzeroupper
コピー
コピー済み
コピー
コピー済み
lea rbp, [rsp+0x
B
0]
lea rbp, [rsp+0x
A
0]
G_M000_IG02:
G_M000_IG02:
コピー
コピー済み
コピー
コピー済み
lea rcx, [rbp-0x
80]
lea rcx, [rbp-0x
78]
xor edx, edx
call CORINFO_HELP_INIT_PINVOKE_FRAME
call CORINFO_HELP_INIT_PINVOKE_FRAME
mov qword ptr [rbp-0x40], rax
mov qword ptr [rbp-0x40], rax
mov rax, rsp
mov rax, rsp
mov qword ptr [rbp-0x60], rax
mov qword ptr [rbp-0x60], rax
mov rax, rbp
mov rax, rbp
mov qword ptr [rbp-0x50], rax
mov qword ptr [rbp-0x50], rax
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
コピー
コピー済み
コピー
コピー済み
mov qword ptr [rbp-
0x70
], rax
mov qword ptr [rbp-
0x68
], rax
lea rax, G_M000_IG05
lea rax, G_M000_IG05
mov qword ptr [rbp-0x58], rax
mov qword ptr [rbp-0x58], rax
mov rax, qword ptr [rbp-0x40]
mov rax, qword ptr [rbp-0x40]
コピー
コピー済み
コピー
コピー済み
lea rcx,
bword ptr
[rbp-0x
80
]
lea rcx,
[rbp-0x
78
]
mov qword ptr [rax+0x08], rcx
mov qword ptr [rax+0x08], rcx
mov rax, qword ptr [rbp-0x40]
mov rax, qword ptr [rbp-0x40]
mov byte ptr [rax+0x04], 0
mov byte ptr [rax+0x04], 0
G_M000_IG03:
G_M000_IG03:
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
G_M000_IG04:
G_M000_IG04:
call rax ; Program:GetTickCount():uint
call rax ; Program:GetTickCount():uint
G_M000_IG05:
G_M000_IG05:
mov rax, qword ptr [rbp-0x40]
mov rax, qword ptr [rbp-0x40]
mov byte ptr [rax+0x04], 1
mov byte ptr [rax+0x04], 1
cmp dword ptr [(reloc)], 0
cmp dword ptr [(reloc)], 0
je SHORT G_M000_IG06
je SHORT G_M000_IG06
call [CORINFO_HELP_STOP_FOR_GC]
call [CORINFO_HELP_STOP_FOR_GC]
G_M000_IG06:
G_M000_IG06:
mov rax, qword ptr [rbp-0x40]
mov rax, qword ptr [rbp-0x40]
コピー
コピー済み
コピー
コピー済み
mov rcx,
b
word ptr [rbp-0x7
8
]
mov rcx,
q
word ptr [rbp-0x7
0
]
mov qword ptr [rax+0x08], rcx
mov qword ptr [rax+0x08], rcx
G_M000_IG07:
G_M000_IG07:
コピー
コピー済み
コピー
コピー済み
add rsp, 1
20
add rsp, 1
04
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
pop r12
pop r12
pop r13
pop r13
pop r14
pop r14
pop r15
pop r15
pop rbp
pop rbp
ret
ret
コピー
コピー済み
コピー
コピー済み
; Total bytes of code 16
5
; Total bytes of code 16
3
; Assembly listing for method Program:TestPInvokeILStub() (Instrumented Tier0)
; Assembly listing for method Program:TestPInvokeILStub() (Instrumented Tier0)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; Emitting BLENDED_CODE for X64 with AVX - Windows
; Instrumented Tier0 code
; Instrumented Tier0 code
; rbp based frame
; rbp based frame
; partially interruptible
; partially interruptible
G_M000_IG01:
G_M000_IG01:
push rbp
push rbp
sub rsp, 32
sub rsp, 32
vzeroupper
vzeroupper
lea rbp, [rsp+0x20]
lea rbp, [rsp+0x20]
G_M000_IG02:
G_M000_IG02:
call Program:GetTickCountILStub():uint
call Program:GetTickCountILStub():uint
nop
nop
G_M000_IG03:
G_M000_IG03:
add rsp, 32
add rsp, 32
pop rbp
pop rbp
ret
ret
; Total bytes of code 25
; Total bytes of code 25
; Assembly listing for method Program:TestPInvoke() (Tier1)
; Assembly listing for method Program:TestPInvoke() (Tier1)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; Emitting BLENDED_CODE for X64 with AVX - Windows
; Tier1 code
; Tier1 code
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; partially interruptible
; partially interruptible
; No PGO data
; No PGO data
G_M000_IG01:
G_M000_IG01:
push rbp
push rbp
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rdi
push rdi
push rsi
push rsi
push rbx
push rbx
sub rsp, 104
sub rsp, 104
vzeroupper
vzeroupper
lea rbp, [rsp+0xA0]
lea rbp, [rsp+0xA0]
G_M000_IG02:
G_M000_IG02:
コピー
コピー済み
コピー
コピー済み
lea rcx, [rbp-0x7
8]
lea rcx, [rbp-0x7
0]
xor edx, edx
call CORINFO_HELP_INIT_PINVOKE_FRAME
call CORINFO_HELP_INIT_PINVOKE_FRAME
mov rbx, rax
mov rbx, rax
mov rax, rsp
mov rax, rsp
mov qword ptr [rbp-0x58], rax
mov qword ptr [rbp-0x58], rax
mov rax, rbp
mov rax, rbp
mov qword ptr [rbp-0x48], rax
mov qword ptr [rbp-0x48], rax
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
コピー
コピー済み
コピー
コピー済み
mov qword ptr [rbp-0x6
8
], rax
mov qword ptr [rbp-0x6
0
], rax
lea rax, G_M000_IG05
lea rax, G_M000_IG05
mov qword ptr [rbp-0x50], rax
mov qword ptr [rbp-0x50], rax
コピー
コピー済み
コピー
コピー済み
lea rax,
bword ptr
[rbp-0x7
8
]
lea rax,
[rbp-0x7
0
]
mov qword ptr [rbx+0x08], rax
mov qword ptr [rbx+0x08], rax
mov byte ptr [rbx+0x04], 0
mov byte ptr [rbx+0x04], 0
G_M000_IG03:
G_M000_IG03:
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
G_M000_IG04:
G_M000_IG04:
call rax ; Program:GetTickCount():uint
call rax ; Program:GetTickCount():uint
G_M000_IG05:
G_M000_IG05:
mov byte ptr [rbx+0x04], 1
mov byte ptr [rbx+0x04], 1
cmp dword ptr [(reloc)], 0
cmp dword ptr [(reloc)], 0
je SHORT G_M000_IG06
je SHORT G_M000_IG06
call [CORINFO_HELP_STOP_FOR_GC]
call [CORINFO_HELP_STOP_FOR_GC]
G_M000_IG06:
G_M000_IG06:
コピー
コピー済み
コピー
コピー済み
mov rax,
b
word ptr [rbp-
0x70
]
mov rax,
q
word ptr [rbp-
0x68
]
mov qword ptr [rbx+0x08], rax
mov qword ptr [rbx+0x08], rax
G_M000_IG07:
G_M000_IG07:
add rsp, 104
add rsp, 104
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
pop r12
pop r12
pop r13
pop r13
pop r14
pop r14
pop r15
pop r15
pop rbp
pop rbp
ret
ret
コピー
コピー済み
コピー
コピー済み
; Total bytes of code 14
8
; Total bytes of code 14
6
; Assembly listing for method Program:TestPInvokeILStub() (Tier1)
; Assembly listing for method Program:TestPInvokeILStub() (Tier1)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; Emitting BLENDED_CODE for X64 with AVX - Windows
; Tier1 code
; Tier1 code
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; partially interruptible
; partially interruptible
; No PGO data
; No PGO data
G_M000_IG01:
G_M000_IG01:
push rbp
push rbp
sub rsp, 32
sub rsp, 32
vzeroupper
vzeroupper
lea rbp, [rsp+0x20]
lea rbp, [rsp+0x20]
G_M000_IG02:
G_M000_IG02:
call Program:GetTickCountILStub():uint
call Program:GetTickCountILStub():uint
nop
nop
G_M000_IG03:
G_M000_IG03:
add rsp, 32
add rsp, 32
pop rbp
pop rbp
ret
ret
; Total bytes of code 25
; Total bytes of code 25
コピー
コピー済み
コピー
コピー済み
Bench:
5139.35
ms
Bench:
5074.68
ms
BenchILStub:
9706.64
ms
BenchILStub:
9519.53
ms
保存された差分
原文
ファイルを開く
; Assembly listing for method Program:TestPInvoke() (Tier0) ; Emitting BLENDED_CODE for X64 with AVX - Windows ; Tier0 code ; rbp based frame ; partially interruptible G_M000_IG01: push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 120 vzeroupper lea rbp, [rsp+0xB0] G_M000_IG02: lea rcx, [rbp-0x80] xor edx, edx call CORINFO_HELP_INIT_PINVOKE_FRAME mov qword ptr [rbp-0x40], rax mov rax, rsp mov qword ptr [rbp-0x60], rax mov rax, rbp mov qword ptr [rbp-0x50], rax mov rax, 0xD1FFAB1E mov qword ptr [rbp-0x70], rax lea rax, G_M000_IG04 mov qword ptr [rbp-0x58], rax mov rax, qword ptr [rbp-0x40] lea rcx, bword ptr [rbp-0x80] mov qword ptr [rax+0x08], rcx mov rax, qword ptr [rbp-0x40] mov byte ptr [rax+0x04], 0 G_M000_IG03: call [Program:GetTickCount():uint] G_M000_IG04: mov rax, qword ptr [rbp-0x40] mov byte ptr [rax+0x04], 1 cmp dword ptr [(reloc)], 0 je SHORT G_M000_IG05 call [CORINFO_HELP_STOP_FOR_GC] G_M000_IG05: mov rax, qword ptr [rbp-0x40] mov rcx, bword ptr [rbp-0x78] mov qword ptr [rax+0x08], rcx G_M000_IG06: add rsp, 120 pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ; Total bytes of code 159 ; Assembly listing for method Program:TestPInvokeILStub() (Tier0) ; Emitting BLENDED_CODE for X64 with AVX - Windows ; Tier0 code ; rbp based frame ; partially interruptible G_M000_IG01: push rbp sub rsp, 32 vzeroupper lea rbp, [rsp+0x20] G_M000_IG02: call Program:GetTickCountILStub():uint nop G_M000_IG03: add rsp, 32 pop rbp ret ; Total bytes of code 25 ; Assembly listing for method (dynamicClass):IL_STUB_PInvoke():uint (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Windows ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data G_M000_IG01: push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 120 lea rbp, [rsp+0xB0] mov qword ptr [rbp-0x40], r10 G_M000_IG02: lea rcx, [rbp-0x80] mov rdx, qword ptr [rbp-0x40] call CORINFO_HELP_INIT_PINVOKE_FRAME mov rbx, rax mov rax, rsp mov qword ptr [rbp-0x60], rax mov rax, rbp mov qword ptr [rbp-0x50], rax lea rax, bword ptr [rbp-0x80] mov qword ptr [rbx+0x08], rax call System.StubHelpers.StubHelpers:ClearLastError() mov rax, qword ptr [rbp-0x40] mov rax, qword ptr [rax+0x18] mov rcx, qword ptr [rbp-0x40] mov qword ptr [rbp-0x70], rcx lea rcx, G_M000_IG04 mov qword ptr [rbp-0x58], rcx mov byte ptr [rbx+0x04], 0 G_M000_IG03: call rax G_M000_IG04: mov byte ptr [rbx+0x04], 1 cmp dword ptr [(reloc)], 0 je SHORT G_M000_IG05 call [CORINFO_HELP_STOP_FOR_GC] G_M000_IG05: mov esi, eax call System.StubHelpers.StubHelpers:SetLastError() mov eax, esi mov rcx, bword ptr [rbp-0x78] mov qword ptr [rbx+0x08], rcx G_M000_IG06: add rsp, 120 pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ; Total bytes of code 157 ; Assembly listing for method Program:TestPInvoke() (Instrumented Tier0) ; Emitting BLENDED_CODE for X64 with AVX - Windows ; Instrumented Tier0 code ; rbp based frame ; partially interruptible G_M000_IG01: push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 120 vzeroupper lea rbp, [rsp+0xB0] G_M000_IG02: lea rcx, [rbp-0x80] xor edx, edx call CORINFO_HELP_INIT_PINVOKE_FRAME mov qword ptr [rbp-0x40], rax mov rax, rsp mov qword ptr [rbp-0x60], rax mov rax, rbp mov qword ptr [rbp-0x50], rax mov rax, 0xD1FFAB1E mov qword ptr [rbp-0x70], rax lea rax, G_M000_IG05 mov qword ptr [rbp-0x58], rax mov rax, qword ptr [rbp-0x40] lea rcx, bword ptr [rbp-0x80] mov qword ptr [rax+0x08], rcx mov rax, qword ptr [rbp-0x40] mov byte ptr [rax+0x04], 0 G_M000_IG03: mov rax, 0xD1FFAB1E G_M000_IG04: call rax ; Program:GetTickCount():uint G_M000_IG05: mov rax, qword ptr [rbp-0x40] mov byte ptr [rax+0x04], 1 cmp dword ptr [(reloc)], 0 je SHORT G_M000_IG06 call [CORINFO_HELP_STOP_FOR_GC] G_M000_IG06: mov rax, qword ptr [rbp-0x40] mov rcx, bword ptr [rbp-0x78] mov qword ptr [rax+0x08], rcx G_M000_IG07: add rsp, 120 pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ; Total bytes of code 165 ; Assembly listing for method Program:TestPInvokeILStub() (Instrumented Tier0) ; Emitting BLENDED_CODE for X64 with AVX - Windows ; Instrumented Tier0 code ; rbp based frame ; partially interruptible G_M000_IG01: push rbp sub rsp, 32 vzeroupper lea rbp, [rsp+0x20] G_M000_IG02: call Program:GetTickCountILStub():uint nop G_M000_IG03: add rsp, 32 pop rbp ret ; Total bytes of code 25 ; Assembly listing for method Program:TestPInvoke() (Tier1) ; Emitting BLENDED_CODE for X64 with AVX - Windows ; Tier1 code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data G_M000_IG01: push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 104 vzeroupper lea rbp, [rsp+0xA0] G_M000_IG02: lea rcx, [rbp-0x78] xor edx, edx call CORINFO_HELP_INIT_PINVOKE_FRAME mov rbx, rax mov rax, rsp mov qword ptr [rbp-0x58], rax mov rax, rbp mov qword ptr [rbp-0x48], rax mov rax, 0xD1FFAB1E mov qword ptr [rbp-0x68], rax lea rax, G_M000_IG05 mov qword ptr [rbp-0x50], rax lea rax, bword ptr [rbp-0x78] mov qword ptr [rbx+0x08], rax mov byte ptr [rbx+0x04], 0 G_M000_IG03: mov rax, 0xD1FFAB1E G_M000_IG04: call rax ; Program:GetTickCount():uint G_M000_IG05: mov byte ptr [rbx+0x04], 1 cmp dword ptr [(reloc)], 0 je SHORT G_M000_IG06 call [CORINFO_HELP_STOP_FOR_GC] G_M000_IG06: mov rax, bword ptr [rbp-0x70] mov qword ptr [rbx+0x08], rax G_M000_IG07: add rsp, 104 pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ; Total bytes of code 148 ; Assembly listing for method Program:TestPInvokeILStub() (Tier1) ; Emitting BLENDED_CODE for X64 with AVX - Windows ; Tier1 code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data G_M000_IG01: push rbp sub rsp, 32 vzeroupper lea rbp, [rsp+0x20] G_M000_IG02: call Program:GetTickCountILStub():uint nop G_M000_IG03: add rsp, 32 pop rbp ret ; Total bytes of code 25 Bench: 5139.35 ms BenchILStub: 9706.64 ms
変更されたテキスト
ファイルを開く
; Assembly listing for method Program:TestPInvoke() (Tier0) ; Emitting BLENDED_CODE for X64 with AVX - Windows ; Tier0 code ; rbp based frame ; partially interruptible G_M000_IG01: push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 104 vzeroupper lea rbp, [rsp+0xA0] G_M000_IG02: lea rcx, [rbp-0x78] call CORINFO_HELP_INIT_PINVOKE_FRAME mov qword ptr [rbp-0x40], rax mov rax, rsp mov qword ptr [rbp-0x60], rax mov rax, rbp mov qword ptr [rbp-0x50], rax mov rax, 0xD1FFAB1E mov qword ptr [rbp-0x68], rax lea rax, G_M000_IG04 mov qword ptr [rbp-0x58], rax mov rax, qword ptr [rbp-0x40] lea rcx, [rbp-0x78] mov qword ptr [rax+0x08], rcx mov rax, qword ptr [rbp-0x40] mov byte ptr [rax+0x04], 0 G_M000_IG03: call [Program:GetTickCount():uint] G_M000_IG04: mov rax, qword ptr [rbp-0x40] mov byte ptr [rax+0x04], 1 cmp dword ptr [(reloc)], 0 je SHORT G_M000_IG05 call [CORINFO_HELP_STOP_FOR_GC] G_M000_IG05: mov rax, qword ptr [rbp-0x40] mov rcx, qword ptr [rbp-0x70] mov qword ptr [rax+0x08], rcx G_M000_IG06: add rsp, 104 pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ; Total bytes of code 157 ; Assembly listing for method Program:TestPInvokeILStub() (Tier0) ; Emitting BLENDED_CODE for X64 with AVX - Windows ; Tier0 code ; rbp based frame ; partially interruptible G_M000_IG01: push rbp sub rsp, 32 vzeroupper lea rbp, [rsp+0x20] G_M000_IG02: call Program:GetTickCountILStub():uint nop G_M000_IG03: add rsp, 32 pop rbp ret ; Total bytes of code 25 ; Assembly listing for method (dynamicClass):IL_STUB_PInvoke():uint (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Windows ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data G_M000_IG01: push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 120 lea rbp, [rsp+0xB0] mov rbx, r10 G_M000_IG02: mov qword ptr [rbp-0x48], rbx lea rcx, [rbp-0x80] call CORINFO_HELP_INIT_PINVOKE_FRAME mov rsi, rax mov rax, rsp mov qword ptr [rbp-0x68], rax mov rax, rbp mov qword ptr [rbp-0x58], rax lea rax, [rbp-0x80] mov qword ptr [rsi+0x08], rax call System.StubHelpers.StubHelpers:ClearLastError() mov rax, qword ptr [rbx+0x18] mov qword ptr [rbp-0x70], rbx lea rcx, G_M000_IG04 mov qword ptr [rbp-0x60], rcx mov byte ptr [rsi+0x04], 0 G_M000_IG03: call rax G_M000_IG04: mov byte ptr [rsi+0x04], 1 cmp dword ptr [(reloc)], 0 je SHORT G_M000_IG05 call [CORINFO_HELP_STOP_FOR_GC] G_M000_IG05: mov ebx, eax call System.StubHelpers.StubHelpers:SetLastError() mov eax, ebx mov rcx, qword ptr [rbp-0x78] mov qword ptr [rsi+0x08], rcx G_M000_IG06: add rsp, 120 pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ; Total bytes of code 148 ; Assembly listing for method Program:TestPInvoke() (Instrumented Tier0) ; Emitting BLENDED_CODE for X64 with AVX - Windows ; Instrumented Tier0 code ; rbp based frame ; partially interruptible G_M000_IG01: push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 104 vzeroupper lea rbp, [rsp+0xA0] G_M000_IG02: lea rcx, [rbp-0x78] call CORINFO_HELP_INIT_PINVOKE_FRAME mov qword ptr [rbp-0x40], rax mov rax, rsp mov qword ptr [rbp-0x60], rax mov rax, rbp mov qword ptr [rbp-0x50], rax mov rax, 0xD1FFAB1E mov qword ptr [rbp-0x68], rax lea rax, G_M000_IG05 mov qword ptr [rbp-0x58], rax mov rax, qword ptr [rbp-0x40] lea rcx, [rbp-0x78] mov qword ptr [rax+0x08], rcx mov rax, qword ptr [rbp-0x40] mov byte ptr [rax+0x04], 0 G_M000_IG03: mov rax, 0xD1FFAB1E G_M000_IG04: call rax ; Program:GetTickCount():uint G_M000_IG05: mov rax, qword ptr [rbp-0x40] mov byte ptr [rax+0x04], 1 cmp dword ptr [(reloc)], 0 je SHORT G_M000_IG06 call [CORINFO_HELP_STOP_FOR_GC] G_M000_IG06: mov rax, qword ptr [rbp-0x40] mov rcx, qword ptr [rbp-0x70] mov qword ptr [rax+0x08], rcx G_M000_IG07: add rsp, 104 pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ; Total bytes of code 163 ; Assembly listing for method Program:TestPInvokeILStub() (Instrumented Tier0) ; Emitting BLENDED_CODE for X64 with AVX - Windows ; Instrumented Tier0 code ; rbp based frame ; partially interruptible G_M000_IG01: push rbp sub rsp, 32 vzeroupper lea rbp, [rsp+0x20] G_M000_IG02: call Program:GetTickCountILStub():uint nop G_M000_IG03: add rsp, 32 pop rbp ret ; Total bytes of code 25 ; Assembly listing for method Program:TestPInvoke() (Tier1) ; Emitting BLENDED_CODE for X64 with AVX - Windows ; Tier1 code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data G_M000_IG01: push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 104 vzeroupper lea rbp, [rsp+0xA0] G_M000_IG02: lea rcx, [rbp-0x70] call CORINFO_HELP_INIT_PINVOKE_FRAME mov rbx, rax mov rax, rsp mov qword ptr [rbp-0x58], rax mov rax, rbp mov qword ptr [rbp-0x48], rax mov rax, 0xD1FFAB1E mov qword ptr [rbp-0x60], rax lea rax, G_M000_IG05 mov qword ptr [rbp-0x50], rax lea rax, [rbp-0x70] mov qword ptr [rbx+0x08], rax mov byte ptr [rbx+0x04], 0 G_M000_IG03: mov rax, 0xD1FFAB1E G_M000_IG04: call rax ; Program:GetTickCount():uint G_M000_IG05: mov byte ptr [rbx+0x04], 1 cmp dword ptr [(reloc)], 0 je SHORT G_M000_IG06 call [CORINFO_HELP_STOP_FOR_GC] G_M000_IG06: mov rax, qword ptr [rbp-0x68] mov qword ptr [rbx+0x08], rax G_M000_IG07: add rsp, 104 pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ; Total bytes of code 146 ; Assembly listing for method Program:TestPInvokeILStub() (Tier1) ; Emitting BLENDED_CODE for X64 with AVX - Windows ; Tier1 code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data G_M000_IG01: push rbp sub rsp, 32 vzeroupper lea rbp, [rsp+0x20] G_M000_IG02: call Program:GetTickCountILStub():uint nop G_M000_IG03: add rsp, 32 pop rbp ret ; Total bytes of code 25 Bench: 5074.68 ms BenchILStub: 9519.53 ms
違いを見つける