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