Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
표시
레이아웃
나란히 보기
합쳐 보기
실시간 편집
공백 변경 숨기기
변경 없는 행 숨기기
줄바꿈 비활성화
비교 단위
스마트
구문
없음
모양 변경
처리
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 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 ; ============================================================
비교하기