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