Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
Untitled diff
생성일
작년
비교 결과 만료 없음
초기화
내보내기
공유
설명
97 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
171 행
복사
147 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
221 행
복사
; Assembly listing for method System.Text.EncodingTable:GetEncodings():System.Text.EncodingInfo[] (FullOpts)
; Assembly listing for method System.Text.EncodingTable:GetEncodings():System.Text.EncodingInfo[] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; FullOpts code
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; fully interruptible
; fully interruptible
; No PGO data
; No PGO data
복사
복사됨
복사
복사됨
; 0 inlinees with PGO data;
6
single block inlinees;
2
inlinees without PGO data
; 0 inlinees with PGO data;
8
single block inlinees;
4
inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
;* V00 loc0 [V00 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ushort]>
;* V00 loc0 [V00 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ushort]>
복사
복사됨
복사
복사됨
; V01 loc1 [V01,
T09
] ( 4, 5.21) ref -> r14 class-hnd exact single-def <System.Text.EncodingInfo[]>
; V01 loc1 [V01,
T11
] ( 4, 5.21) ref -> r14 class-hnd exact single-def <System.Text.EncodingInfo[]>
;* V02 loc2 [V02,T2
1
] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.String>
;* V02 loc2 [V02,T2
4
] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.String>
;* V03 loc3 [V03 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[int]>
;* V03 loc3 [V03 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[int]>
복사
복사됨
복사
복사됨
; V04 loc4 [V04,T1
2
] ( 3, 4.21) int -> [rbp-0x2C]
; V04 loc4 [V04,T1
4
] ( 3, 4.21) int -> [rbp-0x2C]
;* V05 loc5 [V05,T2
2
] ( 0, 0 ) int -> zero-ref
;* V05 loc5 [V05,T2
5
] ( 0, 0 ) int -> zero-ref
; V06 loc6 [V06,T0
3
] ( 4, 11.88) int -> [rbp-0x30] spill-single-def
; V06 loc6 [V06,T0
6
] ( 4, 11.88) int -> [rbp-0x30] spill-single-def
; V07 loc7 [V07,T07] (
3
,
5.94
) int ->
rsi
; V07 loc7 [V07,T07] (
5
,
8.42
) int ->
[rbp-0x34] spill-single-def
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
복사
복사됨
복사
복사됨
; V09 tmp1 [V09,T1
6
] ( 3, 1.25) int -> rsi
; V09 tmp1 [V09,T1
9
] ( 3, 1.25) int -> rsi
;* V10 tmp2 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <System.Text.EncodingInfo[]>
;* V10 tmp2 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <System.Text.EncodingInfo[]>
복사
복사됨
복사
복사됨
; V11 tmp3 [V11,T0
2
] ( 4, 15.84) int -> r12 "impSpillLclRefs"
; V11 tmp3 [V11,T0
5
] ( 4, 15.84) int -> r12 "impSpillLclRefs"
; V12 tmp4 [V12,T0
4
] (
2, 7.92
) ref -> [rbp-0x
4
0] class-hnd exact
spill-single-def
"non-inline candidate call" <System.String>
; V12 tmp4 [V12,T0
3
] (
4, 15.84
) ref -> [rbp-0x
5
0] class-hnd exact
"non-inline candidate call" <System.String>
; V13 tmp5 [V13,T0
1
] ( 5, 19.80) ref -> [rbp-0x
4
8] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.EncodingInfo>
; V13 tmp5 [V13,T0
2
] ( 5, 19.80) ref -> [rbp-0x
5
8] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.EncodingInfo>
;* V14 tmp6 [V14 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ushort]>
;* V14 tmp6 [V14 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ushort]>
복사
복사됨
복사
복사됨
; V15 tmp7 [V15,
T17
] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
; V15 tmp7 [V15,
T20
] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V16 tmp8 [V16 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[int]>
;* V16 tmp8 [V16 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[int]>
복사
복사됨
복사
복사됨
; V17 tmp9 [V17,T1
3
] ( 2, 3.96) ubyte -> rax "Inline return value spill temp"
; V17 tmp9 [V17,T1
5
] ( 2, 3.96) ubyte -> rax "Inline return value spill temp"
; V18 tmp10 [V18,T0
5] ( 2, 7.92) ref -> [rbp-0x50
] class-hnd exact spill-single-def "Inlining Arg" <System.String>
; V18 tmp10 [V18,T0
0] ( 7, 24.76) int -> r8 "Inlining Arg"
;
V19
tmp1
1
[
V19
,T1
0
] ( 2, 4.96) byref -> rbx single-def "field V00._reference (fldOffset=0x0)" P-INDEP
;* V19 tmp11 [V19 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V2
0
tmp1
2
[V2
0,T18
] ( 0, 0 ) int -> zero-ref "field V00._length (fldOffset=0x8)" P-INDEP
; V20 tmp12 [V20,T16] ( 2, 3.96) long -> [rbp-0x40] spill-single-def "Inline stloc first use temp"
; V2
1
tmp1
3
[V2
1
,T1
1
] ( 3, 4.21) byref -> r13 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
; V21 tmp13 [V21,T04] ( 4, 15.84) ref -> [rbp-0x60] class-hnd exact spill-single-def "dup spill" <System.String>
;* V2
2 tmp14
[V2
2
,T2
3
] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x8)" P-INDEP
;* V22 tmp14 [V22 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V2
3
tmp
15
[V2
3
,T1
5
] ( 2, 2 ) byref -> rbx single-def "field V14._reference (fldOffset=0x0)" P-INDEP
;* V23 tmp15 [V23 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;*
V24 tmp16
[
V24,T19
] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
; V24 tmp16 [V24,T08] ( 2, 7.92) ref -> [rbp-0x68
] class-hnd exact spill-single-def "Inlining Arg" <System.String>
;
V25 tmp17
[
V25
,T2
0
] ( 2, 0.50) byref -> r13 single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;
V25
tmp1
7
[
V25
,T1
2
] ( 2, 4.96) byref -> rbx single-def "field V00._reference (fldOffset=0x0)" P-INDEP
;* V
26 tmp18
[V
26
,T2
4
] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
;* V2
6
tmp1
8
[V2
6,T21
] ( 0, 0 ) int -> zero-ref "field V00._length (fldOffset=0x8)" P-INDEP
;
V27
cse0 [
V27,T08
] ( 3, 5.94) int -> rdi "CSE #03: moderate"
; V2
7
tmp1
9
[V2
7
,T1
3
] ( 3, 4.21) byref -> r13 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
;
V28
cse1 [
V28
,T1
4
] ( 3, 2.50) int -> rdi "CSE #02: moderate"
;* V2
8 tmp20
[V2
8
,T2
6
] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x8)" P-INDEP
;
V29
cse2 [
V29
,T0
6
] ( 5, 6.46) byref -> r15 "CSE #01: moderate"
; V2
9
tmp
21
[V2
9
,T1
8
] ( 2, 2 ) byref -> rbx single-def "field V14._reference (fldOffset=0x0)" P-INDEP
; V3
0
rat0 [V3
0
,T0
0
] ( 7, 20.05) long -> [rbp-0x
3
8] "Widened IV V05"
;*
V30 tmp22
[
V30,T22
] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
;
V31 tmp23
[
V31
,T2
3
] ( 2, 0.50) byref -> r13 single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;* V
32 tmp24
[V
32
,T2
7
] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
;
V33
cse0 [
V33,T10
] ( 3, 5.94) int -> rdi "CSE #03: moderate"
;
V34
cse1 [
V34
,T1
7
] ( 3, 2.50) int -> rdi "CSE #02: moderate"
;
V35
cse2 [
V35
,T0
9
] ( 5, 6.46) byref -> r15 "CSE #01: moderate"
; V3
6
rat0 [V3
6
,T0
1
] ( 7, 20.05) long -> [rbp-0x
4
8] "Widened IV V05"
;
;
복사
복사됨
복사
복사됨
; Lcl frame size =
40
; Lcl frame size =
72
G_M46987_IG01:
G_M46987_IG01:
push rbp
push rbp
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rbx
push rbx
복사
복사됨
복사
복사됨
sub rsp,
40
sub rsp,
72
lea rbp, [rsp+0x
5
0]
lea rbp, [rsp+0x
7
0]
;; size=19 bbWeight=1 PerfScore 6.75
;; size=19 bbWeight=1 PerfScore 6.75
G_M46987_IG02:
G_M46987_IG02:
mov rbx, 0xD1FFAB1E ; static handle
mov rbx, 0xD1FFAB1E ; static handle
mov r15, 0xD1FFAB1E ; static handle
mov r15, 0xD1FFAB1E ; static handle
mov edi, dword ptr [r15]
mov edi, dword ptr [r15]
test edi, edi
test edi, edi
jl SHORT G_M46987_IG05
jl SHORT G_M46987_IG05
;; size=27 bbWeight=1 PerfScore 3.75
;; size=27 bbWeight=1 PerfScore 3.75
G_M46987_IG03:
G_M46987_IG03:
test edi, edi
test edi, edi
jg SHORT G_M46987_IG04
jg SHORT G_M46987_IG04
mov rdi, 0xD1FFAB1E ; 'System.Text.Encoding.EnableUnsafeUTF7Encoding'
mov rdi, 0xD1FFAB1E ; 'System.Text.Encoding.EnableUnsafeUTF7Encoding'
mov rsi, r15
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
mov rax, 0xD1FFAB1E ; code for System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
call [rax]System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
call [rax]System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
test eax, eax
test eax, eax
je SHORT G_M46987_IG05
je SHORT G_M46987_IG05
;; size=33 bbWeight=0.50 PerfScore 3.12
;; size=33 bbWeight=0.50 PerfScore 3.12
G_M46987_IG04:
G_M46987_IG04:
mov esi, 8
mov esi, 8
jmp SHORT G_M46987_IG06
jmp SHORT G_M46987_IG06
;; size=7 bbWeight=0.50 PerfScore 1.12
;; size=7 bbWeight=0.50 PerfScore 1.12
G_M46987_IG05:
G_M46987_IG05:
mov esi, 7
mov esi, 7
;; size=5 bbWeight=0.50 PerfScore 0.12
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M46987_IG06:
G_M46987_IG06:
movsxd rsi, esi
movsxd rsi, esi
mov rdi, 0xD1FFAB1E ; System.Text.EncodingInfo[]
mov rdi, 0xD1FFAB1E ; System.Text.EncodingInfo[]
call CORINFO_HELP_NEWARR_1_OBJ
call CORINFO_HELP_NEWARR_1_OBJ
mov r14, rax
mov r14, rax
mov r13, 0xD1FFAB1E ; static handle
mov r13, 0xD1FFAB1E ; static handle
xor r12d, r12d
xor r12d, r12d
xor eax, eax
xor eax, eax
;; size=36 bbWeight=0.25 PerfScore 0.62
;; size=36 bbWeight=0.25 PerfScore 0.62
G_M46987_IG07:
G_M46987_IG07:
복사
복사됨
복사
복사됨
mov qword ptr [rbp-0x
3
8], rax
mov qword ptr [rbp-0x
4
8], rax
movzx rcx, word ptr [rbx+2*rax]
movzx rcx, word ptr [rbx+2*rax]
mov dword ptr [rbp-0x30], ecx
mov dword ptr [rbp-0x30], ecx
cmp ecx, 0xFDE8
cmp ecx, 0xFDE8
jne SHORT G_M46987_IG09
jne SHORT G_M46987_IG09
;; size=19 bbWeight=3.96 PerfScore 20.79
;; size=19 bbWeight=3.96 PerfScore 20.79
G_M46987_IG08:
G_M46987_IG08:
mov edi, dword ptr [r15]
mov edi, dword ptr [r15]
test edi, edi
test edi, edi
복사
복사됨
복사
복사됨
jl G_M46987_IG1
0
jl G_M46987_IG1
3
test edi, edi
test edi, edi
jg SHORT G_M46987_IG09
jg SHORT G_M46987_IG09
mov rdi, 0xD1FFAB1E ; 'System.Text.Encoding.EnableUnsafeUTF7Encoding'
mov rdi, 0xD1FFAB1E ; 'System.Text.Encoding.EnableUnsafeUTF7Encoding'
mov rsi, r15
mov rsi, r15
mov rdx, 0xD1FFAB1E ; code for System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
mov rdx, 0xD1FFAB1E ; code for System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
call [rdx]System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
call [rdx]System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
test eax, eax
test eax, eax
복사
복사됨
복사
복사됨
je G_M46987_IG1
0
je G_M46987_IG1
3
;; size=48 bbWeight=1.98 PerfScore 18.81
;; size=48 bbWeight=1.98 PerfScore 18.81
G_M46987_IG09:
G_M46987_IG09:
복사
복사됨
복사
복사됨
lea ed
x
, [r12+0x01]
lea ed
i
, [r12+0x01]
mov dword ptr [rbp-0x2C], ed
x
mov dword ptr [rbp-0x2C], ed
i
mov rax, qword ptr [rbp-0x
3
8]
mov rax, qword ptr [rbp-0x
4
8]
mov esi, dword ptr [r13+4*rax]
mov esi, dword ptr [r13+4*rax]
복사
복사됨
복사
복사됨
mov qword ptr [rbp-0x
3
8], rax
mov dword ptr [rbp-0x34], esi
lea ed
x
, [rax+0x01]
mov qword ptr [rbp-0x
4
8], rax
mov ed
x
, dword ptr [r13+4*rd
x
]
lea ed
i
, [rax+0x01]
sub ed
x, esi
mov ed
i
, dword ptr [r13+4*rd
i
]
sub ed
i, esi
mov r8d, edi
mov edi, esi
mov r9d, r8d
add rdi, r9
cmp rdi, 56
ja G_M46987_IG16
test r8d, r8d
je SHORT G_M46987_IG11
cmp r8d, 56
je SHORT G_M46987_IG10
mov r9d, r8d
mov qword ptr [rbp-0x40], r9
mov edi, r8d
call System.String:FastAllocateString(int):System.String
mov gword ptr [rbp-0x60], rax
mov rsi, 0xD1FFAB1E
mov edi, dword ptr [rbp-0x34]
lea rsi, bword ptr [rsi+2*rdi]
cmp byte ptr [rax], al
lea rdi, bword ptr [rax+0x0C]
mov rdx, qword ptr [rbp-0x40]
add rdx, rdx
mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
mov rax, gword ptr [rbp-0x60]
mov gword ptr [rbp-0x50], rax
jmp SHORT G_M46987_IG12
;; size=137 bbWeight=1.98 PerfScore 61.87
G_M46987_IG10:
mov rdi, 0xD1FFAB1E ; 'utf-16utf-16BEutf-32utf-32BEus-asciiiso-8859-1utf-7utf-8'
mov rdi, 0xD1FFAB1E ; 'utf-16utf-16BEutf-32utf-32BEus-asciiiso-8859-1utf-7utf-8'
복사
복사됨
복사
복사됨
mov r9, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this
mov rsi, rdi
call [r9]System.String:Substring(int,int):System.String:this
mov gword ptr [rbp-0x50], rsi
mov gword ptr [rbp-0x
4
0],
rax
jmp SHORT G_M46987_IG12
;; size=19 bbWeight=1.98 PerfScore 6.93
G_M46987_IG11:
mov rsi, 0xD1FFAB1E ; ''
mov gword ptr [rbp-0x
5
0],
rsi
;; size=14 bbWeight=1.98 PerfScore 2.48
G_M46987_IG12:
mov rdi, 0xD1FFAB1E ; System.Text.EncodingInfo
mov rdi, 0xD1FFAB1E ; System.Text.EncodingInfo
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
복사
복사됨
복사
복사됨
mov gword ptr [rbp-0x
4
8], rax
mov gword ptr [rbp-0x
5
8], rax
mov edi, dword ptr [rbp-0x30]
mov edi, dword ptr [rbp-0x30]
mov rcx, 0xD1FFAB1E ; code for System.Text.EncodingTable:GetDisplayName(int):System.String
mov rcx, 0xD1FFAB1E ; code for System.Text.EncodingTable:GetDisplayName(int):System.String
call [rcx]System.Text.EncodingTable:GetDisplayName(int):System.String
call [rcx]System.Text.EncodingTable:GetDisplayName(int):System.String
복사
복사됨
복사
복사됨
mov gword ptr [rbp-
0x50
], rax
mov gword ptr [rbp-
0x68
], rax
mov rcx, gword ptr [rbp-0x
4
8]
mov rcx, gword ptr [rbp-0x
5
8]
mov edi, dword ptr [rbp-0x30]
mov edi, dword ptr [rbp-0x30]
mov dword ptr [rcx+0x20], edi
mov dword ptr [rcx+0x20], edi
lea rdi, bword ptr [rcx+0x08]
lea rdi, bword ptr [rcx+0x08]
복사
복사됨
복사
복사됨
mov rsi, gword ptr [rbp-0x
4
0]
mov rsi, gword ptr [rbp-0x
5
0]
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
복사
복사됨
복사
복사됨
mov rax, gword ptr [rbp-0x
4
8]
mov rax, gword ptr [rbp-0x
5
8]
lea rdi, bword ptr [rax+0x10]
lea rdi, bword ptr [rax+0x10]
복사
복사됨
복사
복사됨
mov rsi, gword ptr [rbp-
0x50
]
mov rsi, gword ptr [rbp-
0x68
]
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
cmp r12d, dword ptr [r14+0x08]
cmp r12d, dword ptr [r14+0x08]
복사
복사됨
복사
복사됨
jae SHORT G_M46987_IG1
3
jae SHORT G_M46987_IG1
7
mov edi, r12d
mov edi, r12d
lea rdi, bword ptr [r14+8*rdi+0x10]
lea rdi, bword ptr [r14+8*rdi+0x10]
복사
복사됨
복사
복사됨
mov rsi, gword ptr [rbp-0x
4
8]
mov rsi, gword ptr [rbp-0x
5
8]
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
mov r12d, dword ptr [rbp-0x2C]
mov r12d, dword ptr [rbp-0x2C]
복사
복사됨
복사
복사됨
;; size=
163
bbWeight=1.98 PerfScore
74.25
;; size=
105
bbWeight=1.98 PerfScore
49.00
G_M46987_IG1
0
:
G_M46987_IG1
3
:
mov rax, qword ptr [rbp-0x
3
8]
mov rax, qword ptr [rbp-0x
4
8]
inc eax
inc eax
cmp eax, 8
cmp eax, 8
jl G_M46987_IG07
jl G_M46987_IG07
;; size=15 bbWeight=3.96 PerfScore 9.90
;; size=15 bbWeight=3.96 PerfScore 9.90
복사
복사됨
복사
복사됨
G_M46987_IG1
1
:
G_M46987_IG1
4
:
mov rax, r14
mov rax, r14
;; size=3 bbWeight=1 PerfScore 0.25
;; size=3 bbWeight=1 PerfScore 0.25
복사
복사됨
복사
복사됨
G_M46987_IG1
2
:
G_M46987_IG1
5
:
add rsp,
40
add rsp,
72
pop rbx
pop rbx
pop r12
pop r12
pop r13
pop r13
pop r14
pop r14
pop r15
pop r15
pop rbp
pop rbp
ret
ret
;; size=15 bbWeight=1 PerfScore 4.25
;; size=15 bbWeight=1 PerfScore 4.25
복사
복사됨
복사
복사됨
G_M46987_
IG13:
G_M46987_
IG16:
mov rdi, 0xD1FFAB1E ; 'utf-16utf-16BEutf-32utf-32BEus-asciiiso-8859-1utf-7utf-8'
mov esi, dword ptr [rbp-0x34]
mov edx, r8d
mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this
call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this
int3
;; size=29 bbWeight=0.50 PerfScore 2.50
G_M46987_IG17:
call CORINFO_HELP_RNGCHKFAIL
call CORINFO_HELP_RNGCHKFAIL
int3
int3
;; size=6 bbWeight=0 PerfScore 0.00
;; size=6 bbWeight=0 PerfScore 0.00
복사
복사됨
복사
복사됨
; Total bytes of code
396
, prolog size 19, PerfScore
143.75
, instruction count
98
, allocated bytes for code
396
(MethodHash=f2cf4874) for method System.Text.EncodingTable:GetEncodings():System.Text.EncodingInfo[] (FullOpts)
; Total bytes of code
537
, prolog size 19, PerfScore
192.28
, instruction count
134
, allocated bytes for code
537
(MethodHash=f2cf4874) for method System.Text.EncodingTable:GetEncodings():System.Text.EncodingInfo[] (FullOpts)
; ============================================================
; ============================================================
저장된 비교 결과
원본
파일 열기
; Assembly listing for method System.Text.EncodingTable:GetEncodings():System.Text.EncodingInfo[] (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data ; Final local variable assignments ; ;* V00 loc0 [V00 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ushort]> ; V01 loc1 [V01,T09] ( 4, 5.21) ref -> r14 class-hnd exact single-def <System.Text.EncodingInfo[]> ;* V02 loc2 [V02,T21] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.String> ;* V03 loc3 [V03 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[int]> ; V04 loc4 [V04,T12] ( 3, 4.21) int -> [rbp-0x2C] ;* V05 loc5 [V05,T22] ( 0, 0 ) int -> zero-ref ; V06 loc6 [V06,T03] ( 4, 11.88) int -> [rbp-0x30] spill-single-def ; V07 loc7 [V07,T07] ( 3, 5.94) int -> rsi ;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty> ; V09 tmp1 [V09,T16] ( 3, 1.25) int -> rsi ;* V10 tmp2 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <System.Text.EncodingInfo[]> ; V11 tmp3 [V11,T02] ( 4, 15.84) int -> r12 "impSpillLclRefs" ; V12 tmp4 [V12,T04] ( 2, 7.92) ref -> [rbp-0x40] class-hnd exact spill-single-def "non-inline candidate call" <System.String> ; V13 tmp5 [V13,T01] ( 5, 19.80) ref -> [rbp-0x48] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.EncodingInfo> ;* V14 tmp6 [V14 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ushort]> ; V15 tmp7 [V15,T17] ( 2, 1 ) ubyte -> rax "Inline return value spill temp" ;* V16 tmp8 [V16 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[int]> ; V17 tmp9 [V17,T13] ( 2, 3.96) ubyte -> rax "Inline return value spill temp" ; V18 tmp10 [V18,T05] ( 2, 7.92) ref -> [rbp-0x50] class-hnd exact spill-single-def "Inlining Arg" <System.String> ; V19 tmp11 [V19,T10] ( 2, 4.96) byref -> rbx single-def "field V00._reference (fldOffset=0x0)" P-INDEP ;* V20 tmp12 [V20,T18] ( 0, 0 ) int -> zero-ref "field V00._length (fldOffset=0x8)" P-INDEP ; V21 tmp13 [V21,T11] ( 3, 4.21) byref -> r13 single-def "field V03._reference (fldOffset=0x0)" P-INDEP ;* V22 tmp14 [V22,T23] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x8)" P-INDEP ; V23 tmp15 [V23,T15] ( 2, 2 ) byref -> rbx single-def "field V14._reference (fldOffset=0x0)" P-INDEP ;* V24 tmp16 [V24,T19] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP ; V25 tmp17 [V25,T20] ( 2, 0.50) byref -> r13 single-def "field V16._reference (fldOffset=0x0)" P-INDEP ;* V26 tmp18 [V26,T24] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP ; V27 cse0 [V27,T08] ( 3, 5.94) int -> rdi "CSE #03: moderate" ; V28 cse1 [V28,T14] ( 3, 2.50) int -> rdi "CSE #02: moderate" ; V29 cse2 [V29,T06] ( 5, 6.46) byref -> r15 "CSE #01: moderate" ; V30 rat0 [V30,T00] ( 7, 20.05) long -> [rbp-0x38] "Widened IV V05" ; ; Lcl frame size = 40 G_M46987_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 40 lea rbp, [rsp+0x50] ;; size=19 bbWeight=1 PerfScore 6.75 G_M46987_IG02: mov rbx, 0xD1FFAB1E ; static handle mov r15, 0xD1FFAB1E ; static handle mov edi, dword ptr [r15] test edi, edi jl SHORT G_M46987_IG05 ;; size=27 bbWeight=1 PerfScore 3.75 G_M46987_IG03: test edi, edi jg SHORT G_M46987_IG04 mov rdi, 0xD1FFAB1E ; 'System.Text.Encoding.EnableUnsafeUTF7Encoding' mov rsi, r15 mov rax, 0xD1FFAB1E ; code for System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte call [rax]System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte test eax, eax je SHORT G_M46987_IG05 ;; size=33 bbWeight=0.50 PerfScore 3.12 G_M46987_IG04: mov esi, 8 jmp SHORT G_M46987_IG06 ;; size=7 bbWeight=0.50 PerfScore 1.12 G_M46987_IG05: mov esi, 7 ;; size=5 bbWeight=0.50 PerfScore 0.12 G_M46987_IG06: movsxd rsi, esi mov rdi, 0xD1FFAB1E ; System.Text.EncodingInfo[] call CORINFO_HELP_NEWARR_1_OBJ mov r14, rax mov r13, 0xD1FFAB1E ; static handle xor r12d, r12d xor eax, eax ;; size=36 bbWeight=0.25 PerfScore 0.62 G_M46987_IG07: mov qword ptr [rbp-0x38], rax movzx rcx, word ptr [rbx+2*rax] mov dword ptr [rbp-0x30], ecx cmp ecx, 0xFDE8 jne SHORT G_M46987_IG09 ;; size=19 bbWeight=3.96 PerfScore 20.79 G_M46987_IG08: mov edi, dword ptr [r15] test edi, edi jl G_M46987_IG10 test edi, edi jg SHORT G_M46987_IG09 mov rdi, 0xD1FFAB1E ; 'System.Text.Encoding.EnableUnsafeUTF7Encoding' mov rsi, r15 mov rdx, 0xD1FFAB1E ; code for System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte call [rdx]System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte test eax, eax je G_M46987_IG10 ;; size=48 bbWeight=1.98 PerfScore 18.81 G_M46987_IG09: lea edx, [r12+0x01] mov dword ptr [rbp-0x2C], edx mov rax, qword ptr [rbp-0x38] mov esi, dword ptr [r13+4*rax] mov qword ptr [rbp-0x38], rax lea edx, [rax+0x01] mov edx, dword ptr [r13+4*rdx] sub edx, esi mov rdi, 0xD1FFAB1E ; 'utf-16utf-16BEutf-32utf-32BEus-asciiiso-8859-1utf-7utf-8' mov r9, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this call [r9]System.String:Substring(int,int):System.String:this mov gword ptr [rbp-0x40], rax mov rdi, 0xD1FFAB1E ; System.Text.EncodingInfo call CORINFO_HELP_NEWSFAST mov gword ptr [rbp-0x48], rax mov edi, dword ptr [rbp-0x30] mov rcx, 0xD1FFAB1E ; code for System.Text.EncodingTable:GetDisplayName(int):System.String call [rcx]System.Text.EncodingTable:GetDisplayName(int):System.String mov gword ptr [rbp-0x50], rax mov rcx, gword ptr [rbp-0x48] mov edi, dword ptr [rbp-0x30] mov dword ptr [rcx+0x20], edi lea rdi, bword ptr [rcx+0x08] mov rsi, gword ptr [rbp-0x40] call CORINFO_HELP_ASSIGN_REF mov rax, gword ptr [rbp-0x48] lea rdi, bword ptr [rax+0x10] mov rsi, gword ptr [rbp-0x50] call CORINFO_HELP_ASSIGN_REF cmp r12d, dword ptr [r14+0x08] jae SHORT G_M46987_IG13 mov edi, r12d lea rdi, bword ptr [r14+8*rdi+0x10] mov rsi, gword ptr [rbp-0x48] call CORINFO_HELP_ASSIGN_REF mov r12d, dword ptr [rbp-0x2C] ;; size=163 bbWeight=1.98 PerfScore 74.25 G_M46987_IG10: mov rax, qword ptr [rbp-0x38] inc eax cmp eax, 8 jl G_M46987_IG07 ;; size=15 bbWeight=3.96 PerfScore 9.90 G_M46987_IG11: mov rax, r14 ;; size=3 bbWeight=1 PerfScore 0.25 G_M46987_IG12: add rsp, 40 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 G_M46987_IG13: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 ; Total bytes of code 396, prolog size 19, PerfScore 143.75, instruction count 98, allocated bytes for code 396 (MethodHash=f2cf4874) for method System.Text.EncodingTable:GetEncodings():System.Text.EncodingInfo[] (FullOpts) ; ============================================================
수정본
파일 열기
; Assembly listing for method System.Text.EncodingTable:GetEncodings():System.Text.EncodingInfo[] (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data ; Final local variable assignments ; ;* V00 loc0 [V00 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ushort]> ; V01 loc1 [V01,T11] ( 4, 5.21) ref -> r14 class-hnd exact single-def <System.Text.EncodingInfo[]> ;* V02 loc2 [V02,T24] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.String> ;* V03 loc3 [V03 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[int]> ; V04 loc4 [V04,T14] ( 3, 4.21) int -> [rbp-0x2C] ;* V05 loc5 [V05,T25] ( 0, 0 ) int -> zero-ref ; V06 loc6 [V06,T06] ( 4, 11.88) int -> [rbp-0x30] spill-single-def ; V07 loc7 [V07,T07] ( 5, 8.42) int -> [rbp-0x34] spill-single-def ;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty> ; V09 tmp1 [V09,T19] ( 3, 1.25) int -> rsi ;* V10 tmp2 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <System.Text.EncodingInfo[]> ; V11 tmp3 [V11,T05] ( 4, 15.84) int -> r12 "impSpillLclRefs" ; V12 tmp4 [V12,T03] ( 4, 15.84) ref -> [rbp-0x50] class-hnd exact "non-inline candidate call" <System.String> ; V13 tmp5 [V13,T02] ( 5, 19.80) ref -> [rbp-0x58] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.EncodingInfo> ;* V14 tmp6 [V14 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ushort]> ; V15 tmp7 [V15,T20] ( 2, 1 ) ubyte -> rax "Inline return value spill temp" ;* V16 tmp8 [V16 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[int]> ; V17 tmp9 [V17,T15] ( 2, 3.96) ubyte -> rax "Inline return value spill temp" ; V18 tmp10 [V18,T00] ( 7, 24.76) int -> r8 "Inlining Arg" ;* V19 tmp11 [V19 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ; V20 tmp12 [V20,T16] ( 2, 3.96) long -> [rbp-0x40] spill-single-def "Inline stloc first use temp" ; V21 tmp13 [V21,T04] ( 4, 15.84) ref -> [rbp-0x60] class-hnd exact spill-single-def "dup spill" <System.String> ;* V22 tmp14 [V22 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V23 tmp15 [V23 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ; V24 tmp16 [V24,T08] ( 2, 7.92) ref -> [rbp-0x68] class-hnd exact spill-single-def "Inlining Arg" <System.String> ; V25 tmp17 [V25,T12] ( 2, 4.96) byref -> rbx single-def "field V00._reference (fldOffset=0x0)" P-INDEP ;* V26 tmp18 [V26,T21] ( 0, 0 ) int -> zero-ref "field V00._length (fldOffset=0x8)" P-INDEP ; V27 tmp19 [V27,T13] ( 3, 4.21) byref -> r13 single-def "field V03._reference (fldOffset=0x0)" P-INDEP ;* V28 tmp20 [V28,T26] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x8)" P-INDEP ; V29 tmp21 [V29,T18] ( 2, 2 ) byref -> rbx single-def "field V14._reference (fldOffset=0x0)" P-INDEP ;* V30 tmp22 [V30,T22] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP ; V31 tmp23 [V31,T23] ( 2, 0.50) byref -> r13 single-def "field V16._reference (fldOffset=0x0)" P-INDEP ;* V32 tmp24 [V32,T27] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP ; V33 cse0 [V33,T10] ( 3, 5.94) int -> rdi "CSE #03: moderate" ; V34 cse1 [V34,T17] ( 3, 2.50) int -> rdi "CSE #02: moderate" ; V35 cse2 [V35,T09] ( 5, 6.46) byref -> r15 "CSE #01: moderate" ; V36 rat0 [V36,T01] ( 7, 20.05) long -> [rbp-0x48] "Widened IV V05" ; ; Lcl frame size = 72 G_M46987_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 72 lea rbp, [rsp+0x70] ;; size=19 bbWeight=1 PerfScore 6.75 G_M46987_IG02: mov rbx, 0xD1FFAB1E ; static handle mov r15, 0xD1FFAB1E ; static handle mov edi, dword ptr [r15] test edi, edi jl SHORT G_M46987_IG05 ;; size=27 bbWeight=1 PerfScore 3.75 G_M46987_IG03: test edi, edi jg SHORT G_M46987_IG04 mov rdi, 0xD1FFAB1E ; 'System.Text.Encoding.EnableUnsafeUTF7Encoding' mov rsi, r15 mov rax, 0xD1FFAB1E ; code for System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte call [rax]System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte test eax, eax je SHORT G_M46987_IG05 ;; size=33 bbWeight=0.50 PerfScore 3.12 G_M46987_IG04: mov esi, 8 jmp SHORT G_M46987_IG06 ;; size=7 bbWeight=0.50 PerfScore 1.12 G_M46987_IG05: mov esi, 7 ;; size=5 bbWeight=0.50 PerfScore 0.12 G_M46987_IG06: movsxd rsi, esi mov rdi, 0xD1FFAB1E ; System.Text.EncodingInfo[] call CORINFO_HELP_NEWARR_1_OBJ mov r14, rax mov r13, 0xD1FFAB1E ; static handle xor r12d, r12d xor eax, eax ;; size=36 bbWeight=0.25 PerfScore 0.62 G_M46987_IG07: mov qword ptr [rbp-0x48], rax movzx rcx, word ptr [rbx+2*rax] mov dword ptr [rbp-0x30], ecx cmp ecx, 0xFDE8 jne SHORT G_M46987_IG09 ;; size=19 bbWeight=3.96 PerfScore 20.79 G_M46987_IG08: mov edi, dword ptr [r15] test edi, edi jl G_M46987_IG13 test edi, edi jg SHORT G_M46987_IG09 mov rdi, 0xD1FFAB1E ; 'System.Text.Encoding.EnableUnsafeUTF7Encoding' mov rsi, r15 mov rdx, 0xD1FFAB1E ; code for System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte call [rdx]System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte test eax, eax je G_M46987_IG13 ;; size=48 bbWeight=1.98 PerfScore 18.81 G_M46987_IG09: lea edi, [r12+0x01] mov dword ptr [rbp-0x2C], edi mov rax, qword ptr [rbp-0x48] mov esi, dword ptr [r13+4*rax] mov dword ptr [rbp-0x34], esi mov qword ptr [rbp-0x48], rax lea edi, [rax+0x01] mov edi, dword ptr [r13+4*rdi] sub edi, esi mov r8d, edi mov edi, esi mov r9d, r8d add rdi, r9 cmp rdi, 56 ja G_M46987_IG16 test r8d, r8d je SHORT G_M46987_IG11 cmp r8d, 56 je SHORT G_M46987_IG10 mov r9d, r8d mov qword ptr [rbp-0x40], r9 mov edi, r8d call System.String:FastAllocateString(int):System.String mov gword ptr [rbp-0x60], rax mov rsi, 0xD1FFAB1E mov edi, dword ptr [rbp-0x34] lea rsi, bword ptr [rsi+2*rdi] cmp byte ptr [rax], al lea rdi, bword ptr [rax+0x0C] mov rdx, qword ptr [rbp-0x40] add rdx, rdx mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong) mov rax, gword ptr [rbp-0x60] mov gword ptr [rbp-0x50], rax jmp SHORT G_M46987_IG12 ;; size=137 bbWeight=1.98 PerfScore 61.87 G_M46987_IG10: mov rdi, 0xD1FFAB1E ; 'utf-16utf-16BEutf-32utf-32BEus-asciiiso-8859-1utf-7utf-8' mov rsi, rdi mov gword ptr [rbp-0x50], rsi jmp SHORT G_M46987_IG12 ;; size=19 bbWeight=1.98 PerfScore 6.93 G_M46987_IG11: mov rsi, 0xD1FFAB1E ; '' mov gword ptr [rbp-0x50], rsi ;; size=14 bbWeight=1.98 PerfScore 2.48 G_M46987_IG12: mov rdi, 0xD1FFAB1E ; System.Text.EncodingInfo call CORINFO_HELP_NEWSFAST mov gword ptr [rbp-0x58], rax mov edi, dword ptr [rbp-0x30] mov rcx, 0xD1FFAB1E ; code for System.Text.EncodingTable:GetDisplayName(int):System.String call [rcx]System.Text.EncodingTable:GetDisplayName(int):System.String mov gword ptr [rbp-0x68], rax mov rcx, gword ptr [rbp-0x58] mov edi, dword ptr [rbp-0x30] mov dword ptr [rcx+0x20], edi lea rdi, bword ptr [rcx+0x08] mov rsi, gword ptr [rbp-0x50] call CORINFO_HELP_ASSIGN_REF mov rax, gword ptr [rbp-0x58] lea rdi, bword ptr [rax+0x10] mov rsi, gword ptr [rbp-0x68] call CORINFO_HELP_ASSIGN_REF cmp r12d, dword ptr [r14+0x08] jae SHORT G_M46987_IG17 mov edi, r12d lea rdi, bword ptr [r14+8*rdi+0x10] mov rsi, gword ptr [rbp-0x58] call CORINFO_HELP_ASSIGN_REF mov r12d, dword ptr [rbp-0x2C] ;; size=105 bbWeight=1.98 PerfScore 49.00 G_M46987_IG13: mov rax, qword ptr [rbp-0x48] inc eax cmp eax, 8 jl G_M46987_IG07 ;; size=15 bbWeight=3.96 PerfScore 9.90 G_M46987_IG14: mov rax, r14 ;; size=3 bbWeight=1 PerfScore 0.25 G_M46987_IG15: add rsp, 72 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 G_M46987_IG16: mov rdi, 0xD1FFAB1E ; 'utf-16utf-16BEutf-32utf-32BEus-asciiiso-8859-1utf-7utf-8' mov esi, dword ptr [rbp-0x34] mov edx, r8d mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this int3 ;; size=29 bbWeight=0.50 PerfScore 2.50 G_M46987_IG17: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 ; Total bytes of code 537, prolog size 19, PerfScore 192.28, instruction count 134, allocated bytes for code 537 (MethodHash=f2cf4874) for method System.Text.EncodingTable:GetEncodings():System.Text.EncodingInfo[] (FullOpts) ; ============================================================
비교하기