.NET 5.0.6 (5.0.621.22011), X64 RyuJIT
; DictionaryBench.PlainStruct_DictionaryGet()
sub rsp,38
vzeroupper
mov rdx,[rcx+78]
vmovdqu xmm0,xmmword ptr [rcx+8]
vmovdqu xmmword ptr [rsp+28],xmm0
mov rcx,rdx
lea rdx,[rsp+28]
cmp [rcx],ecx
call qword ptr [7FFF1E399948]
nop
add rsp,38
ret
; Total bytes of code 44
; System.Collections.Generic.Dictionary`2[[PlainStruct, RecordStructBenchmark],[System.Int64, System.Private.CoreLib]].get_Item(PlainStruct)
push rsi
sub rsp,30
vzeroupper
mov rsi,rdx
vmovdqu xmm0,xmmword ptr [rsi]
vmovdqu xmmword ptr [rsp+20],xmm0
lea rdx,[rsp+20]
call System.Collections.Generic.Dictionary`2[[PlainStruct, RecordStructBenchmark],[System.Int64, System.Private.CoreLib]].FindValue(PlainStruct)
test rax,rax
je short M01_L00
mov rax,[rax]
add rsp,30
pop rsi
ret
M01_L00:
vmovdqu xmm0,xmmword ptr [rsi]
vmovdqu xmmword ptr [rsp+20],xmm0
lea rcx,[rsp+20]
call System.ThrowHelper.ThrowKeyNotFoundException[[PlainStruct, RecordStructBenchmark]](PlainStruct)
int 3
; Total bytes of code 66
.NET 5.0.6 (5.0.621.22011), X64 RyuJIT
; DictionaryBench.EquatableStruct_DictionaryGet()
sub rsp,38
vzeroupper
mov rdx,[rcx+80]
vmovdqu xmm0,xmmword ptr [rcx+18]
vmovdqu xmmword ptr [rsp+28],xmm0
mov rcx,rdx
lea rdx,[rsp+28]
cmp [rcx],ecx
call qword ptr [7FFF1E39AD30]
nop
add rsp,38
ret
; Total bytes of code 47
; System.Collections.Generic.Dictionary`2[[EquatableStruct, RecordStructBenchmark],[System.Int64, System.Private.CoreLib]].get_Item(EquatableStruct)
push rsi
sub rsp,30
vzeroupper
mov rsi,rdx
vmovdqu xmm0,xmmword ptr [rsi]
vmovdqu xmmword ptr [rsp+20],xmm0
lea rdx,[rsp+20]
call System.Collections.Generic.Dictionary`2[[EquatableStruct, RecordStructBenchmark],[System.Int64, System.Private.CoreLib]].FindValue(EquatableStruct)
test rax,rax
je short M01_L00
mov rax,[rax]
add rsp,30
pop rsi
ret
M01_L00:
vmovdqu xmm0,xmmword ptr [rsi]
vmovdqu xmmword ptr [rsp+20],xmm0
lea rcx,[rsp+20]
call System.ThrowHelper.ThrowKeyNotFoundException[[EquatableStruct, RecordStructBenchmark]](EquatableStruct)
int 3
; Total bytes of code 66
.NET 5.0.6 (5.0.621.22011), X64 RyuJIT
; DictionaryBench.HashStruct_DictionaryGet()
sub rsp,38
vzeroupper
mov rdx,[rcx+88]
vmovdqu xmm0,xmmword ptr [rcx+28]
vmovdqu xmmword ptr [rsp+28],xmm0
mov rcx,rdx
lea rdx,[rsp+28]
cmp [rcx],ecx
call qword ptr [7FFF1E37C118]
nop
add rsp,38
ret
; Total bytes of code 47
; System.Collections.Generic.Dictionary`2[[HashStruct, RecordStructBenchmark],[System.Int64, System.Private.CoreLib]].get_Item(HashStruct)
push rsi
sub rsp,30
vzeroupper
mov rsi,rdx
vmovdqu xmm0,xmmword ptr [rsi]
vmovdqu xmmword ptr [rsp+20],xmm0
lea rdx,[rsp+20]
call System.Collections.Generic.Dictionary`2[[HashStruct, RecordStructBenchmark],[System.Int64, System.Private.CoreLib]].FindValue(HashStruct)
test rax,rax
je short M01_L00
mov rax,[rax]
add rsp,30
pop rsi
ret
M01_L00:
vmovdqu xmm0,xmmword ptr [rsi]
vmovdqu xmmword ptr [rsp+20],xmm0
lea rcx,[rsp+20]
call System.ThrowHelper.ThrowKeyNotFoundException[[HashStruct, RecordStructBenchmark]](HashStruct)
int 3
; Total bytes of code 66
.NET 5.0.6 (5.0.621.22011), X64 RyuJIT
; DictionaryBench.HashEquatableStruct_DictionaryGet()
sub rsp,38
vzeroupper
mov rdx,[rcx+90]
vmovdqu xmm0,xmmword ptr [rcx+38]
vmovdqu xmmword ptr [rsp+28],xmm0
mov rcx,rdx
lea rdx,[rsp+28]
cmp [rcx],ecx
call qword ptr [7FFF1E37D500]
nop
add rsp,38
ret
; Total bytes of code 47
; System.Collections.Generic.Dictionary`2[[HashEquatableStruct, RecordStructBenchmark],[System.Int64, System.Private.CoreLib]].get_Item(HashEquatableStruct)
push rsi
sub rsp,30
vzeroupper
mov rsi,rdx
vmovdqu xmm0,xmmword ptr [rsi]
vmovdqu xmmword ptr [rsp+20],xmm0
lea rdx,[rsp+20]
call System.Collections.Generic.Dictionary`2[[HashEquatableStruct, RecordStructBenchmark],[System.Int64, System.Private.CoreLib]].FindValue(HashEquatableStruct)
test rax,rax
je short M01_L00
mov rax,[rax]
add rsp,30
pop rsi
ret
M01_L00:
vmovdqu xmm0,xmmword ptr [rsi]
vmovdqu xmmword ptr [rsp+20],xmm0
lea rcx,[rsp+20]
call System.ThrowHelper.ThrowKeyNotFoundException[[HashEquatableStruct, RecordStructBenchmark]](HashEquatableStruct)
int 3
; Total bytes of code 66
.NET 5.0.6 (5.0.621.22011), X64 RyuJIT
; DictionaryBench.ValueTuple_DictionaryGet()
sub rsp,38
vzeroupper
mov rdx,[rcx+98]
vmovdqu xmm0,xmmword ptr [rcx+48]
vmovdqu xmmword ptr [rsp+28],xmm0
mov rcx,rdx
lea rdx,[rsp+28]
cmp [rcx],ecx
call qword ptr [7FFF1E38EAD8]
nop
add rsp,38
ret
; Total bytes of code 47
; System.Collections.Generic.Dictionary`2[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib],[System.Int32, System.Private.CoreLib]], System.Private.CoreLib],[System.Int64, System.Private.CoreLib]].get_Item(System.ValueTuple`2<System.__Canon,Int32>)
push rdi
push rsi
sub rsp,38
vzeroupper
mov [rsp+30],rcx
mov rdi,rcx
mov rsi,rdx
mov rcx,rdi
vmovdqu xmm0,xmmword ptr [rsi]
vmovdqu xmmword ptr [rsp+20],xmm0
lea rdx,[rsp+20]
call System.Collections.Generic.Dictionary`2[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib],[System.Int32, System.Private.CoreLib]], System.Private.CoreLib],[System.Int64, System.Private.CoreLib]].FindValue(System.ValueTuple`2<System.__Canon,Int32>)
test rax,rax
je short M01_L00
mov rax,[rax]
add rsp,38
pop rsi
pop rdi
ret
M01_L00:
mov rcx,[rdi]
mov rdx,[rcx+30]
mov rdx,[rdx]
cmp qword ptr [rdx+50],0
je short M01_L01
mov rcx,[rcx+30]
mov rcx,[rcx]
mov rcx,[rcx+50]
jmp short M01_L02
M01_L01:
mov rdx,7FFF1E42B6E0
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
mov rcx,rax
M01_L02:
vmovdqu xmm0,xmmword ptr [rsi]
vmovdqu xmmword ptr [rsp+20],xmm0
lea rdx,[rsp+20]
call System.ThrowHelper.ThrowKeyNotFoundException[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib],[System.Int32, System.Private.CoreLib]], System.Private.CoreLib]](System.ValueTuple`2<System.__Canon,Int32>)
int 3
; Total bytes of code 127
.NET 5.0.6 (5.0.621.22011), X64 RyuJIT
; DictionaryBench.RecordStruct_DictionaryGet()
sub rsp,38
vzeroupper
mov rdx,[rcx+0A0]
vmovdqu xmm0,xmmword ptr [rcx+58]
vmovdqu xmmword ptr [rsp+28],xmm0
mov rcx,rdx
lea rdx,[rsp+28]
cmp [rcx],ecx
call qword ptr [7FFF1E3806E0]
nop
add rsp,38
ret
; Total bytes of code 47
; System.Collections.Generic.Dictionary`2[[RecordStruct, RecordStructBenchmark],[System.Int64, System.Private.CoreLib]].get_Item(RecordStruct)
push rsi
sub rsp,30
vzeroupper
mov rsi,rdx
vmovdqu xmm0,xmmword ptr [rsi]
vmovdqu xmmword ptr [rsp+20],xmm0
lea rdx,[rsp+20]
call System.Collections.Generic.Dictionary`2[[RecordStruct, RecordStructBenchmark],[System.Int64, System.Private.CoreLib]].FindValue(RecordStruct)
test rax,rax
je short M01_L00
mov rax,[rax]
add rsp,30
pop rsi
ret
M01_L00:
vmovdqu xmm0,xmmword ptr [rsi]
vmovdqu xmmword ptr [rsp+20],xmm0
lea rcx,[rsp+20]
call System.ThrowHelper.ThrowKeyNotFoundException[[RecordStruct, RecordStructBenchmark]](RecordStruct)
int 3
; Total bytes of code 66
.NET 5.0.6 (5.0.621.22011), X64 RyuJIT
; DictionaryBench.HashEquatableRecordStruct_DictionaryGet()
sub rsp,38
vzeroupper
mov rdx,[rcx+0A8]
vmovdqu xmm0,xmmword ptr [rcx+68]
vmovdqu xmmword ptr [rsp+28],xmm0
mov rcx,rdx
lea rdx,[rsp+28]
cmp [rcx],ecx
call qword ptr [7FFF1E3A1AC8]
nop
add rsp,38
ret
; Total bytes of code 47
; System.Collections.Generic.Dictionary`2[[HashEquatableRecordStruct, RecordStructBenchmark],[System.Int64, System.Private.CoreLib]].get_Item(HashEquatableRecordStruct)
push rsi
sub rsp,30
vzeroupper
mov rsi,rdx
vmovdqu xmm0,xmmword ptr [rsi]
vmovdqu xmmword ptr [rsp+20],xmm0
lea rdx,[rsp+20]
call System.Collections.Generic.Dictionary`2[[HashEquatableRecordStruct, RecordStructBenchmark],[System.Int64, System.Private.CoreLib]].FindValue(HashEquatableRecordStruct)
test rax,rax
je short M01_L00
mov rax,[rax]
add rsp,30
pop rsi
ret
M01_L00:
vmovdqu xmm0,xmmword ptr [rsi]
vmovdqu xmmword ptr [rsp+20],xmm0
lea rcx,[rsp+20]
call System.ThrowHelper.ThrowKeyNotFoundException[[HashEquatableRecordStruct, RecordStructBenchmark]](HashEquatableRecordStruct)
int 3
; Total bytes of code 66