Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
공백 변경 숨기기
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
텍스트 스타일
모양 변경
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
Untitled Diff
생성일
5년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
82 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
152 행
복사
117 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
192 행
복사
; Assembly listing for method testout1:Func_0_4_3():double
; Assembly listing for method testout1:Func_0_4_3():double
; Emitting BLENDED_CODE for X64 CPU with AVX - Unix
; Emitting BLENDED_CODE for X64 CPU with AVX - Unix
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; partially interruptible
; partially interruptible
; No matching PGO data
; No matching PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
복사
복사됨
복사
복사됨
;
*
V00 loc0 [V00,T00] (
0, 0
) struct (56)
zero-ref
do-not-enreg[SF]
ld-addr-op
;
V00 loc0 [V00,T00] (
23, 23
) struct (56)
[rbp-38H]
do-not-enreg[SF]
must-init
ld-addr-op
;* V01 loc1 [V01 ] ( 0, 0 ) double -> zero-ref single-def
;* V01 loc1 [V01 ] ( 0, 0 ) double -> zero-ref single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
;# V02 OutArgs [V02 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
복사
복사됨
복사
복사됨
; V03 tmp1 [V03,T0
7
] ( 2, 4 ) double -> mm0 "Inlining Arg"
; V03 tmp1 [V03,T0
4
] ( 2, 4 ) double -> mm0 "Inlining Arg"
; V04 cse0 [V04,T0
8
] ( 3, 3 ) double -> mm2 "CSE - aggressive"
; V04 cse0 [V04,T0
5
] ( 3, 3 ) double -> mm2 "CSE - aggressive"
; V05 cse1 [V05,T03] ( 4, 4 ) float -> mm
4
"CSE - aggressive"
; V05 cse1 [V05,T03] ( 4, 4 ) float -> mm
1
"CSE - aggressive"
;* V06 cse2 [V06,T02] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;* V06 cse2 [V06,T02] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
; V07 cse3 [V07,T01] ( 8, 8 ) ref -> rax "CSE - aggressive"
; V07 cse3 [V07,T01] ( 8, 8 ) ref -> rax "CSE - aggressive"
복사
복사됨
복사
복사됨
; V08 cse4 [V08,T04] ( 3, 3 ) double -> [rbp-08H] "CSE - aggressive"
; V09 cse5 [V09,T05] ( 3, 3 ) float -> [rbp-0CH] "CSE - aggressive"
; V10 cse6 [V10,T06] ( 3, 3 ) float -> [rbp-10H] "CSE - aggressive"
;
;
복사
복사됨
복사
복사됨
; Lcl frame size =
16
; Lcl frame size =
64
G_M51537_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
G_M51537_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push rbp
push rbp
복사
복사됨
복사
복사됨
sub rsp,
16
sub rsp,
64
vzeroupper
vzeroupper
복사
복사됨
복사
복사됨
lea rbp, [rsp+
10H]
lea rbp, [rsp+
40H]
;; bbWeight=1 PerfScore
2.75
xor eax, eax
mov qword ptr [rbp-38H], rax
vxorps xmm8, xmm8
vmovdqa xmmword ptr [rbp-30H], xmm8
vmovdqa xmmword ptr [rbp-20H], xmm8
vmovdqa xmmword ptr [rbp-
10H]
, xmm8
;; bbWeight=1 PerfScore
7.33
G_M51537_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M51537_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
vmovsd xmm0, qword ptr [reloc @RWD00]
vmovsd xmm0, qword ptr [reloc @RWD00]
복사
복사됨
복사
복사됨
vmovsd qword ptr [rbp-
0
8H], xmm0
vmovsd qword ptr [rbp-
3
8H], xmm0
vmovss xmm1
, dword ptr [reloc @RWD08]
vmovsd qword ptr [rbp-30H], xmm0
vmovss dword ptr [rbp-
0CH], xmm1
vmovss xmm0, dword ptr [reloc @RWD08]
vmovss xmm
2
, dword ptr [reloc @RWD
1
2]
vmovss dword ptr [rbp-28H], xmm0
vmovss dword ptr
[rbp-10H], xmm2
vmovss dword ptr [rbp-24H], xmm0
vmovss dword ptr [rbp-20H], xmm0
vmovss dword ptr [rbp-1CH], xmm0
vmovsd xmm0, qword ptr [reloc @RWD00]
vmovsd qword ptr [rbp-18H], xmm0
vmovsd qword ptr [rbp-10H], xmm0
vmovss xmm0
, dword ptr [reloc @RWD08]
vmovss dword ptr [rbp-
08H], xmm0
vmovss dword ptr [rbp-04H], xmm0
vmovsd xmm0, qword ptr [reloc @RWD16]
vmovsd qword ptr [rbp-38H], xmm0
vmovsd xmm0, qword ptr [reloc @RWD24]
vmovsd qword ptr [rbp-30H], xmm0
vmovss xmm
0
, dword ptr [reloc @RWD
3
2]
vmovss dword ptr
[rbp-28H], xmm0
vmovss xmm0, dword ptr [reloc @RWD36]
vmovss dword ptr [rbp-24H], xmm0
vmovss xmm0, dword ptr [reloc @RWD40]
vmovss dword ptr [rbp-20H], xmm0
vmovss xmm0, dword ptr [reloc @RWD44]
vmovss dword ptr [rbp-1CH], xmm0
vmovsd xmm0, qword ptr [reloc @RWD48]
vmovsd qword ptr [rbp-18H], xmm0
vmovsd xmm0, qword ptr [reloc @RWD56]
vmovsd qword ptr [rbp-10H], xmm0
vmovss xmm0, dword ptr [reloc @RWD64]
vmovss dword ptr [rbp-08H], xmm0
vmovss xmm0, dword ptr [reloc @RWD68]
vmovss dword ptr [rbp-04H], xmm0
mov rdi, 0xD1FFAB1E
mov rdi, 0xD1FFAB1E
mov esi, 1
mov esi, 1
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
mov rax, gword ptr [rax]
mov rax, gword ptr [rax]
; gcrRegs +[rax]
; gcrRegs +[rax]
mov rdi, 0xD1FFAB1E
mov rdi, 0xD1FFAB1E
mov qword ptr [rax+8], rdi
mov qword ptr [rax+8], rdi
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
; gcrRegs -[rax]
; gcrRegs -[rax]
mov rax, gword ptr [rax]
mov rax, gword ptr [rax]
; gcrRegs +[rax]
; gcrRegs +[rax]
복사
복사됨
복사
복사됨
v
mov
sd
xmm0, qword ptr [rbp-08H]
mov
rdi, 0xD1FFAB1E
v
mov
sd
qword ptr [rax+16],
xmm0
mov
qword ptr [rax+16],
rdi
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
; gcrRegs -[rax]
; gcrRegs -[rax]
mov rax, gword ptr [rax]
mov rax, gword ptr [rax]
; gcrRegs +[rax]
; gcrRegs +[rax]
mov dword ptr [rax+24], 0xD1FFAB1E
mov dword ptr [rax+24], 0xD1FFAB1E
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
; gcrRegs -[rax]
; gcrRegs -[rax]
mov rax, gword ptr [rax]
mov rax, gword ptr [rax]
; gcrRegs +[rax]
; gcrRegs +[rax]
복사
복사됨
복사
복사됨
v
mov
ss xmm1, dword ptr [rbp-0CH]
mov
dword ptr [rax+28],
0xD1FFAB1E
vmovss
dword ptr [rax+28],
xmm1
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
; gcrRegs -[rax]
; gcrRegs -[rax]
mov rax, gword ptr [rax]
mov rax, gword ptr [rax]
; gcrRegs +[rax]
; gcrRegs +[rax]
mov edi, 0xD1FFAB1E
mov edi, 0xD1FFAB1E
mov dword ptr [rax+32], edi
mov dword ptr [rax+32], edi
복사
복사됨
복사
복사됨
;; bbWeight=1 PerfScore 56.50
G_M51537_IG03: ; , extend
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
; gcrRegs -[rax]
; gcrRegs -[rax]
mov rax, gword ptr [rax]
mov rax, gword ptr [rax]
; gcrRegs +[rax]
; gcrRegs +[rax]
mov edi, 0xD1FFAB1E
mov edi, 0xD1FFAB1E
mov dword ptr [rax+36], edi
mov dword ptr [rax+36], edi
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
; gcrRegs -[rax]
; gcrRegs -[rax]
mov rax, gword ptr [rax]
mov rax, gword ptr [rax]
; gcrRegs +[rax]
; gcrRegs +[rax]
mov rdi, 0xD1FFAB1E
mov rdi, 0xD1FFAB1E
mov qword ptr [rax+40], rdi
mov qword ptr [rax+40], rdi
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
; gcrRegs -[rax]
; gcrRegs -[rax]
mov rax, gword ptr [rax]
mov rax, gword ptr [rax]
; gcrRegs +[rax]
; gcrRegs +[rax]
mov rdi, 0xD1FFAB1E
mov rdi, 0xD1FFAB1E
mov qword ptr [rax+48], rdi
mov qword ptr [rax+48], rdi
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
; gcrRegs -[rax]
; gcrRegs -[rax]
mov rax, gword ptr [rax]
mov rax, gword ptr [rax]
; gcrRegs +[rax]
; gcrRegs +[rax]
mov dword ptr [rax+56], 0xD1FFAB1E
mov dword ptr [rax+56], 0xD1FFAB1E
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
; gcrRegs -[rax]
; gcrRegs -[rax]
mov rax, gword ptr [rax]
mov rax, gword ptr [rax]
; gcrRegs +[rax]
; gcrRegs +[rax]
복사
복사됨
복사
복사됨
v
mov
ss xmm2, dword ptr [rbp-10H]
mov
dword ptr [rax+60],
0xD1FFAB1E
vmovss
dword ptr [rax+60],
xmm2
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
; gcrRegs -[rax]
; gcrRegs -[rax]
mov rax, gword ptr [rax]
mov rax, gword ptr [rax]
; gcrRegs +[rax]
; gcrRegs +[rax]
복사
복사됨
복사
복사됨
vmovss xmm
3
, dword ptr [rax+56]
vmovss xmm
0
, dword ptr [rax+56]
vaddss xmm
3
, xmm
3
, dword ptr [reloc @
RWD16
]
vaddss xmm
0
, xmm
0
, dword ptr [reloc @
RWD72
]
vmulss xmm
3
, xmm
3
, dword ptr [reloc @
RWD20
]
vmulss xmm
0
, xmm
0
, dword ptr [reloc @
RWD76
]
vmovss xmm
4
, dword ptr [rax+24]
vmovss xmm
1
, dword ptr [rax+24]
;; bbWeight=1 PerfScore 63.50
vmulss xmm
0
, xmm
0
, xmm
1
G_M51537_IG03: ; , extend
vsubss xmm
2
, xmm1
, dword ptr [rbp-24H]
vmulss xmm
3
, xmm
3
, xmm
4
vdivss xmm1, xmm
1
, xmm
2
vsubss xmm
1, xmm4
, xmm1
vmulss xmm
0
, xmm
0
, xmm1
vdivss xmm1, xmm
4
, xmm
1
vmovss xmm
1
, dword ptr [rax+36]
vmulss xmm
1
, xmm
3
, xmm1
vm
ov
ss xmm2,
dword ptr [rax+32]
vmovss xmm
3
, dword ptr [rax+36]
vmulss
xmm2, xmm
2, dword ptr [rbp-04H]
vm
ul
ss xmm2,
xmm2,
dword ptr [rax+32]
vaddss
xmm2, xmm
3, xmm2
vaddss xmm1, xmm1, xmm2
vaddss xmm1, xmm1, xmm2
복사
복사됨
복사
복사됨
vcvtss2sd xmm
1
, xmm
1
vaddss xmm0, xmm0, xmm1
vmovsd xmm
2
, qword ptr [rax+48]
vcvtss2sd xmm
0
, xmm
0
vdivsd xmm
0
, xmm
2, xmm0
vmovsd xmm
1
, qword ptr [rax+48]
vdivsd xmm
1
, xmm
1, qword ptr [rbp-30H]
vmovsd xmm2, qword ptr [rax+8]
vmovsd xmm2, qword ptr [rax+8]
복사
복사됨
복사
복사됨
vaddsd xmm3, xmm2, qword ptr [reloc @
RWD00
]
vaddsd xmm3, xmm2, qword ptr [reloc @
RWD24
]
vmulsd xmm2, xmm2, qword ptr [rax+40]
vmulsd xmm2, xmm2, qword ptr [rax+40]
vsubsd xmm2, xmm3, xmm2
vsubsd xmm2, xmm3, xmm2
복사
복사됨
복사
복사됨
vdivsd xmm
0
, xmm
0
, xmm2
vdivsd xmm
1
, xmm
1
, xmm2
vmulsd xmm0, xmm
1
, xmm
0
vmulsd xmm0, xmm
0
, xmm
1
;; bbWeight=1 PerfScore
82.00
;; bbWeight=1 PerfScore
120.25
G_M51537_IG04: ; , epilog, nogc, extend
G_M51537_IG04: ; , epilog, nogc, extend
복사
복사됨
복사
복사됨
add rsp,
16
add rsp,
64
pop rbp
pop rbp
ret
ret
;; bbWeight=1 PerfScore 1.75
;; bbWeight=1 PerfScore 1.75
복사
복사됨
복사
복사됨
RWD00 dq
40B0000000000000h ; 4096
RWD00 dq
3FF0000000000000h ; 1
RWD08
dd 35F80000h ; 1.84774e-06
RWD08 dd 3F800000h ; 1
RWD12
dd 3D400000h ; 0.046875
RWD12 dd 00000000h
RWD16
dd 41000000h ; 8
RWD16 dq C0AFFFFFFC000000h ; -4095.99997
RWD20
dd 45000000h ; 2048
RWD24 dq
40B0000000000000h ; 4096
RWD32 dd 36000000h ; 1.90735e-06
RWD36
dd 35F80000h ; 1.84774e-06
RWD40 dd C3800000h ; -256
RWD44 dd C0800000h ; -4
RWD48 dq 3E30000002000000h ; 3.72529033e-09
RWD56 dq 40C0000000000000h ; 8192
RWD64 dd 43780000h ; 248
RWD68
dd 3D400000h ; 0.046875
RWD72
dd 41000000h ; 8
RWD76
dd 45000000h ; 2048
복사
복사됨
복사
복사됨
; Total bytes of code
426
, prolog size
13
, PerfScore
195.90
, instruction count
77
, allocated bytes for code
459
(MethodHash=32a736ae) for method testout1:Func_0_4_3():double
; Total bytes of code
630
, prolog size
39
, PerfScore
254.73
, instruction count
110
, allocated bytes for code
689
(MethodHash=32a736ae) for method testout1:Func_0_4_3():double
; ============================================================
; ============================================================
Unwind Info:
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Version : 1
Flags : 0x00
Flags : 0x00
SizeOfProlog : 0x05
SizeOfProlog : 0x05
CountOfUnwindCodes: 2
CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
UnwindCodes :
복사
복사됨
복사
복사됨
CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo:
1
* 8 + 8 =
16
= 0x
1
0
CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo:
7
* 8 + 8 =
64
= 0x
4
0
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
저장된 비교 결과
원본
파일 열기
; Assembly listing for method testout1:Func_0_4_3():double ; Emitting BLENDED_CODE for X64 CPU with AVX - Unix ; optimized code ; rbp based frame ; partially interruptible ; No matching PGO data ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ;* V00 loc0 [V00,T00] ( 0, 0 ) struct (56) zero-ref do-not-enreg[SF] ld-addr-op ;* V01 loc1 [V01 ] ( 0, 0 ) double -> zero-ref single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace" ; V03 tmp1 [V03,T07] ( 2, 4 ) double -> mm0 "Inlining Arg" ; V04 cse0 [V04,T08] ( 3, 3 ) double -> mm2 "CSE - aggressive" ; V05 cse1 [V05,T03] ( 4, 4 ) float -> mm4 "CSE - aggressive" ;* V06 cse2 [V06,T02] ( 0, 0 ) long -> zero-ref "CSE - aggressive" ; V07 cse3 [V07,T01] ( 8, 8 ) ref -> rax "CSE - aggressive" ; V08 cse4 [V08,T04] ( 3, 3 ) double -> [rbp-08H] "CSE - aggressive" ; V09 cse5 [V09,T05] ( 3, 3 ) float -> [rbp-0CH] "CSE - aggressive" ; V10 cse6 [V10,T06] ( 3, 3 ) float -> [rbp-10H] "CSE - aggressive" ; ; Lcl frame size = 16 G_M51537_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push rbp sub rsp, 16 vzeroupper lea rbp, [rsp+10H] ;; bbWeight=1 PerfScore 2.75 G_M51537_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref vmovsd xmm0, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-08H], xmm0 vmovss xmm1, dword ptr [reloc @RWD08] vmovss dword ptr [rbp-0CH], xmm1 vmovss xmm2, dword ptr [reloc @RWD12] vmovss dword ptr [rbp-10H], xmm2 mov rdi, 0xD1FFAB1E mov esi, 1 call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE mov rax, 0xD1FFAB1E mov rax, gword ptr [rax] ; gcrRegs +[rax] mov rdi, 0xD1FFAB1E mov qword ptr [rax+8], rdi mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] vmovsd xmm0, qword ptr [rbp-08H] vmovsd qword ptr [rax+16], xmm0 mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] mov dword ptr [rax+24], 0xD1FFAB1E mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] vmovss xmm1, dword ptr [rbp-0CH] vmovss dword ptr [rax+28], xmm1 mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] mov edi, 0xD1FFAB1E mov dword ptr [rax+32], edi mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] mov edi, 0xD1FFAB1E mov dword ptr [rax+36], edi mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] mov rdi, 0xD1FFAB1E mov qword ptr [rax+40], rdi mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] mov rdi, 0xD1FFAB1E mov qword ptr [rax+48], rdi mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] mov dword ptr [rax+56], 0xD1FFAB1E mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] vmovss xmm2, dword ptr [rbp-10H] vmovss dword ptr [rax+60], xmm2 mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] vmovss xmm3, dword ptr [rax+56] vaddss xmm3, xmm3, dword ptr [reloc @RWD16] vmulss xmm3, xmm3, dword ptr [reloc @RWD20] vmovss xmm4, dword ptr [rax+24] ;; bbWeight=1 PerfScore 63.50 G_M51537_IG03: ; , extend vmulss xmm3, xmm3, xmm4 vsubss xmm1, xmm4, xmm1 vdivss xmm1, xmm4, xmm1 vmulss xmm1, xmm3, xmm1 vmovss xmm3, dword ptr [rax+36] vmulss xmm2, xmm2, dword ptr [rax+32] vaddss xmm2, xmm3, xmm2 vaddss xmm1, xmm1, xmm2 vcvtss2sd xmm1, xmm1 vmovsd xmm2, qword ptr [rax+48] vdivsd xmm0, xmm2, xmm0 vmovsd xmm2, qword ptr [rax+8] vaddsd xmm3, xmm2, qword ptr [reloc @RWD00] vmulsd xmm2, xmm2, qword ptr [rax+40] vsubsd xmm2, xmm3, xmm2 vdivsd xmm0, xmm0, xmm2 vmulsd xmm0, xmm1, xmm0 ;; bbWeight=1 PerfScore 82.00 G_M51537_IG04: ; , epilog, nogc, extend add rsp, 16 pop rbp ret ;; bbWeight=1 PerfScore 1.75 RWD00 dq 40B0000000000000h ; 4096 RWD08 dd 35F80000h ; 1.84774e-06 RWD12 dd 3D400000h ; 0.046875 RWD16 dd 41000000h ; 8 RWD20 dd 45000000h ; 2048 ; Total bytes of code 426, prolog size 13, PerfScore 195.90, instruction count 77, allocated bytes for code 459 (MethodHash=32a736ae) for method testout1:Func_0_4_3():double ; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x05 CountOfUnwindCodes: 2 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10 CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
수정본
파일 열기
; Assembly listing for method testout1:Func_0_4_3():double ; Emitting BLENDED_CODE for X64 CPU with AVX - Unix ; optimized code ; rbp based frame ; partially interruptible ; No matching PGO data ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 loc0 [V00,T00] ( 23, 23 ) struct (56) [rbp-38H] do-not-enreg[SF] must-init ld-addr-op ;* V01 loc1 [V01 ] ( 0, 0 ) double -> zero-ref single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace" ; V03 tmp1 [V03,T04] ( 2, 4 ) double -> mm0 "Inlining Arg" ; V04 cse0 [V04,T05] ( 3, 3 ) double -> mm2 "CSE - aggressive" ; V05 cse1 [V05,T03] ( 4, 4 ) float -> mm1 "CSE - aggressive" ;* V06 cse2 [V06,T02] ( 0, 0 ) long -> zero-ref "CSE - aggressive" ; V07 cse3 [V07,T01] ( 8, 8 ) ref -> rax "CSE - aggressive" ; ; Lcl frame size = 64 G_M51537_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push rbp sub rsp, 64 vzeroupper lea rbp, [rsp+40H] xor eax, eax mov qword ptr [rbp-38H], rax vxorps xmm8, xmm8 vmovdqa xmmword ptr [rbp-30H], xmm8 vmovdqa xmmword ptr [rbp-20H], xmm8 vmovdqa xmmword ptr [rbp-10H], xmm8 ;; bbWeight=1 PerfScore 7.33 G_M51537_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref vmovsd xmm0, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-38H], xmm0 vmovsd qword ptr [rbp-30H], xmm0 vmovss xmm0, dword ptr [reloc @RWD08] vmovss dword ptr [rbp-28H], xmm0 vmovss dword ptr [rbp-24H], xmm0 vmovss dword ptr [rbp-20H], xmm0 vmovss dword ptr [rbp-1CH], xmm0 vmovsd xmm0, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-18H], xmm0 vmovsd qword ptr [rbp-10H], xmm0 vmovss xmm0, dword ptr [reloc @RWD08] vmovss dword ptr [rbp-08H], xmm0 vmovss dword ptr [rbp-04H], xmm0 vmovsd xmm0, qword ptr [reloc @RWD16] vmovsd qword ptr [rbp-38H], xmm0 vmovsd xmm0, qword ptr [reloc @RWD24] vmovsd qword ptr [rbp-30H], xmm0 vmovss xmm0, dword ptr [reloc @RWD32] vmovss dword ptr [rbp-28H], xmm0 vmovss xmm0, dword ptr [reloc @RWD36] vmovss dword ptr [rbp-24H], xmm0 vmovss xmm0, dword ptr [reloc @RWD40] vmovss dword ptr [rbp-20H], xmm0 vmovss xmm0, dword ptr [reloc @RWD44] vmovss dword ptr [rbp-1CH], xmm0 vmovsd xmm0, qword ptr [reloc @RWD48] vmovsd qword ptr [rbp-18H], xmm0 vmovsd xmm0, qword ptr [reloc @RWD56] vmovsd qword ptr [rbp-10H], xmm0 vmovss xmm0, dword ptr [reloc @RWD64] vmovss dword ptr [rbp-08H], xmm0 vmovss xmm0, dword ptr [reloc @RWD68] vmovss dword ptr [rbp-04H], xmm0 mov rdi, 0xD1FFAB1E mov esi, 1 call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE mov rax, 0xD1FFAB1E mov rax, gword ptr [rax] ; gcrRegs +[rax] mov rdi, 0xD1FFAB1E mov qword ptr [rax+8], rdi mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] mov rdi, 0xD1FFAB1E mov qword ptr [rax+16], rdi mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] mov dword ptr [rax+24], 0xD1FFAB1E mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] mov dword ptr [rax+28], 0xD1FFAB1E mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] mov edi, 0xD1FFAB1E mov dword ptr [rax+32], edi ;; bbWeight=1 PerfScore 56.50 G_M51537_IG03: ; , extend mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] mov edi, 0xD1FFAB1E mov dword ptr [rax+36], edi mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] mov rdi, 0xD1FFAB1E mov qword ptr [rax+40], rdi mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] mov rdi, 0xD1FFAB1E mov qword ptr [rax+48], rdi mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] mov dword ptr [rax+56], 0xD1FFAB1E mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] mov dword ptr [rax+60], 0xD1FFAB1E mov rax, 0xD1FFAB1E ; gcrRegs -[rax] mov rax, gword ptr [rax] ; gcrRegs +[rax] vmovss xmm0, dword ptr [rax+56] vaddss xmm0, xmm0, dword ptr [reloc @RWD72] vmulss xmm0, xmm0, dword ptr [reloc @RWD76] vmovss xmm1, dword ptr [rax+24] vmulss xmm0, xmm0, xmm1 vsubss xmm2, xmm1, dword ptr [rbp-24H] vdivss xmm1, xmm1, xmm2 vmulss xmm0, xmm0, xmm1 vmovss xmm1, dword ptr [rax+36] vmovss xmm2, dword ptr [rax+32] vmulss xmm2, xmm2, dword ptr [rbp-04H] vaddss xmm1, xmm1, xmm2 vaddss xmm0, xmm0, xmm1 vcvtss2sd xmm0, xmm0 vmovsd xmm1, qword ptr [rax+48] vdivsd xmm1, xmm1, qword ptr [rbp-30H] vmovsd xmm2, qword ptr [rax+8] vaddsd xmm3, xmm2, qword ptr [reloc @RWD24] vmulsd xmm2, xmm2, qword ptr [rax+40] vsubsd xmm2, xmm3, xmm2 vdivsd xmm1, xmm1, xmm2 vmulsd xmm0, xmm0, xmm1 ;; bbWeight=1 PerfScore 120.25 G_M51537_IG04: ; , epilog, nogc, extend add rsp, 64 pop rbp ret ;; bbWeight=1 PerfScore 1.75 RWD00 dq 3FF0000000000000h ; 1 RWD08 dd 3F800000h ; 1 RWD12 dd 00000000h RWD16 dq C0AFFFFFFC000000h ; -4095.99997 RWD24 dq 40B0000000000000h ; 4096 RWD32 dd 36000000h ; 1.90735e-06 RWD36 dd 35F80000h ; 1.84774e-06 RWD40 dd C3800000h ; -256 RWD44 dd C0800000h ; -4 RWD48 dq 3E30000002000000h ; 3.72529033e-09 RWD56 dq 40C0000000000000h ; 8192 RWD64 dd 43780000h ; 248 RWD68 dd 3D400000h ; 0.046875 RWD72 dd 41000000h ; 8 RWD76 dd 45000000h ; 2048 ; Total bytes of code 630, prolog size 39, PerfScore 254.73, instruction count 110, allocated bytes for code 689 (MethodHash=32a736ae) for method testout1:Func_0_4_3():double ; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x05 CountOfUnwindCodes: 2 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 7 * 8 + 8 = 64 = 0x40 CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
비교하기