-59 (-45.38 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this
; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[]
; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[S] <System.Nullable`1[int]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "Reusable Box Helper"
;
; Lcl frame size = 32
G_M2528_IG01:
push rbp
sub rsp, 32
lea rbp, [rsp+0x20]
xor eax, eax
mov qword ptr [rbp-0x20], rax
mov gword ptr [rbp-0x08], rdi
vmovsd qword ptr [rbp-0x10], xmm0
mov qword ptr [rbp-0x18], rsi
;; size=29 bbWeight=1 PerfScore 6.00
G_M2528_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x20], rax
- mov rax, gword ptr [rbp-0x20]
- vmovsd xmm0, qword ptr [rbp-0x10]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x20]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, gword ptr [rbp-0x08]
mov rdx, qword ptr [rbp-0x18]
vmovsd xmm0, qword ptr [rbp-0x10]
mov esi, -1
mov ecx, 2
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this
call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this
nop
- ;; size=95 bbWeight=1 PerfScore 21.75
+ ;; size=36 bbWeight=1 PerfScore 9.00
G_M2528_IG03:
add rsp, 32
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 130, prolog size 16, PerfScore 29.50, instruction count 29, allocated bytes for code 130 (MethodHash=d20cf61f) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
+; Total bytes of code 71, prolog size 16, PerfScore 16.75, instruction count 19, allocated bytes for code 71 (MethodHash=d20cf61f) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
-59 (-47.20 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this
; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[]
; V02 loc0 [V02 ] ( 1, 1 ) int -> [rbp-0x18] do-not-enreg[X] addr-exposed ld-addr-op
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "Reusable Box Helper"
;
; Lcl frame size = 32
G_M1197_IG01:
push rbp
sub rsp, 32
lea rbp, [rsp+0x20]
xor eax, eax
mov qword ptr [rbp-0x20], rax
mov gword ptr [rbp-0x08], rdi
vmovsd qword ptr [rbp-0x10], xmm0
;; size=25 bbWeight=1 PerfScore 5.00
G_M1197_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x20], rax
- mov rax, gword ptr [rbp-0x20]
- vmovsd xmm0, qword ptr [rbp-0x10]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x20]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
xor eax, eax
mov dword ptr [rbp-0x18], eax
lea rsi, [rbp-0x18]
lea rdx, [rbp-0x18]
mov rdi, gword ptr [rbp-0x08]
vmovsd xmm0, qword ptr [rbp-0x10]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double,byref,byref):int:this
call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double,byref,byref):int:this
nop
- ;; size=94 bbWeight=1 PerfScore 22.50
+ ;; size=35 bbWeight=1 PerfScore 9.75
G_M1197_IG03:
add rsp, 32
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 125, prolog size 16, PerfScore 29.25, instruction count 29, allocated bytes for code 125 (MethodHash=654cfb52) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0)
+; Total bytes of code 66, prolog size 16, PerfScore 16.50, instruction count 19, allocated bytes for code 66 (MethodHash=654cfb52) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0)
-59 (-38.06 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this
; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp-0x0C] do-not-enreg[]
; V02 arg2 [V02 ] ( 1, 1 ) double -> [rbp-0x18] do-not-enreg[]
; V03 arg3 [V03 ] ( 1, 1 ) struct ( 8) [rbp-0x20] do-not-enreg[S] <System.Nullable`1[int]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [rbp-0x28] do-not-enreg[] must-init "Reusable Box Helper"
;
; Lcl frame size = 48
G_M61129_IG01:
push rbp
sub rsp, 48
lea rbp, [rsp+0x30]
xor eax, eax
mov qword ptr [rbp-0x28], rax
mov gword ptr [rbp-0x08], rdi
mov dword ptr [rbp-0x0C], esi
vmovsd qword ptr [rbp-0x18], xmm0
mov qword ptr [rbp-0x20], rdx
;; size=32 bbWeight=1 PerfScore 7.00
G_M61129_IG02:
mov eax, dword ptr [rbp-0x0C]
mov rcx, gword ptr [rbp-0x08]
cmp eax, dword ptr [rcx+0x38]
jbe SHORT G_M61129_IG03
mov rax, 0xD1FFAB1E ; code for System.Collections.ThrowHelper:ThrowIndexArgumentOutOfRange()
call [rax]System.Collections.ThrowHelper:ThrowIndexArgumentOutOfRange()
;; size=24 bbWeight=1 PerfScore 9.25
G_M61129_IG03:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x28], rax
- mov rax, gword ptr [rbp-0x28]
- vmovsd xmm0, qword ptr [rbp-0x18]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x28]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, gword ptr [rbp-0x08]
mov esi, dword ptr [rbp-0x0C]
vmovsd xmm0, qword ptr [rbp-0x18]
mov rdx, qword ptr [rbp-0x20]
mov ecx, 2
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this
call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this
nop
- ;; size=93 bbWeight=1 PerfScore 22.50
+ ;; size=34 bbWeight=1 PerfScore 9.75
G_M61129_IG04:
add rsp, 48
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 155, prolog size 16, PerfScore 40.50, instruction count 36, allocated bytes for code 155 (MethodHash=91e81136) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this (Tier0)
+; Total bytes of code 96, prolog size 16, PerfScore 27.75, instruction count 26, allocated bytes for code 96 (MethodHash=91e81136) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this (Tier0)
-59 (-28.23 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Remove(double,byref):ubyte:this
; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Remove(double,byref):ubyte:this (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[]
; V02 arg2 [V02 ] ( 1, 1 ) byref -> [rbp-0x18] do-not-enreg[]
; V03 loc0 [V03 ] ( 1, 1 ) int -> [rbp-0x1C] do-not-enreg[]
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [rbp-0x28] do-not-enreg[] must-init "Reusable Box Helper"
;
; Lcl frame size = 48
G_M50550_IG01:
push rbp
sub rsp, 48
lea rbp, [rsp+0x30]
xor eax, eax
mov qword ptr [rbp-0x28], rax
mov gword ptr [rbp-0x08], rdi
vmovsd qword ptr [rbp-0x10], xmm0
mov bword ptr [rbp-0x18], rsi
;; size=29 bbWeight=1 PerfScore 6.00
G_M50550_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x28], rax
- mov rax, gword ptr [rbp-0x28]
- vmovsd xmm0, qword ptr [rbp-0x10]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x28]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, gword ptr [rbp-0x08]
vmovsd xmm0, qword ptr [rbp-0x10]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this
call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this
mov dword ptr [rbp-0x1C], eax
cmp dword ptr [rbp-0x1C], 0
jl SHORT G_M50550_IG04
mov rax, gword ptr [rbp-0x08]
mov rax, gword ptr [rax+0x18]
mov ecx, dword ptr [rbp-0x1C]
cmp ecx, dword ptr [rax+0x08]
jae SHORT G_M50550_IG06
mov edx, ecx
imul rdx, rdx, 24
lea rax, bword ptr [rax+rdx+0x10]
mov rcx, bword ptr [rbp-0x18]
mov rdx, qword ptr [rax+0x10]
mov qword ptr [rcx], rdx
mov rdi, gword ptr [rbp-0x08]
mov esi, dword ptr [rbp-0x1C]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RemoveAt(int):this
call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RemoveAt(int):this
mov eax, 1
- ;; size=151 bbWeight=1 PerfScore 44.75
+ ;; size=92 bbWeight=1 PerfScore 32.00
G_M50550_IG03:
add rsp, 48
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M50550_IG04:
mov rax, bword ptr [rbp-0x18]
xor ecx, ecx
mov qword ptr [rax], rcx
xor eax, eax
;; size=11 bbWeight=1 PerfScore 2.50
G_M50550_IG05:
add rsp, 48
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M50550_IG06:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 209, prolog size 16, PerfScore 56.75, instruction count 53, allocated bytes for code 209 (MethodHash=70e43a89) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Remove(double,byref):ubyte:this (Tier0)
+; Total bytes of code 150, prolog size 16, PerfScore 44.00, instruction count 43, allocated bytes for code 150 (MethodHash=70e43a89) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Remove(double,byref):ubyte:this (Tier0)
-59 (-45.38 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:set_Item(double,System.Nullable`1[int]):this
; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:set_Item(double,System.Nullable`1[int]):this (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[]
; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[S] <System.Nullable`1[int]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "Reusable Box Helper"
;
; Lcl frame size = 32
G_M35017_IG01:
push rbp
sub rsp, 32
lea rbp, [rsp+0x20]
xor eax, eax
mov qword ptr [rbp-0x20], rax
mov gword ptr [rbp-0x08], rdi
vmovsd qword ptr [rbp-0x10], xmm0
mov qword ptr [rbp-0x18], rsi
;; size=29 bbWeight=1 PerfScore 6.00
G_M35017_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x20], rax
- mov rax, gword ptr [rbp-0x20]
- vmovsd xmm0, qword ptr [rbp-0x10]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x20]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, gword ptr [rbp-0x08]
mov rdx, qword ptr [rbp-0x18]
vmovsd xmm0, qword ptr [rbp-0x10]
mov esi, -1
mov ecx, 1
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this
call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this
nop
- ;; size=95 bbWeight=1 PerfScore 21.75
+ ;; size=36 bbWeight=1 PerfScore 9.00
G_M35017_IG03:
add rsp, 32
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 130, prolog size 16, PerfScore 29.50, instruction count 29, allocated bytes for code 130 (MethodHash=bbc07736) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:set_Item(double,System.Nullable`1[int]):this (Tier0)
+; Total bytes of code 71, prolog size 16, PerfScore 16.75, instruction count 19, allocated bytes for code 71 (MethodHash=bbc07736) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:set_Item(double,System.Nullable`1[int]):this (Tier0)
-59 (-12.22 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:SetAt(int,double,System.Nullable`1[int]):this
; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:SetAt(int,double,System.Nullable`1[int]):this (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp-0x0C] do-not-enreg[]
; V02 arg2 [V02 ] ( 1, 1 ) double -> [rbp-0x18] do-not-enreg[]
; V03 arg3 [V03 ] ( 1, 1 ) struct ( 8) [rbp-0x20] do-not-enreg[S] <System.Nullable`1[int]>
; V04 loc0 [V04 ] ( 1, 1 ) byref -> [rbp-0x28] do-not-enreg[] must-init
; V05 loc1 [V05 ] ( 1, 1 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
; V06 loc2 [V06 ] ( 1, 1 ) int -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [rbp-0x40] do-not-enreg[] must-init "Reusable Box Helper"
; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [rbp-0x48] do-not-enreg[] must-init "argument with side effect"
;
; Lcl frame size = 80
G_M37961_IG01:
push rbp
sub rsp, 80
lea rbp, [rsp+0x50]
xor eax, eax
mov qword ptr [rbp-0x48], rax
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x40], ymm8
mov gword ptr [rbp-0x08], rdi
mov dword ptr [rbp-0x0C], esi
vmovsd qword ptr [rbp-0x18], xmm0
mov qword ptr [rbp-0x20], rdx
;; size=42 bbWeight=1 PerfScore 9.33
G_M37961_IG02:
mov eax, dword ptr [rbp-0x0C]
mov rcx, gword ptr [rbp-0x08]
cmp eax, dword ptr [rcx+0x38]
jb SHORT G_M37961_IG03
mov rax, 0xD1FFAB1E ; code for System.Collections.ThrowHelper:ThrowIndexArgumentOutOfRange()
call [rax]System.Collections.ThrowHelper:ThrowIndexArgumentOutOfRange()
;; size=24 bbWeight=1 PerfScore 9.25
G_M37961_IG03:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x40], rax
- mov rax, gword ptr [rbp-0x40]
- vmovsd xmm0, qword ptr [rbp-0x18]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x40]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rax, gword ptr [rbp-0x08]
mov rax, gword ptr [rax+0x18]
mov ecx, dword ptr [rbp-0x0C]
cmp ecx, dword ptr [rax+0x08]
jae G_M37961_IG10
mov edx, ecx
imul rdx, rdx, 24
lea rax, bword ptr [rax+rdx+0x10]
mov bword ptr [rbp-0x28], rax
mov rax, gword ptr [rbp-0x08]
cmp gword ptr [rax+0x08], 0
jne SHORT G_M37961_IG05
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.EqualityComparer`1[double]:get_Default():System.Collections.Generic.EqualityComparer`1[double]
call [rax]System.Collections.Generic.EqualityComparer`1[double]:get_Default():System.Collections.Generic.EqualityComparer`1[double]
mov gword ptr [rbp-0x48], rax
mov rdi, gword ptr [rbp-0x48]
mov rax, bword ptr [rbp-0x28]
vmovsd xmm1, qword ptr [rax+0x08]
vmovsd xmm0, qword ptr [rbp-0x18]
mov rax, gword ptr [rbp-0x48]
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.Collections.Generic.EqualityComparer`1[double]:Equals(double,double):ubyte:this
test eax, eax
je SHORT G_M37961_IG07
mov rax, bword ptr [rbp-0x28]
mov rcx, qword ptr [rbp-0x20]
mov qword ptr [rax+0x10], rcx
- ;; size=169 bbWeight=1 PerfScore 55.50
+ ;; size=110 bbWeight=1 PerfScore 42.75
G_M37961_IG04:
add rsp, 80
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M37961_IG05:
mov rax, gword ptr [rbp-0x08]
mov rdi, gword ptr [rax+0x08]
mov rax, bword ptr [rbp-0x28]
vmovsd xmm1, qword ptr [rax+0x08]
vmovsd xmm0, qword ptr [rbp-0x18]
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this
call [r11]System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this
test eax, eax
je SHORT G_M37961_IG07
mov rax, bword ptr [rbp-0x28]
mov rcx, qword ptr [rbp-0x20]
mov qword ptr [rax+0x10], rcx
;; size=51 bbWeight=1 PerfScore 18.50
G_M37961_IG06:
add rsp, 80
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M37961_IG07:
xor eax, eax
mov dword ptr [rbp-0x30], eax
xor eax, eax
mov dword ptr [rbp-0x38], eax
lea rsi, [rbp-0x30]
lea rdx, [rbp-0x38]
mov rdi, gword ptr [rbp-0x08]
vmovsd xmm0, qword ptr [rbp-0x18]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double,byref,byref):int:this
call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double,byref,byref):int:this
test eax, eax
jl SHORT G_M37961_IG08
vmovsd xmm0, qword ptr [rbp-0x18]
mov rax, 0xD1FFAB1E ; code for System.Collections.ThrowHelper:ThrowDuplicateKey[double](double)
call [rax]System.Collections.ThrowHelper:ThrowDuplicateKey[double](double)
;; size=60 bbWeight=1 PerfScore 18.25
G_M37961_IG08:
mov rdi, gword ptr [rbp-0x08]
mov esi, dword ptr [rbp-0x0C]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RemoveEntryFromBucket(int):this
call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RemoveEntryFromBucket(int):this
mov rax, bword ptr [rbp-0x28]
mov ecx, dword ptr [rbp-0x30]
mov dword ptr [rax+0x04], ecx
mov rax, bword ptr [rbp-0x28]
vmovsd xmm0, qword ptr [rbp-0x18]
vmovsd qword ptr [rax+0x08], xmm0
mov rax, bword ptr [rbp-0x28]
mov rcx, qword ptr [rbp-0x20]
mov qword ptr [rax+0x10], rcx
mov rdi, gword ptr [rbp-0x08]
mov rsi, bword ptr [rbp-0x28]
mov edx, dword ptr [rbp-0x0C]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:PushEntryIntoBucket(byref,int):this
call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:PushEntryIntoBucket(byref,int):this
mov rax, gword ptr [rbp-0x08]
inc dword ptr [rax+0x3C]
mov rax, gword ptr [rbp-0x08]
mov rdx, gword ptr [rax+0x18]
mov rdi, gword ptr [rbp-0x08]
mov esi, dword ptr [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RehashIfNecessary(uint,System.Collections.Generic.OrderedDictionary`2+Entry[double,System.Nullable`1[int]][]):this
call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RehashIfNecessary(uint,System.Collections.Generic.OrderedDictionary`2+Entry[double,System.Nullable`1[int]][]):this
nop
;; size=113 bbWeight=1 PerfScore 36.00
G_M37961_IG09:
add rsp, 80
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M37961_IG10:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 483, prolog size 26, PerfScore 152.08, instruction count 120, allocated bytes for code 483 (MethodHash=ed356bb6) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:SetAt(int,double,System.Nullable`1[int]):this (Tier0)
+; Total bytes of code 424, prolog size 26, PerfScore 139.33, instruction count 110, allocated bytes for code 424 (MethodHash=ed356bb6) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:SetAt(int,double,System.Nullable`1[int]):this (Tier0)
-59 (-46.46 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryAdd(double,System.Nullable`1[int]):ubyte:this
; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryAdd(double,System.Nullable`1[int]):ubyte:this (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[]
; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[S] <System.Nullable`1[int]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "Reusable Box Helper"
;
; Lcl frame size = 32
G_M42298_IG01:
push rbp
sub rsp, 32
lea rbp, [rsp+0x20]
xor eax, eax
mov qword ptr [rbp-0x20], rax
mov gword ptr [rbp-0x08], rdi
vmovsd qword ptr [rbp-0x10], xmm0
mov qword ptr [rbp-0x18], rsi
;; size=29 bbWeight=1 PerfScore 6.00
G_M42298_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x20], rax
- mov rax, gword ptr [rbp-0x20]
- vmovsd xmm0, qword ptr [rbp-0x10]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x20]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, gword ptr [rbp-0x08]
mov rdx, qword ptr [rbp-0x18]
vmovsd xmm0, qword ptr [rbp-0x10]
mov esi, -1
xor ecx, ecx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this
call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this
nop
- ;; size=92 bbWeight=1 PerfScore 21.75
+ ;; size=33 bbWeight=1 PerfScore 9.00
G_M42298_IG03:
add rsp, 32
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 127, prolog size 16, PerfScore 29.50, instruction count 29, allocated bytes for code 127 (MethodHash=72125ac5) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryAdd(double,System.Nullable`1[int]):ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 16, PerfScore 16.75, instruction count 19, allocated bytes for code 68 (MethodHash=72125ac5) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryAdd(double,System.Nullable`1[int]):ubyte:this (Tier0)
-59 (-31.05 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this
; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[]
; V02 arg2 [V02 ] ( 1, 1 ) byref -> [rbp-0x18] do-not-enreg[]
; V03 loc0 [V03 ] ( 1, 1 ) int -> [rbp-0x1C] do-not-enreg[]
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [rbp-0x28] do-not-enreg[] must-init "Reusable Box Helper"
;
; Lcl frame size = 48
G_M4178_IG01:
push rbp
sub rsp, 48
lea rbp, [rsp+0x30]
xor eax, eax
mov qword ptr [rbp-0x28], rax
mov gword ptr [rbp-0x08], rdi
vmovsd qword ptr [rbp-0x10], xmm0
mov bword ptr [rbp-0x18], rsi
;; size=29 bbWeight=1 PerfScore 6.00
G_M4178_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x28], rax
- mov rax, gword ptr [rbp-0x28]
- vmovsd xmm0, qword ptr [rbp-0x10]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x28]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, gword ptr [rbp-0x08]
vmovsd xmm0, qword ptr [rbp-0x10]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this
call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this
mov dword ptr [rbp-0x1C], eax
cmp dword ptr [rbp-0x1C], 0
jl SHORT G_M4178_IG04
mov rax, gword ptr [rbp-0x08]
mov rax, gword ptr [rax+0x18]
mov ecx, dword ptr [rbp-0x1C]
cmp ecx, dword ptr [rax+0x08]
jae SHORT G_M4178_IG06
mov edx, ecx
imul rdx, rdx, 24
lea rax, bword ptr [rax+rdx+0x10]
mov rcx, bword ptr [rbp-0x18]
mov rdx, qword ptr [rax+0x10]
mov qword ptr [rcx], rdx
mov eax, 1
- ;; size=132 bbWeight=1 PerfScore 39.50
+ ;; size=73 bbWeight=1 PerfScore 26.75
G_M4178_IG03:
add rsp, 48
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M4178_IG04:
mov rax, bword ptr [rbp-0x18]
xor ecx, ecx
mov qword ptr [rax], rcx
xor eax, eax
;; size=11 bbWeight=1 PerfScore 2.50
G_M4178_IG05:
add rsp, 48
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M4178_IG06:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 190, prolog size 16, PerfScore 51.50, instruction count 49, allocated bytes for code 190 (MethodHash=4854efad) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0)
+; Total bytes of code 131, prolog size 16, PerfScore 38.75, instruction count 39, allocated bytes for code 131 (MethodHash=4854efad) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0)
-59 (-34.30 % of base) - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this
; Assembly listing for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[]
; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[S] <System.Nullable`1[int]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "Reusable Box Helper"
; V05 tmp2 [V05 ] ( 1, 1 ) struct (16) [rbp-0x30] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]>
; V06 tmp3 [V06 ] ( 1, 1 ) ref -> [rbp-0x38] do-not-enreg[] must-init class-hnd exact "impAppendStmt" <System.Collections.Generic.TreeSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]>
;
; Lcl frame size = 64
G_M62164_IG01:
push rbp
sub rsp, 64
lea rbp, [rsp+0x40]
xor eax, eax
mov qword ptr [rbp-0x20], rax
mov qword ptr [rbp-0x38], rax
mov gword ptr [rbp-0x08], rdi
vmovsd qword ptr [rbp-0x10], xmm0
mov qword ptr [rbp-0x18], rsi
;; size=33 bbWeight=1 PerfScore 7.00
G_M62164_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x20], rax
- mov rax, gword ptr [rbp-0x20]
- vmovsd xmm0, qword ptr [rbp-0x10]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x20]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
vxorps xmm0, xmm0, xmm0
vmovups xmmword ptr [rbp-0x30], xmm0
mov rax, gword ptr [rbp-0x08]
mov rax, gword ptr [rax+0x18]
mov gword ptr [rbp-0x38], rax
lea rdi, [rbp-0x30]
vmovsd xmm0, qword ptr [rbp-0x10]
mov rsi, qword ptr [rbp-0x18]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this
call [rax]System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this
vmovsd xmm0, qword ptr [rbp-0x30]
mov rsi, qword ptr [rbp-0x28]
mov rdi, gword ptr [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:Add(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:Add(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this
nop
- ;; size=133 bbWeight=1 PerfScore 37.33
+ ;; size=74 bbWeight=1 PerfScore 24.58
G_M62164_IG03:
add rsp, 64
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 172, prolog size 20, PerfScore 46.08, instruction count 39, allocated bytes for code 172 (MethodHash=82300d2b) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
+; Total bytes of code 113, prolog size 20, PerfScore 33.33, instruction count 29, allocated bytes for code 113 (MethodHash=82300d2b) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
-59 (-33.91 % of base) - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this
; Assembly listing for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[]
; V02 loc0 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[S] ld-addr-op <System.Nullable`1[int]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "Reusable Box Helper"
; V05 tmp2 [V05 ] ( 1, 1 ) ref -> [rbp-0x28] do-not-enreg[] must-init class-hnd exact "impAppendStmt" <System.Collections.Generic.TreeSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]>
; V06 tmp3 [V06 ] ( 1, 1 ) struct (16) [rbp-0x38] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]>
;
; Lcl frame size = 64
G_M13622_IG01:
push rbp
sub rsp, 64
lea rbp, [rsp+0x40]
xor eax, eax
mov qword ptr [rbp-0x20], rax
mov qword ptr [rbp-0x28], rax
mov gword ptr [rbp-0x08], rdi
vmovsd qword ptr [rbp-0x10], xmm0
;; size=29 bbWeight=1 PerfScore 6.00
G_M13622_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x20], rax
- mov rax, gword ptr [rbp-0x20]
- vmovsd xmm0, qword ptr [rbp-0x10]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x20]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rax, gword ptr [rbp-0x08]
mov rax, gword ptr [rax+0x18]
mov gword ptr [rbp-0x28], rax
xor eax, eax
mov qword ptr [rbp-0x18], rax
vxorps xmm0, xmm0, xmm0
vmovups xmmword ptr [rbp-0x38], xmm0
lea rdi, [rbp-0x38]
vmovsd xmm0, qword ptr [rbp-0x10]
mov rsi, qword ptr [rbp-0x18]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this
call [rax]System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this
vmovsd xmm0, qword ptr [rbp-0x38]
mov rsi, qword ptr [rbp-0x30]
mov rdi, gword ptr [rbp-0x28]
mov rax, gword ptr [rbp-0x28]
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x50]
call [rax+0x18]System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:Contains(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this
nop
- ;; size=139 bbWeight=1 PerfScore 40.33
+ ;; size=80 bbWeight=1 PerfScore 27.58
G_M13622_IG03:
add rsp, 64
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 174, prolog size 20, PerfScore 48.08, instruction count 41, allocated bytes for code 174 (MethodHash=c2bacac9) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this (Tier0)
+; Total bytes of code 115, prolog size 20, PerfScore 35.33, instruction count 31, allocated bytes for code 115 (MethodHash=c2bacac9) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this (Tier0)
-59 (-33.91 % of base) - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this
; Assembly listing for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[]
; V02 loc0 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[S] ld-addr-op <System.Nullable`1[int]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "Reusable Box Helper"
; V05 tmp2 [V05 ] ( 1, 1 ) ref -> [rbp-0x28] do-not-enreg[] must-init class-hnd exact "impAppendStmt" <System.Collections.Generic.TreeSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]>
; V06 tmp3 [V06 ] ( 1, 1 ) struct (16) [rbp-0x38] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]>
;
; Lcl frame size = 64
G_M55812_IG01:
push rbp
sub rsp, 64
lea rbp, [rsp+0x40]
xor eax, eax
mov qword ptr [rbp-0x20], rax
mov qword ptr [rbp-0x28], rax
mov gword ptr [rbp-0x08], rdi
vmovsd qword ptr [rbp-0x10], xmm0
;; size=29 bbWeight=1 PerfScore 6.00
G_M55812_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x20], rax
- mov rax, gword ptr [rbp-0x20]
- vmovsd xmm0, qword ptr [rbp-0x10]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x20]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rax, gword ptr [rbp-0x08]
mov rax, gword ptr [rax+0x18]
mov gword ptr [rbp-0x28], rax
xor eax, eax
mov qword ptr [rbp-0x18], rax
vxorps xmm0, xmm0, xmm0
vmovups xmmword ptr [rbp-0x38], xmm0
lea rdi, [rbp-0x38]
vmovsd xmm0, qword ptr [rbp-0x10]
mov rsi, qword ptr [rbp-0x18]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this
call [rax]System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this
vmovsd xmm0, qword ptr [rbp-0x38]
mov rsi, qword ptr [rbp-0x30]
mov rdi, gword ptr [rbp-0x28]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:Remove(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:Remove(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this
nop
- ;; size=139 bbWeight=1 PerfScore 38.58
+ ;; size=80 bbWeight=1 PerfScore 25.83
G_M55812_IG03:
add rsp, 64
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 174, prolog size 20, PerfScore 46.33, instruction count 40, allocated bytes for code 174 (MethodHash=9f4c25fb) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Tier0)
+; Total bytes of code 115, prolog size 20, PerfScore 33.58, instruction count 30, allocated bytes for code 115 (MethodHash=9f4c25fb) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Tier0)
-59 (-21.15 % of base) - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this
; Assembly listing for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[]
; V02 arg2 [V02 ] ( 1, 1 ) byref -> [rbp-0x18] do-not-enreg[]
; V03 loc0 [V03 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init class-hnd exact <System.Collections.Generic.SortedSet`1+Node[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]>
; V04 loc1 [V04 ] ( 1, 1 ) struct ( 8) [rbp-0x28] do-not-enreg[S] ld-addr-op <System.Nullable`1[int]>
; V05 loc2 [V05 ] ( 1, 1 ) struct (16) [rbp-0x38] do-not-enreg[XS] addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07 ] ( 1, 1 ) ref -> [rbp-0x40] do-not-enreg[] must-init "Reusable Box Helper"
; V08 tmp2 [V08 ] ( 1, 1 ) ref -> [rbp-0x48] do-not-enreg[] must-init class-hnd exact "impAppendStmt" <System.Collections.Generic.TreeSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]>
; V09 tmp3 [V09 ] ( 1, 1 ) struct (16) [rbp-0x58] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]>
; V10 tmp4 [V10 ] ( 1, 1 ) struct (16) [rbp-0x68] do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]>
;
; Lcl frame size = 112
G_M26086_IG01:
push rbp
sub rsp, 112
lea rbp, [rsp+0x70]
xor eax, eax
mov qword ptr [rbp-0x48], rax
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x40], ymm8
mov qword ptr [rbp-0x20], rax
mov gword ptr [rbp-0x08], rdi
vmovsd qword ptr [rbp-0x10], xmm0
mov bword ptr [rbp-0x18], rsi
;; size=43 bbWeight=1 PerfScore 9.33
G_M26086_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x40], rax
- mov rax, gword ptr [rbp-0x40]
- vmovsd xmm0, qword ptr [rbp-0x10]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x40]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rax, gword ptr [rbp-0x08]
mov rax, gword ptr [rax+0x18]
mov gword ptr [rbp-0x48], rax
xor eax, eax
mov qword ptr [rbp-0x28], rax
vxorps xmm0, xmm0, xmm0
vmovups xmmword ptr [rbp-0x58], xmm0
lea rdi, [rbp-0x58]
vmovsd xmm0, qword ptr [rbp-0x10]
mov rsi, qword ptr [rbp-0x28]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this
call [rax]System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this
vmovsd xmm0, qword ptr [rbp-0x58]
mov rsi, qword ptr [rbp-0x50]
mov rdi, gword ptr [rbp-0x48]
mov rax, gword ptr [rbp-0x48]
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x58]
call [rax]System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:FindNode(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):System.Collections.Generic.SortedSet`1+Node[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:this
mov gword ptr [rbp-0x20], rax
cmp gword ptr [rbp-0x20], 0
jne SHORT G_M26086_IG04
mov rax, bword ptr [rbp-0x18]
xor ecx, ecx
mov qword ptr [rax], rcx
xor eax, eax
- ;; size=159 bbWeight=1 PerfScore 46.58
+ ;; size=100 bbWeight=1 PerfScore 33.83
G_M26086_IG03:
add rsp, 112
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M26086_IG04:
mov rdi, gword ptr [rbp-0x20]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.SortedSet`1+Node[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:get_Item():System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.SortedSet`1+Node[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:get_Item():System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:this
vmovsd qword ptr [rbp-0x68], xmm0
mov qword ptr [rbp-0x60], rax
vmovups xmm0, xmmword ptr [rbp-0x68]
vmovups xmmword ptr [rbp-0x38], xmm0
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:get_Value():System.Nullable`1[int]:this
call [rax]System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:get_Value():System.Nullable`1[int]:this
mov rcx, bword ptr [rbp-0x18]
mov qword ptr [rcx], rax
mov eax, 1
;; size=65 bbWeight=1 PerfScore 19.25
G_M26086_IG05:
add rsp, 112
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 279, prolog size 30, PerfScore 78.67, instruction count 67, allocated bytes for code 279 (MethodHash=fbd89a19) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0)
+; Total bytes of code 220, prolog size 30, PerfScore 65.92, instruction count 57, allocated bytes for code 220 (MethodHash=fbd89a19) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0)
-59 (-17.25 % of base) - System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this
; Assembly listing for method System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[]
; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[S] <System.Nullable`1[int]>
; V03 loc0 [V03 ] ( 1, 1 ) int -> [rbp-0x1C] do-not-enreg[]
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [rbp-0x28] do-not-enreg[] must-init "Reusable Box Helper"
; V06 tmp2 [V06 ] ( 1, 1 ) ref -> [rbp-0x30] do-not-enreg[] must-init class-hnd exact "impImportAndPushBox" <System.String>
; V07 tmp3 [V07 ] ( 1, 1 ) ref -> [rbp-0x38] do-not-enreg[] must-init class-hnd exact "NewObj constructor temp" <System.ArgumentException>
; V08 tmp4 [V08 ] ( 1, 1 ) ref -> [rbp-0x40] do-not-enreg[] must-init "argument with side effect"
; V09 tmp5 [V09 ] ( 1, 1 ) ref -> [rbp-0x48] do-not-enreg[] must-init "argument with side effect"
;
; Lcl frame size = 80
G_M22574_IG01:
push rbp
sub rsp, 80
lea rbp, [rsp+0x50]
xor eax, eax
mov qword ptr [rbp-0x48], rax
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x40], ymm8
mov gword ptr [rbp-0x08], rdi
vmovsd qword ptr [rbp-0x10], xmm0
mov qword ptr [rbp-0x18], rsi
;; size=39 bbWeight=1 PerfScore 8.33
G_M22574_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x28], rax
- mov rax, gword ptr [rbp-0x28]
- vmovsd xmm0, qword ptr [rbp-0x10]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x28]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rax, gword ptr [rbp-0x08]
mov rdi, gword ptr [rax+0x08]
mov rax, gword ptr [rbp-0x08]
mov rcx, gword ptr [rax+0x18]
mov rax, gword ptr [rbp-0x08]
mov edx, dword ptr [rax+0x30]
vmovsd xmm0, qword ptr [rbp-0x10]
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Array:BinarySearch[double](double[],int,int,double,System.Collections.Generic.IComparer`1[double]):int
call [rax]System.Array:BinarySearch[double](double[],int,int,double,System.Collections.Generic.IComparer`1[double]):int
mov dword ptr [rbp-0x1C], eax
cmp dword ptr [rbp-0x1C], 0
jl G_M22574_IG04
- ;; size=114 bbWeight=1 PerfScore 32.25
+ ;; size=55 bbWeight=1 PerfScore 19.50
G_M22574_IG03:
mov rdi, 0xD1FFAB1E ; System.Double
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0x28], rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Argument_AddingDuplicate():System.String
call [rax]System.SR:get_Argument_AddingDuplicate():System.String
mov gword ptr [rbp-0x30], rax
mov rax, gword ptr [rbp-0x28]
vmovsd xmm0, qword ptr [rbp-0x10]
vmovsd qword ptr [rax+0x08], xmm0
mov rdi, 0xD1FFAB1E ; System.ArgumentException
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0x38], rax
mov rsi, gword ptr [rbp-0x28]
mov rdi, gword ptr [rbp-0x30]
mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object):System.String
call [rax]System.SR:Format(System.String,System.Object):System.String
mov gword ptr [rbp-0x40], rax
mov edi, 0x869
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov gword ptr [rbp-0x48], rax
mov rsi, gword ptr [rbp-0x40]
mov rdx, gword ptr [rbp-0x48]
mov rdi, gword ptr [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this
call [rax]System.ArgumentException:.ctor(System.String,System.String):this
mov rdi, gword ptr [rbp-0x38]
call CORINFO_HELP_THROW
int3
;; size=150 bbWeight=0 PerfScore 0.00
G_M22574_IG04:
mov eax, dword ptr [rbp-0x1C]
mov esi, eax
not esi
mov rdi, gword ptr [rbp-0x08]
vmovsd xmm0, qword ptr [rbp-0x10]
mov rdx, qword ptr [rbp-0x18]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this
call [rax]System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this
nop
;; size=33 bbWeight=1 PerfScore 10.00
G_M22574_IG05:
add rsp, 80
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 342, prolog size 26, PerfScore 52.33, instruction count 74, allocated bytes for code 342 (MethodHash=8f1ea7d1) for method System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
+; Total bytes of code 283, prolog size 26, PerfScore 39.58, instruction count 64, allocated bytes for code 283 (MethodHash=8f1ea7d1) for method System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
-59 (-38.06 % of base) - System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:IndexOfKey(double):int:this
; Assembly listing for method System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:IndexOfKey(double):int:this (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[]
; V02 loc0 [V02 ] ( 1, 1 ) int -> [rbp-0x14] do-not-enreg[]
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "Reusable Box Helper"
;
; Lcl frame size = 32
G_M20116_IG01:
push rbp
sub rsp, 32
lea rbp, [rsp+0x20]
xor eax, eax
mov qword ptr [rbp-0x20], rax
mov gword ptr [rbp-0x08], rdi
vmovsd qword ptr [rbp-0x10], xmm0
;; size=25 bbWeight=1 PerfScore 5.00
G_M20116_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x20], rax
- mov rax, gword ptr [rbp-0x20]
- vmovsd xmm0, qword ptr [rbp-0x10]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x20]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rax, gword ptr [rbp-0x08]
mov rdi, gword ptr [rax+0x08]
mov rax, gword ptr [rbp-0x08]
mov rcx, gword ptr [rax+0x18]
mov rax, gword ptr [rbp-0x08]
mov edx, dword ptr [rax+0x30]
vmovsd xmm0, qword ptr [rbp-0x10]
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Array:BinarySearch[double](double[],int,int,double,System.Collections.Generic.IComparer`1[double]):int
call [rax]System.Array:BinarySearch[double](double[],int,int,double,System.Collections.Generic.IComparer`1[double]):int
mov dword ptr [rbp-0x14], eax
cmp dword ptr [rbp-0x14], 0
jge SHORT G_M20116_IG04
mov eax, -1
- ;; size=115 bbWeight=1 PerfScore 32.50
+ ;; size=56 bbWeight=1 PerfScore 19.75
G_M20116_IG03:
add rsp, 32
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M20116_IG04:
mov eax, dword ptr [rbp-0x14]
;; size=3 bbWeight=1 PerfScore 1.00
G_M20116_IG05:
add rsp, 32
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 155, prolog size 16, PerfScore 42.00, instruction count 38, allocated bytes for code 155 (MethodHash=9becb16b) for method System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:IndexOfKey(double):int:this (Tier0)
+; Total bytes of code 96, prolog size 16, PerfScore 29.25, instruction count 28, allocated bytes for code 96 (MethodHash=9becb16b) for method System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:IndexOfKey(double):int:this (Tier0)
-59 (-30.10 % of base) - System.Collections.Generic.SortedList`2+KeyList[double,System.Nullable`1[int]]:IndexOf(double):int:this
; Assembly listing for method System.Collections.Generic.SortedList`2+KeyList[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Generic.SortedList`2+KeyList[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[]
; V02 loc0 [V02 ] ( 1, 1 ) int -> [rbp-0x14] do-not-enreg[]
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "Reusable Box Helper"
; V05 tmp2 [V05 ] ( 1, 1 ) ref -> [rbp-0x28] do-not-enreg[] must-init class-hnd "non-inline candidate call" <double[]>
; V06 tmp3 [V06 ] ( 1, 1 ) int -> [rbp-0x2C] do-not-enreg[] "argument with side effect"
;
; Lcl frame size = 48
G_M17245_IG01:
push rbp
sub rsp, 48
lea rbp, [rsp+0x30]
xor eax, eax
mov qword ptr [rbp-0x20], rax
mov qword ptr [rbp-0x28], rax
mov gword ptr [rbp-0x08], rdi
vmovsd qword ptr [rbp-0x10], xmm0
;; size=29 bbWeight=1 PerfScore 6.00
G_M17245_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x20], rax
- mov rax, gword ptr [rbp-0x20]
- vmovsd xmm0, qword ptr [rbp-0x10]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x20]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rax, gword ptr [rbp-0x08]
mov rax, gword ptr [rax+0x08]
mov rax, gword ptr [rax+0x08]
mov gword ptr [rbp-0x28], rax
mov rax, gword ptr [rbp-0x08]
mov rdi, gword ptr [rax+0x08]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:get_Count():int:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:get_Count():int:this
mov dword ptr [rbp-0x2C], eax
mov edx, dword ptr [rbp-0x2C]
mov rax, gword ptr [rbp-0x08]
mov rax, gword ptr [rax+0x08]
mov rcx, gword ptr [rax+0x18]
mov rdi, gword ptr [rbp-0x28]
vmovsd xmm0, qword ptr [rbp-0x10]
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Array:BinarySearch[double](double[],int,int,double,System.Collections.Generic.IComparer`1[double]):int
call [rax]System.Array:BinarySearch[double](double[],int,int,double,System.Collections.Generic.IComparer`1[double]):int
mov dword ptr [rbp-0x14], eax
cmp dword ptr [rbp-0x14], 0
jl SHORT G_M17245_IG04
mov eax, dword ptr [rbp-0x14]
- ;; size=150 bbWeight=1 PerfScore 47.50
+ ;; size=91 bbWeight=1 PerfScore 34.75
G_M17245_IG03:
add rsp, 48
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M17245_IG04:
mov eax, -1
;; size=5 bbWeight=1 PerfScore 0.25
G_M17245_IG05:
add rsp, 48
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 196, prolog size 20, PerfScore 57.25, instruction count 48, allocated bytes for code 196 (MethodHash=94dcbca2) for method System.Collections.Generic.SortedList`2+KeyList[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0)
+; Total bytes of code 137, prolog size 20, PerfScore 44.50, instruction count 38, allocated bytes for code 137 (MethodHash=94dcbca2) for method System.Collections.Generic.SortedList`2+KeyList[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0)
-59 (-9.10 % of base) - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Contains(double):ubyte:this
; Assembly listing for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Contains(double):ubyte:this (Instrumented Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Instrumented Tier0 code
; rbp based frame
; fully interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x30] do-not-enreg[] this class-hnd <System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x38] do-not-enreg[]
; V02 loc0 [V02 ] ( 1, 1 ) struct (24) [rbp-0x50] do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]>
; V03 loc1 [V03 ] ( 1, 1 ) struct ( 8) [rbp-0x58] do-not-enreg[SR] multireg-ret <System.Nullable`1[int]>
; V04 loc2 [V04 ] ( 1, 1 ) ubyte -> [rbp-0x5C] do-not-enreg[]
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06 ] ( 1, 1 ) ref -> [rbp-0x68] do-not-enreg[] must-init "Reusable Box Helper"
; V07 tmp2 [V07 ] ( 1, 1 ) ref -> [rbp-0x70] do-not-enreg[] must-init class-hnd "non-inline candidate call" <System.Collections.Generic.IEqualityComparer`1[double]>
; V08 tmp3 [V08 ] ( 1, 1 ) ref -> [rbp-0x78] do-not-enreg[] must-init "handle histogram profile tmp"
; V09 tmp4 [V09 ] ( 1, 1 ) ref -> [rbp-0x80] do-not-enreg[] must-init "handle histogram profile tmp"
; V10 tmp5 [V10 ] ( 1, 1 ) int -> [rbp-0x88] do-not-enreg[X] addr-exposed "patchpoint counter"
; V11 tmp6 [V11 ] ( 1, 1 ) ref -> [rbp-0x90] do-not-enreg[] must-init "argument with side effect"
; V12 tmp7 [V12 ] ( 1, 1 ) ref -> [rbp-0x98] do-not-enreg[] must-init "argument with side effect"
; V13 tmp8 [V13 ] ( 1, 1 ) ref -> [rbp-0xA0] do-not-enreg[] must-init "argument with side effect"
; V14 tmp9 [V14 ] ( 1, 1 ) double -> [rbp-0xA8] do-not-enreg[] "argument with side effect"
; V15 PSPSym [V15 ] ( 1, 1 ) long -> [rbp-0xB0] do-not-enreg[V] "PSPSym"
;
; Lcl frame size = 176
G_M48041_IG01:
push rbp
sub rsp, 176
lea rbp, [rsp+0xB0]
vxorps xmm8, xmm8, xmm8
vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
vmovdqa xmmword ptr [rbp-0x60], xmm8
vmovdqa xmmword ptr [rbp-0x50], xmm8
xor eax, eax
mov qword ptr [rbp-0x40], rax
mov qword ptr [rbp-0xB0], rsp
mov gword ptr [rbp-0x30], rdi
vmovsd qword ptr [rbp-0x38], xmm0
;; size=63 bbWeight=1 PerfScore 12.33
G_M48041_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x68], rax
- mov rax, gword ptr [rbp-0x68]
- vmovsd xmm0, qword ptr [rbp-0x38]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x68]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov dword ptr [rbp-0x88], 0x3E8
mov rax, gword ptr [rbp-0x30]
cmp gword ptr [rax+0x18], 0
je SHORT G_M48041_IG04
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
mov rax, gword ptr [rbp-0x30]
mov rdi, gword ptr [rax+0x18]
vmovsd xmm0, qword ptr [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.Dictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this
nop
- ;; size=123 bbWeight=1 PerfScore 32.50
+ ;; size=64 bbWeight=1 PerfScore 19.75
G_M48041_IG03:
add rsp, 176
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 1.75
G_M48041_IG04:
mov rdi, gword ptr [rbp-0x30]
mov rax, 0xD1FFAB1E ; code for System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:get_Items():System.Collections.Generic.List`1[System.Nullable`1[int]]:this
call [rax]System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:get_Items():System.Collections.Generic.List`1[System.Nullable`1[int]]:this
mov gword ptr [rbp-0x90], rax
mov rdi, gword ptr [rbp-0x90]
lea rsi, [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.Nullable`1[int]]:GetEnumerator():System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.List`1[System.Nullable`1[int]]:GetEnumerator():System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:this
nop
;; size=49 bbWeight=1 PerfScore 13.25
G_M48041_IG05:
jmp G_M48041_IG08
;; size=5 bbWeight=1 PerfScore 2.00
G_M48041_IG06:
lea rdi, [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:get_Current():System.Nullable`1[int]:this
call [rax]System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:get_Current():System.Nullable`1[int]:this
mov qword ptr [rbp-0x58], rax
mov rax, gword ptr [rbp-0x30]
mov rax, gword ptr [rax+0x10]
mov gword ptr [rbp-0x70], rax
mov rax, gword ptr [rbp-0x70]
mov gword ptr [rbp-0x78], rax
mov rdi, gword ptr [rbp-0x78]
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_CLASSPROFILE32
mov rax, gword ptr [rbp-0x78]
mov gword ptr [rbp-0xA0], rax
mov rax, gword ptr [rbp-0x30]
mov gword ptr [rbp-0x80], rax
mov rdi, gword ptr [rbp-0x80]
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_CLASSPROFILE32
mov rax, gword ptr [rbp-0x80]
mov gword ptr [rbp-0x98], rax
mov rdi, gword ptr [rbp-0x98]
mov rsi, qword ptr [rbp-0x58]
mov rax, gword ptr [rbp-0x98]
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x60]
call [rax+0x10]System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:GetKeyForItem(System.Nullable`1[int]):double:this
vmovsd qword ptr [rbp-0xA8], xmm0
mov rdi, gword ptr [rbp-0xA0]
vmovsd xmm0, qword ptr [rbp-0xA8]
vmovsd xmm1, qword ptr [rbp-0x38]
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this
call [r11]System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this
test eax, eax
je SHORT G_M48041_IG07
mov dword ptr [rbp-0x5C], 1
jmp SHORT G_M48041_IG13
;; size=190 bbWeight=1 PerfScore 46.75
G_M48041_IG07:
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
;; size=15 bbWeight=0.50 PerfScore 0.62
G_M48041_IG08:
mov eax, dword ptr [rbp-0x88]
dec eax
mov dword ptr [rbp-0x88], eax
cmp dword ptr [rbp-0x88], 0
jg SHORT G_M48041_IG10
;; size=23 bbWeight=1 PerfScore 5.25
G_M48041_IG09:
lea rdi, [rbp-0x88]
mov esi, 84
call CORINFO_HELP_PATCHPOINT
;; size=17 bbWeight=0.01 PerfScore 0.02
G_M48041_IG10:
lea rdi, [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:MoveNext():ubyte:this
call [rax]System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:MoveNext():ubyte:this
test eax, eax
jne G_M48041_IG06
;; size=24 bbWeight=1 PerfScore 5.00
G_M48041_IG11:
mov rdi, rsp
;; size=3 bbWeight=1 PerfScore 0.25
G_M48041_IG12:
call G_M48041_IG19
jmp SHORT G_M48041_IG15
;; size=7 bbWeight=1 PerfScore 3.00
G_M48041_IG13:
mov rdi, rsp
;; size=3 bbWeight=1 PerfScore 0.25
G_M48041_IG14:
call G_M48041_IG19
jmp SHORT G_M48041_IG17
;; size=7 bbWeight=1 PerfScore 3.00
G_M48041_IG15:
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
xor eax, eax
;; size=17 bbWeight=1 PerfScore 1.50
G_M48041_IG16:
add rsp, 176
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 1.75
G_M48041_IG17:
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
mov eax, dword ptr [rbp-0x5C]
;; size=18 bbWeight=1 PerfScore 2.25
G_M48041_IG18:
add rsp, 176
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 1.75
G_M48041_IG19:
push rbp
sub rsp, 16
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0xB0]
;; size=19 bbWeight=1 PerfScore 4.75
G_M48041_IG20:
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
lea rdi, [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:Dispose():this
call [rax]System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:Dispose():this
nop
;; size=32 bbWeight=1 PerfScore 5.25
G_M48041_IG21:
add rsp, 16
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 648, prolog size 63, PerfScore 144.98, instruction count 133, allocated bytes for code 648 (MethodHash=086e4456) for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Contains(double):ubyte:this (Instrumented Tier0)
+; Total bytes of code 589, prolog size 63, PerfScore 132.23, instruction count 123, allocated bytes for code 589 (MethodHash=086e4456) for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Contains(double):ubyte:this (Instrumented Tier0)
-59 (-8.73 % of base) - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this
; Assembly listing for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Instrumented Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Instrumented Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x30] do-not-enreg[] this class-hnd <System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x38] do-not-enreg[]
; V02 loc0 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x40] do-not-enreg[XS] addr-exposed ld-addr-op <System.Nullable`1[int]>
; V03 loc1 [V03 ] ( 1, 1 ) int -> [rbp-0x44] do-not-enreg[]
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [rbp-0x50] do-not-enreg[] must-init "Reusable Box Helper"
; V06 tmp2 [V06 ] ( 1, 1 ) ref -> [rbp-0x58] do-not-enreg[] must-init class-hnd "non-inline candidate call" <System.Collections.Generic.IEqualityComparer`1[double]>
; V07 tmp3 [V07 ] ( 1, 1 ) struct ( 8) [rbp-0x60] do-not-enreg[SR] multireg-ret "spilled call-like call argument" <System.Nullable`1[int]>
; V08 tmp4 [V08 ] ( 1, 1 ) ref -> [rbp-0x68] do-not-enreg[] must-init "handle histogram profile tmp"
; V09 tmp5 [V09 ] ( 1, 1 ) ref -> [rbp-0x70] do-not-enreg[] must-init "handle histogram profile tmp"
; V10 tmp6 [V10 ] ( 1, 1 ) ref -> [rbp-0x78] do-not-enreg[] must-init "handle histogram profile tmp"
; V11 tmp7 [V11 ] ( 1, 1 ) int -> [rbp-0x80] do-not-enreg[X] addr-exposed "patchpoint counter"
; V12 tmp8 [V12 ] ( 1, 1 ) ref -> [rbp-0x88] do-not-enreg[] must-init "argument with side effect"
; V13 tmp9 [V13 ] ( 1, 1 ) ref -> [rbp-0x90] do-not-enreg[] must-init "argument with side effect"
; V14 tmp10 [V14 ] ( 1, 1 ) ref -> [rbp-0x98] do-not-enreg[] must-init "argument with side effect"
; V15 tmp11 [V15 ] ( 1, 1 ) double -> [rbp-0xA0] do-not-enreg[] "argument with side effect"
; V16 tmp12 [V16 ] ( 1, 1 ) ref -> [rbp-0xA8] do-not-enreg[] must-init "argument with side effect"
;
; Lcl frame size = 176
G_M27692_IG01:
push rbp
sub rsp, 176
lea rbp, [rsp+0xB0]
xor eax, eax
mov qword ptr [rbp-0xA8], rax
vxorps xmm8, xmm8, xmm8
vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
vmovdqa xmmword ptr [rbp-0x60], xmm8
mov qword ptr [rbp-0x50], rax
mov gword ptr [rbp-0x30], rdi
vmovsd qword ptr [rbp-0x38], xmm0
;; size=58 bbWeight=1 PerfScore 10.33
G_M27692_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x50], rax
- mov rax, gword ptr [rbp-0x50]
- vmovsd xmm0, qword ptr [rbp-0x38]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x50]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov dword ptr [rbp-0x80], 0x3E8
mov rax, gword ptr [rbp-0x30]
cmp gword ptr [rax+0x18], 0
je SHORT G_M27692_IG06
mov rax, gword ptr [rbp-0x30]
mov rdi, gword ptr [rax+0x18]
lea rsi, [rbp-0x40]
vmovsd xmm0, qword ptr [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.Dictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this
test eax, eax
je SHORT G_M27692_IG04
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
mov rdi, gword ptr [rbp-0x30]
mov rsi, qword ptr [rbp-0x40]
mov rax, 0xD1FFAB1E ; code for System.Collections.ObjectModel.Collection`1[System.Nullable`1[int]]:Remove(System.Nullable`1[int]):ubyte:this
call [rax]System.Collections.ObjectModel.Collection`1[System.Nullable`1[int]]:Remove(System.Nullable`1[int]):ubyte:this
nop
- ;; size=148 bbWeight=1 PerfScore 39.50
+ ;; size=89 bbWeight=1 PerfScore 26.75
G_M27692_IG03:
add rsp, 176
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 1.75
G_M27692_IG04:
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
xor eax, eax
;; size=17 bbWeight=1 PerfScore 1.50
G_M27692_IG05:
add rsp, 176
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 1.75
G_M27692_IG06:
xor eax, eax
mov dword ptr [rbp-0x44], eax
jmp G_M27692_IG11
;; size=10 bbWeight=1 PerfScore 3.25
G_M27692_IG07:
mov rax, gword ptr [rbp-0x30]
mov rax, gword ptr [rax+0x10]
mov gword ptr [rbp-0x58], rax
mov rdi, gword ptr [rbp-0x30]
mov rax, 0xD1FFAB1E ; code for System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:get_Items():System.Collections.Generic.List`1[System.Nullable`1[int]]:this
call [rax]System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:get_Items():System.Collections.Generic.List`1[System.Nullable`1[int]]:this
mov gword ptr [rbp-0x88], rax
mov rdi, gword ptr [rbp-0x88]
mov esi, dword ptr [rbp-0x44]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.Nullable`1[int]]:get_Item(int):System.Nullable`1[int]:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.List`1[System.Nullable`1[int]]:get_Item(int):System.Nullable`1[int]:this
mov qword ptr [rbp-0x60], rax
mov rax, gword ptr [rbp-0x58]
mov gword ptr [rbp-0x68], rax
mov rdi, gword ptr [rbp-0x68]
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_CLASSPROFILE32
mov rax, gword ptr [rbp-0x68]
mov gword ptr [rbp-0x98], rax
mov rax, gword ptr [rbp-0x30]
mov gword ptr [rbp-0x70], rax
mov rdi, gword ptr [rbp-0x70]
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_CLASSPROFILE32
mov rax, gword ptr [rbp-0x70]
mov gword ptr [rbp-0x90], rax
mov rdi, gword ptr [rbp-0x90]
mov rsi, qword ptr [rbp-0x60]
mov rax, gword ptr [rbp-0x90]
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x60]
call [rax+0x10]System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:GetKeyForItem(System.Nullable`1[int]):double:this
vmovsd qword ptr [rbp-0xA0], xmm0
mov rdi, gword ptr [rbp-0x98]
vmovsd xmm0, qword ptr [rbp-0xA0]
vmovsd xmm1, qword ptr [rbp-0x38]
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this
call [r11]System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this
test eax, eax
je SHORT G_M27692_IG10
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
mov rax, gword ptr [rbp-0x30]
mov gword ptr [rbp-0x78], rax
mov rdi, gword ptr [rbp-0x78]
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_CLASSPROFILE32
mov rax, gword ptr [rbp-0x78]
mov gword ptr [rbp-0xA8], rax
mov rdi, gword ptr [rbp-0xA8]
mov esi, dword ptr [rbp-0x44]
mov rax, gword ptr [rbp-0xA8]
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x50]
;; size=289 bbWeight=1 PerfScore 68.00
G_M27692_IG08:
call [rax+0x10]System.Collections.ObjectModel.Collection`1[System.Nullable`1[int]]:RemoveItem(int):this
mov eax, 1
;; size=8 bbWeight=1 PerfScore 3.25
G_M27692_IG09:
add rsp, 176
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 1.75
G_M27692_IG10:
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
mov eax, dword ptr [rbp-0x44]
inc eax
mov dword ptr [rbp-0x44], eax
;; size=23 bbWeight=1 PerfScore 3.50
G_M27692_IG11:
mov eax, dword ptr [rbp-0x80]
dec eax
mov dword ptr [rbp-0x80], eax
cmp dword ptr [rbp-0x80], 0
jg SHORT G_M27692_IG13
;; size=14 bbWeight=1 PerfScore 5.25
G_M27692_IG12:
lea rdi, [rbp-0x80]
mov esi, 99
call CORINFO_HELP_PATCHPOINT
;; size=14 bbWeight=0.01 PerfScore 0.02
G_M27692_IG13:
mov rdi, gword ptr [rbp-0x30]
mov rax, 0xD1FFAB1E ; code for System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:get_Items():System.Collections.Generic.List`1[System.Nullable`1[int]]:this
call [rax]System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:get_Items():System.Collections.Generic.List`1[System.Nullable`1[int]]:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.Nullable`1[int]]:get_Count():int:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.List`1[System.Nullable`1[int]]:get_Count():int:this
cmp eax, dword ptr [rbp-0x44]
jg G_M27692_IG07
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
xor eax, eax
;; size=59 bbWeight=1 PerfScore 15.25
G_M27692_IG14:
add rsp, 176
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 1.75
-; Total bytes of code 676, prolog size 49, PerfScore 156.85, instruction count 141, allocated bytes for code 676 (MethodHash=95f993d3) for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Instrumented Tier0)
+; Total bytes of code 617, prolog size 49, PerfScore 144.10, instruction count 131, allocated bytes for code 617 (MethodHash=95f993d3) for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Instrumented Tier0)
-59 (-8.75 % of base) - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this
; Assembly listing for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Instrumented Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Instrumented Tier0 code
; rbp based frame
; fully interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x30] do-not-enreg[] this class-hnd <System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x38] do-not-enreg[]
; V02 arg2 [V02 ] ( 1, 1 ) byref -> [rbp-0x40] do-not-enreg[]
; V03 loc0 [V03 ] ( 1, 1 ) struct (24) [rbp-0x58] do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]>
; V04 loc1 [V04 ] ( 1, 1 ) struct ( 8) [rbp-0x60] do-not-enreg[SR] multireg-ret <System.Nullable`1[int]>
; V05 loc2 [V05 ] ( 1, 1 ) double -> [rbp-0x68] do-not-enreg[]
; V06 loc3 [V06 ] ( 1, 1 ) ubyte -> [rbp-0x6C] do-not-enreg[]
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [rbp-0x78] do-not-enreg[] must-init "Reusable Box Helper"
; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [rbp-0x80] do-not-enreg[] must-init "handle histogram profile tmp"
; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [rbp-0x88] do-not-enreg[] must-init "handle histogram profile tmp"
; V11 tmp4 [V11 ] ( 1, 1 ) int -> [rbp-0x90] do-not-enreg[X] addr-exposed "patchpoint counter"
; V12 tmp5 [V12 ] ( 1, 1 ) ref -> [rbp-0x98] do-not-enreg[] must-init "argument with side effect"
; V13 tmp6 [V13 ] ( 1, 1 ) ref -> [rbp-0xA0] do-not-enreg[] must-init "argument with side effect"
; V14 tmp7 [V14 ] ( 1, 1 ) ref -> [rbp-0xA8] do-not-enreg[] must-init "argument with side effect"
; V15 PSPSym [V15 ] ( 1, 1 ) long -> [rbp-0xB0] do-not-enreg[V] "PSPSym"
;
; Lcl frame size = 176
G_M17358_IG01:
push rbp
sub rsp, 176
lea rbp, [rsp+0xB0]
xor eax, eax
mov qword ptr [rbp-0xA8], rax
vxorps xmm8, xmm8, xmm8
vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
vmovdqa xmmword ptr [rbp-0x60], xmm8
vmovdqa xmmword ptr [rbp-0x50], xmm8
mov qword ptr [rbp-0xB0], rsp
mov gword ptr [rbp-0x30], rdi
vmovsd qword ptr [rbp-0x38], xmm0
mov bword ptr [rbp-0x40], rsi
;; size=70 bbWeight=1 PerfScore 13.33
G_M17358_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x78], rax
- mov rax, gword ptr [rbp-0x78]
- vmovsd xmm0, qword ptr [rbp-0x38]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x78]
- mov rsi, 0xD1FFAB1E ; 'key'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov dword ptr [rbp-0x90], 0x3E8
mov rax, gword ptr [rbp-0x30]
cmp gword ptr [rax+0x18], 0
je SHORT G_M17358_IG04
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
mov rax, gword ptr [rbp-0x30]
mov rdi, gword ptr [rax+0x18]
vmovsd xmm0, qword ptr [rbp-0x38]
mov rsi, bword ptr [rbp-0x40]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.Dictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this
nop
- ;; size=127 bbWeight=1 PerfScore 33.50
+ ;; size=68 bbWeight=1 PerfScore 20.75
G_M17358_IG03:
add rsp, 176
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 1.75
G_M17358_IG04:
mov rdi, gword ptr [rbp-0x30]
mov rax, 0xD1FFAB1E ; code for System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:get_Items():System.Collections.Generic.List`1[System.Nullable`1[int]]:this
call [rax]System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:get_Items():System.Collections.Generic.List`1[System.Nullable`1[int]]:this
mov gword ptr [rbp-0x98], rax
mov rdi, gword ptr [rbp-0x98]
lea rsi, [rbp-0x58]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.Nullable`1[int]]:GetEnumerator():System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.List`1[System.Nullable`1[int]]:GetEnumerator():System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:this
nop
;; size=49 bbWeight=1 PerfScore 13.25
G_M17358_IG05:
jmp G_M17358_IG08
;; size=5 bbWeight=1 PerfScore 2.00
G_M17358_IG06:
lea rdi, [rbp-0x58]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:get_Current():System.Nullable`1[int]:this
call [rax]System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:get_Current():System.Nullable`1[int]:this
mov qword ptr [rbp-0x60], rax
mov rax, gword ptr [rbp-0x30]
mov gword ptr [rbp-0x80], rax
mov rdi, gword ptr [rbp-0x80]
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_CLASSPROFILE32
mov rax, gword ptr [rbp-0x80]
mov gword ptr [rbp-0xA0], rax
mov rdi, gword ptr [rbp-0xA0]
mov rsi, qword ptr [rbp-0x60]
mov rax, gword ptr [rbp-0xA0]
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x60]
call [rax+0x10]System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:GetKeyForItem(System.Nullable`1[int]):double:this
vmovsd qword ptr [rbp-0x68], xmm0
mov rax, gword ptr [rbp-0x30]
mov rax, gword ptr [rax+0x10]
mov gword ptr [rbp-0x88], rax
mov rdi, gword ptr [rbp-0x88]
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_CLASSPROFILE32
mov rax, gword ptr [rbp-0x88]
mov gword ptr [rbp-0xA8], rax
mov rdi, gword ptr [rbp-0xA8]
vmovsd xmm1, qword ptr [rbp-0x68]
vmovsd xmm0, qword ptr [rbp-0x38]
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this
call [r11]System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this
test eax, eax
je SHORT G_M17358_IG07
mov rax, bword ptr [rbp-0x40]
mov rcx, qword ptr [rbp-0x60]
mov qword ptr [rax], rcx
mov dword ptr [rbp-0x6C], 1
jmp SHORT G_M17358_IG13
;; size=196 bbWeight=1 PerfScore 47.75
G_M17358_IG07:
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
;; size=15 bbWeight=0.50 PerfScore 0.62
G_M17358_IG08:
mov eax, dword ptr [rbp-0x90]
dec eax
mov dword ptr [rbp-0x90], eax
cmp dword ptr [rbp-0x90], 0
jg SHORT G_M17358_IG10
;; size=23 bbWeight=1 PerfScore 5.25
G_M17358_IG09:
lea rdi, [rbp-0x90]
mov esi, 102
call CORINFO_HELP_PATCHPOINT
;; size=17 bbWeight=0.01 PerfScore 0.02
G_M17358_IG10:
lea rdi, [rbp-0x58]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:MoveNext():ubyte:this
call [rax]System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:MoveNext():ubyte:this
test eax, eax
jne G_M17358_IG06
;; size=24 bbWeight=1 PerfScore 5.00
G_M17358_IG11:
mov rdi, rsp
;; size=3 bbWeight=1 PerfScore 0.25
G_M17358_IG12:
call G_M17358_IG19
jmp SHORT G_M17358_IG15
;; size=7 bbWeight=1 PerfScore 3.00
G_M17358_IG13:
mov rdi, rsp
;; size=3 bbWeight=1 PerfScore 0.25
G_M17358_IG14:
call G_M17358_IG19
jmp SHORT G_M17358_IG17
;; size=7 bbWeight=1 PerfScore 3.00
G_M17358_IG15:
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
mov rax, bword ptr [rbp-0x40]
xor ecx, ecx
mov qword ptr [rax], rcx
xor eax, eax
;; size=26 bbWeight=1 PerfScore 3.75
G_M17358_IG16:
add rsp, 176
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 1.75
G_M17358_IG17:
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
mov eax, dword ptr [rbp-0x6C]
;; size=18 bbWeight=1 PerfScore 2.25
G_M17358_IG18:
add rsp, 176
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 1.75
G_M17358_IG19:
push rbp
sub rsp, 16
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0xB0]
;; size=19 bbWeight=1 PerfScore 4.75
G_M17358_IG20:
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
lea rdi, [rbp-0x58]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:Dispose():this
call [rax]System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:Dispose():this
nop
;; size=32 bbWeight=1 PerfScore 5.25
G_M17358_IG21:
add rsp, 16
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 674, prolog size 70, PerfScore 150.23, instruction count 139, allocated bytes for code 674 (MethodHash=e9a6bc31) for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Instrumented Tier0)
+; Total bytes of code 615, prolog size 70, PerfScore 137.48, instruction count 129, allocated bytes for code 615 (MethodHash=e9a6bc31) for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Instrumented Tier0)
-59 (-55.14 % of base) - System.Numerics.TotalOrderIeee754Comparer`1[double]:GetHashCode(double):int:this
; Assembly listing for method System.Numerics.TotalOrderIeee754Comparer`1[double]:GetHashCode(double):int:this (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x08] do-not-enreg[] this
; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[X] addr-exposed ld-addr-op
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03 ] ( 1, 1 ) ref -> [rbp-0x18] do-not-enreg[] must-init "Reusable Box Helper"
;
; Lcl frame size = 32
G_M16692_IG01:
push rbp
sub rsp, 32
lea rbp, [rsp+0x20]
xor eax, eax
mov qword ptr [rbp-0x18], rax
mov bword ptr [rbp-0x08], rdi
vmovsd qword ptr [rbp-0x10], xmm0
;; size=25 bbWeight=1 PerfScore 5.00
G_M16692_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x18], rax
- mov rax, gword ptr [rbp-0x18]
- vmovsd xmm0, qword ptr [rbp-0x10]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x18]
- mov rsi, 0xD1FFAB1E ; 'obj'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
lea rdi, [rbp-0x10]
mov rax, 0xD1FFAB1E ; code for System.Double:GetHashCode():int:this
call [rax]System.Double:GetHashCode():int:this
nop
- ;; size=76 bbWeight=1 PerfScore 16.75
+ ;; size=17 bbWeight=1 PerfScore 4.00
G_M16692_IG03:
add rsp, 32
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 107, prolog size 16, PerfScore 23.50, instruction count 24, allocated bytes for code 107 (MethodHash=01a1becb) for method System.Numerics.TotalOrderIeee754Comparer`1[double]:GetHashCode(double):int:this (Tier0)
+; Total bytes of code 48, prolog size 16, PerfScore 10.75, instruction count 14, allocated bytes for code 48 (MethodHash=01a1becb) for method System.Numerics.TotalOrderIeee754Comparer`1[double]:GetHashCode(double):int:this (Tier0)
-59 (-30.10 % of base) - System.Runtime.InteropServices.Marshal:SizeOf[double](double):int
; Assembly listing for method System.Runtime.InteropServices.Marshal:SizeOf[double](double):int (Tier0)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Tier0 code
; rbp based frame
; partially interruptible
; Final local variable assignments
;
; V00 arg0 [V00 ] ( 1, 1 ) double -> [rbp-0x08] do-not-enreg[] ld-addr-op
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V02 tmp1 [V02 ] ( 1, 1 ) ref -> [rbp-0x10] do-not-enreg[] must-init "Reusable Box Helper"
; V03 tmp2 [V03 ] ( 1, 1 ) ref -> [rbp-0x18] do-not-enreg[] must-init "argument with side effect"
; V04 tmp3 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "argument with side effect"
;
; Lcl frame size = 32
G_M39432_IG01:
push rbp
sub rsp, 32
lea rbp, [rsp+0x20]
vxorps xmm8, xmm8, xmm8
vmovdqa xmmword ptr [rbp-0x20], xmm8
xor eax, eax
mov qword ptr [rbp-0x10], rax
vmovsd qword ptr [rbp-0x08], xmm0
;; size=31 bbWeight=1 PerfScore 6.33
G_M39432_IG02:
- mov rdi, 0xD1FFAB1E ; System.Double
- call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x10], rax
- mov rax, gword ptr [rbp-0x10]
- vmovsd xmm0, qword ptr [rbp-0x08]
- vmovsd qword ptr [rax+0x08], xmm0
- mov rdi, gword ptr [rbp-0x10]
- mov rsi, 0xD1FFAB1E ; 'structure'
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
- call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, 0xD1FFAB1E ; System.Double
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0x10], rax
mov rax, gword ptr [rbp-0x10]
vmovsd xmm0, qword ptr [rbp-0x08]
vmovsd qword ptr [rax+0x08], xmm0
mov rdi, gword ptr [rbp-0x10]
cmp dword ptr [rdi], edi
call System.Object:GetType():System.Type:this
mov gword ptr [rbp-0x18], rax
mov rsi, gword ptr [rbp-0x18]
mov rdi, 0xD1FFAB1E ; System.RuntimeType
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
call [rax]CORINFO_HELP_CHKCASTCLASS
mov gword ptr [rbp-0x20], rax
mov rdi, gword ptr [rbp-0x20]
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.Marshal:SizeOfHelper(System.RuntimeType,ubyte):int
call [rax]System.Runtime.InteropServices.Marshal:SizeOfHelper(System.RuntimeType,ubyte):int
nop
- ;; size=159 bbWeight=1 PerfScore 37.25
+ ;; size=100 bbWeight=1 PerfScore 24.50
G_M39432_IG03:
add rsp, 32
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 196, prolog size 26, PerfScore 45.33, instruction count 41, allocated bytes for code 196 (MethodHash=5ca865f7) for method System.Runtime.InteropServices.Marshal:SizeOf[double](double):int (Tier0)
+; Total bytes of code 137, prolog size 26, PerfScore 32.58, instruction count 31, allocated bytes for code 137 (MethodHash=5ca865f7) for method System.Runtime.InteropServices.Marshal:SizeOf[double](double):int (Tier0)