Untitled Diff

作成日 差分は期限切れになりません
17 削除
267 行
11 追加
263 行
; 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]
; V03 loc3 [V03,T14] ( 3, 2.50) double -> [rbp-28H] spill-single-def
; V03 loc3 [V03,T13] ( 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"
; 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]