-5 (-1.57 % of base) - System.Globalization.EastAsianLunisolarCalendar:MaxEraCalendarYear(int):int:this
; Assembly listing for method System.Globalization.EastAsianLunisolarCalendar:MaxEraCalendarYear(int):int:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 11, 7.50) ref -> rbx this class-hnd single-def <System.Globalization.EastAsianLunisolarCalendar>
+; V00 this [V00,T01] ( 15, 9.50) ref -> rbx this class-hnd single-def <System.Globalization.EastAsianLunisolarCalendar>
; V01 arg1 [V01,T02] ( 7, 7.50) int -> r15
-; V02 loc0 [V02,T03] ( 5, 7 ) ref -> r12 class-hnd exact single-def <System.Globalization.EraInfo[]>
-; V03 loc1 [V03,T08] ( 2, 1 ) int -> rdi
+; V02 loc0 [V02,T03] ( 5, 7 ) ref -> r13 class-hnd exact single-def <System.Globalization.EraInfo[]>
+; V03 loc1 [V03,T07] ( 2, 1 ) int -> rdi
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) struct ( 8) zero-ref multireg-ret "spilled call-like call argument" <System.DateTime>
-; V06 tmp2 [V06,T11] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <System.Int32>
-; V07 tmp3 [V07,T12] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
-; V08 tmp4 [V08,T07] ( 2, 2 ) int -> r12 "non-inline candidate call"
+; V06 tmp2 [V06,T10] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <System.Int32>
+; V07 tmp3 [V07,T11] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
+; V08 tmp4 [V08,T06] ( 2, 2 ) int -> r13 "non-inline candidate call"
;* V09 tmp5 [V09 ] ( 0, 0 ) struct ( 8) zero-ref multireg-ret "spilled call-like call argument" <System.DateTime>
-; V10 tmp6 [V10,T09] ( 2, 1 ) long -> rsi "field V05._dateData (fldOffset=0x0)" P-INDEP
-; V11 tmp7 [V11,T10] ( 2, 1 ) long -> rdx "field V09._dateData (fldOffset=0x0)" P-INDEP
-; V12 tmp8 [V12,T13] ( 2, 0 ) ref -> r14 single-def "argument with side effect"
-; V13 tmp9 [V13,T14] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V14 cse0 [V14,T05] ( 7, 4.50) long -> r13 "CSE #02: aggressive"
+; V10 tmp6 [V10,T08] ( 2, 1 ) long -> rsi "field V05._dateData (fldOffset=0x0)" P-INDEP
+; V11 tmp7 [V11,T09] ( 2, 1 ) long -> rdx "field V09._dateData (fldOffset=0x0)" P-INDEP
+; V12 tmp8 [V12,T12] ( 2, 0 ) ref -> r14 single-def "argument with side effect"
+; V13 tmp9 [V13,T13] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V14 cse0 [V14,T05] ( 7, 4.50) long -> r14 "CSE #02: aggressive"
; V15 cse1 [V15,T04] ( 3, 5 ) int -> rcx "CSE #03: aggressive"
-; V16 cse2 [V16,T06] ( 4, 3 ) long -> r14 "CSE #01: aggressive"
-; V17 rat0 [V17,T00] ( 6, 17 ) long -> rdi "Widened IV V03"
+; V16 rat0 [V16,T00] ( 6, 17 ) long -> rdi "Widened IV V03"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M1184_IG01:
push rbp
push r15
push r14
push r13
- push r12
push rbx
- push rax
- lea rbp, [rsp+0x30]
+ lea rbp, [rsp+0x20]
mov rbx, rdi
mov r15d, esi
- ;; size=22 bbWeight=1 PerfScore 8.00
+ ;; size=19 bbWeight=1 PerfScore 6.00
G_M1184_IG02:
mov rdi, rbx
- mov r14, qword ptr [rbx]
- mov r13, qword ptr [r14+0x78]
- call [r13+0x28]System.Globalization.EastAsianLunisolarCalendar:get_CalEraInfo():System.Globalization.EraInfo[]:this
- mov r12, rax
- test r12, r12
+ mov rax, qword ptr [rbx]
+ mov r14, qword ptr [rax+0x78]
+ call [r14+0x20]System.Globalization.EastAsianLunisolarCalendar:get_CalEraInfo():System.Globalization.EraInfo[]:this
+ mov r13, rax
+ test r13, r13
jne SHORT G_M1184_IG05
;; size=22 bbWeight=1 PerfScore 8.75
G_M1184_IG03:
mov rdi, rbx
- mov rax, r13
+ mov rax, r14
;; size=6 bbWeight=0.50 PerfScore 0.25
G_M1184_IG04:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
- tail.jmp [rax+0x20]System.Globalization.EastAsianLunisolarCalendar:get_MaxCalendarYear():int:this
- ;; size=18 bbWeight=0.50 PerfScore 2.62
+ tail.jmp [rax+0x18]System.Globalization.EastAsianLunisolarCalendar:get_MaxCalendarYear():int:this
+ ;; size=12 bbWeight=0.50 PerfScore 2.25
G_M1184_IG05:
test r15d, r15d
+ jne SHORT G_M1184_IG07
+ cmp dword ptr [rbx+0x08], -1
jne SHORT G_M1184_IG06
mov rdi, rbx
- mov rax, qword ptr [r14+0x48]
- call [rax+0x10]System.Globalization.Calendar:get_CurrentEraValue():int:this
- mov r15d, eax
- ;; size=18 bbWeight=0.50 PerfScore 3.38
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.CalendarData:GetCalendarCurrentEra(System.Globalization.Calendar):int
+ call [rax]System.Globalization.CalendarData:GetCalendarCurrentEra(System.Globalization.Calendar):int
+ mov dword ptr [rbx+0x08], eax
+ ;; size=29 bbWeight=0.50 PerfScore 4.88
G_M1184_IG06:
+ mov r15d, dword ptr [rbx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M1184_IG07:
mov rdi, rbx
- call [r13+0x38]System.Globalization.EastAsianLunisolarCalendar:get_MaxDate():System.DateTime:this
+ call [r14+0x30]System.Globalization.EastAsianLunisolarCalendar:get_MaxDate():System.DateTime:this
mov rsi, rax
mov rdi, rbx
- mov rax, qword ptr [r14+0x58]
- call [rax+0x10]System.Globalization.Calendar:GetEra(System.DateTime):int:this
+ mov rax, qword ptr [rbx]
+ mov rax, qword ptr [rax+0x58]
+ call [rax+0x08]System.Globalization.Calendar:GetEra(System.DateTime):int:this
cmp eax, r15d
- jne SHORT G_M1184_IG08
+ jne SHORT G_M1184_IG09
mov rdi, rbx
- call [r13+0x20]System.Globalization.EastAsianLunisolarCalendar:get_MaxCalendarYear():int:this
- mov r12d, eax
+ call [r14+0x18]System.Globalization.EastAsianLunisolarCalendar:get_MaxCalendarYear():int:this
+ mov r13d, eax
mov rdi, rbx
- call [r13+0x38]System.Globalization.EastAsianLunisolarCalendar:get_MaxDate():System.DateTime:this
+ call [r14+0x30]System.Globalization.EastAsianLunisolarCalendar:get_MaxDate():System.DateTime:this
mov rdx, rax
mov rdi, rbx
- mov esi, r12d
- mov rax, r13
- ;; size=54 bbWeight=0.50 PerfScore 8.88
-G_M1184_IG07:
- add rsp, 8
+ mov esi, r13d
+ mov rax, r14
+ ;; size=57 bbWeight=0.50 PerfScore 9.88
+G_M1184_IG08:
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
- tail.jmp [rax+0x08]System.Globalization.EastAsianLunisolarCalendar:GetYear(int,System.DateTime):int:this
- ;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M1184_IG08:
+ tail.jmp [rax]System.Globalization.EastAsianLunisolarCalendar:GetYear(int,System.DateTime):int:this
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
+G_M1184_IG09:
xor edi, edi
- mov ecx, dword ptr [r12+0x08]
+ mov ecx, dword ptr [r13+0x08]
test ecx, ecx
- jle SHORT G_M1184_IG13
- align [0 bytes for IG09]
- ;; size=11 bbWeight=0.50 PerfScore 1.75
-G_M1184_IG09:
- mov rax, gword ptr [r12+8*rdi+0x10]
+ jle SHORT G_M1184_IG14
+ align [0 bytes for IG10]
+ ;; size=10 bbWeight=0.50 PerfScore 1.75
+G_M1184_IG10:
+ mov rax, gword ptr [r13+8*rdi+0x10]
cmp dword ptr [rax+0x28], r15d
- jne SHORT G_M1184_IG12
+ jne SHORT G_M1184_IG13
;; size=11 bbWeight=4 PerfScore 24.00
-G_M1184_IG10:
+G_M1184_IG11:
mov eax, edi
- mov rax, gword ptr [r12+8*rax+0x10]
+ mov rax, gword ptr [r13+8*rax+0x10]
mov eax, dword ptr [rax+0x34]
;; size=10 bbWeight=0.50 PerfScore 2.12
-G_M1184_IG11:
- add rsp, 8
+G_M1184_IG12:
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M1184_IG12:
+ ;; size=9 bbWeight=0.50 PerfScore 1.75
+G_M1184_IG13:
inc edi
cmp ecx, edi
- jg SHORT G_M1184_IG09
+ jg SHORT G_M1184_IG10
;; size=6 bbWeight=4 PerfScore 6.00
-G_M1184_IG13:
+G_M1184_IG14:
mov rdi, 0xD1FFAB1E ; System.Int32
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov dword ptr [rbx+0x08], r15d
mov rdi, 0xD1FFAB1E ; System.ArgumentOutOfRangeException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov edi, 0x14AFC
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov r14, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_ArgumentOutOfRange_InvalidEraValue():System.String
call [rax]System.SR:get_ArgumentOutOfRange_InvalidEraValue():System.String
mov rcx, rax
mov rsi, r14
mov rdx, rbx
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:.ctor(System.String,System.Object,System.String):this
call [rax]System.ArgumentOutOfRangeException:.ctor(System.String,System.Object,System.String):this
mov rdi, r15
call CORINFO_HELP_THROW
int3
;; size=108 bbWeight=0 PerfScore 0.00
-; Total bytes of code 319, prolog size 22, PerfScore 70.50, instruction count 102, allocated bytes for code 319 (MethodHash=016bfb5f) for method System.Globalization.EastAsianLunisolarCalendar:MaxEraCalendarYear(int):int:this (FullOpts)
+; Total bytes of code 314, prolog size 19, PerfScore 70.88, instruction count 98, allocated bytes for code 314 (MethodHash=016bfb5f) for method System.Globalization.EastAsianLunisolarCalendar:MaxEraCalendarYear(int):int:this (FullOpts)
-5 (-1.57 % of base) - System.Globalization.EastAsianLunisolarCalendar:MinEraCalendarYear(int):int:this
; Assembly listing for method System.Globalization.EastAsianLunisolarCalendar:MinEraCalendarYear(int):int:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 11, 7.50) ref -> rbx this class-hnd single-def <System.Globalization.EastAsianLunisolarCalendar>
+; V00 this [V00,T01] ( 15, 9.50) ref -> rbx this class-hnd single-def <System.Globalization.EastAsianLunisolarCalendar>
; V01 arg1 [V01,T02] ( 7, 7.50) int -> r15
-; V02 loc0 [V02,T03] ( 5, 7 ) ref -> r12 class-hnd exact single-def <System.Globalization.EraInfo[]>
-; V03 loc1 [V03,T08] ( 2, 1 ) int -> rdi
+; V02 loc0 [V02,T03] ( 5, 7 ) ref -> r13 class-hnd exact single-def <System.Globalization.EraInfo[]>
+; V03 loc1 [V03,T07] ( 2, 1 ) int -> rdi
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) struct ( 8) zero-ref multireg-ret "spilled call-like call argument" <System.DateTime>
-; V06 tmp2 [V06,T11] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <System.Int32>
-; V07 tmp3 [V07,T12] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
-; V08 tmp4 [V08,T07] ( 2, 2 ) int -> r12 "non-inline candidate call"
+; V06 tmp2 [V06,T10] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <System.Int32>
+; V07 tmp3 [V07,T11] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
+; V08 tmp4 [V08,T06] ( 2, 2 ) int -> r13 "non-inline candidate call"
;* V09 tmp5 [V09 ] ( 0, 0 ) struct ( 8) zero-ref multireg-ret "spilled call-like call argument" <System.DateTime>
-; V10 tmp6 [V10,T09] ( 2, 1 ) long -> rsi "field V05._dateData (fldOffset=0x0)" P-INDEP
-; V11 tmp7 [V11,T10] ( 2, 1 ) long -> rdx "field V09._dateData (fldOffset=0x0)" P-INDEP
-; V12 tmp8 [V12,T13] ( 2, 0 ) ref -> r14 single-def "argument with side effect"
-; V13 tmp9 [V13,T14] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V14 cse0 [V14,T05] ( 7, 4.50) long -> r13 "CSE #02: aggressive"
+; V10 tmp6 [V10,T08] ( 2, 1 ) long -> rsi "field V05._dateData (fldOffset=0x0)" P-INDEP
+; V11 tmp7 [V11,T09] ( 2, 1 ) long -> rdx "field V09._dateData (fldOffset=0x0)" P-INDEP
+; V12 tmp8 [V12,T12] ( 2, 0 ) ref -> r14 single-def "argument with side effect"
+; V13 tmp9 [V13,T13] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V14 cse0 [V14,T05] ( 7, 4.50) long -> r14 "CSE #02: aggressive"
; V15 cse1 [V15,T04] ( 3, 5 ) int -> rcx "CSE #03: aggressive"
-; V16 cse2 [V16,T06] ( 4, 3 ) long -> r14 "CSE #01: aggressive"
-; V17 rat0 [V17,T00] ( 6, 17 ) long -> rdi "Widened IV V03"
+; V16 rat0 [V16,T00] ( 6, 17 ) long -> rdi "Widened IV V03"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M38142_IG01:
push rbp
push r15
push r14
push r13
- push r12
push rbx
- push rax
- lea rbp, [rsp+0x30]
+ lea rbp, [rsp+0x20]
mov rbx, rdi
mov r15d, esi
- ;; size=22 bbWeight=1 PerfScore 8.00
+ ;; size=19 bbWeight=1 PerfScore 6.00
G_M38142_IG02:
mov rdi, rbx
- mov r14, qword ptr [rbx]
- mov r13, qword ptr [r14+0x78]
- call [r13+0x28]System.Globalization.EastAsianLunisolarCalendar:get_CalEraInfo():System.Globalization.EraInfo[]:this
- mov r12, rax
- test r12, r12
+ mov rax, qword ptr [rbx]
+ mov r14, qword ptr [rax+0x78]
+ call [r14+0x20]System.Globalization.EastAsianLunisolarCalendar:get_CalEraInfo():System.Globalization.EraInfo[]:this
+ mov r13, rax
+ test r13, r13
jne SHORT G_M38142_IG05
;; size=22 bbWeight=1 PerfScore 8.75
G_M38142_IG03:
mov rdi, rbx
- mov rax, r13
+ mov rax, r14
;; size=6 bbWeight=0.50 PerfScore 0.25
G_M38142_IG04:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
- tail.jmp [rax+0x18]System.Globalization.EastAsianLunisolarCalendar:get_MinCalendarYear():int:this
- ;; size=18 bbWeight=0.50 PerfScore 2.62
+ tail.jmp [rax+0x10]System.Globalization.EastAsianLunisolarCalendar:get_MinCalendarYear():int:this
+ ;; size=12 bbWeight=0.50 PerfScore 2.25
G_M38142_IG05:
test r15d, r15d
+ jne SHORT G_M38142_IG07
+ cmp dword ptr [rbx+0x08], -1
jne SHORT G_M38142_IG06
mov rdi, rbx
- mov rax, qword ptr [r14+0x48]
- call [rax+0x10]System.Globalization.Calendar:get_CurrentEraValue():int:this
- mov r15d, eax
- ;; size=18 bbWeight=0.50 PerfScore 3.38
+ mov rax, 0xD1FFAB1E ; code for System.Globalization.CalendarData:GetCalendarCurrentEra(System.Globalization.Calendar):int
+ call [rax]System.Globalization.CalendarData:GetCalendarCurrentEra(System.Globalization.Calendar):int
+ mov dword ptr [rbx+0x08], eax
+ ;; size=29 bbWeight=0.50 PerfScore 4.88
G_M38142_IG06:
+ mov r15d, dword ptr [rbx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M38142_IG07:
mov rdi, rbx
- call [r13+0x30]System.Globalization.EastAsianLunisolarCalendar:get_MinDate():System.DateTime:this
+ call [r14+0x28]System.Globalization.EastAsianLunisolarCalendar:get_MinDate():System.DateTime:this
mov rsi, rax
mov rdi, rbx
- mov rax, qword ptr [r14+0x58]
- call [rax+0x10]System.Globalization.Calendar:GetEra(System.DateTime):int:this
+ mov rax, qword ptr [rbx]
+ mov rax, qword ptr [rax+0x58]
+ call [rax+0x08]System.Globalization.Calendar:GetEra(System.DateTime):int:this
cmp eax, r15d
- jne SHORT G_M38142_IG08
+ jne SHORT G_M38142_IG09
mov rdi, rbx
- call [r13+0x18]System.Globalization.EastAsianLunisolarCalendar:get_MinCalendarYear():int:this
- mov r12d, eax
+ call [r14+0x10]System.Globalization.EastAsianLunisolarCalendar:get_MinCalendarYear():int:this
+ mov r13d, eax
mov rdi, rbx
- call [r13+0x30]System.Globalization.EastAsianLunisolarCalendar:get_MinDate():System.DateTime:this
+ call [r14+0x28]System.Globalization.EastAsianLunisolarCalendar:get_MinDate():System.DateTime:this
mov rdx, rax
mov rdi, rbx
- mov esi, r12d
- mov rax, r13
- ;; size=54 bbWeight=0.50 PerfScore 8.88
-G_M38142_IG07:
- add rsp, 8
+ mov esi, r13d
+ mov rax, r14
+ ;; size=57 bbWeight=0.50 PerfScore 9.88
+G_M38142_IG08:
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
- tail.jmp [rax+0x08]System.Globalization.EastAsianLunisolarCalendar:GetYear(int,System.DateTime):int:this
- ;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M38142_IG08:
+ tail.jmp [rax]System.Globalization.EastAsianLunisolarCalendar:GetYear(int,System.DateTime):int:this
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
+G_M38142_IG09:
xor edi, edi
- mov ecx, dword ptr [r12+0x08]
+ mov ecx, dword ptr [r13+0x08]
test ecx, ecx
- jle SHORT G_M38142_IG13
- align [0 bytes for IG09]
- ;; size=11 bbWeight=0.50 PerfScore 1.75
-G_M38142_IG09:
- mov rax, gword ptr [r12+8*rdi+0x10]
+ jle SHORT G_M38142_IG14
+ align [0 bytes for IG10]
+ ;; size=10 bbWeight=0.50 PerfScore 1.75
+G_M38142_IG10:
+ mov rax, gword ptr [r13+8*rdi+0x10]
cmp dword ptr [rax+0x28], r15d
- jne SHORT G_M38142_IG12
+ jne SHORT G_M38142_IG13
;; size=11 bbWeight=4 PerfScore 24.00
-G_M38142_IG10:
+G_M38142_IG11:
mov eax, edi
- mov rax, gword ptr [r12+8*rax+0x10]
+ mov rax, gword ptr [r13+8*rax+0x10]
mov eax, dword ptr [rax+0x30]
;; size=10 bbWeight=0.50 PerfScore 2.12
-G_M38142_IG11:
- add rsp, 8
+G_M38142_IG12:
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M38142_IG12:
+ ;; size=9 bbWeight=0.50 PerfScore 1.75
+G_M38142_IG13:
inc edi
cmp ecx, edi
- jg SHORT G_M38142_IG09
+ jg SHORT G_M38142_IG10
;; size=6 bbWeight=4 PerfScore 6.00
-G_M38142_IG13:
+G_M38142_IG14:
mov rdi, 0xD1FFAB1E ; System.Int32
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov dword ptr [rbx+0x08], r15d
mov rdi, 0xD1FFAB1E ; System.ArgumentOutOfRangeException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov edi, 0x14AFC
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov r14, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_ArgumentOutOfRange_InvalidEraValue():System.String
call [rax]System.SR:get_ArgumentOutOfRange_InvalidEraValue():System.String
mov rcx, rax
mov rsi, r14
mov rdx, rbx
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:.ctor(System.String,System.Object,System.String):this
call [rax]System.ArgumentOutOfRangeException:.ctor(System.String,System.Object,System.String):this
mov rdi, r15
call CORINFO_HELP_THROW
int3
;; size=108 bbWeight=0 PerfScore 0.00
-; Total bytes of code 319, prolog size 22, PerfScore 70.50, instruction count 102, allocated bytes for code 319 (MethodHash=874e6b01) for method System.Globalization.EastAsianLunisolarCalendar:MinEraCalendarYear(int):int:this (FullOpts)
+; Total bytes of code 314, prolog size 19, PerfScore 70.88, instruction count 98, allocated bytes for code 314 (MethodHash=874e6b01) for method System.Globalization.EastAsianLunisolarCalendar:MinEraCalendarYear(int):int:this (FullOpts)
-3 (-0.51 % of base) - System.Globalization.HebrewCalendar:AddMonths(System.DateTime,int):System.DateTime:this
; Assembly listing for method System.Globalization.HebrewCalendar:AddMonths(System.DateTime,int):System.DateTime:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T03] ( 11, 16.50) ref -> rbx this class-hnd single-def <System.Globalization.HebrewCalendar>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.DateTime>
; V02 arg2 [V02,T04] ( 14, 14.50) int -> [rbp-0x2C] do-not-enreg[Z] EH-live
; V03 loc0 [V03,T00] ( 12, 20.50) int -> r12
; V04 loc1 [V04,T16] ( 4, 2.50) int -> [rbp-0x30]
; V05 loc2 [V05,T11] ( 5, 5 ) int -> r13
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
; V07 loc4 [V07,T05] ( 9, 12 ) int -> [rbp-0x34]
; V08 loc5 [V08,T15] ( 3, 3 ) int -> rax
;* V09 loc6 [V09 ] ( 0, 0 ) struct ( 8) zero-ref multireg-ret ld-addr-op <System.DateTime>
; V10 OutArgs [V10 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V11 tmp1 [V11,T17] ( 2, 2 ) int -> rdi "dup spill"
;* V12 tmp2 [V12 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V13 tmp3 [V13 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
; V14 tmp4 [V14,T01] ( 3, 20 ) int -> rax "dup spill"
; V15 tmp5 [V15,T02] ( 3, 20 ) int -> rax "dup spill"
;* V16 tmp6 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.ArgumentException>
; V17 tmp7 [V17,T20] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <System.Int32>
; V18 tmp8 [V18,T21] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
; V19 tmp9 [V19,T08] ( 3, 6 ) long -> rax "Inlining Arg"
; V20 tmp10 [V20,T14] ( 2, 2 ) long -> rsi single-def "field V01._dateData (fldOffset=0x0)" P-INDEP
; V21 tmp11 [V21,T18] ( 2, 2 ) long -> rcx "field V09._dateData (fldOffset=0x0)" P-INDEP
;* V22 tmp12 [V22 ] ( 0, 0 ) long -> zero-ref "field V13._dateData (fldOffset=0x0)" P-INDEP
; V23 tmp13 [V23,T07] ( 4, 8 ) long -> r15 "fgMakeTemp is creating a new local variable"
; V24 tmp14 [V24,T22] ( 2, 0 ) ref -> r14 single-def "argument with side effect"
; V25 tmp15 [V25,T23] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
; V26 PSPSym [V26,T19] ( 1, 1 ) long -> [rbp-0x50] do-not-enreg[V] "PSPSym"
; V27 cse0 [V27,T06] ( 5, 9.50) long -> [rbp-0x40] hoist multi-def "CSE #04: aggressive"
; V28 cse1 [V28,T13] ( 4, 4 ) long -> r13 "CSE #03: moderate"
; V29 cse2 [V29,T12] ( 5, 5 ) long -> r15 "CSE #01: moderate"
; V30 cse3 [V30,T10] ( 6, 5 ) long -> r14 "CSE #02: moderate"
; V31 rat0 [V31,T09] ( 3, 6 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 56
G_M14055_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 56
lea rbp, [rsp+0x60]
mov qword ptr [rbp-0x50], rsp
mov dword ptr [rbp-0x2C], edx
mov rbx, rdi
;; size=29 bbWeight=1 PerfScore 9.00
G_M14055_IG02:
mov r15, 0xD1FFAB1E
and r15, rsi
mov rsi, r15
mov rdi, rbx
xor edx, edx
mov r14, qword ptr [rbx]
mov r13, qword ptr [r14+0x70]
- call [r13+0x38]System.Globalization.HebrewCalendar:GetDatePart(long,int):int:this
+ call [r13+0x30]System.Globalization.HebrewCalendar:GetDatePart(long,int):int:this
mov r12d, eax
mov rsi, r15
mov rdi, rbx
mov edx, 2
- call [r13+0x38]System.Globalization.HebrewCalendar:GetDatePart(long,int):int:this
+ call [r13+0x30]System.Globalization.HebrewCalendar:GetDatePart(long,int):int:this
mov dword ptr [rbp-0x30], eax
mov rsi, r15
mov rdi, rbx
mov edx, 3
- call [r13+0x38]System.Globalization.HebrewCalendar:GetDatePart(long,int):int:this
+ call [r13+0x30]System.Globalization.HebrewCalendar:GetDatePart(long,int):int:this
mov r13d, eax
cmp dword ptr [rbp-0x2C], 0
jl G_M14055_IG09
;; size=81 bbWeight=1 PerfScore 20.25
G_M14055_IG03:
mov eax, dword ptr [rbp-0x30]
add eax, dword ptr [rbp-0x2C]
mov dword ptr [rbp-0x34], eax
mov rcx, qword ptr [r14+0x60]
jmp SHORT G_M14055_IG05
;; size=15 bbWeight=0.50 PerfScore 4.00
G_M14055_IG04:
inc r12d
sub edi, eax
mov dword ptr [rbp-0x34], edi
mov rcx, qword ptr [rbp-0x40]
;; size=12 bbWeight=2 PerfScore 5.00
G_M14055_IG05:
mov rdi, rbx
mov esi, r12d
xor edx, edx
mov qword ptr [rbp-0x40], rcx
- call [rcx+0x08]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
+ call [rcx]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
mov edi, dword ptr [rbp-0x34]
cmp edi, eax
jg SHORT G_M14055_IG04
- ;; size=22 bbWeight=4 PerfScore 28.00
+ ;; size=21 bbWeight=4 PerfScore 28.00
G_M14055_IG06:
mov dword ptr [rbp-0x34], edi
;; size=3 bbWeight=2 PerfScore 2.00
G_M14055_IG07:
mov rdi, rbx
mov esi, r12d
mov edx, dword ptr [rbp-0x34]
mov rax, qword ptr [r14+0x50]
- call [rax+0x30]System.Globalization.Calendar:GetDaysInMonth(int,int):int:this
+ call [rax+0x28]System.Globalization.Calendar:GetDaysInMonth(int,int):int:this
cmp r13d, eax
cmovg r13d, eax
xor edi, edi
mov dword ptr [rsp], edi
;; size=28 bbWeight=1 PerfScore 8.25
G_M14055_IG08:
mov dword ptr [rsp+0x08], edi
mov rdi, rbx
mov esi, r12d
mov edx, dword ptr [rbp-0x34]
mov ecx, r13d
xor r8d, r8d
xor r9d, r9d
mov rax, qword ptr [r14+0x68]
- call [rax+0x30]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, rax
mov rdx, 0xD1FFAB1E
mov rax, rdx
imul rdx:rax, r15
add rdx, r15
mov rdi, rdx
shr rdi, 63
sar rdx, 39
add rdi, rdx
mov rsi, 0xD1FFAB1E
imul rdi, rsi
sub r15, rdi
mov rax, 0xD1FFAB1E
and rax, rcx
add rax, r15
mov rdi, 0xD1FFAB1E
cmp rax, rdi
jbe G_M14055_IG14
jmp SHORT G_M14055_IG13
;; size=119 bbWeight=1 PerfScore 20.50
G_M14055_IG09:
mov eax, dword ptr [rbp-0x30]
mov edi, eax
add edi, dword ptr [rbp-0x2C]
mov ecx, edi
mov dword ptr [rbp-0x34], ecx
test ecx, ecx
jg G_M14055_IG07
mov edi, eax
mov esi, dword ptr [rbp-0x2C]
neg esi
mov dword ptr [rbp-0x2C], esi
mov esi, dword ptr [rbp-0x2C]
sub esi, edi
mov dword ptr [rbp-0x2C], esi
dec r12d
mov rcx, qword ptr [r14+0x60]
mov rax, rcx
jmp SHORT G_M14055_IG11
;; size=51 bbWeight=0.50 PerfScore 7.50
G_M14055_IG10:
dec r12d
mov edi, dword ptr [rbp-0x2C]
sub edi, eax
mov dword ptr [rbp-0x2C], edi
mov rax, qword ptr [rbp-0x40]
;; size=15 bbWeight=2 PerfScore 7.00
G_M14055_IG11:
mov rdi, rbx
mov esi, r12d
xor edx, edx
mov qword ptr [rbp-0x40], rax
- call [rax+0x08]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
+ call [rax]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
cmp dword ptr [rbp-0x2C], eax
jg SHORT G_M14055_IG10
- ;; size=20 bbWeight=4 PerfScore 31.00
+ ;; size=19 bbWeight=4 PerfScore 31.00
G_M14055_IG12:
mov rdi, rbx
mov esi, r12d
xor edx, edx
mov rax, qword ptr [rbp-0x40]
- call [rax+0x08]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
+ call [rax]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
mov edx, eax
sub edx, dword ptr [rbp-0x2C]
mov eax, edx
mov dword ptr [rbp-0x34], eax
jmp G_M14055_IG07
- ;; size=30 bbWeight=0.50 PerfScore 5.12
+ ;; size=29 bbWeight=0.50 PerfScore 5.12
G_M14055_IG13:
mov rax, 0xD1FFAB1E ; code for System.DateTime:ThrowTicksOutOfRange()
call [rax]System.DateTime:ThrowTicksOutOfRange()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M14055_IG14:
add rsp, 56
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M14055_IG15:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
mov rbp, qword ptr [rdi+0x10]
mov qword ptr [rsp+0x10], rbp
lea rbp, [rbp+0x60]
;; size=27 bbWeight=0 PerfScore 0.00
G_M14055_IG16:
mov rdi, 0xD1FFAB1E ; System.Int32
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov edi, dword ptr [rbp-0x2C]
mov dword ptr [rbx+0x08], edi
mov rdi, 0xD1FFAB1E ; System.ArgumentOutOfRangeException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov edi, 0x14B3
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov r14, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_ArgumentOutOfRange_AddValue():System.String
call [rax]System.SR:get_ArgumentOutOfRange_AddValue():System.String
mov rcx, rax
mov rsi, r14
mov rdx, rbx
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:.ctor(System.String,System.Object,System.String):this
call [rax]System.ArgumentOutOfRangeException:.ctor(System.String,System.Object,System.String):this
mov rdi, r15
call CORINFO_HELP_THROW
int3
;; size=110 bbWeight=0 PerfScore 0.00
-; Total bytes of code 590, prolog size 29, PerfScore 151.88, instruction count 171, allocated bytes for code 590 (MethodHash=b3cec918) for method System.Globalization.HebrewCalendar:AddMonths(System.DateTime,int):System.DateTime:this (FullOpts)
+; Total bytes of code 587, prolog size 29, PerfScore 151.88, instruction count 171, allocated bytes for code 587 (MethodHash=b3cec918) for method System.Globalization.HebrewCalendar:AddMonths(System.DateTime,int):System.DateTime:this (FullOpts)
-2 (-1.98 % of base) - System.Globalization.Calendar:IsValidMonth(int,int,int):ubyte:this
; Assembly listing for method System.Globalization.Calendar:IsValidMonth(int,int,int):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 6, 5 ) ref -> rbx this class-hnd single-def <System.Globalization.Calendar>
; V01 arg1 [V01,T01] ( 4, 3.50) int -> r15 single-def
; V02 arg2 [V02,T03] ( 4, 3 ) int -> r13 single-def
; V03 arg3 [V03,T02] ( 4, 3.50) int -> r14 single-def
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
G_M11141_IG01:
push rbp
push r15
push r14
push r13
push rbx
lea rbp, [rsp+0x20]
mov rbx, rdi
mov r15d, esi
mov r13d, edx
mov r14d, ecx
;; size=25 bbWeight=1 PerfScore 6.50
G_M11141_IG02:
mov rdi, rbx
mov esi, r15d
mov edx, r14d
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x70]
- call [rax+0x08]System.Globalization.Calendar:IsValidYear(int,int):ubyte:this
+ call [rax]System.Globalization.Calendar:IsValidYear(int,int):ubyte:this
test eax, eax
je SHORT G_M11141_IG05
- ;; size=23 bbWeight=1 PerfScore 9.00
+ ;; size=22 bbWeight=1 PerfScore 9.00
G_M11141_IG03:
test r13d, r13d
jle SHORT G_M11141_IG05
mov rdi, rbx
mov esi, r15d
mov edx, r14d
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x60]
- call [rax+0x08]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
+ call [rax]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
cmp eax, r13d
setge al
movzx rax, al
- ;; size=33 bbWeight=0.50 PerfScore 5.25
+ ;; size=32 bbWeight=0.50 PerfScore 5.25
G_M11141_IG04:
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=9 bbWeight=0.50 PerfScore 1.75
G_M11141_IG05:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M11141_IG06:
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=9 bbWeight=0.50 PerfScore 1.75
-; Total bytes of code 101, prolog size 13, PerfScore 24.38, instruction count 42, allocated bytes for code 101 (MethodHash=4eead47a) for method System.Globalization.Calendar:IsValidMonth(int,int,int):ubyte:this (FullOpts)
+; Total bytes of code 99, prolog size 13, PerfScore 24.38, instruction count 42, allocated bytes for code 99 (MethodHash=4eead47a) for method System.Globalization.Calendar:IsValidMonth(int,int,int):ubyte:this (FullOpts)
-2 (-0.43 % of base) - System.Globalization.HijriCalendar:GetDatePart(long,int):int:this
; Assembly listing for method System.Globalization.HijriCalendar:GetDatePart(long,int):int:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T03] ( 9, 8 ) ref -> rbx this class-hnd single-def <System.Globalization.HijriCalendar>
; V01 arg1 [V01,T05] ( 5, 5 ) long -> r15 single-def
; V02 arg2 [V02,T06] ( 6, 4.50) int -> r14 single-def
; V03 loc0 [V03,T02] ( 12, 12 ) long -> r15
; V04 loc1 [V04,T04] ( 11, 7 ) int -> r13
; V05 loc2 [V05,T07] ( 10, 6 ) long -> r12
; V06 loc3 [V06,T11] ( 3, 2 ) long -> rax
; V07 loc4 [V07,T00] ( 9, 14.50) int -> rax
; V08 loc5 [V08,T14] ( 2, 1 ) int -> rax
;* V09 loc6 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[int]>
;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V11 tmp1 [V11,T15] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
;* V12 tmp2 [V12 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[int]>
;* V13 tmp3 [V13 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[int]>
;* V14 tmp4 [V14 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
;* V15 tmp5 [V15 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
;* V16 tmp6 [V16 ] ( 0, 0 ) byref -> zero-ref "field V12._reference (fldOffset=0x0)" P-INDEP
;* V17 tmp7 [V17 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
;* V18 tmp8 [V18 ] ( 0, 0 ) byref -> zero-ref single-def "field V13._reference (fldOffset=0x0)" P-INDEP
;* V19 tmp9 [V19 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
; V20 tmp10 [V20,T16] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V21 cse0 [V21,T10] ( 3, 2.50) long -> [rbp-0x30] spill-single-def "CSE #03: moderate"
; V22 cse1 [V22,T12] ( 3, 1.50) long -> rax "CSE #04: moderate"
; V23 cse2 [V23,T01] ( 5, 13 ) int -> rdi multi-def "CSE #05: aggressive"
; V24 cse3 [V24,T13] ( 3, 1.50) int -> rax "CSE #06: moderate"
; V25 rat0 [V25,T08] ( 3, 6 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
; V26 rat1 [V26,T09] ( 3, 6 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 8
G_M55766_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r15, rsi
mov r14d, edx
;; size=25 bbWeight=1 PerfScore 8.25
G_M55766_IG02:
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Globalization.HijriCalendar:CheckTicksRange(long)
call [rax]System.Globalization.HijriCalendar:CheckTicksRange(long)
mov rdx, 0xD1FFAB1E
mov rax, rdx
imul rdx:rax, r15
add rdx, r15
mov rax, rdx
shr rax, 63
sar rdx, 39
lea r15, [rdx+rax+0x01]
cmp dword ptr [rbx+0x14], 0xD1FFAB1E
jne SHORT G_M55766_IG04
;; size=59 bbWeight=1 PerfScore 13.50
G_M55766_IG03:
xor eax, eax
mov dword ptr [rbx+0x14], eax
;; size=5 bbWeight=0.50 PerfScore 0.62
G_M55766_IG04:
movsxd rax, dword ptr [rbx+0x14]
add r15, rax
lea rax, [r15-0x000376C5]
imul rdx, rax, 30
mov rdi, 0xD1FFAB1E
mov rax, rdi
imul rdx:rax, rdx
mov r13, rdx
shr r13, 63
sar rdx, 11
add r13, rdx
inc r13d
mov rdi, rbx
mov esi, r13d
mov rax, 0xD1FFAB1E ; code for System.Globalization.HijriCalendar:DaysUpToHijriYear(int):long:this
call [rax]System.Globalization.HijriCalendar:DaysUpToHijriYear(int):long:this
mov r12, rax
mov rdi, rbx
mov esi, r13d
xor edx, edx
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x58]
mov qword ptr [rbp-0x30], rax
- call [rax+0x08]System.Globalization.Calendar:GetDaysInYear(int,int):int:this
+ call [rax]System.Globalization.Calendar:GetDaysInYear(int,int):int:this
cdqe
cmp r15, r12
jge SHORT G_M55766_IG06
- ;; size=101 bbWeight=1 PerfScore 26.25
+ ;; size=100 bbWeight=1 PerfScore 26.25
G_M55766_IG05:
sub r12, rax
dec r13d
jmp SHORT G_M55766_IG08
;; size=8 bbWeight=0.50 PerfScore 1.25
G_M55766_IG06:
cmp r15, r12
jne SHORT G_M55766_IG07
dec r13d
mov rdi, rbx
mov esi, r13d
xor edx, edx
mov rbx, qword ptr [rbp-0x30]
- call [rbx+0x08]System.Globalization.Calendar:GetDaysInYear(int,int):int:this
+ call [rbx]System.Globalization.Calendar:GetDaysInYear(int,int):int:this
cdqe
sub r12, rax
jmp SHORT G_M55766_IG08
- ;; size=30 bbWeight=0.50 PerfScore 4.38
+ ;; size=29 bbWeight=0.50 PerfScore 4.38
G_M55766_IG07:
add rax, r12
cmp rax, r15
jge SHORT G_M55766_IG08
mov r12, rax
inc r13d
;; size=14 bbWeight=0.50 PerfScore 1.00
G_M55766_IG08:
test r14d, r14d
jne SHORT G_M55766_IG11
;; size=5 bbWeight=1 PerfScore 1.25
G_M55766_IG09:
mov eax, r13d
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M55766_IG10:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M55766_IG11:
mov eax, 1
sub r15, r12
cmp r14d, 1
jne SHORT G_M55766_IG14
mov eax, r15d
;; size=17 bbWeight=0.50 PerfScore 1.00
G_M55766_IG12:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M55766_IG13:
inc eax
;; size=2 bbWeight=2 PerfScore 0.50
G_M55766_IG14:
cmp eax, 12
jg SHORT G_M55766_IG15
lea edi, [rax-0x01]
cmp edi, 13
jae G_M55766_IG20
mov rcx, 0xD1FFAB1E ; static handle
movsxd rdi, dword ptr [rcx+4*rdi]
cmp r15, rdi
jg SHORT G_M55766_IG13
;; size=36 bbWeight=4 PerfScore 34.00
G_M55766_IG15:
lea edi, [rax-0x01]
mov eax, edi
cmp r14d, 2
jne SHORT G_M55766_IG17
;; size=11 bbWeight=0.50 PerfScore 1.00
G_M55766_IG16:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M55766_IG17:
dec eax
cmp eax, 13
jae SHORT G_M55766_IG20
mov rdi, 0xD1FFAB1E ; static handle
mov ecx, r15d
sub ecx, dword ptr [rdi+4*rax]
mov eax, ecx
cmp r14d, 3
jne SHORT G_M55766_IG19
;; size=31 bbWeight=0.50 PerfScore 3.25
G_M55766_IG18:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M55766_IG19:
mov rdi, 0xD1FFAB1E ; System.InvalidOperationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_InvalidOperation_DateTimeParsing():System.String
call [rax]System.SR:get_InvalidOperation_DateTimeParsing():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.InvalidOperationException:.ctor(System.String):this
call [rax]System.InvalidOperationException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=57 bbWeight=0 PerfScore 0.00
G_M55766_IG20:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 470, prolog size 25, PerfScore 104.88, instruction count 149, allocated bytes for code 470 (MethodHash=0f172629) for method System.Globalization.HijriCalendar:GetDatePart(long,int):int:this (FullOpts)
+; Total bytes of code 468, prolog size 25, PerfScore 104.88, instruction count 149, allocated bytes for code 468 (MethodHash=0f172629) for method System.Globalization.HijriCalendar:GetDatePart(long,int):int:this (FullOpts)
-1 (-1.00 % of base) - Internal.Cryptography.Helpers:IsValidMonth(System.Globalization.Calendar,int,int,int):ubyte
; Assembly listing for method Internal.Cryptography.Helpers:IsValidMonth(System.Globalization.Calendar,int,int,int):ubyte (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rbx class-hnd single-def <System.Globalization.Calendar>
; V01 arg1 [V01,T01] ( 4, 3.50) int -> r15 single-def
; V02 arg2 [V02,T02] ( 4, 3 ) int -> r14 single-def
; V03 arg3 [V03,T03] ( 3, 2.50) int -> r13 single-def
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
G_M37873_IG01:
push rbp
push r15
push r14
push r13
push rbx
lea rbp, [rsp+0x20]
mov rbx, rdi
mov r15d, esi
mov r14d, edx
mov r13d, ecx
;; size=25 bbWeight=1 PerfScore 6.50
G_M37873_IG02:
mov rdi, rbx
mov esi, r15d
mov rax, 0xD1FFAB1E ; code for Internal.Cryptography.Helpers:IsValidYear(System.Globalization.Calendar,int):ubyte
call [rax]Internal.Cryptography.Helpers:IsValidYear(System.Globalization.Calendar,int):ubyte
test eax, eax
je SHORT G_M37873_IG05
;; size=22 bbWeight=1 PerfScore 5.00
G_M37873_IG03:
test r14d, r14d
jle SHORT G_M37873_IG05
mov rdi, rbx
mov esi, r15d
mov edx, r13d
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x60]
- call [rax+0x08]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
+ call [rax]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
cmp eax, r14d
setge al
movzx rax, al
- ;; size=33 bbWeight=0.50 PerfScore 5.25
+ ;; size=32 bbWeight=0.50 PerfScore 5.25
G_M37873_IG04:
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=9 bbWeight=0.50 PerfScore 1.75
G_M37873_IG05:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M37873_IG06:
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=9 bbWeight=0.50 PerfScore 1.75
-; Total bytes of code 100, prolog size 13, PerfScore 20.38, instruction count 40, allocated bytes for code 100 (MethodHash=b0906c0e) for method Internal.Cryptography.Helpers:IsValidMonth(System.Globalization.Calendar,int,int,int):ubyte (FullOpts)
+; Total bytes of code 99, prolog size 13, PerfScore 20.38, instruction count 40, allocated bytes for code 99 (MethodHash=b0906c0e) for method Internal.Cryptography.Helpers:IsValidMonth(System.Globalization.Calendar,int,int,int):ubyte (FullOpts)
-1 (-5.56 % of base) - System.Globalization.Calendar:GetDaysInYear(int):int:this
; Assembly listing for method System.Globalization.Calendar:GetDaysInYear(int):int:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 4, 4 ) ref -> rdi this class-hnd single-def <System.Globalization.Calendar>
; V01 arg1 [V01,T01] ( 3, 3 ) int -> rsi single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
G_M2372_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M2372_IG02:
xor edx, edx
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x58]
;; size=9 bbWeight=1 PerfScore 4.25
G_M2372_IG03:
pop rbp
- tail.jmp [rax+0x08]System.Globalization.Calendar:GetDaysInYear(int,int):int:this
- ;; size=5 bbWeight=1 PerfScore 2.50
+ tail.jmp [rax]System.Globalization.Calendar:GetDaysInYear(int,int):int:this
+ ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 18, prolog size 4, PerfScore 8.00, instruction count 7, allocated bytes for code 18 (MethodHash=8e31f6bb) for method System.Globalization.Calendar:GetDaysInYear(int):int:this (FullOpts)
+; Total bytes of code 17, prolog size 4, PerfScore 8.00, instruction count 7, allocated bytes for code 17 (MethodHash=8e31f6bb) for method System.Globalization.Calendar:GetDaysInYear(int):int:this (FullOpts)
-1 (-0.67 % of base) - System.Globalization.Calendar:GetLeapMonth(int,int):int:this
; Assembly listing for method System.Globalization.Calendar:GetLeapMonth(int,int):int:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 7, 9 ) ref -> rbx this class-hnd single-def <System.Globalization.Calendar>
; V01 arg1 [V01,T02] ( 5, 7.50) int -> r15 single-def
; V02 arg2 [V02,T03] ( 5, 7.50) int -> r14 single-def
; V03 loc0 [V03,T05] ( 3, 5 ) int -> r12
; V04 loc1 [V04,T00] ( 6, 17 ) int -> [rbp-0x2C]
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 cse0 [V06,T04] ( 3, 6 ) long -> r13 "CSE #02: aggressive"
;
; Lcl frame size = 8
G_M36788_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r15d, esi
mov r14d, edx
;; size=25 bbWeight=1 PerfScore 8.25
G_M36788_IG02:
mov rdi, rbx
mov esi, r15d
mov edx, r14d
mov rax, qword ptr [rbx]
mov r13, qword ptr [rax+0x68]
- call [r13+0x28]System.Globalization.Calendar:IsLeapYear(int,int):ubyte:this
+ call [r13+0x20]System.Globalization.Calendar:IsLeapYear(int,int):ubyte:this
test eax, eax
jne SHORT G_M36788_IG05
;; size=24 bbWeight=1 PerfScore 9.00
G_M36788_IG03:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M36788_IG04:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M36788_IG05:
mov rdi, rbx
mov esi, r15d
mov edx, r14d
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x60]
- call [rax+0x08]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
+ call [rax]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
mov r12d, eax
mov eax, 1
test r12d, r12d
jle SHORT G_M36788_IG03
- ;; size=32 bbWeight=0.50 PerfScore 4.75
+ ;; size=31 bbWeight=0.50 PerfScore 4.75
G_M36788_IG06:
mov rdi, rbx
mov esi, r15d
mov dword ptr [rbp-0x2C], eax
mov edx, eax
mov ecx, r14d
- call [r13+0x08]System.Globalization.Calendar:IsLeapMonth(int,int,int):ubyte:this
+ call [r13]System.Globalization.Calendar:IsLeapMonth(int,int,int):ubyte:this
test eax, eax
je SHORT G_M36788_IG09
;; size=22 bbWeight=4 PerfScore 25.00
G_M36788_IG07:
mov eax, dword ptr [rbp-0x2C]
;; size=3 bbWeight=0.50 PerfScore 0.50
G_M36788_IG08:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M36788_IG09:
mov eax, dword ptr [rbp-0x2C]
inc eax
cmp eax, r12d
jle SHORT G_M36788_IG06
jmp SHORT G_M36788_IG03
;; size=12 bbWeight=4 PerfScore 18.00
-; Total bytes of code 150, prolog size 16, PerfScore 69.88, instruction count 60, allocated bytes for code 150 (MethodHash=2fd0704b) for method System.Globalization.Calendar:GetLeapMonth(int,int):int:this (FullOpts)
+; Total bytes of code 149, prolog size 16, PerfScore 69.88, instruction count 60, allocated bytes for code 149 (MethodHash=2fd0704b) for method System.Globalization.Calendar:GetLeapMonth(int,int):int:this (FullOpts)
-1 (-5.56 % of base) - System.Globalization.Calendar:GetMonthsInYear(int):int:this
; Assembly listing for method System.Globalization.Calendar:GetMonthsInYear(int):int:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 4, 4 ) ref -> rdi this class-hnd single-def <System.Globalization.Calendar>
; V01 arg1 [V01,T01] ( 3, 3 ) int -> rsi single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
G_M22472_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M22472_IG02:
xor edx, edx
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x60]
;; size=9 bbWeight=1 PerfScore 4.25
G_M22472_IG03:
pop rbp
- tail.jmp [rax+0x08]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
- ;; size=5 bbWeight=1 PerfScore 2.50
+ tail.jmp [rax]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
+ ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 18, prolog size 4, PerfScore 8.00, instruction count 7, allocated bytes for code 18 (MethodHash=624da837) for method System.Globalization.Calendar:GetMonthsInYear(int):int:this (FullOpts)
+; Total bytes of code 17, prolog size 4, PerfScore 8.00, instruction count 7, allocated bytes for code 17 (MethodHash=624da837) for method System.Globalization.Calendar:GetMonthsInYear(int):int:this (FullOpts)
-1 (-5.56 % of base) - System.Globalization.Calendar:IsLeapMonth(int,int):ubyte:this
; Assembly listing for method System.Globalization.Calendar:IsLeapMonth(int,int):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 4, 4 ) ref -> rdi this class-hnd single-def <System.Globalization.Calendar>
; V01 arg1 [V01,T01] ( 3, 3 ) int -> rsi single-def
; V02 arg2 [V02,T02] ( 3, 3 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
G_M36788_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M36788_IG02:
xor ecx, ecx
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x68]
;; size=9 bbWeight=1 PerfScore 4.25
G_M36788_IG03:
pop rbp
- tail.jmp [rax+0x08]System.Globalization.Calendar:IsLeapMonth(int,int,int):ubyte:this
- ;; size=5 bbWeight=1 PerfScore 2.50
+ tail.jmp [rax]System.Globalization.Calendar:IsLeapMonth(int,int,int):ubyte:this
+ ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 18, prolog size 4, PerfScore 8.00, instruction count 7, allocated bytes for code 18 (MethodHash=8bcd704b) for method System.Globalization.Calendar:IsLeapMonth(int,int):ubyte:this (FullOpts)
+; Total bytes of code 17, prolog size 4, PerfScore 8.00, instruction count 7, allocated bytes for code 17 (MethodHash=8bcd704b) for method System.Globalization.Calendar:IsLeapMonth(int,int):ubyte:this (FullOpts)
-1 (-0.53 % of base) - System.Globalization.EastAsianLunisolarCalendar:GetYear(System.DateTime):int:this
; Assembly listing for method System.Globalization.EastAsianLunisolarCalendar:GetYear(System.DateTime):int:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 6, 6 ) ref -> rbx this class-hnd single-def <System.Globalization.EastAsianLunisolarCalendar>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.DateTime>
; V02 loc0 [V02 ] ( 2, 2 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
; V03 loc1 [V03 ] ( 1, 1 ) int -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op
; V04 loc2 [V04 ] ( 1, 1 ) int -> [rbp-0x40] do-not-enreg[X] addr-exposed ld-addr-op
; V05 OutArgs [V05 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T00] ( 5, 10 ) ref -> r14 class-hnd single-def "dup spill" <System.Globalization.Calendar>
;* V07 tmp2 [V07 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.DateTime>
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V09 tmp4 [V09 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V11 tmp6 [V11,T02] ( 6, 6 ) long -> r15 single-def "field V01._dateData (fldOffset=0x0)" P-INDEP
;* V12 tmp7 [V12 ] ( 0, 0 ) long -> zero-ref "field V07._dateData (fldOffset=0x0)" P-INDEP
; V13 tmp8 [V13,T04] ( 2, 4 ) int -> r12 "argument with side effect"
; V14 tmp9 [V14,T05] ( 2, 4 ) int -> [rbp-0x44] spill-single-def "argument with side effect"
; V15 tmp10 [V15,T06] ( 2, 4 ) int -> rcx "argument with side effect"
; V16 cse0 [V16,T03] ( 4, 4 ) long -> r13 "CSE #01: aggressive"
;
; Lcl frame size = 40
G_M8511_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 40
lea rbp, [rsp+0x50]
mov rbx, rdi
mov r15, rsi
;; size=25 bbWeight=1 PerfScore 7.25
G_M8511_IG02:
mov rsi, 0xD1FFAB1E
and rsi, r15
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Globalization.EastAsianLunisolarCalendar:CheckTicksRange(long):this
call [rax]System.Globalization.EastAsianLunisolarCalendar:CheckTicksRange(long):this
mov rax, 0xD1FFAB1E ; code for System.Globalization.GregorianCalendar:GetDefaultInstance():System.Globalization.Calendar
call [rax]System.Globalization.GregorianCalendar:GetDefaultInstance():System.Globalization.Calendar
mov r14, rax
mov rdi, r14
mov rsi, r15
mov r13, qword ptr [r14]
mov rax, qword ptr [r13+0x60]
- call [rax+0x28]System.Globalization.Calendar:GetYear(System.DateTime):int:this
+ call [rax+0x20]System.Globalization.Calendar:GetYear(System.DateTime):int:this
mov r12d, eax
mov rdi, r14
mov rsi, r15
mov rax, qword ptr [r13+0x58]
- call [rax+0x38]System.Globalization.Calendar:GetMonth(System.DateTime):int:this
+ call [rax+0x30]System.Globalization.Calendar:GetMonth(System.DateTime):int:this
mov dword ptr [rbp-0x44], eax
mov rdi, r14
mov rsi, r15
mov rcx, qword ptr [r13+0x50]
- call [rcx+0x18]System.Globalization.Calendar:GetDayOfMonth(System.DateTime):int:this
+ call [rcx+0x10]System.Globalization.Calendar:GetDayOfMonth(System.DateTime):int:this
mov ecx, eax
lea rsi, [rbp-0x40]
mov qword ptr [rsp], rsi
mov esi, r12d
mov edx, dword ptr [rbp-0x44]
lea r8, [rbp-0x30]
lea r9, [rbp-0x38]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Globalization.EastAsianLunisolarCalendar:GregorianToLunar(int,int,int,byref,byref,byref):this
call [rax]System.Globalization.EastAsianLunisolarCalendar:GregorianToLunar(int,int,int,byref,byref,byref):this
mov rdi, rbx
mov esi, dword ptr [rbp-0x30]
mov rdx, r15
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x78]
- call [rax+0x08]System.Globalization.EastAsianLunisolarCalendar:GetYear(int,System.DateTime):int:this
+ call [rax]System.Globalization.EastAsianLunisolarCalendar:GetYear(int,System.DateTime):int:this
nop
- ;; size=150 bbWeight=1 PerfScore 43.50
+ ;; size=149 bbWeight=1 PerfScore 43.50
G_M8511_IG03:
add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 190, prolog size 19, PerfScore 55.00, instruction count 58, allocated bytes for code 190 (MethodHash=76b0dec0) for method System.Globalization.EastAsianLunisolarCalendar:GetYear(System.DateTime):int:this (FullOpts)
+; Total bytes of code 189, prolog size 19, PerfScore 55.00, instruction count 58, allocated bytes for code 189 (MethodHash=76b0dec0) for method System.Globalization.EastAsianLunisolarCalendar:GetYear(System.DateTime):int:this (FullOpts)
-1 (-0.27 % of base) - System.Globalization.HebrewCalendar:AddYears(System.DateTime,int):System.DateTime:this
; Assembly listing for method System.Globalization.HebrewCalendar:AddYears(System.DateTime,int):System.DateTime:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 11, 11 ) ref -> rbx this class-hnd single-def <System.Globalization.HebrewCalendar>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.DateTime>
; V02 arg2 [V02,T09] ( 3, 3 ) int -> r15 single-def
; V03 loc0 [V03,T03] ( 7, 7 ) int -> [rbp-0x2C]
; V04 loc1 [V04,T04] ( 6, 6 ) int -> [rbp-0x30]
; V05 loc2 [V05,T07] ( 5, 5 ) int -> r12
; V06 loc3 [V06,T12] ( 3, 3 ) int -> rax
; V07 loc4 [V07,T13] ( 3, 3 ) int -> rax
;* V08 loc5 [V08 ] ( 0, 0 ) struct ( 8) zero-ref multireg-ret ld-addr-op <System.DateTime>
; V09 OutArgs [V09 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V10 tmp1 [V10 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
; V11 tmp2 [V11,T01] ( 4, 8 ) long -> r15 "dup spill"
;* V12 tmp3 [V12 ] ( 0, 0 ) struct ( 8) zero-ref multireg-ret "non-inline candidate call" <System.DateTime>
;* V13 tmp4 [V13 ] ( 0, 0 ) struct ( 8) zero-ref multireg-ret "spilled call-like call argument" <System.DateTime>
;* V14 tmp5 [V14 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
; V15 tmp6 [V15,T11] ( 2, 2 ) long -> rsi single-def "field V01._dateData (fldOffset=0x0)" P-INDEP
; V16 tmp7 [V16,T15] ( 2, 2 ) long -> r15 "field V08._dateData (fldOffset=0x0)" P-INDEP
; V17 tmp8 [V17,T16] ( 2, 2 ) long -> r13 "field V12._dateData (fldOffset=0x0)" P-INDEP
; V18 tmp9 [V18,T17] ( 2, 2 ) long -> rdx "field V13._dateData (fldOffset=0x0)" P-INDEP
;* V19 tmp10 [V19 ] ( 0, 0 ) long -> zero-ref "field V14._dateData (fldOffset=0x0)" P-INDEP
; V20 tmp11 [V20,T02] ( 4, 8 ) long -> r14 "fgMakeTemp is creating a new local variable"
; V21 cse0 [V21,T10] ( 4, 4 ) long -> r12 "CSE #03: moderate"
; V22 cse1 [V22,T14] ( 3, 3 ) long -> r14 "CSE #04: moderate"
; V23 cse2 [V23,T08] ( 5, 5 ) long -> r14 "CSE #01: aggressive"
; V24 cse3 [V24,T05] ( 6, 6 ) long -> r13 "CSE #02: aggressive"
; V25 rat0 [V25,T06] ( 3, 6 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 24
G_M40760_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
lea rbp, [rsp+0x40]
mov rbx, rdi
mov r15d, edx
;; size=25 bbWeight=1 PerfScore 7.25
G_M40760_IG02:
mov r14, 0xD1FFAB1E
and r14, rsi
mov rsi, r14
mov rdi, rbx
xor edx, edx
mov r13, qword ptr [rbx]
mov r12, qword ptr [r13+0x70]
- call [r12+0x38]System.Globalization.HebrewCalendar:GetDatePart(long,int):int:this
+ call [r12+0x30]System.Globalization.HebrewCalendar:GetDatePart(long,int):int:this
mov dword ptr [rbp-0x2C], eax
mov rsi, r14
mov rdi, rbx
mov edx, 2
- call [r12+0x38]System.Globalization.HebrewCalendar:GetDatePart(long,int):int:this
+ call [r12+0x30]System.Globalization.HebrewCalendar:GetDatePart(long,int):int:this
mov dword ptr [rbp-0x30], eax
mov rsi, r14
mov rdi, rbx
mov edx, 3
- call [r12+0x38]System.Globalization.HebrewCalendar:GetDatePart(long,int):int:this
+ call [r12+0x30]System.Globalization.HebrewCalendar:GetDatePart(long,int):int:this
mov r12d, eax
mov eax, dword ptr [rbp-0x2C]
add eax, r15d
mov dword ptr [rbp-0x2C], eax
mov edi, eax
xor esi, esi
mov rdx, 0xD1FFAB1E ; 'years'
mov rcx, 0xD1FFAB1E ; code for System.Globalization.HebrewCalendar:CheckHebrewYearValue(int,int,System.String)
call [rcx]System.Globalization.HebrewCalendar:CheckHebrewYearValue(int,int,System.String)
mov rdi, rbx
mov esi, dword ptr [rbp-0x2C]
xor edx, edx
mov rax, qword ptr [r13+0x60]
- call [rax+0x08]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
+ call [rax]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
mov r15d, dword ptr [rbp-0x30]
cmp r15d, eax
cmovg r15d, eax
mov rdi, rbx
mov esi, dword ptr [rbp-0x2C]
mov edx, r15d
mov rax, qword ptr [r13+0x50]
- call [rax+0x30]System.Globalization.Calendar:GetDaysInMonth(int,int):int:this
+ call [rax+0x28]System.Globalization.Calendar:GetDaysInMonth(int,int):int:this
cmp r12d, eax
cmovg r12d, eax
xor edi, edi
mov dword ptr [rsp], edi
- ;; size=163 bbWeight=1 PerfScore 40.50
+ ;; size=162 bbWeight=1 PerfScore 40.50
G_M40760_IG03:
mov dword ptr [rsp+0x08], edi
mov rdi, rbx
mov esi, dword ptr [rbp-0x2C]
mov edx, r15d
mov ecx, r12d
xor r8d, r8d
xor r9d, r9d
mov rax, qword ptr [r13+0x68]
- call [rax+0x30]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 r15, rax
mov rdx, 0xD1FFAB1E
mov rax, rdx
imul rdx:rax, r14
add rdx, r14
mov rdi, rdx
shr rdi, 63
sar rdx, 39
add rdi, rdx
mov rax, 0xD1FFAB1E
imul rdi, rax
sub r14, rdi
mov r12, 0xD1FFAB1E
and r15, r12
add r15, r14
mov rdi, rbx
mov r14, qword ptr [r13+0x40]
call [r14+0x20]System.Globalization.Calendar:get_MinSupportedDateTime():System.DateTime:this
mov r13, rax
mov rdi, rbx
call [r14+0x28]System.Globalization.Calendar:get_MaxSupportedDateTime():System.DateTime:this
mov rdx, rax
mov rdi, r15
mov rsi, r13
mov rax, 0xD1FFAB1E ; code for System.Globalization.Calendar:CheckAddResult(long,System.DateTime,System.DateTime)
call [rax]System.Globalization.Calendar:CheckAddResult(long,System.DateTime,System.DateTime)
mov rax, 0xD1FFAB1E
cmp r15, rax
ja SHORT G_M40760_IG05
mov rax, r15
;; size=158 bbWeight=1 PerfScore 31.50
G_M40760_IG04:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M40760_IG05:
mov rax, 0xD1FFAB1E ; code for System.DateTime:ThrowTicksOutOfRange()
call [rax]System.DateTime:ThrowTicksOutOfRange()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 374, prolog size 19, PerfScore 83.50, instruction count 104, allocated bytes for code 374 (MethodHash=e9e460c7) for method System.Globalization.HebrewCalendar:AddYears(System.DateTime,int):System.DateTime:this (FullOpts)
+; Total bytes of code 373, prolog size 19, PerfScore 83.50, instruction count 104, allocated bytes for code 373 (MethodHash=e9e460c7) for method System.Globalization.HebrewCalendar:AddYears(System.DateTime,int):System.DateTime:this (FullOpts)
-1 (-0.42 % of base) - System.Globalization.HebrewCalendar:CheckHebrewMonthValue(int,int,int):this
; Assembly listing for method System.Globalization.HebrewCalendar:CheckHebrewMonthValue(int,int,int):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 4, 4 ) ref -> rdi this class-hnd single-def <System.Globalization.HebrewCalendar>
; V01 arg1 [V01,T02] ( 3, 3 ) int -> rsi single-def
; V02 arg2 [V02,T00] ( 5, 4 ) int -> rbx single-def
; V03 arg3 [V03,T03] ( 3, 3 ) int -> rcx single-def
; V04 loc0 [V04,T04] ( 3, 2 ) int -> r15
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T05] ( 3, 0 ) ref -> r14 class-hnd exact single-def "Single-def Box Helper" <System.Int32>
; V07 tmp2 [V07,T06] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <System.Int32>
; V08 tmp3 [V08,T09] ( 2, 0 ) ref -> r13 class-hnd exact single-def "impImportAndPushBox" <System.String>
; V09 tmp4 [V09,T07] ( 3, 0 ) ref -> r12 class-hnd exact single-def "Single-def Box Helper" <System.Int32>
; V10 tmp5 [V10,T08] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
; V11 tmp6 [V11,T10] ( 2, 0 ) ref -> [rbp-0x30] spill-single-def "argument with side effect"
; V12 tmp7 [V12,T11] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
;
; Lcl frame size = 8
G_M54049_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov ebx, edx
;; size=18 bbWeight=1 PerfScore 7.75
G_M54049_IG02:
mov edx, ecx
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x60]
- call [rax+0x08]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
+ call [rax]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
mov r15d, eax
test ebx, ebx
jle SHORT G_M54049_IG04
cmp ebx, r15d
jg SHORT G_M54049_IG04
- ;; size=24 bbWeight=1 PerfScore 10.00
+ ;; size=23 bbWeight=1 PerfScore 10.00
G_M54049_IG03:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M54049_IG04:
mov rdi, 0xD1FFAB1E ; System.Int32
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov dword ptr [r14+0x08], ebx
mov rdi, 0xD1FFAB1E ; System.Int32
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_ArgumentOutOfRange_Range():System.String
call [rax]System.SR:get_ArgumentOutOfRange_Range():System.String
mov r13, rax
mov dword ptr [rbx+0x08], 1
mov rdi, 0xD1FFAB1E ; System.Int32
call CORINFO_HELP_NEWSFAST
mov r12, rax
mov dword ptr [r12+0x08], r15d
mov rdi, 0xD1FFAB1E ; System.ArgumentOutOfRangeException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov edi, 0x13334
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov gword ptr [rbp-0x30], rax
mov rdx, r12
mov rsi, rbx
mov rdi, r13
mov rcx, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object,System.Object):System.String
call [rcx]System.SR:Format(System.String,System.Object,System.Object):System.String
mov rcx, rax
mov rsi, gword ptr [rbp-0x30]
mov rdx, r14
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:.ctor(System.String,System.Object,System.String):this
call [rax]System.ArgumentOutOfRangeException:.ctor(System.String,System.Object,System.String):this
mov rdi, r15
call CORINFO_HELP_THROW
int3
;; size=182 bbWeight=0 PerfScore 0.00
-; Total bytes of code 239, prolog size 16, PerfScore 22.00, instruction count 62, allocated bytes for code 239 (MethodHash=92cb2cde) for method System.Globalization.HebrewCalendar:CheckHebrewMonthValue(int,int,int):this (FullOpts)
+; Total bytes of code 238, prolog size 16, PerfScore 22.00, instruction count 62, allocated bytes for code 238 (MethodHash=92cb2cde) for method System.Globalization.HebrewCalendar:CheckHebrewMonthValue(int,int,int):this (FullOpts)
-1 (-0.49 % of base) - System.Globalization.HebrewCalendar:IsLeapDay(int,int,int,int):ubyte:this
; Assembly listing for method System.Globalization.HebrewCalendar:IsLeapDay(int,int,int,int):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 7, 5.50) ref -> rbx this class-hnd single-def <System.Globalization.HebrewCalendar>
; V01 arg1 [V01,T01] ( 6, 4.50) int -> r15 single-def
; V02 arg2 [V02,T02] ( 6, 4.50) int -> r14 single-def
; V03 arg3 [V03,T04] ( 5, 3.50) int -> r12 single-def
; V04 arg4 [V04,T03] ( 5, 4 ) int -> r13 single-def
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 cse0 [V06,T05] ( 3, 2.50) long -> [rbp-0x30] spill-single-def "CSE #02: aggressive"
;
; Lcl frame size = 8
G_M51319_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r15d, esi
mov r14d, edx
mov r12d, ecx
mov r13d, r8d
;; size=31 bbWeight=1 PerfScore 8.75
G_M51319_IG02:
mov rdi, rbx
mov esi, r15d
mov edx, r14d
mov ecx, r13d
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x68]
mov qword ptr [rbp-0x30], rax
- call [rax+0x08]System.Globalization.Calendar:IsLeapMonth(int,int,int):ubyte:this
+ call [rax]System.Globalization.Calendar:IsLeapMonth(int,int,int):ubyte:this
test eax, eax
je SHORT G_M51319_IG05
- ;; size=30 bbWeight=1 PerfScore 10.25
+ ;; size=29 bbWeight=1 PerfScore 10.25
G_M51319_IG03:
mov rdi, rbx
mov esi, r15d
mov edx, r14d
mov ecx, r12d
mov r8d, r13d
mov rax, 0xD1FFAB1E ; code for System.Globalization.HebrewCalendar:CheckHebrewDayValue(int,int,int,int):this
call [rax]System.Globalization.HebrewCalendar:CheckHebrewDayValue(int,int,int,int):this
mov eax, 1
;; size=32 bbWeight=0.50 PerfScore 2.38
G_M51319_IG04:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M51319_IG05:
mov rdi, rbx
mov esi, r15d
xor edx, edx
mov rax, qword ptr [rbp-0x30]
- call [rax+0x28]System.Globalization.Calendar:IsLeapYear(int,int):ubyte:this
+ call [rax+0x20]System.Globalization.Calendar:IsLeapYear(int,int):ubyte:this
test eax, eax
je SHORT G_M51319_IG07
cmp r14d, 6
jne SHORT G_M51319_IG07
cmp r12d, 30
jne SHORT G_M51319_IG07
mov eax, 1
;; size=36 bbWeight=0.50 PerfScore 4.38
G_M51319_IG06:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M51319_IG07:
mov rdi, rbx
mov esi, r15d
mov edx, r14d
mov ecx, r12d
mov r8d, r13d
mov rax, 0xD1FFAB1E ; code for System.Globalization.HebrewCalendar:CheckHebrewDayValue(int,int,int,int):this
call [rax]System.Globalization.HebrewCalendar:CheckHebrewDayValue(int,int,int,int):this
xor eax, eax
;; size=29 bbWeight=0.50 PerfScore 2.38
G_M51319_IG08:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-; Total bytes of code 203, prolog size 16, PerfScore 34.50, instruction count 75, allocated bytes for code 203 (MethodHash=6f413788) for method System.Globalization.HebrewCalendar:IsLeapDay(int,int,int,int):ubyte:this (FullOpts)
+; Total bytes of code 202, prolog size 16, PerfScore 34.50, instruction count 75, allocated bytes for code 202 (MethodHash=6f413788) for method System.Globalization.HebrewCalendar:IsLeapDay(int,int,int,int):ubyte:this (FullOpts)
-1 (-0.24 % of base) - System.Security.Cryptography.X509Certificates.X509Certificate:FormatDate(System.DateTime):System.String
; Assembly listing for method System.Security.Cryptography.X509Certificates.X509Certificate:FormatDate(System.DateTime):System.String (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 9 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00 ] ( 7, 7 ) struct ( 8) [rbp-0x30] do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
; V01 loc0 [V01,T01] ( 11, 7.50) ref -> rbx class-hnd <System.Globalization.CultureInfo>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T00] ( 6, 8 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Globalization.Calendar>
; V04 tmp2 [V04,T02] ( 4, 6 ) int -> r13 "impAppendStmt"
; V05 tmp3 [V05,T03] ( 4, 5 ) int -> r12 "impAppendStmt"
; V06 tmp4 [V06,T04] ( 4, 4 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Globalization.HijriCalendar>
; V07 tmp5 [V07,T07] ( 2, 2 ) ref -> rdi class-hnd exact single-def "impAppendStmt" <System.Globalization.DateTimeFormatInfo>
;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.DateTimeFormatInfo>
;* V09 tmp7 [V09,T12] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V10 tmp8 [V10,T05] ( 3, 4 ) int -> [rbp-0x34] spill-single-def "Inlining Arg"
;* V11 tmp9 [V11,T13] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V12 tmp10 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.DateTimeFormatInfo>
;* V13 tmp11 [V13 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.DateTime>
;* V14 tmp12 [V14 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
; V15 tmp13 [V15 ] ( 7, 7 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed single-def "field V00._dateData (fldOffset=0x0)" P-DEP
; V16 tmp14 [V16,T10] ( 2, 2 ) long -> rdi "field V13._dateData (fldOffset=0x0)" P-INDEP
;* V17 tmp15 [V17,T11] ( 0, 0 ) long -> zero-ref "field V14._ticks (fldOffset=0x0)" P-INDEP
; V18 tmp16 [V18,T08] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
; V19 tmp17 [V19,T09] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
; V20 cse0 [V20,T06] ( 3, 2.50) long -> r15 "CSE #03: moderate"
;
; Lcl frame size = 24
G_M18190_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
lea rbp, [rsp+0x40]
mov qword ptr [rbp-0x30], rdi
;; size=23 bbWeight=1 PerfScore 7.75
G_M18190_IG02:
mov rax, 0xD1FFAB1E ; code for System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo
call [rax]System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo
mov rbx, rax
mov rdi, rbx
mov rax, qword ptr [rbx]
mov r15, qword ptr [rax+0x50]
call [r15+0x20]System.Globalization.CultureInfo:get_DateTimeFormat():System.Globalization.DateTimeFormatInfo:this
mov r14, gword ptr [rax+0x90]
lea rdi, [rbp-0x30]
mov rax, 0xD1FFAB1E ; code for System.DateTime:get_Year():int:this
call [rax]System.DateTime:get_Year():int:this
mov r13d, eax
lea rdi, [rbp-0x30]
mov rax, 0xD1FFAB1E ; code for System.DateTime:get_Month():int:this
call [rax]System.DateTime:get_Month():int:this
mov r12d, eax
lea rdi, [rbp-0x30]
mov rax, 0xD1FFAB1E ; code for System.DateTime:get_Day():int:this
call [rax]System.DateTime:get_Day():int:this
mov dword ptr [rbp-0x34], eax
mov rdi, r14
mov esi, r13d
mov rcx, 0xD1FFAB1E ; code for Internal.Cryptography.Helpers:IsValidYear(System.Globalization.Calendar,int):ubyte
call [rcx]Internal.Cryptography.Helpers:IsValidYear(System.Globalization.Calendar,int):ubyte
test eax, eax
je SHORT G_M18190_IG04
;; size=115 bbWeight=1 PerfScore 30.50
G_M18190_IG03:
test r12d, r12d
jle SHORT G_M18190_IG04
mov rdi, r14
mov esi, r13d
xor edx, edx
mov rax, qword ptr [r14]
mov rax, qword ptr [rax+0x60]
- call [rax+0x08]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
+ call [rax]System.Globalization.Calendar:GetMonthsInYear(int,int):int:this
cmp eax, r12d
jl SHORT G_M18190_IG04
cmp dword ptr [rbp-0x34], 0
jle SHORT G_M18190_IG04
mov rdi, r14
mov esi, r13d
mov edx, r12d
xor ecx, ecx
mov r8, qword ptr [r14]
mov r8, qword ptr [r8+0x50]
- call [r8+0x38]System.Globalization.Calendar:GetDaysInMonth(int,int,int):int:this
+ call [r8+0x30]System.Globalization.Calendar:GetDaysInMonth(int,int,int):int:this
cmp eax, dword ptr [rbp-0x34]
jge G_M18190_IG06
- ;; size=65 bbWeight=0.50 PerfScore 12.12
+ ;; size=64 bbWeight=0.50 PerfScore 12.12
G_M18190_IG04:
mov rdi, rbx
call [r15+0x20]System.Globalization.CultureInfo:get_DateTimeFormat():System.Globalization.DateTimeFormatInfo:this
mov rsi, gword ptr [rax+0x90]
mov rdi, 0xD1FFAB1E ; System.Globalization.UmAlQuraCalendar
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
je SHORT G_M18190_IG05
mov rdi, rbx
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x58]
call [rax]System.Globalization.CultureInfo:Clone():System.Object:this
mov rsi, rax
mov rdi, 0xD1FFAB1E ; System.Globalization.CultureInfo
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov rbx, rax
mov rdi, 0xD1FFAB1E ; System.Globalization.HijriCalendar
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rdi, rbx
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x50]
call [rax+0x20]System.Globalization.CultureInfo:get_DateTimeFormat():System.Globalization.DateTimeFormatInfo:this
mov rdi, rax
mov dword ptr [r15+0x14], 0xD1FFAB1E
mov qword ptr [r15+0x08], -1
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Globalization.DateTimeFormatInfo:set_Calendar(System.Globalization.Calendar):this
cmp dword ptr [rdi], edi
call [rax]System.Globalization.DateTimeFormatInfo:set_Calendar(System.Globalization.Calendar):this
jmp SHORT G_M18190_IG06
;; size=150 bbWeight=0.50 PerfScore 20.38
G_M18190_IG05:
mov rdi, 0xD1FFAB1E ; const ptr
mov rbx, gword ptr [rdi]
;; size=13 bbWeight=0.50 PerfScore 1.12
G_M18190_IG06:
mov rdi, qword ptr [rbp-0x30]
mov rcx, 0xD1FFAB1E
mov rdx, rbx
xor rsi, rsi
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:Format(System.DateTime,System.String,System.IFormatProvider,System.TimeSpan):System.String
call [rax]System.DateTimeFormat:Format(System.DateTime,System.String,System.IFormatProvider,System.TimeSpan):System.String
nop
;; size=32 bbWeight=1 PerfScore 5.25
G_M18190_IG07:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 413, prolog size 19, PerfScore 81.38, instruction count 105, allocated bytes for code 413 (MethodHash=2e35b8f1) for method System.Security.Cryptography.X509Certificates.X509Certificate:FormatDate(System.DateTime):System.String (FullOpts)
+; Total bytes of code 412, prolog size 19, PerfScore 81.38, instruction count 105, allocated bytes for code 412 (MethodHash=2e35b8f1) for method System.Security.Cryptography.X509Certificates.X509Certificate:FormatDate(System.DateTime):System.String (FullOpts)