-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Perf] Windows/x64: 134 Improvements on 2/8/2023 12:20:29 PM #12983
Comments
Run Information
Improvements in System.Text.Json.Serialization.Tests.ReadJson<MyEventsListerViewModel>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.ReadJson<MyEventsListerViewModel>*' PayloadsHistogramSystem.Text.Json.Serialization.Tests.ReadJson<MyEventsListerViewModel>.DeserializeFromString(Mode: Reflection)
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository |
Run Information
Improvements in System.Text.Json.Serialization.Tests.ReadJson<Nullable<DateTimeOffset>>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.ReadJson<Nullable<DateTimeOffset>>*' PayloadsHistogramSystem.Text.Json.Serialization.Tests.ReadJson<Nullable<DateTimeOffset>>.DeserializeFromUtf8Bytes(Mode: Reflection)
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository |
Run Information
Improvements in System.Text.Json.Serialization.Tests.ReadJson<Hashtable>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.ReadJson<Hashtable>*' PayloadsHistogramSystem.Text.Json.Serialization.Tests.ReadJson<Hashtable>.DeserializeFromStream(Mode: Reflection)
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Improvements in System.Text.Json.Serialization.Tests.ReadJson<IndexViewModel>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.ReadJson<IndexViewModel>*' PayloadsHistogramSystem.Text.Json.Serialization.Tests.ReadJson<IndexViewModel>.DeserializeFromUtf8Bytes(Mode: Reflection)
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Improvements in System.Text.Json.Serialization.Tests.ReadJson<ImmutableDictionary<String, String>>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.ReadJson<ImmutableDictionary<String, String>>*' PayloadsHistogramSystem.Text.Json.Serialization.Tests.ReadJson<ImmutableDictionary<String, String>>.DeserializeFromReader(Mode: Reflection)
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository |
Run Information
Improvements in System.Text.Json.Document.Tests.Perf_DocumentParse
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Document.Tests.Perf_DocumentParse*' PayloadsHistogramSystem.Text.Json.Document.Tests.Perf_DocumentParse.Parse(IsDataIndented: False, TestRandomAccess: False, TestCase: Json400KB)
Description of detection logic
; System.Text.Json.JsonDocumentOptions.GetReaderOptions()
sub rsp,28
xor eax,eax
mov [rsp+20],rax
movzx eax,byte ptr [rcx+5]
mov [rsp+25],al
movzx eax,byte ptr [rcx+4]
cmp eax,2
jg short M01_L00
mov [rsp+24],al
mov eax,[rcx]
test eax,eax
jl short M01_L01
mov [rsp+20],eax
mov rax,[rsp+20]
add rsp,28
ret
M01_L00:
mov ecx,2C7A
mov rdx,7FFBDA9D91B8
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FFBDA9FD720]
int 3
M01_L01:
mov ecx,2C7A
mov rdx,7FFBDA9D91B8
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FFBDA9FD6F0]
int 3
; Total bytes of code 112 ; System.Text.Json.JsonDocument.Parse(System.ReadOnlyMemory`1<Byte>, System.Text.Json.JsonReaderOptions, Byte[], System.Text.Json.PooledByteBufferWriter)
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,88
vzeroupper
lea rbp,[rsp+0C0]
xor eax,eax
mov [rbp-88],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp-80],xmm4
vmovdqa xmmword ptr [rbp-70],xmm4
vmovdqa xmmword ptr [rbp-60],xmm4
vmovdqa xmmword ptr [rbp-50],xmm4
mov [rbp-40],rax
mov [rbp-0A0],rsp
mov [rbp+18],rdx
mov rbx,r8
mov r14,r9
mov r15,[rcx]
mov r12d,[rcx+8]
mov r13d,[rcx+0C]
xor ecx,ecx
xor esi,esi
mov rdx,r15
test rdx,rdx
je short M02_L01
mov rcx,[r15]
test dword ptr [rcx],80000000
je near ptr M02_L04
lea rcx,[r15+10]
mov esi,[r15+8]
M02_L00:
mov edx,r12d
and edx,7FFFFFFF
mov eax,r13d
add rax,rdx
mov r8d,esi
cmp rax,r8
ja near ptr M02_L05
add rcx,rdx
mov esi,r13d
M02_L01:
mov rdi,rcx
lea edx,[r13+0C]
cmp edx,100000
jle short M02_L02
cmp edx,400000
jg short M02_L02
mov edx,100000
M02_L02:
mov rcx,1BCFF407D38
mov rax,[rcx]
mov [rbp-98],rax
mov rcx,rax
call qword ptr [7FFBDA9DE2F0]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-48],rax
xor ecx,ecx
mov [rbp-40],ecx
mov byte ptr [rbp-3C],0
mov byte ptr [rbp-3B],0
mov rcx,[rbp-98]
mov edx,200
call qword ptr [7FFBDA9DE2F0]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-58],rax
mov rcx,[rbp-58]
mov ecx,[rcx+8]
mov [rbp-50],ecx
mov [rbp-88],rdi
mov [rbp-80],esi
lea rcx,[rbp-88]
lea r9,[rbp-58]
lea r8,[rbp-48]
mov rdx,[rbp+18]
call qword ptr [7FFBDA9FB7C8]; System.Text.Json.JsonDocument.Parse(System.ReadOnlySpan`1<Byte>, System.Text.Json.JsonReaderOptions, MetadataDb ByRef, StackRowStack ByRef)
nop
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L03
mov rcx,[rbp-98]
xor r8d,r8d
call qword ptr [7FFBDA9DE2F8]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L03:
mov rcx,offset MT_System.Text.Json.JsonDocument
call CORINFO_HELP_NEWSFAST
mov rsi,rax
mov [rbp-90],rsi
vmovdqu xmm0,xmmword ptr [rbp-48]
vmovdqu xmmword ptr [rbp-78],xmm0
lea rdi,[rsi+20]
mov rcx,rdi
mov rdx,r15
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov [rdi+8],r12d
mov [rdi+0C],r13d
lea rdi,[rsi+30]
lea rsi,[rbp-78]
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov r15,[rbp-90]
lea rcx,[r15+8]
mov rdx,rbx
call CORINFO_HELP_ASSIGN_REF
lea rcx,[r15+10]
mov rdx,r14
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [r15+18],1
mov rax,r15
add rsp,88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
M02_L04:
lea rdx,[rbp-68]
mov rcx,r15
mov rax,[r15]
mov rax,[rax+40]
call qword ptr [rax+28]
mov rcx,[rbp-68]
mov esi,[rbp-60]
jmp near ptr M02_L00
M02_L05:
call qword ptr [7FFBDA6AD4E0]
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
lea rcx,[rbp-48]
call qword ptr [7FFBDA9FB2E8]; System.Text.Json.JsonDocument+MetadataDb.Dispose()
call CORINFO_HELP_RETHROW
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L06
mov rcx,1BCFF407D38
mov rcx,[rcx]
mov rsi,rcx
mov rcx,rsi
xor r8d,r8d
call qword ptr [7FFBDA9DE2F8]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L06:
nop
add rsp,28
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
; Total bytes of code 657 ; System.Text.Json.JsonDocument.Dispose()
push rdi
push rsi
push rbx
sub rsp,30
mov rsi,rcx
mov edi,[rsi+2C]
test edi,edi
je short M03_L00
cmp byte ptr [rsi+18],0
jne short M03_L01
M03_L00:
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L01:
lea rbx,[rsi+30]
xor ecx,ecx
mov rdx,rcx
xchg rdx,[rbx]
test rdx,rdx
je short M03_L02
mov rcx,1BCFF407D38
mov rcx,[rcx]
xor r8d,r8d
call qword ptr [7FFBDA9DE2F8]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
xor edx,edx
mov [rbx+8],edx
M03_L02:
xor edx,edx
mov [rsi+20],rdx
mov [rsi+28],rdx
cmp qword ptr [rsi+8],0
je short M03_L05
add rsi,8
xor edx,edx
mov rbx,rdx
xchg rbx,[rsi]
test rbx,rbx
je short M03_L06
cmp [rbx+8],edi
jb short M03_L07
lea rcx,[rbx+10]
mov edx,edi
mov [rsp+28],rdx
test rdx,rdx
je short M03_L04
cmp rdx,300
ja short M03_L03
xor edx,edx
mov r8d,[rsp+28]
call CORINFO_HELP_MEMSET
jmp short M03_L04
M03_L03:
mov rdx,[rsp+28]
call qword ptr [7FFBDA4610D8]
M03_L04:
mov rcx,1BCFF407D38
mov rcx,[rcx]
mov rdx,rbx
xor r8d,r8d
call qword ptr [7FFBDA9DE2F8]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L05:
cmp qword ptr [rsi+10],0
je short M03_L06
lea rcx,[rsi+10]
xor eax,eax
xchg rax,[rcx]
test rax,rax
je short M03_L06
mov rcx,rax
call qword ptr [7FFBDA9DDD78]; System.Text.Json.PooledByteBufferWriter.Dispose()
M03_L06:
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L07:
call qword ptr [7FFBDA6AD4E0]
int 3
; Total bytes of code 244 Compare Jit Disasm; System.Text.Json.Document.Tests.Perf_DocumentParse.Parse()
push rbp
push r14
push rdi
push rsi
push rbx
sub rsp,70
lea rbp,[rsp+90]
xor eax,eax
mov [rbp-58],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp-50],xmm4
vmovdqa xmmword ptr [rbp-40],xmm4
mov [rbp-70],rsp
mov rsi,rcx
mov rdi,[rsi+8]
test rdi,rdi
je near ptr M00_L06
mov rbx,rdi
mov r14d,[rbx+8]
M00_L00:
xor ecx,ecx
mov [rbp-28],rcx
lea rcx,[rbp-28]
call qword ptr [7FF7BEF4BAF8]; System.Text.Json.JsonDocumentOptions.GetReaderOptions()
mov [rbp-30],rax
mov [rbp-40],rbx
xor ecx,ecx
mov [rbp-38],ecx
mov [rbp-34],r14d
mov rcx,[rbp-30]
mov [rbp-48],rcx
lea rcx,[rbp-40]
mov rdx,[rbp-48]
xor r8d,r8d
xor r9d,r9d
call qword ptr [7FF7BEF4B9A8]; System.Text.Json.JsonDocument.Parse(System.ReadOnlyMemory`1<Byte>, System.Text.Json.JsonReaderOptions, Byte[], System.Text.Json.PooledByteBufferWriter)
mov [rbp-60],rax
cmp byte ptr [rsi+15],0
je near ptr M00_L04
mov esi,[rsi+10]
test esi,esi
jne short M00_L01
cmp [rax],al
mov rcx,rax
mov [rbp-58],rcx
xor ecx,ecx
mov [rbp-50],ecx
lea rcx,[rbp-58]
call qword ptr [7FF7BEC3BAC8]
mov rax,[rbp-60]
jmp short M00_L04
M00_L01:
cmp esi,2
jne short M00_L02
cmp [rax],al
mov rcx,rax
mov [rbp-58],rcx
xor ecx,ecx
mov [rbp-50],ecx
lea rcx,[rbp-58]
call qword ptr [7FF7BEC3BAE0]
mov rax,[rbp-60]
jmp short M00_L04
M00_L02:
cmp esi,1
jne short M00_L03
cmp [rax],al
mov rcx,rax
mov [rbp-58],rcx
xor ecx,ecx
mov [rbp-50],ecx
lea rcx,[rbp-58]
call qword ptr [7FF7BEC3BAF8]
mov rax,[rbp-60]
jmp short M00_L04
M00_L03:
cmp esi,3
jne short M00_L04
cmp [rax],al
mov rcx,rax
mov [rbp-58],rcx
xor ecx,ecx
mov [rbp-50],ecx
lea rcx,[rbp-58]
call qword ptr [7FF7BEC3BB10]
mov rax,[rbp-60]
M00_L04:
test rax,rax
je short M00_L05
mov rcx,rax
call qword ptr [7FF7BEF2EDC0]; System.Text.Json.JsonDocument.Dispose()
M00_L05:
nop
add rsp,70
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
M00_L06:
xor ebx,ebx
xor r14d,r14d
jmp near ptr M00_L00
push rbp
push r14
push rdi
push rsi
push rbx
sub rsp,30
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+90]
cmp qword ptr [rbp-60],0
je short M00_L07
mov rcx,[rbp-60]
call qword ptr [7FF7BEF2EDC0]; System.Text.Json.JsonDocument.Dispose()
M00_L07:
nop
add rsp,30
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
; Total bytes of code 371 ; System.Text.Json.JsonDocumentOptions.GetReaderOptions()
sub rsp,28
xor eax,eax
mov [rsp+20],rax
movzx eax,byte ptr [rcx+5]
mov [rsp+25],al
movzx eax,byte ptr [rcx+4]
cmp eax,2
jg short M01_L00
mov [rsp+24],al
mov eax,[rcx]
test eax,eax
jl short M01_L01
mov [rsp+20],eax
mov rax,[rsp+20]
add rsp,28
ret
M01_L00:
mov ecx,2C4E
mov rdx,7FF7BEF2C268
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FF7BEF4D720]
int 3
M01_L01:
mov ecx,2C4E
mov rdx,7FF7BEF2C268
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FF7BEF4D6F0]
int 3
; Total bytes of code 112 ; System.Text.Json.JsonDocument.Parse(System.ReadOnlyMemory`1<Byte>, System.Text.Json.JsonReaderOptions, Byte[], System.Text.Json.PooledByteBufferWriter)
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,88
vzeroupper
lea rbp,[rsp+0C0]
xor eax,eax
mov [rbp-88],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp-80],xmm4
vmovdqa xmmword ptr [rbp-70],xmm4
vmovdqa xmmword ptr [rbp-60],xmm4
vmovdqa xmmword ptr [rbp-50],xmm4
mov [rbp-40],rax
mov [rbp-0A0],rsp
mov [rbp+18],rdx
mov rbx,r8
mov r14,r9
mov r15,[rcx]
mov r12d,[rcx+8]
mov r13d,[rcx+0C]
xor ecx,ecx
xor esi,esi
mov rdx,r15
test rdx,rdx
je short M02_L01
mov rcx,[r15]
test dword ptr [rcx],80000000
je near ptr M02_L03
lea rcx,[r15+10]
mov esi,[r15+8]
M02_L00:
mov edx,r12d
and edx,7FFFFFFF
mov eax,r13d
add rax,rdx
mov r8d,esi
cmp rax,r8
ja near ptr M02_L04
add rcx,rdx
mov esi,r13d
M02_L01:
mov rdi,rcx
lea edx,[r13+0C]
mov ecx,100000
cmp edx,400000
cmovg ecx,edx
cmp edx,100000
cmovg edx,ecx
mov rcx,264E2407D38
mov rax,[rcx]
mov [rbp-98],rax
mov rcx,rax
call qword ptr [7FF7BEF71240]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-48],rax
xor ecx,ecx
mov [rbp-40],ecx
mov byte ptr [rbp-3C],0
mov byte ptr [rbp-3B],0
mov rcx,[rbp-98]
mov edx,200
call qword ptr [7FF7BEF71240]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-58],rax
mov rcx,[rbp-58]
mov ecx,[rcx+8]
mov [rbp-50],ecx
mov [rbp-88],rdi
mov [rbp-80],esi
lea rcx,[rbp-88]
lea r9,[rbp-58]
lea r8,[rbp-48]
mov rdx,[rbp+18]
call qword ptr [7FF7BEF4B7C8]; System.Text.Json.JsonDocument.Parse(System.ReadOnlySpan`1<Byte>, System.Text.Json.JsonReaderOptions, MetadataDb ByRef, StackRowStack ByRef)
nop
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L02
mov rcx,[rbp-98]
xor r8d,r8d
call qword ptr [7FF7BEF71248]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L02:
mov rcx,offset MT_System.Text.Json.JsonDocument
call CORINFO_HELP_NEWSFAST
mov rsi,rax
mov [rbp-90],rsi
vmovdqu xmm0,xmmword ptr [rbp-48]
vmovdqu xmmword ptr [rbp-78],xmm0
lea rdi,[rsi+20]
mov rcx,rdi
mov rdx,r15
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov [rdi+8],r12d
mov [rdi+0C],r13d
lea rdi,[rsi+30]
lea rsi,[rbp-78]
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov r15,[rbp-90]
lea rcx,[r15+8]
mov rdx,rbx
call CORINFO_HELP_ASSIGN_REF
lea rcx,[r15+10]
mov rdx,r14
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [r15+18],1
mov rax,r15
add rsp,88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
M02_L03:
lea rdx,[rbp-68]
mov rcx,r15
mov rax,[r15]
mov rax,[rax+40]
call qword ptr [rax+28]
mov rcx,[rbp-68]
mov esi,[rbp-60]
jmp near ptr M02_L00
M02_L04:
call qword ptr [7FF7BEBFD4E0]
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
lea rcx,[rbp-48]
call qword ptr [7FF7BEF4B2E8]; System.Text.Json.JsonDocument+MetadataDb.Dispose()
call CORINFO_HELP_RETHROW
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L05
mov rcx,264E2407D38
mov rcx,[rcx]
mov rsi,rcx
mov rcx,rsi
xor r8d,r8d
call qword ptr [7FF7BEF71248]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L05:
nop
add rsp,28
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
; Total bytes of code 659 ; System.Text.Json.JsonDocument.Dispose()
push rdi
push rsi
push rbx
sub rsp,30
mov rsi,rcx
mov edi,[rsi+2C]
test edi,edi
je short M03_L00
cmp byte ptr [rsi+18],0
jne short M03_L01
M03_L00:
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L01:
lea rbx,[rsi+30]
xor ecx,ecx
mov rdx,rcx
xchg rdx,[rbx]
test rdx,rdx
je short M03_L02
mov rcx,264E2407D38
mov rcx,[rcx]
xor r8d,r8d
call qword ptr [7FF7BEF71248]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
xor edx,edx
mov [rbx+8],edx
M03_L02:
xor edx,edx
mov [rsi+20],rdx
mov [rsi+28],rdx
cmp qword ptr [rsi+8],0
je short M03_L05
add rsi,8
xor edx,edx
mov rbx,rdx
xchg rbx,[rsi]
test rbx,rbx
je short M03_L06
cmp [rbx+8],edi
jb short M03_L07
lea rcx,[rbx+10]
mov edx,edi
mov [rsp+28],rdx
test rdx,rdx
je short M03_L04
cmp rdx,300
ja short M03_L03
xor edx,edx
mov r8d,[rsp+28]
call CORINFO_HELP_MEMSET
jmp short M03_L04
M03_L03:
mov rdx,[rsp+28]
call qword ptr [7FF7BE9B10D8]
M03_L04:
mov rcx,264E2407D38
mov rcx,[rcx]
mov rdx,rbx
xor r8d,r8d
call qword ptr [7FF7BEF71248]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L05:
cmp qword ptr [rsi+10],0
je short M03_L06
lea rcx,[rsi+10]
xor eax,eax
xchg rax,[rcx]
test rax,rax
je short M03_L06
mov rcx,rax
call qword ptr [7FF7BEF2FD28]; System.Text.Json.PooledByteBufferWriter.Dispose()
M03_L06:
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L07:
call qword ptr [7FF7BEBFD4E0]
int 3
; Total bytes of code 244 System.Text.Json.Document.Tests.Perf_DocumentParse.Parse(IsDataIndented: True, TestRandomAccess: False, TestCase: Json400KB)
Description of detection logic
; System.Text.Json.JsonDocumentOptions.GetReaderOptions()
sub rsp,28
xor eax,eax
mov [rsp+20],rax
movzx eax,byte ptr [rcx+5]
mov [rsp+25],al
movzx eax,byte ptr [rcx+4]
cmp eax,2
jg short M01_L00
mov [rsp+24],al
mov eax,[rcx]
test eax,eax
jl short M01_L01
mov [rsp+20],eax
mov rax,[rsp+20]
add rsp,28
ret
M01_L00:
mov ecx,2C7A
mov rdx,7FFBDA908140
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FFBDA915060]
int 3
M01_L01:
mov ecx,2C7A
mov rdx,7FFBDA908140
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FFBDA915030]
int 3
; Total bytes of code 112 ; System.Text.Json.JsonDocument.Parse(System.ReadOnlyMemory`1<Byte>, System.Text.Json.JsonReaderOptions, Byte[], System.Text.Json.PooledByteBufferWriter)
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,88
vzeroupper
lea rbp,[rsp+0C0]
xor eax,eax
mov [rbp-88],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp-80],xmm4
vmovdqa xmmword ptr [rbp-70],xmm4
vmovdqa xmmword ptr [rbp-60],xmm4
vmovdqa xmmword ptr [rbp-50],xmm4
mov [rbp-40],rax
mov [rbp-0A0],rsp
mov [rbp+18],rdx
mov rbx,r8
mov r14,r9
mov r15,[rcx]
mov r12d,[rcx+8]
mov r13d,[rcx+0C]
xor ecx,ecx
xor esi,esi
mov rdx,r15
test rdx,rdx
je short M02_L01
mov rcx,[r15]
test dword ptr [rcx],80000000
je near ptr M02_L04
lea rcx,[r15+10]
mov esi,[r15+8]
M02_L00:
mov edx,r12d
and edx,7FFFFFFF
mov eax,r13d
add rax,rdx
mov r8d,esi
cmp rax,r8
ja near ptr M02_L05
add rcx,rdx
mov esi,r13d
M02_L01:
mov rdi,rcx
lea edx,[r13+0C]
cmp edx,100000
jle short M02_L02
cmp edx,400000
jg short M02_L02
mov edx,100000
M02_L02:
mov rcx,24C7E807CF0
mov rax,[rcx]
mov [rbp-98],rax
mov rcx,rax
call qword ptr [7FFBDA90D278]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-48],rax
xor ecx,ecx
mov [rbp-40],ecx
mov byte ptr [rbp-3C],0
mov byte ptr [rbp-3B],0
mov rcx,[rbp-98]
mov edx,200
call qword ptr [7FFBDA90D278]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-58],rax
mov rcx,[rbp-58]
mov ecx,[rcx+8]
mov [rbp-50],ecx
mov [rbp-88],rdi
mov [rbp-80],esi
lea rcx,[rbp-88]
lea r9,[rbp-58]
lea r8,[rbp-48]
mov rdx,[rbp+18]
call qword ptr [7FFBDA9133C0]; System.Text.Json.JsonDocument.Parse(System.ReadOnlySpan`1<Byte>, System.Text.Json.JsonReaderOptions, MetadataDb ByRef, StackRowStack ByRef)
nop
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L03
mov rcx,[rbp-98]
xor r8d,r8d
call qword ptr [7FFBDA90D280]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L03:
mov rcx,offset MT_System.Text.Json.JsonDocument
call CORINFO_HELP_NEWSFAST
mov rsi,rax
mov [rbp-90],rsi
vmovdqu xmm0,xmmword ptr [rbp-48]
vmovdqu xmmword ptr [rbp-78],xmm0
lea rdi,[rsi+20]
mov rcx,rdi
mov rdx,r15
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov [rdi+8],r12d
mov [rdi+0C],r13d
lea rdi,[rsi+30]
lea rsi,[rbp-78]
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov r15,[rbp-90]
lea rcx,[r15+8]
mov rdx,rbx
call CORINFO_HELP_ASSIGN_REF
lea rcx,[r15+10]
mov rdx,r14
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [r15+18],1
mov rax,r15
add rsp,88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
M02_L04:
lea rdx,[rbp-68]
mov rcx,r15
mov rax,[r15]
mov rax,[rax+40]
call qword ptr [rax+28]
mov rcx,[rbp-68]
mov esi,[rbp-60]
jmp near ptr M02_L00
M02_L05:
call qword ptr [7FFBDA6BD4E0]
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
lea rcx,[rbp-48]
call qword ptr [7FFBDA911A38]; System.Text.Json.JsonDocument+MetadataDb.Dispose()
call CORINFO_HELP_RETHROW
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L06
mov rcx,24C7E807CF0
mov rcx,[rcx]
mov rsi,rcx
mov rcx,rsi
xor r8d,r8d
call qword ptr [7FFBDA90D280]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L06:
nop
add rsp,28
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
; Total bytes of code 657 ; System.Text.Json.JsonDocument.Dispose()
push rdi
push rsi
push rbx
sub rsp,30
mov rsi,rcx
mov edi,[rsi+2C]
test edi,edi
je short M03_L00
cmp byte ptr [rsi+18],0
jne short M03_L01
M03_L00:
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L01:
lea rbx,[rsi+30]
xor ecx,ecx
mov rdx,rcx
xchg rdx,[rbx]
test rdx,rdx
je short M03_L02
mov rcx,24C7E807CF0
mov rcx,[rcx]
xor r8d,r8d
call qword ptr [7FFBDA90D280]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
xor edx,edx
mov [rbx+8],edx
M03_L02:
xor edx,edx
mov [rsi+20],rdx
mov [rsi+28],rdx
cmp qword ptr [rsi+8],0
je short M03_L05
add rsi,8
xor edx,edx
mov rbx,rdx
xchg rbx,[rsi]
test rbx,rbx
je short M03_L06
cmp [rbx+8],edi
jb short M03_L07
lea rcx,[rbx+10]
mov edx,edi
mov [rsp+28],rdx
test rdx,rdx
je short M03_L04
cmp rdx,300
ja short M03_L03
xor edx,edx
mov r8d,[rsp+28]
call CORINFO_HELP_MEMSET
jmp short M03_L04
M03_L03:
mov rdx,[rsp+28]
call qword ptr [7FFBDA4710D8]
M03_L04:
mov rcx,24C7E807CF0
mov rcx,[rcx]
mov rdx,rbx
xor r8d,r8d
call qword ptr [7FFBDA90D280]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L05:
cmp qword ptr [rsi+10],0
je short M03_L06
lea rcx,[rsi+10]
xor eax,eax
xchg rax,[rcx]
test rax,rax
je short M03_L06
mov rcx,rax
call qword ptr [7FFBDA90CD00]; System.Text.Json.PooledByteBufferWriter.Dispose()
M03_L06:
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L07:
call qword ptr [7FFBDA6BD4E0]
int 3
; Total bytes of code 244 Compare Jit Disasm; System.Text.Json.Document.Tests.Perf_DocumentParse.Parse()
push rbp
push r14
push rdi
push rsi
push rbx
sub rsp,70
lea rbp,[rsp+90]
xor eax,eax
mov [rbp-58],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp-50],xmm4
vmovdqa xmmword ptr [rbp-40],xmm4
mov [rbp-70],rsp
mov rsi,rcx
mov rdi,[rsi+8]
test rdi,rdi
je near ptr M00_L06
mov rbx,rdi
mov r14d,[rbx+8]
M00_L00:
xor ecx,ecx
mov [rbp-28],rcx
lea rcx,[rbp-28]
call qword ptr [7FF7BEE736F0]; System.Text.Json.JsonDocumentOptions.GetReaderOptions()
mov [rbp-30],rax
mov [rbp-40],rbx
xor ecx,ecx
mov [rbp-38],ecx
mov [rbp-34],r14d
mov rcx,[rbp-30]
mov [rbp-48],rcx
lea rcx,[rbp-40]
mov rdx,[rbp-48]
xor r8d,r8d
xor r9d,r9d
call qword ptr [7FF7BEE735A0]; System.Text.Json.JsonDocument.Parse(System.ReadOnlyMemory`1<Byte>, System.Text.Json.JsonReaderOptions, Byte[], System.Text.Json.PooledByteBufferWriter)
mov [rbp-60],rax
cmp byte ptr [rsi+15],0
je near ptr M00_L04
mov esi,[rsi+10]
test esi,esi
jne short M00_L01
cmp [rax],al
mov rcx,rax
mov [rbp-58],rcx
xor ecx,ecx
mov [rbp-50],ecx
lea rcx,[rbp-58]
call qword ptr [7FF7BEC5BAC8]
mov rax,[rbp-60]
jmp short M00_L04
M00_L01:
cmp esi,2
jne short M00_L02
cmp [rax],al
mov rcx,rax
mov [rbp-58],rcx
xor ecx,ecx
mov [rbp-50],ecx
lea rcx,[rbp-58]
call qword ptr [7FF7BEC5BAE0]
mov rax,[rbp-60]
jmp short M00_L04
M00_L02:
cmp esi,1
jne short M00_L03
cmp [rax],al
mov rcx,rax
mov [rbp-58],rcx
xor ecx,ecx
mov [rbp-50],ecx
lea rcx,[rbp-58]
call qword ptr [7FF7BEC5BAF8]
mov rax,[rbp-60]
jmp short M00_L04
M00_L03:
cmp esi,3
jne short M00_L04
cmp [rax],al
mov rcx,rax
mov [rbp-58],rcx
xor ecx,ecx
mov [rbp-50],ecx
lea rcx,[rbp-58]
call qword ptr [7FF7BEC5BB10]
mov rax,[rbp-60]
M00_L04:
test rax,rax
je short M00_L05
mov rcx,rax
call qword ptr [7FF7BEE5DE98]; System.Text.Json.JsonDocument.Dispose()
M00_L05:
nop
add rsp,70
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
M00_L06:
xor ebx,ebx
xor r14d,r14d
jmp near ptr M00_L00
push rbp
push r14
push rdi
push rsi
push rbx
sub rsp,30
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+90]
cmp qword ptr [rbp-60],0
je short M00_L07
mov rcx,[rbp-60]
call qword ptr [7FF7BEE5DE98]; System.Text.Json.JsonDocument.Dispose()
M00_L07:
nop
add rsp,30
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
; Total bytes of code 371 ; System.Text.Json.JsonDocumentOptions.GetReaderOptions()
sub rsp,28
xor eax,eax
mov [rsp+20],rax
movzx eax,byte ptr [rcx+5]
mov [rsp+25],al
movzx eax,byte ptr [rcx+4]
cmp eax,2
jg short M01_L00
mov [rsp+24],al
mov eax,[rcx]
test eax,eax
jl short M01_L01
mov [rsp+20],eax
mov rax,[rsp+20]
add rsp,28
ret
M01_L00:
mov ecx,2C4E
mov rdx,7FF7BEE5B340
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FF7BEE75060]
int 3
M01_L01:
mov ecx,2C4E
mov rdx,7FF7BEE5B340
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FF7BEE75030]
int 3
; Total bytes of code 112 ; System.Text.Json.JsonDocument.Parse(System.ReadOnlyMemory`1<Byte>, System.Text.Json.JsonReaderOptions, Byte[], System.Text.Json.PooledByteBufferWriter)
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,88
vzeroupper
lea rbp,[rsp+0C0]
xor eax,eax
mov [rbp-88],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp-80],xmm4
vmovdqa xmmword ptr [rbp-70],xmm4
vmovdqa xmmword ptr [rbp-60],xmm4
vmovdqa xmmword ptr [rbp-50],xmm4
mov [rbp-40],rax
mov [rbp-0A0],rsp
mov [rbp+18],rdx
mov rbx,r8
mov r14,r9
mov r15,[rcx]
mov r12d,[rcx+8]
mov r13d,[rcx+0C]
xor ecx,ecx
xor esi,esi
mov rdx,r15
test rdx,rdx
je short M02_L01
mov rcx,[r15]
test dword ptr [rcx],80000000
je near ptr M02_L03
lea rcx,[r15+10]
mov esi,[r15+8]
M02_L00:
mov edx,r12d
and edx,7FFFFFFF
mov eax,r13d
add rax,rdx
mov r8d,esi
cmp rax,r8
ja near ptr M02_L04
add rcx,rdx
mov esi,r13d
M02_L01:
mov rdi,rcx
lea edx,[r13+0C]
mov ecx,100000
cmp edx,400000
cmovg ecx,edx
cmp edx,100000
cmovg edx,ecx
mov rcx,1F3EC807D00
mov rax,[rcx]
mov [rbp-98],rax
mov rcx,rax
call qword ptr [7FF7BEEA02E0]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-48],rax
xor ecx,ecx
mov [rbp-40],ecx
mov byte ptr [rbp-3C],0
mov byte ptr [rbp-3B],0
mov rcx,[rbp-98]
mov edx,200
call qword ptr [7FF7BEEA02E0]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-58],rax
mov rcx,[rbp-58]
mov ecx,[rcx+8]
mov [rbp-50],ecx
mov [rbp-88],rdi
mov [rbp-80],esi
lea rcx,[rbp-88]
lea r9,[rbp-58]
lea r8,[rbp-48]
mov rdx,[rbp+18]
call qword ptr [7FF7BEE733C0]; System.Text.Json.JsonDocument.Parse(System.ReadOnlySpan`1<Byte>, System.Text.Json.JsonReaderOptions, MetadataDb ByRef, StackRowStack ByRef)
nop
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L02
mov rcx,[rbp-98]
xor r8d,r8d
call qword ptr [7FF7BEEA02E8]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L02:
mov rcx,offset MT_System.Text.Json.JsonDocument
call CORINFO_HELP_NEWSFAST
mov rsi,rax
mov [rbp-90],rsi
vmovdqu xmm0,xmmword ptr [rbp-48]
vmovdqu xmmword ptr [rbp-78],xmm0
lea rdi,[rsi+20]
mov rcx,rdi
mov rdx,r15
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov [rdi+8],r12d
mov [rdi+0C],r13d
lea rdi,[rsi+30]
lea rsi,[rbp-78]
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov r15,[rbp-90]
lea rcx,[r15+8]
mov rdx,rbx
call CORINFO_HELP_ASSIGN_REF
lea rcx,[r15+10]
mov rdx,r14
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [r15+18],1
mov rax,r15
add rsp,88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
M02_L03:
lea rdx,[rbp-68]
mov rcx,r15
mov rax,[r15]
mov rax,[rax+40]
call qword ptr [rax+28]
mov rcx,[rbp-68]
mov esi,[rbp-60]
jmp near ptr M02_L00
M02_L04:
call qword ptr [7FF7BEC1D4E0]
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
lea rcx,[rbp-48]
call qword ptr [7FF7BEE71A38]; System.Text.Json.JsonDocument+MetadataDb.Dispose()
call CORINFO_HELP_RETHROW
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L05
mov rcx,1F3EC807D00
mov rcx,[rcx]
mov rsi,rcx
mov rcx,rsi
xor r8d,r8d
call qword ptr [7FF7BEEA02E8]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L05:
nop
add rsp,28
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
; Total bytes of code 659 ; System.Text.Json.JsonDocument.Dispose()
push rdi
push rsi
push rbx
sub rsp,30
mov rsi,rcx
mov edi,[rsi+2C]
test edi,edi
je short M03_L00
cmp byte ptr [rsi+18],0
jne short M03_L01
M03_L00:
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L01:
lea rbx,[rsi+30]
xor ecx,ecx
mov rdx,rcx
xchg rdx,[rbx]
test rdx,rdx
je short M03_L02
mov rcx,1F3EC807D00
mov rcx,[rcx]
xor r8d,r8d
call qword ptr [7FF7BEEA02E8]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
xor edx,edx
mov [rbx+8],edx
M03_L02:
xor edx,edx
mov [rsi+20],rdx
mov [rsi+28],rdx
cmp qword ptr [rsi+8],0
je short M03_L05
add rsi,8
xor edx,edx
mov rbx,rdx
xchg rbx,[rsi]
test rbx,rbx
je short M03_L06
cmp [rbx+8],edi
jb short M03_L07
lea rcx,[rbx+10]
mov edx,edi
mov [rsp+28],rdx
test rdx,rdx
je short M03_L04
cmp rdx,300
ja short M03_L03
xor edx,edx
mov r8d,[rsp+28]
call CORINFO_HELP_MEMSET
jmp short M03_L04
M03_L03:
mov rdx,[rsp+28]
call qword ptr [7FF7BE9D10D8]
M03_L04:
mov rcx,1F3EC807D00
mov rcx,[rcx]
mov rdx,rbx
xor r8d,r8d
call qword ptr [7FF7BEEA02E8]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L05:
cmp qword ptr [rsi+10],0
je short M03_L06
lea rcx,[rsi+10]
xor eax,eax
xchg rax,[rcx]
test rax,rax
je short M03_L06
mov rcx,rax
call qword ptr [7FF7BEE5FD68]; System.Text.Json.PooledByteBufferWriter.Dispose()
M03_L06:
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L07:
call qword ptr [7FF7BEC1D4E0]
int 3
; Total bytes of code 244 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Improvements in System.Text.Json.Serialization.Tests.ReadJson<ArrayList>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.ReadJson<ArrayList>*' PayloadsHistogramSystem.Text.Json.Serialization.Tests.ReadJson<ArrayList>.DeserializeFromStream(Mode: Reflection)
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Improvements in MicroBenchmarks.Serializers.Json_FromStream<MyEventsListerViewModel>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'MicroBenchmarks.Serializers.Json_FromStream<MyEventsListerViewModel>*' PayloadsHistogramMicroBenchmarks.Serializers.Json_FromStream<MyEventsListerViewModel>.SystemTextJson_Reflection_
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Improvements in System.Text.Json.Serialization.Tests.ReadJson<LoginViewModel>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.ReadJson<LoginViewModel>*' PayloadsHistogramSystem.Text.Json.Serialization.Tests.ReadJson<LoginViewModel>.DeserializeFromUtf8Bytes(Mode: SourceGen)
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Improvements in System.Text.Json.Serialization.Tests.ReadJson<HashSet<String>>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.ReadJson<HashSet<String>>*' PayloadsHistogramSystem.Text.Json.Serialization.Tests.ReadJson<HashSet<String>>.DeserializeFromStream(Mode: Reflection)
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository |
Run Information
Improvements in System.Text.Json.Document.Tests.Perf_EnumerateArray
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Document.Tests.Perf_EnumerateArray*' PayloadsHistogramSystem.Text.Json.Document.Tests.Perf_EnumerateArray.Parse(TestCase: ArrayOfStrings)
Description of detection logic
; System.Text.Json.JsonDocumentOptions.GetReaderOptions()
sub rsp,28
xor eax,eax
mov [rsp+20],rax
movzx eax,byte ptr [rcx+5]
mov [rsp+25],al
movzx eax,byte ptr [rcx+4]
cmp eax,2
jg short M01_L00
mov [rsp+24],al
mov eax,[rcx]
test eax,eax
jl short M01_L01
mov [rsp+20],eax
mov rax,[rsp+20]
add rsp,28
ret
M01_L00:
mov ecx,2C7A
mov rdx,7FFB9A86FB58
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FFB9AB0B060]
int 3
M01_L01:
mov ecx,2C7A
mov rdx,7FFB9A86FB58
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FFB9AB0B030]
int 3
; Total bytes of code 112 ; System.Text.Json.JsonDocument.Parse(System.ReadOnlyMemory`1<Byte>, System.Text.Json.JsonReaderOptions, Byte[], System.Text.Json.PooledByteBufferWriter)
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,88
vzeroupper
lea rbp,[rsp+0C0]
xor eax,eax
mov [rbp-88],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp-80],xmm4
vmovdqa xmmword ptr [rbp-70],xmm4
vmovdqa xmmword ptr [rbp-60],xmm4
vmovdqa xmmword ptr [rbp-50],xmm4
mov [rbp-40],rax
mov [rbp-0A0],rsp
mov [rbp+18],rdx
mov rbx,r8
mov r14,r9
mov r15,[rcx]
mov r12d,[rcx+8]
mov r13d,[rcx+0C]
xor ecx,ecx
xor esi,esi
mov rdx,r15
test rdx,rdx
je short M02_L01
mov rcx,[r15]
test dword ptr [rcx],80000000
je near ptr M02_L04
lea rcx,[r15+10]
mov esi,[r15+8]
M02_L00:
mov edx,r12d
and edx,7FFFFFFF
mov eax,r13d
add rax,rdx
mov r8d,esi
cmp rax,r8
ja near ptr M02_L05
add rcx,rdx
mov esi,r13d
M02_L01:
mov rdi,rcx
lea edx,[r13+0C]
cmp edx,100000
jle short M02_L02
cmp edx,400000
jg short M02_L02
mov edx,100000
M02_L02:
mov rcx,23D2FC01EF8
mov rax,[rcx]
mov [rbp-98],rax
mov rcx,rax
call qword ptr [7FFB9AB14350]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-48],rax
xor ecx,ecx
mov [rbp-40],ecx
mov byte ptr [rbp-3C],0
mov byte ptr [rbp-3B],0
mov rcx,[rbp-98]
mov edx,200
call qword ptr [7FFB9AB14350]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-58],rax
mov rcx,[rbp-58]
mov ecx,[rcx+8]
mov [rbp-50],ecx
mov [rbp-88],rdi
mov [rbp-80],esi
lea rcx,[rbp-88]
lea r9,[rbp-58]
lea r8,[rbp-48]
mov rdx,[rbp+18]
call qword ptr [7FFB9AA0D588]; System.Text.Json.JsonDocument.Parse(System.ReadOnlySpan`1<Byte>, System.Text.Json.JsonReaderOptions, MetadataDb ByRef, StackRowStack ByRef)
nop
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L03
mov rcx,[rbp-98]
xor r8d,r8d
call qword ptr [7FFB9AB14358]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L03:
mov rcx,offset MT_System.Text.Json.JsonDocument
call CORINFO_HELP_NEWSFAST
mov rsi,rax
mov [rbp-90],rsi
vmovdqu xmm0,xmmword ptr [rbp-48]
vmovdqu xmmword ptr [rbp-78],xmm0
lea rdi,[rsi+20]
mov rcx,rdi
mov rdx,r15
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov [rdi+8],r12d
mov [rdi+0C],r13d
lea rdi,[rsi+30]
lea rsi,[rbp-78]
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov r15,[rbp-90]
lea rcx,[r15+8]
mov rdx,rbx
call CORINFO_HELP_ASSIGN_REF
lea rcx,[r15+10]
mov rdx,r14
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [r15+18],1
mov rax,r15
add rsp,88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
M02_L04:
lea rdx,[rbp-68]
mov rcx,r15
mov rax,[r15]
mov rax,[rax+40]
call qword ptr [rax+28]
mov rcx,[rbp-68]
mov esi,[rbp-60]
jmp near ptr M02_L00
M02_L05:
call qword ptr [7FFB9A81D4E0]
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
lea rcx,[rbp-48]
call qword ptr [7FFB9AA0D0A8]; System.Text.Json.JsonDocument+MetadataDb.Dispose()
call CORINFO_HELP_RETHROW
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L06
mov rcx,23D2FC01EF8
mov rcx,[rcx]
mov rsi,rcx
mov rcx,rsi
xor r8d,r8d
call qword ptr [7FFB9AB14358]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L06:
nop
add rsp,28
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
; Total bytes of code 657 ; System.Text.Json.JsonDocument.Dispose()
push rdi
push rsi
push rbx
sub rsp,30
mov rsi,rcx
mov edi,[rsi+2C]
test edi,edi
je short M03_L00
cmp byte ptr [rsi+18],0
jne short M03_L01
M03_L00:
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L01:
lea rbx,[rsi+30]
xor ecx,ecx
mov rdx,rcx
xchg rdx,[rbx]
test rdx,rdx
je short M03_L02
mov rcx,23D2FC01EF8
mov rcx,[rcx]
xor r8d,r8d
call qword ptr [7FFB9AB14358]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
xor edx,edx
mov [rbx+8],edx
M03_L02:
xor edx,edx
mov [rsi+20],rdx
mov [rsi+28],rdx
cmp qword ptr [rsi+8],0
je short M03_L05
add rsi,8
xor edx,edx
mov rbx,rdx
xchg rbx,[rsi]
test rbx,rbx
je short M03_L06
cmp [rbx+8],edi
jb short M03_L07
lea rcx,[rbx+10]
mov edx,edi
mov [rsp+28],rdx
test rdx,rdx
je short M03_L04
cmp rdx,300
ja short M03_L03
xor edx,edx
mov r8d,[rsp+28]
call CORINFO_HELP_MEMSET
jmp short M03_L04
M03_L03:
mov rdx,[rsp+28]
call qword ptr [7FFB9A5D10D8]
M03_L04:
mov rcx,23D2FC01EF8
mov rcx,[rcx]
mov rdx,rbx
xor r8d,r8d
call qword ptr [7FFB9AB14358]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L05:
cmp qword ptr [rsi+10],0
je short M03_L06
lea rcx,[rsi+10]
xor eax,eax
xchg rax,[rcx]
test rax,rax
je short M03_L06
mov rcx,rax
call qword ptr [7FFB9AB13DD8]; System.Text.Json.PooledByteBufferWriter.Dispose()
M03_L06:
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L07:
call qword ptr [7FFB9A81D4E0]
int 3
; Total bytes of code 244 Compare Jit Disasm; System.Text.Json.Document.Tests.Perf_EnumerateArray.Parse()
push rbp
push rdi
push rsi
push rbx
sub rsp,58
lea rbp,[rsp+70]
xor eax,eax
mov [rbp-38],rax
mov [rbp-30],rax
mov [rbp-50],rsp
mov rsi,[rcx+8]
test rsi,rsi
je short M00_L01
mov rdi,rsi
mov ebx,[rdi+8]
M00_L00:
xor ecx,ecx
mov [rbp-20],rcx
lea rcx,[rbp-20]
call qword ptr [7FF9A825B6F0]; System.Text.Json.JsonDocumentOptions.GetReaderOptions()
mov [rbp-28],rax
mov [rbp-38],rdi
xor ecx,ecx
mov [rbp-30],ecx
mov [rbp-2C],ebx
mov rcx,[rbp-28]
mov [rbp-40],rcx
lea rcx,[rbp-38]
mov rdx,[rbp-40]
xor r8d,r8d
xor r9d,r9d
call qword ptr [7FF9A825D768]; System.Text.Json.JsonDocument.Parse(System.ReadOnlyMemory`1<Byte>, System.Text.Json.JsonReaderOptions, Byte[], System.Text.Json.PooledByteBufferWriter)
mov [rbp-48],rax
cmp [rax],al
mov rcx,rax
call qword ptr [7FF9A824F470]; System.Text.Json.JsonDocument.Dispose()
nop
add rsp,58
pop rbx
pop rsi
pop rdi
pop rbp
ret
M00_L01:
xor edi,edi
xor ebx,ebx
jmp short M00_L00
push rbp
push rdi
push rsi
push rbx
sub rsp,28
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+70]
cmp qword ptr [rbp-48],0
je short M00_L02
mov rcx,[rbp-48]
call qword ptr [7FF9A824F470]; System.Text.Json.JsonDocument.Dispose()
M00_L02:
nop
add rsp,28
pop rbx
pop rsi
pop rdi
pop rbp
ret
; Total bytes of code 181 ; System.Text.Json.JsonDocumentOptions.GetReaderOptions()
sub rsp,28
xor eax,eax
mov [rsp+20],rax
movzx eax,byte ptr [rcx+5]
mov [rsp+25],al
movzx eax,byte ptr [rcx+4]
cmp eax,2
jg short M01_L00
mov [rsp+24],al
mov eax,[rcx]
test eax,eax
jl short M01_L01
mov [rsp+20],eax
mov rax,[rsp+20]
add rsp,28
ret
M01_L00:
mov ecx,2C4E
mov rdx,7FF9A80F2F00
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FF9A835B060]
int 3
M01_L01:
mov ecx,2C4E
mov rdx,7FF9A80F2F00
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FF9A835B030]
int 3
; Total bytes of code 112 ; System.Text.Json.JsonDocument.Parse(System.ReadOnlyMemory`1<Byte>, System.Text.Json.JsonReaderOptions, Byte[], System.Text.Json.PooledByteBufferWriter)
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,88
vzeroupper
lea rbp,[rsp+0C0]
xor eax,eax
mov [rbp-88],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp-80],xmm4
vmovdqa xmmword ptr [rbp-70],xmm4
vmovdqa xmmword ptr [rbp-60],xmm4
vmovdqa xmmword ptr [rbp-50],xmm4
mov [rbp-40],rax
mov [rbp-0A0],rsp
mov [rbp+18],rdx
mov rbx,r8
mov r14,r9
mov r15,[rcx]
mov r12d,[rcx+8]
mov r13d,[rcx+0C]
xor ecx,ecx
xor esi,esi
mov rdx,r15
test rdx,rdx
je short M02_L01
mov rcx,[r15]
test dword ptr [rcx],80000000
je near ptr M02_L03
lea rcx,[r15+10]
mov esi,[r15+8]
M02_L00:
mov edx,r12d
and edx,7FFFFFFF
mov eax,r13d
add rax,rdx
mov r8d,esi
cmp rax,r8
ja near ptr M02_L04
add rcx,rdx
mov esi,r13d
M02_L01:
mov rdi,rcx
lea edx,[r13+0C]
mov ecx,100000
cmp edx,400000
cmovg ecx,edx
cmp edx,100000
cmovg edx,ecx
mov rcx,10580001EF8
mov rax,[rcx]
mov [rbp-98],rax
mov rcx,rax
call qword ptr [7FF9A8365268]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-48],rax
xor ecx,ecx
mov [rbp-40],ecx
mov byte ptr [rbp-3C],0
mov byte ptr [rbp-3B],0
mov rcx,[rbp-98]
mov edx,200
call qword ptr [7FF9A8365268]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-58],rax
mov rcx,[rbp-58]
mov ecx,[rcx+8]
mov [rbp-50],ecx
mov [rbp-88],rdi
mov [rbp-80],esi
lea rcx,[rbp-88]
lea r9,[rbp-58]
lea r8,[rbp-48]
mov rdx,[rbp+18]
call qword ptr [7FF9A825D588]; System.Text.Json.JsonDocument.Parse(System.ReadOnlySpan`1<Byte>, System.Text.Json.JsonReaderOptions, MetadataDb ByRef, StackRowStack ByRef)
nop
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L02
mov rcx,[rbp-98]
xor r8d,r8d
call qword ptr [7FF9A8365270]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L02:
mov rcx,offset MT_System.Text.Json.JsonDocument
call CORINFO_HELP_NEWSFAST
mov rsi,rax
mov [rbp-90],rsi
vmovdqu xmm0,xmmword ptr [rbp-48]
vmovdqu xmmword ptr [rbp-78],xmm0
lea rdi,[rsi+20]
mov rcx,rdi
mov rdx,r15
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov [rdi+8],r12d
mov [rdi+0C],r13d
lea rdi,[rsi+30]
lea rsi,[rbp-78]
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov r15,[rbp-90]
lea rcx,[r15+8]
mov rdx,rbx
call CORINFO_HELP_ASSIGN_REF
lea rcx,[r15+10]
mov rdx,r14
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [r15+18],1
mov rax,r15
add rsp,88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
M02_L03:
lea rdx,[rbp-68]
mov rcx,r15
mov rax,[r15]
mov rax,[rax+40]
call qword ptr [rax+28]
mov rcx,[rbp-68]
mov esi,[rbp-60]
jmp near ptr M02_L00
M02_L04:
call qword ptr [7FF9A806D4E0]
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
lea rcx,[rbp-48]
call qword ptr [7FF9A825D0A8]; System.Text.Json.JsonDocument+MetadataDb.Dispose()
call CORINFO_HELP_RETHROW
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L05
mov rcx,10580001EF8
mov rcx,[rcx]
mov rsi,rcx
mov rcx,rsi
xor r8d,r8d
call qword ptr [7FF9A8365270]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L05:
nop
add rsp,28
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
; Total bytes of code 659 ; System.Text.Json.JsonDocument.Dispose()
push rdi
push rsi
push rbx
sub rsp,30
mov rsi,rcx
mov edi,[rsi+2C]
test edi,edi
je short M03_L00
cmp byte ptr [rsi+18],0
jne short M03_L01
M03_L00:
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L01:
lea rbx,[rsi+30]
xor ecx,ecx
mov rdx,rcx
xchg rdx,[rbx]
test rdx,rdx
je short M03_L02
mov rcx,10580001EF8
mov rcx,[rcx]
xor r8d,r8d
call qword ptr [7FF9A8365270]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
xor edx,edx
mov [rbx+8],edx
M03_L02:
xor edx,edx
mov [rsi+20],rdx
mov [rsi+28],rdx
cmp qword ptr [rsi+8],0
je short M03_L05
add rsi,8
xor edx,edx
mov rbx,rdx
xchg rbx,[rsi]
test rbx,rbx
je short M03_L06
cmp [rbx+8],edi
jb short M03_L07
lea rcx,[rbx+10]
mov edx,edi
mov [rsp+28],rdx
test rdx,rdx
je short M03_L04
cmp rdx,300
ja short M03_L03
xor edx,edx
mov r8d,[rsp+28]
call CORINFO_HELP_MEMSET
jmp short M03_L04
M03_L03:
mov rdx,[rsp+28]
call qword ptr [7FF9A7E210D8]
M03_L04:
mov rcx,10580001EF8
mov rcx,[rcx]
mov rdx,rbx
xor r8d,r8d
call qword ptr [7FF9A8365270]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L05:
cmp qword ptr [rsi+10],0
je short M03_L06
lea rcx,[rsi+10]
xor eax,eax
xchg rax,[rcx]
test rax,rax
je short M03_L06
mov rcx,rax
call qword ptr [7FF9A8364CF0]; System.Text.Json.PooledByteBufferWriter.Dispose()
M03_L06:
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L07:
call qword ptr [7FF9A806D4E0]
int 3
; Total bytes of code 244 System.Text.Json.Document.Tests.Perf_EnumerateArray.Parse(TestCase: Json400KB)
Description of detection logic
; System.Text.Json.JsonDocumentOptions.GetReaderOptions()
sub rsp,28
xor eax,eax
mov [rsp+20],rax
movzx eax,byte ptr [rcx+5]
mov [rsp+25],al
movzx eax,byte ptr [rcx+4]
cmp eax,2
jg short M01_L00
mov [rsp+24],al
mov eax,[rcx]
test eax,eax
jl short M01_L01
mov [rsp+20],eax
mov rax,[rsp+20]
add rsp,28
ret
M01_L00:
mov ecx,2C7A
mov rdx,7FFB9A95FB58
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FFB9AC21060]
int 3
M01_L01:
mov ecx,2C7A
mov rdx,7FFB9A95FB58
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FFB9AC21030]
int 3
; Total bytes of code 112 ; System.Text.Json.JsonDocument.Parse(System.ReadOnlyMemory`1<Byte>, System.Text.Json.JsonReaderOptions, Byte[], System.Text.Json.PooledByteBufferWriter)
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,88
vzeroupper
lea rbp,[rsp+0C0]
xor eax,eax
mov [rbp-88],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp-80],xmm4
vmovdqa xmmword ptr [rbp-70],xmm4
vmovdqa xmmword ptr [rbp-60],xmm4
vmovdqa xmmword ptr [rbp-50],xmm4
mov [rbp-40],rax
mov [rbp-0A0],rsp
mov [rbp+18],rdx
mov rbx,r8
mov r14,r9
mov r15,[rcx]
mov r12d,[rcx+8]
mov r13d,[rcx+0C]
xor ecx,ecx
xor esi,esi
mov rdx,r15
test rdx,rdx
je short M02_L01
mov rcx,[r15]
test dword ptr [rcx],80000000
je near ptr M02_L04
lea rcx,[r15+10]
mov esi,[r15+8]
M02_L00:
mov edx,r12d
and edx,7FFFFFFF
mov eax,r13d
add rax,rdx
mov r8d,esi
cmp rax,r8
ja near ptr M02_L05
add rcx,rdx
mov esi,r13d
M02_L01:
mov rdi,rcx
lea edx,[r13+0C]
cmp edx,100000
jle short M02_L02
cmp edx,400000
jg short M02_L02
mov edx,100000
M02_L02:
mov rcx,15AA2001F00
mov rax,[rcx]
mov [rbp-98],rax
mov rcx,rax
call qword ptr [7FFB9AC09ED8]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-48],rax
xor ecx,ecx
mov [rbp-40],ecx
mov byte ptr [rbp-3C],0
mov byte ptr [rbp-3B],0
mov rcx,[rbp-98]
mov edx,200
call qword ptr [7FFB9AC09ED8]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-58],rax
mov rcx,[rbp-58]
mov ecx,[rcx+8]
mov [rbp-50],ecx
mov [rbp-88],rdi
mov [rbp-80],esi
lea rcx,[rbp-88]
lea r9,[rbp-58]
lea r8,[rbp-48]
mov rdx,[rbp+18]
call qword ptr [7FFB9AAFD588]; System.Text.Json.JsonDocument.Parse(System.ReadOnlySpan`1<Byte>, System.Text.Json.JsonReaderOptions, MetadataDb ByRef, StackRowStack ByRef)
nop
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L03
mov rcx,[rbp-98]
xor r8d,r8d
call qword ptr [7FFB9AC09EE0]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L03:
mov rcx,offset MT_System.Text.Json.JsonDocument
call CORINFO_HELP_NEWSFAST
mov rsi,rax
mov [rbp-90],rsi
vmovdqu xmm0,xmmword ptr [rbp-48]
vmovdqu xmmword ptr [rbp-78],xmm0
lea rdi,[rsi+20]
mov rcx,rdi
mov rdx,r15
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov [rdi+8],r12d
mov [rdi+0C],r13d
lea rdi,[rsi+30]
lea rsi,[rbp-78]
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov r15,[rbp-90]
lea rcx,[r15+8]
mov rdx,rbx
call CORINFO_HELP_ASSIGN_REF
lea rcx,[r15+10]
mov rdx,r14
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [r15+18],1
mov rax,r15
add rsp,88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
M02_L04:
lea rdx,[rbp-68]
mov rcx,r15
mov rax,[r15]
mov rax,[rax+40]
call qword ptr [rax+28]
mov rcx,[rbp-68]
mov esi,[rbp-60]
jmp near ptr M02_L00
M02_L05:
call qword ptr [7FFB9A90D4E0]
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
lea rcx,[rbp-48]
call qword ptr [7FFB9AAFD0A8]; System.Text.Json.JsonDocument+MetadataDb.Dispose()
call CORINFO_HELP_RETHROW
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L06
mov rcx,15AA2001F00
mov rcx,[rcx]
mov rsi,rcx
mov rcx,rsi
xor r8d,r8d
call qword ptr [7FFB9AC09EE0]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L06:
nop
add rsp,28
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
; Total bytes of code 657 ; System.Text.Json.JsonDocument.Dispose()
push rdi
push rsi
push rbx
sub rsp,30
mov rsi,rcx
mov edi,[rsi+2C]
test edi,edi
je short M03_L00
cmp byte ptr [rsi+18],0
jne short M03_L01
M03_L00:
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L01:
lea rbx,[rsi+30]
xor ecx,ecx
mov rdx,rcx
xchg rdx,[rbx]
test rdx,rdx
je short M03_L02
mov rcx,15AA2001F00
mov rcx,[rcx]
xor r8d,r8d
call qword ptr [7FFB9AC09EE0]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
xor edx,edx
mov [rbx+8],edx
M03_L02:
xor edx,edx
mov [rsi+20],rdx
mov [rsi+28],rdx
cmp qword ptr [rsi+8],0
je short M03_L05
add rsi,8
xor edx,edx
mov rbx,rdx
xchg rbx,[rsi]
test rbx,rbx
je short M03_L06
cmp [rbx+8],edi
jb short M03_L07
lea rcx,[rbx+10]
mov edx,edi
mov [rsp+28],rdx
test rdx,rdx
je short M03_L04
cmp rdx,300
ja short M03_L03
xor edx,edx
mov r8d,[rsp+28]
call CORINFO_HELP_MEMSET
jmp short M03_L04
M03_L03:
mov rdx,[rsp+28]
call qword ptr [7FFB9A6C10D8]
M03_L04:
mov rcx,15AA2001F00
mov rcx,[rcx]
mov rdx,rbx
xor r8d,r8d
call qword ptr [7FFB9AC09EE0]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L05:
cmp qword ptr [rsi+10],0
je short M03_L06
lea rcx,[rsi+10]
xor eax,eax
xchg rax,[rcx]
test rax,rax
je short M03_L06
mov rcx,rax
call qword ptr [7FFB9AC09960]; System.Text.Json.PooledByteBufferWriter.Dispose()
M03_L06:
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L07:
call qword ptr [7FFB9A90D4E0]
int 3
; Total bytes of code 244 Compare Jit Disasm; System.Text.Json.Document.Tests.Perf_EnumerateArray.Parse()
push rbp
push rdi
push rsi
push rbx
sub rsp,58
lea rbp,[rsp+70]
xor eax,eax
mov [rbp-38],rax
mov [rbp-30],rax
mov [rbp-50],rsp
mov rsi,[rcx+8]
test rsi,rsi
je short M00_L01
mov rdi,rsi
mov ebx,[rdi+8]
M00_L00:
xor ecx,ecx
mov [rbp-20],rcx
lea rcx,[rbp-20]
call qword ptr [7FF9A82CB6F0]; System.Text.Json.JsonDocumentOptions.GetReaderOptions()
mov [rbp-28],rax
mov [rbp-38],rdi
xor ecx,ecx
mov [rbp-30],ecx
mov [rbp-2C],ebx
mov rcx,[rbp-28]
mov [rbp-40],rcx
lea rcx,[rbp-38]
mov rdx,[rbp-40]
xor r8d,r8d
xor r9d,r9d
call qword ptr [7FF9A82CD768]; System.Text.Json.JsonDocument.Parse(System.ReadOnlyMemory`1<Byte>, System.Text.Json.JsonReaderOptions, Byte[], System.Text.Json.PooledByteBufferWriter)
mov [rbp-48],rax
cmp [rax],al
mov rcx,rax
call qword ptr [7FF9A82BF470]; System.Text.Json.JsonDocument.Dispose()
nop
add rsp,58
pop rbx
pop rsi
pop rdi
pop rbp
ret
M00_L01:
xor edi,edi
xor ebx,ebx
jmp short M00_L00
push rbp
push rdi
push rsi
push rbx
sub rsp,28
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+70]
cmp qword ptr [rbp-48],0
je short M00_L02
mov rcx,[rbp-48]
call qword ptr [7FF9A82BF470]; System.Text.Json.JsonDocument.Dispose()
M00_L02:
nop
add rsp,28
pop rbx
pop rsi
pop rdi
pop rbp
ret
; Total bytes of code 181 ; System.Text.Json.JsonDocumentOptions.GetReaderOptions()
sub rsp,28
xor eax,eax
mov [rsp+20],rax
movzx eax,byte ptr [rcx+5]
mov [rsp+25],al
movzx eax,byte ptr [rcx+4]
cmp eax,2
jg short M01_L00
mov [rsp+24],al
mov eax,[rcx]
test eax,eax
jl short M01_L01
mov [rsp+20],eax
mov rax,[rsp+20]
add rsp,28
ret
M01_L00:
mov ecx,2C4E
mov rdx,7FF9A8162F00
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FF9A83F1060]
int 3
M01_L01:
mov ecx,2C4E
mov rdx,7FF9A8162F00
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FF9A83F1030]
int 3
; Total bytes of code 112 ; System.Text.Json.JsonDocument.Parse(System.ReadOnlyMemory`1<Byte>, System.Text.Json.JsonReaderOptions, Byte[], System.Text.Json.PooledByteBufferWriter)
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,88
vzeroupper
lea rbp,[rsp+0C0]
xor eax,eax
mov [rbp-88],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp-80],xmm4
vmovdqa xmmword ptr [rbp-70],xmm4
vmovdqa xmmword ptr [rbp-60],xmm4
vmovdqa xmmword ptr [rbp-50],xmm4
mov [rbp-40],rax
mov [rbp-0A0],rsp
mov [rbp+18],rdx
mov rbx,r8
mov r14,r9
mov r15,[rcx]
mov r12d,[rcx+8]
mov r13d,[rcx+0C]
xor ecx,ecx
xor esi,esi
mov rdx,r15
test rdx,rdx
je short M02_L01
mov rcx,[r15]
test dword ptr [rcx],80000000
je near ptr M02_L03
lea rcx,[r15+10]
mov esi,[r15+8]
M02_L00:
mov edx,r12d
and edx,7FFFFFFF
mov eax,r13d
add rax,rdx
mov r8d,esi
cmp rax,r8
ja near ptr M02_L04
add rcx,rdx
mov esi,r13d
M02_L01:
mov rdi,rcx
lea edx,[r13+0C]
mov ecx,100000
cmp edx,400000
cmovg ecx,edx
cmp edx,100000
cmovg edx,ecx
mov rcx,23314801F00
mov rax,[rcx]
mov [rbp-98],rax
mov rcx,rax
call qword ptr [7FF9A83DADF0]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-48],rax
xor ecx,ecx
mov [rbp-40],ecx
mov byte ptr [rbp-3C],0
mov byte ptr [rbp-3B],0
mov rcx,[rbp-98]
mov edx,200
call qword ptr [7FF9A83DADF0]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-58],rax
mov rcx,[rbp-58]
mov ecx,[rcx+8]
mov [rbp-50],ecx
mov [rbp-88],rdi
mov [rbp-80],esi
lea rcx,[rbp-88]
lea r9,[rbp-58]
lea r8,[rbp-48]
mov rdx,[rbp+18]
call qword ptr [7FF9A82CD588]; System.Text.Json.JsonDocument.Parse(System.ReadOnlySpan`1<Byte>, System.Text.Json.JsonReaderOptions, MetadataDb ByRef, StackRowStack ByRef)
nop
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L02
mov rcx,[rbp-98]
xor r8d,r8d
call qword ptr [7FF9A83DADF8]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L02:
mov rcx,offset MT_System.Text.Json.JsonDocument
call CORINFO_HELP_NEWSFAST
mov rsi,rax
mov [rbp-90],rsi
vmovdqu xmm0,xmmword ptr [rbp-48]
vmovdqu xmmword ptr [rbp-78],xmm0
lea rdi,[rsi+20]
mov rcx,rdi
mov rdx,r15
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov [rdi+8],r12d
mov [rdi+0C],r13d
lea rdi,[rsi+30]
lea rsi,[rbp-78]
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov r15,[rbp-90]
lea rcx,[r15+8]
mov rdx,rbx
call CORINFO_HELP_ASSIGN_REF
lea rcx,[r15+10]
mov rdx,r14
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [r15+18],1
mov rax,r15
add rsp,88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
M02_L03:
lea rdx,[rbp-68]
mov rcx,r15
mov rax,[r15]
mov rax,[rax+40]
call qword ptr [rax+28]
mov rcx,[rbp-68]
mov esi,[rbp-60]
jmp near ptr M02_L00
M02_L04:
call qword ptr [7FF9A80DD4E0]
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
lea rcx,[rbp-48]
call qword ptr [7FF9A82CD0A8]; System.Text.Json.JsonDocument+MetadataDb.Dispose()
call CORINFO_HELP_RETHROW
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L05
mov rcx,23314801F00
mov rcx,[rcx]
mov rsi,rcx
mov rcx,rsi
xor r8d,r8d
call qword ptr [7FF9A83DADF8]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L05:
nop
add rsp,28
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
; Total bytes of code 659 ; System.Text.Json.JsonDocument.Dispose()
push rdi
push rsi
push rbx
sub rsp,30
mov rsi,rcx
mov edi,[rsi+2C]
test edi,edi
je short M03_L00
cmp byte ptr [rsi+18],0
jne short M03_L01
M03_L00:
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L01:
lea rbx,[rsi+30]
xor ecx,ecx
mov rdx,rcx
xchg rdx,[rbx]
test rdx,rdx
je short M03_L02
mov rcx,23314801F00
mov rcx,[rcx]
xor r8d,r8d
call qword ptr [7FF9A83DADF8]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
xor edx,edx
mov [rbx+8],edx
M03_L02:
xor edx,edx
mov [rsi+20],rdx
mov [rsi+28],rdx
cmp qword ptr [rsi+8],0
je short M03_L05
add rsi,8
xor edx,edx
mov rbx,rdx
xchg rbx,[rsi]
test rbx,rbx
je short M03_L06
cmp [rbx+8],edi
jb short M03_L07
lea rcx,[rbx+10]
mov edx,edi
mov [rsp+28],rdx
test rdx,rdx
je short M03_L04
cmp rdx,300
ja short M03_L03
xor edx,edx
mov r8d,[rsp+28]
call CORINFO_HELP_MEMSET
jmp short M03_L04
M03_L03:
mov rdx,[rsp+28]
call qword ptr [7FF9A7E910D8]
M03_L04:
mov rcx,23314801F00
mov rcx,[rcx]
mov rdx,rbx
xor r8d,r8d
call qword ptr [7FF9A83DADF8]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L05:
cmp qword ptr [rsi+10],0
je short M03_L06
lea rcx,[rsi+10]
xor eax,eax
xchg rax,[rcx]
test rax,rax
je short M03_L06
mov rcx,rax
call qword ptr [7FF9A83DA878]; System.Text.Json.PooledByteBufferWriter.Dispose()
M03_L06:
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L07:
call qword ptr [7FF9A80DD4E0]
int 3
; Total bytes of code 244 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Improvements in MicroBenchmarks.Serializers.Json_FromStream<IndexViewModel>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'MicroBenchmarks.Serializers.Json_FromStream<IndexViewModel>*' PayloadsHistogramMicroBenchmarks.Serializers.Json_FromStream<IndexViewModel>.SystemTextJson_Reflection_
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Improvements in System.Text.Json.Document.Tests.Perf_ParseThenWrite
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Document.Tests.Perf_ParseThenWrite*' PayloadsHistogramSystem.Text.Json.Document.Tests.Perf_ParseThenWrite.ParseThenWrite(IsDataIndented: False, TestCase: Json400KB)
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Improvements in MicroBenchmarks.Serializers.Json_FromString<IndexViewModel>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'MicroBenchmarks.Serializers.Json_FromString<IndexViewModel>*' PayloadsHistogramMicroBenchmarks.Serializers.Json_FromString<IndexViewModel>.SystemTextJson_SourceGen_
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Improvements in MicroBenchmarks.Serializers.Json_FromStream<CollectionsOfPrimitives>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'MicroBenchmarks.Serializers.Json_FromStream<CollectionsOfPrimitives>*' PayloadsHistogramMicroBenchmarks.Serializers.Json_FromStream<CollectionsOfPrimitives>.SystemTextJson_SourceGen_
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Improvements in System.Text.Json.Reader.Tests.Perf_Base64
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Reader.Tests.Perf_Base64*' PayloadsHistogramSystem.Text.Json.Reader.Tests.Perf_Base64.ReadBase64EncodedByteArray_NoEscaping(NumberOfBytes: 100)
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Improvements in System.Text.Json.Serialization.Tests.ReadJson<ImmutableSortedDictionary<String, String>>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.ReadJson<ImmutableSortedDictionary<String, String>>*' PayloadsHistogramSystem.Text.Json.Serialization.Tests.ReadJson<ImmutableSortedDictionary<String, String>>.DeserializeFromReader(Mode: Reflection)
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Improvements in MicroBenchmarks.Serializers.Json_FromString<MyEventsListerViewModel>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'MicroBenchmarks.Serializers.Json_FromString<MyEventsListerViewModel>*' PayloadsHistogramMicroBenchmarks.Serializers.Json_FromString<MyEventsListerViewModel>.SystemTextJson_Reflection_
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository |
Run Information
Improvements in System.Text.Json.Serialization.Tests.ReadJson<Dictionary<String, String>>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.ReadJson<Dictionary<String, String>>*' PayloadsHistogramSystem.Text.Json.Serialization.Tests.ReadJson<Dictionary<String, String>>.DeserializeFromStream(Mode: Reflection)
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Improvements in System.Text.Json.Document.Tests.Perf_EnumerateObject
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Document.Tests.Perf_EnumerateObject*' PayloadsHistogramSystem.Text.Json.Document.Tests.Perf_EnumerateObject.Parse(TestCase: StringProperties)
Description of detection logic
; System.Text.Json.JsonDocumentOptions.GetReaderOptions()
sub rsp,28
xor eax,eax
mov [rsp+20],rax
movzx eax,byte ptr [rcx+5]
mov [rsp+25],al
movzx eax,byte ptr [rcx+4]
cmp eax,2
jg short M01_L00
mov [rsp+24],al
mov eax,[rcx]
test eax,eax
jl short M01_L01
mov [rsp+20],eax
mov rax,[rsp+20]
add rsp,28
ret
M01_L00:
mov ecx,2C7A
mov rdx,7FFF8FDEFB58
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FFF9008B7B0]
int 3
M01_L01:
mov ecx,2C7A
mov rdx,7FFF8FDEFB58
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FFF9008B780]
int 3
; Total bytes of code 112 ; System.Text.Json.JsonDocument.Parse(System.ReadOnlyMemory`1<Byte>, System.Text.Json.JsonReaderOptions, Byte[], System.Text.Json.PooledByteBufferWriter)
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,88
vzeroupper
lea rbp,[rsp+0C0]
xor eax,eax
mov [rbp-88],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp-80],xmm4
vmovdqa xmmword ptr [rbp-70],xmm4
vmovdqa xmmword ptr [rbp-60],xmm4
vmovdqa xmmword ptr [rbp-50],xmm4
mov [rbp-40],rax
mov [rbp-0A0],rsp
mov [rbp+18],rdx
mov rbx,r8
mov r14,r9
mov r15,[rcx]
mov r12d,[rcx+8]
mov r13d,[rcx+0C]
xor ecx,ecx
xor esi,esi
mov rdx,r15
test rdx,rdx
je short M02_L01
mov rcx,[r15]
test dword ptr [rcx],80000000
je near ptr M02_L04
lea rcx,[r15+10]
mov esi,[r15+8]
M02_L00:
mov edx,r12d
and edx,7FFFFFFF
mov eax,r13d
add rax,rdx
mov r8d,esi
cmp rax,r8
ja near ptr M02_L05
add rcx,rdx
mov esi,r13d
M02_L01:
mov rdi,rcx
lea edx,[r13+0C]
cmp edx,100000
jle short M02_L02
cmp edx,400000
jg short M02_L02
mov edx,100000
M02_L02:
mov rcx,1ACA2801EF8
mov rax,[rcx]
mov [rbp-98],rax
mov rcx,rax
call qword ptr [7FFF90096348]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-48],rax
xor ecx,ecx
mov [rbp-40],ecx
mov byte ptr [rbp-3C],0
mov byte ptr [rbp-3B],0
mov rcx,[rbp-98]
mov edx,200
call qword ptr [7FFF90096348]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-58],rax
mov rcx,[rbp-58]
mov ecx,[rcx+8]
mov [rbp-50],ecx
mov [rbp-88],rdi
mov [rbp-80],esi
lea rcx,[rbp-88]
lea r9,[rbp-58]
lea r8,[rbp-48]
mov rdx,[rbp+18]
call qword ptr [7FFF8FF8D588]; System.Text.Json.JsonDocument.Parse(System.ReadOnlySpan`1<Byte>, System.Text.Json.JsonReaderOptions, MetadataDb ByRef, StackRowStack ByRef)
nop
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L03
mov rcx,[rbp-98]
xor r8d,r8d
call qword ptr [7FFF90096350]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L03:
mov rcx,offset MT_System.Text.Json.JsonDocument
call CORINFO_HELP_NEWSFAST
mov rsi,rax
mov [rbp-90],rsi
vmovdqu xmm0,xmmword ptr [rbp-48]
vmovdqu xmmword ptr [rbp-78],xmm0
lea rdi,[rsi+20]
mov rcx,rdi
mov rdx,r15
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov [rdi+8],r12d
mov [rdi+0C],r13d
lea rdi,[rsi+30]
lea rsi,[rbp-78]
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov r15,[rbp-90]
lea rcx,[r15+8]
mov rdx,rbx
call CORINFO_HELP_ASSIGN_REF
lea rcx,[r15+10]
mov rdx,r14
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [r15+18],1
mov rax,r15
add rsp,88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
M02_L04:
lea rdx,[rbp-68]
mov rcx,r15
mov rax,[r15]
mov rax,[rax+40]
call qword ptr [rax+28]
mov rcx,[rbp-68]
mov esi,[rbp-60]
jmp near ptr M02_L00
M02_L05:
call qword ptr [7FFF8FD9D4E0]
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
lea rcx,[rbp-48]
call qword ptr [7FFF8FF8D0A8]; System.Text.Json.JsonDocument+MetadataDb.Dispose()
call CORINFO_HELP_RETHROW
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L06
mov rcx,1ACA2801EF8
mov rcx,[rcx]
mov rsi,rcx
mov rcx,rsi
xor r8d,r8d
call qword ptr [7FFF90096350]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L06:
nop
add rsp,28
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
; Total bytes of code 657 ; System.Text.Json.JsonDocument.Dispose()
push rdi
push rsi
push rbx
sub rsp,30
mov rsi,rcx
mov edi,[rsi+2C]
test edi,edi
je short M03_L00
cmp byte ptr [rsi+18],0
jne short M03_L01
M03_L00:
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L01:
lea rbx,[rsi+30]
xor ecx,ecx
mov rdx,rcx
xchg rdx,[rbx]
test rdx,rdx
je short M03_L02
mov rcx,1ACA2801EF8
mov rcx,[rcx]
xor r8d,r8d
call qword ptr [7FFF90096350]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
xor edx,edx
mov [rbx+8],edx
M03_L02:
xor edx,edx
mov [rsi+20],rdx
mov [rsi+28],rdx
cmp qword ptr [rsi+8],0
je short M03_L05
add rsi,8
xor edx,edx
mov rbx,rdx
xchg rbx,[rsi]
test rbx,rbx
je short M03_L06
cmp [rbx+8],edi
jb short M03_L07
lea rcx,[rbx+10]
mov edx,edi
mov [rsp+28],rdx
test rdx,rdx
je short M03_L04
cmp rdx,300
ja short M03_L03
xor edx,edx
mov r8d,[rsp+28]
call CORINFO_HELP_MEMSET
jmp short M03_L04
M03_L03:
mov rdx,[rsp+28]
call qword ptr [7FFF8FB510D8]
M03_L04:
mov rcx,1ACA2801EF8
mov rcx,[rcx]
mov rdx,rbx
xor r8d,r8d
call qword ptr [7FFF90096350]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L05:
cmp qword ptr [rsi+10],0
je short M03_L06
lea rcx,[rsi+10]
xor eax,eax
xchg rax,[rcx]
test rax,rax
je short M03_L06
mov rcx,rax
call qword ptr [7FFF90095DD0]; System.Text.Json.PooledByteBufferWriter.Dispose()
M03_L06:
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L07:
call qword ptr [7FFF8FD9D4E0]
int 3
; Total bytes of code 244 System.Text.Json.Document.Tests.Perf_EnumerateObject.Parse(TestCase: ObjectProperties)
Description of detection logic
; System.Text.Json.JsonDocumentOptions.GetReaderOptions()
sub rsp,28
xor eax,eax
mov [rsp+20],rax
movzx eax,byte ptr [rcx+5]
mov [rsp+25],al
movzx eax,byte ptr [rcx+4]
cmp eax,2
jg short M01_L00
mov [rsp+24],al
mov eax,[rcx]
test eax,eax
jl short M01_L01
mov [rsp+20],eax
mov rax,[rsp+20]
add rsp,28
ret
M01_L00:
mov ecx,2C7A
mov rdx,7FFF8FDFFB58
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FFF9009F438]
int 3
M01_L01:
mov ecx,2C7A
mov rdx,7FFF8FDFFB58
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FFF9009F408]
int 3
; Total bytes of code 112 ; System.Text.Json.JsonDocument.Parse(System.ReadOnlyMemory`1<Byte>, System.Text.Json.JsonReaderOptions, Byte[], System.Text.Json.PooledByteBufferWriter)
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,88
vzeroupper
lea rbp,[rsp+0C0]
xor eax,eax
mov [rbp-88],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp-80],xmm4
vmovdqa xmmword ptr [rbp-70],xmm4
vmovdqa xmmword ptr [rbp-60],xmm4
vmovdqa xmmword ptr [rbp-50],xmm4
mov [rbp-40],rax
mov [rbp-0A0],rsp
mov [rbp+18],rdx
mov rbx,r8
mov r14,r9
mov r15,[rcx]
mov r12d,[rcx+8]
mov r13d,[rcx+0C]
xor ecx,ecx
xor esi,esi
mov rdx,r15
test rdx,rdx
je short M02_L01
mov rcx,[r15]
test dword ptr [rcx],80000000
je near ptr M02_L04
lea rcx,[r15+10]
mov esi,[r15+8]
M02_L00:
mov edx,r12d
and edx,7FFFFFFF
mov eax,r13d
add rax,rdx
mov r8d,esi
cmp rax,r8
ja near ptr M02_L05
add rcx,rdx
mov esi,r13d
M02_L01:
mov rdi,rcx
lea edx,[r13+0C]
cmp edx,100000
jle short M02_L02
cmp edx,400000
jg short M02_L02
mov edx,100000
M02_L02:
mov rcx,23303001F00
mov rax,[rcx]
mov [rbp-98],rax
mov rcx,rax
call qword ptr [7FFF900A87B8]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-48],rax
xor ecx,ecx
mov [rbp-40],ecx
mov byte ptr [rbp-3C],0
mov byte ptr [rbp-3B],0
mov rcx,[rbp-98]
mov edx,200
call qword ptr [7FFF900A87B8]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Rent(Int32)
mov [rbp-58],rax
mov rcx,[rbp-58]
mov ecx,[rcx+8]
mov [rbp-50],ecx
mov [rbp-88],rdi
mov [rbp-80],esi
lea rcx,[rbp-88]
lea r9,[rbp-58]
lea r8,[rbp-48]
mov rdx,[rbp+18]
call qword ptr [7FFF8FF9D588]; System.Text.Json.JsonDocument.Parse(System.ReadOnlySpan`1<Byte>, System.Text.Json.JsonReaderOptions, MetadataDb ByRef, StackRowStack ByRef)
nop
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L03
mov rcx,[rbp-98]
xor r8d,r8d
call qword ptr [7FFF900A87C0]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L03:
mov rcx,offset MT_System.Text.Json.JsonDocument
call CORINFO_HELP_NEWSFAST
mov rsi,rax
mov [rbp-90],rsi
vmovdqu xmm0,xmmword ptr [rbp-48]
vmovdqu xmmword ptr [rbp-78],xmm0
lea rdi,[rsi+20]
mov rcx,rdi
mov rdx,r15
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov [rdi+8],r12d
mov [rdi+0C],r13d
lea rdi,[rsi+30]
lea rsi,[rbp-78]
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov r15,[rbp-90]
lea rcx,[r15+8]
mov rdx,rbx
call CORINFO_HELP_ASSIGN_REF
lea rcx,[r15+10]
mov rdx,r14
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [r15+18],1
mov rax,r15
add rsp,88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
M02_L04:
lea rdx,[rbp-68]
mov rcx,r15
mov rax,[r15]
mov rax,[rax+40]
call qword ptr [rax+28]
mov rcx,[rbp-68]
mov esi,[rbp-60]
jmp near ptr M02_L00
M02_L05:
call qword ptr [7FFF8FDAD4E0]
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
lea rcx,[rbp-48]
call qword ptr [7FFF8FF9D0A8]; System.Text.Json.JsonDocument+MetadataDb.Dispose()
call CORINFO_HELP_RETHROW
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,28
vzeroupper
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+0C0]
mov rdx,[rbp-58]
xor ecx,ecx
mov [rbp-58],rcx
mov [rbp-50],ecx
test rdx,rdx
je short M02_L06
mov rcx,23303001F00
mov rcx,[rcx]
mov rsi,rcx
mov rcx,rsi
xor r8d,r8d
call qword ptr [7FFF900A87C0]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
M02_L06:
nop
add rsp,28
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
; Total bytes of code 657 ; System.Text.Json.JsonDocument.Dispose()
push rdi
push rsi
push rbx
sub rsp,30
mov rsi,rcx
mov edi,[rsi+2C]
test edi,edi
je short M03_L00
cmp byte ptr [rsi+18],0
jne short M03_L01
M03_L00:
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L01:
lea rbx,[rsi+30]
xor ecx,ecx
mov rdx,rcx
xchg rdx,[rbx]
test rdx,rdx
je short M03_L02
mov rcx,23303001F00
mov rcx,[rcx]
xor r8d,r8d
call qword ptr [7FFF900A87C0]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
xor edx,edx
mov [rbx+8],edx
M03_L02:
xor edx,edx
mov [rsi+20],rdx
mov [rsi+28],rdx
cmp qword ptr [rsi+8],0
je short M03_L05
add rsi,8
xor edx,edx
mov rbx,rdx
xchg rbx,[rsi]
test rbx,rbx
je short M03_L06
cmp [rbx+8],edi
jb short M03_L07
lea rcx,[rbx+10]
mov edx,edi
mov [rsp+28],rdx
test rdx,rdx
je short M03_L04
cmp rdx,300
ja short M03_L03
xor edx,edx
mov r8d,[rsp+28]
call CORINFO_HELP_MEMSET
jmp short M03_L04
M03_L03:
mov rdx,[rsp+28]
call qword ptr [7FFF8FB610D8]
M03_L04:
mov rcx,23303001F00
mov rcx,[rcx]
mov rdx,rbx
xor r8d,r8d
call qword ptr [7FFF900A87C0]; System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[[System.Byte, System.Private.CoreLib]].Return(Byte[], Boolean)
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L05:
cmp qword ptr [rsi+10],0
je short M03_L06
lea rcx,[rsi+10]
xor eax,eax
xchg rax,[rcx]
test rax,rax
je short M03_L06
mov rcx,rax
call qword ptr [7FFF900A8240]; System.Text.Json.PooledByteBufferWriter.Dispose()
M03_L06:
nop
add rsp,30
pop rbx
pop rsi
pop rdi
ret
M03_L07:
call qword ptr [7FFF8FDAD4E0]
int 3
; Total bytes of code 244 DocsProfiling workflow for dotnet/runtime repository Run Information
Improvements in System.Text.Json.Node.Tests.Perf_ParseThenWrite
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Node.Tests.Perf_ParseThenWrite*' PayloadsHistogramSystem.Text.Json.Node.Tests.Perf_ParseThenWrite.ParseThenWrite(IsDataIndented: True, TestCase: LotsOfStrings)
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Improvements in MicroBenchmarks.Serializers.Json_FromString<CollectionsOfPrimitives>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'MicroBenchmarks.Serializers.Json_FromString<CollectionsOfPrimitives>*' PayloadsHistogramMicroBenchmarks.Serializers.Json_FromString<CollectionsOfPrimitives>.SystemTextJson_SourceGen_
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository |
Run Information
Improvements in System.Text.Json.Tests.Perf_Depth
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md Payloadsgit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Tests.Perf_Depth*' PayloadsHistogramSystem.Text.Json.Tests.Perf_Depth.ReadSpanEmptyLoop(Depth: 512)
Description of detection logic
; System.Text.Json.Utf8JsonReader..ctor(System.ReadOnlySpan`1<Byte>, Boolean, System.Text.Json.JsonReaderState)
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,20
vzeroupper
vxorps xmm4,xmm4,xmm4
vmovdqu xmmword ptr [rsp+8],xmm4
xor eax,eax
mov [rsp+18],rax
mov rbx,rcx
mov r14d,r8d
mov rbp,r9
lea rdi,[rbx+30]
mov rsi,rdx
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov [rbx+24],r14b
mov byte ptr [rbx+25],0
mov rax,[rbp]
mov [rbx],rax
mov rax,[rbp+8]
mov [rbx+8],rax
movzx eax,byte ptr [rbp+10]
mov [rbx+26],al
movzx eax,byte ptr [rbp+11]
mov [rbx+27],al
movzx eax,byte ptr [rbp+12]
mov [rbx+2E],al
movzx eax,byte ptr [rbp+13]
mov [rbx+2C],al
movzx eax,byte ptr [rbp+14]
mov [rbx+28],al
movzx eax,byte ptr [rbp+15]
mov [rbx+29],al
mov rax,[rbp+18]
mov [rbx+40],rax
cmp dword ptr [rbx+40],0
jne short M01_L00
mov dword ptr [rbx+40],40
M01_L00:
lea rsi,[rbp+20]
lea rdi,[rbx+48]
call CORINFO_HELP_ASSIGN_BYREF
movsq
movsq
xor eax,eax
mov [rbx+20],eax
mov [rbx+18],rax
mov [rbx+10],rax
movzx eax,byte ptr [rbx+24]
mov [rbx+2A],al
mov byte ptr [rbx+2B],0
xor eax,eax
mov [rbx+98],rax
mov [rbx+0A0],rax
mov [rbx+70],rax
mov [rbx+78],rax
mov [rbx+60],rax
mov [rbx+68],rax
mov [rbx+80],rax
mov [rbx+88],rax
mov [rbx+90],rax
mov byte ptr [rbx+2D],0
mov rax,21E4D801F00
mov rax,[rax]
vmovdqu xmm0,xmmword ptr [rax+8]
vmovdqu xmmword ptr [rsp+8],xmm0
mov rdx,[rax+18]
mov [rsp+18],rdx
lea rdi,[rbx+0A8]
lea rsi,[rsp+8]
call CORINFO_HELP_ASSIGN_BYREF
call CORINFO_HELP_ASSIGN_BYREF
movsq
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
; Total bytes of code 305 ; System.Text.Json.Utf8JsonReader.ReadSingleSegment()
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,30
xor eax,eax
mov [rsp+20],rax
mov rsi,rcx
xor edi,edi
xor ecx,ecx
mov [rsi+98],rcx
mov [rsi+0A0],rcx
mov byte ptr [rsi+2E],0
mov ecx,[rsi+20]
movsxd rax,ecx
mov edx,[rsi+38]
cmp rax,rdx
jl short M02_L02
cmp byte ptr [rsi+27],0
je near ptr M02_L14
cmp byte ptr [rsi+24],0
je near ptr M02_L14
cmp byte ptr [rsi+2B],0
je short M02_L00
movzx ecx,byte ptr [rsi+2A]
test ecx,ecx
je near ptr M02_L14
M02_L00:
cmp dword ptr [rsi+58],0
jne near ptr M02_L16
cmp byte ptr [rsi+44],2
jne short M02_L01
movzx ecx,byte ptr [rsi+28]
cmp ecx,6
je near ptr M02_L14
M02_L01:
movzx ecx,byte ptr [rsi+28]
cmp ecx,4
je near ptr M02_L14
cmp ecx,2
jne near ptr M02_L17
jmp near ptr M02_L14
M02_L02:
lea rax,[rsi+30]
cmp ecx,[rax+8]
jae near ptr M02_L21
mov rax,[rax]
mov ecx,ecx
movzx edx,byte ptr [rax+rcx]
cmp edx,20
jg near ptr M02_L06
mov rcx,rsi
call qword ptr [7FFB33DBB468]
mov ecx,[rsi+20]
movsxd rdx,ecx
mov eax,[rsi+38]
cmp rdx,rax
jl short M02_L05
cmp byte ptr [rsi+27],0
je near ptr M02_L14
cmp byte ptr [rsi+24],0
je near ptr M02_L14
cmp byte ptr [rsi+2B],0
je short M02_L03
movzx ecx,byte ptr [rsi+2A]
test ecx,ecx
je near ptr M02_L14
M02_L03:
cmp dword ptr [rsi+58],0
jne near ptr M02_L18
cmp byte ptr [rsi+44],2
jne short M02_L04
movzx ecx,byte ptr [rsi+28]
cmp ecx,6
je near ptr M02_L14
M02_L04:
movzx ecx,byte ptr [rsi+28]
cmp ecx,4
je near ptr M02_L14
cmp ecx,2
jne near ptr M02_L19
jmp near ptr M02_L14
M02_L05:
lea rdx,[rsi+30]
cmp ecx,[rdx+8]
jae near ptr M02_L21
mov rdx,[rdx]
mov ecx,ecx
movzx edx,byte ptr [rdx+rcx]
M02_L06:
movsxd rcx,dword ptr [rsi+20]
mov [rsi+18],rcx
movzx ebx,byte ptr [rsi+28]
test ebx,ebx
je near ptr M02_L15
cmp edx,2F
jne short M02_L08
M02_L07:
mov rcx,rsi
call qword ptr [7FFB33DBB5E8]; System.Text.Json.Utf8JsonReader.ConsumeNextTokenOrRollback(Byte)
mov edi,eax
jmp short M02_L14
M02_L08:
cmp ebx,1
jne short M02_L10
cmp edx,7D
jne short M02_L09
mov rcx,rsi
call qword ptr [7FFB33DBB3A8]; System.Text.Json.Utf8JsonReader.EndObject()
jmp short M02_L13
M02_L09:
cmp edx,22
jne near ptr M02_L20
mov ebx,[rsi+20]
mov rbp,[rsi+8]
mov r14,[rsi]
mov rcx,rsi
call qword ptr [7FFB33DBB4F8]; System.Text.Json.Utf8JsonReader.ConsumePropertyName()
mov edi,eax
test edi,edi
jne short M02_L14
mov [rsi+20],ebx
mov byte ptr [rsi+28],1
mov [rsi+8],rbp
mov [rsi],r14
jmp short M02_L14
M02_L10:
cmp ebx,3
jne short M02_L12
cmp edx,5D
jne short M02_L11
mov rcx,rsi
call qword ptr [7FFB33DBB3D8]
jmp short M02_L13
M02_L11:
mov rcx,rsi
call qword ptr [7FFB33DBB480]; System.Text.Json.Utf8JsonReader.ConsumeValue(Byte)
mov edi,eax
jmp short M02_L14
M02_L12:
cmp ebx,5
jne short M02_L07
jmp short M02_L11
M02_L13:
mov edi,1
M02_L14:
mov eax,edi
add rsp,30
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
M02_L15:
mov rcx,rsi
call qword ptr [7FFB33DBB450]; System.Text.Json.Utf8JsonReader.ReadFirstToken(Byte)
mov edi,eax
jmp short M02_L14
M02_L16:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,19
xor r8d,r8d
call qword ptr [7FFB33D11378]
int 3
M02_L17:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,16
xor r8d,r8d
call qword ptr [7FFB33D11378]
int 3
M02_L18:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,19
xor r8d,r8d
call qword ptr [7FFB33D11378]
int 3
M02_L19:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,16
xor r8d,r8d
call qword ptr [7FFB33D11378]
int 3
M02_L20:
xor ecx,ecx
mov [rsp+20],rcx
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov r8d,edx
mov edx,0C
call qword ptr [7FFB33D11378]
int 3
M02_L21:
call CORINFO_HELP_RNGCHKFAIL
int 3
; Total bytes of code 687 Compare Jit Disasm; System.Text.Json.Tests.Perf_Depth.ReadSpanEmptyLoop()
sub rsp,128
vzeroupper
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rsp+20],xmm4
mov rax,0FFFFFFFFFFFFFF10
M00_L00:
vmovdqa xmmword ptr [rsp+rax+120],xmm4
vmovdqa xmmword ptr [rsp+rax+130],xmm4
vmovdqa xmmword ptr [rsp+rax+140],xmm4
add rax,30
jne short M00_L00
mov [rsp+120],rax
mov rdx,[rcx+8]
test rdx,rdx
je near ptr M00_L06
lea r9,[rdx+10]
mov r8d,[rdx+8]
M00_L01:
mov edx,[rcx+10]
test edx,edx
jl near ptr M00_L09
xor ecx,ecx
mov [rsp+30],rcx
mov [rsp+38],rcx
mov byte ptr [rsp+40],0
mov byte ptr [rsp+41],0
mov byte ptr [rsp+42],0
mov byte ptr [rsp+43],0
mov byte ptr [rsp+44],0
mov byte ptr [rsp+45],0
mov [rsp+48],edx
mov byte ptr [rsp+4C],0
mov byte ptr [rsp+4D],0
vxorps xmm0,xmm0,xmm0
vmovdqu xmmword ptr [rsp+50],xmm0
mov [rsp+60],rcx
mov [rsp+20],r9
mov [rsp+28],r8d
lea rdx,[rsp+20]
lea rcx,[rsp+68]
lea r9,[rsp+30]
mov r8d,1
call qword ptr [7FFF11E1B1F8]; System.Text.Json.Utf8JsonReader..ctor(System.ReadOnlySpan`1<Byte>, Boolean, System.Text.Json.JsonReaderState)
M00_L02:
cmp byte ptr [rsp+93],0
jne short M00_L07
lea rcx,[rsp+68]
call qword ptr [7FFF11E1B408]; System.Text.Json.Utf8JsonReader.ReadSingleSegment()
M00_L03:
movzx ecx,al
test ecx,ecx
jne short M00_L04
cmp byte ptr [rsp+8C],0
je short M00_L05
cmp byte ptr [rsp+90],0
je short M00_L08
M00_L04:
test ecx,ecx
jne short M00_L02
M00_L05:
add rsp,128
ret
M00_L06:
xor r9d,r9d
xor r8d,r8d
jmp near ptr M00_L01
M00_L07:
lea rcx,[rsp+68]
call qword ptr [7FFF11E1B7B0]
jmp short M00_L03
M00_L08:
xor r9d,r9d
mov [rsp+20],r9
xor r9d,r9d
mov [rsp+28],r9d
lea r9,[rsp+20]
lea rcx,[rsp+68]
mov edx,20
xor r8d,r8d
call qword ptr [7FFF11D71378]
int 3
M00_L09:
mov ecx,2C4E
mov rdx,7FFF11D1C0E0
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FFF11D71030]
int 3
; Total bytes of code 366 ; System.Text.Json.Utf8JsonReader..ctor(System.ReadOnlySpan`1<Byte>, Boolean, System.Text.Json.JsonReaderState)
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,20
vzeroupper
vxorps xmm4,xmm4,xmm4
vmovdqu xmmword ptr [rsp+8],xmm4
xor eax,eax
mov [rsp+18],rax
mov rbx,rcx
mov r14d,r8d
mov rbp,r9
lea rdi,[rbx+30]
mov rsi,rdx
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov [rbx+24],r14b
mov byte ptr [rbx+25],0
mov rax,[rbp]
mov [rbx],rax
mov rax,[rbp+8]
mov [rbx+8],rax
movzx eax,byte ptr [rbp+10]
mov [rbx+26],al
movzx eax,byte ptr [rbp+11]
mov [rbx+27],al
movzx eax,byte ptr [rbp+12]
mov [rbx+2E],al
movzx eax,byte ptr [rbp+13]
mov [rbx+2C],al
movzx eax,byte ptr [rbp+14]
mov [rbx+28],al
movzx eax,byte ptr [rbp+15]
mov [rbx+29],al
mov rax,[rbp+18]
mov [rbx+40],rax
cmp dword ptr [rbx+40],0
jne short M01_L00
mov dword ptr [rbx+40],40
M01_L00:
lea rsi,[rbp+20]
lea rdi,[rbx+48]
call CORINFO_HELP_ASSIGN_BYREF
movsq
movsq
xor eax,eax
mov [rbx+20],eax
mov [rbx+18],rax
mov [rbx+10],rax
movzx eax,byte ptr [rbx+24]
mov [rbx+2A],al
mov byte ptr [rbx+2B],0
xor eax,eax
mov [rbx+98],rax
mov [rbx+0A0],rax
mov [rbx+70],rax
mov [rbx+78],rax
mov [rbx+60],rax
mov [rbx+68],rax
mov [rbx+80],rax
mov [rbx+88],rax
mov [rbx+90],rax
mov byte ptr [rbx+2D],0
mov rax,2B827401F10
mov rax,[rax]
vmovdqu xmm0,xmmword ptr [rax+8]
vmovdqu xmmword ptr [rsp+8],xmm0
mov rdx,[rax+18]
mov [rsp+18],rdx
lea rdi,[rbx+0A8]
lea rsi,[rsp+8]
call CORINFO_HELP_ASSIGN_BYREF
call CORINFO_HELP_ASSIGN_BYREF
movsq
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
; Total bytes of code 305 ; System.Text.Json.Utf8JsonReader.ReadSingleSegment()
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,30
xor eax,eax
mov [rsp+20],rax
mov rsi,rcx
xor edi,edi
xor ecx,ecx
mov [rsi+98],rcx
mov [rsi+0A0],rcx
mov byte ptr [rsi+2E],0
mov ecx,[rsi+20]
movsxd rax,ecx
mov edx,[rsi+38]
cmp rax,rdx
jl short M02_L02
cmp byte ptr [rsi+27],0
je near ptr M02_L14
cmp byte ptr [rsi+24],0
je near ptr M02_L14
cmp byte ptr [rsi+2B],0
je short M02_L00
movzx ecx,byte ptr [rsi+2A]
test ecx,ecx
je near ptr M02_L14
M02_L00:
cmp dword ptr [rsi+58],0
jne near ptr M02_L16
cmp byte ptr [rsi+44],2
jne short M02_L01
movzx ecx,byte ptr [rsi+28]
cmp ecx,6
je near ptr M02_L14
M02_L01:
movzx ecx,byte ptr [rsi+28]
cmp ecx,4
je near ptr M02_L14
cmp ecx,2
jne near ptr M02_L17
jmp near ptr M02_L14
M02_L02:
lea rax,[rsi+30]
cmp ecx,[rax+8]
jae near ptr M02_L21
mov rax,[rax]
mov ecx,ecx
movzx edx,byte ptr [rax+rcx]
cmp edx,20
jg near ptr M02_L06
mov rcx,rsi
call qword ptr [7FFF11E1B468]
mov ecx,[rsi+20]
movsxd rdx,ecx
mov eax,[rsi+38]
cmp rdx,rax
jl short M02_L05
cmp byte ptr [rsi+27],0
je near ptr M02_L14
cmp byte ptr [rsi+24],0
je near ptr M02_L14
cmp byte ptr [rsi+2B],0
je short M02_L03
movzx ecx,byte ptr [rsi+2A]
test ecx,ecx
je near ptr M02_L14
M02_L03:
cmp dword ptr [rsi+58],0
jne near ptr M02_L18
cmp byte ptr [rsi+44],2
jne short M02_L04
movzx ecx,byte ptr [rsi+28]
cmp ecx,6
je near ptr M02_L14
M02_L04:
movzx ecx,byte ptr [rsi+28]
cmp ecx,4
je near ptr M02_L14
cmp ecx,2
jne near ptr M02_L19
jmp near ptr M02_L14
M02_L05:
lea rdx,[rsi+30]
cmp ecx,[rdx+8]
jae near ptr M02_L21
mov rdx,[rdx]
mov ecx,ecx
movzx edx,byte ptr [rdx+rcx]
M02_L06:
movsxd rcx,dword ptr [rsi+20]
mov [rsi+18],rcx
movzx ebx,byte ptr [rsi+28]
test ebx,ebx
je near ptr M02_L15
cmp edx,2F
jne short M02_L08
M02_L07:
mov rcx,rsi
call qword ptr [7FFF11E1B5E8]; System.Text.Json.Utf8JsonReader.ConsumeNextTokenOrRollback(Byte)
mov edi,eax
jmp short M02_L14
M02_L08:
cmp ebx,1
jne short M02_L10
cmp edx,7D
jne short M02_L09
mov rcx,rsi
call qword ptr [7FFF11E1B3A8]; System.Text.Json.Utf8JsonReader.EndObject()
jmp short M02_L13
M02_L09:
cmp edx,22
jne near ptr M02_L20
mov ebx,[rsi+20]
mov rbp,[rsi+8]
mov r14,[rsi]
mov rcx,rsi
call qword ptr [7FFF11E1B4F8]; System.Text.Json.Utf8JsonReader.ConsumePropertyName()
mov edi,eax
test edi,edi
jne short M02_L14
mov [rsi+20],ebx
mov byte ptr [rsi+28],1
mov [rsi+8],rbp
mov [rsi],r14
jmp short M02_L14
M02_L10:
cmp ebx,3
jne short M02_L12
cmp edx,5D
jne short M02_L11
mov rcx,rsi
call qword ptr [7FFF11E1B3D8]
jmp short M02_L13
M02_L11:
mov rcx,rsi
call qword ptr [7FFF11E1B480]; System.Text.Json.Utf8JsonReader.ConsumeValue(Byte)
mov edi,eax
jmp short M02_L14
M02_L12:
cmp ebx,5
jne short M02_L07
jmp short M02_L11
M02_L13:
mov edi,1
M02_L14:
mov eax,edi
add rsp,30
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
M02_L15:
mov rcx,rsi
call qword ptr [7FFF11E1B450]; System.Text.Json.Utf8JsonReader.ReadFirstToken(Byte)
mov edi,eax
jmp short M02_L14
M02_L16:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,19
xor r8d,r8d
call qword ptr [7FFF11D71378]
int 3
M02_L17:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,16
xor r8d,r8d
call qword ptr [7FFF11D71378]
int 3
M02_L18:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,19
xor r8d,r8d
call qword ptr [7FFF11D71378]
int 3
M02_L19:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,16
xor r8d,r8d
call qword ptr [7FFF11D71378]
int 3
M02_L20:
xor ecx,ecx
mov [rsp+20],rcx
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov r8d,edx
mov edx,0C
call qword ptr [7FFF11D71378]
int 3
M02_L21:
call CORINFO_HELP_RNGCHKFAIL
int 3
; Total bytes of code 687 System.Text.Json.Tests.Perf_Depth.ReadSpanEmptyLoop(Depth: 65)
Description of detection logic
; System.Text.Json.Utf8JsonReader..ctor(System.ReadOnlySpan`1<Byte>, Boolean, System.Text.Json.JsonReaderState)
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,20
vzeroupper
vxorps xmm4,xmm4,xmm4
vmovdqu xmmword ptr [rsp+8],xmm4
xor eax,eax
mov [rsp+18],rax
mov rbx,rcx
mov r14d,r8d
mov rbp,r9
lea rdi,[rbx+30]
mov rsi,rdx
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov [rbx+24],r14b
mov byte ptr [rbx+25],0
mov rax,[rbp]
mov [rbx],rax
mov rax,[rbp+8]
mov [rbx+8],rax
movzx eax,byte ptr [rbp+10]
mov [rbx+26],al
movzx eax,byte ptr [rbp+11]
mov [rbx+27],al
movzx eax,byte ptr [rbp+12]
mov [rbx+2E],al
movzx eax,byte ptr [rbp+13]
mov [rbx+2C],al
movzx eax,byte ptr [rbp+14]
mov [rbx+28],al
movzx eax,byte ptr [rbp+15]
mov [rbx+29],al
mov rax,[rbp+18]
mov [rbx+40],rax
cmp dword ptr [rbx+40],0
jne short M01_L00
mov dword ptr [rbx+40],40
M01_L00:
lea rsi,[rbp+20]
lea rdi,[rbx+48]
call CORINFO_HELP_ASSIGN_BYREF
movsq
movsq
xor eax,eax
mov [rbx+20],eax
mov [rbx+18],rax
mov [rbx+10],rax
movzx eax,byte ptr [rbx+24]
mov [rbx+2A],al
mov byte ptr [rbx+2B],0
xor eax,eax
mov [rbx+98],rax
mov [rbx+0A0],rax
mov [rbx+70],rax
mov [rbx+78],rax
mov [rbx+60],rax
mov [rbx+68],rax
mov [rbx+80],rax
mov [rbx+88],rax
mov [rbx+90],rax
mov byte ptr [rbx+2D],0
mov rax,1C830401F00
mov rax,[rax]
vmovdqu xmm0,xmmword ptr [rax+8]
vmovdqu xmmword ptr [rsp+8],xmm0
mov rdx,[rax+18]
mov [rsp+18],rdx
lea rdi,[rbx+0A8]
lea rsi,[rsp+8]
call CORINFO_HELP_ASSIGN_BYREF
call CORINFO_HELP_ASSIGN_BYREF
movsq
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
; Total bytes of code 305 ; System.Text.Json.Utf8JsonReader.ReadSingleSegment()
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,30
xor eax,eax
mov [rsp+20],rax
mov rsi,rcx
xor edi,edi
xor ecx,ecx
mov [rsi+98],rcx
mov [rsi+0A0],rcx
mov byte ptr [rsi+2E],0
mov ecx,[rsi+20]
movsxd rax,ecx
mov edx,[rsi+38]
cmp rax,rdx
jl short M02_L02
cmp byte ptr [rsi+27],0
je near ptr M02_L14
cmp byte ptr [rsi+24],0
je near ptr M02_L14
cmp byte ptr [rsi+2B],0
je short M02_L00
movzx ecx,byte ptr [rsi+2A]
test ecx,ecx
je near ptr M02_L14
M02_L00:
cmp dword ptr [rsi+58],0
jne near ptr M02_L16
cmp byte ptr [rsi+44],2
jne short M02_L01
movzx ecx,byte ptr [rsi+28]
cmp ecx,6
je near ptr M02_L14
M02_L01:
movzx ecx,byte ptr [rsi+28]
cmp ecx,4
je near ptr M02_L14
cmp ecx,2
jne near ptr M02_L17
jmp near ptr M02_L14
M02_L02:
lea rax,[rsi+30]
cmp ecx,[rax+8]
jae near ptr M02_L21
mov rax,[rax]
mov ecx,ecx
movzx edx,byte ptr [rax+rcx]
cmp edx,20
jg near ptr M02_L06
mov rcx,rsi
call qword ptr [7FFB33DAB468]
mov ecx,[rsi+20]
movsxd rdx,ecx
mov eax,[rsi+38]
cmp rdx,rax
jl short M02_L05
cmp byte ptr [rsi+27],0
je near ptr M02_L14
cmp byte ptr [rsi+24],0
je near ptr M02_L14
cmp byte ptr [rsi+2B],0
je short M02_L03
movzx ecx,byte ptr [rsi+2A]
test ecx,ecx
je near ptr M02_L14
M02_L03:
cmp dword ptr [rsi+58],0
jne near ptr M02_L18
cmp byte ptr [rsi+44],2
jne short M02_L04
movzx ecx,byte ptr [rsi+28]
cmp ecx,6
je near ptr M02_L14
M02_L04:
movzx ecx,byte ptr [rsi+28]
cmp ecx,4
je near ptr M02_L14
cmp ecx,2
jne near ptr M02_L19
jmp near ptr M02_L14
M02_L05:
lea rdx,[rsi+30]
cmp ecx,[rdx+8]
jae near ptr M02_L21
mov rdx,[rdx]
mov ecx,ecx
movzx edx,byte ptr [rdx+rcx]
M02_L06:
movsxd rcx,dword ptr [rsi+20]
mov [rsi+18],rcx
movzx ebx,byte ptr [rsi+28]
test ebx,ebx
je near ptr M02_L15
cmp edx,2F
jne short M02_L08
M02_L07:
mov rcx,rsi
call qword ptr [7FFB33DAB5E8]; System.Text.Json.Utf8JsonReader.ConsumeNextTokenOrRollback(Byte)
mov edi,eax
jmp short M02_L14
M02_L08:
cmp ebx,1
jne short M02_L10
cmp edx,7D
jne short M02_L09
mov rcx,rsi
call qword ptr [7FFB33DAB3A8]; System.Text.Json.Utf8JsonReader.EndObject()
jmp short M02_L13
M02_L09:
cmp edx,22
jne near ptr M02_L20
mov ebx,[rsi+20]
mov rbp,[rsi+8]
mov r14,[rsi]
mov rcx,rsi
call qword ptr [7FFB33DAB4F8]; System.Text.Json.Utf8JsonReader.ConsumePropertyName()
mov edi,eax
test edi,edi
jne short M02_L14
mov [rsi+20],ebx
mov byte ptr [rsi+28],1
mov [rsi+8],rbp
mov [rsi],r14
jmp short M02_L14
M02_L10:
cmp ebx,3
jne short M02_L12
cmp edx,5D
jne short M02_L11
mov rcx,rsi
call qword ptr [7FFB33DAB3D8]
jmp short M02_L13
M02_L11:
mov rcx,rsi
call qword ptr [7FFB33DAB480]; System.Text.Json.Utf8JsonReader.ConsumeValue(Byte)
mov edi,eax
jmp short M02_L14
M02_L12:
cmp ebx,5
jne short M02_L07
jmp short M02_L11
M02_L13:
mov edi,1
M02_L14:
mov eax,edi
add rsp,30
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
M02_L15:
mov rcx,rsi
call qword ptr [7FFB33DAB450]; System.Text.Json.Utf8JsonReader.ReadFirstToken(Byte)
mov edi,eax
jmp short M02_L14
M02_L16:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,19
xor r8d,r8d
call qword ptr [7FFB33D01378]
int 3
M02_L17:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,16
xor r8d,r8d
call qword ptr [7FFB33D01378]
int 3
M02_L18:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,19
xor r8d,r8d
call qword ptr [7FFB33D01378]
int 3
M02_L19:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,16
xor r8d,r8d
call qword ptr [7FFB33D01378]
int 3
M02_L20:
xor ecx,ecx
mov [rsp+20],rcx
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov r8d,edx
mov edx,0C
call qword ptr [7FFB33D01378]
int 3
M02_L21:
call CORINFO_HELP_RNGCHKFAIL
int 3
; Total bytes of code 687 Compare Jit Disasm; System.Text.Json.Tests.Perf_Depth.ReadSpanEmptyLoop()
sub rsp,128
vzeroupper
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rsp+20],xmm4
mov rax,0FFFFFFFFFFFFFF10
M00_L00:
vmovdqa xmmword ptr [rsp+rax+120],xmm4
vmovdqa xmmword ptr [rsp+rax+130],xmm4
vmovdqa xmmword ptr [rsp+rax+140],xmm4
add rax,30
jne short M00_L00
mov [rsp+120],rax
mov rdx,[rcx+8]
test rdx,rdx
je near ptr M00_L06
lea r9,[rdx+10]
mov r8d,[rdx+8]
M00_L01:
mov edx,[rcx+10]
test edx,edx
jl near ptr M00_L09
xor ecx,ecx
mov [rsp+30],rcx
mov [rsp+38],rcx
mov byte ptr [rsp+40],0
mov byte ptr [rsp+41],0
mov byte ptr [rsp+42],0
mov byte ptr [rsp+43],0
mov byte ptr [rsp+44],0
mov byte ptr [rsp+45],0
mov [rsp+48],edx
mov byte ptr [rsp+4C],0
mov byte ptr [rsp+4D],0
vxorps xmm0,xmm0,xmm0
vmovdqu xmmword ptr [rsp+50],xmm0
mov [rsp+60],rcx
mov [rsp+20],r9
mov [rsp+28],r8d
lea rdx,[rsp+20]
lea rcx,[rsp+68]
lea r9,[rsp+30]
mov r8d,1
call qword ptr [7FFF11E4B1F8]; System.Text.Json.Utf8JsonReader..ctor(System.ReadOnlySpan`1<Byte>, Boolean, System.Text.Json.JsonReaderState)
M00_L02:
cmp byte ptr [rsp+93],0
jne short M00_L07
lea rcx,[rsp+68]
call qword ptr [7FFF11E4B408]; System.Text.Json.Utf8JsonReader.ReadSingleSegment()
M00_L03:
movzx ecx,al
test ecx,ecx
jne short M00_L04
cmp byte ptr [rsp+8C],0
je short M00_L05
cmp byte ptr [rsp+90],0
je short M00_L08
M00_L04:
test ecx,ecx
jne short M00_L02
M00_L05:
add rsp,128
ret
M00_L06:
xor r9d,r9d
xor r8d,r8d
jmp near ptr M00_L01
M00_L07:
lea rcx,[rsp+68]
call qword ptr [7FFF11E4B7B0]
jmp short M00_L03
M00_L08:
xor r9d,r9d
mov [rsp+20],r9
xor r9d,r9d
mov [rsp+28],r9d
lea r9,[rsp+20]
lea rcx,[rsp+68]
mov edx,20
xor r8d,r8d
call qword ptr [7FFF11DA1378]
int 3
M00_L09:
mov ecx,2C4E
mov rdx,7FFF11D4C0E0
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FFF11DA1030]
int 3
; Total bytes of code 366 ; System.Text.Json.Utf8JsonReader..ctor(System.ReadOnlySpan`1<Byte>, Boolean, System.Text.Json.JsonReaderState)
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,20
vzeroupper
vxorps xmm4,xmm4,xmm4
vmovdqu xmmword ptr [rsp+8],xmm4
xor eax,eax
mov [rsp+18],rax
mov rbx,rcx
mov r14d,r8d
mov rbp,r9
lea rdi,[rbx+30]
mov rsi,rdx
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov [rbx+24],r14b
mov byte ptr [rbx+25],0
mov rax,[rbp]
mov [rbx],rax
mov rax,[rbp+8]
mov [rbx+8],rax
movzx eax,byte ptr [rbp+10]
mov [rbx+26],al
movzx eax,byte ptr [rbp+11]
mov [rbx+27],al
movzx eax,byte ptr [rbp+12]
mov [rbx+2E],al
movzx eax,byte ptr [rbp+13]
mov [rbx+2C],al
movzx eax,byte ptr [rbp+14]
mov [rbx+28],al
movzx eax,byte ptr [rbp+15]
mov [rbx+29],al
mov rax,[rbp+18]
mov [rbx+40],rax
cmp dword ptr [rbx+40],0
jne short M01_L00
mov dword ptr [rbx+40],40
M01_L00:
lea rsi,[rbp+20]
lea rdi,[rbx+48]
call CORINFO_HELP_ASSIGN_BYREF
movsq
movsq
xor eax,eax
mov [rbx+20],eax
mov [rbx+18],rax
mov [rbx+10],rax
movzx eax,byte ptr [rbx+24]
mov [rbx+2A],al
mov byte ptr [rbx+2B],0
xor eax,eax
mov [rbx+98],rax
mov [rbx+0A0],rax
mov [rbx+70],rax
mov [rbx+78],rax
mov [rbx+60],rax
mov [rbx+68],rax
mov [rbx+80],rax
mov [rbx+88],rax
mov [rbx+90],rax
mov byte ptr [rbx+2D],0
mov rax,210DC401F10
mov rax,[rax]
vmovdqu xmm0,xmmword ptr [rax+8]
vmovdqu xmmword ptr [rsp+8],xmm0
mov rdx,[rax+18]
mov [rsp+18],rdx
lea rdi,[rbx+0A8]
lea rsi,[rsp+8]
call CORINFO_HELP_ASSIGN_BYREF
call CORINFO_HELP_ASSIGN_BYREF
movsq
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
; Total bytes of code 305 ; System.Text.Json.Utf8JsonReader.ReadSingleSegment()
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,30
xor eax,eax
mov [rsp+20],rax
mov rsi,rcx
xor edi,edi
xor ecx,ecx
mov [rsi+98],rcx
mov [rsi+0A0],rcx
mov byte ptr [rsi+2E],0
mov ecx,[rsi+20]
movsxd rax,ecx
mov edx,[rsi+38]
cmp rax,rdx
jl short M02_L02
cmp byte ptr [rsi+27],0
je near ptr M02_L14
cmp byte ptr [rsi+24],0
je near ptr M02_L14
cmp byte ptr [rsi+2B],0
je short M02_L00
movzx ecx,byte ptr [rsi+2A]
test ecx,ecx
je near ptr M02_L14
M02_L00:
cmp dword ptr [rsi+58],0
jne near ptr M02_L16
cmp byte ptr [rsi+44],2
jne short M02_L01
movzx ecx,byte ptr [rsi+28]
cmp ecx,6
je near ptr M02_L14
M02_L01:
movzx ecx,byte ptr [rsi+28]
cmp ecx,4
je near ptr M02_L14
cmp ecx,2
jne near ptr M02_L17
jmp near ptr M02_L14
M02_L02:
lea rax,[rsi+30]
cmp ecx,[rax+8]
jae near ptr M02_L21
mov rax,[rax]
mov ecx,ecx
movzx edx,byte ptr [rax+rcx]
cmp edx,20
jg near ptr M02_L06
mov rcx,rsi
call qword ptr [7FFF11E4B468]
mov ecx,[rsi+20]
movsxd rdx,ecx
mov eax,[rsi+38]
cmp rdx,rax
jl short M02_L05
cmp byte ptr [rsi+27],0
je near ptr M02_L14
cmp byte ptr [rsi+24],0
je near ptr M02_L14
cmp byte ptr [rsi+2B],0
je short M02_L03
movzx ecx,byte ptr [rsi+2A]
test ecx,ecx
je near ptr M02_L14
M02_L03:
cmp dword ptr [rsi+58],0
jne near ptr M02_L18
cmp byte ptr [rsi+44],2
jne short M02_L04
movzx ecx,byte ptr [rsi+28]
cmp ecx,6
je near ptr M02_L14
M02_L04:
movzx ecx,byte ptr [rsi+28]
cmp ecx,4
je near ptr M02_L14
cmp ecx,2
jne near ptr M02_L19
jmp near ptr M02_L14
M02_L05:
lea rdx,[rsi+30]
cmp ecx,[rdx+8]
jae near ptr M02_L21
mov rdx,[rdx]
mov ecx,ecx
movzx edx,byte ptr [rdx+rcx]
M02_L06:
movsxd rcx,dword ptr [rsi+20]
mov [rsi+18],rcx
movzx ebx,byte ptr [rsi+28]
test ebx,ebx
je near ptr M02_L15
cmp edx,2F
jne short M02_L08
M02_L07:
mov rcx,rsi
call qword ptr [7FFF11E4B5E8]; System.Text.Json.Utf8JsonReader.ConsumeNextTokenOrRollback(Byte)
mov edi,eax
jmp short M02_L14
M02_L08:
cmp ebx,1
jne short M02_L10
cmp edx,7D
jne short M02_L09
mov rcx,rsi
call qword ptr [7FFF11E4B3A8]; System.Text.Json.Utf8JsonReader.EndObject()
jmp short M02_L13
M02_L09:
cmp edx,22
jne near ptr M02_L20
mov ebx,[rsi+20]
mov rbp,[rsi+8]
mov r14,[rsi]
mov rcx,rsi
call qword ptr [7FFF11E4B4F8]; System.Text.Json.Utf8JsonReader.ConsumePropertyName()
mov edi,eax
test edi,edi
jne short M02_L14
mov [rsi+20],ebx
mov byte ptr [rsi+28],1
mov [rsi+8],rbp
mov [rsi],r14
jmp short M02_L14
M02_L10:
cmp ebx,3
jne short M02_L12
cmp edx,5D
jne short M02_L11
mov rcx,rsi
call qword ptr [7FFF11E4B3D8]
jmp short M02_L13
M02_L11:
mov rcx,rsi
call qword ptr [7FFF11E4B480]; System.Text.Json.Utf8JsonReader.ConsumeValue(Byte)
mov edi,eax
jmp short M02_L14
M02_L12:
cmp ebx,5
jne short M02_L07
jmp short M02_L11
M02_L13:
mov edi,1
M02_L14:
mov eax,edi
add rsp,30
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
M02_L15:
mov rcx,rsi
call qword ptr [7FFF11E4B450]; System.Text.Json.Utf8JsonReader.ReadFirstToken(Byte)
mov edi,eax
jmp short M02_L14
M02_L16:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,19
xor r8d,r8d
call qword ptr [7FFF11DA1378]
int 3
M02_L17:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,16
xor r8d,r8d
call qword ptr [7FFF11DA1378]
int 3
M02_L18:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,19
xor r8d,r8d
call qword ptr [7FFF11DA1378]
int 3
M02_L19:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,16
xor r8d,r8d
call qword ptr [7FFF11DA1378]
int 3
M02_L20:
xor ecx,ecx
mov [rsp+20],rcx
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov r8d,edx
mov edx,0C
call qword ptr [7FFF11DA1378]
int 3
M02_L21:
call CORINFO_HELP_RNGCHKFAIL
int 3
; Total bytes of code 687 System.Text.Json.Tests.Perf_Depth.ReadSpanEmptyLoop(Depth: 1)
Description of detection logic
; System.Text.Json.Utf8JsonReader..ctor(System.ReadOnlySpan`1<Byte>, Boolean, System.Text.Json.JsonReaderState)
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,20
vzeroupper
vxorps xmm4,xmm4,xmm4
vmovdqu xmmword ptr [rsp+8],xmm4
xor eax,eax
mov [rsp+18],rax
mov rbx,rcx
mov r14d,r8d
mov rbp,r9
lea rdi,[rbx+30]
mov rsi,rdx
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov [rbx+24],r14b
mov byte ptr [rbx+25],0
mov rax,[rbp]
mov [rbx],rax
mov rax,[rbp+8]
mov [rbx+8],rax
movzx eax,byte ptr [rbp+10]
mov [rbx+26],al
movzx eax,byte ptr [rbp+11]
mov [rbx+27],al
movzx eax,byte ptr [rbp+12]
mov [rbx+2E],al
movzx eax,byte ptr [rbp+13]
mov [rbx+2C],al
movzx eax,byte ptr [rbp+14]
mov [rbx+28],al
movzx eax,byte ptr [rbp+15]
mov [rbx+29],al
mov rax,[rbp+18]
mov [rbx+40],rax
cmp dword ptr [rbx+40],0
jne short M01_L00
mov dword ptr [rbx+40],40
M01_L00:
lea rsi,[rbp+20]
lea rdi,[rbx+48]
call CORINFO_HELP_ASSIGN_BYREF
movsq
movsq
xor eax,eax
mov [rbx+20],eax
mov [rbx+18],rax
mov [rbx+10],rax
movzx eax,byte ptr [rbx+24]
mov [rbx+2A],al
mov byte ptr [rbx+2B],0
xor eax,eax
mov [rbx+98],rax
mov [rbx+0A0],rax
mov [rbx+70],rax
mov [rbx+78],rax
mov [rbx+60],rax
mov [rbx+68],rax
mov [rbx+80],rax
mov [rbx+88],rax
mov [rbx+90],rax
mov byte ptr [rbx+2D],0
mov rax,1A809401F00
mov rax,[rax]
vmovdqu xmm0,xmmword ptr [rax+8]
vmovdqu xmmword ptr [rsp+8],xmm0
mov rdx,[rax+18]
mov [rsp+18],rdx
lea rdi,[rbx+0A8]
lea rsi,[rsp+8]
call CORINFO_HELP_ASSIGN_BYREF
call CORINFO_HELP_ASSIGN_BYREF
movsq
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
; Total bytes of code 305 ; System.Text.Json.Utf8JsonReader.ReadSingleSegment()
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,30
xor eax,eax
mov [rsp+20],rax
mov rsi,rcx
xor edi,edi
xor ecx,ecx
mov [rsi+98],rcx
mov [rsi+0A0],rcx
mov byte ptr [rsi+2E],0
mov ecx,[rsi+20]
movsxd rax,ecx
mov edx,[rsi+38]
cmp rax,rdx
jl short M02_L02
cmp byte ptr [rsi+27],0
je near ptr M02_L14
cmp byte ptr [rsi+24],0
je near ptr M02_L14
cmp byte ptr [rsi+2B],0
je short M02_L00
movzx ecx,byte ptr [rsi+2A]
test ecx,ecx
je near ptr M02_L14
M02_L00:
cmp dword ptr [rsi+58],0
jne near ptr M02_L16
cmp byte ptr [rsi+44],2
jne short M02_L01
movzx ecx,byte ptr [rsi+28]
cmp ecx,6
je near ptr M02_L14
M02_L01:
movzx ecx,byte ptr [rsi+28]
cmp ecx,4
je near ptr M02_L14
cmp ecx,2
jne near ptr M02_L17
jmp near ptr M02_L14
M02_L02:
lea rax,[rsi+30]
cmp ecx,[rax+8]
jae near ptr M02_L21
mov rax,[rax]
mov ecx,ecx
movzx edx,byte ptr [rax+rcx]
cmp edx,20
jg near ptr M02_L06
mov rcx,rsi
call qword ptr [7FFB33D8B468]
mov ecx,[rsi+20]
movsxd rdx,ecx
mov eax,[rsi+38]
cmp rdx,rax
jl short M02_L05
cmp byte ptr [rsi+27],0
je near ptr M02_L14
cmp byte ptr [rsi+24],0
je near ptr M02_L14
cmp byte ptr [rsi+2B],0
je short M02_L03
movzx ecx,byte ptr [rsi+2A]
test ecx,ecx
je near ptr M02_L14
M02_L03:
cmp dword ptr [rsi+58],0
jne near ptr M02_L18
cmp byte ptr [rsi+44],2
jne short M02_L04
movzx ecx,byte ptr [rsi+28]
cmp ecx,6
je near ptr M02_L14
M02_L04:
movzx ecx,byte ptr [rsi+28]
cmp ecx,4
je near ptr M02_L14
cmp ecx,2
jne near ptr M02_L19
jmp near ptr M02_L14
M02_L05:
lea rdx,[rsi+30]
cmp ecx,[rdx+8]
jae near ptr M02_L21
mov rdx,[rdx]
mov ecx,ecx
movzx edx,byte ptr [rdx+rcx]
M02_L06:
movsxd rcx,dword ptr [rsi+20]
mov [rsi+18],rcx
movzx ebx,byte ptr [rsi+28]
test ebx,ebx
je near ptr M02_L15
cmp edx,2F
jne short M02_L08
M02_L07:
mov rcx,rsi
call qword ptr [7FFB33D8B5E8]; System.Text.Json.Utf8JsonReader.ConsumeNextTokenOrRollback(Byte)
mov edi,eax
jmp short M02_L14
M02_L08:
cmp ebx,1
jne short M02_L10
cmp edx,7D
jne short M02_L09
mov rcx,rsi
call qword ptr [7FFB33D8B3A8]; System.Text.Json.Utf8JsonReader.EndObject()
jmp short M02_L13
M02_L09:
cmp edx,22
jne near ptr M02_L20
mov ebx,[rsi+20]
mov rbp,[rsi+8]
mov r14,[rsi]
mov rcx,rsi
call qword ptr [7FFB33D8B4F8]; System.Text.Json.Utf8JsonReader.ConsumePropertyName()
mov edi,eax
test edi,edi
jne short M02_L14
mov [rsi+20],ebx
mov byte ptr [rsi+28],1
mov [rsi+8],rbp
mov [rsi],r14
jmp short M02_L14
M02_L10:
cmp ebx,3
jne short M02_L12
cmp edx,5D
jne short M02_L11
mov rcx,rsi
call qword ptr [7FFB33D8B3D8]
jmp short M02_L13
M02_L11:
mov rcx,rsi
call qword ptr [7FFB33D8B480]; System.Text.Json.Utf8JsonReader.ConsumeValue(Byte)
mov edi,eax
jmp short M02_L14
M02_L12:
cmp ebx,5
jne short M02_L07
jmp short M02_L11
M02_L13:
mov edi,1
M02_L14:
mov eax,edi
add rsp,30
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
M02_L15:
mov rcx,rsi
call qword ptr [7FFB33D8B450]; System.Text.Json.Utf8JsonReader.ReadFirstToken(Byte)
mov edi,eax
jmp short M02_L14
M02_L16:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,19
xor r8d,r8d
call qword ptr [7FFB33CE1378]
int 3
M02_L17:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,16
xor r8d,r8d
call qword ptr [7FFB33CE1378]
int 3
M02_L18:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,19
xor r8d,r8d
call qword ptr [7FFB33CE1378]
int 3
M02_L19:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,16
xor r8d,r8d
call qword ptr [7FFB33CE1378]
int 3
M02_L20:
xor ecx,ecx
mov [rsp+20],rcx
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov r8d,edx
mov edx,0C
call qword ptr [7FFB33CE1378]
int 3
M02_L21:
call CORINFO_HELP_RNGCHKFAIL
int 3
; Total bytes of code 687 Compare Jit Disasm; System.Text.Json.Tests.Perf_Depth.ReadSpanEmptyLoop()
sub rsp,128
vzeroupper
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rsp+20],xmm4
mov rax,0FFFFFFFFFFFFFF10
M00_L00:
vmovdqa xmmword ptr [rsp+rax+120],xmm4
vmovdqa xmmword ptr [rsp+rax+130],xmm4
vmovdqa xmmword ptr [rsp+rax+140],xmm4
add rax,30
jne short M00_L00
mov [rsp+120],rax
mov rdx,[rcx+8]
test rdx,rdx
je near ptr M00_L06
lea r9,[rdx+10]
mov r8d,[rdx+8]
M00_L01:
mov edx,[rcx+10]
test edx,edx
jl near ptr M00_L09
xor ecx,ecx
mov [rsp+30],rcx
mov [rsp+38],rcx
mov byte ptr [rsp+40],0
mov byte ptr [rsp+41],0
mov byte ptr [rsp+42],0
mov byte ptr [rsp+43],0
mov byte ptr [rsp+44],0
mov byte ptr [rsp+45],0
mov [rsp+48],edx
mov byte ptr [rsp+4C],0
mov byte ptr [rsp+4D],0
vxorps xmm0,xmm0,xmm0
vmovdqu xmmword ptr [rsp+50],xmm0
mov [rsp+60],rcx
mov [rsp+20],r9
mov [rsp+28],r8d
lea rdx,[rsp+20]
lea rcx,[rsp+68]
lea r9,[rsp+30]
mov r8d,1
call qword ptr [7FFF11F2B1F8]; System.Text.Json.Utf8JsonReader..ctor(System.ReadOnlySpan`1<Byte>, Boolean, System.Text.Json.JsonReaderState)
M00_L02:
cmp byte ptr [rsp+93],0
jne short M00_L07
lea rcx,[rsp+68]
call qword ptr [7FFF11F2B408]; System.Text.Json.Utf8JsonReader.ReadSingleSegment()
M00_L03:
movzx ecx,al
test ecx,ecx
jne short M00_L04
cmp byte ptr [rsp+8C],0
je short M00_L05
cmp byte ptr [rsp+90],0
je short M00_L08
M00_L04:
test ecx,ecx
jne short M00_L02
M00_L05:
add rsp,128
ret
M00_L06:
xor r9d,r9d
xor r8d,r8d
jmp near ptr M00_L01
M00_L07:
lea rcx,[rsp+68]
call qword ptr [7FFF11F2B7B0]
jmp short M00_L03
M00_L08:
xor r9d,r9d
mov [rsp+20],r9
xor r9d,r9d
mov [rsp+28],r9d
lea r9,[rsp+20]
lea rcx,[rsp+68]
mov edx,20
xor r8d,r8d
call qword ptr [7FFF11E81378]
int 3
M00_L09:
mov ecx,2C4E
mov rdx,7FFF11E2C0E0
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FFF11E81030]
int 3
; Total bytes of code 366 ; System.Text.Json.Utf8JsonReader..ctor(System.ReadOnlySpan`1<Byte>, Boolean, System.Text.Json.JsonReaderState)
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,20
vzeroupper
vxorps xmm4,xmm4,xmm4
vmovdqu xmmword ptr [rsp+8],xmm4
xor eax,eax
mov [rsp+18],rax
mov rbx,rcx
mov r14d,r8d
mov rbp,r9
lea rdi,[rbx+30]
mov rsi,rdx
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov [rbx+24],r14b
mov byte ptr [rbx+25],0
mov rax,[rbp]
mov [rbx],rax
mov rax,[rbp+8]
mov [rbx+8],rax
movzx eax,byte ptr [rbp+10]
mov [rbx+26],al
movzx eax,byte ptr [rbp+11]
mov [rbx+27],al
movzx eax,byte ptr [rbp+12]
mov [rbx+2E],al
movzx eax,byte ptr [rbp+13]
mov [rbx+2C],al
movzx eax,byte ptr [rbp+14]
mov [rbx+28],al
movzx eax,byte ptr [rbp+15]
mov [rbx+29],al
mov rax,[rbp+18]
mov [rbx+40],rax
cmp dword ptr [rbx+40],0
jne short M01_L00
mov dword ptr [rbx+40],40
M01_L00:
lea rsi,[rbp+20]
lea rdi,[rbx+48]
call CORINFO_HELP_ASSIGN_BYREF
movsq
movsq
xor eax,eax
mov [rbx+20],eax
mov [rbx+18],rax
mov [rbx+10],rax
movzx eax,byte ptr [rbx+24]
mov [rbx+2A],al
mov byte ptr [rbx+2B],0
xor eax,eax
mov [rbx+98],rax
mov [rbx+0A0],rax
mov [rbx+70],rax
mov [rbx+78],rax
mov [rbx+60],rax
mov [rbx+68],rax
mov [rbx+80],rax
mov [rbx+88],rax
mov [rbx+90],rax
mov byte ptr [rbx+2D],0
mov rax,21085401F10
mov rax,[rax]
vmovdqu xmm0,xmmword ptr [rax+8]
vmovdqu xmmword ptr [rsp+8],xmm0
mov rdx,[rax+18]
mov [rsp+18],rdx
lea rdi,[rbx+0A8]
lea rsi,[rsp+8]
call CORINFO_HELP_ASSIGN_BYREF
call CORINFO_HELP_ASSIGN_BYREF
movsq
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
; Total bytes of code 305 ; System.Text.Json.Utf8JsonReader.ReadSingleSegment()
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,30
xor eax,eax
mov [rsp+20],rax
mov rsi,rcx
xor edi,edi
xor ecx,ecx
mov [rsi+98],rcx
mov [rsi+0A0],rcx
mov byte ptr [rsi+2E],0
mov ecx,[rsi+20]
movsxd rax,ecx
mov edx,[rsi+38]
cmp rax,rdx
jl short M02_L02
cmp byte ptr [rsi+27],0
je near ptr M02_L14
cmp byte ptr [rsi+24],0
je near ptr M02_L14
cmp byte ptr [rsi+2B],0
je short M02_L00
movzx ecx,byte ptr [rsi+2A]
test ecx,ecx
je near ptr M02_L14
M02_L00:
cmp dword ptr [rsi+58],0
jne near ptr M02_L16
cmp byte ptr [rsi+44],2
jne short M02_L01
movzx ecx,byte ptr [rsi+28]
cmp ecx,6
je near ptr M02_L14
M02_L01:
movzx ecx,byte ptr [rsi+28]
cmp ecx,4
je near ptr M02_L14
cmp ecx,2
jne near ptr M02_L17
jmp near ptr M02_L14
M02_L02:
lea rax,[rsi+30]
cmp ecx,[rax+8]
jae near ptr M02_L21
mov rax,[rax]
mov ecx,ecx
movzx edx,byte ptr [rax+rcx]
cmp edx,20
jg near ptr M02_L06
mov rcx,rsi
call qword ptr [7FFF11F2B468]
mov ecx,[rsi+20]
movsxd rdx,ecx
mov eax,[rsi+38]
cmp rdx,rax
jl short M02_L05
cmp byte ptr [rsi+27],0
je near ptr M02_L14
cmp byte ptr [rsi+24],0
je near ptr M02_L14
cmp byte ptr [rsi+2B],0
je short M02_L03
movzx ecx,byte ptr [rsi+2A]
test ecx,ecx
je near ptr M02_L14
M02_L03:
cmp dword ptr [rsi+58],0
jne near ptr M02_L18
cmp byte ptr [rsi+44],2
jne short M02_L04
movzx ecx,byte ptr [rsi+28]
cmp ecx,6
je near ptr M02_L14
M02_L04:
movzx ecx,byte ptr [rsi+28]
cmp ecx,4
je near ptr M02_L14
cmp ecx,2
jne near ptr M02_L19
jmp near ptr M02_L14
M02_L05:
lea rdx,[rsi+30]
cmp ecx,[rdx+8]
jae near ptr M02_L21
mov rdx,[rdx]
mov ecx,ecx
movzx edx,byte ptr [rdx+rcx]
M02_L06:
movsxd rcx,dword ptr [rsi+20]
mov [rsi+18],rcx
movzx ebx,byte ptr [rsi+28]
test ebx,ebx
je near ptr M02_L15
cmp edx,2F
jne short M02_L08
M02_L07:
mov rcx,rsi
call qword ptr [7FFF11F2B5E8]; System.Text.Json.Utf8JsonReader.ConsumeNextTokenOrRollback(Byte)
mov edi,eax
jmp short M02_L14
M02_L08:
cmp ebx,1
jne short M02_L10
cmp edx,7D
jne short M02_L09
mov rcx,rsi
call qword ptr [7FFF11F2B3A8]; System.Text.Json.Utf8JsonReader.EndObject()
jmp short M02_L13
M02_L09:
cmp edx,22
jne near ptr M02_L20
mov ebx,[rsi+20]
mov rbp,[rsi+8]
mov r14,[rsi]
mov rcx,rsi
call qword ptr [7FFF11F2B4F8]; System.Text.Json.Utf8JsonReader.ConsumePropertyName()
mov edi,eax
test edi,edi
jne short M02_L14
mov [rsi+20],ebx
mov byte ptr [rsi+28],1
mov [rsi+8],rbp
mov [rsi],r14
jmp short M02_L14
M02_L10:
cmp ebx,3
jne short M02_L12
cmp edx,5D
jne short M02_L11
mov rcx,rsi
call qword ptr [7FFF11F2B3D8]
jmp short M02_L13
M02_L11:
mov rcx,rsi
call qword ptr [7FFF11F2B480]; System.Text.Json.Utf8JsonReader.ConsumeValue(Byte)
mov edi,eax
jmp short M02_L14
M02_L12:
cmp ebx,5
jne short M02_L07
jmp short M02_L11
M02_L13:
mov edi,1
M02_L14:
mov eax,edi
add rsp,30
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
M02_L15:
mov rcx,rsi
call qword ptr [7FFF11F2B450]; System.Text.Json.Utf8JsonReader.ReadFirstToken(Byte)
mov edi,eax
jmp short M02_L14
M02_L16:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,19
xor r8d,r8d
call qword ptr [7FFF11E81378]
int 3
M02_L17:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,16
xor r8d,r8d
call qword ptr [7FFF11E81378]
int 3
M02_L18:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,19
xor r8d,r8d
call qword ptr [7FFF11E81378]
int 3
M02_L19:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,16
xor r8d,r8d
call qword ptr [7FFF11E81378]
int 3
M02_L20:
xor ecx,ecx
mov [rsp+20],rcx
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov r8d,edx
mov edx,0C
call qword ptr [7FFF11E81378]
int 3
M02_L21:
call CORINFO_HELP_RNGCHKFAIL
int 3
; Total bytes of code 687 System.Text.Json.Tests.Perf_Depth.ReadSpanEmptyLoop(Depth: 64)
Description of detection logic
; System.Text.Json.Utf8JsonReader..ctor(System.ReadOnlySpan`1<Byte>, Boolean, System.Text.Json.JsonReaderState)
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,20
vzeroupper
vxorps xmm4,xmm4,xmm4
vmovdqu xmmword ptr [rsp+8],xmm4
xor eax,eax
mov [rsp+18],rax
mov rbx,rcx
mov r14d,r8d
mov rbp,r9
lea rdi,[rbx+30]
mov rsi,rdx
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov [rbx+24],r14b
mov byte ptr [rbx+25],0
mov rax,[rbp]
mov [rbx],rax
mov rax,[rbp+8]
mov [rbx+8],rax
movzx eax,byte ptr [rbp+10]
mov [rbx+26],al
movzx eax,byte ptr [rbp+11]
mov [rbx+27],al
movzx eax,byte ptr [rbp+12]
mov [rbx+2E],al
movzx eax,byte ptr [rbp+13]
mov [rbx+2C],al
movzx eax,byte ptr [rbp+14]
mov [rbx+28],al
movzx eax,byte ptr [rbp+15]
mov [rbx+29],al
mov rax,[rbp+18]
mov [rbx+40],rax
cmp dword ptr [rbx+40],0
jne short M01_L00
mov dword ptr [rbx+40],40
M01_L00:
lea rsi,[rbp+20]
lea rdi,[rbx+48]
call CORINFO_HELP_ASSIGN_BYREF
movsq
movsq
xor eax,eax
mov [rbx+20],eax
mov [rbx+18],rax
mov [rbx+10],rax
movzx eax,byte ptr [rbx+24]
mov [rbx+2A],al
mov byte ptr [rbx+2B],0
xor eax,eax
mov [rbx+98],rax
mov [rbx+0A0],rax
mov [rbx+70],rax
mov [rbx+78],rax
mov [rbx+60],rax
mov [rbx+68],rax
mov [rbx+80],rax
mov [rbx+88],rax
mov [rbx+90],rax
mov byte ptr [rbx+2D],0
mov rax,1A604001F00
mov rax,[rax]
vmovdqu xmm0,xmmword ptr [rax+8]
vmovdqu xmmword ptr [rsp+8],xmm0
mov rdx,[rax+18]
mov [rsp+18],rdx
lea rdi,[rbx+0A8]
lea rsi,[rsp+8]
call CORINFO_HELP_ASSIGN_BYREF
call CORINFO_HELP_ASSIGN_BYREF
movsq
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
; Total bytes of code 305 ; System.Text.Json.Utf8JsonReader.ReadSingleSegment()
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,30
xor eax,eax
mov [rsp+20],rax
mov rsi,rcx
xor edi,edi
xor ecx,ecx
mov [rsi+98],rcx
mov [rsi+0A0],rcx
mov byte ptr [rsi+2E],0
mov ecx,[rsi+20]
movsxd rax,ecx
mov edx,[rsi+38]
cmp rax,rdx
jl short M02_L02
cmp byte ptr [rsi+27],0
je near ptr M02_L14
cmp byte ptr [rsi+24],0
je near ptr M02_L14
cmp byte ptr [rsi+2B],0
je short M02_L00
movzx ecx,byte ptr [rsi+2A]
test ecx,ecx
je near ptr M02_L14
M02_L00:
cmp dword ptr [rsi+58],0
jne near ptr M02_L16
cmp byte ptr [rsi+44],2
jne short M02_L01
movzx ecx,byte ptr [rsi+28]
cmp ecx,6
je near ptr M02_L14
M02_L01:
movzx ecx,byte ptr [rsi+28]
cmp ecx,4
je near ptr M02_L14
cmp ecx,2
jne near ptr M02_L17
jmp near ptr M02_L14
M02_L02:
lea rax,[rsi+30]
cmp ecx,[rax+8]
jae near ptr M02_L21
mov rax,[rax]
mov ecx,ecx
movzx edx,byte ptr [rax+rcx]
cmp edx,20
jg near ptr M02_L06
mov rcx,rsi
call qword ptr [7FFB33DAB468]
mov ecx,[rsi+20]
movsxd rdx,ecx
mov eax,[rsi+38]
cmp rdx,rax
jl short M02_L05
cmp byte ptr [rsi+27],0
je near ptr M02_L14
cmp byte ptr [rsi+24],0
je near ptr M02_L14
cmp byte ptr [rsi+2B],0
je short M02_L03
movzx ecx,byte ptr [rsi+2A]
test ecx,ecx
je near ptr M02_L14
M02_L03:
cmp dword ptr [rsi+58],0
jne near ptr M02_L18
cmp byte ptr [rsi+44],2
jne short M02_L04
movzx ecx,byte ptr [rsi+28]
cmp ecx,6
je near ptr M02_L14
M02_L04:
movzx ecx,byte ptr [rsi+28]
cmp ecx,4
je near ptr M02_L14
cmp ecx,2
jne near ptr M02_L19
jmp near ptr M02_L14
M02_L05:
lea rdx,[rsi+30]
cmp ecx,[rdx+8]
jae near ptr M02_L21
mov rdx,[rdx]
mov ecx,ecx
movzx edx,byte ptr [rdx+rcx]
M02_L06:
movsxd rcx,dword ptr [rsi+20]
mov [rsi+18],rcx
movzx ebx,byte ptr [rsi+28]
test ebx,ebx
je near ptr M02_L15
cmp edx,2F
jne short M02_L08
M02_L07:
mov rcx,rsi
call qword ptr [7FFB33DAB5E8]; System.Text.Json.Utf8JsonReader.ConsumeNextTokenOrRollback(Byte)
mov edi,eax
jmp short M02_L14
M02_L08:
cmp ebx,1
jne short M02_L10
cmp edx,7D
jne short M02_L09
mov rcx,rsi
call qword ptr [7FFB33DAB3A8]; System.Text.Json.Utf8JsonReader.EndObject()
jmp short M02_L13
M02_L09:
cmp edx,22
jne near ptr M02_L20
mov ebx,[rsi+20]
mov rbp,[rsi+8]
mov r14,[rsi]
mov rcx,rsi
call qword ptr [7FFB33DAB4F8]; System.Text.Json.Utf8JsonReader.ConsumePropertyName()
mov edi,eax
test edi,edi
jne short M02_L14
mov [rsi+20],ebx
mov byte ptr [rsi+28],1
mov [rsi+8],rbp
mov [rsi],r14
jmp short M02_L14
M02_L10:
cmp ebx,3
jne short M02_L12
cmp edx,5D
jne short M02_L11
mov rcx,rsi
call qword ptr [7FFB33DAB3D8]
jmp short M02_L13
M02_L11:
mov rcx,rsi
call qword ptr [7FFB33DAB480]; System.Text.Json.Utf8JsonReader.ConsumeValue(Byte)
mov edi,eax
jmp short M02_L14
M02_L12:
cmp ebx,5
jne short M02_L07
jmp short M02_L11
M02_L13:
mov edi,1
M02_L14:
mov eax,edi
add rsp,30
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
M02_L15:
mov rcx,rsi
call qword ptr [7FFB33DAB450]; System.Text.Json.Utf8JsonReader.ReadFirstToken(Byte)
mov edi,eax
jmp short M02_L14
M02_L16:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,19
xor r8d,r8d
call qword ptr [7FFB33D01378]
int 3
M02_L17:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,16
xor r8d,r8d
call qword ptr [7FFB33D01378]
int 3
M02_L18:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,19
xor r8d,r8d
call qword ptr [7FFB33D01378]
int 3
M02_L19:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,16
xor r8d,r8d
call qword ptr [7FFB33D01378]
int 3
M02_L20:
xor ecx,ecx
mov [rsp+20],rcx
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov r8d,edx
mov edx,0C
call qword ptr [7FFB33D01378]
int 3
M02_L21:
call CORINFO_HELP_RNGCHKFAIL
int 3
; Total bytes of code 687 Compare Jit Disasm; System.Text.Json.Tests.Perf_Depth.ReadSpanEmptyLoop()
sub rsp,128
vzeroupper
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rsp+20],xmm4
mov rax,0FFFFFFFFFFFFFF10
M00_L00:
vmovdqa xmmword ptr [rsp+rax+120],xmm4
vmovdqa xmmword ptr [rsp+rax+130],xmm4
vmovdqa xmmword ptr [rsp+rax+140],xmm4
add rax,30
jne short M00_L00
mov [rsp+120],rax
mov rdx,[rcx+8]
test rdx,rdx
je near ptr M00_L06
lea r9,[rdx+10]
mov r8d,[rdx+8]
M00_L01:
mov edx,[rcx+10]
test edx,edx
jl near ptr M00_L09
xor ecx,ecx
mov [rsp+30],rcx
mov [rsp+38],rcx
mov byte ptr [rsp+40],0
mov byte ptr [rsp+41],0
mov byte ptr [rsp+42],0
mov byte ptr [rsp+43],0
mov byte ptr [rsp+44],0
mov byte ptr [rsp+45],0
mov [rsp+48],edx
mov byte ptr [rsp+4C],0
mov byte ptr [rsp+4D],0
vxorps xmm0,xmm0,xmm0
vmovdqu xmmword ptr [rsp+50],xmm0
mov [rsp+60],rcx
mov [rsp+20],r9
mov [rsp+28],r8d
lea rdx,[rsp+20]
lea rcx,[rsp+68]
lea r9,[rsp+30]
mov r8d,1
call qword ptr [7FFF11E4B1F8]; System.Text.Json.Utf8JsonReader..ctor(System.ReadOnlySpan`1<Byte>, Boolean, System.Text.Json.JsonReaderState)
M00_L02:
cmp byte ptr [rsp+93],0
jne short M00_L07
lea rcx,[rsp+68]
call qword ptr [7FFF11E4B408]; System.Text.Json.Utf8JsonReader.ReadSingleSegment()
M00_L03:
movzx ecx,al
test ecx,ecx
jne short M00_L04
cmp byte ptr [rsp+8C],0
je short M00_L05
cmp byte ptr [rsp+90],0
je short M00_L08
M00_L04:
test ecx,ecx
jne short M00_L02
M00_L05:
add rsp,128
ret
M00_L06:
xor r9d,r9d
xor r8d,r8d
jmp near ptr M00_L01
M00_L07:
lea rcx,[rsp+68]
call qword ptr [7FFF11E4B7B0]
jmp short M00_L03
M00_L08:
xor r9d,r9d
mov [rsp+20],r9
xor r9d,r9d
mov [rsp+28],r9d
lea r9,[rsp+20]
lea rcx,[rsp+68]
mov edx,20
xor r8d,r8d
call qword ptr [7FFF11DA1378]
int 3
M00_L09:
mov ecx,2C4E
mov rdx,7FFF11D4C0E0
call CORINFO_HELP_STRCNS
mov rcx,rax
call qword ptr [7FFF11DA1030]
int 3
; Total bytes of code 366 ; System.Text.Json.Utf8JsonReader..ctor(System.ReadOnlySpan`1<Byte>, Boolean, System.Text.Json.JsonReaderState)
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,20
vzeroupper
vxorps xmm4,xmm4,xmm4
vmovdqu xmmword ptr [rsp+8],xmm4
xor eax,eax
mov [rsp+18],rax
mov rbx,rcx
mov r14d,r8d
mov rbp,r9
lea rdi,[rbx+30]
mov rsi,rdx
call CORINFO_HELP_ASSIGN_BYREF
movsq
mov [rbx+24],r14b
mov byte ptr [rbx+25],0
mov rax,[rbp]
mov [rbx],rax
mov rax,[rbp+8]
mov [rbx+8],rax
movzx eax,byte ptr [rbp+10]
mov [rbx+26],al
movzx eax,byte ptr [rbp+11]
mov [rbx+27],al
movzx eax,byte ptr [rbp+12]
mov [rbx+2E],al
movzx eax,byte ptr [rbp+13]
mov [rbx+2C],al
movzx eax,byte ptr [rbp+14]
mov [rbx+28],al
movzx eax,byte ptr [rbp+15]
mov [rbx+29],al
mov rax,[rbp+18]
mov [rbx+40],rax
cmp dword ptr [rbx+40],0
jne short M01_L00
mov dword ptr [rbx+40],40
M01_L00:
lea rsi,[rbp+20]
lea rdi,[rbx+48]
call CORINFO_HELP_ASSIGN_BYREF
movsq
movsq
xor eax,eax
mov [rbx+20],eax
mov [rbx+18],rax
mov [rbx+10],rax
movzx eax,byte ptr [rbx+24]
mov [rbx+2A],al
mov byte ptr [rbx+2B],0
xor eax,eax
mov [rbx+98],rax
mov [rbx+0A0],rax
mov [rbx+70],rax
mov [rbx+78],rax
mov [rbx+60],rax
mov [rbx+68],rax
mov [rbx+80],rax
mov [rbx+88],rax
mov [rbx+90],rax
mov byte ptr [rbx+2D],0
mov rax,1F61E401F10
mov rax,[rax]
vmovdqu xmm0,xmmword ptr [rax+8]
vmovdqu xmmword ptr [rsp+8],xmm0
mov rdx,[rax+18]
mov [rsp+18],rdx
lea rdi,[rbx+0A8]
lea rsi,[rsp+8]
call CORINFO_HELP_ASSIGN_BYREF
call CORINFO_HELP_ASSIGN_BYREF
movsq
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
; Total bytes of code 305 ; System.Text.Json.Utf8JsonReader.ReadSingleSegment()
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,30
xor eax,eax
mov [rsp+20],rax
mov rsi,rcx
xor edi,edi
xor ecx,ecx
mov [rsi+98],rcx
mov [rsi+0A0],rcx
mov byte ptr [rsi+2E],0
mov ecx,[rsi+20]
movsxd rax,ecx
mov edx,[rsi+38]
cmp rax,rdx
jl short M02_L02
cmp byte ptr [rsi+27],0
je near ptr M02_L14
cmp byte ptr [rsi+24],0
je near ptr M02_L14
cmp byte ptr [rsi+2B],0
je short M02_L00
movzx ecx,byte ptr [rsi+2A]
test ecx,ecx
je near ptr M02_L14
M02_L00:
cmp dword ptr [rsi+58],0
jne near ptr M02_L16
cmp byte ptr [rsi+44],2
jne short M02_L01
movzx ecx,byte ptr [rsi+28]
cmp ecx,6
je near ptr M02_L14
M02_L01:
movzx ecx,byte ptr [rsi+28]
cmp ecx,4
je near ptr M02_L14
cmp ecx,2
jne near ptr M02_L17
jmp near ptr M02_L14
M02_L02:
lea rax,[rsi+30]
cmp ecx,[rax+8]
jae near ptr M02_L21
mov rax,[rax]
mov ecx,ecx
movzx edx,byte ptr [rax+rcx]
cmp edx,20
jg near ptr M02_L06
mov rcx,rsi
call qword ptr [7FFF11E4B468]
mov ecx,[rsi+20]
movsxd rdx,ecx
mov eax,[rsi+38]
cmp rdx,rax
jl short M02_L05
cmp byte ptr [rsi+27],0
je near ptr M02_L14
cmp byte ptr [rsi+24],0
je near ptr M02_L14
cmp byte ptr [rsi+2B],0
je short M02_L03
movzx ecx,byte ptr [rsi+2A]
test ecx,ecx
je near ptr M02_L14
M02_L03:
cmp dword ptr [rsi+58],0
jne near ptr M02_L18
cmp byte ptr [rsi+44],2
jne short M02_L04
movzx ecx,byte ptr [rsi+28]
cmp ecx,6
je near ptr M02_L14
M02_L04:
movzx ecx,byte ptr [rsi+28]
cmp ecx,4
je near ptr M02_L14
cmp ecx,2
jne near ptr M02_L19
jmp near ptr M02_L14
M02_L05:
lea rdx,[rsi+30]
cmp ecx,[rdx+8]
jae near ptr M02_L21
mov rdx,[rdx]
mov ecx,ecx
movzx edx,byte ptr [rdx+rcx]
M02_L06:
movsxd rcx,dword ptr [rsi+20]
mov [rsi+18],rcx
movzx ebx,byte ptr [rsi+28]
test ebx,ebx
je near ptr M02_L15
cmp edx,2F
jne short M02_L08
M02_L07:
mov rcx,rsi
call qword ptr [7FFF11E4B5E8]; System.Text.Json.Utf8JsonReader.ConsumeNextTokenOrRollback(Byte)
mov edi,eax
jmp short M02_L14
M02_L08:
cmp ebx,1
jne short M02_L10
cmp edx,7D
jne short M02_L09
mov rcx,rsi
call qword ptr [7FFF11E4B3A8]; System.Text.Json.Utf8JsonReader.EndObject()
jmp short M02_L13
M02_L09:
cmp edx,22
jne near ptr M02_L20
mov ebx,[rsi+20]
mov rbp,[rsi+8]
mov r14,[rsi]
mov rcx,rsi
call qword ptr [7FFF11E4B4F8]; System.Text.Json.Utf8JsonReader.ConsumePropertyName()
mov edi,eax
test edi,edi
jne short M02_L14
mov [rsi+20],ebx
mov byte ptr [rsi+28],1
mov [rsi+8],rbp
mov [rsi],r14
jmp short M02_L14
M02_L10:
cmp ebx,3
jne short M02_L12
cmp edx,5D
jne short M02_L11
mov rcx,rsi
call qword ptr [7FFF11E4B3D8]
jmp short M02_L13
M02_L11:
mov rcx,rsi
call qword ptr [7FFF11E4B480]; System.Text.Json.Utf8JsonReader.ConsumeValue(Byte)
mov edi,eax
jmp short M02_L14
M02_L12:
cmp ebx,5
jne short M02_L07
jmp short M02_L11
M02_L13:
mov edi,1
M02_L14:
mov eax,edi
add rsp,30
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
M02_L15:
mov rcx,rsi
call qword ptr [7FFF11E4B450]; System.Text.Json.Utf8JsonReader.ReadFirstToken(Byte)
mov edi,eax
jmp short M02_L14
M02_L16:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,19
xor r8d,r8d
call qword ptr [7FFF11DA1378]
int 3
M02_L17:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,16
xor r8d,r8d
call qword ptr [7FFF11DA1378]
int 3
M02_L18:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,19
xor r8d,r8d
call qword ptr [7FFF11DA1378]
int 3
M02_L19:
xor edi,edi
mov [rsp+20],rdi
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov edx,16
xor r8d,r8d
call qword ptr [7FFF11DA1378]
int 3
M02_L20:
xor ecx,ecx
mov [rsp+20],rcx
xor ecx,ecx
mov [rsp+28],ecx
mov rcx,rsi
lea r9,[rsp+20]
mov r8d,edx
mov edx,0C
call qword ptr [7FFF11DA1378]
int 3
M02_L21:
call CORINFO_HELP_RNGCHKFAIL
int 3
; Total bytes of code 687 DocsProfiling workflow for dotnet/runtime repository |
No description provided.
The text was updated successfully, but these errors were encountered: