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
30 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
269 lines
Copy
27 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
268 lines
Copy
; Assembly listing for method Burgers:GetCalculated0(int,int,double,double,double,System.Double[]):System.Double[]
; Assembly listing for method Burgers:GetCalculated0(int,int,double,double,double,System.Double[]):System.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
; fully interruptible
; fully interruptible
; No matching PGO data
; No matching PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 arg0 [V00,T13] ( 4, 7 ) int -> r14 single-def
; V00 arg0 [V00,T13] ( 4, 7 ) int -> r14 single-def
; V01 arg1 [V01,T10] ( 5, 11 ) int -> rbx single-def
; V01 arg1 [V01,T10] ( 5, 11 ) int -> rbx single-def
; V02 arg2 [V02,T19] ( 6, 27 ) double -> [rbp-30H] single-def
; V02 arg2 [V02,T19] ( 6, 27 ) double -> [rbp-30H] single-def
; V03 arg3 [V03,T20] ( 6, 27 ) double -> [rbp-38H] single-def
; V03 arg3 [V03,T20] ( 6, 27 ) double -> [rbp-38H] single-def
; V04 arg4 [V04,T29] ( 3, 3 ) double -> [rbp-40H] single-def
; V04 arg4 [V04,T29] ( 3, 3 ) double -> [rbp-40H] single-def
; V05 arg5 [V05,T15] ( 3, 3 ) ref -> r15 class-hnd single-def
; V05 arg5 [V05,T15] ( 3, 3 ) ref -> r15 class-hnd single-def
; V06 loc0 [V06,T07] ( 8, 32 ) ref -> r13 class-hnd exact single-def
; V06 loc0 [V06,T07] ( 8, 32 ) ref -> r13 class-hnd exact single-def
; V07 loc1 [V07,T11] ( 4, 13 ) int -> r15
; V07 loc1 [V07,T11] ( 4, 13 ) int -> r15
; V08 loc2 [V08,T01] ( 13, 88 ) ref -> [rbp-60H] class-hnd exact spill-single-def
; V08 loc2 [V08,T01] ( 13, 88 ) ref -> [rbp-60H] class-hnd exact spill-single-def
; V09 loc3 [V09,T00] ( 8,116 ) int -> rax
; V09 loc3 [V09,T00] ( 8,116 ) int -> rax
;# V10 OutArgs [V10 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
;# V10 OutArgs [V10 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
; V11 tmp1 [V11,T17] ( 2, 64 ) double -> mm0 "Strict ordering of exceptions for Array store"
; V11 tmp1 [V11,T17] ( 2, 64 ) double -> mm0 "Strict ordering of exceptions for Array store"
; V12 tmp2 [V12,T25] ( 2, 16 ) double -> mm0 "Strict ordering of exceptions for Array store"
; V12 tmp2 [V12,T25] ( 2, 16 ) double -> mm0 "Strict ordering of exceptions for Array store"
; V13 tmp3 [V13,T26] ( 2, 16 ) double -> mm0 "Strict ordering of exceptions for Array store"
; V13 tmp3 [V13,T26] ( 2, 16 ) double -> mm0 "Strict ordering of exceptions for Array store"
Copy
Copied
Copy
Copied
; V14 cse0 [V14,T2
2
] ( 4, 25 ) double -> [rbp-48H] "CSE - aggressive"
; V14 cse0 [V14,T2
1
] ( 4, 25 ) double -> [rbp-48H] "CSE - aggressive"
; V15 cse1 [V15,T18] ( 3, 48 ) double -> mm5 "CSE - aggressive"
; V15 cse1 [V15,T18] ( 3, 48 ) double -> mm5 "CSE - aggressive"
Copy
Copied
Copy
Copied
; V16 cse2 [V16,T2
3
] (
5, 20
) double -> mm0 "CSE - aggressive"
; V16 cse2 [V16,T2
2
] (
6, 24
) double -> mm0 "CSE - aggressive"
; V17 cse3 [V17,T27] ( 3, 12 ) double -> mm4 "CSE - aggressive"
; V17 cse3 [V17,T27] ( 3, 12 ) double -> mm4 "CSE - aggressive"
; V18 cse4 [V18,T28] ( 3, 12 ) double -> mm5 "CSE - aggressive"
; V18 cse4 [V18,T28] ( 3, 12 ) double -> mm5 "CSE - aggressive"
; V19 cse5 [V19,T16] ( 5, 80 ) double -> mm0 "CSE - aggressive"
; V19 cse5 [V19,T16] ( 5, 80 ) double -> mm0 "CSE - aggressive"
Copy
Copied
Copy
Copied
; V20 cse6 [V20,T2
4
] ( 5, 20 ) double -> mm0 "CSE - aggressive"
; V20 cse6 [V20,T2
3
] ( 5, 20 ) double -> mm0 "CSE - aggressive"
; V21 cse7 [V21,T09] ( 4, 16 ) long -> rax "CSE - aggressive"
; V21 cse7 [V21,T09] ( 4, 16 ) long -> rax "CSE - aggressive"
; V22 cse8 [V22,T02] ( 9, 72 ) int -> rdx "CSE - aggressive"
; V22 cse8 [V22,T02] ( 9, 72 ) int -> rdx "CSE - aggressive"
; V23 cse9 [V23,T06] ( 6, 36 ) int -> rdi "CSE - aggressive"
; V23 cse9 [V23,T06] ( 6, 36 ) int -> rdi "CSE - aggressive"
Copy
Copied
Copy
Copied
; V24 cse10 [V24,
T21
] (
5, 26
) double -> [rbp-50H] spill-single-def "CSE - aggressive"
; V24 cse10 [V24,
T04] ( 3, 48 ) int -> r9 "CSE - aggressive"
; V25 cse11 [V25,T04] ( 3, 48 ) int -> r9 "CSE - aggressive"
; V25 cse11 [V25,T24
] (
3, 18
) double -> [rbp-50H] spill-single-def "CSE - aggressive"
; V26 cse12 [V26,T03] ( 4, 64 ) int -> r9 "CSE - aggressive"
; V26 cse12 [V26,T03] ( 4, 64 ) int -> r9 "CSE - aggressive"
; V27 cse13 [V27,T08] ( 6, 30 ) int -> [rbp-54H] spill-single-def "CSE - aggressive"
; V27 cse13 [V27,T08] ( 6, 30 ) int -> [rbp-54H] spill-single-def "CSE - aggressive"
; V28 cse14 [V28,T12] ( 3, 12 ) int -> r8 "CSE - aggressive"
; V28 cse14 [V28,T12] ( 3, 12 ) int -> r8 "CSE - aggressive"
; V29 cse15 [V29,T05] ( 3, 48 ) long -> r8 "CSE - aggressive"
; V29 cse15 [V29,T05] ( 3, 48 ) long -> r8 "CSE - aggressive"
; V30 cse16 [V30,T14] ( 3, 6 ) long -> r12 "CSE - aggressive"
; V30 cse16 [V30,T14] ( 3, 6 ) long -> r12 "CSE - aggressive"
; V31 rat0 [V31,T30] ( 2, 4 ) double -> mm0 "argument with side effect"
; V31 rat0 [V31,T30] ( 2, 4 ) double -> mm0 "argument with side effect"
; V32 rat1 [V32,T31] ( 2, 4 ) double -> mm4 "argument with side effect"
; V32 rat1 [V32,T31] ( 2, 4 ) double -> mm4 "argument with side effect"
;
;
; Lcl frame size = 56
; Lcl frame size = 56
G_M27330_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
G_M27330_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
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, 56
sub rsp, 56
vzeroupper
vzeroupper
lea rbp, [rsp+60H]
lea rbp, [rsp+60H]
mov r14d, edi
mov r14d, edi
mov ebx, esi
mov ebx, esi
mov r15, rdx
mov r15, rdx
; gcrRegs +[r15]
; gcrRegs +[r15]
vmovsd qword ptr [rbp-30H], xmm0
vmovsd qword ptr [rbp-30H], xmm0
vmovsd qword ptr [rbp-38H], xmm1
vmovsd qword ptr [rbp-38H], xmm1
vmovsd qword ptr [rbp-40H], xmm2
vmovsd qword ptr [rbp-40H], xmm2
;; bbWeight=1 PerfScore 10.00
;; bbWeight=1 PerfScore 10.00
G_M27330_IG02: ; gcrefRegs=00008000 {r15}, byrefRegs=00000000 {}, byref
G_M27330_IG02: ; gcrefRegs=00008000 {r15}, byrefRegs=00000000 {}, byref
movsxd r12, ebx
movsxd r12, ebx
mov rsi, r12
mov rsi, r12
mov rdi, 0xD1FFAB1E ; System.Double[]
mov rdi, 0xD1FFAB1E ; System.Double[]
call CORINFO_HELP_NEWARR_1_VC
call CORINFO_HELP_NEWARR_1_VC
; gcrRegs +[rax]
; gcrRegs +[rax]
; gcr arg pop 0
; gcr arg pop 0
mov r13, rax
mov r13, rax
; gcrRegs +[r13]
; gcrRegs +[r13]
mov eax, dword ptr [r13+8]
mov eax, dword ptr [r13+8]
; gcrRegs -[rax]
; gcrRegs -[rax]
mov dword ptr [rbp-54H], eax
mov dword ptr [rbp-54H], eax
mov edx, eax
mov edx, eax
mov rdi, r15
mov rdi, r15
; gcrRegs +[rdi]
; gcrRegs +[rdi]
mov rsi, r13
mov rsi, r13
; gcrRegs +[rsi]
; gcrRegs +[rsi]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcrRegs -[rsi rdi r15]
; gcrRegs -[rsi rdi r15]
; gcr arg pop 0
; gcr arg pop 0
xor r15d, r15d
xor r15d, r15d
test r14d, r14d
test r14d, r14d
jle G_M27330_IG07
jle G_M27330_IG07
vmovsd xmm1, qword ptr [rbp-38H]
vmovsd xmm1, qword ptr [rbp-38H]
vmulsd xmm0, xmm1, qword ptr [rbp-40H]
vmulsd xmm0, xmm1, qword ptr [rbp-40H]
vdivsd xmm0, xmm0, qword ptr [rbp-30H]
vdivsd xmm0, xmm0, qword ptr [rbp-30H]
vmovsd xmm3, qword ptr [reloc @RWD00]
vmovsd xmm3, qword ptr [reloc @RWD00]
vmovsd qword ptr [rbp-50H], xmm3
vmovsd qword ptr [rbp-50H], xmm3
vmovaps xmm4, xmm3
vmovaps xmm4, xmm3
vmovaps xmm1, xmm4
vmovaps xmm1, xmm4
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcr arg pop 0
; gcr arg pop 0
vmovsd qword ptr [rbp-48H], xmm0
vmovsd qword ptr [rbp-48H], xmm0
;; bbWeight=1 PerfScore 33.75
;; bbWeight=1 PerfScore 33.75
G_M27330_IG03: ; gcrefRegs=00002000 {r13}, byrefRegs=00000000 {}, byref, isz
G_M27330_IG03: ; gcrefRegs=00002000 {r13}, byrefRegs=00000000 {}, byref, isz
mov rsi, r12
mov rsi, r12
mov rdi, 0xD1FFAB1E ; System.Double[]
mov rdi, 0xD1FFAB1E ; System.Double[]
call CORINFO_HELP_NEWARR_1_VC
call CORINFO_HELP_NEWARR_1_VC
; gcrRegs +[rax]
; gcrRegs +[rax]
; gcr arg pop 0
; gcr arg pop 0
mov gword ptr [rbp-60H], rax
mov gword ptr [rbp-60H], rax
; GC ptr vars +{V08}
; GC ptr vars +{V08}
mov edx, dword ptr [rbp-54H]
mov edx, dword ptr [rbp-54H]
mov rdi, r13
mov rdi, r13
; gcrRegs +[rdi]
; gcrRegs +[rdi]
mov rsi, rax
mov rsi, rax
; gcrRegs +[rsi]
; gcrRegs +[rsi]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcrRegs -[rax rsi rdi]
; gcrRegs -[rax rsi rdi]
; gcr arg pop 0
; gcr arg pop 0
mov eax, 1
mov eax, 1
lea edi, [rbx-1]
lea edi, [rbx-1]
cmp edi, 1
cmp edi, 1
jle G_M27330_IG05
jle G_M27330_IG05
mov rsi, gword ptr [rbp-60H]
mov rsi, gword ptr [rbp-60H]
; gcrRegs +[rsi]
; gcrRegs +[rsi]
mov edx, dword ptr [rsi+8]
mov edx, dword ptr [rsi+8]
align [0 bytes]
align [0 bytes]
;; bbWeight=4 PerfScore 40.00
;; bbWeight=4 PerfScore 40.00
G_M27330_IG04: ; gcrefRegs=00002040 {rsi r13}, byrefRegs=00000000 {}, loop=IG04, byref
G_M27330_IG04: ; gcrefRegs=00002040 {rsi r13}, byrefRegs=00000000 {}, loop=IG04, byref
cmp eax, edx
cmp eax, edx
jae G_M27330_IG09
jae G_M27330_IG09
movsxd r8, eax
movsxd r8, eax
vmovsd xmm0, qword ptr [rsi+8*r8+16]
vmovsd xmm0, qword ptr [rsi+8*r8+16]
vmovsd xmm1, qword ptr [rbp-38H]
vmovsd xmm1, qword ptr [rbp-38H]
vmulsd xmm2, xmm0, xmm1
vmulsd xmm2, xmm0, xmm1
vmovsd xmm3, qword ptr [rbp-30H]
vmovsd xmm3, qword ptr [rbp-30H]
vdivsd xmm2, xmm2, xmm3
vdivsd xmm2, xmm2, xmm3
lea r9d, [rax-1]
lea r9d, [rax-1]
cmp r9d, edx
cmp r9d, edx
jae G_M27330_IG09
jae G_M27330_IG09
movsxd r9, r9d
movsxd r9, r9d
vmovsd xmm5, qword ptr [rsi+8*r9+16]
vmovsd xmm5, qword ptr [rsi+8*r9+16]
Copy
Copied
Copy
Copied
vsubsd xmm
7
, xmm0, xmm5
vsubsd xmm
6
, xmm0, xmm5
vmulsd xmm2, xmm2, xmm
7
vmulsd xmm2, xmm2, xmm
6
vsubsd xmm2, xmm0, xmm2
vsubsd xmm2, xmm0, xmm2
lea r9d, [rax+1]
lea r9d, [rax+1]
cmp r9d, edx
cmp r9d, edx
jae G_M27330_IG09
jae G_M27330_IG09
movsxd r10, r9d
movsxd r10, r9d
Copy
Copied
Copy
Copied
vmovsd xmm
7
, qword ptr [rsi+8*r10+16]
vmovsd xmm
6
, qword ptr [rsi+8*r10+16]
vmovsd xmm
6
, qword ptr [rbp-50H]
vmovsd xmm
7
, qword ptr [rbp-50H]
vmulsd xmm0, xmm0, xmm
6
vmulsd xmm0, xmm0, xmm
7
vsubsd xmm0, xmm
7
, xmm0
vsubsd xmm0, xmm
6
, xmm0
vaddsd xmm0, xmm0, xmm5
vaddsd xmm0, xmm0, xmm5
vmovsd xmm4, qword ptr [rbp-48H]
vmovsd xmm4, qword ptr [rbp-48H]
vmulsd xmm0, xmm0, xmm4
vmulsd xmm0, xmm0, xmm4
vaddsd xmm0, xmm2, xmm0
vaddsd xmm0, xmm2, xmm0
mov ecx, dword ptr [rbp-54H]
mov ecx, dword ptr [rbp-54H]
cmp eax, ecx
cmp eax, ecx
jae G_M27330_IG09
jae G_M27330_IG09
vmovsd qword ptr [r13+8*r8+16], xmm0
vmovsd qword ptr [r13+8*r8+16], xmm0
mov eax, r9d
mov eax, r9d
cmp eax, edi
cmp eax, edi
vmovsd qword ptr [rbp-30H], xmm3
vmovsd qword ptr [rbp-30H], xmm3
vmovsd qword ptr [rbp-38H], xmm1
vmovsd qword ptr [rbp-38H], xmm1
vmovsd qword ptr [rbp-48H], xmm4
vmovsd qword ptr [rbp-48H], xmm4
jl G_M27330_IG04
jl G_M27330_IG04
;; bbWeight=16 PerfScore 1028.00
;; bbWeight=16 PerfScore 1028.00
G_M27330_IG05: ; gcrefRegs=00002000 {r13}, byrefRegs=00000000 {}, byref, isz
G_M27330_IG05: ; gcrefRegs=00002000 {r13}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[rsi]
; gcrRegs -[rsi]
mov rsi, gword ptr [rbp-60H]
mov rsi, gword ptr [rbp-60H]
; gcrRegs +[rsi]
; gcrRegs +[rsi]
mov edx, dword ptr [rsi+8]
mov edx, dword ptr [rsi+8]
test edx, edx
test edx, edx
je G_M27330_IG09
je G_M27330_IG09
vmovsd xmm0, qword ptr [rsi+16]
vmovsd xmm0, qword ptr [rsi+16]
vmovsd xmm1, qword ptr [rbp-38H]
vmovsd xmm1, qword ptr [rbp-38H]
vmulsd xmm2, xmm0, xmm1
vmulsd xmm2, xmm0, xmm1
vmovsd xmm3, qword ptr [rbp-30H]
vmovsd xmm3, qword ptr [rbp-30H]
vdivsd xmm2, xmm2, xmm3
vdivsd xmm2, xmm2, xmm3
cmp edi, edx
cmp edi, edx
jae G_M27330_IG09
jae G_M27330_IG09
movsxd rax, edi
movsxd rax, edi
vmovsd xmm4, qword ptr [rsi+8*rax+16]
vmovsd xmm4, qword ptr [rsi+8*rax+16]
vsubsd xmm5, xmm0, xmm4
vsubsd xmm5, xmm0, xmm4
vmulsd xmm2, xmm2, xmm5
vmulsd xmm2, xmm2, xmm5
vsubsd xmm2, xmm0, xmm2
vsubsd xmm2, xmm0, xmm2
cmp edx, 1
cmp edx, 1
jbe G_M27330_IG09
jbe G_M27330_IG09
vmovsd xmm5, qword ptr [rsi+24]
vmovsd xmm5, qword ptr [rsi+24]
Copy
Copied
Copy
Copied
vmovsd xmm6, qword ptr [rbp-50H]
vmulsd xmm0, xmm0,
qword ptr [reloc @RWD00]
vmulsd xmm0, xmm0,
xmm6
vsubsd xmm0, xmm5, xmm0
vsubsd xmm0, xmm5, xmm0
vaddsd xmm0, xmm0, xmm4
vaddsd xmm0, xmm0, xmm4
vmovsd xmm4, qword ptr [rbp-48H]
vmovsd xmm4, qword ptr [rbp-48H]
vmulsd xmm0, xmm0, xmm4
vmulsd xmm0, xmm0, xmm4
vaddsd xmm0, xmm2, xmm0
vaddsd xmm0, xmm2, xmm0
mov ecx, dword ptr [rbp-54H]
mov ecx, dword ptr [rbp-54H]
test ecx, ecx
test ecx, ecx
je G_M27330_IG09
je G_M27330_IG09
vmovsd qword ptr [r13+16], xmm0
vmovsd qword ptr [r13+16], xmm0
vmovsd xmm0, qword ptr [rsi+8*rax+16]
vmovsd xmm0, qword ptr [rsi+8*rax+16]
vmulsd xmm2, xmm0, xmm1
vmulsd xmm2, xmm0, xmm1
vdivsd xmm2, xmm2, xmm3
vdivsd xmm2, xmm2, xmm3
lea r8d, [rbx-2]
lea r8d, [rbx-2]
cmp r8d, edx
cmp r8d, edx
jae SHORT G_M27330_IG09
jae SHORT G_M27330_IG09
movsxd rdx, r8d
movsxd rdx, r8d
vmovsd xmm5, qword ptr [rsi+8*rdx+16]
vmovsd xmm5, qword ptr [rsi+8*rdx+16]
Copy
Copied
Copy
Copied
vsubsd xmm
7
, xmm0, xmm5
vsubsd xmm
6
, xmm0, xmm5
vmulsd xmm2, xmm2, xmm
7
vmulsd xmm2, xmm2, xmm
6
vsubsd xmm2, xmm0, xmm2
vsubsd xmm2, xmm0, xmm2
Copy
Copied
Copy
Copied
vmovsd xmm
7
, qword ptr [rsi+16]
vaddsd xmm0, xmm0, xmm0
vmulsd xmm0, xmm0, xmm6
vmovsd xmm
6
, qword ptr [rsi+16]
vsubsd xmm0, xmm
7
, xmm0
vsubsd xmm0, xmm
6
, xmm0
vaddsd xmm0, xmm0, xmm5
vaddsd xmm0, xmm0, xmm5
vmulsd xmm0, xmm0, xmm4
vmulsd xmm0, xmm0, xmm4
vaddsd xmm0, xmm2, xmm0
vaddsd xmm0, xmm2, xmm0
cmp edi, ecx
cmp edi, ecx
jae SHORT G_M27330_IG09
jae SHORT G_M27330_IG09
vmovsd qword ptr [r13+8*rax+16], xmm0
vmovsd qword ptr [r13+8*rax+16], xmm0
inc r15d
inc r15d
cmp r15d, r14d
cmp r15d, r14d
vmovsd qword ptr [rbp-30H], xmm3
vmovsd qword ptr [rbp-30H], xmm3
vmovsd qword ptr [rbp-38H], xmm1
vmovsd qword ptr [rbp-38H], xmm1
Copy
Copied
Copy
Copied
;; bbWeight=4 PerfScore 452.00
G_M27330_IG06: ; , extend
vmovsd qword ptr [rbp-48H], xmm4
vmovsd qword ptr [rbp-48H], xmm4
Copy
Copied
Copy
Copied
;; bbWeight=4 PerfScore 454.00
G_M27330_IG06: ; , extend
jl G_M27330_IG03
jl G_M27330_IG03
Copy
Copied
Copy
Copied
;; bbWeight=4 PerfScore
6
.00
;; bbWeight=4 PerfScore
4
.00
G_M27330_IG07: ; gcVars= {}, gcrefRegs=00002000 {r13}, byrefRegs=00000000 {}, gcvars, byref
G_M27330_IG07: ; gcVars= {}, gcrefRegs=00002000 {r13}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[rsi]
; gcrRegs -[rsi]
; GC ptr vars -{V08}
; GC ptr vars -{V08}
mov rax, r13
mov rax, r13
; gcrRegs +[rax]
; gcrRegs +[rax]
;; bbWeight=1 PerfScore 0.25
;; bbWeight=1 PerfScore 0.25
G_M27330_IG08: ; , epilog, nogc, extend
G_M27330_IG08: ; , epilog, nogc, extend
add rsp, 56
add rsp, 56
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
;; bbWeight=1 PerfScore 4.25
;; bbWeight=1 PerfScore 4.25
G_M27330_IG09: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
G_M27330_IG09: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[rax r13]
; gcrRegs -[rax r13]
call CORINFO_HELP_RNGCHKFAIL
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
; gcr arg pop 0
int3
int3
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
RWD00 dq 4000000000000000h ; 2
RWD00 dq 4000000000000000h ; 2
Copy
Copied
Copy
Copied
; Total bytes of code 63
4
, prolog size 45, PerfScore 1643.
75
, instruction count 15
8
, allocated bytes for code 69
5
(MethodHash=51ad953d) for method Burgers:GetCalculated0(int,int,double,double,double,System.Double[]):System.Double[]
; Total bytes of code 63
3
, prolog size 45, PerfScore 1643.
55
, instruction count 15
7
, allocated bytes for code 69
3
(MethodHash=51ad953d) for method Burgers:GetCalculated0(int,int,double,double,double,System.Double[]):System.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 : 0x0E
SizeOfProlog : 0x0E
CountOfUnwindCodes: 7
CountOfUnwindCodes: 7
FrameRegister : none (0)
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
UnwindCodes :
CodeOffset: 0x0E UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 6 * 8 + 8 = 56 = 0x38
CodeOffset: 0x0E UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 6 * 8 + 8 = 56 = 0x38
CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12)
CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12)
CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13)
CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13)
CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
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 Burgers:GetCalculated0(int,int,double,double,double,System.Double[]):System.Double[] ; Emitting BLENDED_CODE for X64 CPU with AVX - Unix ; optimized code ; rbp based frame ; fully interruptible ; No matching PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T13] ( 4, 7 ) int -> r14 single-def ; V01 arg1 [V01,T10] ( 5, 11 ) int -> rbx single-def ; V02 arg2 [V02,T19] ( 6, 27 ) double -> [rbp-30H] single-def ; V03 arg3 [V03,T20] ( 6, 27 ) double -> [rbp-38H] single-def ; V04 arg4 [V04,T29] ( 3, 3 ) double -> [rbp-40H] single-def ; V05 arg5 [V05,T15] ( 3, 3 ) ref -> r15 class-hnd single-def ; V06 loc0 [V06,T07] ( 8, 32 ) ref -> r13 class-hnd exact single-def ; V07 loc1 [V07,T11] ( 4, 13 ) int -> r15 ; V08 loc2 [V08,T01] ( 13, 88 ) ref -> [rbp-60H] class-hnd exact spill-single-def ; V09 loc3 [V09,T00] ( 8,116 ) int -> rax ;# V10 OutArgs [V10 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace" ; V11 tmp1 [V11,T17] ( 2, 64 ) double -> mm0 "Strict ordering of exceptions for Array store" ; V12 tmp2 [V12,T25] ( 2, 16 ) double -> mm0 "Strict ordering of exceptions for Array store" ; V13 tmp3 [V13,T26] ( 2, 16 ) double -> mm0 "Strict ordering of exceptions for Array store" ; V14 cse0 [V14,T22] ( 4, 25 ) double -> [rbp-48H] "CSE - aggressive" ; V15 cse1 [V15,T18] ( 3, 48 ) double -> mm5 "CSE - aggressive" ; V16 cse2 [V16,T23] ( 5, 20 ) double -> mm0 "CSE - aggressive" ; V17 cse3 [V17,T27] ( 3, 12 ) double -> mm4 "CSE - aggressive" ; V18 cse4 [V18,T28] ( 3, 12 ) double -> mm5 "CSE - aggressive" ; V19 cse5 [V19,T16] ( 5, 80 ) double -> mm0 "CSE - aggressive" ; V20 cse6 [V20,T24] ( 5, 20 ) double -> mm0 "CSE - aggressive" ; V21 cse7 [V21,T09] ( 4, 16 ) long -> rax "CSE - aggressive" ; V22 cse8 [V22,T02] ( 9, 72 ) int -> rdx "CSE - aggressive" ; V23 cse9 [V23,T06] ( 6, 36 ) int -> rdi "CSE - aggressive" ; V24 cse10 [V24,T21] ( 5, 26 ) double -> [rbp-50H] spill-single-def "CSE - aggressive" ; V25 cse11 [V25,T04] ( 3, 48 ) int -> r9 "CSE - aggressive" ; V26 cse12 [V26,T03] ( 4, 64 ) int -> r9 "CSE - aggressive" ; V27 cse13 [V27,T08] ( 6, 30 ) int -> [rbp-54H] spill-single-def "CSE - aggressive" ; V28 cse14 [V28,T12] ( 3, 12 ) int -> r8 "CSE - aggressive" ; V29 cse15 [V29,T05] ( 3, 48 ) long -> r8 "CSE - aggressive" ; V30 cse16 [V30,T14] ( 3, 6 ) long -> r12 "CSE - aggressive" ; V31 rat0 [V31,T30] ( 2, 4 ) double -> mm0 "argument with side effect" ; V32 rat1 [V32,T31] ( 2, 4 ) double -> mm4 "argument with side effect" ; ; Lcl frame size = 56 G_M27330_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 56 vzeroupper lea rbp, [rsp+60H] mov r14d, edi mov ebx, esi mov r15, rdx ; gcrRegs +[r15] vmovsd qword ptr [rbp-30H], xmm0 vmovsd qword ptr [rbp-38H], xmm1 vmovsd qword ptr [rbp-40H], xmm2 ;; bbWeight=1 PerfScore 10.00 G_M27330_IG02: ; gcrefRegs=00008000 {r15}, byrefRegs=00000000 {}, byref movsxd r12, ebx mov rsi, r12 mov rdi, 0xD1FFAB1E ; System.Double[] call CORINFO_HELP_NEWARR_1_VC ; gcrRegs +[rax] ; gcr arg pop 0 mov r13, rax ; gcrRegs +[r13] mov eax, dword ptr [r13+8] ; gcrRegs -[rax] mov dword ptr [rbp-54H], eax mov edx, eax mov rdi, r15 ; gcrRegs +[rdi] mov rsi, r13 ; gcrRegs +[rsi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rsi rdi r15] ; gcr arg pop 0 xor r15d, r15d test r14d, r14d jle G_M27330_IG07 vmovsd xmm1, qword ptr [rbp-38H] vmulsd xmm0, xmm1, qword ptr [rbp-40H] vdivsd xmm0, xmm0, qword ptr [rbp-30H] vmovsd xmm3, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-50H], xmm3 vmovaps xmm4, xmm3 vmovaps xmm1, xmm4 call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vmovsd qword ptr [rbp-48H], xmm0 ;; bbWeight=1 PerfScore 33.75 G_M27330_IG03: ; gcrefRegs=00002000 {r13}, byrefRegs=00000000 {}, byref, isz mov rsi, r12 mov rdi, 0xD1FFAB1E ; System.Double[] call CORINFO_HELP_NEWARR_1_VC ; gcrRegs +[rax] ; gcr arg pop 0 mov gword ptr [rbp-60H], rax ; GC ptr vars +{V08} mov edx, dword ptr [rbp-54H] mov rdi, r13 ; gcrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi] ; gcr arg pop 0 mov eax, 1 lea edi, [rbx-1] cmp edi, 1 jle G_M27330_IG05 mov rsi, gword ptr [rbp-60H] ; gcrRegs +[rsi] mov edx, dword ptr [rsi+8] align [0 bytes] ;; bbWeight=4 PerfScore 40.00 G_M27330_IG04: ; gcrefRegs=00002040 {rsi r13}, byrefRegs=00000000 {}, loop=IG04, byref cmp eax, edx jae G_M27330_IG09 movsxd r8, eax vmovsd xmm0, qword ptr [rsi+8*r8+16] vmovsd xmm1, qword ptr [rbp-38H] vmulsd xmm2, xmm0, xmm1 vmovsd xmm3, qword ptr [rbp-30H] vdivsd xmm2, xmm2, xmm3 lea r9d, [rax-1] cmp r9d, edx jae G_M27330_IG09 movsxd r9, r9d vmovsd xmm5, qword ptr [rsi+8*r9+16] vsubsd xmm7, xmm0, xmm5 vmulsd xmm2, xmm2, xmm7 vsubsd xmm2, xmm0, xmm2 lea r9d, [rax+1] cmp r9d, edx jae G_M27330_IG09 movsxd r10, r9d vmovsd xmm7, qword ptr [rsi+8*r10+16] vmovsd xmm6, qword ptr [rbp-50H] vmulsd xmm0, xmm0, xmm6 vsubsd xmm0, xmm7, xmm0 vaddsd xmm0, xmm0, xmm5 vmovsd xmm4, qword ptr [rbp-48H] vmulsd xmm0, xmm0, xmm4 vaddsd xmm0, xmm2, xmm0 mov ecx, dword ptr [rbp-54H] cmp eax, ecx jae G_M27330_IG09 vmovsd qword ptr [r13+8*r8+16], xmm0 mov eax, r9d cmp eax, edi vmovsd qword ptr [rbp-30H], xmm3 vmovsd qword ptr [rbp-38H], xmm1 vmovsd qword ptr [rbp-48H], xmm4 jl G_M27330_IG04 ;; bbWeight=16 PerfScore 1028.00 G_M27330_IG05: ; gcrefRegs=00002000 {r13}, byrefRegs=00000000 {}, byref, isz ; gcrRegs -[rsi] mov rsi, gword ptr [rbp-60H] ; gcrRegs +[rsi] mov edx, dword ptr [rsi+8] test edx, edx je G_M27330_IG09 vmovsd xmm0, qword ptr [rsi+16] vmovsd xmm1, qword ptr [rbp-38H] vmulsd xmm2, xmm0, xmm1 vmovsd xmm3, qword ptr [rbp-30H] vdivsd xmm2, xmm2, xmm3 cmp edi, edx jae G_M27330_IG09 movsxd rax, edi vmovsd xmm4, qword ptr [rsi+8*rax+16] vsubsd xmm5, xmm0, xmm4 vmulsd xmm2, xmm2, xmm5 vsubsd xmm2, xmm0, xmm2 cmp edx, 1 jbe G_M27330_IG09 vmovsd xmm5, qword ptr [rsi+24] vmovsd xmm6, qword ptr [rbp-50H] vmulsd xmm0, xmm0, xmm6 vsubsd xmm0, xmm5, xmm0 vaddsd xmm0, xmm0, xmm4 vmovsd xmm4, qword ptr [rbp-48H] vmulsd xmm0, xmm0, xmm4 vaddsd xmm0, xmm2, xmm0 mov ecx, dword ptr [rbp-54H] test ecx, ecx je G_M27330_IG09 vmovsd qword ptr [r13+16], xmm0 vmovsd xmm0, qword ptr [rsi+8*rax+16] vmulsd xmm2, xmm0, xmm1 vdivsd xmm2, xmm2, xmm3 lea r8d, [rbx-2] cmp r8d, edx jae SHORT G_M27330_IG09 movsxd rdx, r8d vmovsd xmm5, qword ptr [rsi+8*rdx+16] vsubsd xmm7, xmm0, xmm5 vmulsd xmm2, xmm2, xmm7 vsubsd xmm2, xmm0, xmm2 vmovsd xmm7, qword ptr [rsi+16] vmulsd xmm0, xmm0, xmm6 vsubsd xmm0, xmm7, xmm0 vaddsd xmm0, xmm0, xmm5 vmulsd xmm0, xmm0, xmm4 vaddsd xmm0, xmm2, xmm0 cmp edi, ecx jae SHORT G_M27330_IG09 vmovsd qword ptr [r13+8*rax+16], xmm0 inc r15d cmp r15d, r14d vmovsd qword ptr [rbp-30H], xmm3 vmovsd qword ptr [rbp-38H], xmm1 ;; bbWeight=4 PerfScore 452.00 G_M27330_IG06: ; , extend vmovsd qword ptr [rbp-48H], xmm4 jl G_M27330_IG03 ;; bbWeight=4 PerfScore 6.00 G_M27330_IG07: ; gcVars= {}, gcrefRegs=00002000 {r13}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[rsi] ; GC ptr vars -{V08} mov rax, r13 ; gcrRegs +[rax] ;; bbWeight=1 PerfScore 0.25 G_M27330_IG08: ; , epilog, nogc, extend add rsp, 56 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; bbWeight=1 PerfScore 4.25 G_M27330_IG09: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[rax r13] call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 RWD00 dq 4000000000000000h ; 2 ; Total bytes of code 634, prolog size 45, PerfScore 1643.75, instruction count 158, allocated bytes for code 695 (MethodHash=51ad953d) for method Burgers:GetCalculated0(int,int,double,double,double,System.Double[]):System.Double[] ; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x0E CountOfUnwindCodes: 7 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x0E UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 6 * 8 + 8 = 56 = 0x38 CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12) CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
Changed text
Open file
; Assembly listing for method Burgers:GetCalculated0(int,int,double,double,double,System.Double[]):System.Double[] ; Emitting BLENDED_CODE for X64 CPU with AVX - Unix ; optimized code ; rbp based frame ; fully interruptible ; No matching PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T13] ( 4, 7 ) int -> r14 single-def ; V01 arg1 [V01,T10] ( 5, 11 ) int -> rbx single-def ; V02 arg2 [V02,T19] ( 6, 27 ) double -> [rbp-30H] single-def ; V03 arg3 [V03,T20] ( 6, 27 ) double -> [rbp-38H] single-def ; V04 arg4 [V04,T29] ( 3, 3 ) double -> [rbp-40H] single-def ; V05 arg5 [V05,T15] ( 3, 3 ) ref -> r15 class-hnd single-def ; V06 loc0 [V06,T07] ( 8, 32 ) ref -> r13 class-hnd exact single-def ; V07 loc1 [V07,T11] ( 4, 13 ) int -> r15 ; V08 loc2 [V08,T01] ( 13, 88 ) ref -> [rbp-60H] class-hnd exact spill-single-def ; V09 loc3 [V09,T00] ( 8,116 ) int -> rax ;# V10 OutArgs [V10 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace" ; V11 tmp1 [V11,T17] ( 2, 64 ) double -> mm0 "Strict ordering of exceptions for Array store" ; V12 tmp2 [V12,T25] ( 2, 16 ) double -> mm0 "Strict ordering of exceptions for Array store" ; V13 tmp3 [V13,T26] ( 2, 16 ) double -> mm0 "Strict ordering of exceptions for Array store" ; V14 cse0 [V14,T21] ( 4, 25 ) double -> [rbp-48H] "CSE - aggressive" ; V15 cse1 [V15,T18] ( 3, 48 ) double -> mm5 "CSE - aggressive" ; V16 cse2 [V16,T22] ( 6, 24 ) double -> mm0 "CSE - aggressive" ; V17 cse3 [V17,T27] ( 3, 12 ) double -> mm4 "CSE - aggressive" ; V18 cse4 [V18,T28] ( 3, 12 ) double -> mm5 "CSE - aggressive" ; V19 cse5 [V19,T16] ( 5, 80 ) double -> mm0 "CSE - aggressive" ; V20 cse6 [V20,T23] ( 5, 20 ) double -> mm0 "CSE - aggressive" ; V21 cse7 [V21,T09] ( 4, 16 ) long -> rax "CSE - aggressive" ; V22 cse8 [V22,T02] ( 9, 72 ) int -> rdx "CSE - aggressive" ; V23 cse9 [V23,T06] ( 6, 36 ) int -> rdi "CSE - aggressive" ; V24 cse10 [V24,T04] ( 3, 48 ) int -> r9 "CSE - aggressive" ; V25 cse11 [V25,T24] ( 3, 18 ) double -> [rbp-50H] spill-single-def "CSE - aggressive" ; V26 cse12 [V26,T03] ( 4, 64 ) int -> r9 "CSE - aggressive" ; V27 cse13 [V27,T08] ( 6, 30 ) int -> [rbp-54H] spill-single-def "CSE - aggressive" ; V28 cse14 [V28,T12] ( 3, 12 ) int -> r8 "CSE - aggressive" ; V29 cse15 [V29,T05] ( 3, 48 ) long -> r8 "CSE - aggressive" ; V30 cse16 [V30,T14] ( 3, 6 ) long -> r12 "CSE - aggressive" ; V31 rat0 [V31,T30] ( 2, 4 ) double -> mm0 "argument with side effect" ; V32 rat1 [V32,T31] ( 2, 4 ) double -> mm4 "argument with side effect" ; ; Lcl frame size = 56 G_M27330_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 56 vzeroupper lea rbp, [rsp+60H] mov r14d, edi mov ebx, esi mov r15, rdx ; gcrRegs +[r15] vmovsd qword ptr [rbp-30H], xmm0 vmovsd qword ptr [rbp-38H], xmm1 vmovsd qword ptr [rbp-40H], xmm2 ;; bbWeight=1 PerfScore 10.00 G_M27330_IG02: ; gcrefRegs=00008000 {r15}, byrefRegs=00000000 {}, byref movsxd r12, ebx mov rsi, r12 mov rdi, 0xD1FFAB1E ; System.Double[] call CORINFO_HELP_NEWARR_1_VC ; gcrRegs +[rax] ; gcr arg pop 0 mov r13, rax ; gcrRegs +[r13] mov eax, dword ptr [r13+8] ; gcrRegs -[rax] mov dword ptr [rbp-54H], eax mov edx, eax mov rdi, r15 ; gcrRegs +[rdi] mov rsi, r13 ; gcrRegs +[rsi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rsi rdi r15] ; gcr arg pop 0 xor r15d, r15d test r14d, r14d jle G_M27330_IG07 vmovsd xmm1, qword ptr [rbp-38H] vmulsd xmm0, xmm1, qword ptr [rbp-40H] vdivsd xmm0, xmm0, qword ptr [rbp-30H] vmovsd xmm3, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-50H], xmm3 vmovaps xmm4, xmm3 vmovaps xmm1, xmm4 call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vmovsd qword ptr [rbp-48H], xmm0 ;; bbWeight=1 PerfScore 33.75 G_M27330_IG03: ; gcrefRegs=00002000 {r13}, byrefRegs=00000000 {}, byref, isz mov rsi, r12 mov rdi, 0xD1FFAB1E ; System.Double[] call CORINFO_HELP_NEWARR_1_VC ; gcrRegs +[rax] ; gcr arg pop 0 mov gword ptr [rbp-60H], rax ; GC ptr vars +{V08} mov edx, dword ptr [rbp-54H] mov rdi, r13 ; gcrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi] ; gcr arg pop 0 mov eax, 1 lea edi, [rbx-1] cmp edi, 1 jle G_M27330_IG05 mov rsi, gword ptr [rbp-60H] ; gcrRegs +[rsi] mov edx, dword ptr [rsi+8] align [0 bytes] ;; bbWeight=4 PerfScore 40.00 G_M27330_IG04: ; gcrefRegs=00002040 {rsi r13}, byrefRegs=00000000 {}, loop=IG04, byref cmp eax, edx jae G_M27330_IG09 movsxd r8, eax vmovsd xmm0, qword ptr [rsi+8*r8+16] vmovsd xmm1, qword ptr [rbp-38H] vmulsd xmm2, xmm0, xmm1 vmovsd xmm3, qword ptr [rbp-30H] vdivsd xmm2, xmm2, xmm3 lea r9d, [rax-1] cmp r9d, edx jae G_M27330_IG09 movsxd r9, r9d vmovsd xmm5, qword ptr [rsi+8*r9+16] vsubsd xmm6, xmm0, xmm5 vmulsd xmm2, xmm2, xmm6 vsubsd xmm2, xmm0, xmm2 lea r9d, [rax+1] cmp r9d, edx jae G_M27330_IG09 movsxd r10, r9d vmovsd xmm6, qword ptr [rsi+8*r10+16] vmovsd xmm7, qword ptr [rbp-50H] vmulsd xmm0, xmm0, xmm7 vsubsd xmm0, xmm6, xmm0 vaddsd xmm0, xmm0, xmm5 vmovsd xmm4, qword ptr [rbp-48H] vmulsd xmm0, xmm0, xmm4 vaddsd xmm0, xmm2, xmm0 mov ecx, dword ptr [rbp-54H] cmp eax, ecx jae G_M27330_IG09 vmovsd qword ptr [r13+8*r8+16], xmm0 mov eax, r9d cmp eax, edi vmovsd qword ptr [rbp-30H], xmm3 vmovsd qword ptr [rbp-38H], xmm1 vmovsd qword ptr [rbp-48H], xmm4 jl G_M27330_IG04 ;; bbWeight=16 PerfScore 1028.00 G_M27330_IG05: ; gcrefRegs=00002000 {r13}, byrefRegs=00000000 {}, byref, isz ; gcrRegs -[rsi] mov rsi, gword ptr [rbp-60H] ; gcrRegs +[rsi] mov edx, dword ptr [rsi+8] test edx, edx je G_M27330_IG09 vmovsd xmm0, qword ptr [rsi+16] vmovsd xmm1, qword ptr [rbp-38H] vmulsd xmm2, xmm0, xmm1 vmovsd xmm3, qword ptr [rbp-30H] vdivsd xmm2, xmm2, xmm3 cmp edi, edx jae G_M27330_IG09 movsxd rax, edi vmovsd xmm4, qword ptr [rsi+8*rax+16] vsubsd xmm5, xmm0, xmm4 vmulsd xmm2, xmm2, xmm5 vsubsd xmm2, xmm0, xmm2 cmp edx, 1 jbe G_M27330_IG09 vmovsd xmm5, qword ptr [rsi+24] vmulsd xmm0, xmm0, qword ptr [reloc @RWD00] vsubsd xmm0, xmm5, xmm0 vaddsd xmm0, xmm0, xmm4 vmovsd xmm4, qword ptr [rbp-48H] vmulsd xmm0, xmm0, xmm4 vaddsd xmm0, xmm2, xmm0 mov ecx, dword ptr [rbp-54H] test ecx, ecx je G_M27330_IG09 vmovsd qword ptr [r13+16], xmm0 vmovsd xmm0, qword ptr [rsi+8*rax+16] vmulsd xmm2, xmm0, xmm1 vdivsd xmm2, xmm2, xmm3 lea r8d, [rbx-2] cmp r8d, edx jae SHORT G_M27330_IG09 movsxd rdx, r8d vmovsd xmm5, qword ptr [rsi+8*rdx+16] vsubsd xmm6, xmm0, xmm5 vmulsd xmm2, xmm2, xmm6 vsubsd xmm2, xmm0, xmm2 vaddsd xmm0, xmm0, xmm0 vmovsd xmm6, qword ptr [rsi+16] vsubsd xmm0, xmm6, xmm0 vaddsd xmm0, xmm0, xmm5 vmulsd xmm0, xmm0, xmm4 vaddsd xmm0, xmm2, xmm0 cmp edi, ecx jae SHORT G_M27330_IG09 vmovsd qword ptr [r13+8*rax+16], xmm0 inc r15d cmp r15d, r14d vmovsd qword ptr [rbp-30H], xmm3 vmovsd qword ptr [rbp-38H], xmm1 vmovsd qword ptr [rbp-48H], xmm4 ;; bbWeight=4 PerfScore 454.00 G_M27330_IG06: ; , extend jl G_M27330_IG03 ;; bbWeight=4 PerfScore 4.00 G_M27330_IG07: ; gcVars= {}, gcrefRegs=00002000 {r13}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[rsi] ; GC ptr vars -{V08} mov rax, r13 ; gcrRegs +[rax] ;; bbWeight=1 PerfScore 0.25 G_M27330_IG08: ; , epilog, nogc, extend add rsp, 56 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; bbWeight=1 PerfScore 4.25 G_M27330_IG09: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[rax r13] call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 int3 ;; bbWeight=0 PerfScore 0.00 RWD00 dq 4000000000000000h ; 2 ; Total bytes of code 633, prolog size 45, PerfScore 1643.55, instruction count 157, allocated bytes for code 693 (MethodHash=51ad953d) for method Burgers:GetCalculated0(int,int,double,double,double,System.Double[]):System.Double[] ; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x0E CountOfUnwindCodes: 7 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x0E UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 6 * 8 + 8 = 56 = 0x38 CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12) CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
Find difference