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
17 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
267 lines
Copy
11 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
263 lines
Copy
; Assembly listing for method pow0:Main():int
; Assembly listing for method pow0:Main():int
; 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 loc0 [V00,T01] ( 4, 4 ) bool -> rbx
; V00 loc0 [V00,T01] ( 4, 4 ) bool -> rbx
; V01 loc1 [V01,T07] ( 9, 23.50) double -> [rbp-18H]
; V01 loc1 [V01,T07] ( 9, 23.50) double -> [rbp-18H]
; V02 loc2 [V02,T10] ( 5, 10.50) double -> [rbp-20H]
; V02 loc2 [V02,T10] ( 5, 10.50) double -> [rbp-20H]
Copy
Copied
Copy
Copied
; V03 loc3 [V03,T1
4
] ( 3, 2.50) double -> [rbp-28H] spill-single-def
; V03 loc3 [V03,T1
3
] ( 3, 2.50) double -> [rbp-28H] spill-single-def
; V04 loc4 [V04,T06] ( 24, 63.50) double -> [rbp-30H]
; V04 loc4 [V04,T06] ( 24, 63.50) double -> [rbp-30H]
;# V05 OutArgs [V05 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
;# V05 OutArgs [V05 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
; V06 tmp1 [V06,T08] ( 2, 16 ) double -> mm1 "dup spill"
; V06 tmp1 [V06,T08] ( 2, 16 ) double -> mm1 "dup spill"
; V07 tmp2 [V07,T00] ( 3, 12 ) ref -> rax class-hnd exact "Single-def Box Helper"
; V07 tmp2 [V07,T00] ( 3, 12 ) ref -> rax class-hnd exact "Single-def Box Helper"
; V08 tmp3 [V08,T02] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V08 tmp3 [V08,T02] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V09 tmp4 [V09,T03] ( 3, 3 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper"
; V09 tmp4 [V09,T03] ( 3, 3 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper"
; V10 tmp5 [V10,T04] ( 3, 3 ) ref -> r14 class-hnd exact single-def "Single-def Box Helper"
; V10 tmp5 [V10,T04] ( 3, 3 ) ref -> r14 class-hnd exact single-def "Single-def Box Helper"
; V11 tmp6 [V11,T05] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V11 tmp6 [V11,T05] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V12 cse0 [V12,T09] ( 5, 11 ) double -> [rbp-38H] "CSE - aggressive"
; V12 cse0 [V12,T09] ( 5, 11 ) double -> [rbp-38H] "CSE - aggressive"
; V13 cse1 [V13,T11] ( 2, 5 ) double -> [rbp-40H] "CSE - aggressive"
; V13 cse1 [V13,T11] ( 2, 5 ) double -> [rbp-40H] "CSE - aggressive"
; V14 cse2 [V14,T12] ( 2, 5 ) double -> [rbp-48H] "CSE - aggressive"
; V14 cse2 [V14,T12] ( 2, 5 ) double -> [rbp-48H] "CSE - aggressive"
Copy
Copied
Copy
Copied
; V15 cse3 [V15,T13] ( 2, 5 ) double -> [rbp-50H] "CSE - aggressive"
;
;
; Lcl frame size = 64
; Lcl frame size = 64
G_M29627_IG01: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
G_M29627_IG01: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
push rbp
push rbp
push r14
push r14
push rbx
push rbx
sub rsp, 64
sub rsp, 64
vzeroupper
vzeroupper
lea rbp, [rsp+50H]
lea rbp, [rsp+50H]
;; bbWeight=1 PerfScore 4.75
;; bbWeight=1 PerfScore 4.75
G_M29627_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
G_M29627_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
mov ebx, 1
mov ebx, 1
vxorps xmm0, xmm0
vxorps xmm0, xmm0
vmovsd qword ptr [rbp-20H], xmm0
vmovsd qword ptr [rbp-20H], xmm0
vmovsd xmm1, qword ptr [reloc @RWD00]
vmovsd xmm1, qword ptr [reloc @RWD00]
vmovsd xmm2, qword ptr [reloc @RWD08]
vmovsd xmm2, qword ptr [reloc @RWD08]
vmovsd qword ptr [rbp-40H], xmm2
vmovsd qword ptr [rbp-40H], xmm2
vmovsd xmm3, qword ptr [reloc @RWD16]
vmovsd xmm3, qword ptr [reloc @RWD16]
align [0 bytes]
align [0 bytes]
;; bbWeight=1 PerfScore 7.58
;; bbWeight=1 PerfScore 7.58
G_M29627_IG03: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, loop=IG03, byref, isz
G_M29627_IG03: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, loop=IG03, byref, isz
vmovsd qword ptr [rbp-30H], xmm1
vmovsd qword ptr [rbp-30H], xmm1
vmovaps xmm0, xmm1
vmovaps xmm0, xmm1
vmovsd qword ptr [rbp-38H], xmm3
vmovsd qword ptr [rbp-38H], xmm3
vmovaps xmm1, xmm3
vmovaps xmm1, xmm3
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcr arg pop 0
; gcr arg pop 0
vaddsd xmm0, xmm0, qword ptr [rbp-20H]
vaddsd xmm0, xmm0, qword ptr [rbp-20H]
vmovsd xmm1, qword ptr [rbp-30H]
vmovsd xmm1, qword ptr [rbp-30H]
vaddsd xmm1, xmm1, qword ptr [reloc @RWD00]
vaddsd xmm1, xmm1, qword ptr [reloc @RWD00]
vmovsd xmm2, qword ptr [rbp-40H]
vmovsd xmm2, qword ptr [rbp-40H]
vucomisd xmm2, xmm1
vucomisd xmm2, xmm1
vmovsd qword ptr [rbp-20H], xmm0
vmovsd qword ptr [rbp-20H], xmm0
vmovsd qword ptr [rbp-40H], xmm2
vmovsd qword ptr [rbp-40H], xmm2
vmovsd xmm3, qword ptr [rbp-38H]
vmovsd xmm3, qword ptr [rbp-38H]
ja SHORT G_M29627_IG03
ja SHORT G_M29627_IG03
;; bbWeight=4 PerfScore 86.00
;; bbWeight=4 PerfScore 86.00
G_M29627_IG04: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
G_M29627_IG04: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
vsubsd xmm1, xmm1, qword ptr [reloc @RWD00]
vsubsd xmm1, xmm1, qword ptr [reloc @RWD00]
vaddsd xmm2, xmm1, qword ptr [reloc @RWD00]
vaddsd xmm2, xmm1, qword ptr [reloc @RWD00]
vmulsd xmm2, xmm1, xmm2
vmulsd xmm2, xmm1, xmm2
vmovsd qword ptr [rbp-30H], xmm1
vmovsd qword ptr [rbp-30H], xmm1
vaddsd xmm3, xmm1, xmm1
vaddsd xmm3, xmm1, xmm1
vaddsd xmm3, xmm3, qword ptr [reloc @RWD00]
vaddsd xmm3, xmm3, qword ptr [reloc @RWD00]
vmulsd xmm2, xmm2, xmm3
vmulsd xmm2, xmm2, xmm3
vdivsd xmm2, xmm2, qword ptr [reloc @RWD24]
vdivsd xmm2, xmm2, qword ptr [reloc @RWD24]
vmovsd qword ptr [rbp-28H], xmm2
vmovsd qword ptr [rbp-28H], xmm2
vmovsd xmm0, qword ptr [rbp-20H]
vmovsd xmm0, qword ptr [rbp-20H]
vucomisd xmm0, xmm2
vucomisd xmm0, xmm2
jp SHORT G_M29627_IG05
jp SHORT G_M29627_IG05
je SHORT G_M29627_IG06
je SHORT G_M29627_IG06
;; bbWeight=1 PerfScore 44.00
;; bbWeight=1 PerfScore 44.00
G_M29627_IG05: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M29627_IG05: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov rdi, 0xD1FFAB1E ; hackishClassName
mov rdi, 0xD1FFAB1E ; hackishClassName
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
; gcrRegs +[rax]
; gcr arg pop 0
; gcr arg pop 0
mov rbx, rax
mov rbx, rax
; gcrRegs +[rbx]
; gcrRegs +[rbx]
vmovsd xmm1, qword ptr [rbp-30H]
vmovsd xmm1, qword ptr [rbp-30H]
vmovsd qword ptr [rbx+8], xmm1
vmovsd qword ptr [rbx+8], xmm1
mov rdi, 0xD1FFAB1E ; hackishClassName
mov rdi, 0xD1FFAB1E ; hackishClassName
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
; gcr arg pop 0
; gcr arg pop 0
mov r14, rax
mov r14, rax
; gcrRegs +[r14]
; gcrRegs +[r14]
vmovsd xmm0, qword ptr [rbp-20H]
vmovsd xmm0, qword ptr [rbp-20H]
vmovsd qword ptr [r14+8], xmm0
vmovsd qword ptr [r14+8], xmm0
mov rdi, 0xD1FFAB1E ; hackishClassName
mov rdi, 0xD1FFAB1E ; hackishClassName
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
; gcr arg pop 0
; gcr arg pop 0
vmovsd xmm2, qword ptr [rbp-28H]
vmovsd xmm2, qword ptr [rbp-28H]
vmovsd qword ptr [rax+8], xmm2
vmovsd qword ptr [rax+8], xmm2
mov rsi, rbx
mov rsi, rbx
; gcrRegs +[rsi]
; gcrRegs +[rsi]
mov rdx, r14
mov rdx, r14
; gcrRegs +[rdx]
; gcrRegs +[rdx]
mov rcx, rax
mov rcx, rax
; gcrRegs +[rcx]
; gcrRegs +[rcx]
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, gword ptr [rdi]
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
; gcrRegs +[rdi]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcrRegs -[rax rcx rdx rbx rsi rdi r14]
; gcrRegs -[rax rcx rdx rbx rsi rdi r14]
; gcr arg pop 0
; gcr arg pop 0
xor ebx, ebx
xor ebx, ebx
;; bbWeight=0.50 PerfScore 8.00
;; bbWeight=0.50 PerfScore 8.00
G_M29627_IG06: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M29627_IG06: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
vmovsd xmm1, qword ptr [reloc @RWD00]
vmovsd xmm1, qword ptr [reloc @RWD00]
vmovsd qword ptr [rbp-18H], xmm1
vmovsd qword ptr [rbp-18H], xmm1
vmovsd xmm0, qword ptr [reloc @RWD00]
vmovsd xmm0, qword ptr [reloc @RWD00]
Copy
Copied
Copy
Copied
vmovsd xmm2, qword ptr [reloc @RWD32]
;; bbWeight=1 PerfScore
4.50
vmovsd qword ptr [rbp-50H], xmm2
;; bbWeight=1 PerfScore
7.00
G_M29627_IG07: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
G_M29627_IG07: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
vxorps xmm1, xmm1
vxorps xmm1, xmm1
vmovsd qword ptr [rbp-30H], xmm0
vmovsd qword ptr [rbp-30H], xmm0
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcr arg pop 0
; gcr arg pop 0
vaddsd xmm0, xmm0, qword ptr [rbp-30H]
vaddsd xmm0, xmm0, qword ptr [rbp-30H]
vmovsd xmm1, qword ptr [rbp-18H]
vmovsd xmm1, qword ptr [rbp-18H]
vaddsd xmm1, xmm1, qword ptr [reloc @RWD00]
vaddsd xmm1, xmm1, qword ptr [reloc @RWD00]
vmovsd qword ptr [rbp-30H], xmm0
vmovsd qword ptr [rbp-30H], xmm0
vmovsd qword ptr [rbp-18H], xmm1
vmovsd qword ptr [rbp-18H], xmm1
vucomisd xmm0, xmm1
vucomisd xmm0, xmm1
jp SHORT G_M29627_IG08
jp SHORT G_M29627_IG08
je SHORT G_M29627_IG09
je SHORT G_M29627_IG09
;; bbWeight=4 PerfScore 71.33
;; bbWeight=4 PerfScore 71.33
G_M29627_IG08: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M29627_IG08: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov rdi, 0xD1FFAB1E ; hackishClassName
mov rdi, 0xD1FFAB1E ; hackishClassName
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
; gcrRegs +[rax]
; gcr arg pop 0
; gcr arg pop 0
vmovsd xmm0, qword ptr [rbp-30H]
vmovsd xmm0, qword ptr [rbp-30H]
vmovsd qword ptr [rax+8], xmm0
vmovsd qword ptr [rax+8], xmm0
mov rsi, rax
mov rsi, rax
; gcrRegs +[rsi]
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, gword ptr [rdi]
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
; gcrRegs +[rdi]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcrRegs -[rax rsi rdi]
; gcrRegs -[rax rsi rdi]
; gcr arg pop 0
; gcr arg pop 0
xor ebx, ebx
xor ebx, ebx
;; bbWeight=2 PerfScore 15.00
;; bbWeight=2 PerfScore 15.00
G_M29627_IG09: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M29627_IG09: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
Copy
Copied
Copy
Copied
vmovsd xmm2, qword ptr [reloc @RWD32]
vmovsd xmm0, qword ptr [rbp-30H]
vmovsd xmm0, qword ptr [rbp-30H]
Copy
Copied
Copy
Copied
vmovsd xmm2, qword ptr [rbp-50H]
vucomisd xmm2, xmm0
vucomisd xmm2, xmm0
Copy
Copied
Copy
Copied
vmovsd qword ptr [rbp-50H], xmm2
ja
G_M29627_IG07
ja
SHORT
G_M29627_IG07
;; bbWeight=4 PerfScore
24
.00
;; bbWeight=4 PerfScore
26
.00
G_M29627_IG10: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
, align
G_M29627_IG10: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
vmovsd xmm3, qword ptr [reloc @RWD16]
vmovsd xmm3, qword ptr [reloc @RWD16]
vmovsd qword ptr [rbp-18H], xmm3
vmovsd qword ptr [rbp-18H], xmm3
vmovsd xmm0, qword ptr [reloc @RWD00]
vmovsd xmm0, qword ptr [reloc @RWD00]
vmovsd qword ptr [rbp-30H], xmm0
vmovsd qword ptr [rbp-30H], xmm0
vmovsd xmm2, qword ptr [reloc @RWD40]
vmovsd xmm2, qword ptr [reloc @RWD40]
vmovsd qword ptr [rbp-48H], xmm2
vmovsd qword ptr [rbp-48H], xmm2
Copy
Copied
Copy
Copied
align [
0
bytes]
align [
3
bytes]
;; bbWeight=1 PerfScore 7.
50
;; bbWeight=1 PerfScore 7.
75
G_M29627_IG11: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, loop=IG11, byref, isz
G_M29627_IG11: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, loop=IG11, byref, isz
vmovsd qword ptr [rbp-38H], xmm3
vmovsd qword ptr [rbp-38H], xmm3
vmovaps xmm0, xmm3
vmovaps xmm0, xmm3
vmovsd xmm1, qword ptr [rbp-30H]
vmovsd xmm1, qword ptr [rbp-30H]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcr arg pop 0
; gcr arg pop 0
vmulsd xmm1, xmm0, qword ptr [rbp-18H]
vmulsd xmm1, xmm0, qword ptr [rbp-18H]
vmovsd xmm0, qword ptr [rbp-30H]
vmovsd xmm0, qword ptr [rbp-30H]
vaddsd xmm0, xmm0, qword ptr [reloc @RWD00]
vaddsd xmm0, xmm0, qword ptr [reloc @RWD00]
vmovsd xmm2, qword ptr [rbp-48H]
vmovsd xmm2, qword ptr [rbp-48H]
vucomisd xmm2, xmm0
vucomisd xmm2, xmm0
vmovsd qword ptr [rbp-30H], xmm0
vmovsd qword ptr [rbp-30H], xmm0
vmovsd qword ptr [rbp-18H], xmm1
vmovsd qword ptr [rbp-18H], xmm1
vmovsd qword ptr [rbp-48H], xmm2
vmovsd qword ptr [rbp-48H], xmm2
vmovsd xmm3, qword ptr [rbp-38H]
vmovsd xmm3, qword ptr [rbp-38H]
ja SHORT G_M29627_IG11
ja SHORT G_M29627_IG11
;; bbWeight=4 PerfScore 93.00
;; bbWeight=4 PerfScore 93.00
G_M29627_IG12: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
G_M29627_IG12: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
vmovsd xmm1, qword ptr [rbp-18H]
vmovsd xmm1, qword ptr [rbp-18H]
vucomisd xmm1, qword ptr [reloc @RWD48]
vucomisd xmm1, qword ptr [reloc @RWD48]
jp SHORT G_M29627_IG13
jp SHORT G_M29627_IG13
je SHORT G_M29627_IG14
je SHORT G_M29627_IG14
;; bbWeight=1 PerfScore 5.00
;; bbWeight=1 PerfScore 5.00
G_M29627_IG13: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
G_M29627_IG13: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; hackishClassName
mov rdi, 0xD1FFAB1E ; hackishClassName
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
; gcrRegs +[rax]
; gcr arg pop 0
; gcr arg pop 0
vmovsd xmm1, qword ptr [rbp-18H]
vmovsd xmm1, qword ptr [rbp-18H]
vmovsd qword ptr [rax+8], xmm1
vmovsd qword ptr [rax+8], xmm1
mov rsi, rax
mov rsi, rax
; gcrRegs +[rsi]
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, gword ptr [rdi]
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
; gcrRegs +[rdi]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcrRegs -[rax rsi rdi]
; gcrRegs -[rax rsi rdi]
; gcr arg pop 0
; gcr arg pop 0
jmp SHORT G_M29627_IG16
jmp SHORT G_M29627_IG16
;; bbWeight=0.50 PerfScore 4.62
;; bbWeight=0.50 PerfScore 4.62
G_M29627_IG14: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
G_M29627_IG14: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
test ebx, ebx
test ebx, ebx
je SHORT G_M29627_IG16
je SHORT G_M29627_IG16
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, gword ptr [rdi]
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
; gcrRegs +[rdi]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcrRegs -[rdi]
; gcrRegs -[rdi]
; gcr arg pop 0
; gcr arg pop 0
mov eax, 100
mov eax, 100
;; bbWeight=0.50 PerfScore 2.38
;; bbWeight=0.50 PerfScore 2.38
G_M29627_IG15: ; , epilog, nogc, extend
G_M29627_IG15: ; , epilog, nogc, extend
add rsp, 64
add rsp, 64
pop rbx
pop rbx
pop r14
pop r14
pop rbp
pop rbp
ret
ret
;; bbWeight=0.50 PerfScore 1.38
;; bbWeight=0.50 PerfScore 1.38
G_M29627_IG16: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
G_M29627_IG16: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, gword ptr [rdi]
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
; gcrRegs +[rdi]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcrRegs -[rdi]
; gcrRegs -[rdi]
; gcr arg pop 0
; gcr arg pop 0
mov eax, 1
mov eax, 1
;; bbWeight=0.50 PerfScore 1.75
;; bbWeight=0.50 PerfScore 1.75
G_M29627_IG17: ; , epilog, nogc, extend
G_M29627_IG17: ; , epilog, nogc, extend
add rsp, 64
add rsp, 64
pop rbx
pop rbx
pop r14
pop r14
pop rbp
pop rbp
ret
ret
;; bbWeight=0.50 PerfScore 1.38
;; bbWeight=0.50 PerfScore 1.38
RWD00 dq 3FF0000000000000h ; 1
RWD00 dq 3FF0000000000000h ; 1
RWD08 dq 407F400000000000h ; 500
RWD08 dq 407F400000000000h ; 500
RWD16 dq 4000000000000000h ; 2
RWD16 dq 4000000000000000h ; 2
RWD24 dq 4018000000000000h ; 6
RWD24 dq 4018000000000000h ; 6
RWD32 dq 40F86A0000000000h ; 100000
RWD32 dq 40F86A0000000000h ; 100000
RWD40 dq 4034000000000000h ; 20
RWD40 dq 4034000000000000h ; 20
RWD48 dq 4BE0000000000000h ; 3.13855087e+57
RWD48 dq 4BE0000000000000h ; 3.13855087e+57
Copy
Copied
Copy
Copied
; Total bytes of code
697
, prolog size 16, PerfScore
464.27
, instruction count 14
6
, allocated bytes for code
776
(MethodHash=4bde8c44) for method pow0:Main():int
; Total bytes of code
745
, prolog size 16, PerfScore
458.52
, instruction count 14
3
, allocated bytes for code
761
(MethodHash=4bde8c44) for method pow0:Main():int
; ============================================================
; ============================================================
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 : 0x08
SizeOfProlog : 0x08
CountOfUnwindCodes: 4
CountOfUnwindCodes: 4
FrameRegister : none (0)
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
UnwindCodes :
CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 7 * 8 + 8 = 64 = 0x40
CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 7 * 8 + 8 = 64 = 0x40
CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
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 pow0:Main():int ; 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 loc0 [V00,T01] ( 4, 4 ) bool -> rbx ; V01 loc1 [V01,T07] ( 9, 23.50) double -> [rbp-18H] ; V02 loc2 [V02,T10] ( 5, 10.50) double -> [rbp-20H] ; V03 loc3 [V03,T14] ( 3, 2.50) double -> [rbp-28H] spill-single-def ; V04 loc4 [V04,T06] ( 24, 63.50) double -> [rbp-30H] ;# V05 OutArgs [V05 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace" ; V06 tmp1 [V06,T08] ( 2, 16 ) double -> mm1 "dup spill" ; V07 tmp2 [V07,T00] ( 3, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V08 tmp3 [V08,T02] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V09 tmp4 [V09,T03] ( 3, 3 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" ; V10 tmp5 [V10,T04] ( 3, 3 ) ref -> r14 class-hnd exact single-def "Single-def Box Helper" ; V11 tmp6 [V11,T05] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V12 cse0 [V12,T09] ( 5, 11 ) double -> [rbp-38H] "CSE - aggressive" ; V13 cse1 [V13,T11] ( 2, 5 ) double -> [rbp-40H] "CSE - aggressive" ; V14 cse2 [V14,T12] ( 2, 5 ) double -> [rbp-48H] "CSE - aggressive" ; V15 cse3 [V15,T13] ( 2, 5 ) double -> [rbp-50H] "CSE - aggressive" ; ; Lcl frame size = 64 G_M29627_IG01: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG push rbp push r14 push rbx sub rsp, 64 vzeroupper lea rbp, [rsp+50H] ;; bbWeight=1 PerfScore 4.75 G_M29627_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz mov ebx, 1 vxorps xmm0, xmm0 vmovsd qword ptr [rbp-20H], xmm0 vmovsd xmm1, qword ptr [reloc @RWD00] vmovsd xmm2, qword ptr [reloc @RWD08] vmovsd qword ptr [rbp-40H], xmm2 vmovsd xmm3, qword ptr [reloc @RWD16] align [0 bytes] ;; bbWeight=1 PerfScore 7.58 G_M29627_IG03: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, loop=IG03, byref, isz vmovsd qword ptr [rbp-30H], xmm1 vmovaps xmm0, xmm1 vmovsd qword ptr [rbp-38H], xmm3 vmovaps xmm1, xmm3 call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vaddsd xmm0, xmm0, qword ptr [rbp-20H] vmovsd xmm1, qword ptr [rbp-30H] vaddsd xmm1, xmm1, qword ptr [reloc @RWD00] vmovsd xmm2, qword ptr [rbp-40H] vucomisd xmm2, xmm1 vmovsd qword ptr [rbp-20H], xmm0 vmovsd qword ptr [rbp-40H], xmm2 vmovsd xmm3, qword ptr [rbp-38H] ja SHORT G_M29627_IG03 ;; bbWeight=4 PerfScore 86.00 G_M29627_IG04: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz vsubsd xmm1, xmm1, qword ptr [reloc @RWD00] vaddsd xmm2, xmm1, qword ptr [reloc @RWD00] vmulsd xmm2, xmm1, xmm2 vmovsd qword ptr [rbp-30H], xmm1 vaddsd xmm3, xmm1, xmm1 vaddsd xmm3, xmm3, qword ptr [reloc @RWD00] vmulsd xmm2, xmm2, xmm3 vdivsd xmm2, xmm2, qword ptr [reloc @RWD24] vmovsd qword ptr [rbp-28H], xmm2 vmovsd xmm0, qword ptr [rbp-20H] vucomisd xmm0, xmm2 jp SHORT G_M29627_IG05 je SHORT G_M29627_IG06 ;; bbWeight=1 PerfScore 44.00 G_M29627_IG05: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0 mov rbx, rax ; gcrRegs +[rbx] vmovsd xmm1, qword ptr [rbp-30H] vmovsd qword ptr [rbx+8], xmm1 mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcr arg pop 0 mov r14, rax ; gcrRegs +[r14] vmovsd xmm0, qword ptr [rbp-20H] vmovsd qword ptr [r14+8], xmm0 mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcr arg pop 0 vmovsd xmm2, qword ptr [rbp-28H] vmovsd qword ptr [rax+8], xmm2 mov rsi, rbx ; gcrRegs +[rsi] mov rdx, r14 ; gcrRegs +[rdx] mov rcx, rax ; gcrRegs +[rcx] mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rcx rdx rbx rsi rdi r14] ; gcr arg pop 0 xor ebx, ebx ;; bbWeight=0.50 PerfScore 8.00 G_M29627_IG06: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref vmovsd xmm1, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-18H], xmm1 vmovsd xmm0, qword ptr [reloc @RWD00] vmovsd xmm2, qword ptr [reloc @RWD32] vmovsd qword ptr [rbp-50H], xmm2 ;; bbWeight=1 PerfScore 7.00 G_M29627_IG07: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz vxorps xmm1, xmm1 vmovsd qword ptr [rbp-30H], xmm0 call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vaddsd xmm0, xmm0, qword ptr [rbp-30H] vmovsd xmm1, qword ptr [rbp-18H] vaddsd xmm1, xmm1, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-30H], xmm0 vmovsd qword ptr [rbp-18H], xmm1 vucomisd xmm0, xmm1 jp SHORT G_M29627_IG08 je SHORT G_M29627_IG09 ;; bbWeight=4 PerfScore 71.33 G_M29627_IG08: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0 vmovsd xmm0, qword ptr [rbp-30H] vmovsd qword ptr [rax+8], xmm0 mov rsi, rax ; gcrRegs +[rsi] mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi] ; gcr arg pop 0 xor ebx, ebx ;; bbWeight=2 PerfScore 15.00 G_M29627_IG09: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref vmovsd xmm0, qword ptr [rbp-30H] vmovsd xmm2, qword ptr [rbp-50H] vucomisd xmm2, xmm0 vmovsd qword ptr [rbp-50H], xmm2 ja SHORT G_M29627_IG07 ;; bbWeight=4 PerfScore 26.00 G_M29627_IG10: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz vmovsd xmm3, qword ptr [reloc @RWD16] vmovsd qword ptr [rbp-18H], xmm3 vmovsd xmm0, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-30H], xmm0 vmovsd xmm2, qword ptr [reloc @RWD40] vmovsd qword ptr [rbp-48H], xmm2 align [0 bytes] ;; bbWeight=1 PerfScore 7.50 G_M29627_IG11: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, loop=IG11, byref, isz vmovsd qword ptr [rbp-38H], xmm3 vmovaps xmm0, xmm3 vmovsd xmm1, qword ptr [rbp-30H] call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vmulsd xmm1, xmm0, qword ptr [rbp-18H] vmovsd xmm0, qword ptr [rbp-30H] vaddsd xmm0, xmm0, qword ptr [reloc @RWD00] vmovsd xmm2, qword ptr [rbp-48H] vucomisd xmm2, xmm0 vmovsd qword ptr [rbp-30H], xmm0 vmovsd qword ptr [rbp-18H], xmm1 vmovsd qword ptr [rbp-48H], xmm2 vmovsd xmm3, qword ptr [rbp-38H] ja SHORT G_M29627_IG11 ;; bbWeight=4 PerfScore 93.00 G_M29627_IG12: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz vmovsd xmm1, qword ptr [rbp-18H] vucomisd xmm1, qword ptr [reloc @RWD48] jp SHORT G_M29627_IG13 je SHORT G_M29627_IG14 ;; bbWeight=1 PerfScore 5.00 G_M29627_IG13: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0 vmovsd xmm1, qword ptr [rbp-18H] vmovsd qword ptr [rax+8], xmm1 mov rsi, rax ; gcrRegs +[rsi] mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi] ; gcr arg pop 0 jmp SHORT G_M29627_IG16 ;; bbWeight=0.50 PerfScore 4.62 G_M29627_IG14: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz test ebx, ebx je SHORT G_M29627_IG16 mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rdi] ; gcr arg pop 0 mov eax, 100 ;; bbWeight=0.50 PerfScore 2.38 G_M29627_IG15: ; , epilog, nogc, extend add rsp, 64 pop rbx pop r14 pop rbp ret ;; bbWeight=0.50 PerfScore 1.38 G_M29627_IG16: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rdi] ; gcr arg pop 0 mov eax, 1 ;; bbWeight=0.50 PerfScore 1.75 G_M29627_IG17: ; , epilog, nogc, extend add rsp, 64 pop rbx pop r14 pop rbp ret ;; bbWeight=0.50 PerfScore 1.38 RWD00 dq 3FF0000000000000h ; 1 RWD08 dq 407F400000000000h ; 500 RWD16 dq 4000000000000000h ; 2 RWD24 dq 4018000000000000h ; 6 RWD32 dq 40F86A0000000000h ; 100000 RWD40 dq 4034000000000000h ; 20 RWD48 dq 4BE0000000000000h ; 3.13855087e+57 ; Total bytes of code 697, prolog size 16, PerfScore 464.27, instruction count 146, allocated bytes for code 776 (MethodHash=4bde8c44) for method pow0:Main():int ; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x08 CountOfUnwindCodes: 4 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 7 * 8 + 8 = 64 = 0x40 CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
Changed text
Open file
; Assembly listing for method pow0:Main():int ; 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 loc0 [V00,T01] ( 4, 4 ) bool -> rbx ; V01 loc1 [V01,T07] ( 9, 23.50) double -> [rbp-18H] ; V02 loc2 [V02,T10] ( 5, 10.50) double -> [rbp-20H] ; V03 loc3 [V03,T13] ( 3, 2.50) double -> [rbp-28H] spill-single-def ; V04 loc4 [V04,T06] ( 24, 63.50) double -> [rbp-30H] ;# V05 OutArgs [V05 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace" ; V06 tmp1 [V06,T08] ( 2, 16 ) double -> mm1 "dup spill" ; V07 tmp2 [V07,T00] ( 3, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V08 tmp3 [V08,T02] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V09 tmp4 [V09,T03] ( 3, 3 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" ; V10 tmp5 [V10,T04] ( 3, 3 ) ref -> r14 class-hnd exact single-def "Single-def Box Helper" ; V11 tmp6 [V11,T05] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V12 cse0 [V12,T09] ( 5, 11 ) double -> [rbp-38H] "CSE - aggressive" ; V13 cse1 [V13,T11] ( 2, 5 ) double -> [rbp-40H] "CSE - aggressive" ; V14 cse2 [V14,T12] ( 2, 5 ) double -> [rbp-48H] "CSE - aggressive" ; ; Lcl frame size = 64 G_M29627_IG01: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG push rbp push r14 push rbx sub rsp, 64 vzeroupper lea rbp, [rsp+50H] ;; bbWeight=1 PerfScore 4.75 G_M29627_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz mov ebx, 1 vxorps xmm0, xmm0 vmovsd qword ptr [rbp-20H], xmm0 vmovsd xmm1, qword ptr [reloc @RWD00] vmovsd xmm2, qword ptr [reloc @RWD08] vmovsd qword ptr [rbp-40H], xmm2 vmovsd xmm3, qword ptr [reloc @RWD16] align [0 bytes] ;; bbWeight=1 PerfScore 7.58 G_M29627_IG03: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, loop=IG03, byref, isz vmovsd qword ptr [rbp-30H], xmm1 vmovaps xmm0, xmm1 vmovsd qword ptr [rbp-38H], xmm3 vmovaps xmm1, xmm3 call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vaddsd xmm0, xmm0, qword ptr [rbp-20H] vmovsd xmm1, qword ptr [rbp-30H] vaddsd xmm1, xmm1, qword ptr [reloc @RWD00] vmovsd xmm2, qword ptr [rbp-40H] vucomisd xmm2, xmm1 vmovsd qword ptr [rbp-20H], xmm0 vmovsd qword ptr [rbp-40H], xmm2 vmovsd xmm3, qword ptr [rbp-38H] ja SHORT G_M29627_IG03 ;; bbWeight=4 PerfScore 86.00 G_M29627_IG04: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz vsubsd xmm1, xmm1, qword ptr [reloc @RWD00] vaddsd xmm2, xmm1, qword ptr [reloc @RWD00] vmulsd xmm2, xmm1, xmm2 vmovsd qword ptr [rbp-30H], xmm1 vaddsd xmm3, xmm1, xmm1 vaddsd xmm3, xmm3, qword ptr [reloc @RWD00] vmulsd xmm2, xmm2, xmm3 vdivsd xmm2, xmm2, qword ptr [reloc @RWD24] vmovsd qword ptr [rbp-28H], xmm2 vmovsd xmm0, qword ptr [rbp-20H] vucomisd xmm0, xmm2 jp SHORT G_M29627_IG05 je SHORT G_M29627_IG06 ;; bbWeight=1 PerfScore 44.00 G_M29627_IG05: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0 mov rbx, rax ; gcrRegs +[rbx] vmovsd xmm1, qword ptr [rbp-30H] vmovsd qword ptr [rbx+8], xmm1 mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcr arg pop 0 mov r14, rax ; gcrRegs +[r14] vmovsd xmm0, qword ptr [rbp-20H] vmovsd qword ptr [r14+8], xmm0 mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcr arg pop 0 vmovsd xmm2, qword ptr [rbp-28H] vmovsd qword ptr [rax+8], xmm2 mov rsi, rbx ; gcrRegs +[rsi] mov rdx, r14 ; gcrRegs +[rdx] mov rcx, rax ; gcrRegs +[rcx] mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rcx rdx rbx rsi rdi r14] ; gcr arg pop 0 xor ebx, ebx ;; bbWeight=0.50 PerfScore 8.00 G_M29627_IG06: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref vmovsd xmm1, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-18H], xmm1 vmovsd xmm0, qword ptr [reloc @RWD00] ;; bbWeight=1 PerfScore 4.50 G_M29627_IG07: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz vxorps xmm1, xmm1 vmovsd qword ptr [rbp-30H], xmm0 call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vaddsd xmm0, xmm0, qword ptr [rbp-30H] vmovsd xmm1, qword ptr [rbp-18H] vaddsd xmm1, xmm1, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-30H], xmm0 vmovsd qword ptr [rbp-18H], xmm1 vucomisd xmm0, xmm1 jp SHORT G_M29627_IG08 je SHORT G_M29627_IG09 ;; bbWeight=4 PerfScore 71.33 G_M29627_IG08: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0 vmovsd xmm0, qword ptr [rbp-30H] vmovsd qword ptr [rax+8], xmm0 mov rsi, rax ; gcrRegs +[rsi] mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi] ; gcr arg pop 0 xor ebx, ebx ;; bbWeight=2 PerfScore 15.00 G_M29627_IG09: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref vmovsd xmm2, qword ptr [reloc @RWD32] vmovsd xmm0, qword ptr [rbp-30H] vucomisd xmm2, xmm0 ja G_M29627_IG07 ;; bbWeight=4 PerfScore 24.00 G_M29627_IG10: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz, align vmovsd xmm3, qword ptr [reloc @RWD16] vmovsd qword ptr [rbp-18H], xmm3 vmovsd xmm0, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-30H], xmm0 vmovsd xmm2, qword ptr [reloc @RWD40] vmovsd qword ptr [rbp-48H], xmm2 align [3 bytes] ;; bbWeight=1 PerfScore 7.75 G_M29627_IG11: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, loop=IG11, byref, isz vmovsd qword ptr [rbp-38H], xmm3 vmovaps xmm0, xmm3 vmovsd xmm1, qword ptr [rbp-30H] call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vmulsd xmm1, xmm0, qword ptr [rbp-18H] vmovsd xmm0, qword ptr [rbp-30H] vaddsd xmm0, xmm0, qword ptr [reloc @RWD00] vmovsd xmm2, qword ptr [rbp-48H] vucomisd xmm2, xmm0 vmovsd qword ptr [rbp-30H], xmm0 vmovsd qword ptr [rbp-18H], xmm1 vmovsd qword ptr [rbp-48H], xmm2 vmovsd xmm3, qword ptr [rbp-38H] ja SHORT G_M29627_IG11 ;; bbWeight=4 PerfScore 93.00 G_M29627_IG12: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz vmovsd xmm1, qword ptr [rbp-18H] vucomisd xmm1, qword ptr [reloc @RWD48] jp SHORT G_M29627_IG13 je SHORT G_M29627_IG14 ;; bbWeight=1 PerfScore 5.00 G_M29627_IG13: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0 vmovsd xmm1, qword ptr [rbp-18H] vmovsd qword ptr [rax+8], xmm1 mov rsi, rax ; gcrRegs +[rsi] mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi] ; gcr arg pop 0 jmp SHORT G_M29627_IG16 ;; bbWeight=0.50 PerfScore 4.62 G_M29627_IG14: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz test ebx, ebx je SHORT G_M29627_IG16 mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rdi] ; gcr arg pop 0 mov eax, 100 ;; bbWeight=0.50 PerfScore 2.38 G_M29627_IG15: ; , epilog, nogc, extend add rsp, 64 pop rbx pop r14 pop rbp ret ;; bbWeight=0.50 PerfScore 1.38 G_M29627_IG16: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rdi] ; gcr arg pop 0 mov eax, 1 ;; bbWeight=0.50 PerfScore 1.75 G_M29627_IG17: ; , epilog, nogc, extend add rsp, 64 pop rbx pop r14 pop rbp ret ;; bbWeight=0.50 PerfScore 1.38 RWD00 dq 3FF0000000000000h ; 1 RWD08 dq 407F400000000000h ; 500 RWD16 dq 4000000000000000h ; 2 RWD24 dq 4018000000000000h ; 6 RWD32 dq 40F86A0000000000h ; 100000 RWD40 dq 4034000000000000h ; 20 RWD48 dq 4BE0000000000000h ; 3.13855087e+57 ; Total bytes of code 745, prolog size 16, PerfScore 458.52, instruction count 143, allocated bytes for code 761 (MethodHash=4bde8c44) for method pow0:Main():int ; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x08 CountOfUnwindCodes: 4 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 7 * 8 + 8 = 64 = 0x40 CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
Find difference