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 ; ============================================================
尋找差異