Diff
checker
文本
文本
图像
文档
Excel
文件夹
Legal
Enterprise
桌面版
定价
登录
下载 Diffchecker 桌面版
比较文本
查找两个文本文件之间的差异
工具
历史
实时编辑器
折叠未更改行
关闭换行
视图
拆分
统一
比对精度
智能
单词
字符
语法高亮
选择语法
忽略
文本转换
转到第一个差异
编辑输入
Diffchecker Desktop
运行Diffchecker最安全的方式。获取Diffchecker桌面应用:您的差异永远不会离开您的电脑!
获取桌面版
Untitled diff
创建于
去年
差异永不过期
清除
导出
分享
解释
89 删除
行
总计
删除
字符
总计
删除
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
70 行
全部复制
75 添加
行
总计
添加
字符
总计
添加
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
61 行
全部复制
复制
已复制
复制
已复制
; Assembly listing for method Program:EqualsLoop(ubyte[],ubyte[]):ubyte (Tier1
-OSR
)
; Assembly listing for method Program:EqualsLoop(ubyte[],ubyte[]):ubyte (Tier1
)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
复制
已复制
复制
已复制
; Tier1
-OSR
code
; Tier1
code
; OSR variant for entry point 0x1c
; optimized code
; optimized code
; optimized using Synthesized PGO
; optimized using Synthesized PGO
; rsp based frame
; rsp based frame
; fully interruptible
; fully interruptible
复制
已复制
复制
已复制
; with Synthesized PGO: fgCalledCount is
1.99
; with Synthesized PGO: fgCalledCount is
100
; Final local variable assignments
; Final local variable assignments
;
;
复制
已复制
复制
已复制
; V00 arg0 [V00,T0
4
] ( 4,
94.03
) ref -> rcx class-hnd single-def <ubyte[]>
; V00 arg0 [V00,T0
2
] ( 4,
75.82
) ref -> rcx class-hnd single-def <ubyte[]>
; V01 arg1 [V01,T0
2
] ( 4,
184.06
) ref -> r
a
x class-hnd single-def <ubyte[]>
; V01 arg1 [V01,T0
3
] ( 4,
75.82
) ref -> r
d
x class-hnd single-def <ubyte[]>
; V02 loc0 [V02,T00] (
7,545.80
) int ->
rdx
; V02 loc0 [V02,T00] (
5,291.00
) int ->
r8
;
V03 OutArgs [V03 ] ( 1, 1 ) struct (
32
) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <
UNNAMED
>
;
#
V03 OutArgs [V03 ] ( 1, 1 ) struct (
0
) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <
Empty
>
; V04 cse0 [V04,T0
3
] ( 4,
183.60
) int ->
r8
"CSE #01: aggressive"
; V04 cse0 [V04,T0
4
] ( 4,
75.26
) int ->
rax
"CSE #01: aggressive"
; V05 cse1 [V05,
T01] ( 3,
273.08
) long -> r10 "CSE #02: aggressive"
; V05 cse1 [V05,
T05] ( 2, 2 ) int -> r8 "CSE #03: aggressive"
; V06 cse2 [V06,
T01] ( 3,
218.47
) long -> r10 "CSE #02: aggressive"
;* V07 cse3 [V07,T06] ( 0, 0 ) long -> zero-ref "CSE #04: aggressive"
;
;
复制
已复制
复制
已复制
; Lcl frame size =
4
0
; Lcl frame size =
0
G_M45663_IG01: ;; offset=0x0000
G_M45663_IG01: ;; offset=0x0000
复制
已复制
复制
已复制
sub rsp, 40
;; size=
0
bbWeight=1 PerfScore
0.00
mov rcx, gword ptr [rsp+0xB0]
G_M45663_IG02: ;; offset=
0x0000
mov rax, gword ptr [rsp+0xB8]
mov eax, dword ptr [rcx+0x08]
mov edx, dword ptr [rsp+0x64]
mov r8d, dword ptr [r
d
x+0x08]
;; size=
24
bbWeight=1 PerfScore
6.25
cmp
eax,
r8d
G_M45663_IG02: ;; offset=
0x0018
j
n
e SHORT G_M45663_IG0
8
mov r8d, dword ptr [r
c
x+0x08]
;; size=
12
bbWeight=1 PerfScore
5
.25
cmp
r8d
, edx
G_M45663_IG03: ;; offset=0x00
0C
j
l
e SHORT G_M45663_IG0
5
xor
r8d
, r8d
align [0 bytes for IG03]
test eax, eax
;; size=
9
bbWeight=1 PerfScore
3
.25
jle
SHORT G_M45663_IG0
6
G_M45663_IG03: ;; offset=0x00
21
align [13 bytes for IG04]
cmp
edx
, r8d
;; size=20 bbWeight=0.80 PerfScore 1.40
jae
SHORT G_M45663_IG0
9
G_M45663_IG04: ;; offset=0x0020
mov r10d,
edx
mov r10d,
r8d
movzx r9, byte ptr [rcx+r10+0x10]
movzx r9, byte ptr [rcx+r10+0x10]
复制
已复制
复制
已复制
cmp edx, dword ptr [rax+0x08]
cmp r9b, byte ptr [r
d
x+r10+0x10]
jae SHORT G_M45663_IG09
jne SHORT G_M45663_IG0
8
cmp r9b, byte ptr [r
a
x+r10+0x10]
;; size=
16
bbWeight=
72.82
PerfScore
455.14
jne SHORT G_M45663_IG0
7
G_M45663_IG0
5
: ;; offset=0x003
0
;; size=
26
bbWeight=
91.03
PerfScore
1046.82
inc
r8d
G_M45663_IG0
4
: ;; offset=0x003
B
cmp
eax,
r8d
inc
edx
jg SHORT G_M45663_IG0
4
cmp
r8d
, edx
;; size=
8
bbWeight=
72.46
PerfScore
108.69
jg SHORT G_M45663_IG0
3
G_M45663_IG0
6
: ;; offset=0x00
38
;; size=
7
bbWeight=
90.57
PerfScore
135.86
G_M45663_IG0
5
: ;; offset=0x00
42
mov eax, 1
mov eax, 1
复制
已复制
复制
已复制
;; size=5 bbWeight=0.
54
PerfScore 0.
14
;; size=5 bbWeight=0.
44
PerfScore 0.
11
G_M45663_IG0
6
: ;; offset=0x00
47
G_M45663_IG0
7
: ;; offset=0x00
3D
add rsp, 160
pop rbp
ret
ret
复制
已复制
复制
已复制
;; size=
9
bbWeight=0.
54
PerfScore 0.
95
;; size=
1
bbWeight=0.
44
PerfScore 0.
44
G_M45663_IG0
7
: ;; offset=0x00
50
G_M45663_IG0
8
: ;; offset=0x00
3E
xor eax, eax
xor eax, eax
复制
已复制
复制
已复制
;; size=2 bbWeight=0.
46
PerfScore 0.
11
;; size=2 bbWeight=0.
56
PerfScore 0.
14
G_M45663_IG0
8
: ;; offset=
0x0052
G_M45663_IG0
9
: ;; offset=
0x0040
add rsp, 160
pop rbp
ret
ret
复制
已复制
复制
已复制
;; size=
9
bbWeight=0.
46
PerfScore 0.
80
;; size=
1
bbWeight=0.
56
PerfScore 0.
56
G_M45663_IG09: ;; offset=0x005B
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
复制
已复制
复制
已复制
; Total bytes of code
97
, prolog size
24
, PerfScore
1194.18
, instruction count
29
, allocated bytes for code
97
(MethodHash=5b564da0) for method Program:EqualsLoop(ubyte[],ubyte[]):ubyte (Tier1
-OSR
)
; Total bytes of code
65
, prolog size
0
, PerfScore
571.73
, instruction count
19
, allocated bytes for code
65
(MethodHash=5b564da0) for method Program:EqualsLoop(ubyte[],ubyte[]):ubyte (Tier1
)
; ============================================================
; ============================================================
已保存差异
原始文本
打开文件
; Assembly listing for method Program:EqualsLoop(ubyte[],ubyte[]):ubyte (Tier1-OSR) ; Emitting BLENDED_CODE for X64 with AVX512 - Windows ; Tier1-OSR code ; OSR variant for entry point 0x1c ; optimized code ; optimized using Synthesized PGO ; rsp based frame ; fully interruptible ; with Synthesized PGO: fgCalledCount is 1.99 ; Final local variable assignments ; ; V00 arg0 [V00,T04] ( 4, 94.03) ref -> rcx class-hnd single-def <ubyte[]> ; V01 arg1 [V01,T02] ( 4,184.06) ref -> rax class-hnd single-def <ubyte[]> ; V02 loc0 [V02,T00] ( 7,545.80) int -> rdx ; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED> ; V04 cse0 [V04,T03] ( 4,183.60) int -> r8 "CSE #01: aggressive" ; V05 cse1 [V05,T01] ( 3,273.08) long -> r10 "CSE #02: aggressive" ; ; Lcl frame size = 40 G_M45663_IG01: ;; offset=0x0000 sub rsp, 40 mov rcx, gword ptr [rsp+0xB0] mov rax, gword ptr [rsp+0xB8] mov edx, dword ptr [rsp+0x64] ;; size=24 bbWeight=1 PerfScore 6.25 G_M45663_IG02: ;; offset=0x0018 mov r8d, dword ptr [rcx+0x08] cmp r8d, edx jle SHORT G_M45663_IG05 align [0 bytes for IG03] ;; size=9 bbWeight=1 PerfScore 3.25 G_M45663_IG03: ;; offset=0x0021 cmp edx, r8d jae SHORT G_M45663_IG09 mov r10d, edx movzx r9, byte ptr [rcx+r10+0x10] cmp edx, dword ptr [rax+0x08] jae SHORT G_M45663_IG09 cmp r9b, byte ptr [rax+r10+0x10] jne SHORT G_M45663_IG07 ;; size=26 bbWeight=91.03 PerfScore 1046.82 G_M45663_IG04: ;; offset=0x003B inc edx cmp r8d, edx jg SHORT G_M45663_IG03 ;; size=7 bbWeight=90.57 PerfScore 135.86 G_M45663_IG05: ;; offset=0x0042 mov eax, 1 ;; size=5 bbWeight=0.54 PerfScore 0.14 G_M45663_IG06: ;; offset=0x0047 add rsp, 160 pop rbp ret ;; size=9 bbWeight=0.54 PerfScore 0.95 G_M45663_IG07: ;; offset=0x0050 xor eax, eax ;; size=2 bbWeight=0.46 PerfScore 0.11 G_M45663_IG08: ;; offset=0x0052 add rsp, 160 pop rbp ret ;; size=9 bbWeight=0.46 PerfScore 0.80 G_M45663_IG09: ;; offset=0x005B call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 ; Total bytes of code 97, prolog size 24, PerfScore 1194.18, instruction count 29, allocated bytes for code 97 (MethodHash=5b564da0) for method Program:EqualsLoop(ubyte[],ubyte[]):ubyte (Tier1-OSR) ; ============================================================
更改后文本
打开文件
; Assembly listing for method Program:EqualsLoop(ubyte[],ubyte[]):ubyte (Tier1) ; Emitting BLENDED_CODE for X64 with AVX512 - Windows ; Tier1 code ; optimized code ; optimized using Synthesized PGO ; rsp based frame ; fully interruptible ; with Synthesized PGO: fgCalledCount is 100 ; Final local variable assignments ; ; V00 arg0 [V00,T02] ( 4, 75.82) ref -> rcx class-hnd single-def <ubyte[]> ; V01 arg1 [V01,T03] ( 4, 75.82) ref -> rdx class-hnd single-def <ubyte[]> ; V02 loc0 [V02,T00] ( 5,291.00) int -> r8 ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty> ; V04 cse0 [V04,T04] ( 4, 75.26) int -> rax "CSE #01: aggressive" ; V05 cse1 [V05,T05] ( 2, 2 ) int -> r8 "CSE #03: aggressive" ; V06 cse2 [V06,T01] ( 3,218.47) long -> r10 "CSE #02: aggressive" ;* V07 cse3 [V07,T06] ( 0, 0 ) long -> zero-ref "CSE #04: aggressive" ; ; Lcl frame size = 0 G_M45663_IG01: ;; offset=0x0000 ;; size=0 bbWeight=1 PerfScore 0.00 G_M45663_IG02: ;; offset=0x0000 mov eax, dword ptr [rcx+0x08] mov r8d, dword ptr [rdx+0x08] cmp eax, r8d jne SHORT G_M45663_IG08 ;; size=12 bbWeight=1 PerfScore 5.25 G_M45663_IG03: ;; offset=0x000C xor r8d, r8d test eax, eax jle SHORT G_M45663_IG06 align [13 bytes for IG04] ;; size=20 bbWeight=0.80 PerfScore 1.40 G_M45663_IG04: ;; offset=0x0020 mov r10d, r8d movzx r9, byte ptr [rcx+r10+0x10] cmp r9b, byte ptr [rdx+r10+0x10] jne SHORT G_M45663_IG08 ;; size=16 bbWeight=72.82 PerfScore 455.14 G_M45663_IG05: ;; offset=0x0030 inc r8d cmp eax, r8d jg SHORT G_M45663_IG04 ;; size=8 bbWeight=72.46 PerfScore 108.69 G_M45663_IG06: ;; offset=0x0038 mov eax, 1 ;; size=5 bbWeight=0.44 PerfScore 0.11 G_M45663_IG07: ;; offset=0x003D ret ;; size=1 bbWeight=0.44 PerfScore 0.44 G_M45663_IG08: ;; offset=0x003E xor eax, eax ;; size=2 bbWeight=0.56 PerfScore 0.14 G_M45663_IG09: ;; offset=0x0040 ret ;; size=1 bbWeight=0.56 PerfScore 0.56 ; Total bytes of code 65, prolog size 0, PerfScore 571.73, instruction count 19, allocated bytes for code 65 (MethodHash=5b564da0) for method Program:EqualsLoop(ubyte[],ubyte[]):ubyte (Tier1) ; ============================================================
查找差异