Diff
checker
文本
文本
圖像
文檔
Excel
文件夾
Legal
Enterprise
桌面版
定價
登入
下載 Diffchecker 桌面版
比較文本
尋找兩個文字檔案之間的差異
工具
歷史
即時編輯器
摺疊未變更行
關閉換行
檢視
拆分
統一
比對精度
智能
單詞
字符
語法突出顯示
選擇語法
忽略
文字轉換
前往第一個差異
編輯輸入
Diffchecker Desktop
執行Diffchecker最安全的方式。取得Diffchecker桌面應用程式:您的差異永遠不會離開您的電腦!
取得桌面版
Untitled diff
建立於
去年
差異永不過期
清除
匯出
分享
解釋
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
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
r12
, bword ptr [rbp-0x38]
mov
rcx
, bword ptr [rbp-0x38]
lea rdi, bword ptr [
r12
+2*rdi]
lea rdi, bword ptr [
rcx
+2*rdi]
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
r8
, 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 [
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_IG07
jge SHORT G_M60059_IG07
複製
已複製
複製
已複製
mov e
dx, eax
mov e
cx,
dword ptr [rbp-0x2C]
mov r12d,
dword ptr [rbp-0x2C]
jmp SHORT G_M60059_IG08
jmp SHORT G_M60059_IG08
複製
已複製
複製
已複製
;; size=
67
bbWeight=2 PerfScore
28.00
;; size=
65
bbWeight=2 PerfScore
27.50
G_M60059_IG07:
G_M60059_IG07:
複製
已複製
複製
已複製
mov
r12d
, dword ptr [rbp-0x2C]
mov
ecx
, dword ptr [rbp-0x2C]
lea
e
d
x,
[rax+r12]
add
e
a
x,
ecx
;; size=
8
bbWeight=2 PerfScore
3.00
;; size=
5
bbWeight=2 PerfScore
2.50
G_M60059_IG08:
G_M60059_IG08:
複製
已複製
複製
已複製
test e
d
x, e
d
x
test e
a
x, e
a
x
jge SHORT G_M60059_IG09
jge SHORT G_M60059_IG09
mov rdi, r13
mov rdi, r13
複製
已複製
複製
已複製
mov esi,
r12d
mov esi,
ecx
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this
call [rax]System.String:Substring(int):System.String:this
call [rax]System.String:Substring(int):System.String:this
複製
已複製
複製
已複製
jmp SHORT G_M60059_IG1
0
jmp SHORT G_M60059_IG1
2
;; size=
24
bbWeight=2 PerfScore 14.00
;; size=
23
bbWeight=2 PerfScore 14.00
G_M60059_IG09:
G_M60059_IG09:
複製
已複製
複製
已複製
sub edx, r12d
mov edx, eax
mov rdi, r13
sub edx, ecx
mov esi, r12d
mov edi, ecx
mov rax, 0xD1FFAB1E ; code for System.
String:Substring(int,int):System.String:this
mov eax, edx
call [rax]System.
String:Substring(int,int):System.String:this
add rdi, rax
;; size=21 bbWeight=2 PerfScore 8.00
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:
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
test rax, rax
複製
已複製
複製
已複製
je SHORT G_M60059_IG1
2
je SHORT G_M60059_IG1
4
cmp dword ptr [rax+0x08], 0
cmp dword ptr [rax+0x08], 0
複製
已複製
複製
已複製
je SHORT G_M60059_IG1
2
je SHORT G_M60059_IG1
4
inc dword ptr [r15+0x14]
inc dword ptr [r15+0x14]
mov r13, gword ptr [r15+0x08]
mov r13, gword ptr [r15+0x08]
mov r12d, dword ptr [r15+0x10]
mov r12d, dword ptr [r15+0x10]
mov edi, dword ptr [r13+0x08]
mov edi, dword ptr [r13+0x08]
cmp edi, r12d
cmp edi, r12d
複製
已複製
複製
已複製
ja SHORT G_M60059_IG1
1
ja SHORT G_M60059_IG1
3
mov rdi, r15
mov rdi, r15
mov rsi, rax
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
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
call [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
複製
已複製
複製
已複製
jmp SHORT G_M60059_IG1
2
jmp SHORT G_M60059_IG1
4
;; size=52 bbWeight=2 PerfScore 42.50
;; size=52 bbWeight=2 PerfScore 42.50
複製
已複製
複製
已複製
G_M60059_IG1
1
:
G_M60059_IG1
3
:
lea edi, [r12+0x01]
lea edi, [r12+0x01]
mov dword ptr [r15+0x10], edi
mov dword ptr [r15+0x10], edi
mov edi, r12d
mov edi, r12d
lea rdi, bword ptr [r13+8*rdi+0x10]
lea rdi, bword ptr [r13+8*rdi+0x10]
mov rsi, rax
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
;; size=25 bbWeight=2 PerfScore 10.00
;; size=25 bbWeight=2 PerfScore 10.00
複製
已複製
複製
已複製
G_M60059_IG1
2
:
G_M60059_IG1
4
:
mov rdi, rbx
mov rdi, rbx
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
jne G_M60059_IG03
jne G_M60059_IG03
;; size=19 bbWeight=4 PerfScore 19.00
;; size=19 bbWeight=4 PerfScore 19.00
複製
已複製
複製
已複製
G_M60059_IG1
3
:
G_M60059_IG1
5
:
mov rax, r15
mov rax, r15
;; size=3 bbWeight=1 PerfScore 0.25
;; size=3 bbWeight=1 PerfScore 0.25
複製
已複製
複製
已複製
G_M60059_IG1
4
:
G_M60059_IG1
6
:
add rsp, 24
add rsp, 24
pop rbx
pop rbx
pop r12
pop r12
pop r13
pop r13
pop r14
pop r14
pop r15
pop r15
pop rbp
pop rbp
ret
ret
;; size=15 bbWeight=1 PerfScore 4.25
;; size=15 bbWeight=1 PerfScore 4.25
複製
已複製
複製
已複製
G_M60059_
IG15:
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
mov edi, 8
xor esi, esi
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
int3
int3
;; size=20 bbWeight=0.50 PerfScore 2.00
;; size=20 bbWeight=0.50 PerfScore 2.00
複製
已複製
複製
已複製
; Total bytes of code
474
, prolog size 19, PerfScore 2
10.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)
; Total bytes of code
570
, prolog size 19, PerfScore 2
50.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)
; ============================================================
; ============================================================
已保存差異
原始文本
開啟檔案
; 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) ; ============================================================
尋找差異