Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
표시
레이아웃
나란히 보기
합쳐 보기
실시간 편집
공백 변경 숨기기
변경 없는 행 숨기기
줄바꿈 비활성화
비교 단위
스마트
구문
없음
모양 변경
처리
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
Untitled Diff
생성일
4년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
89 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
79 행
복사
78 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
60 행
복사
; Assembly listing for method C:M2():System.String:this
; Assembly listing for method C:M2():System.String: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
; partially interruptible
; partially interruptible
; No PGO data
; No PGO data
; 1 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; 1 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def
복사
복사됨
복사
복사됨
; V01 loc0 [V01 ] ( 3, 3 ) struct (48) [rsp+5
0
H] do-not-enreg[XS] must-init addr-exposed ld-addr-op
; V01 loc0 [V01 ] ( 3, 3 ) struct (48) [rsp+5
8
H] do-not-enreg[XS] must-init addr-exposed ld-addr-op
; V02 OutArgs [V02 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
; V02 OutArgs [V02 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
복사
복사됨
복사
복사됨
; V03 tmp1 [V03
] (
4
,
8
) struct (48) [rsp+2
0
H] do-not-enreg[
X
SF] must-init
addr-
exposed
"NewObj constructor temp"
; V03 tmp1 [V03
,T00
] (
3
,
6
) struct (48) [rsp+2
8
H] do-not-enreg[
SF] must-init
ld-
addr-
op
"NewObj constructor temp"
;* V04 tmp2 [V04
] ( 0, 0 ) ref -> zero-ref class-hnd
"Inlining Arg"
;* V04 tmp2 [V04
,T04
] ( 0, 0 ) ref -> zero-ref class-hnd
single-def
"Inlining Arg"
;* V05 tmp3 [V05 ] ( 0, 0 ) struct (16) zero-ref
"NewObj constructor temp"
;* V05 tmp3 [V05 ] ( 0, 0 ) struct (16) zero-ref
ld-addr-op
"NewObj constructor temp"
; V06 tmp4 [V06,T0
0] ( 4, 6 ) ref -> rcx class-hnd single-def "Inlining Arg"
; V06 tmp4 [V06,T0
1
] ( 2, 4 ) ref -> rax class-hnd single-def "
impAppendStmt
"
;* V07 tmp5 [V07 ] ( 0, 0 ) struct ( 8) zero-ref "NewObj constructor temp"
; V0
7
tmp
5
[V0
7
,T0
2
] (
2
,
2
) byref -> r
c
x V05._
reference
(offs=0x00) P-INDEP "field V05._
reference
(fldOffset=0x0)"
; V08 tmp6 [V08,T02
] ( 2, 4 ) ref -> rax class-hnd single-def "
impSpillLclRefs
"
; V
08
tmp
6
[V
08
,T0
3
] (
2
,
2
) int ->
rax
V05._length(offs=0x08) P-INDEP "field V05._length (fldOffset=0x8)"
; V0
9
tmp
7
[V0
9
,T0
3
] (
3
,
1.50
) byref -> r
a
x V05._
pointer
(offs=0x00) P-INDEP "field V05._
pointer
(fldOffset=0x0)"
; V
10
tmp
8
[V
10
,T0
4
] (
3
,
1.50
) int ->
rsi
V05._length(offs=0x08) P-INDEP "field V05._length (fldOffset=0x8)"
; V11 tmp9 [V11,T05] ( 2, 1 ) byref -> rax single-def V07._value(offs=0x00) P-INDEP "field V07._value (fldOffset=0x0)"
; V12 tmp10 [V12,T01] ( 3, 6 ) byref -> rcx stack-byref single-def "BlockOp address local"
;
;
복사
복사됨
복사
복사됨
; Lcl frame size =
128
; Lcl frame size =
136
G_M38085_IG01:
G_M38085_IG01:
복사
복사됨
복사
복사됨
push rsi
sub rsp,
136
sub rsp,
128
vzeroupper
vzeroupper
복사
복사됨
복사
복사됨
xor eax, eax
mov qword ptr [rsp+28H], rax
vxorps xmm4, xmm4
vxorps xmm4, xmm4
복사
복사됨
복사
복사됨
mov rax, -96
vmovdqa xmmword ptr [rsp+30H], xmm4
vmovdqa xmmword ptr [rsp+
rax+8
0H], xmm4
vmovdqa xmmword ptr [rsp+
4
0H], xmm4
vmovdqa xmmword ptr [rsp+
rax+9
0H], xmm4
vmovdqa xmmword ptr [rsp+
5
0H], xmm4
vmovdqa xmmword ptr [rsp+
rax+A
0H], xmm4
vmovdqa xmmword ptr [rsp+
6
0H], xmm4
add rax, 48
vmovdqa xmmword ptr [rsp+70H], xmm4
jne
SHORT -5 instr
mov
qword ptr [rsp+80H], rax
;;
bbWeight=
0
PerfScore
0.00
;;
size=59
bbWeight=
1
PerfScore
13.83
G_M38085_IG02:
G_M38085_IG02:
복사
복사됨
복사
복사됨
mov
rcx, g
word ptr [rsp+
30H]
xor rcx, rcx
test rcx
, rcx
xor eax, eax
je
SHORT G_M38085_IG08
mov
b
word ptr [rsp+
48H]
, rcx
;;
bbWeight=1 PerfScore 2.
25
mov
dword ptr [rsp+50H], eax
;;
size=13
bbWeight=1 PerfScore 2.
50
G_M38085_IG03:
G_M38085_IG03:
복사
복사됨
복사
복사됨
lea
rax, b
word ptr [
rcx+16
]
vmovdqu ymm0, ymmword ptr[rsp+28H]
mov esi, d
word ptr [
rcx+8]
vmovdqu ymmword ptr[rsp+58H], ymm0
;;
bbWeight=
0.50
PerfScore
1.25
vmovdqu xmm0, xmm
word ptr [
rsp+48H
]
vmovdqu xmm
word ptr [
rsp+78H], xmm0
;;
size=24
bbWeight=
1
PerfScore
9.00
G_M38085_IG04:
G_M38085_IG04:
복사
복사됨
복사
복사됨
lea rcx,
bword ptr [rsp+40H]
lea rcx,
[rsp+78H]
mov bword ptr [rcx], rax
call
[
System.Span`1[
ushort
]:ToString():System.String:this
]
mov dword ptr [rcx+8], esi
xor ecx, ecx
mov dword ptr [rsp+38H], ecx
;; bbWeight=1 PerfScore 3.75
G_M38085_IG05:
vmovdqu ymm0, ymmword ptr[rsp+20H]
vmovdqu ymmword ptr[rsp+50H], ymm0
vmovdqu xmm0, xmmword ptr [rsp+40H]
vmovdqu xmmword ptr [rsp+70H], xmm0
;; bbWeight=1 PerfScore 9.00
G_M38085_IG06:
lea rcx, bword ptr [rsp+70H]
call
System.Span`1[
Char][System.Char
]:ToString():System.String:this
vxorps ymm0, ymm0
vxorps ymm0, ymm0
복사
복사됨
복사
복사됨
vmovdqu ymmword ptr[rsp+5
0
H], ymm0
vmovdqu ymmword ptr[rsp+5
8
H], ymm0
vmovdqu xmmword ptr [rsp+7
0
H], xmm0
vmovdqu xmmword ptr [rsp+7
8
H], xmm0
;;
bbWeight=1 PerfScore
3
.83
;;
size=27
bbWeight=1 PerfScore
5
.83
G_M38085_IG0
7
:
G_M38085_IG0
5
:
add rsp,
128
add rsp,
136
pop rsi
ret
ret
복사
복사됨
복사
복사됨
;;
bbWeight=1 PerfScore 1.
75
;;
size=8
bbWeight=1 PerfScore 1.
25
G_M38085_IG08:
xor rax, rax
xor esi, esi
jmp SHORT G_M38085_IG04
;; bbWeight=0 PerfScore 0.00
복사
복사됨
복사
복사됨
; Total bytes of code
157
, prolog size
58
, PerfScore
38.63
, instruction count
35
, allocated bytes for code
168
(MethodHash=fe286b3a) for method C:M2():System.String:this
; Total bytes of code
131
, prolog size
59
, PerfScore
46.82
, instruction count
26
, allocated bytes for code
144
(MethodHash=fe286b3a) for method C:M2():System.String:this
; ============================================================
; ============================================================
저장된 비교 결과
원본
파일 열기
; Assembly listing for method C:M2():System.String:this ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; partially interruptible ; No PGO data ; 1 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def ; V01 loc0 [V01 ] ( 3, 3 ) struct (48) [rsp+50H] do-not-enreg[XS] must-init addr-exposed ld-addr-op ; V02 OutArgs [V02 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace" ; V03 tmp1 [V03 ] ( 4, 8 ) struct (48) [rsp+20H] do-not-enreg[XSF] must-init addr-exposed "NewObj constructor temp" ;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V05 tmp3 [V05 ] ( 0, 0 ) struct (16) zero-ref "NewObj constructor temp" ; V06 tmp4 [V06,T00] ( 4, 6 ) ref -> rcx class-hnd single-def "Inlining Arg" ;* V07 tmp5 [V07 ] ( 0, 0 ) struct ( 8) zero-ref "NewObj constructor temp" ; V08 tmp6 [V08,T02] ( 2, 4 ) ref -> rax class-hnd single-def "impSpillLclRefs" ; V09 tmp7 [V09,T03] ( 3, 1.50) byref -> rax V05._pointer(offs=0x00) P-INDEP "field V05._pointer (fldOffset=0x0)" ; V10 tmp8 [V10,T04] ( 3, 1.50) int -> rsi V05._length(offs=0x08) P-INDEP "field V05._length (fldOffset=0x8)" ; V11 tmp9 [V11,T05] ( 2, 1 ) byref -> rax single-def V07._value(offs=0x00) P-INDEP "field V07._value (fldOffset=0x0)" ; V12 tmp10 [V12,T01] ( 3, 6 ) byref -> rcx stack-byref single-def "BlockOp address local" ; ; Lcl frame size = 128 G_M38085_IG01: push rsi sub rsp, 128 vzeroupper vxorps xmm4, xmm4 mov rax, -96 vmovdqa xmmword ptr [rsp+rax+80H], xmm4 vmovdqa xmmword ptr [rsp+rax+90H], xmm4 vmovdqa xmmword ptr [rsp+rax+A0H], xmm4 add rax, 48 jne SHORT -5 instr ;; bbWeight=0 PerfScore 0.00 G_M38085_IG02: mov rcx, gword ptr [rsp+30H] test rcx, rcx je SHORT G_M38085_IG08 ;; bbWeight=1 PerfScore 2.25 G_M38085_IG03: lea rax, bword ptr [rcx+16] mov esi, dword ptr [rcx+8] ;; bbWeight=0.50 PerfScore 1.25 G_M38085_IG04: lea rcx, bword ptr [rsp+40H] mov bword ptr [rcx], rax mov dword ptr [rcx+8], esi xor ecx, ecx mov dword ptr [rsp+38H], ecx ;; bbWeight=1 PerfScore 3.75 G_M38085_IG05: vmovdqu ymm0, ymmword ptr[rsp+20H] vmovdqu ymmword ptr[rsp+50H], ymm0 vmovdqu xmm0, xmmword ptr [rsp+40H] vmovdqu xmmword ptr [rsp+70H], xmm0 ;; bbWeight=1 PerfScore 9.00 G_M38085_IG06: lea rcx, bword ptr [rsp+70H] call System.Span`1[Char][System.Char]:ToString():System.String:this vxorps ymm0, ymm0 vmovdqu ymmword ptr[rsp+50H], ymm0 vmovdqu xmmword ptr [rsp+70H], xmm0 ;; bbWeight=1 PerfScore 3.83 G_M38085_IG07: add rsp, 128 pop rsi ret ;; bbWeight=1 PerfScore 1.75 G_M38085_IG08: xor rax, rax xor esi, esi jmp SHORT G_M38085_IG04 ;; bbWeight=0 PerfScore 0.00 ; Total bytes of code 157, prolog size 58, PerfScore 38.63, instruction count 35, allocated bytes for code 168 (MethodHash=fe286b3a) for method C:M2():System.String:this ; ============================================================
수정본
파일 열기
; Assembly listing for method C:M2():System.String:this ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; partially interruptible ; No PGO data ; 1 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def ; V01 loc0 [V01 ] ( 3, 3 ) struct (48) [rsp+58H] do-not-enreg[XS] must-init addr-exposed ld-addr-op ; V02 OutArgs [V02 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace" ; V03 tmp1 [V03,T00] ( 3, 6 ) struct (48) [rsp+28H] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" ;* V04 tmp2 [V04,T04] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" ;* V05 tmp3 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V06 tmp4 [V06,T01] ( 2, 4 ) ref -> rax class-hnd single-def "impAppendStmt" ; V07 tmp5 [V07,T02] ( 2, 2 ) byref -> rcx V05._reference(offs=0x00) P-INDEP "field V05._reference (fldOffset=0x0)" ; V08 tmp6 [V08,T03] ( 2, 2 ) int -> rax V05._length(offs=0x08) P-INDEP "field V05._length (fldOffset=0x8)" ; ; Lcl frame size = 136 G_M38085_IG01: sub rsp, 136 vzeroupper xor eax, eax mov qword ptr [rsp+28H], rax vxorps xmm4, xmm4 vmovdqa xmmword ptr [rsp+30H], xmm4 vmovdqa xmmword ptr [rsp+40H], xmm4 vmovdqa xmmword ptr [rsp+50H], xmm4 vmovdqa xmmword ptr [rsp+60H], xmm4 vmovdqa xmmword ptr [rsp+70H], xmm4 mov qword ptr [rsp+80H], rax ;; size=59 bbWeight=1 PerfScore 13.83 G_M38085_IG02: xor rcx, rcx xor eax, eax mov bword ptr [rsp+48H], rcx mov dword ptr [rsp+50H], eax ;; size=13 bbWeight=1 PerfScore 2.50 G_M38085_IG03: vmovdqu ymm0, ymmword ptr[rsp+28H] vmovdqu ymmword ptr[rsp+58H], ymm0 vmovdqu xmm0, xmmword ptr [rsp+48H] vmovdqu xmmword ptr [rsp+78H], xmm0 ;; size=24 bbWeight=1 PerfScore 9.00 G_M38085_IG04: lea rcx, [rsp+78H] call [System.Span`1[ushort]:ToString():System.String:this] vxorps ymm0, ymm0 vmovdqu ymmword ptr[rsp+58H], ymm0 vmovdqu xmmword ptr [rsp+78H], xmm0 ;; size=27 bbWeight=1 PerfScore 5.83 G_M38085_IG05: add rsp, 136 ret ;; size=8 bbWeight=1 PerfScore 1.25 ; Total bytes of code 131, prolog size 59, PerfScore 46.82, instruction count 26, allocated bytes for code 144 (MethodHash=fe286b3a) for method C:M2():System.String:this ; ============================================================
비교하기