Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
delegate diff
생성일
3일 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
136 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
200 행
복사
152 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
215 행
복사
; Assembly listing for method MyBenchmarks:EqualsTrue():bool:this (Tier1)
; Assembly listing for method MyBenchmarks:EqualsTrue():bool:this (Tier1)
; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
; Tier1 code
; Tier1 code
; optimized code
; optimized code
; optimized using Synthesized PGO
; optimized using Synthesized PGO
; rbp based frame
; rbp based frame
; fully interruptible
; fully interruptible
; with Synthesized PGO: fgCalledCount is 100
; with Synthesized PGO: fgCalledCount is 100
; No PGO data
; No PGO data
복사
복사됨
복사
복사됨
;
6
inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
;
8
inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG01: ;; offset=0x0000
push rbp
push rbp
push r15
push r15
복사
복사됨
복사
복사됨
push r14
push rbx
push rbx
복사
복사됨
복사
복사됨
lea rbp, [rsp+0x
1
0]
push rax
G_M000_IG02: ;; offset=0x000
9
lea rbp, [rsp+0x
2
0]
G_M000_IG02: ;; offset=0x000
C
mov rbx, gword ptr [rdi+0x10]
mov rbx, gword ptr [rdi+0x10]
mov r15, gword ptr [rdi+0x18]
mov r15, gword ptr [rdi+0x18]
test r15, r15
test r15, r15
복사
복사됨
복사
복사됨
je
SHORT
G_M000_IG0
6
je
G_M000_IG0
7
cmp r15, rbx
cmp r15, rbx
복사
복사됨
복사
복사됨
je G_M000_IG2
6
je G_M000_IG2
8
test rbx, rbx
test rbx, rbx
복사
복사됨
복사
복사됨
je
SHORT
G_M000_IG0
7
je
G_M000_IG0
8
cmp qword ptr [r15+0x30], 0
cmp qword ptr [r15+0x30], 0
복사
복사됨
복사
복사됨
jne
SHORT
G_M000_IG0
8
jne
G_M000_IG0
9
cmp
gword ptr [r15+0x28]
, 0
mov
r14,
gword ptr [r15+0x28]
jne G_M000_IG1
6
test r14, r14
G_M000_IG03: ;; offset=0x00
36
jne G_M000_IG1
7
G_M000_IG03: ;; offset=0x00
47
mov rsi, gword ptr [rbx+0x28]
mov rsi, gword ptr [rbx+0x28]
복사
복사됨
복사
복사됨
mov rdi,
0x75404237AF08
mov rdi,
0x74F73358AF48
mov rax,
0x754042346880
mov rax,
0x74F733556880
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
test rax, rax
복사
복사됨
복사
복사됨
jne G_M000_IG1
0
jne G_M000_IG1
1
mov r
s
i, gword ptr [r15+0x08]
mov r
d
i, gword ptr [r15+0x08]
cmp r
s
i, gword ptr [rbx+0x08]
cmp r
d
i, gword ptr [rbx+0x08]
jne G_M000_IG2
0
jne G_M000_IG2
1
mov r
s
i, qword ptr [r15+0x18]
mov r
d
i, qword ptr [r15+0x18]
cmp r
s
i, qword ptr [rbx+0x18]
cmp r
d
i, qword ptr [rbx+0x18]
jne G_M000_IG2
0
jne G_M000_IG2
1
mov r
s
i, qword ptr [r15+0x20]
mov r
d
i, qword ptr [r15+0x20]
cmp r
s
i, qword ptr [rbx+0x20]
cmp r
d
i, qword ptr [rbx+0x20]
jne G_M000_IG2
0
jne G_M000_IG2
1
G_M000_IG04: ;; offset=0x00
83
G_M000_IG04: ;; offset=0x00
94
mov
eax
, 1
mov
r14d
, 1
G_M000_IG05: ;; offset=
0x0088
G_M000_IG05: ;; offset=
0x009A
mov eax, r14d
G_M000_IG06: ;; offset=0x009D
add rsp, 8
pop rbx
pop rbx
복사
복사됨
복사
복사됨
pop r14
pop r15
pop r15
pop rbp
pop rbp
ret
ret
복사
복사됨
복사
복사됨
G_M000_IG0
6
: ;; offset=0x00
8D
G_M000_IG0
7
: ;; offset=0x00
A8
test rbx, rbx
test rbx, rbx
sete al
sete al
movzx rax, al
movzx rax, al
복사
복사됨
복사
복사됨
jmp SHORT G_M000_IG0
5
jmp SHORT G_M000_IG0
6
G_M000_IG0
7
: ;; offset=0x00
98
G_M000_IG0
8
: ;; offset=0x00
B3
xor
eax, eax
xor
r14d, r14d
jmp SHORT G_M000_IG05
jmp SHORT G_M000_IG05
복사
복사됨
복사
복사됨
G_M000_IG0
8
: ;; offset=0x00
9C
G_M000_IG0
9
: ;; offset=0x00
B8
mov rdi, r15
mov rdi, r15
복사
복사됨
복사
복사됨
mov rax,
0x75404277F420
mov rax,
0x74F73398F420
call [rax]System.MulticastDelegate:InvocationListLogicallyNull():bool:this
call [rax]System.MulticastDelegate:InvocationListLogicallyNull():bool:this
test eax, eax
test eax, eax
복사
복사됨
복사
복사됨
je SHORT G_M000_IG1
2
je SHORT G_M000_IG1
3
cmp qword ptr [r15+0x30], -1
cmp qword ptr [r15+0x30], -1
복사
복사됨
복사
복사됨
jne SHORT G_M000_IG
09
jne SHORT G_M000_IG
10
cmp qword ptr [rbx+0x30], -1
cmp qword ptr [rbx+0x30], -1
복사
복사됨
복사
복사됨
jne SHORT G_M000_IG0
7
jne SHORT G_M000_IG0
8
mov rsi, qword ptr [r15+0x18]
mov rsi, qword ptr [r15+0x18]
cmp rsi, qword ptr [rbx+0x18]
cmp rsi, qword ptr [rbx+0x18]
복사
복사됨
복사
복사됨
jne SHORT G_M000_IG0
7
jne SHORT G_M000_IG0
8
mov rsi, qword ptr [r15+0x20]
mov rsi, qword ptr [r15+0x20]
cmp rsi, qword ptr [rbx+0x20]
cmp rsi, qword ptr [rbx+0x20]
복사
복사됨
복사
복사됨
sete
al
sete
r14b
movzx
rax, al
movzx
r14, r14b
jmp SHORT G_M000_IG05
jmp SHORT G_M000_IG05
복사
복사됨
복사
복사됨
G_M000_IG
09
: ;; offset=0x00
D7
G_M000_IG
10
: ;; offset=0x00
F5
mov rsi, gword ptr [rbx+0x28]
mov rsi, gword ptr [rbx+0x28]
복사
복사됨
복사
복사됨
mov rdi,
0x75404237AF08
mov rdi,
0x74F73358AF48
mov rax,
0x754042346880
mov rax,
0x74F733556880
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
test rax, rax
복사
복사됨
복사
복사됨
je G_M000_IG1
7
je G_M000_IG1
8
G_M000_IG1
0
: ;; offset=
0x00FA
G_M000_IG1
1
: ;; offset=
0x0118
mov rsi, gword ptr [rbx+0x28]
mov rsi, gword ptr [rbx+0x28]
mov rdi, r15
mov rdi, r15
복사
복사됨
복사
복사됨
mov rax,
0x75404237B4C0
mov rax,
0x74F73358B508
G_M000_IG1
1
: ;; offset=0x01
0B
G_M000_IG1
2
: ;; offset=0x01
29
add rsp, 8
pop rbx
pop rbx
복사
복사됨
복사
복사됨
pop r14
pop r15
pop r15
pop rbp
pop rbp
tail.jmp [rax]System.MulticastDelegate:Equals(System.Object):bool:this
tail.jmp [rax]System.MulticastDelegate:Equals(System.Object):bool:this
복사
복사됨
복사
복사됨
G_M000_IG1
2
: ;; offset=0x01
12
G_M000_IG1
3
: ;; offset=0x01
36
mov rsi, gword ptr [r15+0x28]
mov rsi, gword ptr [r15+0x28]
복사
복사됨
복사
복사됨
mov rdi,
0x75404237AF08
mov rdi,
0x74F73358AF48
mov rax,
0x754042346880
mov rax,
0x74F733556880
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
test rax, rax
복사
복사됨
복사
복사됨
je SHORT G_M000_IG1
4
je SHORT G_M000_IG1
5
mov rdi, rax
mov rdi, rax
mov rsi, rbx
mov rsi, rbx
mov rax, qword ptr [rax]
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x40]
mov rax, qword ptr [rax+0x40]
복사
복사됨
복사
복사됨
G_M000_IG1
3
: ;; offset=0x01
3E
G_M000_IG1
4
: ;; offset=0x01
62
add rsp, 8
pop rbx
pop rbx
복사
복사됨
복사
복사됨
pop r14
pop r15
pop r15
pop rbp
pop rbp
tail.jmp [rax+0x10]System.Object:Equals(System.Object):bool:this
tail.jmp [rax+0x10]System.Object:Equals(System.Object):bool:this
복사
복사됨
복사
복사됨
G_M000_IG1
4
: ;; offset=0x01
46
G_M000_IG1
5
: ;; offset=0x01
70
mov rdi, r15
mov rdi, r15
mov rsi, rbx
mov rsi, rbx
복사
복사됨
복사
복사됨
mov rax,
0x754042805890
mov rax,
0x74F733A15890
G_M000_IG1
5
: ;; offset=0x01
56
G_M000_IG1
6
: ;; offset=0x01
80
add rsp, 8
pop rbx
pop rbx
복사
복사됨
복사
복사됨
pop r14
pop r15
pop r15
pop rbp
pop rbp
tail.jmp [rax]System.MulticastDelegate:InvocationListEquals(System.MulticastDelegate):bool:this
tail.jmp [rax]System.MulticastDelegate:InvocationListEquals(System.MulticastDelegate):bool:this
복사
복사됨
복사
복사됨
G_M000_IG1
6
: ;; offset=0x01
5
D
G_M000_IG1
7
: ;; offset=0x01
8
D
mov rsi,
gword ptr [r15+0x28]
mov rsi,
r14
mov rdi,
0x7540427ED4F8
mov rdi,
0x74F7339FD4F8
mov rax,
0x754042346880
mov rax,
0x74F733556880
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
test rax, rax
jne G_M000_IG03
jne G_M000_IG03
복사
복사됨
복사
복사됨
mov rsi,
gword ptr [r15+0x28]
mov rsi,
r14
mov rdi,
0x7540427A8BC0
mov rdi,
0x74F7339B8BC0
mov rax,
0x754042346880
mov rax,
0x74F733556880
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
jne G_M000_IG03
mov rsi, r14
mov rdi, 0x74F73399DB58
mov rax, 0x74F733556880
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
test rax, rax
jne G_M000_IG03
jne G_M000_IG03
mov rdi, gword ptr [r15+0x28]
mov rdi, gword ptr [r15+0x28]
mov rsi, gword ptr [rbx+0x28]
mov rsi, gword ptr [rbx+0x28]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
mov rax, qword ptr [rax+0x40]
call [rax+0x10]System.Object:Equals(System.Object):bool:this
call [rax+0x10]System.Object:Equals(System.Object):bool:this
test eax, eax
test eax, eax
복사
복사됨
복사
복사됨
je G_M000_IG0
7
je G_M000_IG0
8
G_M000_IG1
7
: ;; offset=0x0
1B
D
G_M000_IG1
8
: ;; offset=0x0
20
D
mov rdi, r15
mov rdi, r15
mov rsi, rbx
mov rsi, rbx
복사
복사됨
복사
복사됨
mov rax,
0x75404237AF80
mov rax,
0x74F73358AFC0
G_M000_IG1
8
: ;; offset=0x0
1CD
G_M000_IG1
9
: ;; offset=0x0
21D
add rsp, 8
pop rbx
pop rbx
복사
복사됨
복사
복사됨
pop r14
pop r15
pop r15
pop rbp
pop rbp
tail.jmp [rax]System.Delegate:Equals(System.Object):bool:this
tail.jmp [rax]System.Delegate:Equals(System.Object):bool:this
복사
복사됨
복사
복사됨
G_M000_
IG19
: ;; offset=
0x01D4
G_M000_
IG20
: ;; offset=
0x022A
xor
eax, eax
xor
r14d, r14d
jmp G_M000_IG05
jmp G_M000_IG05
복사
복사됨
복사
복사됨
G_M000_IG2
0
: ;; offset=
0x01DB
G_M000_IG2
1
: ;; offset=
0x0232
cmp qword ptr [r15+0x20], 0
cmp qword ptr [r15+0x20], 0
복사
복사됨
복사
복사됨
jne SHORT G_M000_IG2
1
jne SHORT G_M000_IG2
2
cmp qword ptr [rbx+0x20], 0
cmp qword ptr [rbx+0x20], 0
복사
복사됨
복사
복사됨
jne SHORT G_M000_
IG19
jne SHORT G_M000_
IG20
mov r
s
i, gword ptr [r15+0x08]
mov r
d
i, gword ptr [r15+0x08]
cmp r
s
i, gword ptr [rbx+0x08]
cmp r
d
i, gword ptr [rbx+0x08]
je SHORT G_M000_IG2
2
je SHORT G_M000_IG2
3
jmp SHORT G_M000_
IG19
jmp SHORT G_M000_
IG20
G_M000_IG2
1
: ;; offset=
0x01F5
G_M000_IG2
2
: ;; offset=
0x024C
cmp qword ptr [rbx+0x20], 0
cmp qword ptr [rbx+0x20], 0
복사
복사됨
복사
복사됨
je SHORT G_M000_
IG19
je SHORT G_M000_
IG20
mov r
s
i, qword ptr [r15+0x20]
mov r
d
i, qword ptr [r15+0x20]
cmp r
s
i, qword ptr [rbx+0x20]
cmp r
d
i, qword ptr [rbx+0x20]
je G_M000_IG04
je G_M000_IG04
복사
복사됨
복사
복사됨
G_M000_IG22: ;; offset=0x020A
G_M000_IG23: ;; offset=0x02
61
mov rsi, gword ptr [r15+0x10]
cmp
qword ptr [
r15
+0x10], 0
mov rdi, 0x7540424E23A0
jne
SHORT
G_M000_IG24
mov rax, 0x754042346880
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
je SHORT G_M000_IG24
mov rsi, gword ptr [rbx+0x10]
mov rdi, 0x7540424E23A0
mov rax, 0x754042346880
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
je SHORT G_M000_IG24
mov rdi, gword ptr [r15+0x10]
mov rsi, gword ptr [rbx+0x10]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
G_M000_IG23: ;; offset=0x02
57
pop
rbx
pop
r15
pop rbp
tail.jmp [rax+0x10]System.Object:Equals(System.Object):bool:this
G_M000_IG24
: ;; offset=0x025F
mov rdi, r15
mov rdi, r15
복사
복사됨
복사
복사됨
mov
rsi, rbx
mov
rax, 0x74F733A158A8
mov
rax, 0x7540428058D8
call [rax]System.Delegate:GetMethodDesc():nint:this
G_M000_IG25: ;; offset=0x02
6F
mov
r14, rax
pop
rbx
jmp SHORT G_M000_IG25
pop
r15
G_M000_IG24: ;; offset=0x027C
pop
rbp
mov r14, qword ptr [r15+0x10]
tail.jmp
[rax]System.Delegate:
InternalEqualMethodHandles(System.Delegate,System.Delegate):bool
G_M000_IG25: ;; offset=0x02
80
G_M000_IG26: ;; offset=0x02
76
cmp
qword ptr [
rbx
+0x10], 0
mov eax, 1
jne SHORT G_M000_IG26
mov
rdi, rbx
mov
rax, 0x74F733A158A8
call
[rax]System.Delegate:
GetMethodDesc():nint:this
mov r15, rax
jmp SHORT G_M000_IG27
G_M000_IG26: ;; offset=0x02
9B
mov r15, qword ptr [rbx+0x10]
G_M000_IG27: ;; offset=0x029F
cmp r14, r15
sete r14b
movzx r14, r14b
jmp G_M000_IG05
jmp G_M000_IG05
복사
복사됨
복사
복사됨
; Total bytes of code
640
G_M000_IG28: ;; offset=0x02AF
mov eax, 1
jmp G_M000_IG06
; Total bytes of code
697
저장된 비교 결과
원본
파일 열기
; Assembly listing for method MyBenchmarks:EqualsTrue():bool:this (Tier1) ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix ; Tier1 code ; optimized code ; optimized using Synthesized PGO ; rbp based frame ; fully interruptible ; with Synthesized PGO: fgCalledCount is 100 ; No PGO data ; 6 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data G_M000_IG01: ;; offset=0x0000 push rbp push r15 push rbx lea rbp, [rsp+0x10] G_M000_IG02: ;; offset=0x0009 mov rbx, gword ptr [rdi+0x10] mov r15, gword ptr [rdi+0x18] test r15, r15 je SHORT G_M000_IG06 cmp r15, rbx je G_M000_IG26 test rbx, rbx je SHORT G_M000_IG07 cmp qword ptr [r15+0x30], 0 jne SHORT G_M000_IG08 cmp gword ptr [r15+0x28], 0 jne G_M000_IG16 G_M000_IG03: ;; offset=0x0036 mov rsi, gword ptr [rbx+0x28] mov rdi, 0x75404237AF08 mov rax, 0x754042346880 call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax jne G_M000_IG10 mov rsi, gword ptr [r15+0x08] cmp rsi, gword ptr [rbx+0x08] jne G_M000_IG20 mov rsi, qword ptr [r15+0x18] cmp rsi, qword ptr [rbx+0x18] jne G_M000_IG20 mov rsi, qword ptr [r15+0x20] cmp rsi, qword ptr [rbx+0x20] jne G_M000_IG20 G_M000_IG04: ;; offset=0x0083 mov eax, 1 G_M000_IG05: ;; offset=0x0088 pop rbx pop r15 pop rbp ret G_M000_IG06: ;; offset=0x008D test rbx, rbx sete al movzx rax, al jmp SHORT G_M000_IG05 G_M000_IG07: ;; offset=0x0098 xor eax, eax jmp SHORT G_M000_IG05 G_M000_IG08: ;; offset=0x009C mov rdi, r15 mov rax, 0x75404277F420 call [rax]System.MulticastDelegate:InvocationListLogicallyNull():bool:this test eax, eax je SHORT G_M000_IG12 cmp qword ptr [r15+0x30], -1 jne SHORT G_M000_IG09 cmp qword ptr [rbx+0x30], -1 jne SHORT G_M000_IG07 mov rsi, qword ptr [r15+0x18] cmp rsi, qword ptr [rbx+0x18] jne SHORT G_M000_IG07 mov rsi, qword ptr [r15+0x20] cmp rsi, qword ptr [rbx+0x20] sete al movzx rax, al jmp SHORT G_M000_IG05 G_M000_IG09: ;; offset=0x00D7 mov rsi, gword ptr [rbx+0x28] mov rdi, 0x75404237AF08 mov rax, 0x754042346880 call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax je G_M000_IG17 G_M000_IG10: ;; offset=0x00FA mov rsi, gword ptr [rbx+0x28] mov rdi, r15 mov rax, 0x75404237B4C0 G_M000_IG11: ;; offset=0x010B pop rbx pop r15 pop rbp tail.jmp [rax]System.MulticastDelegate:Equals(System.Object):bool:this G_M000_IG12: ;; offset=0x0112 mov rsi, gword ptr [r15+0x28] mov rdi, 0x75404237AF08 mov rax, 0x754042346880 call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax je SHORT G_M000_IG14 mov rdi, rax mov rsi, rbx mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x40] G_M000_IG13: ;; offset=0x013E pop rbx pop r15 pop rbp tail.jmp [rax+0x10]System.Object:Equals(System.Object):bool:this G_M000_IG14: ;; offset=0x0146 mov rdi, r15 mov rsi, rbx mov rax, 0x754042805890 G_M000_IG15: ;; offset=0x0156 pop rbx pop r15 pop rbp tail.jmp [rax]System.MulticastDelegate:InvocationListEquals(System.MulticastDelegate):bool:this G_M000_IG16: ;; offset=0x015D mov rsi, gword ptr [r15+0x28] mov rdi, 0x7540427ED4F8 mov rax, 0x754042346880 call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax jne G_M000_IG03 mov rsi, gword ptr [r15+0x28] mov rdi, 0x7540427A8BC0 mov rax, 0x754042346880 call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax jne G_M000_IG03 mov rdi, gword ptr [r15+0x28] mov rsi, gword ptr [rbx+0x28] mov rax, qword ptr [rdi] mov rax, qword ptr [rax+0x40] call [rax+0x10]System.Object:Equals(System.Object):bool:this test eax, eax je G_M000_IG07 G_M000_IG17: ;; offset=0x01BD mov rdi, r15 mov rsi, rbx mov rax, 0x75404237AF80 G_M000_IG18: ;; offset=0x01CD pop rbx pop r15 pop rbp tail.jmp [rax]System.Delegate:Equals(System.Object):bool:this G_M000_IG19: ;; offset=0x01D4 xor eax, eax jmp G_M000_IG05 G_M000_IG20: ;; offset=0x01DB cmp qword ptr [r15+0x20], 0 jne SHORT G_M000_IG21 cmp qword ptr [rbx+0x20], 0 jne SHORT G_M000_IG19 mov rsi, gword ptr [r15+0x08] cmp rsi, gword ptr [rbx+0x08] je SHORT G_M000_IG22 jmp SHORT G_M000_IG19 G_M000_IG21: ;; offset=0x01F5 cmp qword ptr [rbx+0x20], 0 je SHORT G_M000_IG19 mov rsi, qword ptr [r15+0x20] cmp rsi, qword ptr [rbx+0x20] je G_M000_IG04 G_M000_IG22: ;; offset=0x020A mov rsi, gword ptr [r15+0x10] mov rdi, 0x7540424E23A0 mov rax, 0x754042346880 call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax je SHORT G_M000_IG24 mov rsi, gword ptr [rbx+0x10] mov rdi, 0x7540424E23A0 mov rax, 0x754042346880 call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax je SHORT G_M000_IG24 mov rdi, gword ptr [r15+0x10] mov rsi, gword ptr [rbx+0x10] mov rax, qword ptr [rdi] mov rax, qword ptr [rax+0x40] G_M000_IG23: ;; offset=0x0257 pop rbx pop r15 pop rbp tail.jmp [rax+0x10]System.Object:Equals(System.Object):bool:this G_M000_IG24: ;; offset=0x025F mov rdi, r15 mov rsi, rbx mov rax, 0x7540428058D8 G_M000_IG25: ;; offset=0x026F pop rbx pop r15 pop rbp tail.jmp [rax]System.Delegate:InternalEqualMethodHandles(System.Delegate,System.Delegate):bool G_M000_IG26: ;; offset=0x0276 mov eax, 1 jmp G_M000_IG05 ; Total bytes of code 640
수정본
파일 열기
; Assembly listing for method MyBenchmarks:EqualsTrue():bool:this (Tier1) ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix ; Tier1 code ; optimized code ; optimized using Synthesized PGO ; rbp based frame ; fully interruptible ; with Synthesized PGO: fgCalledCount is 100 ; No PGO data ; 8 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data G_M000_IG01: ;; offset=0x0000 push rbp push r15 push r14 push rbx push rax lea rbp, [rsp+0x20] G_M000_IG02: ;; offset=0x000C mov rbx, gword ptr [rdi+0x10] mov r15, gword ptr [rdi+0x18] test r15, r15 je G_M000_IG07 cmp r15, rbx je G_M000_IG28 test rbx, rbx je G_M000_IG08 cmp qword ptr [r15+0x30], 0 jne G_M000_IG09 mov r14, gword ptr [r15+0x28] test r14, r14 jne G_M000_IG17 G_M000_IG03: ;; offset=0x0047 mov rsi, gword ptr [rbx+0x28] mov rdi, 0x74F73358AF48 mov rax, 0x74F733556880 call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax jne G_M000_IG11 mov rdi, gword ptr [r15+0x08] cmp rdi, gword ptr [rbx+0x08] jne G_M000_IG21 mov rdi, qword ptr [r15+0x18] cmp rdi, qword ptr [rbx+0x18] jne G_M000_IG21 mov rdi, qword ptr [r15+0x20] cmp rdi, qword ptr [rbx+0x20] jne G_M000_IG21 G_M000_IG04: ;; offset=0x0094 mov r14d, 1 G_M000_IG05: ;; offset=0x009A mov eax, r14d G_M000_IG06: ;; offset=0x009D add rsp, 8 pop rbx pop r14 pop r15 pop rbp ret G_M000_IG07: ;; offset=0x00A8 test rbx, rbx sete al movzx rax, al jmp SHORT G_M000_IG06 G_M000_IG08: ;; offset=0x00B3 xor r14d, r14d jmp SHORT G_M000_IG05 G_M000_IG09: ;; offset=0x00B8 mov rdi, r15 mov rax, 0x74F73398F420 call [rax]System.MulticastDelegate:InvocationListLogicallyNull():bool:this test eax, eax je SHORT G_M000_IG13 cmp qword ptr [r15+0x30], -1 jne SHORT G_M000_IG10 cmp qword ptr [rbx+0x30], -1 jne SHORT G_M000_IG08 mov rsi, qword ptr [r15+0x18] cmp rsi, qword ptr [rbx+0x18] jne SHORT G_M000_IG08 mov rsi, qword ptr [r15+0x20] cmp rsi, qword ptr [rbx+0x20] sete r14b movzx r14, r14b jmp SHORT G_M000_IG05 G_M000_IG10: ;; offset=0x00F5 mov rsi, gword ptr [rbx+0x28] mov rdi, 0x74F73358AF48 mov rax, 0x74F733556880 call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax je G_M000_IG18 G_M000_IG11: ;; offset=0x0118 mov rsi, gword ptr [rbx+0x28] mov rdi, r15 mov rax, 0x74F73358B508 G_M000_IG12: ;; offset=0x0129 add rsp, 8 pop rbx pop r14 pop r15 pop rbp tail.jmp [rax]System.MulticastDelegate:Equals(System.Object):bool:this G_M000_IG13: ;; offset=0x0136 mov rsi, gword ptr [r15+0x28] mov rdi, 0x74F73358AF48 mov rax, 0x74F733556880 call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax je SHORT G_M000_IG15 mov rdi, rax mov rsi, rbx mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x40] G_M000_IG14: ;; offset=0x0162 add rsp, 8 pop rbx pop r14 pop r15 pop rbp tail.jmp [rax+0x10]System.Object:Equals(System.Object):bool:this G_M000_IG15: ;; offset=0x0170 mov rdi, r15 mov rsi, rbx mov rax, 0x74F733A15890 G_M000_IG16: ;; offset=0x0180 add rsp, 8 pop rbx pop r14 pop r15 pop rbp tail.jmp [rax]System.MulticastDelegate:InvocationListEquals(System.MulticastDelegate):bool:this G_M000_IG17: ;; offset=0x018D mov rsi, r14 mov rdi, 0x74F7339FD4F8 mov rax, 0x74F733556880 call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax jne G_M000_IG03 mov rsi, r14 mov rdi, 0x74F7339B8BC0 mov rax, 0x74F733556880 call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax jne G_M000_IG03 mov rsi, r14 mov rdi, 0x74F73399DB58 mov rax, 0x74F733556880 call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax jne G_M000_IG03 mov rdi, gword ptr [r15+0x28] mov rsi, gword ptr [rbx+0x28] mov rax, qword ptr [rdi] mov rax, qword ptr [rax+0x40] call [rax+0x10]System.Object:Equals(System.Object):bool:this test eax, eax je G_M000_IG08 G_M000_IG18: ;; offset=0x020D mov rdi, r15 mov rsi, rbx mov rax, 0x74F73358AFC0 G_M000_IG19: ;; offset=0x021D add rsp, 8 pop rbx pop r14 pop r15 pop rbp tail.jmp [rax]System.Delegate:Equals(System.Object):bool:this G_M000_IG20: ;; offset=0x022A xor r14d, r14d jmp G_M000_IG05 G_M000_IG21: ;; offset=0x0232 cmp qword ptr [r15+0x20], 0 jne SHORT G_M000_IG22 cmp qword ptr [rbx+0x20], 0 jne SHORT G_M000_IG20 mov rdi, gword ptr [r15+0x08] cmp rdi, gword ptr [rbx+0x08] je SHORT G_M000_IG23 jmp SHORT G_M000_IG20 G_M000_IG22: ;; offset=0x024C cmp qword ptr [rbx+0x20], 0 je SHORT G_M000_IG20 mov rdi, qword ptr [r15+0x20] cmp rdi, qword ptr [rbx+0x20] je G_M000_IG04 G_M000_IG23: ;; offset=0x0261 cmp qword ptr [r15+0x10], 0 jne SHORT G_M000_IG24 mov rdi, r15 mov rax, 0x74F733A158A8 call [rax]System.Delegate:GetMethodDesc():nint:this mov r14, rax jmp SHORT G_M000_IG25 G_M000_IG24: ;; offset=0x027C mov r14, qword ptr [r15+0x10] G_M000_IG25: ;; offset=0x0280 cmp qword ptr [rbx+0x10], 0 jne SHORT G_M000_IG26 mov rdi, rbx mov rax, 0x74F733A158A8 call [rax]System.Delegate:GetMethodDesc():nint:this mov r15, rax jmp SHORT G_M000_IG27 G_M000_IG26: ;; offset=0x029B mov r15, qword ptr [rbx+0x10] G_M000_IG27: ;; offset=0x029F cmp r14, r15 sete r14b movzx r14, r14b jmp G_M000_IG05 G_M000_IG28: ;; offset=0x02AF mov eax, 1 jmp G_M000_IG06 ; Total bytes of code 697
비교하기