Diff
checker
文本
文本
圖像
文檔
Excel
文件夾
Legal
Enterprise
桌面版
定價
登入
下載 Diffchecker 桌面版
比較文本
尋找兩個文字檔案之間的差異
工具
歷史
顯示
檢視
拆分
統一
即時編輯器
隱藏空白變更
摺疊未變更行
關閉換行
比對精度
智能
語法
無
變更外觀
處理
忽略
文字轉換
前往第一個差異
編輯輸入
Diffchecker Desktop
執行Diffchecker最安全的方式。取得Diffchecker桌面應用程式:您的差異永遠不會離開您的電腦!
取得桌面版
Untitled Diff
建立於
4 年前
差異永不過期
清除
匯出
分享
解釋
89 刪除
行
總計
刪除
字符
總計
刪除
要繼續使用此功能,請升級到
Diff
checker
Pro
查看價格
160 行
全部複製
94 新增
行
總計
新增
字符
總計
新增
要繼續使用此功能,請升級到
Diff
checker
Pro
查看價格
163 行
全部複製
; Assembly listing for method System.Marvin:ComputeHash32(byref,uint,uint,uint):int
; Assembly listing for method System.Marvin:ComputeHash32(byref,uint,uint,uint):int
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Tier-1 compilation
; Tier-1 compilation
; optimized code
; optimized code
; optimized using profile data
; optimized using profile data
; rsp based frame
; rsp based frame
; fully interruptible
; fully interruptible
; with Static PGO: edge weights are valid, and fgCalledCount is 754635
; with Static PGO: edge weights are valid, and fgCalledCount is 754635
; 0 inlinees with PGO data; 30 single block inlinees; 0 inlinees without PGO data
; 0 inlinees with PGO data; 30 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
複製
已複製
複製
已複製
; V00 arg0 [V00,T0
5
] ( 10, 21.18) byref -> rcx
; V00 arg0 [V00,T0
4
] ( 10, 21.18) byref -> rcx
; V01 arg1 [V01,T
09
] (
13
,
8.98
) int -> rdx
; V01 arg1 [V01,T
10
] (
11
,
6.99
) int -> rdx
single-def
; V02 arg2 [V02,T0
0
] (
19, 43.80
) int ->
r8
ld-addr-op
; V02 arg2 [V02,T0
3
] (
10, 26.08
) int ->
registers
ld-addr-op
; V03 arg3 [V03,T07] ( 7, 12.81) int ->
r9
ld-addr-op
; V03 arg3 [V03,T07] ( 7, 12.81) int ->
registers
ld-addr-op
; V04 loc0 [V04,T08] ( 4, 14.26) int -> rax
; V04 loc0 [V04,T08] ( 4, 14.26) int -> rax
複製
已複製
複製
已複製
; V05 loc1 [V05,T1
5
] (
16
,
8
.00) int -> rax
; V05 loc1 [V05,T1
7
] (
8
,
2
.00) int -> rax
; V06 loc2 [V06,T1
4
] ( 2, 8.85) int -> r10
; V06 loc2 [V06,T1
1
] ( 2, 8.85) int -> r10
;# V07 OutArgs [V07 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
;# V07 OutArgs [V07 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp1 [V08 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V09 tmp2 [V09,T06] ( 2, 17.70) int -> rax "dup spill"
; V09 tmp2 [V09,T06] ( 2, 17.70) int -> rax "dup spill"
;* V10 tmp3 [V10 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V10 tmp3 [V10 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V11 tmp4 [V11 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V11 tmp4 [V11 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
複製
已複製
複製
已複製
; V12 tmp5 [V12,T0
3
] (
9, 39.82
) int -> r8 "Inline stloc first use temp"
; V12 tmp5 [V12,T0
5
] (
5, 22.12
) int -> r8 "Inline stloc first use temp"
; V13 tmp6 [V13,T0
1
] (
10, 44.24
) int -> r9 "Inline stloc first use temp"
; V13 tmp6 [V13,T0
0
] (
8, 35.39
) int -> r9 "Inline stloc first use temp"
; V14 tmp7 [V14,T0
4
] (
9, 39.82
) int ->
r8
"Inline stloc first use temp"
; V14 tmp7 [V14,T0
1
] (
8, 35.39
) int ->
r10
"Inline stloc first use temp"
; V15 tmp8 [V15,T02] (
10, 44.24
) int ->
r9
"Inline stloc first use temp"
; V15 tmp8 [V15,T02] (
8, 35.39
) int ->
r8
"Inline stloc first use temp"
; V16 tmp9 [V16,T1
7
] (
9
,
4.33
) int -> r8 "Inline stloc first use temp"
; V16 tmp9 [V16,T1
4
] (
8
,
3.85
) int -> r8 "Inline stloc first use temp"
; V17 tmp10 [V17,T1
6
] (
10
,
4.81
) int -> r9 "Inline stloc first use temp"
; V17 tmp10 [V17,T1
5
] (
8
,
3.85
) int -> r9 "Inline stloc first use temp"
;* V18 tmp11 [V18 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V18 tmp11 [V18 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
複製
已複製
複製
已複製
; V19 tmp12 [V19,T
10
] (
10, 10
.00) int -> r
c
x "Inline stloc first use temp"
; V19 tmp12 [V19,T
09
] (
9, 9
.00) int -> r
a
x "Inline stloc first use temp"
; V20 tmp13 [V20,T1
1
] (
10, 10
.00) int -> r
a
x "Inline stloc first use temp"
; V20 tmp13 [V20,T1
2
] (
8, 8
.00) int -> r
c
x "Inline stloc first use temp"
; V21 tmp14 [V21,T1
3
] (
9
,
9
.00) int -> r
d
x "Inline stloc first use temp"
; V21 tmp14 [V21,T1
6
] (
3
,
3
.00) int -> r
a
x "Inline stloc first use temp"
; V22 tmp15 [V22,T1
2
] (
10, 10
.00) int -> r
a
x "Inline stloc first use temp"
; V22 tmp15 [V22,T1
3
] (
6, 6
.00) int -> r
d
x "Inline stloc first use temp"
;
;
; Lcl frame size = 0
; Lcl frame size = 0
G_M16234_IG01:
G_M16234_IG01:
;; size=0 bbWeight=1 PerfScore 0.00
;; size=0 bbWeight=1 PerfScore 0.00
G_M16234_IG02:
G_M16234_IG02:
cmp edx, 8
cmp edx, 8
jb G_M16234_IG10
jb G_M16234_IG10
;; size=9 bbWeight=1 PerfScore 1.25
;; size=9 bbWeight=1 PerfScore 1.25
G_M16234_IG03:
G_M16234_IG03:
mov eax, edx
mov eax, edx
shr eax, 3
shr eax, 3
複製
已複製
複製
已複製
align [
0
bytes for IG04]
align [
2
bytes for IG04]
;; size=
5
bbWeight=0.99 PerfScore 0.
74
;; size=
7
bbWeight=0.99 PerfScore 0.
99
G_M16234_IG04:
G_M16234_IG04:
add r8d, dword ptr [rcx]
add r8d, dword ptr [rcx]
mov r10d, dword ptr [rcx+04H]
mov r10d, dword ptr [rcx+04H]
xor r9d, r8d
xor r9d, r8d
rol r8d, 20
rol r8d, 20
add r8d, r9d
add r8d, r9d
複製
已複製
複製
已複製
rol r9d, 9
; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (
add: 1
) 32B boundary ...............................
; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (
rol: 3
) 32B boundary ...............................
xor r9d, r8d
rol r8d, 27
add r8d, r9d
rol r9d, 19
add r8d, r10d
xor r9d, r8d
rol r8d, 20
add r8d, r9d
rol r9d, 9
rol r9d, 9
複製
已複製
複製
已複製
; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (rol: 2) 32B boundary ...............................
xor r9d, r8d
xor r9d, r8d
rol r8d, 27
rol r8d, 27
add r8d, r9d
add r8d, r9d
rol r9d, 19
rol r9d, 19
複製
已複製
複製
已複製
add r10d, r8d
mov r8d, r9d
xor r8d, r10d
rol r10d, 20
; ............................... 32B boundary ...............................
add r10d, r8d
rol r8d, 9
xor r8d, r10d
rol r10d, 27
add r10d, r8d
rol r8d, 19
mov r9d, r10d
add rcx, 8
add rcx, 8
dec eax
dec eax
複製
已複製
複製
已複製
xchg r8, r9
; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (xchg: 1) 32B boundary ...............................
jne SHORT G_M16234_IG04
jne SHORT G_M16234_IG04
複製
已複製
複製
已複製
;; size=
74
bbWeight=4.42 PerfScore
56.41
;; size=
83
bbWeight=4.42 PerfScore
63.04
G_M16234_IG05:
G_M16234_IG05:
test dl, 4
test dl, 4
jne SHORT G_M16234_IG09
jne SHORT G_M16234_IG09
;; size=5 bbWeight=0.99 PerfScore 1.23
;; size=5 bbWeight=0.99 PerfScore 1.23
G_M16234_IG06:
G_M16234_IG06:
mov eax, edx
mov eax, edx
and rax, 7
and rax, 7
複製
已複製
複製
已複製
; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (and: 3) 32B boundary ...............................
mov eax, dword ptr [rcx+rax-04H]
mov eax, dword ptr [rcx+rax-04H]
複製
已複製
複製
已複製
not edx
shl edx, 3
shr eax, 8
shr eax, 8
or eax, 0xD1FFAB1E
or eax, 0xD1FFAB1E
複製
已複製
複製
已複製
not edx
shl edx, 3
shrx eax, eax, edx
shrx eax, eax, edx
複製
已複製
複製
已複製
; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (shrx: 4) 32B boundary ...............................
;; size=28 bbWeight=1.00 PerfScore 4.49
;; size=28 bbWeight=1.00 PerfScore 4.49
G_M16234_IG07:
G_M16234_IG07:
複製
已複製
複製
已複製
add
r8d,
eax
add
eax
, r8d
mov e
a
x, r9d
mov e
c
x, r9d
xor eax, r8d
xor
ecx, eax
; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (xor: 2) 32B boundary ...............................
rol eax,
20
mov ecx, r8d
add
eax, ecx
rol ecx, 20
rol ecx,
9
add
ecx, eax
xor
ecx, eax
rol eax,
9
rol eax,
27
xor
eax, ecx
add
eax, ecx
rol ecx,
27
rol ecx, 19
add
ecx, eax
rol eax,
19
xor
eax, ecx
mov edx, ecx
mov edx, ecx
複製
已複製
複製
已複製
rol edx, 20
add edx, eax
; ............................... 32B boundary ...............................
; ............................... 32B boundary ...............................
複製
已複製
複製
已複製
rol eax,
9
xor edx, eax
xor
eax, edx
rol eax,
20
rol edx,
27
add
eax, edx
add
edx, eax
rol edx,
9
rol eax,
19
xor
edx, eax
xor eax,
edx
rol eax,
27
;; size=
54
bbWeight=1.00 PerfScore 7.25
add eax, edx
mov r8d, edx
rol r8d,
19
xor eax,
r8d
;; size=
55
bbWeight=1.00 PerfScore 7.25
G_M16234_IG08:
G_M16234_IG08:
ret
ret
;; size=1 bbWeight=1.00 PerfScore 1.00
;; size=1 bbWeight=1.00 PerfScore 1.00
G_M16234_IG09:
G_M16234_IG09:
add r8d, dword ptr [rcx]
add r8d, dword ptr [rcx]
xor r9d, r8d
xor r9d, r8d
複製
已複製
複製
已複製
; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (xor: 2) 32B boundary ...............................
rol r8d, 20
rol r8d, 20
add r8d, r9d
add r8d, r9d
rol r9d, 9
rol r9d, 9
複製
已複製
複製
已複製
; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (rol: 1) 32B boundary ...............................
xor r9d, r8d
xor r9d, r8d
rol r8d, 27
rol r8d, 27
add r8d, r9d
add r8d, r9d
rol r9d, 19
rol r9d, 19
jmp SHORT G_M16234_IG06
jmp SHORT G_M16234_IG06
;; size=33 bbWeight=0.48 PerfScore 3.85
;; size=33 bbWeight=0.48 PerfScore 3.85
G_M16234_IG10:
G_M16234_IG10:
cmp edx, 4
cmp edx, 4
複製
已複製
複製
已複製
; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (cmp: 0 ; jcc erratum) 32B boundary ...............................
jae SHORT G_M16234_IG09
jae SHORT G_M16234_IG09
;; size=5 bbWeight=0.01 PerfScore 0.02
;; size=5 bbWeight=0.01 PerfScore 0.02
G_M16234_IG11:
G_M16234_IG11:
mov eax, 128
mov eax, 128
test dl, 1
test dl, 1
已保存差異
原始文本
開啟檔案
; Assembly listing for method System.Marvin:ComputeHash32(byref,uint,uint,uint):int ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; Tier-1 compilation ; optimized code ; optimized using profile data ; rsp based frame ; fully interruptible ; with Static PGO: edge weights are valid, and fgCalledCount is 754635 ; 0 inlinees with PGO data; 30 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T05] ( 10, 21.18) byref -> rcx ; V01 arg1 [V01,T09] ( 13, 8.98) int -> rdx ; V02 arg2 [V02,T00] ( 19, 43.80) int -> r8 ld-addr-op ; V03 arg3 [V03,T07] ( 7, 12.81) int -> r9 ld-addr-op ; V04 loc0 [V04,T08] ( 4, 14.26) int -> rax ; V05 loc1 [V05,T15] ( 16, 8.00) int -> rax ; V06 loc2 [V06,T14] ( 2, 8.85) int -> r10 ;# V07 OutArgs [V07 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace" ;* V08 tmp1 [V08 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ; V09 tmp2 [V09,T06] ( 2, 17.70) int -> rax "dup spill" ;* V10 tmp3 [V10 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ;* V11 tmp4 [V11 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ; V12 tmp5 [V12,T03] ( 9, 39.82) int -> r8 "Inline stloc first use temp" ; V13 tmp6 [V13,T01] ( 10, 44.24) int -> r9 "Inline stloc first use temp" ; V14 tmp7 [V14,T04] ( 9, 39.82) int -> r8 "Inline stloc first use temp" ; V15 tmp8 [V15,T02] ( 10, 44.24) int -> r9 "Inline stloc first use temp" ; V16 tmp9 [V16,T17] ( 9, 4.33) int -> r8 "Inline stloc first use temp" ; V17 tmp10 [V17,T16] ( 10, 4.81) int -> r9 "Inline stloc first use temp" ;* V18 tmp11 [V18 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ; V19 tmp12 [V19,T10] ( 10, 10.00) int -> rcx "Inline stloc first use temp" ; V20 tmp13 [V20,T11] ( 10, 10.00) int -> rax "Inline stloc first use temp" ; V21 tmp14 [V21,T13] ( 9, 9.00) int -> rdx "Inline stloc first use temp" ; V22 tmp15 [V22,T12] ( 10, 10.00) int -> rax "Inline stloc first use temp" ; ; Lcl frame size = 0 G_M16234_IG01: ;; size=0 bbWeight=1 PerfScore 0.00 G_M16234_IG02: cmp edx, 8 jb G_M16234_IG10 ;; size=9 bbWeight=1 PerfScore 1.25 G_M16234_IG03: mov eax, edx shr eax, 3 align [0 bytes for IG04] ;; size=5 bbWeight=0.99 PerfScore 0.74 G_M16234_IG04: add r8d, dword ptr [rcx] mov r10d, dword ptr [rcx+04H] xor r9d, r8d rol r8d, 20 add r8d, r9d rol r9d, 9 ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (rol: 3) 32B boundary ............................... xor r9d, r8d rol r8d, 27 add r8d, r9d rol r9d, 19 add r8d, r10d xor r9d, r8d rol r8d, 20 add r8d, r9d rol r9d, 9 ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (rol: 2) 32B boundary ............................... xor r9d, r8d rol r8d, 27 add r8d, r9d rol r9d, 19 add rcx, 8 dec eax jne SHORT G_M16234_IG04 ;; size=74 bbWeight=4.42 PerfScore 56.41 G_M16234_IG05: test dl, 4 jne SHORT G_M16234_IG09 ;; size=5 bbWeight=0.99 PerfScore 1.23 G_M16234_IG06: mov eax, edx and rax, 7 ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (and: 3) 32B boundary ............................... mov eax, dword ptr [rcx+rax-04H] not edx shl edx, 3 shr eax, 8 or eax, 0xD1FFAB1E shrx eax, eax, edx ;; size=28 bbWeight=1.00 PerfScore 4.49 G_M16234_IG07: add r8d, eax mov eax, r9d xor eax, r8d ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (xor: 2) 32B boundary ............................... mov ecx, r8d rol ecx, 20 add ecx, eax rol eax, 9 xor eax, ecx rol ecx, 27 add ecx, eax rol eax, 19 xor eax, ecx mov edx, ecx rol edx, 20 add edx, eax ; ............................... 32B boundary ............................... rol eax, 9 xor eax, edx rol edx, 27 add edx, eax rol eax, 19 xor eax, edx ;; size=54 bbWeight=1.00 PerfScore 7.25 G_M16234_IG08: ret ;; size=1 bbWeight=1.00 PerfScore 1.00 G_M16234_IG09: add r8d, dword ptr [rcx] xor r9d, r8d rol r8d, 20 add r8d, r9d rol r9d, 9 ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (rol: 1) 32B boundary ............................... xor r9d, r8d rol r8d, 27 add r8d, r9d rol r9d, 19 jmp SHORT G_M16234_IG06 ;; size=33 bbWeight=0.48 PerfScore 3.85 G_M16234_IG10: cmp edx, 4 jae SHORT G_M16234_IG09 ;; size=5 bbWeight=0.01 PerfScore 0.02 G_M16234_IG11: mov eax, 128 test dl, 1 jne SHORT G_M16234_IG14 ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (jne: 0 ; jcc erratum) 32B boundary ............................... ;; size=10 bbWeight=0.00 PerfScore 0.00 G_M16234_IG12: test dl, 2 je SHORT G_M16234_IG07 ;; size=5 bbWeight=0.00 PerfScore 0.00 G_M16234_IG13: shl eax, 16 movzx rcx, word ptr [rcx] or eax, ecx jmp SHORT G_M16234_IG07 ;; size=10 bbWeight=0.00 PerfScore 0.01 G_M16234_IG14: mov eax, edx and rax, 2 movzx rax, byte ptr [rcx+rax] or eax, 0x8000 jmp SHORT G_M16234_IG12 ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (jmp: 0 ; jcc erratum) 32B boundary ............................... ;; size=17 bbWeight=0 PerfScore 0.00 ; Total bytes of code 256, prolog size 0, PerfScore 101.85, instruction count 85, allocated bytes for code 256 (MethodHash=db76c095) for method System.Marvin:ComputeHash32(byref,uint,uint,uint):int ; ============================================================
更改後文本
開啟檔案
; Assembly listing for method System.Marvin:ComputeHash32(byref,uint,uint,uint):int ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; Tier-1 compilation ; optimized code ; optimized using profile data ; rsp based frame ; fully interruptible ; with Static PGO: edge weights are valid, and fgCalledCount is 754635 ; 0 inlinees with PGO data; 30 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T04] ( 10, 21.18) byref -> rcx ; V01 arg1 [V01,T10] ( 11, 6.99) int -> rdx single-def ; V02 arg2 [V02,T03] ( 10, 26.08) int -> registers ld-addr-op ; V03 arg3 [V03,T07] ( 7, 12.81) int -> registers ld-addr-op ; V04 loc0 [V04,T08] ( 4, 14.26) int -> rax ; V05 loc1 [V05,T17] ( 8, 2.00) int -> rax ; V06 loc2 [V06,T11] ( 2, 8.85) int -> r10 ;# V07 OutArgs [V07 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace" ;* V08 tmp1 [V08 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ; V09 tmp2 [V09,T06] ( 2, 17.70) int -> rax "dup spill" ;* V10 tmp3 [V10 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ;* V11 tmp4 [V11 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ; V12 tmp5 [V12,T05] ( 5, 22.12) int -> r8 "Inline stloc first use temp" ; V13 tmp6 [V13,T00] ( 8, 35.39) int -> r9 "Inline stloc first use temp" ; V14 tmp7 [V14,T01] ( 8, 35.39) int -> r10 "Inline stloc first use temp" ; V15 tmp8 [V15,T02] ( 8, 35.39) int -> r8 "Inline stloc first use temp" ; V16 tmp9 [V16,T14] ( 8, 3.85) int -> r8 "Inline stloc first use temp" ; V17 tmp10 [V17,T15] ( 8, 3.85) int -> r9 "Inline stloc first use temp" ;* V18 tmp11 [V18 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ; V19 tmp12 [V19,T09] ( 9, 9.00) int -> rax "Inline stloc first use temp" ; V20 tmp13 [V20,T12] ( 8, 8.00) int -> rcx "Inline stloc first use temp" ; V21 tmp14 [V21,T16] ( 3, 3.00) int -> rax "Inline stloc first use temp" ; V22 tmp15 [V22,T13] ( 6, 6.00) int -> rdx "Inline stloc first use temp" ; ; Lcl frame size = 0 G_M16234_IG01: ;; size=0 bbWeight=1 PerfScore 0.00 G_M16234_IG02: cmp edx, 8 jb G_M16234_IG10 ;; size=9 bbWeight=1 PerfScore 1.25 G_M16234_IG03: mov eax, edx shr eax, 3 align [2 bytes for IG04] ;; size=7 bbWeight=0.99 PerfScore 0.99 G_M16234_IG04: add r8d, dword ptr [rcx] mov r10d, dword ptr [rcx+04H] xor r9d, r8d rol r8d, 20 add r8d, r9d ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (add: 1) 32B boundary ............................... rol r9d, 9 xor r9d, r8d rol r8d, 27 add r8d, r9d rol r9d, 19 add r10d, r8d mov r8d, r9d xor r8d, r10d rol r10d, 20 ; ............................... 32B boundary ............................... add r10d, r8d rol r8d, 9 xor r8d, r10d rol r10d, 27 add r10d, r8d rol r8d, 19 mov r9d, r10d add rcx, 8 dec eax xchg r8, r9 ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (xchg: 1) 32B boundary ............................... jne SHORT G_M16234_IG04 ;; size=83 bbWeight=4.42 PerfScore 63.04 G_M16234_IG05: test dl, 4 jne SHORT G_M16234_IG09 ;; size=5 bbWeight=0.99 PerfScore 1.23 G_M16234_IG06: mov eax, edx and rax, 7 mov eax, dword ptr [rcx+rax-04H] shr eax, 8 or eax, 0xD1FFAB1E not edx shl edx, 3 shrx eax, eax, edx ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (shrx: 4) 32B boundary ............................... ;; size=28 bbWeight=1.00 PerfScore 4.49 G_M16234_IG07: add eax, r8d mov ecx, r9d xor ecx, eax rol eax, 20 add eax, ecx rol ecx, 9 xor ecx, eax rol eax, 27 add eax, ecx rol ecx, 19 mov edx, ecx ; ............................... 32B boundary ............................... xor edx, eax rol eax, 20 add eax, edx rol edx, 9 xor edx, eax rol eax, 27 add eax, edx mov r8d, edx rol r8d, 19 xor eax, r8d ;; size=55 bbWeight=1.00 PerfScore 7.25 G_M16234_IG08: ret ;; size=1 bbWeight=1.00 PerfScore 1.00 G_M16234_IG09: add r8d, dword ptr [rcx] xor r9d, r8d ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (xor: 2) 32B boundary ............................... rol r8d, 20 add r8d, r9d rol r9d, 9 xor r9d, r8d rol r8d, 27 add r8d, r9d rol r9d, 19 jmp SHORT G_M16234_IG06 ;; size=33 bbWeight=0.48 PerfScore 3.85 G_M16234_IG10: cmp edx, 4 ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (cmp: 0 ; jcc erratum) 32B boundary ............................... jae SHORT G_M16234_IG09 ;; size=5 bbWeight=0.01 PerfScore 0.02 G_M16234_IG11: mov eax, 128 test dl, 1 jne SHORT G_M16234_IG14 ;; size=10 bbWeight=0.00 PerfScore 0.00 G_M16234_IG12: test dl, 2 je SHORT G_M16234_IG07 ;; size=5 bbWeight=0.00 PerfScore 0.00 G_M16234_IG13: shl eax, 16 movzx rcx, word ptr [rcx] or eax, ecx jmp SHORT G_M16234_IG07 ;; size=10 bbWeight=0.00 PerfScore 0.01 G_M16234_IG14: mov eax, edx and rax, 2 ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (and: 1) 32B boundary ............................... movzx rax, byte ptr [rcx+rax] or eax, 0x8000 jmp SHORT G_M16234_IG12 ;; size=17 bbWeight=0 PerfScore 0.00 ; Total bytes of code 268, prolog size 0, PerfScore 109.93, instruction count 88, allocated bytes for code 268 (MethodHash=db76c095) for method System.Marvin:ComputeHash32(byref,uint,uint,uint):int ; ============================================================
尋找差異