Diff
checker
Text
Text
Images
Documents
Excel
Folders
Legal
Enterprise
Desktop
Pricing
Sign in
Download Diffchecker Desktop
Compare text
Find the difference between two text files
Tools
History
Real-time editor
Hide whitespace changes
Hide unchanged lines
Disable line wrap
Layout
Split
Unified
Diff precision
Smart
Word
Char
Text styles
Change appearance
Syntax highlighting
Choose syntax
Ignore
Transform text
Go to first change
Edit input
Diffchecker Desktop
The most secure way to run Diffchecker. Get the Diffchecker Desktop app: your diffs never leave your computer!
Get Desktop
Untitled Diff
Created
5 years ago
Diff never expires
Clear
Export
Share
Explain
82 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
152 lines
Copy
117 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
192 lines
Copy
; 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
;
;
Copy
Copied
Copy
Copied
;
*
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"
Copy
Copied
Copy
Copied
; 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"
Copy
Copied
Copy
Copied
; 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"
;
;
Copy
Copied
Copy
Copied
; 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
Copy
Copied
Copy
Copied
sub rsp,
16
sub rsp,
64
vzeroupper
vzeroupper
Copy
Copied
Copy
Copied
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]
Copy
Copied
Copy
Copied
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]
Copy
Copied
Copy
Copied
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]
Copy
Copied
Copy
Copied
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
Copy
Copied
Copy
Copied
;; 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]
Copy
Copied
Copy
Copied
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]
Copy
Copied
Copy
Copied
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
Copy
Copied
Copy
Copied
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]
Copy
Copied
Copy
Copied
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
Copy
Copied
Copy
Copied
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
Copy
Copied
Copy
Copied
add rsp,
16
add rsp,
64
pop rbp
pop rbp
ret
ret
;; bbWeight=1 PerfScore 1.75
;; bbWeight=1 PerfScore 1.75
Copy
Copied
Copy
Copied
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
Copy
Copied
Copy
Copied
; 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 :
Copy
Copied
Copy
Copied
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)
Saved diffs
Original text
Open file
; 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)
Changed text
Open file
; 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)
Find difference