WithLeapSeconds

Created Diff never expires
32 removals
93 lines
18 additions
80 lines
; Assembly listing for method System.DateTime:.ctor(int,int,int,int,int,int,System.Globalization.Calendar):this (FullOpts)
; Assembly listing for method System.DateTime:.ctor(int,int,int,int,int,int,System.Globalization.Calendar):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; FullOpts code
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; partially interruptible
; partially interruptible
; No PGO data
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 3 inlinees without PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 this [V00,T00] ( 5, 3.50) byref -> rbx this single-def
; V00 this [V00,T00] ( 4, 3 ) byref -> rbx this single-def
; V01 arg1 [V01,T01] ( 4, 3 ) int -> rdx single-def
; V01 arg1 [V01,T01] ( 4, 3 ) int -> rdx single-def
; V02 arg2 [V02,T02] ( 4, 3 ) int -> r8 single-def
; V02 arg2 [V02,T02] ( 4, 3 ) int -> r8 single-def
; V03 arg3 [V03,T03] ( 4, 3 ) int -> r9 single-def
; V03 arg3 [V03,T03] ( 4, 3 ) int -> r9 single-def
; V04 arg4 [V04,T06] ( 2, 1 ) int -> [rbp+0x30] single-def
; V04 arg4 [V04,T06] ( 2, 1 ) int -> [rbp+0x30] single-def
; V05 arg5 [V05,T07] ( 2, 1 ) int -> [rbp+0x38] single-def
; V05 arg5 [V05,T07] ( 2, 1 ) int -> [rbp+0x38] single-def
; V06 arg6 [V06,T05] ( 2, 1.50) int -> rax single-def
; V06 arg6 [V06,T05] ( 2, 1.50) int -> rax single-def
; V07 arg7 [V07,T04] ( 5, 3 ) ref -> rcx class-hnd single-def <System.Globalization.Calendar>
; V07 arg7 [V07,T04] ( 4, 2.50) ref -> rcx class-hnd single-def <System.Globalization.Calendar>
;* V08 loc0 [V08 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.DateTime>
;* V08 loc0 [V08 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.DateTime>
; V09 OutArgs [V09 ] ( 1, 1 ) struct (64) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V09 OutArgs [V09 ] ( 1, 1 ) struct (64) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V10 tmp1 [V10 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
; V10 tmp1 [V10,T08] ( 2, 1 ) long -> rax "field V08._dateData (fldOffset=0x0)" P-INDEP
;* V11 tmp2 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.DateTime>
; V12 tmp3 [V12,T08] ( 2, 1 ) long -> rax "field V08._dateData (fldOffset=0x0)" P-INDEP
; V13 tmp4 [V13,T09] ( 2, 1 ) long -> rcx "field V10._dateData (fldOffset=0x0)" P-INDEP
; V14 tmp5 [V14,T10] ( 2, 1 ) long -> rax "field V11._dateData (fldOffset=0x0)" P-INDEP
;
;
; Lcl frame size = 72
; Lcl frame size = 72


G_M28801_IG01:
G_M28801_IG01:
push rbp
push rbp
push rbx
push rbx
sub rsp, 72
sub rsp, 72
lea rbp, [rsp+0x50]
lea rbp, [rsp+0x50]
mov rbx, rcx
mov rbx, rcx
mov eax, dword ptr [rbp+0x40]
mov eax, dword ptr [rbp+0x40]
mov rcx, gword ptr [rbp+0x48]
mov rcx, gword ptr [rbp+0x48]
;; size=21 bbWeight=1 PerfScore 5.00
;; size=21 bbWeight=1 PerfScore 5.00
G_M28801_IG02:
G_M28801_IG02:
test rcx, rcx
test rcx, rcx
je G_M28801_IG06
je SHORT G_M28801_IG06
cmp eax, 60
cmp eax, 60
jne SHORT G_M28801_IG04
jne SHORT G_M28801_IG04
;; size=14 bbWeight=1 PerfScore 2.50
;; size=10 bbWeight=1 PerfScore 2.50
G_M28801_IG03:
G_M28801_IG03:
mov eax, dword ptr [rbp+0x30]
mov eax, dword ptr [rbp+0x30]
mov dword ptr [rsp+0x20], eax
mov dword ptr [rsp+0x20], eax
mov r10d, dword ptr [rbp+0x38]
mov r10d, dword ptr [rbp+0x38]
mov dword ptr [rsp+0x28], r10d
mov dword ptr [rsp+0x28], r10d
mov dword ptr [rsp+0x30], 59
call [System.DateTime:WithLeapSecond(System.Globalization.Calendar,int,int,int,int,int):ulong]
xor eax, eax
mov qword ptr [rbx], rax
mov dword ptr [rsp+0x38], eax
mov rax, qword ptr [rcx]
mov rax, qword ptr [rax+0x68]
call [rax+0x28]System.Globalization.Calendar:ToDateTime(int,int,int,int,int,int,int):System.DateTime:this
mov rcx, 0xD1FFAB1E
and rcx, rax
mov qword ptr [rbx], rcx
mov rcx, rbx
call [System.DateTime:ValidateLeapSecond():this]
jmp SHORT G_M28801_IG05
jmp SHORT G_M28801_IG05
;; size=67 bbWeight=0.50 PerfScore 10.00
;; size=27 bbWeight=0.50 PerfScore 5.00
G_M28801_IG04:
G_M28801_IG04:
mov r10d, dword ptr [rbp+0x30]
mov r10d, dword ptr [rbp+0x30]
mov dword ptr [rsp+0x20], r10d
mov dword ptr [rsp+0x20], r10d
mov r10d, dword ptr [rbp+0x38]
mov r10d, dword ptr [rbp+0x38]
mov dword ptr [rsp+0x28], r10d
mov dword ptr [rsp+0x28], r10d
mov dword ptr [rsp+0x30], eax
mov dword ptr [rsp+0x30], eax
xor eax, eax
xor eax, eax
mov dword ptr [rsp+0x38], eax
mov dword ptr [rsp+0x38], eax
mov rax, qword ptr [rcx]
mov rax, qword ptr [rcx]
mov rax, qword ptr [rax+0x68]
mov rax, qword ptr [rax+0x68]
call [rax+0x28]System.Globalization.Calendar:ToDateTime(int,int,int,int,int,int,int):System.DateTime:this
call [rax+0x28]System.Globalization.Calendar:ToDateTime(int,int,int,int,int,int,int):System.DateTime:this
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
and rcx, rax
and rcx, rax
mov qword ptr [rbx], rcx
mov qword ptr [rbx], rcx
;; size=54 bbWeight=0.50 PerfScore 7.38
;; size=54 bbWeight=0.50 PerfScore 7.38
G_M28801_IG05:
G_M28801_IG05:
add rsp, 72
add rsp, 72
pop rbx
pop rbx
pop rbp
pop rbp
ret
ret
;; size=7 bbWeight=1 PerfScore 2.25
;; size=7 bbWeight=1 PerfScore 2.25
G_M28801_IG06:
G_M28801_IG06:
mov ecx, 0x1FC1
mov ecx, 0x1FC1
mov rdx, 0xD1FFAB1E
mov rdx, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
call CORINFO_HELP_STRCNS
mov rcx, rax
mov rcx, rax
call [System.ArgumentNullException:Throw(System.String)]
call [System.ArgumentNullException:Throw(System.String)]
int3
int3
;; size=30 bbWeight=0 PerfScore 0.00
;; size=30 bbWeight=0 PerfScore 0.00


; Total bytes of code 193, prolog size 11, PerfScore 27.12, instruction count 50, allocated bytes for code 193 (MethodHash=1e2f8f7e) for method System.DateTime:.ctor(int,int,int,int,int,int,System.Globalization.Calendar):this (FullOpts)
; Total bytes of code 149, prolog size 11, PerfScore 22.12, instruction count 41, allocated bytes for code 149 (MethodHash=1e2f8f7e) for method System.DateTime:.ctor(int,int,int,int,int,int,System.Globalization.Calendar):this (FullOpts)