Diff
checker
文本
文本
图像
文档
Excel
文件夹
Legal
Enterprise
桌面版
定价
登录
下载 Diffchecker 桌面版
比较文本
查找两个文本文件之间的差异
工具
历史
显示
视图
拆分
统一
实时编辑器
隐藏空白更改
折叠未更改行
关闭换行
比对精度
智能
语法
无
更改外观
处理
忽略
文本转换
转到第一个差异
编辑输入
Diffchecker Desktop
运行Diffchecker最安全的方式。获取Diffchecker桌面应用:您的差异永远不会离开您的电脑!
获取桌面版
Untitled Diff
创建于
4年前
差异永不过期
清除
导出
分享
解释
117 删除
行
总计
删除
字符
总计
删除
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
210 行
全部复制
100 添加
行
总计
添加
字符
总计
添加
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
196 行
全部复制
; Assembly listing for method Program:Main()
; Assembly listing for method Program:Main()
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; optimized code
; optimized code
; rsp based frame
; rsp based frame
; partially interruptible
; partially interruptible
; No PGO data
; No PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
复制
已复制
复制
已复制
; V00 loc0 [V00
,T06
] ( 3, 3 ) struct (24) [rsp+
78H
] do-not-enreg[
SF]
; V00 loc0 [V00
] ( 3, 3 ) struct (24) [rsp+
50H
] do-not-enreg[
X
SF]
addr-exposed
; V01 loc1 [V01
,T07
] (
2
,
2
) struct (24) [rsp+
60H
] do-not-enreg[
S]
ld-addr-op
single-def
; V01 loc1 [V01
] (
1
,
1
) struct (24) [rsp+
38H
] do-not-enreg[
XS] must-init addr-exposed
ld-addr-op
;* V02 loc2 [V02 ] ( 0, 0 ) int -> zero-ref
;* V02 loc2 [V02 ] ( 0, 0 ) int -> zero-ref
;* V03 loc3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact
;* V03 loc3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact
; V04 OutArgs [V04 ] ( 1, 1 ) lclBlk (48) [rsp+00H] "OutgoingArgSpace"
; V04 OutArgs [V04 ] ( 1, 1 ) lclBlk (48) [rsp+00H] "OutgoingArgSpace"
; V05 tmp1 [V05,T00] ( 2, 4 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp"
; V05 tmp1 [V05,T00] ( 2, 4 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp"
;* V06 tmp2 [V06 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "impAppendStmt"
;* V06 tmp2 [V06 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "impAppendStmt"
复制
已复制
复制
已复制
; V07 tmp3 [V07
] ( 2, 4 ) struct (24) [rsp+48H] do-not-enreg[XS] addr-exposed "by-value struct argument"
; V07 tmp3 [V07
,T02] ( 2, 4 ) int -> r
s
i "argument with side effect"
; V08 tmp4 [V08 ] ( 2, 4 ) struct (24) [rsp+30H] do-not-enreg[XS] addr-exposed "by-value struct argument"
; V
08
tmp
4
[V
08
,T01] ( 2, 4 ) ref ->
rdi
single-def "argument with side effect"
; V09 tmp5 [V09
,T02] ( 2, 4 ) int -> r
d
i "argument with side effect"
;
V09
tmp
5
[
V09
,T03] ( 2, 4 ) int -> rax "argument with side effect"
; V
10
tmp
6
[V
10
,T01] ( 2, 4 ) ref ->
rbx
single-def "argument with side effect"
;* V1
0
cse0 [V1
0
,T0
5
] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
V11
tmp
7
[
V11
,T03] ( 2, 4 ) int -> rax "argument with side effect"
; V1
1
cse1 [V1
1
,T0
4
] ( 3, 3 ) ref -> rcx "CSE - aggressive"
; V12 tmp8 [V12,T04] ( 2, 4 ) int -> rsi "argument with side effect"
;* V1
3
cse0 [V1
3
,T0
8
] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
; V1
4
cse1 [V1
4
,T0
5
] ( 3, 3 ) ref -> rcx "CSE - aggressive"
;
;
复制
已复制
复制
已复制
; Lcl frame size = 1
4
4
; Lcl frame size = 1
0
4
G_M27646_IG01: ;; offset=0000H
G_M27646_IG01: ;; offset=0000H
57 push rdi
57 push rdi
56 push rsi
56 push rsi
复制
已复制
复制
已复制
53
push rbx
4883EC68
sub rsp, 1
0
4
4881EC90000000
sub rsp, 1
4
4
C5F877 vzeroupper
C5F877 vzeroupper
复制
已复制
复制
已复制
;; size=
13
bbWeight=1 PerfScore
4.25
C5D857E4 vxorps xmm4, xmm4
G_M27646_IG02: ;; offset=
000DH
C5FA7F642438 vmovdqu xmmword ptr [rsp+38H], xmm4
48B958E
884
37F97F0000 mov rcx, 0x7FF937
84
E858 ; Runtime
33C0 xor eax, eax
E8
E4
398
9
5F call CORINFO_HELP_NEWSFAST
4889442448 mov qword ptr [rsp+48H], rax
;; size=
26
bbWeight=1 PerfScore
6.83
G_M27646_IG02: ;; offset=
001AH
48B958E
846
37F97F0000 mov rcx, 0x7FF937
46
E858 ; Runtime
E8
C7
398
7
5F call CORINFO_HELP_NEWSFAST
488BF0 mov rsi, rax
488BF0 mov rsi, rax
复制
已复制
复制
已复制
48B91818
6B
37F97F0000 mov rcx, 0x7FF937
6B
1818
48B91818
2D
37F97F0000 mov rcx, 0x7FF937
2D
1818
BA05000000 mov edx, 5
BA05000000 mov edx, 5
复制
已复制
复制
已复制
E8
9D
3B8
9
5F call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
E8
80
3B8
7
5F call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
48B9C81E
8024D6
010000 mov rcx, 0x1
D6248
01EC8 ; data for Program:s_rt
48B9C81E
40DAC7
010000 mov rcx, 0x1
C7DA4
01EC8 ; data for Program:s_rt
488BD6 mov rdx, rsi
488BD6 mov rdx, rsi
复制
已复制
复制
已复制
E8
6B
E6D1FF call CORINFO_HELP_ASSIGN_REF
E8
5E
E6D1FF call CORINFO_HELP_ASSIGN_REF
48B9B81E
8024D6
010000 mov rcx, 0x1
D6248
01EB8 ; box for Program:s_2
48B9B81E
40DAC7
010000 mov rcx, 0x1
C7DA4
01EB8 ; box for Program:s_2
488B09 mov rcx, gword ptr [rcx]
488B09 mov rcx, gword ptr [rcx]
C5FA6F4108 vmovdqu xmm0, xmmword ptr [rcx+08H]
C5FA6F4108 vmovdqu xmm0, xmmword ptr [rcx+08H]
复制
已复制
复制
已复制
C5FA7F4424
78
vmovdqu xmmword ptr [rsp+
78H
], xmm0
C5FA7F4424
50
vmovdqu xmmword ptr [rsp+
50H
], xmm0
488B5118 mov rdx, qword ptr [rcx+18H]
488B5118 mov rdx, qword ptr [rcx+18H]
复制
已复制
复制
已复制
4889942488000000 mov qword ptr [rsp+88H], rdx
48895424
6
0 mov qword ptr [rsp+
6
0H], rdx
33D2 xor edx, edx
8B71
0C mov e
s
i, dword ptr [rcx+0CH]
C5F857C0 vxorps xmm0, xmm0
48B9D8E2
46
37F97F0000 mov rcx, 0x7FF937
46
E2D8 ; short[]
C5FA7F442460 vmovdqu xmmword ptr [rsp+60H], xmm0
48895424
7
0 mov qword ptr [rsp+
7
0H], rdx
C5FA6F442460 vmovdqu xmm0, xmmword ptr [rsp+60H]
C5FA7F442448 vmovdqu xmmword ptr [rsp+48H], xmm0
488B542470 mov rdx, qword ptr [rsp+70H]
4889542458 mov qword ptr [rsp+58H], rdx
400FB6742478 movzx rsi, byte ptr [rsp+78H]
8B79
0C mov e
d
i, dword ptr [rcx+0CH]
48B9D8E2
84
37F97F0000 mov rcx, 0x7FF937
84
E2D8 ; short[]
BA01000000 mov edx, 1
BA01000000 mov edx, 1
复制
已复制
复制
已复制
E8
73
3A8
9
5F call CORINFO_HELP_NEWARR_1_VC
E8
86
3A8
7
5F call CORINFO_HELP_NEWARR_1_VC
488B
D
8 mov
rbx
, rax
488B
F
8 mov
rdi
, rax
C5FA6F442478 vmovdqu xmm0, xmmword ptr [rsp+78H]
488D4C24
5
0 lea rcx, [rsp+
5
0H]
C5FA7F442430 vmovdqu xmmword ptr [rsp+30H], xmm0
488B8C2488000000 mov rcx, qword ptr [rsp+88H]
48894C2440 mov qword ptr [rsp+40H], rcx
488D4C24
3
0 lea rcx, [rsp+
3
0H]
33D2 xor edx, edx
33D2 xor edx, edx
复制
已复制
复制
已复制
FF15
92A05
B00 call [Program:M23(S0,ushort):ulong]
FF15
CEA01
B00 call [Program:M23(S0,ushort):ulong]
480FBEC0 movsx rax, al
480FBEC0 movsx rax, al
C744242801000000 mov dword ptr [rsp+28H], 1
C744242801000000 mov dword ptr [rsp+28H], 1
复制
已复制
复制
已复制
448BC
7
mov r8d, e
d
i
448BC
6
mov r8d, e
s
i
4C8BC
B
mov r9,
rbx
4C8BC
F
mov r9,
rdi
89442420 mov dword ptr [rsp+20H], eax
89442420 mov dword ptr [rsp+20H], eax
复制
已复制
复制
已复制
8BD6 mov edx, esi
488D4C24
3
8 lea rcx, [rsp+
3
8H]
488D4C24
4
8 lea rcx, [rsp+
4
8H]
0FB6542450 movzx rdx, byte ptr [rsp+50H]
FF15
87A05
B00 call [Program:M24(S1,ubyte,uint,short[],byte,ushort)]
FF15
C0A01
B00 call [Program:M24(S1,ubyte,uint,short[],byte,ushort)]
90 nop
90 nop
复制
已复制
复制
已复制
;; size=
237
bbWeight=1 PerfScore
44.58
;; size=
167
bbWeight=1 PerfScore
29.75
G_M27646_IG03: ;; offset=
00FAH
G_M27646_IG03: ;; offset=
00C1H
4881C490000000
add rsp, 1
44
4883C468
add rsp, 1
04
5B pop rbx
5E pop rsi
5E pop rsi
5F pop rdi
5F pop rdi
C3 ret
C3 ret
复制
已复制
复制
已复制
;; size=
11
bbWeight=1 PerfScore 2.
75
;; size=
7
bbWeight=1 PerfScore 2.
25
复制
已复制
复制
已复制
; Total bytes of code
261
, prolog size
13
, PerfScore
77.68
, instruction count
55
, allocated bytes for code
261
(MethodHash=cb019401) for method Program:Main()
; Total bytes of code
200
, prolog size
26
, PerfScore
58.83
, instruction count
44
, allocated bytes for code
200
(MethodHash=cb019401) for method Program:Main()
; ============================================================
; ============================================================
; Assembly listing for method Program:M23(S0,ushort):ulong
; Assembly listing for method Program:M23(S0,ushort):ulong
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; optimized code
; optimized code
; rsp based frame
; rsp based frame
; partially interruptible
; partially interruptible
; No PGO data
; No PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 arg0 [V00,T00] ( 5, 10 ) byref -> rcx ld-addr-op single-def
; V00 arg0 [V00,T00] ( 5, 10 ) byref -> rcx ld-addr-op single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ushort -> rsi single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ushort -> rsi single-def
;* V02 loc0 [V02 ] ( 0, 0 ) ubyte -> zero-ref single-def
;* V02 loc0 [V02 ] ( 0, 0 ) ubyte -> zero-ref single-def
; V03 loc1 [V03,T05] ( 2, 2 ) int -> rbx single-def
; V03 loc1 [V03,T05] ( 2, 2 ) int -> rbx single-def
; V04 loc2 [V04,T04] ( 2, 2 ) ref -> r9 class-hnd exact single-def
; V04 loc2 [V04,T04] ( 2, 2 ) ref -> r9 class-hnd exact single-def
; V05 loc3 [V05,T06] ( 2, 2 ) byte -> rcx single-def
; V05 loc3 [V05,T06] ( 2, 2 ) byte -> rcx single-def
; V06 loc4 [V06,T02] ( 3, 3 ) ubyte -> rdi single-def
; V06 loc4 [V06,T02] ( 3, 3 ) ubyte -> rdi single-def
; V07 OutArgs [V07 ] ( 1, 1 ) lclBlk (48) [rsp+00H] "OutgoingArgSpace"
; V07 OutArgs [V07 ] ( 1, 1 ) lclBlk (48) [rsp+00H] "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) byref -> zero-ref single-def "dup spill"
;* V08 tmp1 [V08 ] ( 0, 0 ) byref -> zero-ref single-def "dup spill"
; V09 tmp2 [V09 ] ( 2, 4 ) struct (24) [rsp+30H] do-not-enreg[XS] addr-exposed "by-value struct argument"
; V09 tmp2 [V09 ] ( 2, 4 ) struct (24) [rsp+30H] do-not-enreg[XS] addr-exposed "by-value struct argument"
; V10 cse0 [V10,T03] ( 3, 3 ) long -> rbp "CSE - aggressive"
; V10 cse0 [V10,T03] ( 3, 3 ) long -> rbp "CSE - aggressive"
;
;
; Lcl frame size = 72
; Lcl frame size = 72
G_M47476_IG01: ;; offset=0000H
G_M47476_IG01: ;; offset=0000H
57 push rdi
57 push rdi
56 push rsi
56 push rsi
55 push rbp
55 push rbp
53 push rbx
53 push rbx
4883EC48 sub rsp, 72
4883EC48 sub rsp, 72
C5F877 vzeroupper
C5F877 vzeroupper
8BF2 mov esi, edx
8BF2 mov esi, edx
;; size=13 bbWeight=1 PerfScore 5.50
;; size=13 bbWeight=1 PerfScore 5.50
G_M47476_IG02: ;; offset=000DH
G_M47476_IG02: ;; offset=000DH
400FB639 movzx rdi, byte ptr [rcx]
400FB639 movzx rdi, byte ptr [rcx]
8D57FF lea edx, [rdi-01H]
8D57FF lea edx, [rdi-01H]
8811 mov byte ptr [rcx], dl
8811 mov byte ptr [rcx], dl
8B5914 mov ebx, dword ptr [rcx+14H]
8B5914 mov ebx, dword ptr [rcx+14H]
复制
已复制
复制
已复制
48B9D8E2
84
37F97F0000 mov rcx, 0x7FF937
84
E2D8 ; short[]
48B9D8E2
46
37F97F0000 mov rcx, 0x7FF937
46
E2D8 ; short[]
BA01000000 mov edx, 1
BA01000000 mov edx, 1
复制
已复制
复制
已复制
E8
C33989
5F call CORINFO_HELP_NEWARR_1_VC
E8
033A87
5F call CORINFO_HELP_NEWARR_1_VC
4C8BC8 mov r9, rax
4C8BC8 mov r9, rax
复制
已复制
复制
已复制
48BD5218
6B
37F97F0000 mov rbp, 0x7FF937
6B
1852 ; data for Program:s_1
48BD5218
2D
37F97F0000 mov rbp, 0x7FF937
2D
1852 ; data for Program:s_1
480FBE4D00 movsx rcx, byte ptr [rbp]
480FBE4D00 movsx rcx, byte ptr [rbp]
复制
已复制
复制
已复制
48BAC01E
8024D6
010000 mov rdx, 0x1
D6248
01EC0 ; box for Program:s_15
48BAC01E
40DAC7
010000 mov rdx, 0x1
C7DA4
01EC0 ; box for Program:s_15
488B12 mov rdx, gword ptr [rdx]
488B12 mov rdx, gword ptr [rdx]
C5FA6F4208 vmovdqu xmm0, xmmword ptr [rdx+08H]
C5FA6F4208 vmovdqu xmm0, xmmword ptr [rdx+08H]
已保存差异
原始文本
打开文件
; Assembly listing for method Program:Main() ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 loc0 [V00,T06] ( 3, 3 ) struct (24) [rsp+78H] do-not-enreg[SF] ; V01 loc1 [V01,T07] ( 2, 2 ) struct (24) [rsp+60H] do-not-enreg[S] ld-addr-op single-def ;* V02 loc2 [V02 ] ( 0, 0 ) int -> zero-ref ;* V03 loc3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact ; V04 OutArgs [V04 ] ( 1, 1 ) lclBlk (48) [rsp+00H] "OutgoingArgSpace" ; V05 tmp1 [V05,T00] ( 2, 4 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" ;* V06 tmp2 [V06 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "impAppendStmt" ; V07 tmp3 [V07 ] ( 2, 4 ) struct (24) [rsp+48H] do-not-enreg[XS] addr-exposed "by-value struct argument" ; V08 tmp4 [V08 ] ( 2, 4 ) struct (24) [rsp+30H] do-not-enreg[XS] addr-exposed "by-value struct argument" ; V09 tmp5 [V09,T02] ( 2, 4 ) int -> rdi "argument with side effect" ; V10 tmp6 [V10,T01] ( 2, 4 ) ref -> rbx single-def "argument with side effect" ; V11 tmp7 [V11,T03] ( 2, 4 ) int -> rax "argument with side effect" ; V12 tmp8 [V12,T04] ( 2, 4 ) int -> rsi "argument with side effect" ;* V13 cse0 [V13,T08] ( 0, 0 ) long -> zero-ref "CSE - aggressive" ; V14 cse1 [V14,T05] ( 3, 3 ) ref -> rcx "CSE - aggressive" ; ; Lcl frame size = 144 G_M27646_IG01: ;; offset=0000H 57 push rdi 56 push rsi 53 push rbx 4881EC90000000 sub rsp, 144 C5F877 vzeroupper ;; size=13 bbWeight=1 PerfScore 4.25 G_M27646_IG02: ;; offset=000DH 48B958E88437F97F0000 mov rcx, 0x7FF93784E858 ; Runtime E8E439895F call CORINFO_HELP_NEWSFAST 488BF0 mov rsi, rax 48B918186B37F97F0000 mov rcx, 0x7FF9376B1818 BA05000000 mov edx, 5 E89D3B895F call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE 48B9C81E8024D6010000 mov rcx, 0x1D624801EC8 ; data for Program:s_rt 488BD6 mov rdx, rsi E86BE6D1FF call CORINFO_HELP_ASSIGN_REF 48B9B81E8024D6010000 mov rcx, 0x1D624801EB8 ; box for Program:s_2 488B09 mov rcx, gword ptr [rcx] C5FA6F4108 vmovdqu xmm0, xmmword ptr [rcx+08H] C5FA7F442478 vmovdqu xmmword ptr [rsp+78H], xmm0 488B5118 mov rdx, qword ptr [rcx+18H] 4889942488000000 mov qword ptr [rsp+88H], rdx 33D2 xor edx, edx C5F857C0 vxorps xmm0, xmm0 C5FA7F442460 vmovdqu xmmword ptr [rsp+60H], xmm0 4889542470 mov qword ptr [rsp+70H], rdx C5FA6F442460 vmovdqu xmm0, xmmword ptr [rsp+60H] C5FA7F442448 vmovdqu xmmword ptr [rsp+48H], xmm0 488B542470 mov rdx, qword ptr [rsp+70H] 4889542458 mov qword ptr [rsp+58H], rdx 400FB6742478 movzx rsi, byte ptr [rsp+78H] 8B790C mov edi, dword ptr [rcx+0CH] 48B9D8E28437F97F0000 mov rcx, 0x7FF93784E2D8 ; short[] BA01000000 mov edx, 1 E8733A895F call CORINFO_HELP_NEWARR_1_VC 488BD8 mov rbx, rax C5FA6F442478 vmovdqu xmm0, xmmword ptr [rsp+78H] C5FA7F442430 vmovdqu xmmword ptr [rsp+30H], xmm0 488B8C2488000000 mov rcx, qword ptr [rsp+88H] 48894C2440 mov qword ptr [rsp+40H], rcx 488D4C2430 lea rcx, [rsp+30H] 33D2 xor edx, edx FF1592A05B00 call [Program:M23(S0,ushort):ulong] 480FBEC0 movsx rax, al C744242801000000 mov dword ptr [rsp+28H], 1 448BC7 mov r8d, edi 4C8BCB mov r9, rbx 89442420 mov dword ptr [rsp+20H], eax 8BD6 mov edx, esi 488D4C2448 lea rcx, [rsp+48H] FF1587A05B00 call [Program:M24(S1,ubyte,uint,short[],byte,ushort)] 90 nop ;; size=237 bbWeight=1 PerfScore 44.58 G_M27646_IG03: ;; offset=00FAH 4881C490000000 add rsp, 144 5B pop rbx 5E pop rsi 5F pop rdi C3 ret ;; size=11 bbWeight=1 PerfScore 2.75 ; Total bytes of code 261, prolog size 13, PerfScore 77.68, instruction count 55, allocated bytes for code 261 (MethodHash=cb019401) for method Program:Main() ; ============================================================ ; Assembly listing for method Program:M23(S0,ushort):ulong ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; partially interruptible ; No PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 5, 10 ) byref -> rcx ld-addr-op single-def ; V01 arg1 [V01,T01] ( 3, 3 ) ushort -> rsi single-def ;* V02 loc0 [V02 ] ( 0, 0 ) ubyte -> zero-ref single-def ; V03 loc1 [V03,T05] ( 2, 2 ) int -> rbx single-def ; V04 loc2 [V04,T04] ( 2, 2 ) ref -> r9 class-hnd exact single-def ; V05 loc3 [V05,T06] ( 2, 2 ) byte -> rcx single-def ; V06 loc4 [V06,T02] ( 3, 3 ) ubyte -> rdi single-def ; V07 OutArgs [V07 ] ( 1, 1 ) lclBlk (48) [rsp+00H] "OutgoingArgSpace" ;* V08 tmp1 [V08 ] ( 0, 0 ) byref -> zero-ref single-def "dup spill" ; V09 tmp2 [V09 ] ( 2, 4 ) struct (24) [rsp+30H] do-not-enreg[XS] addr-exposed "by-value struct argument" ; V10 cse0 [V10,T03] ( 3, 3 ) long -> rbp "CSE - aggressive" ; ; Lcl frame size = 72 G_M47476_IG01: ;; offset=0000H 57 push rdi 56 push rsi 55 push rbp 53 push rbx 4883EC48 sub rsp, 72 C5F877 vzeroupper 8BF2 mov esi, edx ;; size=13 bbWeight=1 PerfScore 5.50 G_M47476_IG02: ;; offset=000DH 400FB639 movzx rdi, byte ptr [rcx] 8D57FF lea edx, [rdi-01H] 8811 mov byte ptr [rcx], dl 8B5914 mov ebx, dword ptr [rcx+14H] 48B9D8E28437F97F0000 mov rcx, 0x7FF93784E2D8 ; short[] BA01000000 mov edx, 1 E8C339895F call CORINFO_HELP_NEWARR_1_VC 4C8BC8 mov r9, rax 48BD52186B37F97F0000 mov rbp, 0x7FF9376B1852 ; data for Program:s_1 480FBE4D00 movsx rcx, byte ptr [rbp] 48BAC01E8024D6010000 mov rdx, 0x1D624801EC0 ; box for Program:s_15 488B12 mov rdx, gword ptr [rdx] C5FA6F4208 vmovdqu xmm0, xmmword ptr [rdx+08H] C5FA7F442430 vmovdqu xmmword ptr [rsp+30H], xmm0 4C8B4218 mov r8, qword ptr [rdx+18H] 4C89442440 mov qword ptr [rsp+40H], r8 894C2420 mov dword ptr [rsp+20H], ecx 0FB7CE movzx rcx, si 894C2428 mov dword ptr [rsp+28H], ecx 488D4C2430 lea rcx, [rsp+30H] 8BD7 mov edx, edi 448BC3 mov r8d, ebx FF15D59F5B00 call [Program:M24(S1,ubyte,uint,short[],byte,ushort)] 0FB74500 movzx rax, word ptr [rbp] ;; size=114 bbWeight=1 PerfScore 30.00 G_M47476_IG03: ;; offset=007FH 4883C448 add rsp, 72 5B pop rbx 5D pop rbp 5E pop rsi 5F pop rdi C3 ret ;; size=9 bbWeight=1 PerfScore 3.25 ; Total bytes of code 136, prolog size 11, PerfScore 52.35, instruction count 37, allocated bytes for code 136 (MethodHash=b3a6468b) for method Program:M23(S0,ushort):ulong ; ============================================================ ; Assembly listing for method Program:M24(S1,ubyte,uint,short[],byte,ushort) ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; fully interruptible ; No PGO data ; Final local variable assignments ; ;* V00 arg0 [V00 ] ( 0, 0 ) byref -> zero-ref single-def ; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> rsi single-def ;* V02 arg2 [V02 ] ( 0, 0 ) int -> zero-ref single-def ;* V03 arg3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ;* V04 arg4 [V04 ] ( 0, 0 ) byte -> zero-ref single-def ;* V05 arg5 [V05 ] ( 0, 0 ) ushort -> zero-ref single-def ; V06 OutArgs [V06 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace" ; V07 tmp1 [V07,T00] ( 3, 6 ) ref -> rdi single-def "LDVIRTFTN this pointer" ; V08 tmp2 [V08,T02] ( 2, 4 ) long -> rax "VirtualCall through function pointer" ; ; Lcl frame size = 40 G_M14032_IG01: ;; offset=0000H 57 push rdi 56 push rsi 4883EC28 sub rsp, 40 8BF2 mov esi, edx ;; size=8 bbWeight=1 PerfScore 2.50 G_M14032_IG02: ;; offset=0008H 48B9C81E8024D6010000 mov rcx, 0x1D624801EC8 ; data for Program:s_rt 488B39 mov rdi, gword ptr [rcx] 488BCF mov rcx, rdi 48BAB8E68437F97F0000 mov rdx, 0x7FF93784E6B8 ; IRuntime 49B888E98437F97F0000 mov r8, 0x7FF93784E988 ; token handle E85F57545F call CORINFO_HELP_VIRTUAL_FUNC_PTR 400FB6D6 movzx rdx, sil 488BCF mov rcx, rdi ;; size=48 bbWeight=1 PerfScore 4.50 G_M14032_IG03: ;; offset=0038H 4883C428 add rsp, 40 5E pop rsi 5F pop rdi 48FFE0 tail.jmp rax ;; size=9 bbWeight=1 PerfScore 3.25 ; Total bytes of code 65, prolog size 8, PerfScore 16.75, instruction count 16, allocated bytes for code 65 (MethodHash=6a76c92f) for method Program:M24(S1,ubyte,uint,short[],byte,ushort) ; ============================================================ 0 0
更改后文本
打开文件
; Assembly listing for method Program:Main() ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 loc0 [V00 ] ( 3, 3 ) struct (24) [rsp+50H] do-not-enreg[XSF] addr-exposed ; V01 loc1 [V01 ] ( 1, 1 ) struct (24) [rsp+38H] do-not-enreg[XS] must-init addr-exposed ld-addr-op ;* V02 loc2 [V02 ] ( 0, 0 ) int -> zero-ref ;* V03 loc3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact ; V04 OutArgs [V04 ] ( 1, 1 ) lclBlk (48) [rsp+00H] "OutgoingArgSpace" ; V05 tmp1 [V05,T00] ( 2, 4 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" ;* V06 tmp2 [V06 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "impAppendStmt" ; V07 tmp3 [V07,T02] ( 2, 4 ) int -> rsi "argument with side effect" ; V08 tmp4 [V08,T01] ( 2, 4 ) ref -> rdi single-def "argument with side effect" ; V09 tmp5 [V09,T03] ( 2, 4 ) int -> rax "argument with side effect" ;* V10 cse0 [V10,T05] ( 0, 0 ) long -> zero-ref "CSE - aggressive" ; V11 cse1 [V11,T04] ( 3, 3 ) ref -> rcx "CSE - aggressive" ; ; Lcl frame size = 104 G_M27646_IG01: ;; offset=0000H 57 push rdi 56 push rsi 4883EC68 sub rsp, 104 C5F877 vzeroupper C5D857E4 vxorps xmm4, xmm4 C5FA7F642438 vmovdqu xmmword ptr [rsp+38H], xmm4 33C0 xor eax, eax 4889442448 mov qword ptr [rsp+48H], rax ;; size=26 bbWeight=1 PerfScore 6.83 G_M27646_IG02: ;; offset=001AH 48B958E84637F97F0000 mov rcx, 0x7FF93746E858 ; Runtime E8C739875F call CORINFO_HELP_NEWSFAST 488BF0 mov rsi, rax 48B918182D37F97F0000 mov rcx, 0x7FF9372D1818 BA05000000 mov edx, 5 E8803B875F call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE 48B9C81E40DAC7010000 mov rcx, 0x1C7DA401EC8 ; data for Program:s_rt 488BD6 mov rdx, rsi E85EE6D1FF call CORINFO_HELP_ASSIGN_REF 48B9B81E40DAC7010000 mov rcx, 0x1C7DA401EB8 ; box for Program:s_2 488B09 mov rcx, gword ptr [rcx] C5FA6F4108 vmovdqu xmm0, xmmword ptr [rcx+08H] C5FA7F442450 vmovdqu xmmword ptr [rsp+50H], xmm0 488B5118 mov rdx, qword ptr [rcx+18H] 4889542460 mov qword ptr [rsp+60H], rdx 8B710C mov esi, dword ptr [rcx+0CH] 48B9D8E24637F97F0000 mov rcx, 0x7FF93746E2D8 ; short[] BA01000000 mov edx, 1 E8863A875F call CORINFO_HELP_NEWARR_1_VC 488BF8 mov rdi, rax 488D4C2450 lea rcx, [rsp+50H] 33D2 xor edx, edx FF15CEA01B00 call [Program:M23(S0,ushort):ulong] 480FBEC0 movsx rax, al C744242801000000 mov dword ptr [rsp+28H], 1 448BC6 mov r8d, esi 4C8BCF mov r9, rdi 89442420 mov dword ptr [rsp+20H], eax 488D4C2438 lea rcx, [rsp+38H] 0FB6542450 movzx rdx, byte ptr [rsp+50H] FF15C0A01B00 call [Program:M24(S1,ubyte,uint,short[],byte,ushort)] 90 nop ;; size=167 bbWeight=1 PerfScore 29.75 G_M27646_IG03: ;; offset=00C1H 4883C468 add rsp, 104 5E pop rsi 5F pop rdi C3 ret ;; size=7 bbWeight=1 PerfScore 2.25 ; Total bytes of code 200, prolog size 26, PerfScore 58.83, instruction count 44, allocated bytes for code 200 (MethodHash=cb019401) for method Program:Main() ; ============================================================ ; Assembly listing for method Program:M23(S0,ushort):ulong ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; partially interruptible ; No PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 5, 10 ) byref -> rcx ld-addr-op single-def ; V01 arg1 [V01,T01] ( 3, 3 ) ushort -> rsi single-def ;* V02 loc0 [V02 ] ( 0, 0 ) ubyte -> zero-ref single-def ; V03 loc1 [V03,T05] ( 2, 2 ) int -> rbx single-def ; V04 loc2 [V04,T04] ( 2, 2 ) ref -> r9 class-hnd exact single-def ; V05 loc3 [V05,T06] ( 2, 2 ) byte -> rcx single-def ; V06 loc4 [V06,T02] ( 3, 3 ) ubyte -> rdi single-def ; V07 OutArgs [V07 ] ( 1, 1 ) lclBlk (48) [rsp+00H] "OutgoingArgSpace" ;* V08 tmp1 [V08 ] ( 0, 0 ) byref -> zero-ref single-def "dup spill" ; V09 tmp2 [V09 ] ( 2, 4 ) struct (24) [rsp+30H] do-not-enreg[XS] addr-exposed "by-value struct argument" ; V10 cse0 [V10,T03] ( 3, 3 ) long -> rbp "CSE - aggressive" ; ; Lcl frame size = 72 G_M47476_IG01: ;; offset=0000H 57 push rdi 56 push rsi 55 push rbp 53 push rbx 4883EC48 sub rsp, 72 C5F877 vzeroupper 8BF2 mov esi, edx ;; size=13 bbWeight=1 PerfScore 5.50 G_M47476_IG02: ;; offset=000DH 400FB639 movzx rdi, byte ptr [rcx] 8D57FF lea edx, [rdi-01H] 8811 mov byte ptr [rcx], dl 8B5914 mov ebx, dword ptr [rcx+14H] 48B9D8E24637F97F0000 mov rcx, 0x7FF93746E2D8 ; short[] BA01000000 mov edx, 1 E8033A875F call CORINFO_HELP_NEWARR_1_VC 4C8BC8 mov r9, rax 48BD52182D37F97F0000 mov rbp, 0x7FF9372D1852 ; data for Program:s_1 480FBE4D00 movsx rcx, byte ptr [rbp] 48BAC01E40DAC7010000 mov rdx, 0x1C7DA401EC0 ; box for Program:s_15 488B12 mov rdx, gword ptr [rdx] C5FA6F4208 vmovdqu xmm0, xmmword ptr [rdx+08H] C5FA7F442430 vmovdqu xmmword ptr [rsp+30H], xmm0 4C8B4218 mov r8, qword ptr [rdx+18H] 4C89442440 mov qword ptr [rsp+40H], r8 894C2420 mov dword ptr [rsp+20H], ecx 0FB7CE movzx rcx, si 894C2428 mov dword ptr [rsp+28H], ecx 488D4C2430 lea rcx, [rsp+30H] 8BD7 mov edx, edi 448BC3 mov r8d, ebx FF1525A01B00 call [Program:M24(S1,ubyte,uint,short[],byte,ushort)] 0FB74500 movzx rax, word ptr [rbp] ;; size=114 bbWeight=1 PerfScore 30.00 G_M47476_IG03: ;; offset=007FH 4883C448 add rsp, 72 5B pop rbx 5D pop rbp 5E pop rsi 5F pop rdi C3 ret ;; size=9 bbWeight=1 PerfScore 3.25 ; Total bytes of code 136, prolog size 11, PerfScore 52.35, instruction count 37, allocated bytes for code 136 (MethodHash=b3a6468b) for method Program:M23(S0,ushort):ulong ; ============================================================ ; Assembly listing for method Program:M24(S1,ubyte,uint,short[],byte,ushort) ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; fully interruptible ; No PGO data ; Final local variable assignments ; ;* V00 arg0 [V00 ] ( 0, 0 ) byref -> zero-ref single-def ; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> rsi single-def ;* V02 arg2 [V02 ] ( 0, 0 ) int -> zero-ref single-def ;* V03 arg3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ;* V04 arg4 [V04 ] ( 0, 0 ) byte -> zero-ref single-def ;* V05 arg5 [V05 ] ( 0, 0 ) ushort -> zero-ref single-def ; V06 OutArgs [V06 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace" ; V07 tmp1 [V07,T00] ( 3, 6 ) ref -> rdi single-def "LDVIRTFTN this pointer" ; V08 tmp2 [V08,T02] ( 2, 4 ) long -> rax "VirtualCall through function pointer" ; ; Lcl frame size = 40 G_M14032_IG01: ;; offset=0000H 57 push rdi 56 push rsi 4883EC28 sub rsp, 40 8BF2 mov esi, edx ;; size=8 bbWeight=1 PerfScore 2.50 G_M14032_IG02: ;; offset=0008H 48B9C81E40DAC7010000 mov rcx, 0x1C7DA401EC8 ; data for Program:s_rt 488B39 mov rdi, gword ptr [rcx] 488BCF mov rcx, rdi 48BAB8E64637F97F0000 mov rdx, 0x7FF93746E6B8 ; IRuntime 49B888E94637F97F0000 mov r8, 0x7FF93746E988 ; token handle E89F57525F call CORINFO_HELP_VIRTUAL_FUNC_PTR 400FB6D6 movzx rdx, sil 488BCF mov rcx, rdi ;; size=48 bbWeight=1 PerfScore 4.50 G_M14032_IG03: ;; offset=0038H 4883C428 add rsp, 40 5E pop rsi 5F pop rdi 48FFE0 tail.jmp rax ;; size=9 bbWeight=1 PerfScore 3.25 ; Total bytes of code 65, prolog size 8, PerfScore 16.75, instruction count 16, allocated bytes for code 65 (MethodHash=6a76c92f) for method Program:M24(S1,ubyte,uint,short[],byte,ushort) ; ============================================================ 0 255
查找差异