Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
공백 변경 숨기기
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
텍스트 스타일
모양 변경
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
TryParseUInt16D
생성일
5년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
15 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
192 행
복사
17 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
193 행
복사
; Assembly listing for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[Byte],byref,byref,ushort):bool
; Assembly listing for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[Byte],byref,byref,ushort):bool
; 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 arg0 [V00,T00] ( 6, 8 ) byref -> rcx
; V00 arg0 [V00,T00] ( 6, 8 ) byref -> rcx
; V01 arg1 [V01,T01] ( 6, 4 ) byref -> rdx
; V01 arg1 [V01,T01] ( 6, 4 ) byref -> rdx
; V02 arg2 [V02,T02] ( 6, 4 ) byref -> r8
; V02 arg2 [V02,T02] ( 6, 4 ) byref -> r8
; V03 arg3 [V03,T03] ( 4, 3.50) ushort -> r9
; V03 arg3 [V03,T03] ( 4, 3.50) ushort -> r9
; V04 loc0 [V04,T04] ( 6, 3 ) int -> rax
; V04 loc0 [V04,T04] ( 6, 3 ) int -> rax
;# V05 OutArgs [V05 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace"
;# V05 OutArgs [V05 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) byref -> zero-ref V08._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)"
;* V06 tmp1 [V06 ] ( 0, 0 ) byref -> zero-ref V08._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)"
;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref V08._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)"
;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref V08._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)"
;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref"
;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref"
;
;
; Lcl frame size = 0
; Lcl frame size = 0
G_M1013_IG01: ;; offset=0000H
G_M1013_IG01: ;; offset=0000H
;; bbWeight=1 PerfScore 0.00
;; bbWeight=1 PerfScore 0.00
G_M1013_IG02: ;; offset=0000H
G_M1013_IG02: ;; offset=0000H
410FB7C1 movzx rax, r9w
410FB7C1 movzx rax, r9w
85C0 test eax, eax
85C0 test eax, eax
7505 jne SHORT G_M1013_IG04
7505 jne SHORT G_M1013_IG04
;; bbWeight=1 PerfScore 1.50
;; bbWeight=1 PerfScore 1.50
G_M1013_IG03: ;; offset=0008H
G_M1013_IG03: ;; offset=0008H
E9CBFAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool
E9CBFAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool
;; bbWeight=0.50 PerfScore 1.00
;; bbWeight=0.50 PerfScore 1.00
G_M1013_IG04: ;; offset=000DH
G_M1013_IG04: ;; offset=000DH
410FB7C1 movzx rax, r9w
410FB7C1 movzx rax, r9w
83C820 or eax, 32
83C820 or eax, 32
83F867 cmp eax, 103
83F867 cmp eax, 103
7F0C jg SHORT G_M1013_IG05
7F0C jg SHORT G_M1013_IG05
83F864 cmp eax, 100
83F864 cmp eax, 100
74EA je SHORT G_M1013_IG03
74EA je SHORT G_M1013_IG03
83F867 cmp eax, 103
83F867 cmp eax, 103
74E5 je SHORT G_M1013_IG03
74E5 je SHORT G_M1013_IG03
EB16 jmp SHORT G_M1013_IG08
EB16 jmp SHORT G_M1013_IG08
;; bbWeight=0.50 PerfScore 3.12
;; bbWeight=0.50 PerfScore 3.12
G_M1013_IG05: ;; offset=0025H
G_M1013_IG05: ;; offset=0025H
83F86E cmp eax, 110
83F86E cmp eax, 110
7407 je SHORT G_M1013_IG06
7407 je SHORT G_M1013_IG06
83F878 cmp eax, 120
83F878 cmp eax, 120
7407 je SHORT G_M1013_IG07
7407 je SHORT G_M1013_IG07
EB0A jmp SHORT G_M1013_IG08
EB0A jmp SHORT G_M1013_IG08
;; bbWeight=0.50 PerfScore 2.25
;; bbWeight=0.50 PerfScore 2.25
G_M1013_IG06: ;; offset=0031H
G_M1013_IG06: ;; offset=0031H
E9C2FAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16N(System.ReadOnlySpan`1[Byte],byref,byref):bool
E9C2FAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16N(System.ReadOnlySpan`1[Byte],byref,byref):bool
;; bbWeight=0.50 PerfScore 1.00
;; bbWeight=0.50 PerfScore 1.00
G_M1013_IG07: ;; offset=0036H
G_M1013_IG07: ;; offset=0036H
E9DDFAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16X(System.ReadOnlySpan`1[Byte],byref,byref):bool
E9DDFAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16X(System.ReadOnlySpan`1[Byte],byref,byref):bool
;; bbWeight=0.50 PerfScore 1.00
;; bbWeight=0.50 PerfScore 1.00
G_M1013_IG08: ;; offset=003BH
G_M1013_IG08: ;; offset=003BH
E9F0EFFFFF jmp System.Buffers.Text.ParserHelpers:TryParseThrowFormatException(System.ReadOnlySpan`1[Byte],byref,byref):bool
E9F0EFFFFF jmp System.Buffers.Text.ParserHelpers:TryParseThrowFormatException(System.ReadOnlySpan`1[Byte],byref,byref):bool
;; bbWeight=0.50 PerfScore 1.00
;; bbWeight=0.50 PerfScore 1.00
; Total bytes of code 64, prolog size 0, PerfScore 17.28, instruction count 21, allocated bytes for code 64 (MethodHash=8045fc0a) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[Byte],byref,byref,ushort):bool
; Total bytes of code 64, prolog size 0, PerfScore 17.28, instruction count 21, allocated bytes for code 64 (MethodHash=8045fc0a) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[Byte],byref,byref,ushort):bool
; ============================================================
; ============================================================
; Assembly listing for method System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool
; Assembly listing for method System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool
; 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 arg0 [V00,T02] ( 4, 8 ) byref -> rcx ld-addr-op
; V00 arg0 [V00,T02] ( 4, 8 ) byref -> rcx ld-addr-op
; V01 arg1 [V01,T06] ( 4, 3 ) byref -> rdx
; V01 arg1 [V01,T06] ( 4, 3 ) byref -> rdx
; V02 arg2 [V02,T07] ( 4, 3 ) byref -> r8
; V02 arg2 [V02,T07] ( 4, 3 ) byref -> r8
; V03 loc0 [V03,T00] ( 26, 27 ) int -> r9
; V03 loc0 [V03,T00] ( 26, 27 ) int -> r9
; V04 loc1 [V04,T01] ( 19, 16.50) int -> r10
; V04 loc1 [V04,T01] ( 19, 16.50) int -> r10
; V05 loc2 [V05,T05] ( 12, 6 ) int -> r11
; V05 loc2 [V05,T05] ( 12, 6 ) int -> r11
;# V06 OutArgs [V06 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace"
;# V06 OutArgs [V06 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace"
; V07 tmp1 [V07,T08] ( 2, 2 ) int -> rax "Inlining Arg"
; V07 tmp1 [V07,T08] ( 2, 2 ) int -> rax "Inlining Arg"
; V08 tmp2 [V08,T04] ( 8, 8 ) byref -> rax V10._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)"
; V08 tmp2 [V08,T04] ( 8, 8 ) byref -> rax V10._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)"
; V09 tmp3 [V09,T03] ( 8, 8.50) int -> rcx V10._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)"
; V09 tmp3 [V09,T03] ( 8, 8.50) int -> rcx V10._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)"
;* V10 tmp4 [V10 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref"
;* V10 tmp4 [V10 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref"
;
;
; Lcl frame size = 0
; Lcl frame size = 0
G_M49819_IG01: ;; offset=0000H
G_M49819_IG01: ;; offset=0000H
56 push rsi
56 push rsi
;; bbWeight=1 PerfScore 1.00
;; bbWeight=1 PerfScore 1.00
G_M49819_IG02: ;; offset=0001H
G_M49819_IG02: ;; offset=0001H
488B01 mov rax, bword ptr [rcx]
488B01 mov rax, bword ptr [rcx]
8B4908 mov ecx, dword ptr [rcx+8]
8B4908 mov ecx, dword ptr [rcx+8]
;; bbWeight=1 PerfScore 4.00
;; bbWeight=1 PerfScore 4.00
G_M49819_IG03: ;; offset=0007H
G_M49819_IG03: ;; offset=0007H
85C9 test ecx, ecx
85C9 test ecx, ecx
복사
복사됨
복사
복사됨
0F8E
FC
000
000 jle G_M49819_IG08
0F8E
000
10
000 jle G_M49819_IG08
;; bbWeight=1 PerfScore 1.25
;; bbWeight=1 PerfScore 1.25
G_M49819_IG04: ;; offset=000FH
G_M49819_IG04: ;; offset=000FH
4533C9 xor r9d, r9d
4533C9 xor r9d, r9d
440FB610 movzx r10, byte ptr [rax]
440FB610 movzx r10, byte ptr [rax]
4533DB xor r11d, r11d
4533DB xor r11d, r11d
418D72D0 lea esi, [r10-48]
418D72D0 lea esi, [r10-48]
83FE09 cmp esi, 9
83FE09 cmp esi, 9
복사
복사됨
복사
복사됨
0F87E
5
000000 ja G_M49819_IG08
0F87E
9
000000 ja G_M49819_IG08
4183FA30 cmp r10d, 48
4183FA30 cmp r10d, 48
복사
복사됨
복사
복사됨
752
7
jne SHORT G_M49819_IG07
752
B
jne SHORT G_M49819_IG07
;; bbWeight=0.50 PerfScore 2.
75
0F1F4000 align
G_M49819_IG05: ;; offset=
002CH
;; bbWeight=0.50 PerfScore 2.
88
G_M49819_IG05: ;; offset=
0030H
41FFC1 inc r9d
41FFC1 inc r9d
443BC9 cmp r9d, ecx
443BC9 cmp r9d, ecx
0F83DF000000 jae G_M49819_IG10
0F83DF000000 jae G_M49819_IG10
4D63D1 movsxd r10, r9d
4D63D1 movsxd r10, r9d
460FB61410 movzx r10, byte ptr [rax+r10]
460FB61410 movzx r10, byte ptr [rax+r10]
4183FA30 cmp r10d, 48
4183FA30 cmp r10d, 48
74E6 je SHORT G_M49819_IG05
74E6 je SHORT G_M49819_IG05
;; bbWeight=4 PerfScore 20.00
;; bbWeight=4 PerfScore 20.00
복사
복사됨
복사
복사됨
G_M49819_IG06: ;; offset=004
6
H
G_M49819_IG06: ;; offset=004
A
H
418D72D0 lea esi, [r10-48]
418D72D0 lea esi, [r10-48]
83FE09 cmp esi, 9
83FE09 cmp esi, 9
0F87C4000000 ja G_M49819_IG10
0F87C4000000 ja G_M49819_IG10
;; bbWeight=0.50 PerfScore 0.88
;; bbWeight=0.50 PerfScore 0.88
복사
복사됨
복사
복사됨
G_M49819_IG07: ;; offset=005
3
H
G_M49819_IG07: ;; offset=005
7
H
458D5AD0 lea r11d, [r10-48]
458D5AD0 lea r11d, [r10-48]
41FFC1 inc r9d
41FFC1 inc r9d
443BC9 cmp r9d, ecx
443BC9 cmp r9d, ecx
0F83B4000000 jae G_M49819_IG10
0F83B4000000 jae G_M49819_IG10
4D63D1 movsxd r10, r9d
4D63D1 movsxd r10, r9d
460FB61410 movzx r10, byte ptr [rax+r10]
460FB61410 movzx r10, byte ptr [rax+r10]
418D72D0 lea esi, [r10-48]
418D72D0 lea esi, [r10-48]
83FE09 cmp esi, 9
83FE09 cmp esi, 9
0F879F000000 ja G_M49819_IG10
0F879F000000 ja G_M49819_IG10
41FFC1 inc r9d
41FFC1 inc r9d
478D1C9B lea r11d, [r11+4*r11]
478D1C9B lea r11d, [r11+4*r11]
478D5C5AD0 lea r11d, [r10+2*r11-48]
478D5C5AD0 lea r11d, [r10+2*r11-48]
443BC9 cmp r9d, ecx
443BC9 cmp r9d, ecx
0F838A000000 jae G_M49819_IG10
0F838A000000 jae G_M49819_IG10
4D63D1 movsxd r10, r9d
4D63D1 movsxd r10, r9d
460FB61410 movzx r10, byte ptr [rax+r10]
460FB61410 movzx r10, byte ptr [rax+r10]
418D72D0 lea esi, [r10-48]
418D72D0 lea esi, [r10-48]
83FE09 cmp esi, 9
83FE09 cmp esi, 9
7779 ja SHORT G_M49819_IG10
7779 ja SHORT G_M49819_IG10
41FFC1 inc r9d
41FFC1 inc r9d
478D1C9B lea r11d, [r11+4*r11]
478D1C9B lea r11d, [r11+4*r11]
478D5C5AD0 lea r11d, [r10+2*r11-48]
478D5C5AD0 lea r11d, [r10+2*r11-48]
443BC9 cmp r9d, ecx
443BC9 cmp r9d, ecx
7368 jae SHORT G_M49819_IG10
7368 jae SHORT G_M49819_IG10
4D63D1 movsxd r10, r9d
4D63D1 movsxd r10, r9d
460FB61410 movzx r10, byte ptr [rax+r10]
460FB61410 movzx r10, byte ptr [rax+r10]
418D72D0 lea esi, [r10-48]
418D72D0 lea esi, [r10-48]
83FE09 cmp esi, 9
83FE09 cmp esi, 9
7757 ja SHORT G_M49819_IG10
7757 ja SHORT G_M49819_IG10
41FFC1 inc r9d
41FFC1 inc r9d
478D1C9B lea r11d, [r11+4*r11]
478D1C9B lea r11d, [r11+4*r11]
478D5C5AD0 lea r11d, [r10+2*r11-48]
478D5C5AD0 lea r11d, [r10+2*r11-48]
443BC9 cmp r9d, ecx
443BC9 cmp r9d, ecx
7346 jae SHORT G_M49819_IG10
7346 jae SHORT G_M49819_IG10
4D63D1 movsxd r10, r9d
4D63D1 movsxd r10, r9d
460FB61410 movzx r10, byte ptr [rax+r10]
460FB61410 movzx r10, byte ptr [rax+r10]
418D72D0 lea esi, [r10-48]
418D72D0 lea esi, [r10-48]
83FE09 cmp esi, 9
83FE09 cmp esi, 9
7735 ja SHORT G_M49819_IG10
7735 ja SHORT G_M49819_IG10
41FFC1 inc r9d
41FFC1 inc r9d
478D1C9B lea r11d, [r11+4*r11]
478D1C9B lea r11d, [r11+4*r11]
478D5C5AD0 lea r11d, [r10+2*r11-48]
478D5C5AD0 lea r11d, [r10+2*r11-48]
4181FBFFFF0000 cmp r11d, 0xFFFF
4181FBFFFF0000 cmp r11d, 0xFFFF
7714 ja SHORT G_M49819_IG08
7714 ja SHORT G_M49819_IG08
443BC9 cmp r9d, ecx
443BC9 cmp r9d, ecx
731B jae SHORT G_M49819_IG10
731B jae SHORT G_M49819_IG10
4963C9 movsxd rcx, r9d
4963C9 movsxd rcx, r9d
0FB60408 movzx rax, byte ptr [rax+rcx]
0FB60408 movzx rax, byte ptr [rax+rcx]
83C0D0 add eax, -48
83C0D0 add eax, -48
83F809 cmp eax, 9
83F809 cmp eax, 9
770C ja SHORT G_M49819_IG10
770C ja SHORT G_M49819_IG10
;; bbWeight=0.50 PerfScore 17.50
;; bbWeight=0.50 PerfScore 17.50
복사
복사됨
복사
복사됨
G_M49819_IG08: ;; offset=010
B
H
G_M49819_IG08: ;; offset=010
F
H
33C0 xor eax, eax
33C0 xor eax, eax
418900 mov dword ptr [r8], eax
418900 mov dword ptr [r8], eax
66C7020000 mov word ptr [rdx], 0
66C7020000 mov word ptr [rdx], 0
;; bbWeight=0.50 PerfScore 1.12
;; bbWeight=0.50 PerfScore 1.12
복사
복사됨
복사
복사됨
G_M49819_IG09: ;; offset=011
5
H
G_M49819_IG09: ;; offset=011
9
H
5E pop rsi
5E pop rsi
C3 ret
C3 ret
;; bbWeight=0.50 PerfScore 0.75
;; bbWeight=0.50 PerfScore 0.75
복사
복사됨
복사
복사됨
G_M49819_IG10: ;; offset=011
7
H
G_M49819_IG10: ;; offset=011
B
H
458908 mov dword ptr [r8], r9d
458908 mov dword ptr [r8], r9d
6644891A mov word ptr [rdx], r11w
6644891A mov word ptr [rdx], r11w
B801000000 mov eax, 1
B801000000 mov eax, 1
;; bbWeight=0.50 PerfScore 1.12
;; bbWeight=0.50 PerfScore 1.12
복사
복사됨
복사
복사됨
G_M49819_IG11: ;; offset=012
3
H
G_M49819_IG11: ;; offset=012
7
H
5E pop rsi
5E pop rsi
C3 ret
C3 ret
;; bbWeight=0.50 PerfScore 0.75
;; bbWeight=0.50 PerfScore 0.75
복사
복사됨
복사
복사됨
; Total bytes of code 29
3
, prolog size 1, PerfScore 80.
43
, instruction count
84
, allocated bytes for code 29
3
(MethodHash=1aab3d64) for method System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool
; Total bytes of code 29
7
, prolog size 1, PerfScore 80.
95
, instruction count
85
, allocated bytes for code 29
7
(MethodHash=1aab3d64) for method System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool
; ============================================================
; ============================================================
저장된 비교 결과
원본
파일 열기
; Assembly listing for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[Byte],byref,byref,ushort):bool ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; fully interruptible ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 6, 8 ) byref -> rcx ; V01 arg1 [V01,T01] ( 6, 4 ) byref -> rdx ; V02 arg2 [V02,T02] ( 6, 4 ) byref -> r8 ; V03 arg3 [V03,T03] ( 4, 3.50) ushort -> r9 ; V04 loc0 [V04,T04] ( 6, 3 ) int -> rax ;# V05 OutArgs [V05 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace" ;* V06 tmp1 [V06 ] ( 0, 0 ) byref -> zero-ref V08._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)" ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref V08._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)" ;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" ; ; Lcl frame size = 0 G_M1013_IG01: ;; offset=0000H ;; bbWeight=1 PerfScore 0.00 G_M1013_IG02: ;; offset=0000H 410FB7C1 movzx rax, r9w 85C0 test eax, eax 7505 jne SHORT G_M1013_IG04 ;; bbWeight=1 PerfScore 1.50 G_M1013_IG03: ;; offset=0008H E9CBFAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool ;; bbWeight=0.50 PerfScore 1.00 G_M1013_IG04: ;; offset=000DH 410FB7C1 movzx rax, r9w 83C820 or eax, 32 83F867 cmp eax, 103 7F0C jg SHORT G_M1013_IG05 83F864 cmp eax, 100 74EA je SHORT G_M1013_IG03 83F867 cmp eax, 103 74E5 je SHORT G_M1013_IG03 EB16 jmp SHORT G_M1013_IG08 ;; bbWeight=0.50 PerfScore 3.12 G_M1013_IG05: ;; offset=0025H 83F86E cmp eax, 110 7407 je SHORT G_M1013_IG06 83F878 cmp eax, 120 7407 je SHORT G_M1013_IG07 EB0A jmp SHORT G_M1013_IG08 ;; bbWeight=0.50 PerfScore 2.25 G_M1013_IG06: ;; offset=0031H E9C2FAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16N(System.ReadOnlySpan`1[Byte],byref,byref):bool ;; bbWeight=0.50 PerfScore 1.00 G_M1013_IG07: ;; offset=0036H E9DDFAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16X(System.ReadOnlySpan`1[Byte],byref,byref):bool ;; bbWeight=0.50 PerfScore 1.00 G_M1013_IG08: ;; offset=003BH E9F0EFFFFF jmp System.Buffers.Text.ParserHelpers:TryParseThrowFormatException(System.ReadOnlySpan`1[Byte],byref,byref):bool ;; bbWeight=0.50 PerfScore 1.00 ; Total bytes of code 64, prolog size 0, PerfScore 17.28, instruction count 21, allocated bytes for code 64 (MethodHash=8045fc0a) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[Byte],byref,byref,ushort):bool ; ============================================================ ; Assembly listing for method System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; fully interruptible ; Final local variable assignments ; ; V00 arg0 [V00,T02] ( 4, 8 ) byref -> rcx ld-addr-op ; V01 arg1 [V01,T06] ( 4, 3 ) byref -> rdx ; V02 arg2 [V02,T07] ( 4, 3 ) byref -> r8 ; V03 loc0 [V03,T00] ( 26, 27 ) int -> r9 ; V04 loc1 [V04,T01] ( 19, 16.50) int -> r10 ; V05 loc2 [V05,T05] ( 12, 6 ) int -> r11 ;# V06 OutArgs [V06 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace" ; V07 tmp1 [V07,T08] ( 2, 2 ) int -> rax "Inlining Arg" ; V08 tmp2 [V08,T04] ( 8, 8 ) byref -> rax V10._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)" ; V09 tmp3 [V09,T03] ( 8, 8.50) int -> rcx V10._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)" ;* V10 tmp4 [V10 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" ; ; Lcl frame size = 0 G_M49819_IG01: ;; offset=0000H 56 push rsi ;; bbWeight=1 PerfScore 1.00 G_M49819_IG02: ;; offset=0001H 488B01 mov rax, bword ptr [rcx] 8B4908 mov ecx, dword ptr [rcx+8] ;; bbWeight=1 PerfScore 4.00 G_M49819_IG03: ;; offset=0007H 85C9 test ecx, ecx 0F8EFC000000 jle G_M49819_IG08 ;; bbWeight=1 PerfScore 1.25 G_M49819_IG04: ;; offset=000FH 4533C9 xor r9d, r9d 440FB610 movzx r10, byte ptr [rax] 4533DB xor r11d, r11d 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 0F87E5000000 ja G_M49819_IG08 4183FA30 cmp r10d, 48 7527 jne SHORT G_M49819_IG07 ;; bbWeight=0.50 PerfScore 2.75 G_M49819_IG05: ;; offset=002CH 41FFC1 inc r9d 443BC9 cmp r9d, ecx 0F83DF000000 jae G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 4183FA30 cmp r10d, 48 74E6 je SHORT G_M49819_IG05 ;; bbWeight=4 PerfScore 20.00 G_M49819_IG06: ;; offset=0046H 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 0F87C4000000 ja G_M49819_IG10 ;; bbWeight=0.50 PerfScore 0.88 G_M49819_IG07: ;; offset=0053H 458D5AD0 lea r11d, [r10-48] 41FFC1 inc r9d 443BC9 cmp r9d, ecx 0F83B4000000 jae G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 0F879F000000 ja G_M49819_IG10 41FFC1 inc r9d 478D1C9B lea r11d, [r11+4*r11] 478D5C5AD0 lea r11d, [r10+2*r11-48] 443BC9 cmp r9d, ecx 0F838A000000 jae G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 7779 ja SHORT G_M49819_IG10 41FFC1 inc r9d 478D1C9B lea r11d, [r11+4*r11] 478D5C5AD0 lea r11d, [r10+2*r11-48] 443BC9 cmp r9d, ecx 7368 jae SHORT G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 7757 ja SHORT G_M49819_IG10 41FFC1 inc r9d 478D1C9B lea r11d, [r11+4*r11] 478D5C5AD0 lea r11d, [r10+2*r11-48] 443BC9 cmp r9d, ecx 7346 jae SHORT G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 7735 ja SHORT G_M49819_IG10 41FFC1 inc r9d 478D1C9B lea r11d, [r11+4*r11] 478D5C5AD0 lea r11d, [r10+2*r11-48] 4181FBFFFF0000 cmp r11d, 0xFFFF 7714 ja SHORT G_M49819_IG08 443BC9 cmp r9d, ecx 731B jae SHORT G_M49819_IG10 4963C9 movsxd rcx, r9d 0FB60408 movzx rax, byte ptr [rax+rcx] 83C0D0 add eax, -48 83F809 cmp eax, 9 770C ja SHORT G_M49819_IG10 ;; bbWeight=0.50 PerfScore 17.50 G_M49819_IG08: ;; offset=010BH 33C0 xor eax, eax 418900 mov dword ptr [r8], eax 66C7020000 mov word ptr [rdx], 0 ;; bbWeight=0.50 PerfScore 1.12 G_M49819_IG09: ;; offset=0115H 5E pop rsi C3 ret ;; bbWeight=0.50 PerfScore 0.75 G_M49819_IG10: ;; offset=0117H 458908 mov dword ptr [r8], r9d 6644891A mov word ptr [rdx], r11w B801000000 mov eax, 1 ;; bbWeight=0.50 PerfScore 1.12 G_M49819_IG11: ;; offset=0123H 5E pop rsi C3 ret ;; bbWeight=0.50 PerfScore 0.75 ; Total bytes of code 293, prolog size 1, PerfScore 80.43, instruction count 84, allocated bytes for code 293 (MethodHash=1aab3d64) for method System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool ; ============================================================
수정본
파일 열기
; Assembly listing for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[Byte],byref,byref,ushort):bool ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; fully interruptible ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 6, 8 ) byref -> rcx ; V01 arg1 [V01,T01] ( 6, 4 ) byref -> rdx ; V02 arg2 [V02,T02] ( 6, 4 ) byref -> r8 ; V03 arg3 [V03,T03] ( 4, 3.50) ushort -> r9 ; V04 loc0 [V04,T04] ( 6, 3 ) int -> rax ;# V05 OutArgs [V05 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace" ;* V06 tmp1 [V06 ] ( 0, 0 ) byref -> zero-ref V08._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)" ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref V08._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)" ;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" ; ; Lcl frame size = 0 G_M1013_IG01: ;; offset=0000H ;; bbWeight=1 PerfScore 0.00 G_M1013_IG02: ;; offset=0000H 410FB7C1 movzx rax, r9w 85C0 test eax, eax 7505 jne SHORT G_M1013_IG04 ;; bbWeight=1 PerfScore 1.50 G_M1013_IG03: ;; offset=0008H E9CBFAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool ;; bbWeight=0.50 PerfScore 1.00 G_M1013_IG04: ;; offset=000DH 410FB7C1 movzx rax, r9w 83C820 or eax, 32 83F867 cmp eax, 103 7F0C jg SHORT G_M1013_IG05 83F864 cmp eax, 100 74EA je SHORT G_M1013_IG03 83F867 cmp eax, 103 74E5 je SHORT G_M1013_IG03 EB16 jmp SHORT G_M1013_IG08 ;; bbWeight=0.50 PerfScore 3.12 G_M1013_IG05: ;; offset=0025H 83F86E cmp eax, 110 7407 je SHORT G_M1013_IG06 83F878 cmp eax, 120 7407 je SHORT G_M1013_IG07 EB0A jmp SHORT G_M1013_IG08 ;; bbWeight=0.50 PerfScore 2.25 G_M1013_IG06: ;; offset=0031H E9C2FAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16N(System.ReadOnlySpan`1[Byte],byref,byref):bool ;; bbWeight=0.50 PerfScore 1.00 G_M1013_IG07: ;; offset=0036H E9DDFAFFFF jmp System.Buffers.Text.Utf8Parser:TryParseUInt16X(System.ReadOnlySpan`1[Byte],byref,byref):bool ;; bbWeight=0.50 PerfScore 1.00 G_M1013_IG08: ;; offset=003BH E9F0EFFFFF jmp System.Buffers.Text.ParserHelpers:TryParseThrowFormatException(System.ReadOnlySpan`1[Byte],byref,byref):bool ;; bbWeight=0.50 PerfScore 1.00 ; Total bytes of code 64, prolog size 0, PerfScore 17.28, instruction count 21, allocated bytes for code 64 (MethodHash=8045fc0a) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[Byte],byref,byref,ushort):bool ; ============================================================ ; Assembly listing for method System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rsp based frame ; fully interruptible ; Final local variable assignments ; ; V00 arg0 [V00,T02] ( 4, 8 ) byref -> rcx ld-addr-op ; V01 arg1 [V01,T06] ( 4, 3 ) byref -> rdx ; V02 arg2 [V02,T07] ( 4, 3 ) byref -> r8 ; V03 loc0 [V03,T00] ( 26, 27 ) int -> r9 ; V04 loc1 [V04,T01] ( 19, 16.50) int -> r10 ; V05 loc2 [V05,T05] ( 12, 6 ) int -> r11 ;# V06 OutArgs [V06 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace" ; V07 tmp1 [V07,T08] ( 2, 2 ) int -> rax "Inlining Arg" ; V08 tmp2 [V08,T04] ( 8, 8 ) byref -> rax V10._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)" ; V09 tmp3 [V09,T03] ( 8, 8.50) int -> rcx V10._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)" ;* V10 tmp4 [V10 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" ; ; Lcl frame size = 0 G_M49819_IG01: ;; offset=0000H 56 push rsi ;; bbWeight=1 PerfScore 1.00 G_M49819_IG02: ;; offset=0001H 488B01 mov rax, bword ptr [rcx] 8B4908 mov ecx, dword ptr [rcx+8] ;; bbWeight=1 PerfScore 4.00 G_M49819_IG03: ;; offset=0007H 85C9 test ecx, ecx 0F8E00010000 jle G_M49819_IG08 ;; bbWeight=1 PerfScore 1.25 G_M49819_IG04: ;; offset=000FH 4533C9 xor r9d, r9d 440FB610 movzx r10, byte ptr [rax] 4533DB xor r11d, r11d 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 0F87E9000000 ja G_M49819_IG08 4183FA30 cmp r10d, 48 752B jne SHORT G_M49819_IG07 0F1F4000 align ;; bbWeight=0.50 PerfScore 2.88 G_M49819_IG05: ;; offset=0030H 41FFC1 inc r9d 443BC9 cmp r9d, ecx 0F83DF000000 jae G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 4183FA30 cmp r10d, 48 74E6 je SHORT G_M49819_IG05 ;; bbWeight=4 PerfScore 20.00 G_M49819_IG06: ;; offset=004AH 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 0F87C4000000 ja G_M49819_IG10 ;; bbWeight=0.50 PerfScore 0.88 G_M49819_IG07: ;; offset=0057H 458D5AD0 lea r11d, [r10-48] 41FFC1 inc r9d 443BC9 cmp r9d, ecx 0F83B4000000 jae G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 0F879F000000 ja G_M49819_IG10 41FFC1 inc r9d 478D1C9B lea r11d, [r11+4*r11] 478D5C5AD0 lea r11d, [r10+2*r11-48] 443BC9 cmp r9d, ecx 0F838A000000 jae G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 7779 ja SHORT G_M49819_IG10 41FFC1 inc r9d 478D1C9B lea r11d, [r11+4*r11] 478D5C5AD0 lea r11d, [r10+2*r11-48] 443BC9 cmp r9d, ecx 7368 jae SHORT G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 7757 ja SHORT G_M49819_IG10 41FFC1 inc r9d 478D1C9B lea r11d, [r11+4*r11] 478D5C5AD0 lea r11d, [r10+2*r11-48] 443BC9 cmp r9d, ecx 7346 jae SHORT G_M49819_IG10 4D63D1 movsxd r10, r9d 460FB61410 movzx r10, byte ptr [rax+r10] 418D72D0 lea esi, [r10-48] 83FE09 cmp esi, 9 7735 ja SHORT G_M49819_IG10 41FFC1 inc r9d 478D1C9B lea r11d, [r11+4*r11] 478D5C5AD0 lea r11d, [r10+2*r11-48] 4181FBFFFF0000 cmp r11d, 0xFFFF 7714 ja SHORT G_M49819_IG08 443BC9 cmp r9d, ecx 731B jae SHORT G_M49819_IG10 4963C9 movsxd rcx, r9d 0FB60408 movzx rax, byte ptr [rax+rcx] 83C0D0 add eax, -48 83F809 cmp eax, 9 770C ja SHORT G_M49819_IG10 ;; bbWeight=0.50 PerfScore 17.50 G_M49819_IG08: ;; offset=010FH 33C0 xor eax, eax 418900 mov dword ptr [r8], eax 66C7020000 mov word ptr [rdx], 0 ;; bbWeight=0.50 PerfScore 1.12 G_M49819_IG09: ;; offset=0119H 5E pop rsi C3 ret ;; bbWeight=0.50 PerfScore 0.75 G_M49819_IG10: ;; offset=011BH 458908 mov dword ptr [r8], r9d 6644891A mov word ptr [rdx], r11w B801000000 mov eax, 1 ;; bbWeight=0.50 PerfScore 1.12 G_M49819_IG11: ;; offset=0127H 5E pop rsi C3 ret ;; bbWeight=0.50 PerfScore 0.75 ; Total bytes of code 297, prolog size 1, PerfScore 80.95, instruction count 85, allocated bytes for code 297 (MethodHash=1aab3d64) for method System.Buffers.Text.Utf8Parser:TryParseUInt16D(System.ReadOnlySpan`1[Byte],byref,byref):bool ; ============================================================
비교하기