Untitled Diff

Created Diff never expires
119 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
207 lines
120 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
206 lines
; Assembly listing for method System.Globalization.CalendricalCalculationsHelper:EquationOfTime(double):double
; Assembly listing for method System.Globalization.CalendricalCalculationsHelper:EquationOfTime(double):double
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; optimized code
; optimized code
; rsp based frame
; rsp based frame
; partially interruptible
; partially interruptible
; Final local variable assignments
; Final local variable assignments
;
;
; V00 arg0 [V00,T08] ( 3, 3 ) double -> mm0
; V00 arg0 [V00,T09] ( 3, 3 ) double -> mm0
; V01 loc0 [V01,T07] ( 5, 5 ) double -> mm6
; V01 loc0 [V01,T07] ( 5, 5 ) double -> mm6
; V02 loc1 [V02,T19] ( 3, 3 ) double -> [rsp+0x38]
; V02 loc1 [V02,T10] ( 4, 4 ) double -> mm7
; V03 loc2 [V03,T20] ( 3, 3 ) double -> [rsp+0x30]
; V03 loc2 [V03,T11] ( 4, 4 ) double -> mm8
; V04 loc3 [V04,T09] ( 4, 4 ) double -> mm7
; V04 loc3 [V04,T08] ( 5, 5 ) double -> mm9
; V05 loc4 [V05,T25] ( 2, 2 ) double -> mm0
; V05 loc4 [V05,T25] ( 2, 2 ) double -> mm0
; V06 loc5 [V06,T21] ( 3, 3 ) double -> mm0
; V06 loc5 [V06,T21] ( 3, 3 ) double -> mm0
; V07 loc6 [V07,T10] ( 4, 4 ) double -> mm6
; V07 loc6 [V07,T12] ( 4, 4 ) double -> mm6
; V08 loc7 [V08,T26] ( 2, 2 ) double -> mm0
; V08 loc7 [V08,T26] ( 2, 2 ) double -> mm0
; V09 loc8 [V09,T22] ( 3, 3 ) double -> mm1
; V09 loc8 [V09,T22] ( 3, 3 ) double -> mm1
; V10 OutArgs [V10 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
; V10 OutArgs [V10 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
; V11 tmp1 [V11,T11] ( 2, 4 ) double -> mm8 "impAppendStmt"
; V11 tmp1 [V11,T13] ( 2, 4 ) double -> mm10 "impAppendStmt"
; V12 tmp2 [V12,T12] ( 2, 4 ) double -> mm8 "impAppendStmt"
; V12 tmp2 [V12,T14] ( 2, 4 ) double -> mm10 "impAppendStmt"
; V13 tmp3 [V13,T13] ( 2, 4 ) double -> mm9 "impAppendStmt"
; V13 tmp3 [V13,T15] ( 2, 4 ) double -> mm11 "impAppendStmt"
; V14 tmp4 [V14,T14] ( 2, 4 ) double -> mm8 "impAppendStmt"
; V14 tmp4 [V14,T16] ( 2, 4 ) double -> mm10 "impAppendStmt"
; V15 tmp5 [V15,T15] ( 2, 4 ) double -> mm6 "impAppendStmt"
; V15 tmp5 [V15,T17] ( 2, 4 ) double -> mm6 "impAppendStmt"
; V16 tmp6 [V16,T16] ( 2, 4 ) double -> mm6 "impAppendStmt"
; V16 tmp6 [V16,T18] ( 2, 4 ) double -> mm6 "impAppendStmt"
; V17 tmp7 [V17,T17] ( 2, 4 ) double -> mm7 "impAppendStmt"
; V17 tmp7 [V17,T19] ( 2, 4 ) double -> mm7 "impAppendStmt"
;* V18 tmp8 [V18 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V18 tmp8 [V18 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V19 tmp9 [V19 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V19 tmp9 [V19 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V20 tmp10 [V20 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V20 tmp10 [V20 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V21 tmp11 [V21 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V21 tmp11 [V21 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V22 tmp12 [V22 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V22 tmp12 [V22 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V23 tmp13 [V23 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V23 tmp13 [V23 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V24 tmp14 [V24 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V24 tmp14 [V24 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V25 tmp15 [V25 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V25 tmp15 [V25 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V26 tmp16 [V26 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V26 tmp16 [V26 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V27 tmp17 [V27 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V27 tmp17 [V27 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
; V28 tmp18 [V28,T18] ( 5, 3 ) double -> mm0 "Inline return value spill temp"
; V28 tmp18 [V28,T20] ( 5, 3 ) double -> mm0 "Inline return value spill temp"
; V29 tmp19 [V29,T06] ( 8, 8 ) double -> mm0 "Inlining Arg"
; V29 tmp19 [V29,T06] ( 8, 8 ) double -> mm0 "Inlining Arg"
; V30 tmp20 [V30,T05] ( 2, 0.50) long -> rax "Inline return value spill temp"
; V30 tmp20 [V30,T05] ( 2, 0.50) long -> rax "Inline return value spill temp"
;* V31 tmp21 [V31 ] ( 0, 0 ) double -> zero-ref ld-addr-op "Inlining Arg"
;* V31 tmp21 [V31 ] ( 0, 0 ) double -> zero-ref ld-addr-op "Inlining Arg"
; V32 tmp22 [V32,T27] ( 2, 0.50) simd16 -> mm2 "Inline stloc first use temp"
; V32 tmp22 [V32,T27] ( 2, 0.50) simd16 -> mm2 "Inline stloc first use temp"
; V33 tmp23 [V33,T00] ( 2, 4 ) ref -> rcx "argument with side effect"
; V33 tmp23 [V33,T00] ( 2, 4 ) ref -> rcx "argument with side effect"
; V34 tmp24 [V34,T01] ( 2, 4 ) ref -> rcx "argument with side effect"
; V34 tmp24 [V34,T01] ( 2, 4 ) ref -> rcx "argument with side effect"
; V35 tmp25 [V35,T02] ( 2, 4 ) ref -> rcx "argument with side effect"
; V35 tmp25 [V35,T02] ( 2, 4 ) ref -> rcx "argument with side effect"
; V36 tmp26 [V36,T03] ( 2, 4 ) ref -> rcx "argument with side effect"
; V36 tmp26 [V36,T03] ( 2, 4 ) ref -> rcx "argument with side effect"
; V37 cse0 [V37,T23] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V37 cse0 [V37,T23] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V38 cse1 [V38,T24] ( 3, 3 ) double -> [rsp+0x28] "CSE - aggressive"
; V38 cse1 [V38,T24] ( 3, 3 ) double -> [rsp+0x20] "CSE - aggressive"
;* V39 cse2 [V39,T04] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;* V39 cse2 [V39,T04] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
; TEMP_01 double -> [rsp+0x28]
;
;
; Lcl frame size = 136
; Lcl frame size = 152


G_M41939_IG01:
G_M41939_IG01:
sub rsp, 136
sub rsp, 152
vzeroupper
vzeroupper
vmovaps qword ptr [rsp+70H], xmm6
vmovaps qword ptr [rsp+80H], xmm6
vmovaps qword ptr [rsp+60H], xmm7
vmovaps qword ptr [rsp+70H], xmm7
vmovaps qword ptr [rsp+50H], xmm8
vmovaps qword ptr [rsp+60H], xmm8
vmovaps qword ptr [rsp+40H], xmm9
vmovaps qword ptr [rsp+50H], xmm9
;; bbWeight=1 PerfScore 13.25
vmovaps qword ptr [rsp+40H], xmm10
vmovaps qword ptr [rsp+30H], xmm11
;; bbWeight=1 PerfScore 19.25
G_M41939_IG02:
G_M41939_IG02:
call System.Globalization.CalendricalCalculationsHelper:JulianCenturies(double):double
call System.Globalization.CalendricalCalculationsHelper:JulianCenturies(double):double
vmovaps xmm6, xmm0
vmovaps xmm6, xmm0
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov edx, 0x6D9
mov edx, 0x6D9
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
vmovaps xmm1, xmm6
vmovaps xmm1, xmm6
call System.Globalization.CalendricalCalculationsHelper:PolynomialSum(System.Double[],double):double
call System.Globalization.CalendricalCalculationsHelper:PolynomialSum(System.Double[],double):double
vmovsd qword ptr [rsp+38H], xmm0
vmovaps xmm7, xmm0
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
vmovaps xmm1, xmm6
vmovaps xmm1, xmm6
call System.Globalization.CalendricalCalculationsHelper:PolynomialSum(System.Double[],double):double
call System.Globalization.CalendricalCalculationsHelper:PolynomialSum(System.Double[],double):double
vmovsd qword ptr [rsp+30H], xmm0
vmovaps xmm8, xmm0
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
vmovaps xmm1, xmm6
vmovaps xmm1, xmm6
call System.Globalization.CalendricalCalculationsHelper:PolynomialSum(System.Double[],double):double
call System.Globalization.CalendricalCalculationsHelper:PolynomialSum(System.Double[],double):double
vmovaps xmm7, xmm0
vmovaps xmm9, xmm0
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
vmovaps xmm1, xmm6
vmovaps xmm1, xmm6
call System.Globalization.CalendricalCalculationsHelper:PolynomialSum(System.Double[],double):double
call System.Globalization.CalendricalCalculationsHelper:PolynomialSum(System.Double[],double):double
vmulsd xmm0, xmm0, qword ptr [reloc @RWD00]
vmulsd xmm0, xmm0, qword ptr [reloc @RWD00]
vmulsd xmm0, xmm0, qword ptr [reloc @RWD08]
vmulsd xmm0, xmm0, qword ptr [reloc @RWD08]
vdivsd xmm0, xmm0, qword ptr [reloc @RWD16]
vdivsd xmm0, xmm0, qword ptr [reloc @RWD16]
call System.Math:Tan(double):double
call System.Math:Tan(double):double
vmulsd xmm6, xmm0, xmm0
vmulsd xmm6, xmm0, xmm0
vmovsd xmm0, qword ptr [rsp+38H]
vaddsd xmm0, xmm7, xmm7
vmulsd xmm1, xmm0, qword ptr [reloc @RWD24]
vmulsd xmm0, xmm0, qword ptr [reloc @RWD24]
vmulsd xmm1, xmm1, qword ptr [reloc @RWD32]
vdivsd xmm0, xmm0, qword ptr [reloc @RWD32]
vdivsd xmm1, xmm1, qword ptr [reloc @RWD40]
vmovsd qword ptr [rsp+20H], xmm0
vmovsd qword ptr [rsp+28H], xmm1
vmovaps xmm0, xmm1
call System.Math:Sin(double):double
call System.Math:Sin(double):double
vmulsd xmm8, xmm0, xmm6
vmulsd xmm10, xmm0, xmm6
vmovsd xmm0, qword ptr [rsp+30H]
vaddsd xmm1, xmm9, xmm9
vmulsd xmm1, xmm0, qword ptr [reloc @RWD48]
vmovsd qword ptr [rsp+28H], xmm1
vdivsd xmm0, xmm1, qword ptr [reloc @RWD56]
vmulsd xmm0, xmm8, qword ptr [reloc @RWD40]
vdivsd xmm0, xmm0, qword ptr [reloc @RWD48]
call System.Math:Sin(double):double
call System.Math:Sin(double):double
vmulsd xmm1, xmm7, qword ptr [reloc @RWD64]
vmovsd xmm1, qword ptr [rsp+28H]
vmulsd xmm1, xmm0, xmm1
vmulsd xmm1, xmm1, xmm0
vsubsd xmm8, xmm8, xmm1
vsubsd xmm10, xmm10, xmm1
vmulsd xmm1, xmm7, qword ptr [reloc @RWD72]
vmulsd xmm1, xmm9, qword ptr [reloc @RWD56]
vmulsd xmm1, xmm1, xmm6
vmulsd xmm1, xmm1, xmm6
vmulsd xmm9, xmm1, xmm0
vmulsd xmm11, xmm1, xmm0
vmovsd xmm0, qword ptr [rsp+28H]
vmovsd xmm0, qword ptr [rsp+20H]
call System.Math:Cos(double):double
call System.Math:Cos(double):double
vmulsd xmm1, xmm0, xmm9
vmulsd xmm1, xmm0, xmm11
vaddsd xmm8, xmm1, xmm8
vaddsd xmm10, xmm1, xmm10
vmovsd xmm1, qword ptr [reloc @RWD80]
vmovsd xmm1, qword ptr [reloc @RWD64]
vmovaps xmm0, xmm6
vmovaps xmm0, xmm6
call System.Math:Pow(double,double):double
call System.Math:Pow(double,double):double
vmulsd xmm6, xmm0, qword ptr [reloc @RWD88]
vmulsd xmm6, xmm0, qword ptr [reloc @RWD72]
vmovsd xmm0, qword ptr [rsp+38H]
vmulsd xmm0, xmm7, qword ptr [reloc @RWD80]
vmulsd xmm0, xmm0, qword ptr [reloc @RWD96]
vmulsd xmm0, xmm0, qword ptr [reloc @RWD88]
vmulsd xmm0, xmm0, qword ptr [reloc @RWD104]
vdivsd xmm0, xmm0, qword ptr [reloc @RWD96]
vdivsd xmm0, xmm0, qword ptr [reloc @RWD112]
call System.Math:Sin(double):double
call System.Math:Sin(double):double
;; bbWeight=1 PerfScore 165.00
G_M41939_IG03:
vmulsd xmm1, xmm0, xmm6
vmulsd xmm1, xmm0, xmm6
vsubsd xmm6, xmm8, xmm1
vsubsd xmm6, xmm10, xmm1
vmovsd xmm1, qword ptr [reloc @RWD120]
;; bbWeight=1 PerfScore 162.75
vmovaps xmm0, xmm7
G_M41939_IG03:
vmovsd xmm1, qword ptr [reloc @RWD104]
vmovaps xmm0, xmm9
call System.Math:Pow(double,double):double
call System.Math:Pow(double,double):double
vmulsd xmm7, xmm0, qword ptr [reloc @RWD128]
vmulsd xmm7, xmm0, qword ptr [reloc @RWD112]
vmovsd xmm0, qword ptr [rsp+30H]
vaddsd xmm0, xmm8, xmm8
vmulsd xmm0, xmm0, qword ptr [reloc @RWD136]
vmulsd xmm0, xmm0, qword ptr [reloc @RWD120]
vmulsd xmm0, xmm0, qword ptr [reloc @RWD144]
vdivsd xmm0, xmm0, qword ptr [reloc @RWD128]
vdivsd xmm0, xmm0, qword ptr [reloc @RWD152]
call System.Math:Sin(double):double
call System.Math:Sin(double):double
vmulsd xmm0, xmm0, xmm7
vmulsd xmm0, xmm0, xmm7
vsubsd xmm0, xmm6, xmm0
vsubsd xmm0, xmm6, xmm0
vdivsd xmm1, xmm0, qword ptr [reloc @RWD160]
vdivsd xmm1, xmm0, qword ptr [reloc @RWD136]
vmovsd xmm0, qword ptr [reloc @RWD168]
vmovsd xmm0, qword ptr [reloc @RWD144]
vandps xmm0, xmm1
vandps xmm0, xmm1
vucomisd xmm0, qword ptr [reloc @RWD176]
vucomisd xmm0, qword ptr [reloc @RWD152]
jp SHORT G_M41939_IG04
jp SHORT G_M41939_IG04
je SHORT G_M41939_IG07
je SHORT G_M41939_IG07
;; bbWeight=1 PerfScore 66.58
;; bbWeight=1 PerfScore 56.58
G_M41939_IG04:
G_M41939_IG04:
vucomisd xmm0, xmm0
vucomisd xmm0, xmm0
jp SHORT G_M41939_IG07
jp SHORT G_M41939_IG07
vmovsd xmm2, qword ptr [reloc @RWD184]
vmovsd xmm2, qword ptr [reloc @RWD160]
vucomisd xmm2, xmm0
vucomisd xmm2, xmm0
ja SHORT G_M41939_IG06
ja SHORT G_M41939_IG06
;; bbWeight=0.25 PerfScore 1.50
;; bbWeight=0.25 PerfScore 1.50
G_M41939_IG05:
G_M41939_IG05:
vmovsd xmm0, qword ptr [reloc @RWD192]
vmovsd xmm0, qword ptr [reloc @RWD168]
jmp SHORT G_M41939_IG09
jmp SHORT G_M41939_IG09
;; bbWeight=0.50 PerfScore 2.00
;; bbWeight=0.50 PerfScore 2.00
G_M41939_IG06:
G_M41939_IG06:
jmp SHORT G_M41939_IG09
jmp SHORT G_M41939_IG09
;; bbWeight=0.50 PerfScore 1.00
;; bbWeight=0.50 PerfScore 1.00
G_M41939_IG07:
G_M41939_IG07:
vmovaps xmm2, xmm0
vmovaps xmm2, xmm0
vmovd rax, xmm2
vmovd rax, xmm2
test rax, rax
test rax, rax
jl SHORT G_M41939_IG09
jl SHORT G_M41939_IG09
;; bbWeight=0.25 PerfScore 0.63
;; bbWeight=0.25 PerfScore 0.63
G_M41939_IG08:
G_M41939_IG08:
vmovsd xmm0, qword ptr [reloc @RWD200]
vmovsd xmm0, qword ptr [reloc @RWD176]
jmp SHORT G_M41939_IG09
jmp SHORT G_M41939_IG09
;; bbWeight=0.50 PerfScore 2.00
;; bbWeight=0.50 PerfScore 2.00
G_M41939_IG09:
G_M41939_IG09:
call System.Globalization.CalendricalCalculationsHelper:CopySign(double,double):double
call System.Globalization.CalendricalCalculationsHelper:CopySign(double,double):double
nop
nop
;; bbWeight=1 PerfScore 1.25
;; bbWeight=1 PerfScore 1.25
G_M41939_IG10:
G_M41939_IG10:
vmovaps xmm6, qword ptr [rsp+70H]
vmovaps xmm6, qword ptr [rsp+80H]
vmovaps xmm7, qword ptr [rsp+60H]
vmovaps xmm7, qword ptr [rsp+70H]
vmovaps xmm8, qword ptr [rsp+50H]
vmovaps xmm8, qword ptr [rsp+60H]
vmovaps xmm9, qword ptr [rsp+40H]
vmovaps xmm9, qword ptr [rsp+50H]
add rsp, 136
vmovaps xmm10, qword ptr [rsp+40H]
vmovaps xmm11, qword ptr [rsp+30H]
add rsp, 152
ret
ret
;; bbWeight=1 PerfScore 17.25
;; bbWeight=1 PerfScore 25.25
RWD00 dq 3FE0000000000000h
RWD00 dq 3FE0000000000000h
RWD08 dq 400921FB54442D18h
RWD08 dq 400921FB54442D18h
RWD16 dq 4066800000000000h
RWD16 dq 4066800000000000h
RWD24 dq 4000000000000000h
RWD24 dq 400921FB54442D18h
RWD32 dq 400921FB54442D18h
RWD32 dq 4066800000000000h
RWD40 dq 4066800000000000h
RWD40 dq 400921FB54442D18h
RWD48 dq 400921FB54442D18h
RWD48 dq 4066800000000000h
RWD56 dq 4066800000000000h
RWD56 dq 4010000000000000h
RWD64 dq 4000000000000000h
RWD64 dq 4000000000000000h
RWD72 dq 4010000000000000h
RWD72 dq 3FE0000000000000h
RWD80 dq 4000000000000000h
RWD80 dq 4010000000000000h
RWD88 dq 3FE0000000000000h
RWD88 dq 400921FB54442D18h
RWD96 dq 4010000000000000h
RWD96 dq 4066800000000000h
RWD104 dq 400921FB54442D18h
RWD104 dq 4000000000000000h
RWD112 dq 4066800000000000h
RWD112 dq 3FF4000000000000h
RWD120 dq 4000000000000000h
RWD120 dq 400921FB54442D18h
RWD128 dq 3FF4000000000000h
RWD128 dq 4066800000000000h
RWD136 dq 4000000000000000h
RWD136 dq 401921FB54442D18h
RWD144 dq 400921FB54442D18h
RWD144 dq 7FFFFFFFFFFFFFFFh
RWD152 dq 4066800000000000h
RWD152 dq 3FE0000000000000h
RWD160 dq 401921FB54442D18h
RWD160 dq 3FE0000000000000h
RWD168 dq 7FFFFFFFFFFFFFFFh
RWD168 dq 3FE0000000000000h
RWD176 dq 3FE0000000000000h
RWD176 dq 3FE0000000000000h
RWD184 dq 3FE0000000000000h
RWD192 dq 3FE0000000000000h
RWD200 dq 3FE0000000000000h




; Total bytes of code 591, prolog size 34, PerfScore 336.06, (MethodHash=32685c2c) for method System.Globalization.CalendricalCalculationsHelper:EquationOfTime(double):double
; Total bytes of code 592, prolog size 49, PerfScore 337.71, (MethodHash=32685c2c) for method System.Globalization.CalendricalCalculationsHelper:EquationOfTime(double):double
; ============================================================
; ============================================================