Diff
checker
テキスト
テキスト
画像
ドキュメント
Excel
フォルダ
Legal
Enterprise
デスクトップ
料金
ログイン
Diffchecker デスクトップのダウンロード
テキスト比較
2 つのテキスト ファイルの違いを見つける
ツール
履歴
表示
レイアウト
分割
統合
ライブエディター
空白の変更を非表示
未変更行を折りたたむ
折り返しなし
比較精度
スマート
構文
なし
外観を変更
処理
無視
テキスト変換
最初の差分へ移動
入力を編集
Diffchecker Desktop
Diffcheckerを実行する最も安全な方法。Diffchecker Desktopアプリを入手:あなたの差分はコンピューターから出ることはありません!
Desktopを入手
Untitled diff
作成日
2 年前
差分は期限切れになりません
クリア
エクスポート
共有
説明
96 削除
行
合計
削除
文字
合計
削除
この機能を引き続き使用するには、アップグレードしてください
Diff
checker
Pro
価格を見る
209 行
すべてコピー
137 追加
行
合計
追加
文字
合計
追加
この機能を引き続き使用するには、アップグレードしてください
Diff
checker
Pro
価格を見る
250 行
すべてコピー
; Assembly listing for method System.TimeZoneInfo:ParseTimeZoneIds(System.IO.StreamReader):System.Collections.Generic.List`1[System.String] (FullOpts)
; Assembly listing for method System.TimeZoneInfo:ParseTimeZoneIds(System.IO.StreamReader):System.Collections.Generic.List`1[System.String] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; FullOpts code
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; partially interruptible
; partially interruptible
; No PGO data
; No PGO data
コピー
コピー済み
コピー
コピー済み
; 0 inlinees with PGO data;
20
single block inlinees;
8
inlinees without PGO data
; 0 inlinees with PGO data;
22
single block inlinees;
10
inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
コピー
コピー済み
コピー
コピー済み
; V00 arg0 [V00,T0
6
] ( 5, 8 ) ref -> rbx class-hnd single-def <System.IO.StreamReader>
; V00 arg0 [V00,T0
8
] ( 5, 8 ) ref -> rbx class-hnd single-def <System.IO.StreamReader>
; V01 loc0 [V01,T0
3
] ( 8, 14 ) ref -> r15 class-hnd exact single-def <System.Collections.Generic.List`1[System.String]>
; V01 loc0 [V01,T0
5
] ( 8, 14 ) ref -> r15 class-hnd exact single-def <System.Collections.Generic.List`1[System.String]>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
;* V03 loc2 [V03 ] ( 0, 0 ) int -> zero-ref
;* V03 loc2 [V03 ] ( 0, 0 ) int -> zero-ref
;* V04 loc3 [V04 ] ( 0, 0 ) int -> zero-ref
;* V04 loc3 [V04 ] ( 0, 0 ) int -> zero-ref
コピー
コピー済み
コピー
コピー済み
; V05 loc4 [V05,T0
5
] ( 6, 12 ) ref -> rax class-hnd <System.String>
; V05 loc4 [V05,T0
7
] ( 6, 12 ) ref -> rax class-hnd <System.String>
; V06 loc5 [V06,T02] (
8, 16
) int -> [rbp-0x2C] spill-single-def
; V06 loc5 [V06,T02] (
10, 18.50
) int -> [rbp-0x2C] spill-single-def
;* V07 loc6 [V07 ] ( 0, 0 ) int -> zero-ref
;* V07 loc6 [V07 ] ( 0, 0 ) int -> zero-ref
コピー
コピー済み
コピー
コピー済み
;
*
V08 loc7 [V08
] (
0, 0
) int ->
zero-ref
;
V08 loc7 [V08
,T06
] (
7, 12.50
) int ->
rdx
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
コピー
コピー済み
コピー
コピー済み
; V10 tmp1 [V10,
T19
] ( 3, 6 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.String]>
; V10 tmp1 [V10,
T22
] ( 3, 6 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.String]>
; V11 tmp2 [V11,T00] (
10, 48
) ref -> r13 class-hnd exact "dup spill" <System.String>
; V11 tmp2 [V11,T00] (
11, 49
) ref -> r13 class-hnd exact "dup spill" <System.String>
;* V12 tmp3 [V12,T2
4
] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V12 tmp3 [V12,T2
8
] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V13 tmp4 [V13,T1
3
] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V13 tmp4 [V13,T1
6
] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V14 tmp5 [V14,T1
6
] ( 2, 8 ) int -> rdx "Inlining Arg"
; V14 tmp5 [V14,T1
9
] ( 2, 8 ) int -> rdx "Inlining Arg"
; V15 tmp6 [V15,T2
1
] ( 3, 6 ) int -> rax "Inline return value spill temp"
; V15 tmp6 [V15,T2
4
] ( 3, 6 ) int -> rax "Inline return value spill temp"
; V16 tmp7 [V16,T01] ( 5, 20 ) int -> [rbp-0x30] spill-single-def "Inlining Arg"
; V16 tmp7 [V16,T01] ( 5, 20 ) int -> [rbp-0x30] spill-single-def "Inlining Arg"
コピー
コピー済み
コピー
コピー済み
; V17 tmp8 [V17,
T08
] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V17 tmp8 [V17,
T11
] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V18 tmp9 [V18,
T17
] ( 2, 8 ) int -> rdx "Inlining Arg"
; V18 tmp9 [V18,
T20
] ( 2, 8 ) int -> rdx "Inlining Arg"
;* V19 tmp10 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V19 tmp10 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
コピー
コピー済み
コピー
コピー済み
; V20 tmp11 [V20,T1
4
] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V20 tmp11 [V20,T1
7
] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V21 tmp12 [V21,
T09
] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V21 tmp12 [V21,
T12
] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V22 tmp13 [V22,T1
0
] ( 4, 8 ) int -> r
d
x "Inline return value spill temp"
; V22 tmp13 [V22,T1
3
] ( 4, 8 ) int -> r
a
x "Inline return value spill temp"
; V23 tmp14 [V23,T
18
] ( 2, 8 ) int -> rdx "Inlining Arg"
; V23 tmp14 [V23,T
21
] ( 2, 8 ) int -> rdx "Inlining Arg"
;* V24 tmp15 [V24 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V24 tmp15 [V24 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
コピー
コピー済み
コピー
コピー済み
; V25 tmp16 [V25,T1
5
] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V25 tmp16 [V25,T1
8
] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V26 tmp17 [V26,T1
1
] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V26 tmp17 [V26,T1
4
] ( 4, 8 ) int -> rax "Inline return value spill temp"
;
*
V27 tmp18 [V27,
T25
] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;
V27 tmp18 [V27,
T10] ( 4, 8 ) ref -> rax class-hnd exact "Inline return value spill temp" <System.String>
;
V28 tmp19
[
V28
,T2
0
] ( 3, 6 ) ref -> r13 class-hnd "Inline stloc first use temp" <System.String[]>
;* V28 tmp19 [V28 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;
V29
tmp2
0
[
V29
,T1
2
] ( 4, 8 ) int -> r12 "Inline stloc first use temp"
; V29 tmp20 [V29,T26] ( 2, 4 ) long -> r13 "Inline stloc first use temp"
; V3
0
cse0 [V3
0
,T2
2
] ( 3, 6 ) long -> r14 "CSE #
05
: moderate"
; V30 tmp21 [V30,T04] ( 4, 16 ) ref -> r12 class-hnd exact "dup spill" <System.String>
; V3
1
cse1 [V3
1
,T0
4
] (
7, 14
) int -> r12 "CSE #01: aggressive"
;* V31 tmp22 [V31 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V3
2
cse2 [V3
2
,T0
7
] (
4, 8
) byref -> [rbp-0x38] spill-single-def "CSE #02: moderate"
;* V32 tmp23 [V32 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V3
3
cse3 [V3
3
,T2
3
] ( 2, 4 ) int -> rdi "CSE #
03
: moderate"
;* V33 tmp24 [V33,T29
] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;
V34 tmp25
[
V34
,T2
3
] ( 3, 6 ) ref -> r13 class-hnd "Inline stloc first use temp" <System.String[]>
;
V35
tmp2
6
[
V35
,T1
5
] ( 4, 8 ) int -> r12 "Inline stloc first use temp"
; V3
6
cse0 [V3
6
,T2
5
] ( 3, 6 ) long -> r14 "CSE #
07
: moderate"
; V3
7
cse1 [V3
7
,T0
3
] (
9, 18
) int -> r12 "CSE #01: aggressive"
; V3
8
cse2 [V3
8
,T0
9
] (
5, 10
) byref -> [rbp-0x38] spill-single-def "CSE #02: moderate"
; V3
9
cse3 [V3
9
,T2
7
] ( 2, 4 ) int -> rdi "CSE #
05
: moderate"
;
;
; Lcl frame size = 24
; Lcl frame size = 24
G_M60059_IG01:
G_M60059_IG01:
push rbp
push rbp
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rbx
push rbx
sub rsp, 24
sub rsp, 24
lea rbp, [rsp+0x40]
lea rbp, [rsp+0x40]
mov rbx, rdi
mov rbx, rdi
;; size=22 bbWeight=1 PerfScore 7.00
;; size=22 bbWeight=1 PerfScore 7.00
G_M60059_IG02:
G_M60059_IG02:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.String]
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.String]
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov r15, rax
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [r15+0x08]
lea rdi, bword ptr [r15+0x08]
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
mov rdi, rbx
mov rdi, rbx
mov rax, qword ptr [rbx]
mov rax, qword ptr [rbx]
mov r14, qword ptr [rax+0x48]
mov r14, qword ptr [rax+0x48]
call [r14+0x38]System.IO.TextReader:ReadLine():System.String:this
call [r14+0x38]System.IO.TextReader:ReadLine():System.String:this
mov r13, rax
mov r13, rax
test r13, r13
test r13, r13
コピー
コピー済み
コピー
コピー済み
je G_M60059_IG1
3
je G_M60059_IG1
5
;; size=66 bbWeight=1 PerfScore 14.00
;; size=66 bbWeight=1 PerfScore 14.00
G_M60059_IG03:
G_M60059_IG03:
test r13, r13
test r13, r13
コピー
コピー済み
コピー
コピー済み
je G_M60059_IG1
2
je G_M60059_IG1
4
;; size=9 bbWeight=4 PerfScore 5.00
;; size=9 bbWeight=4 PerfScore 5.00
G_M60059_IG04:
G_M60059_IG04:
mov r12d, dword ptr [r13+0x08]
mov r12d, dword ptr [r13+0x08]
test r12d, r12d
test r12d, r12d
コピー
コピー済み
コピー
コピー済み
je G_M60059_IG1
2
je G_M60059_IG1
4
cmp word ptr [r13+0x0C], 35
cmp word ptr [r13+0x0C], 35
コピー
コピー済み
コピー
コピー済み
je G_M60059_IG1
2
je G_M60059_IG1
4
lea rax, bword ptr [r13+0x0C]
lea rax, bword ptr [r13+0x0C]
mov bword ptr [rbp-0x38], rax
mov bword ptr [rbp-0x38], rax
mov rdi, rax
mov rdi, rax
mov edx, r12d
mov edx, r12d
mov esi, 9
mov esi, 9
mov rcx, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
mov rcx, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
call [rcx]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
call [rcx]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
test eax, eax
test eax, eax
コピー
コピー済み
コピー
コピー済み
jl G_M60059_IG1
2
jl G_M60059_IG1
4
inc eax
inc eax
mov dword ptr [rbp-0x30], eax
mov dword ptr [rbp-0x30], eax
mov edx, r12d
mov edx, r12d
sub edx, eax
sub edx, eax
cmp r12d, eax
cmp r12d, eax
コピー
コピー済み
コピー
コピー済み
jb G_M60059_IG1
5
jb G_M60059_IG1
8
movsxd rdi, eax
movsxd rdi, eax
mov rcx, bword ptr [rbp-0x38]
mov rcx, bword ptr [rbp-0x38]
lea rdi, bword ptr [rcx+2*rdi]
lea rdi, bword ptr [rcx+2*rdi]
mov esi, 9
mov esi, 9
mov r8, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
mov r8, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
call [r8]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
call [r8]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
test eax, eax
test eax, eax
jge SHORT G_M60059_IG05
jge SHORT G_M60059_IG05
jmp SHORT G_M60059_IG06
jmp SHORT G_M60059_IG06
;; size=118 bbWeight=2 PerfScore 51.00
;; size=118 bbWeight=2 PerfScore 51.00
G_M60059_IG05:
G_M60059_IG05:
mov edi, dword ptr [rbp-0x30]
mov edi, dword ptr [rbp-0x30]
add eax, edi
add eax, edi
;; size=5 bbWeight=2 PerfScore 2.50
;; size=5 bbWeight=2 PerfScore 2.50
G_M60059_IG06:
G_M60059_IG06:
test eax, eax
test eax, eax
コピー
コピー済み
コピー
コピー済み
jl G_M60059_IG1
2
jl G_M60059_IG1
4
inc eax
inc eax
mov dword ptr [rbp-0x2C], eax
mov dword ptr [rbp-0x2C], eax
mov edx, r12d
mov edx, r12d
保存された差分
原文
ファイルを開く
; Assembly listing for method System.TimeZoneInfo:ParseTimeZoneIds(System.IO.StreamReader):System.Collections.Generic.List`1[System.String] (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 20 single block inlinees; 8 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T06] ( 5, 8 ) ref -> rbx class-hnd single-def <System.IO.StreamReader> ; V01 loc0 [V01,T03] ( 8, 14 ) ref -> r15 class-hnd exact single-def <System.Collections.Generic.List`1[System.String]> ;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String> ;* V03 loc2 [V03 ] ( 0, 0 ) int -> zero-ref ;* V04 loc3 [V04 ] ( 0, 0 ) int -> zero-ref ; V05 loc4 [V05,T05] ( 6, 12 ) ref -> rax class-hnd <System.String> ; V06 loc5 [V06,T02] ( 8, 16 ) int -> [rbp-0x2C] spill-single-def ;* V07 loc6 [V07 ] ( 0, 0 ) int -> zero-ref ;* V08 loc7 [V08 ] ( 0, 0 ) int -> zero-ref ;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty> ; V10 tmp1 [V10,T19] ( 3, 6 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.String]> ; V11 tmp2 [V11,T00] ( 10, 48 ) ref -> r13 class-hnd exact "dup spill" <System.String> ;* V12 tmp3 [V12,T24] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ; V13 tmp4 [V13,T13] ( 2, 8 ) byref -> rdi "Inlining Arg" ; V14 tmp5 [V14,T16] ( 2, 8 ) int -> rdx "Inlining Arg" ; V15 tmp6 [V15,T21] ( 3, 6 ) int -> rax "Inline return value spill temp" ; V16 tmp7 [V16,T01] ( 5, 20 ) int -> [rbp-0x30] spill-single-def "Inlining Arg" ; V17 tmp8 [V17,T08] ( 4, 8 ) int -> rax "Inline return value spill temp" ; V18 tmp9 [V18,T17] ( 2, 8 ) int -> rdx "Inlining Arg" ;* V19 tmp10 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V20 tmp11 [V20,T14] ( 2, 8 ) byref -> rdi "Inlining Arg" ; V21 tmp12 [V21,T09] ( 4, 8 ) int -> rax "Inline return value spill temp" ; V22 tmp13 [V22,T10] ( 4, 8 ) int -> rdx "Inline return value spill temp" ; V23 tmp14 [V23,T18] ( 2, 8 ) int -> rdx "Inlining Arg" ;* V24 tmp15 [V24 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V25 tmp16 [V25,T15] ( 2, 8 ) byref -> rdi "Inlining Arg" ; V26 tmp17 [V26,T11] ( 4, 8 ) int -> rax "Inline return value spill temp" ;* V27 tmp18 [V27,T25] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ; V28 tmp19 [V28,T20] ( 3, 6 ) ref -> r13 class-hnd "Inline stloc first use temp" <System.String[]> ; V29 tmp20 [V29,T12] ( 4, 8 ) int -> r12 "Inline stloc first use temp" ; V30 cse0 [V30,T22] ( 3, 6 ) long -> r14 "CSE #05: moderate" ; V31 cse1 [V31,T04] ( 7, 14 ) int -> r12 "CSE #01: aggressive" ; V32 cse2 [V32,T07] ( 4, 8 ) byref -> [rbp-0x38] spill-single-def "CSE #02: moderate" ; V33 cse3 [V33,T23] ( 2, 4 ) int -> rdi "CSE #03: moderate" ; ; Lcl frame size = 24 G_M60059_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 24 lea rbp, [rsp+0x40] mov rbx, rdi ;; size=22 bbWeight=1 PerfScore 7.00 G_M60059_IG02: mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.String] call CORINFO_HELP_NEWSFAST mov r15, rax mov rdi, 0xD1FFAB1E ; const ptr mov rsi, gword ptr [rdi] lea rdi, bword ptr [r15+0x08] call CORINFO_HELP_ASSIGN_REF mov rdi, rbx mov rax, qword ptr [rbx] mov r14, qword ptr [rax+0x48] call [r14+0x38]System.IO.TextReader:ReadLine():System.String:this mov r13, rax test r13, r13 je G_M60059_IG13 ;; size=66 bbWeight=1 PerfScore 14.00 G_M60059_IG03: test r13, r13 je G_M60059_IG12 ;; size=9 bbWeight=4 PerfScore 5.00 G_M60059_IG04: mov r12d, dword ptr [r13+0x08] test r12d, r12d je G_M60059_IG12 cmp word ptr [r13+0x0C], 35 je G_M60059_IG12 lea rax, bword ptr [r13+0x0C] mov bword ptr [rbp-0x38], rax mov rdi, rax mov edx, r12d mov esi, 9 mov rcx, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int call [rcx]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int test eax, eax jl G_M60059_IG12 inc eax mov dword ptr [rbp-0x30], eax mov edx, r12d sub edx, eax cmp r12d, eax jb G_M60059_IG15 movsxd rdi, eax mov rcx, bword ptr [rbp-0x38] lea rdi, bword ptr [rcx+2*rdi] mov esi, 9 mov r8, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int call [r8]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int test eax, eax jge SHORT G_M60059_IG05 jmp SHORT G_M60059_IG06 ;; size=118 bbWeight=2 PerfScore 51.00 G_M60059_IG05: mov edi, dword ptr [rbp-0x30] add eax, edi ;; size=5 bbWeight=2 PerfScore 2.50 G_M60059_IG06: test eax, eax jl G_M60059_IG12 inc eax mov dword ptr [rbp-0x2C], eax mov edx, r12d sub edx, eax cmp r12d, eax jb G_M60059_IG15 movsxd rdi, eax mov r12, bword ptr [rbp-0x38] lea rdi, bword ptr [r12+2*rdi] mov esi, 9 mov rcx, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int call [rcx]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int test eax, eax jge SHORT G_M60059_IG07 mov edx, eax mov r12d, dword ptr [rbp-0x2C] jmp SHORT G_M60059_IG08 ;; size=67 bbWeight=2 PerfScore 28.00 G_M60059_IG07: mov r12d, dword ptr [rbp-0x2C] lea edx, [rax+r12] ;; size=8 bbWeight=2 PerfScore 3.00 G_M60059_IG08: test edx, edx jge SHORT G_M60059_IG09 mov rdi, r13 mov esi, r12d mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this call [rax]System.String:Substring(int):System.String:this jmp SHORT G_M60059_IG10 ;; size=24 bbWeight=2 PerfScore 14.00 G_M60059_IG09: sub edx, r12d mov rdi, r13 mov esi, r12d mov rax, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this call [rax]System.String:Substring(int,int):System.String:this ;; size=21 bbWeight=2 PerfScore 8.00 G_M60059_IG10: test rax, rax je SHORT G_M60059_IG12 cmp dword ptr [rax+0x08], 0 je SHORT G_M60059_IG12 inc dword ptr [r15+0x14] mov r13, gword ptr [r15+0x08] mov r12d, dword ptr [r15+0x10] mov edi, dword ptr [r13+0x08] cmp edi, r12d ja SHORT G_M60059_IG11 mov rdi, r15 mov rsi, rax mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this call [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this jmp SHORT G_M60059_IG12 ;; size=52 bbWeight=2 PerfScore 42.50 G_M60059_IG11: lea edi, [r12+0x01] mov dword ptr [r15+0x10], edi mov edi, r12d lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF ;; size=25 bbWeight=2 PerfScore 10.00 G_M60059_IG12: mov rdi, rbx call [r14+0x38]System.IO.TextReader:ReadLine():System.String:this mov r13, rax test r13, r13 jne G_M60059_IG03 ;; size=19 bbWeight=4 PerfScore 19.00 G_M60059_IG13: mov rax, r15 ;; size=3 bbWeight=1 PerfScore 0.25 G_M60059_IG14: add rsp, 24 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 G_M60059_IG15: mov edi, 8 xor esi, esi mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int) call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int) int3 ;; size=20 bbWeight=0.50 PerfScore 2.00 ; Total bytes of code 474, prolog size 19, PerfScore 210.50, instruction count 129, allocated bytes for code 474 (MethodHash=22bb1564) for method System.TimeZoneInfo:ParseTimeZoneIds(System.IO.StreamReader):System.Collections.Generic.List`1[System.String] (FullOpts) ; ============================================================
変更されたテキスト
ファイルを開く
; Assembly listing for method System.TimeZoneInfo:ParseTimeZoneIds(System.IO.StreamReader):System.Collections.Generic.List`1[System.String] (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 22 single block inlinees; 10 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T08] ( 5, 8 ) ref -> rbx class-hnd single-def <System.IO.StreamReader> ; V01 loc0 [V01,T05] ( 8, 14 ) ref -> r15 class-hnd exact single-def <System.Collections.Generic.List`1[System.String]> ;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String> ;* V03 loc2 [V03 ] ( 0, 0 ) int -> zero-ref ;* V04 loc3 [V04 ] ( 0, 0 ) int -> zero-ref ; V05 loc4 [V05,T07] ( 6, 12 ) ref -> rax class-hnd <System.String> ; V06 loc5 [V06,T02] ( 10, 18.50) int -> [rbp-0x2C] spill-single-def ;* V07 loc6 [V07 ] ( 0, 0 ) int -> zero-ref ; V08 loc7 [V08,T06] ( 7, 12.50) int -> rdx ;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty> ; V10 tmp1 [V10,T22] ( 3, 6 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.String]> ; V11 tmp2 [V11,T00] ( 11, 49 ) ref -> r13 class-hnd exact "dup spill" <System.String> ;* V12 tmp3 [V12,T28] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ; V13 tmp4 [V13,T16] ( 2, 8 ) byref -> rdi "Inlining Arg" ; V14 tmp5 [V14,T19] ( 2, 8 ) int -> rdx "Inlining Arg" ; V15 tmp6 [V15,T24] ( 3, 6 ) int -> rax "Inline return value spill temp" ; V16 tmp7 [V16,T01] ( 5, 20 ) int -> [rbp-0x30] spill-single-def "Inlining Arg" ; V17 tmp8 [V17,T11] ( 4, 8 ) int -> rax "Inline return value spill temp" ; V18 tmp9 [V18,T20] ( 2, 8 ) int -> rdx "Inlining Arg" ;* V19 tmp10 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V20 tmp11 [V20,T17] ( 2, 8 ) byref -> rdi "Inlining Arg" ; V21 tmp12 [V21,T12] ( 4, 8 ) int -> rax "Inline return value spill temp" ; V22 tmp13 [V22,T13] ( 4, 8 ) int -> rax "Inline return value spill temp" ; V23 tmp14 [V23,T21] ( 2, 8 ) int -> rdx "Inlining Arg" ;* V24 tmp15 [V24 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V25 tmp16 [V25,T18] ( 2, 8 ) byref -> rdi "Inlining Arg" ; V26 tmp17 [V26,T14] ( 4, 8 ) int -> rax "Inline return value spill temp" ; V27 tmp18 [V27,T10] ( 4, 8 ) ref -> rax class-hnd exact "Inline return value spill temp" <System.String> ;* V28 tmp19 [V28 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ; V29 tmp20 [V29,T26] ( 2, 4 ) long -> r13 "Inline stloc first use temp" ; V30 tmp21 [V30,T04] ( 4, 16 ) ref -> r12 class-hnd exact "dup spill" <System.String> ;* V31 tmp22 [V31 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V32 tmp23 [V32 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V33 tmp24 [V33,T29] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ; V34 tmp25 [V34,T23] ( 3, 6 ) ref -> r13 class-hnd "Inline stloc first use temp" <System.String[]> ; V35 tmp26 [V35,T15] ( 4, 8 ) int -> r12 "Inline stloc first use temp" ; V36 cse0 [V36,T25] ( 3, 6 ) long -> r14 "CSE #07: moderate" ; V37 cse1 [V37,T03] ( 9, 18 ) int -> r12 "CSE #01: aggressive" ; V38 cse2 [V38,T09] ( 5, 10 ) byref -> [rbp-0x38] spill-single-def "CSE #02: moderate" ; V39 cse3 [V39,T27] ( 2, 4 ) int -> rdi "CSE #05: moderate" ; ; Lcl frame size = 24 G_M60059_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 24 lea rbp, [rsp+0x40] mov rbx, rdi ;; size=22 bbWeight=1 PerfScore 7.00 G_M60059_IG02: mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.String] call CORINFO_HELP_NEWSFAST mov r15, rax mov rdi, 0xD1FFAB1E ; const ptr mov rsi, gword ptr [rdi] lea rdi, bword ptr [r15+0x08] call CORINFO_HELP_ASSIGN_REF mov rdi, rbx mov rax, qword ptr [rbx] mov r14, qword ptr [rax+0x48] call [r14+0x38]System.IO.TextReader:ReadLine():System.String:this mov r13, rax test r13, r13 je G_M60059_IG15 ;; size=66 bbWeight=1 PerfScore 14.00 G_M60059_IG03: test r13, r13 je G_M60059_IG14 ;; size=9 bbWeight=4 PerfScore 5.00 G_M60059_IG04: mov r12d, dword ptr [r13+0x08] test r12d, r12d je G_M60059_IG14 cmp word ptr [r13+0x0C], 35 je G_M60059_IG14 lea rax, bword ptr [r13+0x0C] mov bword ptr [rbp-0x38], rax mov rdi, rax mov edx, r12d mov esi, 9 mov rcx, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int call [rcx]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int test eax, eax jl G_M60059_IG14 inc eax mov dword ptr [rbp-0x30], eax mov edx, r12d sub edx, eax cmp r12d, eax jb G_M60059_IG18 movsxd rdi, eax mov rcx, bword ptr [rbp-0x38] lea rdi, bword ptr [rcx+2*rdi] mov esi, 9 mov r8, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int call [r8]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int test eax, eax jge SHORT G_M60059_IG05 jmp SHORT G_M60059_IG06 ;; size=118 bbWeight=2 PerfScore 51.00 G_M60059_IG05: mov edi, dword ptr [rbp-0x30] add eax, edi ;; size=5 bbWeight=2 PerfScore 2.50 G_M60059_IG06: test eax, eax jl G_M60059_IG14 inc eax mov dword ptr [rbp-0x2C], eax mov edx, r12d sub edx, eax cmp r12d, eax jb G_M60059_IG18 movsxd rdi, eax mov rcx, bword ptr [rbp-0x38] lea rdi, bword ptr [rcx+2*rdi] mov esi, 9 mov r8, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int call [r8]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int test eax, eax jge SHORT G_M60059_IG07 mov ecx, dword ptr [rbp-0x2C] jmp SHORT G_M60059_IG08 ;; size=65 bbWeight=2 PerfScore 27.50 G_M60059_IG07: mov ecx, dword ptr [rbp-0x2C] add eax, ecx ;; size=5 bbWeight=2 PerfScore 2.50 G_M60059_IG08: test eax, eax jge SHORT G_M60059_IG09 mov rdi, r13 mov esi, ecx mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this call [rax]System.String:Substring(int):System.String:this jmp SHORT G_M60059_IG12 ;; size=23 bbWeight=2 PerfScore 14.00 G_M60059_IG09: mov edx, eax sub edx, ecx mov edi, ecx mov eax, edx add rdi, rax mov eax, r12d cmp rdi, rax ja G_M60059_IG17 test edx, edx je SHORT G_M60059_IG11 cmp r12d, edx je SHORT G_M60059_IG10 mov r13d, edx mov edi, edx call System.String:FastAllocateString(int):System.String mov r12, rax mov esi, dword ptr [rbp-0x2C] mov rdi, bword ptr [rbp-0x38] lea rsi, bword ptr [rdi+2*rsi] cmp byte ptr [r12], r12b lea rdi, bword ptr [r12+0x0C] lea rdx, [r13+r13] mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) call [rax]System.SpanHelpers:Memmove(byref,byref,ulong) mov rax, r12 jmp SHORT G_M60059_IG12 ;; size=87 bbWeight=2 PerfScore 41.00 G_M60059_IG10: mov rax, r13 jmp SHORT G_M60059_IG12 ;; size=5 bbWeight=2 PerfScore 4.50 G_M60059_IG11: mov rax, 0xD1FFAB1E ; '' ;; size=10 bbWeight=2 PerfScore 0.50 G_M60059_IG12: test rax, rax je SHORT G_M60059_IG14 cmp dword ptr [rax+0x08], 0 je SHORT G_M60059_IG14 inc dword ptr [r15+0x14] mov r13, gword ptr [r15+0x08] mov r12d, dword ptr [r15+0x10] mov edi, dword ptr [r13+0x08] cmp edi, r12d ja SHORT G_M60059_IG13 mov rdi, r15 mov rsi, rax mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this call [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this jmp SHORT G_M60059_IG14 ;; size=52 bbWeight=2 PerfScore 42.50 G_M60059_IG13: lea edi, [r12+0x01] mov dword ptr [r15+0x10], edi mov edi, r12d lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF ;; size=25 bbWeight=2 PerfScore 10.00 G_M60059_IG14: mov rdi, rbx call [r14+0x38]System.IO.TextReader:ReadLine():System.String:this mov r13, rax test r13, r13 jne G_M60059_IG03 ;; size=19 bbWeight=4 PerfScore 19.00 G_M60059_IG15: mov rax, r15 ;; size=3 bbWeight=1 PerfScore 0.25 G_M60059_IG16: add rsp, 24 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 G_M60059_IG17: mov ecx, dword ptr [rbp-0x2C] mov rdi, r13 mov esi, ecx mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this int3 ;; size=21 bbWeight=0.50 PerfScore 2.50 G_M60059_IG18: mov edi, 8 xor esi, esi mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int) call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int) int3 ;; size=20 bbWeight=0.50 PerfScore 2.00 ; Total bytes of code 570, prolog size 19, PerfScore 250.00, instruction count 158, allocated bytes for code 570 (MethodHash=22bb1564) for method System.TimeZoneInfo:ParseTimeZoneIds(System.IO.StreamReader):System.Collections.Generic.List`1[System.String] (FullOpts) ; ============================================================
違いを見つける