Diff
checker
文本
文本
图像
文档
Excel
文件夹
Legal
Enterprise
桌面版
定价
登录
下载 Diffchecker 桌面版
比较文本
查找两个文本文件之间的差异
工具
历史
实时编辑器
折叠未更改行
关闭换行
视图
拆分
统一
比对精度
智能
单词
字符
语法高亮
选择语法
忽略
文本转换
转到第一个差异
编辑输入
Diffchecker Desktop
运行Diffchecker最安全的方式。获取Diffchecker桌面应用:您的差异永远不会离开您的电脑!
获取桌面版
Untitled Diff
创建于
5年前
差异永不过期
清除
导出
分享
解释
99 删除
行
总计
删除
字符
总计
删除
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
143 行
全部复制
55 添加
行
总计
添加
字符
总计
添加
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
100 行
全部复制
; Assembly listing for method DiagnosticsPass:CheckArguments(ImmutableArray`1,ImmutableArray`1,Symbol):this
; Assembly listing for method DiagnosticsPass:CheckArguments(ImmutableArray`1,ImmutableArray`1,Symbol):this
; 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
; fully interruptible
; fully interruptible
; Final local variable assignments
; Final local variable assignments
;
;
复制
已复制
复制
已复制
; V00 this [V00,T0
7
] (
4, 6
) ref -> rdi this class-hnd
; V00 this [V00,T0
4
] (
3, 10
) ref -> rdi this class-hnd
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
复制
已复制
复制
已复制
; V03 arg3 [V03,T0
8
] (
4, 6
) ref -> rbx class-hnd
; V03 arg3 [V03,T0
5
] (
3, 10
) ref -> rbx class-hnd
; V04 loc0 [V04,T00] (
12, 40
.50) int -> r14
; V04 loc0 [V04,T00] (
7, 58
.50) int -> r14
; V05 OutArgs [V05 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
; V05 OutArgs [V05 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
复制
已复制
复制
已复制
; V06 tmp1 [V06,T0
2
] (
6, 1
8 ) ref -> rdx "CASTCLASS eval op1"
; V06 tmp1 [V06,T0
6
] (
3,
8 ) ref -> rdx "CASTCLASS eval op1"
; V07 tmp2 [V07,T0
5
] (
6, 10
) long -> rcx "fgInsertCommaFormTemp is creating a new local variable"
; V07 tmp2 [V07,T0
7
] (
3, 8
) long -> rcx "fgInsertCommaFormTemp is creating a new local variable"
; V08 tmp3 [V08,T01] (
10, 30
) ref ->
r8
class-hnd "spilling QMark2"
; V08 tmp3 [V08,T01] (
5, 28
) ref ->
rax
class-hnd "spilling QMark2"
; V09 tmp4 [V09,T0
4
] (
4, 16
) ref -> r
a
x class-hnd "Inlining Arg"
; V09 tmp4 [V09,T0
8
] (
2, 8
) ref -> r
c
x class-hnd "Inlining Arg"
; V10 tmp5 [V10,T03] (
6, 14.50
) ref -> rsi V01.array(offs=0x00) P-INDEP "field V01.array (fldOffset=0x0)"
; V10 tmp5 [V10,T03] (
4, 10
) ref -> rsi V01.array(offs=0x00) P-INDEP "field V01.array (fldOffset=0x0)"
; V11 tmp6 [V11,T
09
] (
4
,
5
.50) ref -> rbp V02.array(offs=0x00) P-INDEP "field V02.array (fldOffset=0x0)"
; V11 tmp6 [V11,T
10
] (
3
,
3
.50) ref -> rbp V02.array(offs=0x00) P-INDEP "field V02.array (fldOffset=0x0)"
; V12 cse0 [V12,T
10
] ( 3, 6 ) ref -> rdx "CSE - aggressive"
; V12 cse0 [V12,T
09
] ( 3, 6 ) ref -> rdx "CSE - aggressive"
; V13 cse1 [V13,
T11
] ( 3,
6
)
ref -> rdx "CSE - aggressive"
; V13 cse1 [V13,
T02
] ( 3,
17
)
int -> r15 "CSE - aggressive"
; V14 cse2 [V14,T06] ( 5, 9.50)
int -> r15 "CSE - aggressive"
;
;
; Lcl frame size = 40
; Lcl frame size = 40
G_M20472_IG01:
G_M20472_IG01:
push r15
push r15
push r14
push r14
push rdi
push rdi
push rsi
push rsi
push rbp
push rbp
push rbx
push rbx
sub rsp, 40
sub rsp, 40
mov rdi, rcx
mov rdi, rcx
mov rsi, rdx
mov rsi, rdx
mov rbp, r8
mov rbp, r8
mov rbx, r9
mov rbx, r9
;; bbWeight=1 PerfScore 7.25
;; bbWeight=1 PerfScore 7.25
G_M20472_IG02:
G_M20472_IG02:
test rsi, rsi
test rsi, rsi
复制
已复制
复制
已复制
je
G_M20472_
IG17
je
SHORT
G_M20472_
IG08
;; bbWeight=1 PerfScore 1.25
;; bbWeight=1 PerfScore 1.25
G_M20472_IG03:
G_M20472_IG03:
xor r14d, r14d
xor r14d, r14d
mov r15d, dword ptr [rbp+8]
mov r15d, dword ptr [rbp+8]
test r15d, r15d
test r15d, r15d
复制
已复制
复制
已复制
jle
G_M20472_IG17
jle
SHORT G_M20472_
IG08
cmp dword ptr [rsi+8], r15d
;; bbWeight=0.50 PerfScore
1.75
jl
SHORT G_M20472_
IG11
;; bbWeight=0.50 PerfScore
3.25
G_M20472_IG04:
G_M20472_IG04:
复制
已复制
复制
已复制
cmp r14d, dword ptr [rsi+8]
jae SHORT G_M20472_IG10
movsxd rcx, r14d
movsxd rcx, r14d
cmp byte ptr [rsi+rcx+16], 0
cmp byte ptr [rsi+rcx+16], 0
复制
已复制
复制
已复制
je SHORT G_M20472_IG0
9
je SHORT G_M20472_IG0
7
;; bbWeight=4 PerfScore
13
.00
;; bbWeight=4 PerfScore
25
.00
G_M20472_IG05:
G_M20472_IG05:
movsxd rcx, r14d
movsxd rcx, r14d
mov rdx, gword ptr [rbp+8*rcx+16]
mov rdx, gword ptr [rbp+8*rcx+16]
复制
已复制
复制
已复制
mov rcx, rdx
cmp byte ptr [rcx+16], 108
jne SHORT G_M20472_IG07
mov rax, rdx
mov rax, rdx
复制
已复制
复制
已复制
cmp
byte
ptr [rax
+16
],
108
test rax, rax
je SHORT G_M20472_IG06
mov rcx, 0xD1FFAB1E
cmp
qword
ptr [rax
],
rcx
jne SHORT G_M20472_IG09
jne SHORT G_M20472_IG09
复制
已复制
复制
已复制
mov r8, rdx
;; bbWeight=2 PerfScore
20.50
test r8, r8
je SHORT G_M20472_IG08
;; bbWeight=2 PerfScore
14.00
G_M20472_IG06:
G_M20472_IG06:
复制
已复制
复制
已复制
mov rcx, 0xD1FFAB1E
cmp qword ptr [r8], rcx
je SHORT G_M20472_IG08
;; bbWeight=1 PerfScore 3.25
G_M20472_IG07:
call CORINFO_HELP_CHKCASTCLASS_SPECIAL
mov r8, rax
;; bbWeight=0.50 PerfScore 0.63
G_M20472_IG08:
mov rcx, rdi
mov rcx, rdi
复制
已复制
复制
已复制
mov rdx,
r8
mov rdx,
rax
mov r8, rbx
mov r8, rbx
call DiagnosticsPass:CheckFieldAddress(BoundFieldAccess,Symbol):this
call DiagnosticsPass:CheckFieldAddress(BoundFieldAccess,Symbol):this
复制
已复制
复制
已复制
;; bbWeight=
2
PerfScore
3.50
;; bbWeight=
8
PerfScore
14.00
G_M20472_IG0
9
:
G_M20472_IG0
7
:
inc r14d
inc r14d
cmp r15d, r14d
cmp r15d, r14d
jg SHORT G_M20472_IG04
jg SHORT G_M20472_IG04
复制
已复制
复制
已复制
;; bbWeight=
4 PerfScore 6.00
;; bbWeight=
16 PerfScore 24.00
G_M20472_IG10:
G_M20472_
IG08:
jmp SHORT G_M20472_IG17
;; bbWeight=0.50 PerfScore 1.00
G_M20472_IG11:
cmp r14d, dword ptr [rsi+8]
jae SHORT G_M20472_IG18
movsxd rcx, r14d
cmp byte ptr [rsi+rcx+16], 0
je SHORT G_M20472_IG16
;; bbWeight=4 PerfScore 25.00
G_M20472_IG12:
movsxd rcx, r14d
mov rdx, gword ptr [rbp+8*rcx+16]
mov rax, rdx
cmp byte ptr [rax+16], 108
jne SHORT G_M20472_IG16
mov r8, rdx
test r8, r8
je SHORT G_M20472_IG15
;; bbWeight=2 PerfScore 14.00
G_M20472_
IG13:
mov rcx, 0xD1FFAB1E
cmp qword ptr [r8], rcx
je SHORT G_M20472_IG15
;; bbWeight=1 PerfScore 3.25
G_M20472_IG14:
call CORINFO_HELP_CHKCASTCLASS_SPECIAL
mov r8, rax
;; bbWeight=0.50 PerfScore 0.63
G_M20472_IG15:
mov rcx, rdi
mov rdx, r8
mov r8, rbx
call DiagnosticsPass:CheckFieldAddress(BoundFieldAccess,Symbol):this
;; bbWeight=2 PerfScore 3.50
G_M20472_IG16:
inc r14d
cmp r15d, r14d
jg SHORT G_M20472_IG11
;; bbWeight=4 PerfScore 6.00
G_M20472_IG17:
add rsp, 40
add rsp, 40
pop rbx
pop rbx
pop rbp
pop rbp
pop rsi
pop rsi
pop rdi
pop rdi
pop r14
pop r14
pop r15
pop r15
ret
ret
;; bbWeight=1 PerfScore 4.25
;; bbWeight=1 PerfScore 4.25
复制
已复制
复制
已复制
G_M20472_IG1
8
:
G_M20472_IG09:
call CORINFO_HELP_CHKCASTCLASS_SPECIAL
jmp SHORT G_M20472_IG06
;; bbWeight=0 PerfScore 0.00
G_M20472_IG1
0
:
call CORINFO_HELP_RNGCHKFAIL
call CORINFO_HELP_RNGCHKFAIL
int3
int3
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
复制
已复制
复制
已复制
; Total bytes of code
242
, prolog size 24, PerfScore
133.95
, instruction count
78
, allocated bytes for code
242
(MethodHash=2056b007) for method DiagnosticsPass:CheckArguments(ImmutableArray`1,ImmutableArray`1,Symbol):this
; Total bytes of code
145
, prolog size 24, PerfScore
112.50
, instruction count
52
, allocated bytes for code
145
(MethodHash=2056b007) for method DiagnosticsPass:CheckArguments(ImmutableArray`1,ImmutableArray`1,Symbol):this
; ============================================================
; ============================================================
已保存差异
原始文本
打开文件
; Assembly listing for method DiagnosticsPass:CheckArguments(ImmutableArray`1,ImmutableArray`1,Symbol):this ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; fully interruptible ; Final local variable assignments ; ; V00 this [V00,T07] ( 4, 6 ) ref -> rdi this class-hnd ;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op ;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op ; V03 arg3 [V03,T08] ( 4, 6 ) ref -> rbx class-hnd ; V04 loc0 [V04,T00] ( 12, 40.50) int -> r14 ; V05 OutArgs [V05 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace" ; V06 tmp1 [V06,T02] ( 6, 18 ) ref -> rdx "CASTCLASS eval op1" ; V07 tmp2 [V07,T05] ( 6, 10 ) long -> rcx "fgInsertCommaFormTemp is creating a new local variable" ; V08 tmp3 [V08,T01] ( 10, 30 ) ref -> r8 class-hnd "spilling QMark2" ; V09 tmp4 [V09,T04] ( 4, 16 ) ref -> rax class-hnd "Inlining Arg" ; V10 tmp5 [V10,T03] ( 6, 14.50) ref -> rsi V01.array(offs=0x00) P-INDEP "field V01.array (fldOffset=0x0)" ; V11 tmp6 [V11,T09] ( 4, 5.50) ref -> rbp V02.array(offs=0x00) P-INDEP "field V02.array (fldOffset=0x0)" ; V12 cse0 [V12,T10] ( 3, 6 ) ref -> rdx "CSE - aggressive" ; V13 cse1 [V13,T11] ( 3, 6 ) ref -> rdx "CSE - aggressive" ; V14 cse2 [V14,T06] ( 5, 9.50) int -> r15 "CSE - aggressive" ; ; Lcl frame size = 40 G_M20472_IG01: push r15 push r14 push rdi push rsi push rbp push rbx sub rsp, 40 mov rdi, rcx mov rsi, rdx mov rbp, r8 mov rbx, r9 ;; bbWeight=1 PerfScore 7.25 G_M20472_IG02: test rsi, rsi je G_M20472_IG17 ;; bbWeight=1 PerfScore 1.25 G_M20472_IG03: xor r14d, r14d mov r15d, dword ptr [rbp+8] test r15d, r15d jle G_M20472_IG17 cmp dword ptr [rsi+8], r15d jl SHORT G_M20472_IG11 ;; bbWeight=0.50 PerfScore 3.25 G_M20472_IG04: movsxd rcx, r14d cmp byte ptr [rsi+rcx+16], 0 je SHORT G_M20472_IG09 ;; bbWeight=4 PerfScore 13.00 G_M20472_IG05: movsxd rcx, r14d mov rdx, gword ptr [rbp+8*rcx+16] mov rax, rdx cmp byte ptr [rax+16], 108 jne SHORT G_M20472_IG09 mov r8, rdx test r8, r8 je SHORT G_M20472_IG08 ;; bbWeight=2 PerfScore 14.00 G_M20472_IG06: mov rcx, 0xD1FFAB1E cmp qword ptr [r8], rcx je SHORT G_M20472_IG08 ;; bbWeight=1 PerfScore 3.25 G_M20472_IG07: call CORINFO_HELP_CHKCASTCLASS_SPECIAL mov r8, rax ;; bbWeight=0.50 PerfScore 0.63 G_M20472_IG08: mov rcx, rdi mov rdx, r8 mov r8, rbx call DiagnosticsPass:CheckFieldAddress(BoundFieldAccess,Symbol):this ;; bbWeight=2 PerfScore 3.50 G_M20472_IG09: inc r14d cmp r15d, r14d jg SHORT G_M20472_IG04 ;; bbWeight=4 PerfScore 6.00 G_M20472_IG10: jmp SHORT G_M20472_IG17 ;; bbWeight=0.50 PerfScore 1.00 G_M20472_IG11: cmp r14d, dword ptr [rsi+8] jae SHORT G_M20472_IG18 movsxd rcx, r14d cmp byte ptr [rsi+rcx+16], 0 je SHORT G_M20472_IG16 ;; bbWeight=4 PerfScore 25.00 G_M20472_IG12: movsxd rcx, r14d mov rdx, gword ptr [rbp+8*rcx+16] mov rax, rdx cmp byte ptr [rax+16], 108 jne SHORT G_M20472_IG16 mov r8, rdx test r8, r8 je SHORT G_M20472_IG15 ;; bbWeight=2 PerfScore 14.00 G_M20472_IG13: mov rcx, 0xD1FFAB1E cmp qword ptr [r8], rcx je SHORT G_M20472_IG15 ;; bbWeight=1 PerfScore 3.25 G_M20472_IG14: call CORINFO_HELP_CHKCASTCLASS_SPECIAL mov r8, rax ;; bbWeight=0.50 PerfScore 0.63 G_M20472_IG15: mov rcx, rdi mov rdx, r8 mov r8, rbx call DiagnosticsPass:CheckFieldAddress(BoundFieldAccess,Symbol):this ;; bbWeight=2 PerfScore 3.50 G_M20472_IG16: inc r14d cmp r15d, r14d jg SHORT G_M20472_IG11 ;; bbWeight=4 PerfScore 6.00 G_M20472_IG17: add rsp, 40 pop rbx pop rbp pop rsi pop rdi pop r14 pop r15 ret ;; bbWeight=1 PerfScore 4.25 G_M20472_IG18: call CORINFO_HELP_RNGCHKFAIL int3 ;; bbWeight=0 PerfScore 0.00 ; Total bytes of code 242, prolog size 24, PerfScore 133.95, instruction count 78, allocated bytes for code 242 (MethodHash=2056b007) for method DiagnosticsPass:CheckArguments(ImmutableArray`1,ImmutableArray`1,Symbol):this ; ============================================================
更改后文本
打开文件
; Assembly listing for method DiagnosticsPass:CheckArguments(ImmutableArray`1,ImmutableArray`1,Symbol):this ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; fully interruptible ; Final local variable assignments ; ; V00 this [V00,T04] ( 3, 10 ) ref -> rdi this class-hnd ;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op ;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op ; V03 arg3 [V03,T05] ( 3, 10 ) ref -> rbx class-hnd ; V04 loc0 [V04,T00] ( 7, 58.50) int -> r14 ; V05 OutArgs [V05 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace" ; V06 tmp1 [V06,T06] ( 3, 8 ) ref -> rdx "CASTCLASS eval op1" ; V07 tmp2 [V07,T07] ( 3, 8 ) long -> rcx "fgInsertCommaFormTemp is creating a new local variable" ; V08 tmp3 [V08,T01] ( 5, 28 ) ref -> rax class-hnd "spilling QMark2" ; V09 tmp4 [V09,T08] ( 2, 8 ) ref -> rcx class-hnd "Inlining Arg" ; V10 tmp5 [V10,T03] ( 4, 10 ) ref -> rsi V01.array(offs=0x00) P-INDEP "field V01.array (fldOffset=0x0)" ; V11 tmp6 [V11,T10] ( 3, 3.50) ref -> rbp V02.array(offs=0x00) P-INDEP "field V02.array (fldOffset=0x0)" ; V12 cse0 [V12,T09] ( 3, 6 ) ref -> rdx "CSE - aggressive" ; V13 cse1 [V13,T02] ( 3, 17 ) int -> r15 "CSE - aggressive" ; ; Lcl frame size = 40 G_M20472_IG01: push r15 push r14 push rdi push rsi push rbp push rbx sub rsp, 40 mov rdi, rcx mov rsi, rdx mov rbp, r8 mov rbx, r9 ;; bbWeight=1 PerfScore 7.25 G_M20472_IG02: test rsi, rsi je SHORT G_M20472_IG08 ;; bbWeight=1 PerfScore 1.25 G_M20472_IG03: xor r14d, r14d mov r15d, dword ptr [rbp+8] test r15d, r15d jle SHORT G_M20472_IG08 ;; bbWeight=0.50 PerfScore 1.75 G_M20472_IG04: cmp r14d, dword ptr [rsi+8] jae SHORT G_M20472_IG10 movsxd rcx, r14d cmp byte ptr [rsi+rcx+16], 0 je SHORT G_M20472_IG07 ;; bbWeight=4 PerfScore 25.00 G_M20472_IG05: movsxd rcx, r14d mov rdx, gword ptr [rbp+8*rcx+16] mov rcx, rdx cmp byte ptr [rcx+16], 108 jne SHORT G_M20472_IG07 mov rax, rdx test rax, rax je SHORT G_M20472_IG06 mov rcx, 0xD1FFAB1E cmp qword ptr [rax], rcx jne SHORT G_M20472_IG09 ;; bbWeight=2 PerfScore 20.50 G_M20472_IG06: mov rcx, rdi mov rdx, rax mov r8, rbx call DiagnosticsPass:CheckFieldAddress(BoundFieldAccess,Symbol):this ;; bbWeight=8 PerfScore 14.00 G_M20472_IG07: inc r14d cmp r15d, r14d jg SHORT G_M20472_IG04 ;; bbWeight=16 PerfScore 24.00 G_M20472_IG08: add rsp, 40 pop rbx pop rbp pop rsi pop rdi pop r14 pop r15 ret ;; bbWeight=1 PerfScore 4.25 G_M20472_IG09: call CORINFO_HELP_CHKCASTCLASS_SPECIAL jmp SHORT G_M20472_IG06 ;; bbWeight=0 PerfScore 0.00 G_M20472_IG10: call CORINFO_HELP_RNGCHKFAIL int3 ;; bbWeight=0 PerfScore 0.00 ; Total bytes of code 145, prolog size 24, PerfScore 112.50, instruction count 52, allocated bytes for code 145 (MethodHash=2056b007) for method DiagnosticsPass:CheckArguments(ImmutableArray`1,ImmutableArray`1,Symbol):this ; ============================================================
查找差异