-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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: 188 Regressions from GC changes #74014
Comments
Run Information
Regressions in System.Reflection.Activator<EmptyClass>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Reflection.Activator<EmptyClass>*' PayloadsHistogramSystem.Reflection.Activator<EmptyClass>.CreateInstanceType
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository
Regressions in System.Tests.Perf_Type
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_Type*' PayloadsHistogramSystem.Tests.Perf_Type.GetTypeFromHandle
Description of detection logic
Compare Jit Disasm; System.Tests.Perf_Type.GetTypeFromHandle()
mov rax,[rcx+18]
ret
; Total bytes of code 5 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in Microsoft.Extensions.Primitives.StringSegmentBenchmark
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'Microsoft.Extensions.Primitives.StringSegmentBenchmark*' PayloadsHistogramMicrosoft.Extensions.Primitives.StringSegmentBenchmark.SubString
Description of detection logic
; System.String.Substring(Int32, Int32)
push rdi
push rsi
push rbx
sub rsp,20
mov rdi,rcx
mov esi,edx
test esi,esi
jl near ptr 000000000000FC61
mov ecx,[rdi+8]
cmp ecx,esi
jl near ptr 000000000000FCBE
test r8d,r8d
jl near ptr 000000000000FD1B
mov eax,ecx
sub eax,r8d
cmp eax,esi
jl near ptr 000000000000FD78
test r8d,r8d
je short 000000000000FC4C
test esi,esi
je short 000000000000FC3C
mov ecx,r8d
call 0
mov rbx,rax
mov r8d,[rbx+8]
lea rcx,[rbx+0C]
mov edx,esi
lea rdx,[rdi+rdx*2+0C]
add r8,r8
call qword ptr [0BE10]
mov rax,rbx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
cmp ecx,r8d
jne short 000000000000FC0E
mov rax,rdi
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rax,1C360002028
mov rax,[rax]
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,163D
mov rdx,7FF861BE4000
call 00000000000014A0
mov rdi,rax
mov ecx,0A50B
mov rdx,7FF861BE4000
call 00000000000014A0
mov rcx,rax
call qword ptr [9030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,163D
mov rdx,7FF861BE4000
call 00000000000014A0
mov rdi,rax
mov ecx,0A547
mov rdx,7FF861BE4000
call 00000000000014A0
mov rcx,rax
call qword ptr [9030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,57
mov rdx,7FF861BE4000
call 00000000000014A0
mov rdi,rax
mov ecx,0A1CF
mov rdx,7FF861BE4000
call 00000000000014A0
mov rcx,rax
call qword ptr [9030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,57
mov rdx,7FF861BE4000
call 00000000000014A0
mov rdi,rax
mov ecx,9B73
mov rdx,7FF861BE4000
call 00000000000014A0
mov rcx,rax
call qword ptr [9030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
int 3
; Total bytes of code 518 Compare Jit Disasm; Microsoft.Extensions.Primitives.StringSegmentBenchmark.SubString()
push rdi
push rsi
push rbx
sub rsp,20
add rcx,18
mov rsi,[rcx]
test rsi,rsi
je short 000000000000FB19
cmp dword ptr [rcx+0C],5
jb short 000000000000FB19
mov edi,[rcx+8]
add edi,3
mov ecx,[rsi+8]
mov eax,ecx
mov edx,edi
add rdx,2
cmp rax,rdx
jb short 000000000000FB31
cmp ecx,2
jne short 000000000000FAE9
mov rax,rsi
jmp short 000000000000FB11
mov ecx,2
call 0
mov rbx,rax
mov r8d,[rbx+8]
lea rcx,[rbx+0C]
mov edx,edi
lea rdx,[rsi+rdx*2+0C]
add r8,r8
call qword ptr [0BE10]
mov rax,rbx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov edx,3
mov r8d,2
mov r9d,1
call qword ptr [0B5E8]
int 3
mov rcx,rsi
mov edx,edi
mov r8d,2
call qword ptr [3378]
int 3
; Total bytes of code 147 ; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
push rdi
push rsi
vzeroupper
mov rax,rcx
sub rax,rdx
cmp rax,r8
jb near ptr 000000000000FA5B
mov rax,rdx
sub rax,rcx
cmp rax,r8
jb near ptr 000000000000FA5B
lea rsi,[rdx+r8]
lea rdi,[rcx+r8]
cmp r8,10
jbe short 000000000000F996
cmp r8,40
ja short 000000000000F9C2
vmovupd xmm0,[rdx]
vmovupd [rcx],xmm0
cmp r8,20
ja near ptr 000000000000FA18
vmovupd xmm0,[rsi+0FFF0]
vmovupd [rdi+0FFF0],xmm0
pop rsi
pop rdi
ret
test r8b,18
jne short 000000000000FA05
test r8b,4
jne near ptr 000000000000FA3B
test r8,r8
je short 000000000000F993
movzx edx,byte ptr [rdx]
mov [rcx],dl
test r8b,2
je short 000000000000F993
movsx r8,word ptr [rsi+0FFFE]
mov [rdi+0FFFE],r8w
jmp short 000000000000F993
cmp r8,800
ja near ptr 000000000000FA64
mov rax,r8
shr rax,6
vmovdqu ymm0,ymmword ptr [rdx]
vmovdqu ymmword ptr [rcx],ymm0
vmovdqu ymm0,ymmword ptr [rdx+20]
vmovdqu ymmword ptr [rcx+20],ymm0
add rcx,40
add rdx,40
dec rax
jne short 000000000000F9D6
and r8,3F
cmp r8,10
ja near ptr 000000000000F977
jmp short 000000000000FA4C
mov r8,[rdx]
mov [rcx],r8
mov rdx,[rsi+0FFF8]
mov [rdi+0FFF8],rdx
jmp near ptr 000000000000F993
vmovupd xmm0,[rdx+10]
vmovupd [rcx+10],xmm0
cmp r8,30
jbe near ptr 000000000000F989
vmovupd xmm0,[rdx+20]
vmovupd [rcx+20],xmm0
jmp near ptr 000000000000F989
mov r8d,[rdx]
mov [rcx],r8d
mov edx,[rsi+0FFFC]
mov [rdi+0FFFC],edx
jmp near ptr 000000000000F993
vmovupd xmm0,[rsi+0FFF0]
vmovupd [rdi+0FFF0],xmm0
jmp near ptr 000000000000F993
cmp rcx,rdx
je near ptr 000000000000F993
pop rsi
pop rdi
jmp qword ptr [0BE28]
; Total bytes of code 300 Microsoft.Extensions.Primitives.StringSegmentBenchmark.GetValue
Description of detection logic
; System.String.Substring(Int32, Int32)
push rdi
push rsi
push rbx
sub rsp,20
mov rdi,rcx
mov esi,edx
test esi,esi
jl near ptr 000000000000F981
mov ecx,[rdi+8]
cmp ecx,esi
jl near ptr 000000000000F9DE
test r8d,r8d
jl near ptr 000000000000FA3B
mov eax,ecx
sub eax,r8d
cmp eax,esi
jl near ptr 000000000000FA98
test r8d,r8d
je short 000000000000F96C
test esi,esi
je short 000000000000F95C
mov ecx,r8d
call 0
mov rbx,rax
mov r8d,[rbx+8]
lea rcx,[rbx+0C]
mov edx,esi
lea rdx,[rdi+rdx*2+0C]
add r8,r8
call qword ptr [0BE10]
mov rax,rbx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
cmp ecx,r8d
jne short 000000000000F92E
mov rax,rdi
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rax,2162F002028
mov rax,[rax]
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,163D
mov rdx,7FF8D0E34000
call 00000000000014A0
mov rdi,rax
mov ecx,0A50B
mov rdx,7FF8D0E34000
call 00000000000014A0
mov rcx,rax
call qword ptr [77E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,163D
mov rdx,7FF8D0E34000
call 00000000000014A0
mov rdi,rax
mov ecx,0A547
mov rdx,7FF8D0E34000
call 00000000000014A0
mov rcx,rax
call qword ptr [77E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,57
mov rdx,7FF8D0E34000
call 00000000000014A0
mov rdi,rax
mov ecx,0A1CF
mov rdx,7FF8D0E34000
call 00000000000014A0
mov rcx,rax
call qword ptr [77E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,57
mov rdx,7FF8D0E34000
call 00000000000014A0
mov rdi,rax
mov ecx,9B73
mov rdx,7FF8D0E34000
call 00000000000014A0
mov rcx,rax
call qword ptr [77E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
int 3
; Total bytes of code 518 Compare Jit Disasm; Microsoft.Extensions.Primitives.StringSegmentBenchmark.GetValue()
push rax
add rcx,18
mov [rsp],rcx
mov rdx,[rcx]
test rdx,rdx
jne short 000000000000F9C8
xor eax,eax
add rsp,8
ret
mov rcx,rdx
mov r8,[rsp]
mov edx,[r8+8]
mov r8d,[r8+0C]
cmp [rcx],ecx
add rsp,8
jmp qword ptr [3360]
; Total bytes of code 51 ; System.String.Substring(Int32, Int32)
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov edi,edx
mov eax,edi
mov ecx,r8d
add rax,rcx
mov ecx,[rsi+8]
mov edx,ecx
cmp rax,rdx
ja short 000000000000F966
test r8d,r8d
jne short 000000000000F928
mov rax,19F5B402028
mov rax,[rax]
add rsp,20
pop rbx
pop rsi
pop rdi
ret
cmp ecx,r8d
jne short 000000000000F938
mov rax,rsi
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov ecx,r8d
call 0
mov rbx,rax
mov r8d,[rbx+8]
lea rcx,[rbx+0C]
mov edx,edi
lea rdx,[rsi+rdx*2+0C]
add r8,r8
call qword ptr [0BE10]
mov rax,rbx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,rsi
mov edx,edi
call qword ptr [3378]
int 3
; Total bytes of code 130 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in System.Text.Tests.Perf_StringBuilder
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Text.Tests.Perf_StringBuilder*' PayloadsHistogramSystem.Text.Tests.Perf_StringBuilder.ctor_string(length: 100000)
Description of detection logic
; System.Text.StringBuilder..ctor(System.String, Int32, Int32, Int32)
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,20
mov rbx,rcx
mov rdi,rdx
mov ebp,r8d
mov esi,r9d
mov ecx,[rsp+70]
test ecx,ecx
jl near ptr 000000000000F74D
test esi,esi
jl near ptr 000000000000F7B6
test ebp,ebp
jl near ptr 000000000000F81F
test rdi,rdi
je near ptr 000000000000F720
mov edx,[rdi+8]
sub edx,esi
cmp edx,ebp
jl near ptr 000000000000F888
mov dword ptr [rbx+20],7FFFFFFF
test ecx,ecx
je near ptr 000000000000F732
cmp ecx,esi
jl short 000000000000F712
mov edx,ecx
mov ecx,edx
cmp ecx,400
jge short 000000000000F716
movsxd rdx,ecx
mov rcx,offset MT_System.Char[]
call 000000000000C4B0
lea rcx,[rbx+8]
mov rdx,rax
call 0000000000000010
mov [rbx+18],esi
mov r8d,ebp
mov ecx,esi
add r8,rcx
mov ecx,[rdi+8]
cmp r8,rcx
ja near ptr 000000000000F87C
mov r8d,ebp
lea rdx,[rdi+r8*2+0C]
mov r8,[rbx+8]
test r8,r8
je short 000000000000F73C
lea rcx,[r8+10]
mov r14d,[r8+8]
cmp esi,r14d
ja short 000000000000F746
mov r8d,esi
add r8,r8
call qword ptr [0BE10]
nop
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
mov edx,esi
jmp short 000000000000F69D
xor edx,edx
call qword ptr [3858]
jmp short 000000000000F6B9
mov rdx,1769A802028
mov rdi,[rdx]
jmp near ptr 000000000000F67B
mov ecx,10
jmp near ptr 000000000000F697
xor ecx,ecx
xor r14d,r14d
cmp esi,r14d
jbe short 000000000000F6FA
call qword ptr [0B4B0]
int 3
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rdi,rax
mov ecx,133C6
mov rdx,7FFBA9304000
call 00000000000014A0
mov rbx,rax
mov ecx,9FF3
mov rdx,7FFBA9304000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov rcx,rax
mov rdx,rbx
call qword ptr [7060]
mov r8,rax
mov rdx,rbx
mov rcx,rdi
call qword ptr [1828]
mov rcx,rdi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rbp,rax
mov ecx,57
mov rdx,7FFBA9304000
call 00000000000014A0
mov r14,rax
mov ecx,9FAD
mov rdx,7FFBA9304000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov rcx,rax
mov rdx,r14
call qword ptr [7060]
mov r8,rax
mov rdx,r14
mov rcx,rbp
call qword ptr [1828]
mov rcx,rbp
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,163D
mov rdx,7FFBA9304000
call 00000000000014A0
mov rdi,rax
mov ecx,0A50B
mov rdx,7FFBA9304000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov ecx,21
call qword ptr [0B7E0]
int 3
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,57
mov rdx,7FFBA9304000
call 00000000000014A0
mov rdi,rax
mov ecx,9B73
mov rdx,7FFBA9304000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
int 3
; Total bytes of code 678 Compare Jit Disasm; System.Text.Tests.Perf_StringBuilder.ctor_string(Int32)
push rdi
push rsi
sub rsp,28
cmp edx,64
je short 000000000000F591
mov rsi,[rcx+8]
jmp short 000000000000F595
mov rsi,[rcx+10]
mov rcx,offset MT_System.Text.StringBuilder
call 0000000000002AE0
mov rdi,rax
mov rdx,rsi
test rdx,rdx
jne short 000000000000F5B6
xor edx,edx
xor r9d,r9d
jmp short 000000000000F5BA
mov r9d,[rdx+8]
mov dword ptr [rsp+20],10
mov rcx,rdi
xor r8d,r8d
call qword ptr [50D8]
mov rax,rdi
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 88 ; System.Text.StringBuilder..ctor(System.String, Int32, Int32, Int32)
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,20
mov rbx,rcx
mov rdi,rdx
mov ebp,r8d
mov esi,r9d
mov ecx,[rsp+70]
test ecx,ecx
jl near ptr 000000000000F74D
test esi,esi
jl near ptr 000000000000F7B6
test ebp,ebp
jl near ptr 000000000000F81F
test rdi,rdi
je near ptr 000000000000F720
mov edx,[rdi+8]
sub edx,esi
cmp edx,ebp
jl near ptr 000000000000F888
mov dword ptr [rbx+20],7FFFFFFF
test ecx,ecx
je near ptr 000000000000F732
cmp ecx,esi
jl short 000000000000F712
mov edx,ecx
mov ecx,edx
cmp ecx,400
jge short 000000000000F716
movsxd rdx,ecx
mov rcx,offset MT_System.Char[]
call 0000000000002C00
lea rcx,[rbx+8]
mov rdx,rax
call 0000000000000010
mov [rbx+18],esi
mov r8d,ebp
mov ecx,esi
add r8,rcx
mov ecx,[rdi+8]
cmp r8,rcx
ja near ptr 000000000000F87C
mov r8d,ebp
lea rdx,[rdi+r8*2+0C]
mov r8,[rbx+8]
test r8,r8
je short 000000000000F73C
lea rcx,[r8+10]
mov r14d,[r8+8]
cmp esi,r14d
ja short 000000000000F746
mov r8d,esi
add r8,r8
call qword ptr [0BE10]
nop
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
mov edx,esi
jmp short 000000000000F69D
xor edx,edx
call qword ptr [3888]
jmp short 000000000000F6B9
mov rdx,1D400002028
mov rdi,[rdx]
jmp near ptr 000000000000F67B
mov ecx,10
jmp near ptr 000000000000F697
xor ecx,ecx
xor r14d,r14d
cmp esi,r14d
jbe short 000000000000F6FA
call qword ptr [0B4B0]
int 3
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rdi,rax
mov ecx,13438
mov rdx,7FFEFA904000
call 000000000000A140
mov rbx,rax
mov ecx,9FF3
mov rdx,7FFEFA904000
call 000000000000A140
mov rcx,rax
call qword ptr [7030]
mov rcx,rax
mov rdx,rbx
call qword ptr [7060]
mov r8,rax
mov rdx,rbx
mov rcx,rdi
call qword ptr [1828]
mov rcx,rdi
call 0000000000002B00
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rbp,rax
mov ecx,57
mov rdx,7FFEFA904000
call 000000000000A140
mov r14,rax
mov ecx,9FAD
mov rdx,7FFEFA904000
call 000000000000A140
mov rcx,rax
call qword ptr [7030]
mov rcx,rax
mov rdx,r14
call qword ptr [7060]
mov r8,rax
mov rdx,r14
mov rcx,rbp
call qword ptr [1828]
mov rcx,rbp
call 0000000000002B00
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,163D
mov rdx,7FFEFA904000
call 000000000000A140
mov rdi,rax
mov ecx,0A50B
mov rdx,7FFEFA904000
call 000000000000A140
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
mov ecx,21
call qword ptr [0B7E0]
int 3
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,57
mov rdx,7FFEFA904000
call 000000000000A140
mov rdi,rax
mov ecx,9B73
mov rdx,7FFEFA904000
call 000000000000A140
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
int 3
; Total bytes of code 678 System.Text.Tests.Perf_StringBuilder.ToString_MultipleSegments(length: 100000)
Description of detection logic
Compare Jit Disasm; System.Text.Tests.Perf_StringBuilder.ToString_MultipleSegments(Int32)
cmp edx,64
je short 000000000000F6AB
mov rcx,[rcx+30]
jmp short 000000000000F6AF
mov rcx,[rcx+28]
mov rax,[rcx]
mov rax,[rax+40]
jmp qword ptr [rax+8]
; Total bytes of code 26 System.Text.Tests.Perf_StringBuilder.ToString_SingleSegment(length: 100)
Description of detection logic
Compare Jit Disasm; System.Text.Tests.Perf_StringBuilder.ToString_SingleSegment(Int32)
cmp edx,64
je short 000000000000F4DB
mov rcx,[rcx+20]
jmp short 000000000000F4DF
mov rcx,[rcx+18]
mov rax,[rcx]
mov rax,[rax+40]
jmp qword ptr [rax+8]
; Total bytes of code 26 System.Text.Tests.Perf_StringBuilder.ctor_capacity(length: 100000)
Description of detection logic
; System.Text.StringBuilder..ctor(Int32, Int32)
push rdi
push rsi
sub rsp,28
mov rsi,rcx
cmp edx,r8d
jg short 000000000000F463
test r8d,r8d
jle near ptr 000000000000F4C0
test edx,edx
jl near ptr 000000000000F51D
test edx,edx
je short 000000000000F445
mov [rsi+20],r8d
cmp edx,400
jge short 000000000000F452
movsxd rdx,edx
mov rcx,offset MT_System.Char[]
call 000000000000C4B0
lea rcx,[rsi+8]
mov rdx,rax
call 0000000000000010
nop
add rsp,28
pop rsi
pop rdi
ret
cmp r8d,10
jl short 000000000000F45E
mov edx,10
jmp short 000000000000F413
mov ecx,edx
xor edx,edx
call qword ptr [3078]
jmp short 000000000000F431
mov edx,r8d
jmp short 000000000000F450
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,133C6
mov rdx,7FF96F1F4000
call 00000000000014A0
mov rdi,rax
mov ecx,94A7
mov rdx,7FF96F1F4000
call 00000000000014A0
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,1780B
mov rdx,7FF96F1F4000
call 00000000000014A0
mov rdi,rax
mov ecx,0A4C3
mov rdx,7FF96F1F4000
call 00000000000014A0
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,133C6
mov rdx,7FF96F1F4000
call 00000000000014A0
mov rdi,rax
mov ecx,9FF3
mov rdx,7FF96F1F4000
call 00000000000014A0
mov rcx,rax
call qword ptr [57E0]
mov rcx,rax
mov rdx,rdi
call qword ptr [5810]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
int 3
; Total bytes of code 407 Compare Jit Disasm; System.Text.Tests.Perf_StringBuilder.ctor_capacity(Int32)
push rdi
push rsi
sub rsp,28
mov esi,edx
mov rcx,offset MT_System.Text.StringBuilder
call 0000000000002AE0
mov rdi,rax
mov rcx,rdi
mov edx,esi
mov r8d,7FFFFFFF
call qword ptr [50F0]
mov rax,rdi
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 53 ; System.Text.StringBuilder..ctor(Int32, Int32)
push rdi
push rsi
sub rsp,28
mov rsi,rcx
cmp edx,r8d
jg short 000000000000F463
test r8d,r8d
jle near ptr 000000000000F4C0
test edx,edx
jl near ptr 000000000000F51D
test edx,edx
je short 000000000000F445
mov [rsi+20],r8d
cmp edx,400
jge short 000000000000F452
movsxd rdx,edx
mov rcx,offset MT_System.Char[]
call 0000000000002C00
lea rcx,[rsi+8]
mov rdx,rax
call 0000000000000010
nop
add rsp,28
pop rsi
pop rdi
ret
cmp r8d,10
jl short 000000000000F45E
mov edx,10
jmp short 000000000000F413
mov ecx,edx
xor edx,edx
call qword ptr [30A8]
jmp short 000000000000F431
mov edx,r8d
jmp short 000000000000F450
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,13438
mov rdx,7FFE65654000
call 000000000000A140
mov rdi,rax
mov ecx,94A7
mov rdx,7FFE65654000
call 000000000000A140
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,1787D
mov rdx,7FFE65654000
call 000000000000A140
mov rdi,rax
mov ecx,0A4C3
mov rdx,7FFE65654000
call 000000000000A140
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,13438
mov rdx,7FFE65654000
call 000000000000A140
mov rdi,rax
mov ecx,9FF3
mov rdx,7FFE65654000
call 000000000000A140
mov rcx,rax
call qword ptr [57E0]
mov rcx,rax
mov rdx,rdi
call qword ptr [5810]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
int 3
; Total bytes of code 407 System.Text.Tests.Perf_StringBuilder.ToString_SingleSegment(length: 100000)
Description of detection logic
Compare Jit Disasm; System.Text.Tests.Perf_StringBuilder.ToString_SingleSegment(Int32)
cmp edx,64
je short 000000000000F6BB
mov rcx,[rcx+20]
jmp short 000000000000F6BF
mov rcx,[rcx+18]
mov rax,[rcx]
mov rax,[rax+40]
jmp qword ptr [rax+8]
; Total bytes of code 26 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in System.Tests.Perf_Enum
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_Enum*' PayloadsHistogramSystem.Tests.Perf_Enum.GetName
Description of detection logic
; System.Enum.ToUInt64[[System.Tests.Perf_Enum+Colors, MicroBenchmarks]](Colors)
push rsi
sub rsp,20
mov [rsp+30],ecx
mov rcx,offset MT_System.Tests.Perf_Enum+Colors
call 000000000000D240
mov rcx,rax
call qword ptr [8C00]
add eax,0FFFFFFFD
cmp eax,9
ja short 000000000000F60C
mov eax,eax
lea rcx,[0F650]
mov ecx,[rcx+rax*4]
lea rdx,[0F579]
add rcx,rdx
jmp rcx
movsx rax,byte ptr [rsp+30]
cdqe
jmp short 000000000000F606
movzx eax,byte ptr [rsp+30]
jmp short 000000000000F606
cmp byte ptr [rsp+30],0
jne short 000000000000F5CD
xor eax,eax
jmp short 000000000000F5D2
mov eax,1
jmp short 000000000000F606
movsx rax,word ptr [rsp+30]
cdqe
jmp short 000000000000F606
movzx eax,word ptr [rsp+30]
jmp short 000000000000F606
movzx eax,word ptr [rsp+30]
jmp short 000000000000F606
mov eax,[rsp+30]
jmp short 000000000000F606
mov eax,[rsp+30]
cdqe
jmp short 000000000000F606
mov rax,[rsp+30]
jmp short 000000000000F606
mov rax,[rsp+30]
add rsp,20
pop rsi
ret
mov rcx,offset MT_System.InvalidOperationException
call 000000000000C390
mov rsi,rax
mov ecx,0DCA9
mov rdx,7FFEC9714000
call 00000000000014A0
mov rcx,rax
call qword ptr [3030]
mov rdx,rax
mov rcx,rsi
call qword ptr [0D2B8]
mov rcx,rsi
call 0000000000004690
int 3
; Total bytes of code 224 ; System.Enum.GetEnumInfo(System.RuntimeType, Boolean)
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,0A8
vzeroupper
lea rbp,[rsp+0E0]
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp+0FFB0],xmm4
xor esi,esi
mov [rbp+0FFC0],rsi
mov rsi,rcx
mov edi,edx
lea rcx,[rbp+0FF50]
mov rdx,r10
call 00000000000042A0
mov rbx,rax
mov rcx,rsp
mov [rbp+0FF70],rcx
mov rcx,rbp
mov [rbp+0FF80],rcx
mov rcx,[rsi+10]
test rcx,rcx
je short 000000000000FA56
mov rcx,[rcx]
test rcx,rcx
je short 000000000000FA51
mov r14,[rcx+78]
test r14,r14
je short 000000000000FA21
mov rcx,offset MT_System.Enum+EnumInfo
cmp [r14],rcx
je short 000000000000FA21
xor r14d,r14d
test r14,r14
je near ptr 000000000000FB31
test dil,dil
je short 000000000000FA3A
cmp qword ptr [r14+10],0
je near ptr 000000000000FB31
mov rax,r14
add rsp,0A8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor r14d,r14d
jmp short 000000000000FA0A
xor ecx,ecx
jmp short 000000000000FA01
mov eax,1
mov [rbp+0FF90],rcx
mov [rbp+0FF98],r9
lea rcx,[rbp+0FF90]
mov r9d,eax
mov rax,offset MD_System.Enum.GetEnumValuesAndNames(System.Runtime.CompilerServices.QCallTypeHandle, System.Runtime.CompilerServices.ObjectHandleOnStack, System.Runtime.CompilerServices.ObjectHandleOnStack, BOOL)
mov [rbp+0FF60],rax
lea rax,[0FAA2]
mov [rbp+0FF78],rax
lea rax,[rbp+0FF50]
mov [rbx+10],rax
mov byte ptr [rbx+0C],0
call qword ptr [9898]
mov byte ptr [rbx+0C],1
cmp dword ptr [5D3C],0
je short 000000000000FAB5
call qword ptr [8368]
mov rcx,[rbp+0FF58]
mov [rbx+10],rcx
mov rcx,offset MT_System.FlagsAttribute
call 000000000000D240
mov rdx,rax
mov rcx,[rbp+10]
xor r8d,r8d
call qword ptr [89C0]
mov r14d,eax
mov rcx,offset MT_System.Enum+EnumInfo
call 000000000000C390
mov rsi,rax
mov rcx,rsi
mov edx,r14d
mov r8,[rbp+0FFC0]
mov r9,[rbp+0FFB8]
call qword ptr [15D0]
mov r14,rsi
mov rsi,[rbp+10]
mov rcx,[rsi+10]
test rcx,rcx
je short 000000000000FB7A
mov rax,[rcx]
test rax,rax
je short 000000000000FB7A
lea rcx,[rax+78]
mov rdx,r14
call 0000000000000010
jmp near ptr 000000000000FA3A
xor ecx,ecx
mov [rbp+0FFC0],rcx
mov [rbp+0FFB8],rcx
mov [rbp+10],rsi
mov [rbp+0FFB0],rsi
vxorps xmm0,xmm0,xmm0
vmovupd [rbp+0FFA0],xmm0
lea rcx,[rbp+0FFA0]
lea rdx,[rbp+0FFB0]
call qword ptr [3318]
lea rdx,[rbp+0FFC0]
lea r8,[rbp+0FFB8]
mov rcx,[rbp+0FFA0]
mov r9,[rbp+0FFA8]
test dil,dil
jne near ptr 000000000000FA5A
xor eax,eax
jmp near ptr 000000000000FA5F
mov rcx,rsi
call qword ptr [72B8]
jmp short 000000000000FB20
; Total bytes of code 485 ; System.SpanHelpers.IndexOf[[System.UInt64, System.Private.CoreLib]](UInt64 ByRef, UInt64, Int32)
xor r9d,r9d
cmp r8d,8
jge short 000000000000FD33
cmp r8d,4
jl short 000000000000FD09
add r8d,0FFFFFFFC
mov rax,[rcx+r9*8]
cmp rdx,rax
je short 000000000000FD1B
mov rax,[rcx+r9*8+8]
cmp rdx,rax
je short 000000000000FD2D
mov rax,[rcx+r9*8+10]
cmp rdx,rax
jne short 000000000000FCF5
lea eax,[r9+2]
ret
mov rax,[rcx+r9*8+18]
cmp rdx,rax
jne short 000000000000FD05
lea eax,[r9+3]
jmp short 000000000000FCF4
add r9,4
test r8d,r8d
jle near ptr 000000000000FD95
mov rax,[rcx+r9*8]
cmp rdx,rax
jne short 000000000000FD20
mov eax,r9d
jmp short 000000000000FCF4
inc r9
dec r8d
test r8d,r8d
jle short 000000000000FD95
jmp short 000000000000FD12
lea eax,[r9+1]
jmp short 000000000000FCF4
add r8d,0FFFFFFF8
mov rax,[rcx+r9*8]
cmp rdx,rax
je short 000000000000FD1B
mov rax,[rcx+r9*8+8]
cmp rdx,rax
je short 000000000000FD2D
mov rax,[rcx+r9*8+10]
cmp rdx,rax
je short 000000000000FCF0
mov rax,[rcx+r9*8+18]
cmp rdx,rax
je short 000000000000FCFF
mov rax,[rcx+r9*8+20]
cmp rdx,rax
je short 000000000000FD9B
mov rax,[rcx+r9*8+28]
cmp rdx,rax
je short 000000000000FDA4
mov rax,[rcx+r9*8+30]
cmp rdx,rax
je short 000000000000FDAD
mov rax,[rcx+r9*8+38]
cmp rdx,rax
je short 000000000000FDB6
add r9,8
cmp r8d,8
jge short 000000000000FD33
jmp near ptr 000000000000FCC9
mov eax,0FFFFFFFF
ret
lea eax,[r9+4]
jmp near ptr 000000000000FCF4
lea eax,[r9+5]
jmp near ptr 000000000000FCF4
lea eax,[r9+6]
jmp near ptr 000000000000FCF4
lea eax,[r9+7]
jmp near ptr 000000000000FCF4
; Total bytes of code 255 Compare Jit Disasm; System.Tests.Perf_Enum.GetName()
push rdi
push rsi
sub rsp,28
mov esi,[rcx+0C]
mov rcx,offset MT_System.Tests.Perf_Enum+Colors
call 0000000000005E90
mov rdi,rax
mov ecx,esi
call qword ptr [17F8]
mov rsi,rax
mov rcx,rdi
mov edx,1
call qword ptr [1540]
mov rdi,rax
mov rcx,[rdi+8]
mov r8d,[rcx+8]
add rcx,10
cmp r8d,20
jg short 000000000000FE38
mov rdx,rsi
call qword ptr [1600]
test eax,eax
jl short 000000000000FE4D
mov rdx,[rdi+10]
cmp eax,[rdx+8]
jae short 000000000000FE51
mov eax,eax
mov rax,[rdx+rax*8+10]
jmp short 000000000000FE46
mov edx,r8d
mov r8,rsi
call qword ptr [3C00]
jmp short 000000000000FE22
add rsp,28
pop rsi
pop rdi
ret
xor eax,eax
jmp short 000000000000FE46
call 000000000000AB50
int 3
; Total bytes of code 135 ; System.Enum.ToUInt64[[System.Tests.Perf_Enum+Colors, MicroBenchmarks]](Colors)
push rsi
sub rsp,20
mov [rsp+30],ecx
mov rcx,offset MT_System.Tests.Perf_Enum+Colors
call 0000000000005E90
mov rcx,rax
call qword ptr [8C30]
add eax,0FFFFFFFD
cmp eax,9
ja short 000000000000F60C
mov eax,eax
lea rcx,[0F650]
mov ecx,[rcx+rax*4]
lea rdx,[0F579]
add rcx,rdx
jmp rcx
movsx rax,byte ptr [rsp+30]
cdqe
jmp short 000000000000F606
movzx eax,byte ptr [rsp+30]
jmp short 000000000000F606
cmp byte ptr [rsp+30],0
jne short 000000000000F5CD
xor eax,eax
jmp short 000000000000F5D2
mov eax,1
jmp short 000000000000F606
movsx rax,word ptr [rsp+30]
cdqe
jmp short 000000000000F606
movzx eax,word ptr [rsp+30]
jmp short 000000000000F606
movzx eax,word ptr [rsp+30]
jmp short 000000000000F606
mov eax,[rsp+30]
jmp short 000000000000F606
mov eax,[rsp+30]
cdqe
jmp short 000000000000F606
mov rax,[rsp+30]
jmp short 000000000000F606
mov rax,[rsp+30]
add rsp,20
pop rsi
ret
mov rcx,offset MT_System.InvalidOperationException
call 0000000000002AE0
mov rsi,rax
mov ecx,0DCA9
mov rdx,7FF9A6824000
call 000000000000A140
mov rcx,rax
call qword ptr [3030]
mov rdx,rax
mov rcx,rsi
call qword ptr [0D2B8]
mov rcx,rsi
call 0000000000002B00
int 3
; Total bytes of code 224 ; System.Enum.GetEnumInfo(System.RuntimeType, Boolean)
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,0A8
vzeroupper
lea rbp,[rsp+0E0]
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp+0FFB0],xmm4
xor esi,esi
mov [rbp+0FFC0],rsi
mov rsi,rcx
mov edi,edx
lea rcx,[rbp+0FF50]
mov rdx,r10
call 0000000000000320
mov rbx,rax
mov rcx,rsp
mov [rbp+0FF70],rcx
mov rcx,rbp
mov [rbp+0FF80],rcx
mov rcx,[rsi+10]
test rcx,rcx
je short 000000000000FA56
mov rcx,[rcx]
test rcx,rcx
je short 000000000000FA51
mov r14,[rcx+78]
test r14,r14
je short 000000000000FA21
mov rcx,offset MT_System.Enum+EnumInfo
cmp [r14],rcx
je short 000000000000FA21
xor r14d,r14d
test r14,r14
je near ptr 000000000000FB31
test dil,dil
je short 000000000000FA3A
cmp qword ptr [r14+10],0
je near ptr 000000000000FB31
mov rax,r14
add rsp,0A8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor r14d,r14d
jmp short 000000000000FA0A
xor ecx,ecx
jmp short 000000000000FA01
mov eax,1
mov [rbp+0FF90],rcx
mov [rbp+0FF98],r9
lea rcx,[rbp+0FF90]
mov r9d,eax
mov rax,offset MD_System.Enum.GetEnumValuesAndNames(System.Runtime.CompilerServices.QCallTypeHandle, System.Runtime.CompilerServices.ObjectHandleOnStack, System.Runtime.CompilerServices.ObjectHandleOnStack, BOOL)
mov [rbp+0FF60],rax
lea rax,[0FAA2]
mov [rbp+0FF78],rax
lea rax,[rbp+0FF50]
mov [rbx+10],rax
mov byte ptr [rbx+0C],0
call qword ptr [98A8]
mov byte ptr [rbx+0C],1
cmp dword ptr [0AE3C],0
je short 000000000000FAB5
call qword ptr [0D388]
mov rcx,[rbp+0FF58]
mov [rbx+10],rcx
mov rcx,offset MT_System.FlagsAttribute
call 0000000000005E90
mov rdx,rax
mov rcx,[rbp+10]
xor r8d,r8d
call qword ptr [89F0]
mov r14d,eax
mov rcx,offset MT_System.Enum+EnumInfo
call 0000000000002AE0
mov rsi,rax
mov rcx,rsi
mov edx,r14d
mov r8,[rbp+0FFC0]
mov r9,[rbp+0FFB8]
call qword ptr [15D0]
mov r14,rsi
mov rsi,[rbp+10]
mov rcx,[rsi+10]
test rcx,rcx
je short 000000000000FB7A
mov rax,[rcx]
test rax,rax
je short 000000000000FB7A
lea rcx,[rax+78]
mov rdx,r14
call 0000000000000010
jmp near ptr 000000000000FA3A
xor ecx,ecx
mov [rbp+0FFC0],rcx
mov [rbp+0FFB8],rcx
mov [rbp+10],rsi
mov [rbp+0FFB0],rsi
vxorps xmm0,xmm0,xmm0
vmovupd [rbp+0FFA0],xmm0
lea rcx,[rbp+0FFA0]
lea rdx,[rbp+0FFB0]
call qword ptr [3318]
lea rdx,[rbp+0FFC0]
lea r8,[rbp+0FFB8]
mov rcx,[rbp+0FFA0]
mov r9,[rbp+0FFA8]
test dil,dil
jne near ptr 000000000000FA5A
xor eax,eax
jmp near ptr 000000000000FA5F
mov rcx,rsi
call qword ptr [72B8]
jmp short 000000000000FB20
; Total bytes of code 485 ; System.SpanHelpers.IndexOf[[System.UInt64, System.Private.CoreLib]](UInt64 ByRef, UInt64, Int32)
xor r9d,r9d
cmp r8d,8
jge short 000000000000FD33
cmp r8d,4
jl short 000000000000FD09
add r8d,0FFFFFFFC
mov rax,[rcx+r9*8]
cmp rdx,rax
je short 000000000000FD1B
mov rax,[rcx+r9*8+8]
cmp rdx,rax
je short 000000000000FD2D
mov rax,[rcx+r9*8+10]
cmp rdx,rax
jne short 000000000000FCF5
lea eax,[r9+2]
ret
mov rax,[rcx+r9*8+18]
cmp rdx,rax
jne short 000000000000FD05
lea eax,[r9+3]
jmp short 000000000000FCF4
add r9,4
test r8d,r8d
jle near ptr 000000000000FD95
mov rax,[rcx+r9*8]
cmp rdx,rax
jne short 000000000000FD20
mov eax,r9d
jmp short 000000000000FCF4
inc r9
dec r8d
test r8d,r8d
jle short 000000000000FD95
jmp short 000000000000FD12
lea eax,[r9+1]
jmp short 000000000000FCF4
add r8d,0FFFFFFF8
mov rax,[rcx+r9*8]
cmp rdx,rax
je short 000000000000FD1B
mov rax,[rcx+r9*8+8]
cmp rdx,rax
je short 000000000000FD2D
mov rax,[rcx+r9*8+10]
cmp rdx,rax
je short 000000000000FCF0
mov rax,[rcx+r9*8+18]
cmp rdx,rax
je short 000000000000FCFF
mov rax,[rcx+r9*8+20]
cmp rdx,rax
je short 000000000000FD9B
mov rax,[rcx+r9*8+28]
cmp rdx,rax
je short 000000000000FDA4
mov rax,[rcx+r9*8+30]
cmp rdx,rax
je short 000000000000FDAD
mov rax,[rcx+r9*8+38]
cmp rdx,rax
je short 000000000000FDB6
add r9,8
cmp r8d,8
jge short 000000000000FD33
jmp near ptr 000000000000FCC9
mov eax,0FFFFFFFF
ret
lea eax,[r9+4]
jmp near ptr 000000000000FCF4
lea eax,[r9+5]
jmp near ptr 000000000000FCF4
lea eax,[r9+6]
jmp near ptr 000000000000FCF4
lea eax,[r9+7]
jmp near ptr 000000000000FCF4
; Total bytes of code 255 DocsProfiling workflow for dotnet/runtime repository
Regressions in System.Tests.Perf_UInt64
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_UInt64*' PayloadsHistogramSystem.Tests.Perf_UInt64.ToString(value: 12345)
Description of detection logic
; System.Number.UInt64ToDecStr(UInt64)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov rsi,rcx
mov eax,1
cmp rsi,989680
jae near ptr 000000000000F6AB
mov edx,esi
cmp edx,0A
jb short 000000000000F5C1
cmp edx,64
jb near ptr 000000000000F635
cmp edx,3E8
jae near ptr 000000000000F666
add eax,2
mov edi,eax
cmp edi,1
je short 000000000000F639
mov ecx,edi
call 0
mov rcx,rax
test rcx,rcx
je near ptr 000000000000F69E
lea rax,[rcx+0C]
mov [rsp+20],rax
mov r8,[rsp+20]
movsxd rax,edi
lea r8,[r8+rax*2]
mov rdx,0CCCCCCCCCCCD
mov rax,rsi
mul rdx
shr rdx,3
lea rax,[rdx+rdx*4]
add rax,rax
sub rsi,rax
add r8,0FFFFFFFFFFFFFFFE
add rsi,30
mov eax,esi
mov [r8],ax
test rdx,rdx
mov rsi,rdx
jne short 000000000000F5F0
xor eax,eax
mov [rsp+20],rax
mov rax,rcx
add rsp,28
pop rsi
pop rdi
ret
inc eax
jmp short 000000000000F5C1
mov rax,2614A8002C8
mov rax,[rax]
test rsi,rsi
jl short 000000000000F6A6
mov rcx,rsi
mov edx,[rax+8]
cmp rcx,rdx
jae near ptr 000000000000F6F6
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp edx,2710
jae short 000000000000F676
add eax,3
jmp near ptr 000000000000F5C1
cmp edx,186A0
jae short 000000000000F686
add eax,4
jmp near ptr 000000000000F5C1
cmp edx,0F4240
jae short 000000000000F696
add eax,5
jmp near ptr 000000000000F5C1
add eax,6
jmp near ptr 000000000000F5C1
xor r8d,r8d
jmp near ptr 000000000000F5E9
call 00000000000065F0
mov rax,5AF3107A4000
cmp rsi,rax
jb short 000000000000F6D8
mov rdx,4DC35095CD81
mov rax,rsi
mul rdx
shr rdx,2A
mov eax,0F
jmp near ptr 000000000000F5A4
mov rdx,94D5E57A42BD
mov rax,rsi
mul rdx
shr rdx,17
mov eax,8
jmp near ptr 000000000000F5A4
call 0000000000006930
int 3
; Total bytes of code 380 Compare Jit Disasm; System.Tests.Perf_UInt64.ToString(UInt64)
sub rsp,28
mov rcx,rdx
call qword ptr [9540]
nop
add rsp,28
ret
; Total bytes of code 19 ; System.Number.UInt64ToDecStr(UInt64)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov rsi,rcx
mov eax,1
cmp rsi,989680
jae near ptr 000000000000F6AB
mov edx,esi
cmp edx,0A
jb short 000000000000F5C1
cmp edx,64
jb near ptr 000000000000F635
cmp edx,3E8
jae near ptr 000000000000F666
add eax,2
mov edi,eax
cmp edi,1
je short 000000000000F639
mov ecx,edi
call 0
mov rcx,rax
test rcx,rcx
je near ptr 000000000000F69E
lea rax,[rcx+0C]
mov [rsp+20],rax
mov r8,[rsp+20]
movsxd rax,edi
lea r8,[r8+rax*2]
mov rdx,0CCCCCCCCCCCD
mov rax,rsi
mul rdx
shr rdx,3
lea rax,[rdx+rdx*4]
add rax,rax
sub rsi,rax
add r8,0FFFFFFFFFFFFFFFE
add rsi,30
mov eax,esi
mov [r8],ax
test rdx,rdx
mov rsi,rdx
jne short 000000000000F5F0
xor eax,eax
mov [rsp+20],rax
mov rax,rcx
add rsp,28
pop rsi
pop rdi
ret
inc eax
jmp short 000000000000F5C1
mov rax,233AC4002C8
mov rax,[rax]
test rsi,rsi
jl short 000000000000F6A6
mov rcx,rsi
mov edx,[rax+8]
cmp rcx,rdx
jae near ptr 000000000000F6F6
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp edx,2710
jae short 000000000000F676
add eax,3
jmp near ptr 000000000000F5C1
cmp edx,186A0
jae short 000000000000F686
add eax,4
jmp near ptr 000000000000F5C1
cmp edx,0F4240
jae short 000000000000F696
add eax,5
jmp near ptr 000000000000F5C1
add eax,6
jmp near ptr 000000000000F5C1
xor r8d,r8d
jmp near ptr 000000000000F5E9
call 000000000000A810
mov rax,5AF3107A4000
cmp rsi,rax
jb short 000000000000F6D8
mov rdx,4DC35095CD81
mov rax,rsi
mul rdx
shr rdx,2A
mov eax,0F
jmp near ptr 000000000000F5A4
mov rdx,94D5E57A42BD
mov rax,rsi
mul rdx
shr rdx,17
mov eax,8
jmp near ptr 000000000000F5A4
call 000000000000AB50
int 3
; Total bytes of code 380 System.Tests.Perf_UInt64.ToString(value: 0)
Description of detection logic
; System.Number.UInt64ToDecStr(UInt64)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov rsi,rcx
mov eax,1
cmp rsi,989680
jae near ptr 000000000000F6AB
mov edx,esi
cmp edx,0A
jb short 000000000000F5C1
cmp edx,64
jb near ptr 000000000000F635
cmp edx,3E8
jae near ptr 000000000000F666
add eax,2
mov edi,eax
cmp edi,1
je short 000000000000F639
mov ecx,edi
call 0
mov rcx,rax
test rcx,rcx
je near ptr 000000000000F69E
lea rax,[rcx+0C]
mov [rsp+20],rax
mov r8,[rsp+20]
movsxd rax,edi
lea r8,[r8+rax*2]
mov rdx,0CCCCCCCCCCCD
mov rax,rsi
mul rdx
shr rdx,3
lea rax,[rdx+rdx*4]
add rax,rax
sub rsi,rax
add r8,0FFFFFFFFFFFFFFFE
add rsi,30
mov eax,esi
mov [r8],ax
test rdx,rdx
mov rsi,rdx
jne short 000000000000F5F0
xor eax,eax
mov [rsp+20],rax
mov rax,rcx
add rsp,28
pop rsi
pop rdi
ret
inc eax
jmp short 000000000000F5C1
mov rax,1C6450002C8
mov rax,[rax]
test rsi,rsi
jl short 000000000000F6A6
mov rcx,rsi
mov edx,[rax+8]
cmp rcx,rdx
jae near ptr 000000000000F6F6
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp edx,2710
jae short 000000000000F676
add eax,3
jmp near ptr 000000000000F5C1
cmp edx,186A0
jae short 000000000000F686
add eax,4
jmp near ptr 000000000000F5C1
cmp edx,0F4240
jae short 000000000000F696
add eax,5
jmp near ptr 000000000000F5C1
add eax,6
jmp near ptr 000000000000F5C1
xor r8d,r8d
jmp near ptr 000000000000F5E9
call 00000000000065F0
mov rax,5AF3107A4000
cmp rsi,rax
jb short 000000000000F6D8
mov rdx,4DC35095CD81
mov rax,rsi
mul rdx
shr rdx,2A
mov eax,0F
jmp near ptr 000000000000F5A4
mov rdx,94D5E57A42BD
mov rax,rsi
mul rdx
shr rdx,17
mov eax,8
jmp near ptr 000000000000F5A4
call 0000000000006930
int 3
; Total bytes of code 380 Compare Jit Disasm; System.Tests.Perf_UInt64.ToString(UInt64)
sub rsp,28
mov rcx,rdx
call qword ptr [9540]
nop
add rsp,28
ret
; Total bytes of code 19 ; System.Number.UInt64ToDecStr(UInt64)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov rsi,rcx
mov eax,1
cmp rsi,989680
jae near ptr 000000000000F6AB
mov edx,esi
cmp edx,0A
jb short 000000000000F5C1
cmp edx,64
jb near ptr 000000000000F635
cmp edx,3E8
jae near ptr 000000000000F666
add eax,2
mov edi,eax
cmp edi,1
je short 000000000000F639
mov ecx,edi
call 0
mov rcx,rax
test rcx,rcx
je near ptr 000000000000F69E
lea rax,[rcx+0C]
mov [rsp+20],rax
mov r8,[rsp+20]
movsxd rax,edi
lea r8,[r8+rax*2]
mov rdx,0CCCCCCCCCCCD
mov rax,rsi
mul rdx
shr rdx,3
lea rax,[rdx+rdx*4]
add rax,rax
sub rsi,rax
add r8,0FFFFFFFFFFFFFFFE
add rsi,30
mov eax,esi
mov [r8],ax
test rdx,rdx
mov rsi,rdx
jne short 000000000000F5F0
xor eax,eax
mov [rsp+20],rax
mov rax,rcx
add rsp,28
pop rsi
pop rdi
ret
inc eax
jmp short 000000000000F5C1
mov rax,1C1AF4002C8
mov rax,[rax]
test rsi,rsi
jl short 000000000000F6A6
mov rcx,rsi
mov edx,[rax+8]
cmp rcx,rdx
jae near ptr 000000000000F6F6
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp edx,2710
jae short 000000000000F676
add eax,3
jmp near ptr 000000000000F5C1
cmp edx,186A0
jae short 000000000000F686
add eax,4
jmp near ptr 000000000000F5C1
cmp edx,0F4240
jae short 000000000000F696
add eax,5
jmp near ptr 000000000000F5C1
add eax,6
jmp near ptr 000000000000F5C1
xor r8d,r8d
jmp near ptr 000000000000F5E9
call 000000000000A810
mov rax,5AF3107A4000
cmp rsi,rax
jb short 000000000000F6D8
mov rdx,4DC35095CD81
mov rax,rsi
mul rdx
shr rdx,2A
mov eax,0F
jmp near ptr 000000000000F5A4
mov rdx,94D5E57A42BD
mov rax,rsi
mul rdx
shr rdx,17
mov eax,8
jmp near ptr 000000000000F5A4
call 000000000000AB50
int 3
; Total bytes of code 380 DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.Concurrent.AddRemoveFromSameThreads<Int32>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Collections.Concurrent.AddRemoveFromSameThreads<Int32>*' PayloadsHistogramSystem.Collections.Concurrent.AddRemoveFromSameThreads<Int32>.ConcurrentStack(Size: 2000000)
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in System.IO.Tests.StringReaderReadToEndTests
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.IO.Tests.StringReaderReadToEndTests*' PayloadsHistogramSystem.IO.Tests.StringReaderReadToEndTests.ReadToEndAsync(LineLengthRange: [ 33, 128])
Description of detection logic
; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 0000000000008827
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [0D978]
jmp short 000000000000881A
; Total bytes of code 47 ; System.IO.StringReader.ReadToEnd()
sub rsp,28
mov rax,[rcx+8]
test rax,rax
je short 000000000000873E
mov edx,[rcx+10]
mov r8d,[rax+8]
mov [rcx+10],r8d
test edx,edx
je short 0000000000008738
sub r8d,edx
mov rcx,rax
call qword ptr [3360]
nop
add rsp,28
ret
call qword ptr [51B0]
int 3
; Total bytes of code 53 Compare Jit Disasm; System.IO.Tests.StringReaderReadToEndTests.ReadToEndAsync()
push rbp
push rdi
push rsi
sub rsp,30
lea rbp,[rsp+40]
mov [rbp+0FFE0],rsp
mov rsi,rcx
mov rcx,offset MT_System.IO.StringReader
call 0000000000002AE0
mov rdi,rax
mov rdx,[rsi+8]
test rdx,rdx
je near ptr 0000000000008298
lea rcx,[rdi+8]
call 0000000000000010
mov rcx,rdi
mov [rbp+0FFE8],rcx
call qword ptr [0B1C0]
mov rsi,rax
test rsi,rsi
je short 0000000000008257
mov rcx,offset MT_System.Threading.Tasks.Task`1[[System.String, System.Private.CoreLib]]
call 0000000000002AE0
mov rdi,rax
mov dword ptr [rdi+34],1000000
lea rcx,[rdi+38]
mov rdx,rsi
call 0000000000000010
jmp short 0000000000008278
mov rcx,7FFF00B14BF0
mov edx,2F
call 0000000000001230
mov rcx,135608095D8
mov rdi,[rcx]
xor ecx,ecx
mov rax,[rbp+0FFE8]
mov [rax+8],rcx
mov [rax+10],ecx
mov rcx,rax
call 0000000000000FB0
mov rax,rdi
add rsp,30
pop rsi
pop rdi
pop rbp
ret
mov ecx,11
call qword ptr [0B7B0]
int 3
push rbp
push rdi
push rsi
sub rsp,30
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+40]
xor ecx,ecx
mov rax,[rbp+0FFE8]
mov [rax+8],rcx
mov [rax+10],ecx
mov rcx,rax
call 0000000000000FB0
nop
add rsp,30
pop rsi
pop rdi
pop rbp
ret
; Total bytes of code 246 ; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000084E7
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [0DCD8]
jmp short 00000000000084DA
; Total bytes of code 47 ; System.IO.StringReader.ReadToEnd()
sub rsp,28
mov rax,[rcx+8]
test rax,rax
je short 00000000000083FB
mov edx,[rcx+10]
mov r8d,[rax+8]
mov [rcx+10],r8d
test edx,edx
je short 00000000000083F5
mov rcx,rax
call qword ptr [3348]
nop
add rsp,28
ret
call qword ptr [51B0]
int 3
; Total bytes of code 50 System.IO.Tests.StringReaderReadToEndTests.ReadToEndAsync(LineLengthRange: [1025, 2048])
Description of detection logic
; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 0000000000008527
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [0D978]
jmp short 000000000000851A
; Total bytes of code 47 ; System.IO.StringReader.ReadToEnd()
sub rsp,28
mov rax,[rcx+8]
test rax,rax
je short 00000000000087BE
mov edx,[rcx+10]
mov r8d,[rax+8]
mov [rcx+10],r8d
test edx,edx
je short 00000000000087B8
sub r8d,edx
mov rcx,rax
call qword ptr [3360]
nop
add rsp,28
ret
call qword ptr [51B0]
int 3
; Total bytes of code 53 Compare Jit Disasm; System.IO.Tests.StringReaderReadToEndTests.ReadToEndAsync()
push rbp
push rdi
push rsi
sub rsp,30
lea rbp,[rsp+40]
mov [rbp+0FFE0],rsp
mov rsi,rcx
mov rcx,offset MT_System.IO.StringReader
call 0000000000002AE0
mov rdi,rax
mov rdx,[rsi+8]
test rdx,rdx
je near ptr 0000000000008298
lea rcx,[rdi+8]
call 0000000000000010
mov rcx,rdi
mov [rbp+0FFE8],rcx
call qword ptr [0B1C0]
mov rsi,rax
test rsi,rsi
je short 0000000000008257
mov rcx,offset MT_System.Threading.Tasks.Task`1[[System.String, System.Private.CoreLib]]
call 0000000000002AE0
mov rdi,rax
mov dword ptr [rdi+34],1000000
lea rcx,[rdi+38]
mov rdx,rsi
call 0000000000000010
jmp short 0000000000008278
mov rcx,7FFF00B34BF0
mov edx,2F
call 0000000000001230
mov rcx,2284C8095D8
mov rdi,[rcx]
xor ecx,ecx
mov rax,[rbp+0FFE8]
mov [rax+8],rcx
mov [rax+10],ecx
mov rcx,rax
call 0000000000000FB0
mov rax,rdi
add rsp,30
pop rsi
pop rdi
pop rbp
ret
mov ecx,11
call qword ptr [0B7B0]
int 3
push rbp
push rdi
push rsi
sub rsp,30
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+40]
xor ecx,ecx
mov rax,[rbp+0FFE8]
mov [rax+8],rcx
mov [rax+10],ecx
mov rcx,rax
call 0000000000000FB0
nop
add rsp,30
pop rsi
pop rdi
pop rbp
ret
; Total bytes of code 246 ; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000084E7
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [0DCD8]
jmp short 00000000000084DA
; Total bytes of code 47 ; System.IO.StringReader.ReadToEnd()
sub rsp,28
mov rax,[rcx+8]
test rax,rax
je short 00000000000083FB
mov edx,[rcx+10]
mov r8d,[rax+8]
mov [rcx+10],r8d
test edx,edx
je short 00000000000083F5
mov rcx,rax
call qword ptr [3348]
nop
add rsp,28
ret
call qword ptr [51B0]
int 3
; Total bytes of code 50 System.IO.Tests.StringReaderReadToEndTests.ReadToEndAsync(LineLengthRange: [ 1, 1])
Description of detection logic
; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 0000000000008827
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [0D978]
jmp short 000000000000881A
; Total bytes of code 47 ; System.IO.StringReader.ReadToEnd()
sub rsp,28
mov rax,[rcx+8]
test rax,rax
je short 000000000000873E
mov edx,[rcx+10]
mov r8d,[rax+8]
mov [rcx+10],r8d
test edx,edx
je short 0000000000008738
sub r8d,edx
mov rcx,rax
call qword ptr [3360]
nop
add rsp,28
ret
call qword ptr [51B0]
int 3
; Total bytes of code 53 Compare Jit Disasm; System.IO.Tests.StringReaderReadToEndTests.ReadToEndAsync()
push rbp
push rdi
push rsi
sub rsp,30
lea rbp,[rsp+40]
mov [rbp+0FFE0],rsp
mov rsi,rcx
mov rcx,offset MT_System.IO.StringReader
call 0000000000002AE0
mov rdi,rax
mov rdx,[rsi+8]
test rdx,rdx
je near ptr 0000000000008298
lea rcx,[rdi+8]
call 0000000000000010
mov rcx,rdi
mov [rbp+0FFE8],rcx
call qword ptr [0B1C0]
mov rsi,rax
test rsi,rsi
je short 0000000000008257
mov rcx,offset MT_System.Threading.Tasks.Task`1[[System.String, System.Private.CoreLib]]
call 0000000000002AE0
mov rdi,rax
mov dword ptr [rdi+34],1000000
lea rcx,[rdi+38]
mov rdx,rsi
call 0000000000000010
jmp short 0000000000008278
mov rcx,7FFF00B24BF0
mov edx,2F
call 0000000000001230
mov rcx,1591A0095D8
mov rdi,[rcx]
xor ecx,ecx
mov rax,[rbp+0FFE8]
mov [rax+8],rcx
mov [rax+10],ecx
mov rcx,rax
call 0000000000000FB0
mov rax,rdi
add rsp,30
pop rsi
pop rdi
pop rbp
ret
mov ecx,11
call qword ptr [0B7B0]
int 3
push rbp
push rdi
push rsi
sub rsp,30
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+40]
xor ecx,ecx
mov rax,[rbp+0FFE8]
mov [rax+8],rcx
mov [rax+10],ecx
mov rcx,rax
call 0000000000000FB0
nop
add rsp,30
pop rsi
pop rdi
pop rbp
ret
; Total bytes of code 246 ; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000084E7
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [0DCD8]
jmp short 00000000000084DA
; Total bytes of code 47 ; System.IO.StringReader.ReadToEnd()
sub rsp,28
mov rax,[rcx+8]
test rax,rax
je short 00000000000083FB
mov edx,[rcx+10]
mov r8d,[rax+8]
mov [rcx+10],r8d
test edx,edx
je short 00000000000083F5
mov rcx,rax
call qword ptr [3348]
nop
add rsp,28
ret
call qword ptr [51B0]
int 3
; Total bytes of code 50 System.IO.Tests.StringReaderReadToEndTests.ReadToEndAsync(LineLengthRange: [ 9, 32])
Description of detection logic
; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 0000000000008827
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [0D978]
jmp short 000000000000881A
; Total bytes of code 47 ; System.IO.StringReader.ReadToEnd()
sub rsp,28
mov rax,[rcx+8]
test rax,rax
je short 000000000000873E
mov edx,[rcx+10]
mov r8d,[rax+8]
mov [rcx+10],r8d
test edx,edx
je short 0000000000008738
sub r8d,edx
mov rcx,rax
call qword ptr [3360]
nop
add rsp,28
ret
call qword ptr [51B0]
int 3
; Total bytes of code 53 Compare Jit Disasm; System.IO.Tests.StringReaderReadToEndTests.ReadToEndAsync()
push rbp
push rdi
push rsi
sub rsp,30
lea rbp,[rsp+40]
mov [rbp+0FFE0],rsp
mov rsi,rcx
mov rcx,offset MT_System.IO.StringReader
call 0000000000002AE0
mov rdi,rax
mov rdx,[rsi+8]
test rdx,rdx
je near ptr 0000000000008278
lea rcx,[rdi+8]
call 0000000000000010
mov rcx,rdi
mov [rbp+0FFE8],rcx
call qword ptr [0B1C0]
mov rsi,rax
test rsi,rsi
je short 0000000000008237
mov rcx,offset MT_System.Threading.Tasks.Task`1[[System.String, System.Private.CoreLib]]
call 0000000000002AE0
mov rdi,rax
mov dword ptr [rdi+34],1000000
lea rcx,[rdi+38]
mov rdx,rsi
call 0000000000000010
jmp short 0000000000008258
mov rcx,7FFF00B24BF0
mov edx,2F
call 0000000000001230
mov rcx,1A39B8095D8
mov rdi,[rcx]
xor ecx,ecx
mov rax,[rbp+0FFE8]
mov [rax+8],rcx
mov [rax+10],ecx
mov rcx,rax
call 0000000000000FB0
mov rax,rdi
add rsp,30
pop rsi
pop rdi
pop rbp
ret
mov ecx,11
call qword ptr [0B7B0]
int 3
push rbp
push rdi
push rsi
sub rsp,30
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+40]
xor ecx,ecx
mov rax,[rbp+0FFE8]
mov [rax+8],rcx
mov [rax+10],ecx
mov rcx,rax
call 0000000000000FB0
nop
add rsp,30
pop rsi
pop rdi
pop rbp
ret
; Total bytes of code 246 ; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000084C7
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [0DCD8]
jmp short 00000000000084BA
; Total bytes of code 47 ; System.IO.StringReader.ReadToEnd()
sub rsp,28
mov rax,[rcx+8]
test rax,rax
je short 00000000000083DB
mov edx,[rcx+10]
mov r8d,[rax+8]
mov [rcx+10],r8d
test edx,edx
je short 00000000000083D5
mov rcx,rax
call qword ptr [3348]
nop
add rsp,28
ret
call qword ptr [51B0]
int 3
; Total bytes of code 50 System.IO.Tests.StringReaderReadToEndTests.ReadToEndAsync(LineLengthRange: [ 0, 0])
Description of detection logic
; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 0000000000008827
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [0FE70]
jmp short 000000000000881A
; Total bytes of code 47 ; System.IO.StringReader.ReadToEnd()
sub rsp,28
mov rax,[rcx+8]
test rax,rax
je short 00000000000085CE
mov edx,[rcx+10]
mov r8d,[rax+8]
mov [rcx+10],r8d
test edx,edx
je short 00000000000085C8
sub r8d,edx
mov rcx,rax
call qword ptr [3360]
nop
add rsp,28
ret
call qword ptr [51B0]
int 3
; Total bytes of code 53 Compare Jit Disasm; System.IO.Tests.StringReaderReadToEndTests.ReadToEndAsync()
push rbp
push rdi
push rsi
sub rsp,30
lea rbp,[rsp+40]
mov [rbp+0FFE0],rsp
mov rsi,rcx
mov rcx,offset MT_System.IO.StringReader
call 0000000000002AE0
mov rdi,rax
mov rdx,[rsi+8]
test rdx,rdx
je near ptr 0000000000008278
lea rcx,[rdi+8]
call 0000000000000010
mov rcx,rdi
mov [rbp+0FFE8],rcx
call qword ptr [0B1C0]
mov rsi,rax
test rsi,rsi
je short 0000000000008237
mov rcx,offset MT_System.Threading.Tasks.Task`1[[System.String, System.Private.CoreLib]]
call 0000000000002AE0
mov rdi,rax
mov dword ptr [rdi+34],1000000
lea rcx,[rdi+38]
mov rdx,rsi
call 0000000000000010
jmp short 0000000000008258
mov rcx,7FFF00B94BF0
mov edx,2F
call 0000000000001230
mov rcx,24F428095D8
mov rdi,[rcx]
xor ecx,ecx
mov rax,[rbp+0FFE8]
mov [rax+8],rcx
mov [rax+10],ecx
mov rcx,rax
call 0000000000000FB0
mov rax,rdi
add rsp,30
pop rsi
pop rdi
pop rbp
ret
mov ecx,11
call qword ptr [0B7B0]
int 3
push rbp
push rdi
push rsi
sub rsp,30
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+40]
xor ecx,ecx
mov rax,[rbp+0FFE8]
mov [rax+8],rcx
mov [rax+10],ecx
mov rcx,rax
call 0000000000000FB0
nop
add rsp,30
pop rsi
pop rdi
pop rbp
ret
; Total bytes of code 246 ; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000084C7
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [0DCD8]
jmp short 00000000000084BA
; Total bytes of code 47 ; System.IO.StringReader.ReadToEnd()
sub rsp,28
mov rax,[rcx+8]
test rax,rax
je short 00000000000083DB
mov edx,[rcx+10]
mov r8d,[rax+8]
mov [rcx+10],r8d
test edx,edx
je short 00000000000083D5
mov rcx,rax
call qword ptr [3348]
nop
add rsp,28
ret
call qword ptr [51B0]
int 3
; Total bytes of code 50 System.IO.Tests.StringReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 33, 128])
Description of detection logic
; System.IO.StringReader.ReadToEnd()
sub rsp,28
mov rax,[rcx+8]
test rax,rax
je short 00000000000085DE
mov edx,[rcx+10]
mov r8d,[rax+8]
mov [rcx+10],r8d
test edx,edx
je short 00000000000085D8
sub r8d,edx
mov rcx,rax
call qword ptr [3360]
nop
add rsp,28
ret
call qword ptr [3990]
int 3
; Total bytes of code 53 System.IO.Tests.StringReaderReadToEndTests.ReadToEndAsync(LineLengthRange: [ 129, 1024])
Description of detection logic
; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 0000000000008847
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [0D978]
jmp short 000000000000883A
; Total bytes of code 47 ; System.IO.StringReader.ReadToEnd()
sub rsp,28
mov rax,[rcx+8]
test rax,rax
je short 000000000000875E
mov edx,[rcx+10]
mov r8d,[rax+8]
mov [rcx+10],r8d
test edx,edx
je short 0000000000008758
sub r8d,edx
mov rcx,rax
call qword ptr [3360]
nop
add rsp,28
ret
call qword ptr [51B0]
int 3
; Total bytes of code 53 Compare Jit Disasm; System.IO.Tests.StringReaderReadToEndTests.ReadToEndAsync()
push rbp
push rdi
push rsi
sub rsp,30
lea rbp,[rsp+40]
mov [rbp+0FFE0],rsp
mov rsi,rcx
mov rcx,offset MT_System.IO.StringReader
call 0000000000002AE0
mov rdi,rax
mov rdx,[rsi+8]
test rdx,rdx
je near ptr 0000000000008278
lea rcx,[rdi+8]
call 0000000000000010
mov rcx,rdi
mov [rbp+0FFE8],rcx
call qword ptr [0B1C0]
mov rsi,rax
test rsi,rsi
je short 0000000000008237
mov rcx,offset MT_System.Threading.Tasks.Task`1[[System.String, System.Private.CoreLib]]
call 0000000000002AE0
mov rdi,rax
mov dword ptr [rdi+34],1000000
lea rcx,[rdi+38]
mov rdx,rsi
call 0000000000000010
jmp short 0000000000008258
mov rcx,7FFF00B24BF0
mov edx,2F
call 0000000000001230
mov rcx,23AD24095D8
mov rdi,[rcx]
xor ecx,ecx
mov rax,[rbp+0FFE8]
mov [rax+8],rcx
mov [rax+10],ecx
mov rcx,rax
call 0000000000000FB0
mov rax,rdi
add rsp,30
pop rsi
pop rdi
pop rbp
ret
mov ecx,11
call qword ptr [0B7B0]
int 3
push rbp
push rdi
push rsi
sub rsp,30
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+40]
xor ecx,ecx
mov rax,[rbp+0FFE8]
mov [rax+8],rcx
mov [rax+10],ecx
mov rcx,rax
call 0000000000000FB0
nop
add rsp,30
pop rsi
pop rdi
pop rbp
ret
; Total bytes of code 246 ; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000084C7
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [0DCD8]
jmp short 00000000000084BA
; Total bytes of code 47 ; System.IO.StringReader.ReadToEnd()
sub rsp,28
mov rax,[rcx+8]
test rax,rax
je short 00000000000083DB
mov edx,[rcx+10]
mov r8d,[rax+8]
mov [rcx+10],r8d
test edx,edx
je short 00000000000083D5
mov rcx,rax
call qword ptr [3348]
nop
add rsp,28
ret
call qword ptr [51B0]
int 3
; Total bytes of code 50 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in System.Threading.Tests.Perf_CancellationToken
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Threading.Tests.Perf_CancellationToken*' PayloadsHistogramSystem.Threading.Tests.Perf_CancellationToken.CreateLinkedTokenSource1
Description of detection logic
; System.Threading.CancellationTokenSource.CreateLinkedTokenSource(System.Threading.CancellationToken, System.Threading.CancellationToken)
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov rdi,rdx
test rsi,rsi
je short 000000000000F383
test rdi,rdi
je short 000000000000F395
mov rcx,offset MT_System.Threading.CancellationTokenSource+Linked2CancellationTokenSource
call 000000000000C390
mov rbx,rax
mov rcx,rbx
mov rdx,rsi
mov r8,rdi
call qword ptr [19A8]
mov rax,rbx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,rdi
call qword ptr [0FF48]
nop
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,offset MT_System.Threading.CancellationTokenSource+Linked1CancellationTokenSource
call 000000000000C390
mov rdi,rax
mov rcx,rdi
mov rdx,rsi
call qword ptr [1978]
mov rax,rdi
add rsp,20
pop rbx
pop rsi
pop rdi
ret
; Total bytes of code 126 ; System.Threading.CancellationTokenSource.Dispose(Boolean)
push rdi
push rsi
push rbp
push rbx
sub rsp,28
mov rsi,rcx
test dl,dl
je short 000000000000FB7F
cmp byte ptr [rsi+24],0
jne short 000000000000FB7F
mov rcx,[rsi+8]
test rcx,rcx
jne short 000000000000FB88
xor ecx,ecx
mov [rsi+18],rcx
cmp qword ptr [rsi+10],0
jne short 000000000000FBB9
mov byte ptr [rsi+24],1
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
ret
xor eax,eax
mov [rsi+8],rax
call qword ptr [7048]
jmp short 000000000000FB6E
mov rcx,rbx
mov edx,1
mov rax,[rbp+40]
call qword ptr [rax+30]
mov rcx,rbx
call qword ptr [0BAC8]
mov rcx,rdi
call qword ptr [0BAC8]
jmp short 000000000000FB7B
lea rcx,[rsi+10]
xor edx,edx
call 000000000000EFA0
mov rdi,rax
test rdi,rdi
je short 000000000000FB7B
cmp dword ptr [rsi+20],1
je short 000000000000FB7B
mov rbx,[rdi+8]
test rbx,rbx
je short 000000000000FBAE
mov rbp,[rbx]
mov rcx,offset MT_Microsoft.Win32.SafeHandles.SafeFileHandle
cmp rbp,rcx
jne short 000000000000FB96
mov rcx,rbx
mov edx,1
call qword ptr [93C0]
jmp short 000000000000FBA5
; Total bytes of code 173 ; System.GC.SuppressFinalize(System.Object)
sub rsp,28
test rcx,rcx
je short 000000000000F262
add rsp,28
jmp near ptr 000000000000F440
mov ecx,135D
mov rdx,7FF924EB4000
call 00000000000014A0
mov rcx,rax
call qword ptr [33F0]
int 3
; Total bytes of code 48 Compare Jit Disasm; System.Threading.Tests.Perf_CancellationToken.CreateLinkedTokenSource1()
push rsi
sub rsp,20
mov rcx,[rcx+20]
xor edx,edx
call qword ptr [0FF30]
mov rsi,rax
mov rcx,offset MT_System.Threading.CancellationTokenSource
cmp [rsi],rcx
jne short 000000000000F311
mov rcx,rsi
mov edx,1
call qword ptr [27C8]
mov rcx,rsi
call qword ptr [0BAC8]
nop
add rsp,20
pop rsi
ret
mov rcx,rsi
mov edx,1
mov rax,[rsi]
mov rax,[rax+40]
call qword ptr [rax+28]
jmp short 000000000000F301
; Total bytes of code 85 ; System.Threading.CancellationTokenSource.CreateLinkedTokenSource(System.Threading.CancellationToken, System.Threading.CancellationToken)
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov rdi,rdx
test rsi,rsi
je short 000000000000F383
test rdi,rdi
je short 000000000000F395
mov rcx,offset MT_System.Threading.CancellationTokenSource+Linked2CancellationTokenSource
call 0000000000002AE0
mov rbx,rax
mov rcx,rbx
mov rdx,rsi
mov r8,rdi
call qword ptr [19A8]
mov rax,rbx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,rdi
call qword ptr [0FF48]
nop
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,offset MT_System.Threading.CancellationTokenSource+Linked1CancellationTokenSource
call 0000000000002AE0
mov rdi,rax
mov rcx,rdi
mov rdx,rsi
call qword ptr [1978]
mov rax,rdi
add rsp,20
pop rbx
pop rsi
pop rdi
ret
; Total bytes of code 126 ; System.Threading.CancellationTokenSource.Dispose(Boolean)
push rdi
push rsi
push rbp
push rbx
sub rsp,28
mov rsi,rcx
test dl,dl
je short 000000000000FB7F
cmp byte ptr [rsi+24],0
jne short 000000000000FB7F
mov rcx,[rsi+8]
test rcx,rcx
jne short 000000000000FB88
xor ecx,ecx
mov [rsi+18],rcx
cmp qword ptr [rsi+10],0
jne short 000000000000FBB9
mov byte ptr [rsi+24],1
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
ret
xor eax,eax
mov [rsi+8],rax
call qword ptr [7048]
jmp short 000000000000FB6E
mov rcx,rbx
mov edx,1
mov rax,[rbp+40]
call qword ptr [rax+30]
mov rcx,rbx
call qword ptr [0BAC8]
mov rcx,rdi
call qword ptr [0BAC8]
jmp short 000000000000FB7B
lea rcx,[rsi+10]
xor edx,edx
call 000000000000EB70
mov rdi,rax
test rdi,rdi
je short 000000000000FB7B
cmp dword ptr [rsi+20],1
je short 000000000000FB7B
mov rbx,[rdi+8]
test rbx,rbx
je short 000000000000FBAE
mov rbp,[rbx]
mov rcx,offset MT_Microsoft.Win32.SafeHandles.SafeFileHandle
cmp rbp,rcx
jne short 000000000000FB96
mov rcx,rbx
mov edx,1
call qword ptr [93C0]
jmp short 000000000000FBA5
; Total bytes of code 173 ; System.GC.SuppressFinalize(System.Object)
sub rsp,28
test rcx,rcx
je short 000000000000F262
add rsp,28
jmp near ptr 0000000000000FB0
mov ecx,135D
mov rdx,7FF94E2A4000
call 000000000000A140
mov rcx,rax
call qword ptr [33F0]
int 3
; Total bytes of code 48 System.Threading.Tests.Perf_CancellationToken.CreateLinkedTokenSource3
Description of detection logic
; System.Threading.CancellationTokenSource.CreateLinkedTokenSource(System.Threading.CancellationToken[])
push rdi
push rsi
sub rsp,28
mov rsi,rcx
test rsi,rsi
je short 000000000000F95C
mov edi,[rsi+8]
cmp edi,2
ja near ptr 000000000000F9D9
mov ecx,edi
lea rax,[0FA08]
mov eax,[rax+rcx*4]
lea rdx,[0F919]
add rax,rdx
jmp rax
test edi,edi
je near ptr 000000000000F9FF
mov rcx,[rsi+10]
call qword ptr [0FF48]
nop
add rsp,28
pop rsi
pop rdi
ret
mov ecx,165EF
mov rdx,7FF9B1F34000
call 00000000000014A0
mov rcx,rax
call qword ptr [33F0]
int 3
mov rcx,offset MT_System.ArgumentException
call 000000000000C390
mov rdi,rax
mov ecx,0AE63
mov rdx,7FF9B1F34000
call 00000000000014A0
mov rcx,rax
call qword ptr [74E0]
mov rdx,rax
mov rcx,rdi
call qword ptr [0BB88]
mov rcx,rdi
call 0000000000004690
test edi,edi
je short 000000000000F9FF
mov rcx,[rsi+10]
cmp edi,1
jbe short 000000000000F9FF
mov rdx,[rsi+18]
call qword ptr [0FF30]
jmp near ptr 000000000000F954
mov rcx,offset MT_System.Threading.CancellationTokenSource+LinkedNCancellationTokenSource
call 000000000000C390
mov rdi,rax
mov rcx,rdi
mov rdx,rsi
call qword ptr [17E0]
mov rax,rdi
jmp near ptr 000000000000F954
call 0000000000006930
int 3
; Total bytes of code 245 ; System.Threading.CancellationTokenSource.Dispose(Boolean)
push rdi
push rsi
push rbp
push rbx
sub rsp,28
mov rsi,rcx
test dl,dl
je short 000000000000FC8F
cmp byte ptr [rsi+24],0
jne short 000000000000FC8F
mov rcx,[rsi+8]
test rcx,rcx
jne short 000000000000FC98
xor ecx,ecx
mov [rsi+18],rcx
cmp qword ptr [rsi+10],0
jne short 000000000000FCC9
mov byte ptr [rsi+24],1
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
ret
xor eax,eax
mov [rsi+8],rax
call qword ptr [50A8]
jmp short 000000000000FC7E
mov rcx,rbx
mov edx,1
mov rax,[rbp+40]
call qword ptr [rax+30]
mov rcx,rbx
call qword ptr [0BAC8]
mov rcx,rdi
call qword ptr [0BAC8]
jmp short 000000000000FC8B
lea rcx,[rsi+10]
xor edx,edx
call 000000000000EFA0
mov rdi,rax
test rdi,rdi
je short 000000000000FC8B
cmp dword ptr [rsi+20],1
je short 000000000000FC8B
mov rbx,[rdi+8]
test rbx,rbx
je short 000000000000FCBE
mov rbp,[rbx]
mov rcx,offset MT_Microsoft.Win32.SafeHandles.SafeFileHandle
cmp rbp,rcx
jne short 000000000000FCA6
mov rcx,rbx
mov edx,1
call qword ptr [93C0]
jmp short 000000000000FCB5
; Total bytes of code 173 ; System.GC.SuppressFinalize(System.Object)
sub rsp,28
test rcx,rcx
je short 000000000000F242
add rsp,28
jmp near ptr 000000000000F440
mov ecx,135D
mov rdx,7FF9B1F34000
call 00000000000014A0
mov rcx,rax
call qword ptr [33F0]
int 3
; Total bytes of code 48 Compare Jit Disasm; System.Threading.Tests.Perf_CancellationToken.CreateLinkedTokenSource3()
push rsi
sub rsp,20
mov rcx,[rcx+10]
call qword ptr [0FF60]
mov rsi,rax
mov rcx,offset MT_System.Threading.CancellationTokenSource
cmp [rsi],rcx
jne short 000000000000F8DD
mov rcx,rsi
mov edx,1
call qword ptr [27C8]
mov rcx,rsi
add rsp,20
pop rsi
jmp qword ptr [0BAC8]
mov rcx,rsi
mov edx,1
mov rax,[rsi]
mov rax,[rax+40]
call qword ptr [rax+28]
jmp short 000000000000F8CF
; Total bytes of code 81 ; System.Threading.CancellationTokenSource.CreateLinkedTokenSource(System.Threading.CancellationToken[])
push rdi
push rsi
sub rsp,28
mov rsi,rcx
test rsi,rsi
je short 000000000000F95C
mov edi,[rsi+8]
cmp edi,2
ja near ptr 000000000000F9D9
mov ecx,edi
lea rax,[0FA08]
mov eax,[rax+rcx*4]
lea rdx,[0F919]
add rax,rdx
jmp rax
test edi,edi
je near ptr 000000000000F9FF
mov rcx,[rsi+10]
call qword ptr [0FF48]
nop
add rsp,28
pop rsi
pop rdi
ret
mov ecx,16661
mov rdx,7FFF40D64000
call 000000000000A140
mov rcx,rax
call qword ptr [33F0]
int 3
mov rcx,offset MT_System.ArgumentException
call 0000000000002AE0
mov rdi,rax
mov ecx,0AE63
mov rdx,7FFF40D64000
call 000000000000A140
mov rcx,rax
call qword ptr [74E0]
mov rdx,rax
mov rcx,rdi
call qword ptr [0BB88]
mov rcx,rdi
call 0000000000002B00
test edi,edi
je short 000000000000F9FF
mov rcx,[rsi+10]
cmp edi,1
jbe short 000000000000F9FF
mov rdx,[rsi+18]
call qword ptr [0FF30]
jmp near ptr 000000000000F954
mov rcx,offset MT_System.Threading.CancellationTokenSource+LinkedNCancellationTokenSource
call 0000000000002AE0
mov rdi,rax
mov rcx,rdi
mov rdx,rsi
call qword ptr [17E0]
mov rax,rdi
jmp near ptr 000000000000F954
call 000000000000AB50
int 3
; Total bytes of code 245 ; System.Threading.CancellationTokenSource.Dispose(Boolean)
push rdi
push rsi
push rbp
push rbx
sub rsp,28
mov rsi,rcx
test dl,dl
je short 000000000000FC8F
cmp byte ptr [rsi+24],0
jne short 000000000000FC8F
mov rcx,[rsi+8]
test rcx,rcx
jne short 000000000000FC98
xor ecx,ecx
mov [rsi+18],rcx
cmp qword ptr [rsi+10],0
jne short 000000000000FCC9
mov byte ptr [rsi+24],1
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
ret
xor eax,eax
mov [rsi+8],rax
call qword ptr [50D8]
jmp short 000000000000FC7E
mov rcx,rbx
mov edx,1
mov rax,[rbp+40]
call qword ptr [rax+30]
mov rcx,rbx
call qword ptr [0BAC8]
mov rcx,rdi
call qword ptr [0BAC8]
jmp short 000000000000FC8B
lea rcx,[rsi+10]
xor edx,edx
call 000000000000EB70
mov rdi,rax
test rdi,rdi
je short 000000000000FC8B
cmp dword ptr [rsi+20],1
je short 000000000000FC8B
mov rbx,[rdi+8]
test rbx,rbx
je short 000000000000FCBE
mov rbp,[rbx]
mov rcx,offset MT_Microsoft.Win32.SafeHandles.SafeFileHandle
cmp rbp,rcx
jne short 000000000000FCA6
mov rcx,rbx
mov edx,1
call qword ptr [93C0]
jmp short 000000000000FCB5
; Total bytes of code 173 ; System.GC.SuppressFinalize(System.Object)
sub rsp,28
test rcx,rcx
je short 000000000000F242
add rsp,28
jmp near ptr 0000000000000FB0
mov ecx,135D
mov rdx,7FFF40D64000
call 000000000000A140
mov rcx,rax
call qword ptr [33F0]
int 3
; Total bytes of code 48 System.Threading.Tests.Perf_CancellationToken.RegisterAndUnregister_Serial
Description of detection logic
; System.Threading.CancellationToken.Register(System.Action, Boolean)
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,30
mov rsi,rcx
mov rdi,rdx
mov rbx,r8
mov ebp,r9d
test rbx,rbx
je near ptr 000000000000F5DB
mov rcx,164488007F0
mov r8,[rcx]
test r8,r8
je short 000000000000F58E
movzx ecx,bpl
mov [rsp+20],ecx
mov dword ptr [rsp+28],1
mov rcx,rsi
mov rdx,rdi
mov r9,rbx
call qword ptr [1630]
mov rax,rdi
add rsp,30
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
mov rcx,offset MT_System.Action`1[[System.Object, System.Private.CoreLib]]
call 000000000000C390
mov r14,rax
mov rdx,164488007E8
mov rdx,[rdx]
lea rcx,[r14+8]
call 0000000000000010
mov rdx,offset System.Threading.CancellationToken+<>c.<Register>b__12_0(System.Object)
mov [r14+18],rdx
mov rcx,164488007F0
mov rdx,r14
call 0000000000000010
mov r8,r14
jmp short 000000000000F561
mov ecx,165DD
mov rdx,7FFF40C74000
call 00000000000014A0
mov rcx,rax
call qword ptr [33F0]
int 3
; Total bytes of code 201 ; System.Threading.CancellationTokenSource+Registrations.Unregister(Int64, CallbackNode)
push rbp
push rdi
push rsi
push rbx
sub rsp,28
lea rbp,[rsp+40]
mov [rbp+0FFE0],rsp
mov [rbp+10],rcx
mov rdi,rdx
mov rsi,r8
test rdi,rdi
je near ptr 000000000000FC75
cmp [rcx],cl
lea rbx,[rcx+34]
mov rax,rbx
mov edx,1
xchg edx,[rax]
test edx,edx
jne near ptr 000000000000FC67
cmp [rsi+40],rdi
jne short 000000000000FBEB
mov rcx,[rbp+10]
cmp [rcx+10],rsi
jne short 000000000000FC02
mov rdx,[rsi+18]
lea rcx,[rcx+10]
call 0000000000000010
jmp short 000000000000FC13
xor eax,eax
jmp short 000000000000FC5A
mov rdx,[rsi+18]
lea rcx,[rdx+10]
mov rdx,[rsi+10]
call 0000000000000010
jmp short 000000000000FC1A
mov rdx,[rsi+10]
lea rcx,[rdx+18]
mov rdx,[rsi+18]
call 0000000000000010
cmp qword ptr [rsi+18],0
jne short 000000000000FBEF
xor edx,edx
mov [rsi+40],rdx
mov [rsi+20],rdx
mov [rsi+28],rdx
mov [rsi+30],rdx
mov [rsi+38],rdx
mov [rsi+10],rdx
mov rcx,[rbp+10]
mov rdx,[rcx+18]
lea rcx,[rsi+18]
call 0000000000000010
mov rcx,[rbp+10]
lea rcx,[rcx+18]
mov rdx,rsi
call 0000000000000010
mov eax,1
xor edx,edx
mov [rbx],edx
add rsp,28
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx,rax
call qword ptr [30C0]
jmp near ptr 000000000000FBCC
xor eax,eax
add rsp,28
pop rbx
pop rsi
pop rdi
pop rbp
ret
push rbp
push rdi
push rsi
push rbx
sub rsp,28
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+40]
mov rcx,[rbp+10]
lea rbx,[rcx+34]
xor eax,eax
mov [rbx],eax
add rsp,28
pop rbx
pop rsi
pop rdi
pop rbp
ret
; Total bytes of code 282 Compare Jit Disasm; System.Threading.Tests.Perf_CancellationToken.RegisterAndUnregister_Serial()
push rdi
push rsi
push rbx
sub rsp,30
xor eax,eax
mov [rsp+20],rax
mov [rsp+28],rax
cmp [rcx],cl
add rcx,18
mov rsi,rcx
mov rcx,28D470088A0
mov r8,[rcx]
test r8,r8
jne short 000000000000F479
mov rcx,offset MT_System.Action
call 0000000000002AE0
mov rdi,rax
mov rdx,28D47008898
mov rdx,[rdx]
lea rcx,[rdi+8]
call 0000000000000010
mov rdx,offset System.Threading.Tests.Perf_CancellationToken+<>c.<RegisterAndUnregister_Serial>b__5_0()
mov [rdi+18],rdx
mov rcx,28D470088A0
mov rdx,rdi
call 0000000000000010
mov r8,rdi
lea rdx,[rsp+20]
mov rcx,rsi
xor r9d,r9d
call qword ptr [15A0]
mov rsi,[rsp+20]
test rsi,rsi
jne short 000000000000F49C
add rsp,30
pop rbx
pop rsi
pop rdi
ret
mov rcx,[rsi+8]
mov rdx,[rsp+28]
mov r8,rsi
cmp [rcx],ecx
call qword ptr [3030]
test eax,eax
jne short 000000000000F494
mov rdi,[rsp+28]
mov rax,[rsi+8]
mov rax,[rax+8]
cmp dword ptr [rax+20],0
je short 000000000000F494
cmp dword ptr [rax+20],2
je short 000000000000F494
mov rax,[rsi+8]
mov ebx,[rax+30]
call 0000000000009E60
cmp ebx,eax
je short 000000000000F494
mov rcx,[rsi+8]
mov rdx,rdi
cmp [rcx],ecx
call qword ptr [3060]
jmp short 000000000000F494
; Total bytes of code 238 ; System.Threading.CancellationToken.Register(System.Action, Boolean)
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,30
mov rsi,rcx
mov rdi,rdx
mov rbx,r8
mov ebp,r9d
test rbx,rbx
je near ptr 000000000000F5DB
mov rcx,28D470007F0
mov r8,[rcx]
test r8,r8
je short 000000000000F58E
movzx ecx,bpl
mov [rsp+20],ecx
mov dword ptr [rsp+28],1
mov rcx,rsi
mov rdx,rdi
mov r9,rbx
call qword ptr [1630]
mov rax,rdi
add rsp,30
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
mov rcx,offset MT_System.Action`1[[System.Object, System.Private.CoreLib]]
call 0000000000002AE0
mov r14,rax
mov rdx,28D470007E8
mov rdx,[rdx]
lea rcx,[r14+8]
call 0000000000000010
mov rdx,offset System.Threading.CancellationToken+<>c.<Register>b__12_0(System.Object)
mov [r14+18],rdx
mov rcx,28D470007F0
mov rdx,r14
call 0000000000000010
mov r8,r14
jmp short 000000000000F561
mov ecx,1664F
mov rdx,7FFA83714000
call 000000000000A140
mov rcx,rax
call qword ptr [33F0]
int 3
; Total bytes of code 201 ; System.Threading.CancellationTokenSource+Registrations.Unregister(Int64, CallbackNode)
push rbp
push rdi
push rsi
push rbx
sub rsp,28
lea rbp,[rsp+40]
mov [rbp+0FFE0],rsp
mov [rbp+10],rcx
mov rdi,rdx
mov rsi,r8
test rdi,rdi
je near ptr 000000000000FC75
cmp [rcx],cl
lea rbx,[rcx+34]
mov rax,rbx
mov edx,1
xchg edx,[rax]
test edx,edx
jne near ptr 000000000000FC67
cmp [rsi+40],rdi
jne short 000000000000FBEB
mov rcx,[rbp+10]
cmp [rcx+10],rsi
jne short 000000000000FC02
mov rdx,[rsi+18]
lea rcx,[rcx+10]
call 0000000000000010
jmp short 000000000000FC13
xor eax,eax
jmp short 000000000000FC5A
mov rdx,[rsi+18]
lea rcx,[rdx+10]
mov rdx,[rsi+10]
call 0000000000000010
jmp short 000000000000FC1A
mov rdx,[rsi+10]
lea rcx,[rdx+18]
mov rdx,[rsi+18]
call 0000000000000010
cmp qword ptr [rsi+18],0
jne short 000000000000FBEF
xor edx,edx
mov [rsi+40],rdx
mov [rsi+20],rdx
mov [rsi+28],rdx
mov [rsi+30],rdx
mov [rsi+38],rdx
mov [rsi+10],rdx
mov rcx,[rbp+10]
mov rdx,[rcx+18]
lea rcx,[rsi+18]
call 0000000000000010
mov rcx,[rbp+10]
lea rcx,[rcx+18]
mov rdx,rsi
call 0000000000000010
mov eax,1
xor edx,edx
mov [rbx],edx
add rsp,28
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx,rax
call qword ptr [30C0]
jmp near ptr 000000000000FBCC
xor eax,eax
add rsp,28
pop rbx
pop rsi
pop rdi
pop rbp
ret
push rbp
push rdi
push rsi
push rbx
sub rsp,28
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+40]
mov rcx,[rbp+10]
lea rbx,[rcx+34]
xor eax,eax
mov [rbx],eax
add rsp,28
pop rbx
pop rsi
pop rdi
pop rbp
ret
; Total bytes of code 282 DocsProfiling workflow for dotnet/runtime repository
Regressions in System.Tests.Perf_Int64
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_Int64*' PayloadsHistogramSystem.Tests.Perf_Int64.ToString(value: 12345)
Description of detection logic
; System.Number.Int64ToDecStr(Int64)
push rsi
sub rsp,20
mov rsi,rcx
test rsi,rsi
jge short 000000000000F41A
call qword ptr [5858]
mov r8,[rax+28]
mov rcx,rsi
mov edx,0FFFFFFFF
add rsp,20
pop rsi
jmp qword ptr [9468]
mov rcx,rsi
add rsp,20
pop rsi
jmp qword ptr [9540]
; Total bytes of code 56 Compare Jit Disasm; System.Tests.Perf_Int64.ToString(Int64)
sub rsp,28
mov rcx,rdx
call qword ptr [9450]
nop
add rsp,28
ret
; Total bytes of code 19 ; System.Number.Int64ToDecStr(Int64)
push rsi
sub rsp,20
mov rsi,rcx
test rsi,rsi
jge short 000000000000F41A
call qword ptr [5858]
mov r8,[rax+28]
mov rcx,rsi
mov edx,0FFFFFFFF
add rsp,20
pop rsi
jmp qword ptr [9468]
mov rcx,rsi
add rsp,20
pop rsi
jmp qword ptr [9540]
; Total bytes of code 56 DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in Benchstone.BenchI.NDhrystone
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'Benchstone.BenchI.NDhrystone*' PayloadsHistogramBenchstone.BenchI.NDhrystone.Test
Description of detection logic
Compare Jit Disasm; BenchmarkDotNet.Autogenerated.Runnable_0.__ForDisassemblyDiagnoser__()
push rbp
sub rsp,20
lea rbp,[rsp+20]
mov [rbp+10],rcx
mov rcx,[rbp+10]
cmp dword ptr [rcx+40],0B
jne short 0000000000005AE9
mov rcx,[rbp+10]
call qword ptr [0B258]
nop
add rsp,20
pop rbp
ret
xor eax,eax
add rsp,20
pop rbp
ret
; Total bytes of code 49 DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Tests.Perf_Object
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_Object*' PayloadsHistogramSystem.Tests.Perf_Object.GetType_
Description of detection logic
Compare Jit Disasm; System.Tests.Perf_Object.GetType_()
sub rsp,28
mov rcx,[rcx+8]
call 000000000000CAB0
nop
add rsp,28
ret
; Total bytes of code 19 System.Tests.Perf_Object.ctor
Description of detection logic
Compare Jit Disasm; System.Tests.Perf_Object.ctor()
sub rsp,28
mov rcx,offset MT_System.Object
call 0000000000002AE0
nop
add rsp,28
ret
; Total bytes of code 25 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in PerfLabTests.CastingPerf2.CastingPerf
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'PerfLabTests.CastingPerf2.CastingPerf*' PayloadsHistogramPerfLabTests.CastingPerf2.CastingPerf.ObjObjrefValueType
Description of detection logic
Compare Jit Disasm; PerfLabTests.CastingPerf2.CastingPerf.ObjObjrefValueType()
push r15
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,28
xor ebx,ebx
mov rbp,7FFB26E0BEC4
cmp dword ptr [rbp],0
jle short 000000000000F4EB
mov r14,offset MT_PerfLabTests.CastingPerf2.FooORVT
mov rcx,r14
call 0000000000002AE0
mov r15,rax
mov rax,2044CC07F90
mov rsi,[rax]
add rsi,8
lea rdi,[r15+8]
call 0000000000002430
call 0000000000002430
mov rcx,2044CC07FB8
mov rdx,r15
call 0000000000000010
inc ebx
cmp ebx,[rbp]
jl short 000000000000F4A8
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
; Total bytes of code 120 PerfLabTests.CastingPerf2.CastingPerf.FooObjCastIfIsa
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.IsInstanceOfClass(Void*, System.Object)
mov rax,rdx
test rax,rax
je short 000000000000F3CD
cmp [rax],rcx
jne short 000000000000F3CE
ret
mov rdx,[rax]
mov rdx,[rdx+10]
cmp rdx,rcx
je short 000000000000F40B
test rdx,rdx
je short 000000000000F409
mov rdx,[rdx+10]
cmp rdx,rcx
je short 000000000000F40B
test rdx,rdx
je short 000000000000F409
mov rdx,[rdx+10]
cmp rdx,rcx
je short 000000000000F40B
test rdx,rdx
je short 000000000000F409
mov rdx,[rdx+10]
cmp rdx,rcx
je short 000000000000F40B
test rdx,rdx
jne short 000000000000F40C
xor eax,eax
ret
mov rdx,[rdx+10]
jmp short 000000000000F3D5
; Total bytes of code 82 Compare Jit Disasm; PerfLabTests.CastingPerf2.CastingPerf.FooObjCastIfIsa()
push rdi
push rsi
push rbx
sub rsp,20
xor esi,esi
mov edi,[0BEC4]
test edi,edi
jle short 000000000000F530
mov rdx,1676E807FB8
mov rbx,[rdx]
mov rdx,rbx
mov rcx,offset MT_PerfLabTests.CastingPerf2.Foo
call qword ptr [0B828]
test rax,rax
je short 000000000000F52A
mov rdx,rbx
mov rax,rdx
test rax,rax
je short 000000000000F518
mov rcx,offset MT_PerfLabTests.CastingPerf2.Foo
cmp [rax],rcx
je short 000000000000F518
call qword ptr [0B8B8]
mov rcx,1676E808008
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F4D3
add rsp,20
pop rbx
pop rsi
pop rdi
ret
; Total bytes of code 120 ; System.Runtime.CompilerServices.CastHelpers.IsInstanceOfClass(Void*, System.Object)
mov rax,rdx
test rax,rax
je short 000000000000F3CD
cmp [rax],rcx
jne short 000000000000F3CE
ret
mov rdx,[rax]
mov rdx,[rdx+10]
cmp rdx,rcx
je short 000000000000F40B
test rdx,rdx
je short 000000000000F409
mov rdx,[rdx+10]
cmp rdx,rcx
je short 000000000000F40B
test rdx,rdx
je short 000000000000F409
mov rdx,[rdx+10]
cmp rdx,rcx
je short 000000000000F40B
test rdx,rdx
je short 000000000000F409
mov rdx,[rdx+10]
cmp rdx,rcx
je short 000000000000F40B
test rdx,rdx
jne short 000000000000F40C
xor eax,eax
ret
mov rdx,[rdx+10]
jmp short 000000000000F3D5
; Total bytes of code 82 PerfLabTests.CastingPerf2.CastingPerf.IFooObjIsIFooInterAlia
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.ChkCastInterface(Void*, System.Object)
test rdx,rdx
je short 000000000000F3B3
mov rax,[rdx]
movzx r8d,word ptr [rax+0E]
test r8,r8
je short 000000000000F3DB
mov rax,[rax+38]
cmp r8,4
jl short 000000000000F3CA
cmp [rax],rcx
je short 000000000000F3B3
cmp [rax+8],rcx
je short 000000000000F3B3
cmp [rax+10],rcx
je short 000000000000F3B3
cmp [rax+18],rcx
jne short 000000000000F3B7
mov rax,rdx
ret
add rax,20
add r8,0FFFFFFFFFFFFFFFC
cmp r8,4
jge short 000000000000F39C
test r8,r8
je short 000000000000F3DB
cmp [rax],rcx
je short 000000000000F3B3
add rax,8
dec r8
test r8,r8
jg short 000000000000F3CA
jmp qword ptr [0B870]
; Total bytes of code 97 Compare Jit Disasm; PerfLabTests.CastingPerf2.CastingPerf.IFooObjIsIFooInterAlia()
push rdi
push rsi
sub rsp,28
xor esi,esi
mov edi,[0BEC4]
test edi,edi
jle short 000000000000F447
mov rdx,1E6A1407FB8
mov rdx,[rdx]
mov rcx,offset MT_PerfLabTests.CastingPerf2.IFoo_5
call qword ptr [0B888]
mov rcx,1E6A14080A8
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F412
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 78 ; System.Runtime.CompilerServices.CastHelpers.ChkCastInterface(Void*, System.Object)
test rdx,rdx
je short 000000000000F3B3
mov rax,[rdx]
movzx r8d,word ptr [rax+0E]
test r8,r8
je short 000000000000F3DB
mov rax,[rax+38]
cmp r8,4
jl short 000000000000F3CA
cmp [rax],rcx
je short 000000000000F3B3
cmp [rax+8],rcx
je short 000000000000F3B3
cmp [rax+10],rcx
je short 000000000000F3B3
cmp [rax+18],rcx
jne short 000000000000F3B7
mov rax,rdx
ret
add rax,20
add r8,0FFFFFFFFFFFFFFFC
cmp r8,4
jge short 000000000000F39C
test r8,r8
je short 000000000000F3DB
cmp [rax],rcx
je short 000000000000F3B3
add rax,8
dec r8
test r8,r8
jg short 000000000000F3CA
jmp qword ptr [0B870]
; Total bytes of code 97 PerfLabTests.CastingPerf2.CastingPerf.FooObjIsFoo
Description of detection logic
Compare Jit Disasm; PerfLabTests.CastingPerf2.CastingPerf.FooObjIsFoo()
push rdi
push rsi
sub rsp,28
xor esi,esi
mov edi,[0BEC0]
test edi,edi
jle short 000000000000F454
mov rcx,1B7E4807FB8
mov rdx,[rcx]
mov rax,rdx
test rax,rax
je short 000000000000F43C
mov rcx,offset MT_PerfLabTests.CastingPerf2.Foo
cmp [rax],rcx
je short 000000000000F43C
call qword ptr [0B8B8]
mov rcx,1B7E4808008
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F412
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 91 PerfLabTests.CastingPerf2.CastingPerf.IFooObjIsDescendantOfIFoo
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.ChkCastInterface(Void*, System.Object)
test rdx,rdx
je short 000000000000F3B3
mov rax,[rdx]
movzx r8d,word ptr [rax+0E]
test r8,r8
je short 000000000000F3DB
mov rax,[rax+38]
cmp r8,4
jl short 000000000000F3CA
cmp [rax],rcx
je short 000000000000F3B3
cmp [rax+8],rcx
je short 000000000000F3B3
cmp [rax+10],rcx
je short 000000000000F3B3
cmp [rax+18],rcx
jne short 000000000000F3B7
mov rax,rdx
ret
add rax,20
add r8,0FFFFFFFFFFFFFFFC
cmp r8,4
jge short 000000000000F39C
test r8,r8
je short 000000000000F3DB
cmp [rax],rcx
je short 000000000000F3B3
add rax,8
dec r8
test r8,r8
jg short 000000000000F3CA
jmp qword ptr [0B870]
; Total bytes of code 97 Compare Jit Disasm; PerfLabTests.CastingPerf2.CastingPerf.IFooObjIsDescendantOfIFoo()
push rdi
push rsi
sub rsp,28
xor esi,esi
mov edi,[0BEC4]
test edi,edi
jle short 000000000000F447
mov rdx,1BCA0407FB8
mov rdx,[rdx]
mov rcx,offset MT_PerfLabTests.CastingPerf2.IFoo
call qword ptr [0B888]
mov rcx,1BCA0408058
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F412
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 78 ; System.Runtime.CompilerServices.CastHelpers.ChkCastInterface(Void*, System.Object)
test rdx,rdx
je short 000000000000F3B3
mov rax,[rdx]
movzx r8d,word ptr [rax+0E]
test r8,r8
je short 000000000000F3DB
mov rax,[rax+38]
cmp r8,4
jl short 000000000000F3CA
cmp [rax],rcx
je short 000000000000F3B3
cmp [rax+8],rcx
je short 000000000000F3B3
cmp [rax+10],rcx
je short 000000000000F3B3
cmp [rax+18],rcx
jne short 000000000000F3B7
mov rax,rdx
ret
add rax,20
add r8,0FFFFFFFFFFFFFFFC
cmp r8,4
jge short 000000000000F39C
test r8,r8
je short 000000000000F3DB
cmp [rax],rcx
je short 000000000000F3B3
add rax,8
dec r8
test r8,r8
jg short 000000000000F3CA
jmp qword ptr [0B870]
; Total bytes of code 97 PerfLabTests.CastingPerf2.CastingPerf.ObjScalarValueType
Description of detection logic
Compare Jit Disasm; PerfLabTests.CastingPerf2.CastingPerf.ObjScalarValueType()
push rdi
push rsi
push rbx
sub rsp,20
xor esi,esi
mov rdi,7FFD64FBBEC4
cmp dword ptr [rdi],0
jle short 000000000000F4B7
mov rbx,offset MT_PerfLabTests.CastingPerf2.FooSVT
mov rcx,rbx
call 0000000000002AE0
mov rdx,10693407F88
mov rdx,[rdx]
mov rdx,[rdx+8]
mov [rax+8],rdx
mov rcx,10693407FB8
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,[rdi]
jl short 000000000000F482
add rsp,20
pop rbx
pop rsi
pop rdi
ret
; Total bytes of code 95 PerfLabTests.CastingPerf2.CastingPerf.FooObjIsDescendant
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.ChkCastClassSpecial(Void*, System.Object)
mov rax,[rdx]
cmp rcx,rax
je short 000000000000F391
mov rax,[rax+10]
cmp rax,rcx
jne short 000000000000F395
mov rax,rdx
ret
test rax,rax
je short 000000000000F3C4
mov rax,[rax+10]
cmp rax,rcx
je short 000000000000F391
test rax,rax
je short 000000000000F3C4
mov rax,[rax+10]
cmp rax,rcx
je short 000000000000F391
test rax,rax
je short 000000000000F3C4
mov rax,[rax+10]
cmp rax,rcx
je short 000000000000F391
test rax,rax
jne short 000000000000F388
jmp qword ptr [0B870]
; Total bytes of code 74 Compare Jit Disasm; PerfLabTests.CastingPerf2.CastingPerf.FooObjIsDescendant()
push rdi
push rsi
sub rsp,28
xor esi,esi
mov edi,[0BEC4]
test edi,edi
jle short 000000000000F4B4
mov rcx,1EECD807FB8
mov rdx,[rcx]
mov rax,rdx
test rax,rax
je short 000000000000F49C
mov rcx,offset MT_PerfLabTests.CastingPerf2.Foo
cmp [rax],rcx
je short 000000000000F49C
call qword ptr [0B8B8]
mov rcx,1EECD808008
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F472
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 91 ; System.Runtime.CompilerServices.CastHelpers.ChkCastClassSpecial(Void*, System.Object)
mov rax,[rdx]
cmp rcx,rax
je short 000000000000F391
mov rax,[rax+10]
cmp rax,rcx
jne short 000000000000F395
mov rax,rdx
ret
test rax,rax
je short 000000000000F3C4
mov rax,[rax+10]
cmp rax,rcx
je short 000000000000F391
test rax,rax
je short 000000000000F3C4
mov rax,[rax+10]
cmp rax,rcx
je short 000000000000F391
test rax,rax
je short 000000000000F3C4
mov rax,[rax+10]
cmp rax,rcx
je short 000000000000F391
test rax,rax
jne short 000000000000F388
jmp qword ptr [0B870]
; Total bytes of code 74 PerfLabTests.CastingPerf2.CastingPerf.ObjFooIsObj
Description of detection logic
Compare Jit Disasm; PerfLabTests.CastingPerf2.CastingPerf.ObjFooIsObj()
push rdi
push rsi
xor esi,esi
mov edi,[0BEC0]
test edi,edi
jle short 000000000000F430
mov rdx,29B34807F98
mov rdx,[rdx]
mov rcx,29B34807FB8
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F40E
pop rsi
pop rdi
ret
; Total bytes of code 51 PerfLabTests.CastingPerf2.CastingPerf.ObjInt
Description of detection logic
Compare Jit Disasm; PerfLabTests.CastingPerf2.CastingPerf.ObjInt()
push rdi
push rsi
push rbx
sub rsp,20
xor esi,esi
mov rdi,7FFE7C32BEC4
cmp dword ptr [rdi],0
jle short 000000000000F4AB
mov rbx,offset MT_System.Int32
mov rcx,rbx
call 0000000000002AE0
mov edx,[0BECC]
mov [rax+8],edx
mov rcx,26A38407FB8
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,[rdi]
jl short 000000000000F482
add rsp,20
pop rbx
pop rsi
pop rdi
ret
; Total bytes of code 83 PerfLabTests.CastingPerf2.CastingPerf.IFooFooIsIFoo
Description of detection logic
Compare Jit Disasm; PerfLabTests.CastingPerf2.CastingPerf.IFooFooIsIFoo()
push rdi
push rsi
xor esi,esi
mov edi,[0BEC0]
test edi,edi
jle short 000000000000F430
mov rdx,198C2807F98
mov rdx,[rdx]
mov rcx,198C2808058
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F40E
pop rsi
pop rdi
ret
; Total bytes of code 51 PerfLabTests.CastingPerf2.CastingPerf.IFooObjIsIFoo
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.ChkCastInterface(Void*, System.Object)
test rdx,rdx
je short 000000000000E5D3
mov rax,[rdx]
movzx r8d,word ptr [rax+0E]
test r8,r8
je short 000000000000E5FB
mov rax,[rax+38]
cmp r8,4
jl short 000000000000E5EA
cmp [rax],rcx
je short 000000000000E5D3
cmp [rax+8],rcx
je short 000000000000E5D3
cmp [rax+10],rcx
je short 000000000000E5D3
cmp [rax+18],rcx
jne short 000000000000E5D7
mov rax,rdx
ret
add rax,20
add r8,0FFFFFFFFFFFFFFFC
cmp r8,4
jge short 000000000000E5BC
test r8,r8
je short 000000000000E5FB
cmp [rax],rcx
je short 000000000000E5D3
add rax,8
dec r8
test r8,r8
jg short 000000000000E5EA
jmp qword ptr [0B870]
; Total bytes of code 97 Compare Jit Disasm; PerfLabTests.CastingPerf2.CastingPerf.IFooObjIsIFoo()
push rdi
push rsi
sub rsp,28
xor esi,esi
mov edi,[0BEC4]
test edi,edi
jle short 000000000000F447
mov rdx,29DC7407FB8
mov rdx,[rdx]
mov rcx,offset MT_PerfLabTests.CastingPerf2.IFoo
call qword ptr [0B888]
mov rcx,29DC7408058
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F412
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 78 ; System.Runtime.CompilerServices.CastHelpers.ChkCastInterface(Void*, System.Object)
test rdx,rdx
je short 000000000000F3B3
mov rax,[rdx]
movzx r8d,word ptr [rax+0E]
test r8,r8
je short 000000000000F3DB
mov rax,[rax+38]
cmp r8,4
jl short 000000000000F3CA
cmp [rax],rcx
je short 000000000000F3B3
cmp [rax+8],rcx
je short 000000000000F3B3
cmp [rax+10],rcx
je short 000000000000F3B3
cmp [rax+18],rcx
jne short 000000000000F3B7
mov rax,rdx
ret
add rax,20
add r8,0FFFFFFFFFFFFFFFC
cmp r8,4
jge short 000000000000F39C
test r8,r8
je short 000000000000F3DB
cmp [rax],rcx
je short 000000000000F3B3
add rax,8
dec r8
test r8,r8
jg short 000000000000F3CA
jmp qword ptr [0B870]
; Total bytes of code 97 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in System.Net.Primitives.Tests.IPAddressPerformanceTests
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Net.Primitives.Tests.IPAddressPerformanceTests*' PayloadsHistogramSystem.Net.Primitives.Tests.IPAddressPerformanceTests.Ctor_Span(address: [143, 24, 20, 36])
Description of detection logic
; System.Net.IPAddress..ctor(System.ReadOnlySpan`1<Byte>)
push rdi
push rsi
sub rsp,28
mov rsi,rcx
mov rdi,[rdx]
mov ecx,[rdx+8]
cmp ecx,4
jne short 000000000000FF97
mov ecx,4
cmp ecx,4
jl near ptr 0000000000000063
mov ecx,[rdi]
xor edx,edx
mov [rsi+10],rdx
mov [rsi+1C],edx
mov [rsi+18],ecx
add rsp,28
pop rsi
pop rdi
ret
cmp ecx,10
jne short 6
mov rcx,offset MT_System.UInt16[]
mov edx,8
call 000000000000C4B0
lea rcx,[rsi+8]
mov rdx,rax
call 0000000000000010
xor ecx,ecx
mov rax,[rsi+8]
lea edx,[rcx+rcx]
mov r8d,edx
inc edx
mov r9,rax
mov r8d,r8d
movzx r8d,byte ptr [rdi+r8]
shl r8d,8
mov edx,edx
movzx edx,byte ptr [rdi+rdx]
add edx,r8d
movzx edx,dx
cmp ecx,[r9+8]
jae near ptr 000000000000006F
mov r8d,ecx
mov [r9+r8*2+10],dx
inc ecx
cmp ecx,8
jl short 000000000000FFC2
add rsp,28
pop rsi
pop rdi
ret
mov rcx,offset MT_System.ArgumentException
call 000000000000C390
mov rsi,rax
mov ecx,189
mov rdx,7FFEFAEA2490
call 00000000000014A0
mov rcx,rax
call qword ptr [1D68]
mov rdi,rax
mov ecx,0B02
mov rdx,7FFEFAEA2490
call 00000000000014A0
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [0BBD0]
mov rcx,rsi
call 0000000000004690
mov ecx,29
call qword ptr [0B7E0]
int 3
call 0000000000006930
int 3
; Total bytes of code 277 Compare Jit Disasm; System.Net.Primitives.Tests.IPAddressPerformanceTests.Ctor_Span(Byte[])
push rdi
push rsi
push rbx
sub rsp,30
xor eax,eax
mov [rsp+20],rax
test rdx,rdx
je short 000000000000FEFE
lea rsi,[rdx+10]
mov edi,[rdx+8]
mov rcx,offset MT_System.Net.IPAddress
call 0000000000002AE0
mov rbx,rax
mov [rsp+20],rsi
mov [rsp+28],edi
mov rcx,rbx
lea rdx,[rsp+20]
call qword ptr [1120]
mov rax,rbx
add rsp,30
pop rbx
pop rsi
pop rdi
ret
xor esi,esi
xor edi,edi
jmp short 000000000000FECA
; Total bytes of code 84 ; System.Net.IPAddress..ctor(System.ReadOnlySpan`1<Byte>)
push rdi
push rsi
sub rsp,28
mov rsi,rcx
mov rdi,[rdx]
mov ecx,[rdx+8]
cmp ecx,4
jne short 000000000000FF97
mov ecx,4
cmp ecx,4
jl near ptr 0000000000000063
mov ecx,[rdi]
xor edx,edx
mov [rsi+10],rdx
mov [rsi+1C],edx
mov [rsi+18],ecx
add rsp,28
pop rsi
pop rdi
ret
cmp ecx,10
jne short 6
mov rcx,offset MT_System.UInt16[]
mov edx,8
call 0000000000002C00
lea rcx,[rsi+8]
mov rdx,rax
call 0000000000000010
xor ecx,ecx
mov rax,[rsi+8]
lea edx,[rcx+rcx]
mov r8d,edx
inc edx
mov r9,rax
mov r8d,r8d
movzx r8d,byte ptr [rdi+r8]
shl r8d,8
mov edx,edx
movzx edx,byte ptr [rdi+rdx]
add edx,r8d
movzx edx,dx
cmp ecx,[r9+8]
jae near ptr 000000000000006F
mov r8d,ecx
mov [r9+r8*2+10],dx
inc ecx
cmp ecx,8
jl short 000000000000FFC2
add rsp,28
pop rsi
pop rdi
ret
mov rcx,offset MT_System.ArgumentException
call 0000000000002AE0
mov rsi,rax
mov ecx,189
mov rdx,7FFCEEF625D8
call 000000000000A140
mov rcx,rax
call qword ptr [1D68]
mov rdi,rax
mov ecx,0B02
mov rdx,7FFCEEF625D8
call 000000000000A140
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [0BBD0]
mov rcx,rsi
call 0000000000002B00
mov ecx,29
call qword ptr [0B7E0]
int 3
call 000000000000AB50
int 3
; Total bytes of code 277 System.Net.Primitives.Tests.IPAddressPerformanceTests.ToString(address: 143.24.20.36)
Description of detection logic
Compare Jit Disasm; System.Net.Primitives.Tests.IPAddressPerformanceTests.ToString(System.Net.IPAddress)
mov rcx,rdx
mov rax,[rdx]
mov rax,[rax+40]
jmp qword ptr [rax+8]
; Total bytes of code 14 System.Net.Primitives.Tests.IPAddressPerformanceTests.ToString(address: 1020:3040:5060:7080:9010:1112:1314:1516)
Description of detection logic
Compare Jit Disasm; System.Net.Primitives.Tests.IPAddressPerformanceTests.ToString(System.Net.IPAddress)
mov rcx,rdx
mov rax,[rdx]
mov rax,[rax+40]
jmp qword ptr [rax+8]
; Total bytes of code 14 DocsProfiling workflow for dotnet/runtime repository
Regressions in System.Collections.CtorDefaultSize<String>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Collections.CtorDefaultSize<String>*' PayloadsHistogramSystem.Collections.CtorDefaultSize<String>.SortedSet
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Tests.Perf_SByte
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_SByte*' PayloadsHistogramSystem.Tests.Perf_SByte.ToString(value: 127)
Description of detection logic
; System.Number.Int32ToDecStr(Int32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
test esi,esi
jl near ptr 000000000000F5DD
mov ecx,esi
mov eax,1
cmp ecx,186A0
jae near ptr 000000000000F5C3
cmp ecx,0A
jae short 000000000000F53A
mov edi,eax
cmp edi,1
jne short 000000000000F543
mov rcx,224464002C8
mov rcx,[rcx]
cmp esi,[rcx+8]
jae near ptr 000000000000F603
mov eax,esi
mov rax,[rcx+rax*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp ecx,64
jae short 000000000000F59B
inc eax
jmp short 000000000000F50F
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F5FC
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F568
xor edx,edx
mov [rsp+20],rdx
jmp short 000000000000F533
cmp ecx,3E8
jae short 000000000000F5AB
add eax,2
jmp near ptr 000000000000F50F
cmp ecx,2710
jae short 000000000000F5BB
add eax,3
jmp near ptr 000000000000F50F
add eax,4
jmp near ptr 000000000000F50F
mov ecx,esi
shr ecx,5
imul rcx,0A7C5AC5
shr rcx,27
mov eax,6
jmp near ptr 000000000000F50A
call qword ptr [5858]
mov r8,[rax+28]
mov ecx,esi
mov edx,0FFFFFFFF
call qword ptr [9318]
nop
add rsp,28
pop rsi
pop rdi
ret
xor edx,edx
jmp near ptr 000000000000F561
call 0000000000006930
int 3
; Total bytes of code 297 Compare Jit Disasm; System.Tests.Perf_SByte.ToString(SByte)
sub rsp,28
movsx rcx,dl
call qword ptr [9300]
nop
add rsp,28
ret
; Total bytes of code 20 ; System.Number.Int32ToDecStr(Int32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
test esi,esi
jl near ptr 000000000000F5DD
mov ecx,esi
mov eax,1
cmp ecx,186A0
jae near ptr 000000000000F5C3
cmp ecx,0A
jae short 000000000000F53A
mov edi,eax
cmp edi,1
jne short 000000000000F543
mov rcx,1CC0A4002C8
mov rcx,[rcx]
cmp esi,[rcx+8]
jae near ptr 000000000000F603
mov eax,esi
mov rax,[rcx+rax*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp ecx,64
jae short 000000000000F59B
inc eax
jmp short 000000000000F50F
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F5FC
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F568
xor edx,edx
mov [rsp+20],rdx
jmp short 000000000000F533
cmp ecx,3E8
jae short 000000000000F5AB
add eax,2
jmp near ptr 000000000000F50F
cmp ecx,2710
jae short 000000000000F5BB
add eax,3
jmp near ptr 000000000000F50F
add eax,4
jmp near ptr 000000000000F50F
mov ecx,esi
shr ecx,5
imul rcx,0A7C5AC5
shr rcx,27
mov eax,6
jmp near ptr 000000000000F50A
call qword ptr [5858]
mov r8,[rax+28]
mov ecx,esi
mov edx,0FFFFFFFF
call qword ptr [9318]
nop
add rsp,28
pop rsi
pop rdi
ret
xor edx,edx
jmp near ptr 000000000000F561
call 000000000000AB50
int 3
; Total bytes of code 297 DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in ByteMark
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'ByteMark*' PayloadsHistogramByteMark.BenchBitOps
Description of detection logic
Compare Jit DisasmByteMark.BenchStringSort
Description of detection logic
Compare Jit Disasm; BenchmarkDotNet.Autogenerated.Runnable_0.__ForDisassemblyDiagnoser__()
push rbp
sub rsp,20
lea rbp,[rsp+20]
mov [rbp+10],rcx
mov rcx,[rbp+10]
cmp dword ptr [rcx+38],0B
jne short 0000000000006422
mov rcx,[rbp+10]
call qword ptr [0B228]
nop
add rsp,20
pop rbp
ret
; Total bytes of code 41 DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.CtorFromCollection<String>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Collections.CtorFromCollection<String>*' PayloadsHistogramSystem.Collections.CtorFromCollection<String>.ConcurrentQueue(Size: 512)
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Reflection.Activator<EmptyStruct>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Reflection.Activator<EmptyStruct>*' PayloadsHistogramSystem.Reflection.Activator<EmptyStruct>.CreateInstanceType
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in System.Numerics.Tests.Perf_BigInteger
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Numerics.Tests.Perf_BigInteger*' PayloadsHistogramSystem.Numerics.Tests.Perf_BigInteger.ToByteArray(numberString: 123)
Description of detection logic
; System.Numerics.BigInteger.TryGetBytes(GetBytesMode, System.Span`1<Byte>, Boolean, Boolean, Int32 ByRef)
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbp
push rbx
sub rsp,38
mov rsi,[rsp+0A8]
mov rdi,[r8]
mov ebx,[r8+8]
mov ebp,[rcx+8]
test ebp,ebp
jne short 000000000000284E
test edx,edx
je short 00000000000027F3
cmp edx,1
je short 000000000000280C
jmp short 0000000000002817
xchg ax,ax
mov rcx,offset MT_System.Byte[]
mov edx,1
call 000000000000C4B0
jmp near ptr 0000000000002B43
mov dword ptr [rsi],1
jmp near ptr 0000000000002A15
mov dword ptr [rsi],1
test ebx,ebx
je near ptr 0000000000002A15
mov byte ptr [rdi],0
mov rcx,7FFF6C232F38
mov edx,11
call 000000000000C560
mov rdx,153EBC090A8
mov rax,[rdx]
jmp near ptr 0000000000002B43
movzx eax,r9b
test eax,eax
je short 000000000000285E
test ebp,ebp
jl near ptr 0000000000002B59
xor r14d,r14d
mov r15,[rcx]
test r15,r15
jne short 0000000000002882
test ebp,ebp
jl short 0000000000002871
xor ecx,ecx
jmp short 0000000000002876
mov ecx,0FF
movzx r12d,cl
mov r13d,ebp
jmp short 00000000000028F8
nop dword ptr [rax]
cmp ebp,0FFFFFFFF
jne short 00000000000028DC
mov r12d,0FF
mov ecx,[r15+8]
test ecx,ecx
je near ptr 0000000000002B9D
cmp dword ptr [r15+10],0
jne short 00000000000028B7
inc r14d
cmp r14d,ecx
jae near ptr 0000000000002B9D
mov r8d,r14d
cmp dword ptr [r15+r8*4+10],0
je short 00000000000028A0
lea r8d,[rcx+0FFFF]
cmp r8d,ecx
jae near ptr 0000000000002B9D
mov ecx,r8d
mov ecx,[r15+rcx*4+10]
mov r13d,ecx
not r13d
cmp r8d,r14d
jne short 00000000000028F8
inc r13d
jmp short 00000000000028F8
xor r12d,r12d
mov ecx,[r15+8]
lea r8d,[rcx+0FFFF]
cmp r8d,ecx
jae near ptr 0000000000002B9D
mov ecx,r8d
mov r13d,[r15+rcx*4+10]
mov ecx,r13d
shr ecx,18
movzx ecx,cl
cmp ecx,r12d
je short 000000000000290E
mov r9d,3
jmp short 0000000000002941
mov ecx,r13d
shr ecx,10
movzx ecx,cl
cmp ecx,r12d
je short 0000000000002924
mov r9d,2
jmp short 0000000000002941
mov ecx,r13d
shr ecx,8
movzx ecx,cl
cmp ecx,r12d
je short 000000000000293A
mov r9d,1
jmp short 0000000000002941
movzx ecx,r13b
xor r9d,r9d
and ecx,80
mov r8d,r12d
and r8d,80
cmp ecx,r8d
je short 000000000000295F
xor ecx,ecx
test eax,eax
sete cl
jmp short 0000000000002961
xor ecx,ecx
movzx eax,cl
mov [rsp+30],eax
mov [rsp+34],r9d
lea ecx,[r9+1]
test eax,eax
jne short 000000000000297A
xor r8d,r8d
jmp short 0000000000002980
mov r8d,1
add ecx,r8d
test r15,r15
je short 00000000000029A9
mov r8d,[r15+8]
sub r8d,1
jo near ptr 0000000000002B54
imul r8d,4
jo near ptr 0000000000002B54
add ecx,r8d
jo near ptr 0000000000002B54
test edx,edx
je short 00000000000029B4
cmp edx,1
je short 00000000000029D3
jmp short 00000000000029D7
mov [rsp+2C],ecx
movsxd rdx,ecx
mov rcx,offset MT_System.Byte[]
call 000000000000C4B0
lea rdi,[rax+10]
mov ebx,[rax+8]
jmp short 0000000000002A02
mov [rsi],ecx
jmp short 0000000000002A15
mov [rsi],ecx
mov [rsp+2C],ecx
cmp ebx,ecx
jl short 0000000000002A15
mov rcx,7FFF6C232F38
mov edx,11
call 000000000000C560
mov rax,153EBC090A8
mov rax,[rax]
mov esi,[rsp+0A0]
movzx ecx,sil
test ecx,ecx
jne short 0000000000002A28
xor edx,edx
jmp short 0000000000002A2F
xor eax,eax
add rsp,38
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
mov esi,[rsp+2C]
lea edx,[rsi+0FFFF]
test ecx,ecx
jne short 0000000000002A3A
mov ecx,1
jmp short 0000000000002A3F
mov ecx,0FFFFFFFF
test r15,r15
je near ptr 0000000000002ACB
xor r8d,r8d
mov r9d,[r15+8]
dec r9d
test r9d,r9d
jle short 0000000000002ACB
mov r10d,r8d
mov r10d,[r15+r10*4+10]
cmp ebp,0FFFFFFFF
jne short 0000000000002A6F
not r10d
cmp r8d,r14d
jg short 0000000000002A6F
inc r10d
cmp edx,ebx
jae near ptr 0000000000002B9D
mov r11d,edx
mov [rdi+r11],r10b
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002B9D
mov r11d,edx
mov esi,r10d
shr esi,8
mov [rdi+r11],sil
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002B9D
mov r11d,edx
mov esi,r10d
shr esi,10
mov [rdi+r11],sil
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002B9D
mov r11d,edx
shr r10d,18
mov [rdi+r11],r10b
add edx,ecx
inc r8d
cmp r9d,r8d
jg short 0000000000002A57
cmp edx,ebx
jae near ptr 0000000000002B9D
mov r8d,edx
mov [rdi+r8],r13b
mov esi,[rsp+34]
test esi,esi
je short 0000000000002B30
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002B9D
mov r8d,edx
mov r9d,r13d
shr r9d,8
mov [rdi+r8],r9b
cmp esi,1
je short 0000000000002B30
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002B9D
mov r8d,edx
mov r9d,r13d
shr r9d,10
mov [rdi+r8],r9b
cmp esi,2
je short 0000000000002B30
add edx,ecx
cmp edx,ebx
jae short 0000000000002B9D
mov r8d,edx
mov r9d,r13d
shr r9d,18
mov [rdi+r8],r9b
cmp dword ptr [rsp+30],0
je short 0000000000002B43
add edx,ecx
cmp edx,ebx
jae short 0000000000002B9D
mov ecx,edx
mov [rdi+rcx],r12b
add rsp,38
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
call 00000000000065F0
mov rcx,offset MT_System.OverflowException
call 000000000000C390
mov rsi,rax
mov ecx,34B
mov rdx,7FFF6C232AA0
call 00000000000014A0
mov rcx,rax
call qword ptr [1018]
mov rdx,rax
mov rcx,rsi
call qword ptr [3480]
mov rcx,rsi
call 0000000000004690
int 3
call 0000000000006930
int 3
; Total bytes of code 995 Compare Jit Disasm; System.Numerics.Tests.Perf_BigInteger.ToByteArray(BigIntegerData)
sub rsp,58
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rsp+30],xmm4
vmovdqa xmmword ptr [rsp+40],xmm4
xor eax,eax
mov [rsp+50],rax
add rdx,18
mov r8,[rdx]
mov [rsp+48],r8
mov r8d,[rdx+8]
mov [rsp+50],r8d
xor r8d,r8d
mov [rsp+30],r8
xor r8d,r8d
mov [rsp+38],r8d
mov [rsp+20],r8d
lea r8,[rsp+40]
mov [rsp+28],r8
lea r8,[rsp+30]
lea rcx,[rsp+48]
xor edx,edx
xor r9d,r9d
call qword ptr [1648]
nop
add rsp,58
ret
; Total bytes of code 106 ; System.Numerics.BigInteger.TryGetBytes(GetBytesMode, System.Span`1<Byte>, Boolean, Boolean, Int32 ByRef)
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbp
push rbx
sub rsp,38
mov rsi,[rsp+0A8]
mov rdi,[r8]
mov ebx,[r8+8]
mov ebp,[rcx+8]
test ebp,ebp
jne short 000000000000284E
test edx,edx
je short 00000000000027F3
cmp edx,1
je short 000000000000280C
jmp short 0000000000002817
xchg ax,ax
mov rcx,offset MT_System.Byte[]
mov edx,1
call 0000000000002C00
jmp near ptr 0000000000002B43
mov dword ptr [rsi],1
jmp near ptr 0000000000002A15
mov dword ptr [rsi],1
test ebx,ebx
je near ptr 0000000000002A15
mov byte ptr [rdi],0
mov rcx,7FF9F84F3090
mov edx,12
call 0000000000002CB0
mov rdx,29B0A8090A8
mov rax,[rdx]
jmp near ptr 0000000000002B43
movzx eax,r9b
test eax,eax
je short 000000000000285E
test ebp,ebp
jl near ptr 0000000000002B59
xor r14d,r14d
mov r15,[rcx]
test r15,r15
jne short 0000000000002882
test ebp,ebp
jl short 0000000000002871
xor ecx,ecx
jmp short 0000000000002876
mov ecx,0FF
movzx r12d,cl
mov r13d,ebp
jmp short 00000000000028F8
nop dword ptr [rax]
cmp ebp,0FFFFFFFF
jne short 00000000000028DC
mov r12d,0FF
mov ecx,[r15+8]
test ecx,ecx
je near ptr 0000000000002B9D
cmp dword ptr [r15+10],0
jne short 00000000000028B7
inc r14d
cmp r14d,ecx
jae near ptr 0000000000002B9D
mov r8d,r14d
cmp dword ptr [r15+r8*4+10],0
je short 00000000000028A0
lea r8d,[rcx+0FFFF]
cmp r8d,ecx
jae near ptr 0000000000002B9D
mov ecx,r8d
mov ecx,[r15+rcx*4+10]
mov r13d,ecx
not r13d
cmp r8d,r14d
jne short 00000000000028F8
inc r13d
jmp short 00000000000028F8
xor r12d,r12d
mov ecx,[r15+8]
lea r8d,[rcx+0FFFF]
cmp r8d,ecx
jae near ptr 0000000000002B9D
mov ecx,r8d
mov r13d,[r15+rcx*4+10]
mov ecx,r13d
shr ecx,18
movzx ecx,cl
cmp ecx,r12d
je short 000000000000290E
mov r9d,3
jmp short 0000000000002941
mov ecx,r13d
shr ecx,10
movzx ecx,cl
cmp ecx,r12d
je short 0000000000002924
mov r9d,2
jmp short 0000000000002941
mov ecx,r13d
shr ecx,8
movzx ecx,cl
cmp ecx,r12d
je short 000000000000293A
mov r9d,1
jmp short 0000000000002941
movzx ecx,r13b
xor r9d,r9d
and ecx,80
mov r8d,r12d
and r8d,80
cmp ecx,r8d
je short 000000000000295F
xor ecx,ecx
test eax,eax
sete cl
jmp short 0000000000002961
xor ecx,ecx
movzx eax,cl
mov [rsp+30],eax
mov [rsp+34],r9d
lea ecx,[r9+1]
test eax,eax
jne short 000000000000297A
xor r8d,r8d
jmp short 0000000000002980
mov r8d,1
add ecx,r8d
test r15,r15
je short 00000000000029A9
mov r8d,[r15+8]
sub r8d,1
jo near ptr 0000000000002B54
imul r8d,4
jo near ptr 0000000000002B54
add ecx,r8d
jo near ptr 0000000000002B54
test edx,edx
je short 00000000000029B4
cmp edx,1
je short 00000000000029D3
jmp short 00000000000029D7
mov [rsp+2C],ecx
movsxd rdx,ecx
mov rcx,offset MT_System.Byte[]
call 0000000000002C00
lea rdi,[rax+10]
mov ebx,[rax+8]
jmp short 0000000000002A02
mov [rsi],ecx
jmp short 0000000000002A15
mov [rsi],ecx
mov [rsp+2C],ecx
cmp ebx,ecx
jl short 0000000000002A15
mov rcx,7FF9F84F3090
mov edx,12
call 0000000000002CB0
mov rax,29B0A8090A8
mov rax,[rax]
mov esi,[rsp+0A0]
movzx ecx,sil
test ecx,ecx
jne short 0000000000002A28
xor edx,edx
jmp short 0000000000002A2F
xor eax,eax
add rsp,38
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
mov esi,[rsp+2C]
lea edx,[rsi+0FFFF]
test ecx,ecx
jne short 0000000000002A3A
mov ecx,1
jmp short 0000000000002A3F
mov ecx,0FFFFFFFF
test r15,r15
je near ptr 0000000000002ACB
xor r8d,r8d
mov r9d,[r15+8]
dec r9d
test r9d,r9d
jle short 0000000000002ACB
mov r10d,r8d
mov r10d,[r15+r10*4+10]
cmp ebp,0FFFFFFFF
jne short 0000000000002A6F
not r10d
cmp r8d,r14d
jg short 0000000000002A6F
inc r10d
cmp edx,ebx
jae near ptr 0000000000002B9D
mov r11d,edx
mov [rdi+r11],r10b
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002B9D
mov r11d,edx
mov esi,r10d
shr esi,8
mov [rdi+r11],sil
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002B9D
mov r11d,edx
mov esi,r10d
shr esi,10
mov [rdi+r11],sil
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002B9D
mov r11d,edx
shr r10d,18
mov [rdi+r11],r10b
add edx,ecx
inc r8d
cmp r9d,r8d
jg short 0000000000002A57
cmp edx,ebx
jae near ptr 0000000000002B9D
mov r8d,edx
mov [rdi+r8],r13b
mov esi,[rsp+34]
test esi,esi
je short 0000000000002B30
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002B9D
mov r8d,edx
mov r9d,r13d
shr r9d,8
mov [rdi+r8],r9b
cmp esi,1
je short 0000000000002B30
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002B9D
mov r8d,edx
mov r9d,r13d
shr r9d,10
mov [rdi+r8],r9b
cmp esi,2
je short 0000000000002B30
add edx,ecx
cmp edx,ebx
jae short 0000000000002B9D
mov r8d,edx
mov r9d,r13d
shr r9d,18
mov [rdi+r8],r9b
cmp dword ptr [rsp+30],0
je short 0000000000002B43
add edx,ecx
cmp edx,ebx
jae short 0000000000002B9D
mov ecx,edx
mov [rdi+rcx],r12b
add rsp,38
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
call 000000000000A810
mov rcx,offset MT_System.OverflowException
call 0000000000002AE0
mov rsi,rax
mov ecx,34B
mov rdx,7FF9F84F2BE8
call 000000000000A140
mov rcx,rax
call qword ptr [1018]
mov rdx,rax
mov rcx,rsi
call qword ptr [3480]
mov rcx,rsi
call 0000000000002B00
int 3
call 000000000000AB50
int 3
; Total bytes of code 995 System.Numerics.Tests.Perf_BigInteger.ToByteArray(numberString: -2147483648)
Description of detection logic
; System.Numerics.BigInteger.TryGetBytes(GetBytesMode, System.Span`1<Byte>, Boolean, Boolean, Int32 ByRef)
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbp
push rbx
sub rsp,38
mov rsi,[rsp+0A8]
mov rdi,[r8]
mov ebx,[r8+8]
mov ebp,[rcx+8]
test ebp,ebp
jne short 00000000000028AE
test edx,edx
je short 0000000000002853
cmp edx,1
je short 000000000000286C
jmp short 0000000000002877
xchg ax,ax
mov rcx,offset MT_System.Byte[]
mov edx,1
call 000000000000C4B0
jmp near ptr 0000000000002BA3
mov dword ptr [rsi],1
jmp near ptr 0000000000002A75
mov dword ptr [rsi],1
test ebx,ebx
je near ptr 0000000000002A75
mov byte ptr [rdi],0
mov rcx,7FFF6C2A2F38
mov edx,11
call 000000000000C560
mov rdx,298000090A8
mov rax,[rdx]
jmp near ptr 0000000000002BA3
movzx eax,r9b
test eax,eax
je short 00000000000028BE
test ebp,ebp
jl near ptr 0000000000002BB9
xor r14d,r14d
mov r15,[rcx]
test r15,r15
jne short 00000000000028E2
test ebp,ebp
jl short 00000000000028D1
xor ecx,ecx
jmp short 00000000000028D6
mov ecx,0FF
movzx r12d,cl
mov r13d,ebp
jmp short 0000000000002958
nop dword ptr [rax]
cmp ebp,0FFFFFFFF
jne short 000000000000293C
mov r12d,0FF
mov ecx,[r15+8]
test ecx,ecx
je near ptr 0000000000002BFD
cmp dword ptr [r15+10],0
jne short 0000000000002917
inc r14d
cmp r14d,ecx
jae near ptr 0000000000002BFD
mov r8d,r14d
cmp dword ptr [r15+r8*4+10],0
je short 0000000000002900
lea r8d,[rcx+0FFFF]
cmp r8d,ecx
jae near ptr 0000000000002BFD
mov ecx,r8d
mov ecx,[r15+rcx*4+10]
mov r13d,ecx
not r13d
cmp r8d,r14d
jne short 0000000000002958
inc r13d
jmp short 0000000000002958
xor r12d,r12d
mov ecx,[r15+8]
lea r8d,[rcx+0FFFF]
cmp r8d,ecx
jae near ptr 0000000000002BFD
mov ecx,r8d
mov r13d,[r15+rcx*4+10]
mov ecx,r13d
shr ecx,18
movzx ecx,cl
cmp ecx,r12d
je short 000000000000296E
mov r9d,3
jmp short 00000000000029A1
mov ecx,r13d
shr ecx,10
movzx ecx,cl
cmp ecx,r12d
je short 0000000000002984
mov r9d,2
jmp short 00000000000029A1
mov ecx,r13d
shr ecx,8
movzx ecx,cl
cmp ecx,r12d
je short 000000000000299A
mov r9d,1
jmp short 00000000000029A1
movzx ecx,r13b
xor r9d,r9d
and ecx,80
mov r8d,r12d
and r8d,80
cmp ecx,r8d
je short 00000000000029BF
xor ecx,ecx
test eax,eax
sete cl
jmp short 00000000000029C1
xor ecx,ecx
movzx eax,cl
mov [rsp+30],eax
mov [rsp+34],r9d
lea ecx,[r9+1]
test eax,eax
jne short 00000000000029DA
xor r8d,r8d
jmp short 00000000000029E0
mov r8d,1
add ecx,r8d
test r15,r15
je short 0000000000002A09
mov r8d,[r15+8]
sub r8d,1
jo near ptr 0000000000002BB4
imul r8d,4
jo near ptr 0000000000002BB4
add ecx,r8d
jo near ptr 0000000000002BB4
test edx,edx
je short 0000000000002A14
cmp edx,1
je short 0000000000002A33
jmp short 0000000000002A37
mov [rsp+2C],ecx
movsxd rdx,ecx
mov rcx,offset MT_System.Byte[]
call 000000000000C4B0
lea rdi,[rax+10]
mov ebx,[rax+8]
jmp short 0000000000002A62
mov [rsi],ecx
jmp short 0000000000002A75
mov [rsi],ecx
mov [rsp+2C],ecx
cmp ebx,ecx
jl short 0000000000002A75
mov rcx,7FFF6C2A2F38
mov edx,11
call 000000000000C560
mov rax,298000090A8
mov rax,[rax]
mov esi,[rsp+0A0]
movzx ecx,sil
test ecx,ecx
jne short 0000000000002A88
xor edx,edx
jmp short 0000000000002A8F
xor eax,eax
add rsp,38
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
mov esi,[rsp+2C]
lea edx,[rsi+0FFFF]
test ecx,ecx
jne short 0000000000002A9A
mov ecx,1
jmp short 0000000000002A9F
mov ecx,0FFFFFFFF
test r15,r15
je near ptr 0000000000002B2B
xor r8d,r8d
mov r9d,[r15+8]
dec r9d
test r9d,r9d
jle short 0000000000002B2B
mov r10d,r8d
mov r10d,[r15+r10*4+10]
cmp ebp,0FFFFFFFF
jne short 0000000000002ACF
not r10d
cmp r8d,r14d
jg short 0000000000002ACF
inc r10d
cmp edx,ebx
jae near ptr 0000000000002BFD
mov r11d,edx
mov [rdi+r11],r10b
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002BFD
mov r11d,edx
mov esi,r10d
shr esi,8
mov [rdi+r11],sil
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002BFD
mov r11d,edx
mov esi,r10d
shr esi,10
mov [rdi+r11],sil
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002BFD
mov r11d,edx
shr r10d,18
mov [rdi+r11],r10b
add edx,ecx
inc r8d
cmp r9d,r8d
jg short 0000000000002AB7
cmp edx,ebx
jae near ptr 0000000000002BFD
mov r8d,edx
mov [rdi+r8],r13b
mov esi,[rsp+34]
test esi,esi
je short 0000000000002B90
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002BFD
mov r8d,edx
mov r9d,r13d
shr r9d,8
mov [rdi+r8],r9b
cmp esi,1
je short 0000000000002B90
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002BFD
mov r8d,edx
mov r9d,r13d
shr r9d,10
mov [rdi+r8],r9b
cmp esi,2
je short 0000000000002B90
add edx,ecx
cmp edx,ebx
jae short 0000000000002BFD
mov r8d,edx
mov r9d,r13d
shr r9d,18
mov [rdi+r8],r9b
cmp dword ptr [rsp+30],0
je short 0000000000002BA3
add edx,ecx
cmp edx,ebx
jae short 0000000000002BFD
mov ecx,edx
mov [rdi+rcx],r12b
add rsp,38
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
call 00000000000065F0
mov rcx,offset MT_System.OverflowException
call 000000000000C390
mov rsi,rax
mov ecx,34B
mov rdx,7FFF6C2A2AA0
call 00000000000014A0
mov rcx,rax
call qword ptr [1018]
mov rdx,rax
mov rcx,rsi
call qword ptr [3480]
mov rcx,rsi
call 0000000000004690
int 3
call 0000000000006930
int 3
; Total bytes of code 995 Compare Jit Disasm; System.Numerics.Tests.Perf_BigInteger.ToByteArray(BigIntegerData)
sub rsp,58
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rsp+30],xmm4
vmovdqa xmmword ptr [rsp+40],xmm4
xor eax,eax
mov [rsp+50],rax
add rdx,18
mov r8,[rdx]
mov [rsp+48],r8
mov r8d,[rdx+8]
mov [rsp+50],r8d
xor r8d,r8d
mov [rsp+30],r8
xor r8d,r8d
mov [rsp+38],r8d
mov [rsp+20],r8d
lea r8,[rsp+40]
mov [rsp+28],r8
lea r8,[rsp+30]
lea rcx,[rsp+48]
xor edx,edx
xor r9d,r9d
call qword ptr [1648]
nop
add rsp,58
ret
; Total bytes of code 106 ; System.Numerics.BigInteger.TryGetBytes(GetBytesMode, System.Span`1<Byte>, Boolean, Boolean, Int32 ByRef)
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbp
push rbx
sub rsp,38
mov rsi,[rsp+0A8]
mov rdi,[r8]
mov ebx,[r8+8]
mov ebp,[rcx+8]
test ebp,ebp
jne short 00000000000028AE
test edx,edx
je short 0000000000002853
cmp edx,1
je short 000000000000286C
jmp short 0000000000002877
xchg ax,ax
mov rcx,offset MT_System.Byte[]
mov edx,1
call 0000000000002C00
jmp near ptr 0000000000002BA3
mov dword ptr [rsi],1
jmp near ptr 0000000000002A75
mov dword ptr [rsi],1
test ebx,ebx
je near ptr 0000000000002A75
mov byte ptr [rdi],0
mov rcx,7FF9F8583090
mov edx,12
call 0000000000002CB0
mov rdx,20A0C8090A8
mov rax,[rdx]
jmp near ptr 0000000000002BA3
movzx eax,r9b
test eax,eax
je short 00000000000028BE
test ebp,ebp
jl near ptr 0000000000002BB9
xor r14d,r14d
mov r15,[rcx]
test r15,r15
jne short 00000000000028E2
test ebp,ebp
jl short 00000000000028D1
xor ecx,ecx
jmp short 00000000000028D6
mov ecx,0FF
movzx r12d,cl
mov r13d,ebp
jmp short 0000000000002958
nop dword ptr [rax]
cmp ebp,0FFFFFFFF
jne short 000000000000293C
mov r12d,0FF
mov ecx,[r15+8]
test ecx,ecx
je near ptr 0000000000002BFD
cmp dword ptr [r15+10],0
jne short 0000000000002917
inc r14d
cmp r14d,ecx
jae near ptr 0000000000002BFD
mov r8d,r14d
cmp dword ptr [r15+r8*4+10],0
je short 0000000000002900
lea r8d,[rcx+0FFFF]
cmp r8d,ecx
jae near ptr 0000000000002BFD
mov ecx,r8d
mov ecx,[r15+rcx*4+10]
mov r13d,ecx
not r13d
cmp r8d,r14d
jne short 0000000000002958
inc r13d
jmp short 0000000000002958
xor r12d,r12d
mov ecx,[r15+8]
lea r8d,[rcx+0FFFF]
cmp r8d,ecx
jae near ptr 0000000000002BFD
mov ecx,r8d
mov r13d,[r15+rcx*4+10]
mov ecx,r13d
shr ecx,18
movzx ecx,cl
cmp ecx,r12d
je short 000000000000296E
mov r9d,3
jmp short 00000000000029A1
mov ecx,r13d
shr ecx,10
movzx ecx,cl
cmp ecx,r12d
je short 0000000000002984
mov r9d,2
jmp short 00000000000029A1
mov ecx,r13d
shr ecx,8
movzx ecx,cl
cmp ecx,r12d
je short 000000000000299A
mov r9d,1
jmp short 00000000000029A1
movzx ecx,r13b
xor r9d,r9d
and ecx,80
mov r8d,r12d
and r8d,80
cmp ecx,r8d
je short 00000000000029BF
xor ecx,ecx
test eax,eax
sete cl
jmp short 00000000000029C1
xor ecx,ecx
movzx eax,cl
mov [rsp+30],eax
mov [rsp+34],r9d
lea ecx,[r9+1]
test eax,eax
jne short 00000000000029DA
xor r8d,r8d
jmp short 00000000000029E0
mov r8d,1
add ecx,r8d
test r15,r15
je short 0000000000002A09
mov r8d,[r15+8]
sub r8d,1
jo near ptr 0000000000002BB4
imul r8d,4
jo near ptr 0000000000002BB4
add ecx,r8d
jo near ptr 0000000000002BB4
test edx,edx
je short 0000000000002A14
cmp edx,1
je short 0000000000002A33
jmp short 0000000000002A37
mov [rsp+2C],ecx
movsxd rdx,ecx
mov rcx,offset MT_System.Byte[]
call 0000000000002C00
lea rdi,[rax+10]
mov ebx,[rax+8]
jmp short 0000000000002A62
mov [rsi],ecx
jmp short 0000000000002A75
mov [rsi],ecx
mov [rsp+2C],ecx
cmp ebx,ecx
jl short 0000000000002A75
mov rcx,7FF9F8583090
mov edx,12
call 0000000000002CB0
mov rax,20A0C8090A8
mov rax,[rax]
mov esi,[rsp+0A0]
movzx ecx,sil
test ecx,ecx
jne short 0000000000002A88
xor edx,edx
jmp short 0000000000002A8F
xor eax,eax
add rsp,38
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
mov esi,[rsp+2C]
lea edx,[rsi+0FFFF]
test ecx,ecx
jne short 0000000000002A9A
mov ecx,1
jmp short 0000000000002A9F
mov ecx,0FFFFFFFF
test r15,r15
je near ptr 0000000000002B2B
xor r8d,r8d
mov r9d,[r15+8]
dec r9d
test r9d,r9d
jle short 0000000000002B2B
mov r10d,r8d
mov r10d,[r15+r10*4+10]
cmp ebp,0FFFFFFFF
jne short 0000000000002ACF
not r10d
cmp r8d,r14d
jg short 0000000000002ACF
inc r10d
cmp edx,ebx
jae near ptr 0000000000002BFD
mov r11d,edx
mov [rdi+r11],r10b
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002BFD
mov r11d,edx
mov esi,r10d
shr esi,8
mov [rdi+r11],sil
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002BFD
mov r11d,edx
mov esi,r10d
shr esi,10
mov [rdi+r11],sil
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002BFD
mov r11d,edx
shr r10d,18
mov [rdi+r11],r10b
add edx,ecx
inc r8d
cmp r9d,r8d
jg short 0000000000002AB7
cmp edx,ebx
jae near ptr 0000000000002BFD
mov r8d,edx
mov [rdi+r8],r13b
mov esi,[rsp+34]
test esi,esi
je short 0000000000002B90
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002BFD
mov r8d,edx
mov r9d,r13d
shr r9d,8
mov [rdi+r8],r9b
cmp esi,1
je short 0000000000002B90
add edx,ecx
cmp edx,ebx
jae near ptr 0000000000002BFD
mov r8d,edx
mov r9d,r13d
shr r9d,10
mov [rdi+r8],r9b
cmp esi,2
je short 0000000000002B90
add edx,ecx
cmp edx,ebx
jae short 0000000000002BFD
mov r8d,edx
mov r9d,r13d
shr r9d,18
mov [rdi+r8],r9b
cmp dword ptr [rsp+30],0
je short 0000000000002BA3
add edx,ecx
cmp edx,ebx
jae short 0000000000002BFD
mov ecx,edx
mov [rdi+rcx],r12b
add rsp,38
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
call 000000000000A810
mov rcx,offset MT_System.OverflowException
call 0000000000002AE0
mov rsi,rax
mov ecx,34B
mov rdx,7FF9F8582BE8
call 000000000000A140
mov rcx,rax
call qword ptr [1018]
mov rdx,rax
mov rcx,rsi
call qword ptr [3480]
mov rcx,rsi
call 0000000000002B00
int 3
call 000000000000AB50
int 3
; Total bytes of code 995 DocsProfiling workflow for dotnet/runtime repository
Regressions in System.Tests.Perf_Array
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_Array*' PayloadsHistogramSystem.Tests.Perf_Array.ArrayResize
Description of detection logic
Compare Jit Disasm; BenchmarkDotNet.Autogenerated.Runnable_0.__ForDisassemblyDiagnoser__()
push rbp
sub rsp,20
lea rbp,[rsp+20]
mov [rbp+10],rcx
mov rcx,[rbp+10]
cmp dword ptr [rcx+80],0B
jne short 000000000000E1F5
mov rcx,[rbp+10]
call qword ptr [0B300]
nop
add rsp,20
pop rbp
ret
; Total bytes of code 44 DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.CtorDefaultSizeNonGeneric
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Collections.CtorDefaultSizeNonGeneric*' PayloadsHistogramSystem.Collections.CtorDefaultSizeNonGeneric.ArrayList
Description of detection logic
Compare Jit Disasm; System.Collections.CtorDefaultSizeNonGeneric.ArrayList()
push rsi
sub rsp,20
mov rcx,offset MT_System.Collections.ArrayList
call 0000000000002AE0
mov rsi,rax
mov rdx,1AE24801FF8
mov rdx,[rdx]
lea rcx,[rsi+8]
call 0000000000000010
mov rax,rsi
add rsp,20
pop rsi
ret
; Total bytes of code 54 System.Collections.CtorDefaultSizeNonGeneric.Stack
Description of detection logic
Compare Jit Disasm; System.Collections.CtorDefaultSizeNonGeneric.Stack()
push rsi
sub rsp,20
mov rcx,offset MT_System.Collections.Stack
call 0000000000002AE0
mov rsi,rax
mov rcx,offset MT_System.Object[]
mov edx,0A
call 0000000000002C60
lea rcx,[rsi+8]
mov rdx,rax
call 0000000000000010
xor eax,eax
mov [rsi+10],eax
mov [rsi+14],eax
mov rax,rsi
add rsp,20
pop rsi
ret
; Total bytes of code 72 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in System.Tests.Perf_Int16
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_Int16*' PayloadsHistogramSystem.Tests.Perf_Int16.ToString(value: 32767)
Description of detection logic
; System.Number.Int32ToDecStr(Int32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
test esi,esi
jl near ptr 000000000000F5DD
mov ecx,esi
mov eax,1
cmp ecx,186A0
jae near ptr 000000000000F5C3
cmp ecx,0A
jae short 000000000000F53A
mov edi,eax
cmp edi,1
jne short 000000000000F543
mov rcx,1B3610002C8
mov rcx,[rcx]
cmp esi,[rcx+8]
jae near ptr 000000000000F603
mov eax,esi
mov rax,[rcx+rax*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp ecx,64
jae short 000000000000F59B
inc eax
jmp short 000000000000F50F
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F5FC
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F568
xor edx,edx
mov [rsp+20],rdx
jmp short 000000000000F533
cmp ecx,3E8
jae short 000000000000F5AB
add eax,2
jmp near ptr 000000000000F50F
cmp ecx,2710
jae short 000000000000F5BB
add eax,3
jmp near ptr 000000000000F50F
add eax,4
jmp near ptr 000000000000F50F
mov ecx,esi
shr ecx,5
imul rcx,0A7C5AC5
shr rcx,27
mov eax,6
jmp near ptr 000000000000F50A
call qword ptr [5858]
mov r8,[rax+28]
mov ecx,esi
mov edx,0FFFFFFFF
call qword ptr [9318]
nop
add rsp,28
pop rsi
pop rdi
ret
xor edx,edx
jmp near ptr 000000000000F561
call 0000000000006930
int 3
; Total bytes of code 297 Compare Jit Disasm; System.Tests.Perf_Int16.ToString(Int16)
sub rsp,28
movsx rcx,dx
call qword ptr [9300]
nop
add rsp,28
ret
; Total bytes of code 20 ; System.Number.Int32ToDecStr(Int32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
test esi,esi
jl near ptr 000000000000F5DD
mov ecx,esi
mov eax,1
cmp ecx,186A0
jae near ptr 000000000000F5C3
cmp ecx,0A
jae short 000000000000F53A
mov edi,eax
cmp edi,1
jne short 000000000000F543
mov rcx,25D8C8002C8
mov rcx,[rcx]
cmp esi,[rcx+8]
jae near ptr 000000000000F603
mov eax,esi
mov rax,[rcx+rax*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp ecx,64
jae short 000000000000F59B
inc eax
jmp short 000000000000F50F
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F5FC
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F568
xor edx,edx
mov [rsp+20],rdx
jmp short 000000000000F533
cmp ecx,3E8
jae short 000000000000F5AB
add eax,2
jmp near ptr 000000000000F50F
cmp ecx,2710
jae short 000000000000F5BB
add eax,3
jmp near ptr 000000000000F50F
add eax,4
jmp near ptr 000000000000F50F
mov ecx,esi
shr ecx,5
imul rcx,0A7C5AC5
shr rcx,27
mov eax,6
jmp near ptr 000000000000F50A
call qword ptr [5858]
mov r8,[rax+28]
mov ecx,esi
mov edx,0FFFFFFFF
call qword ptr [9318]
nop
add rsp,28
pop rsi
pop rdi
ret
xor edx,edx
jmp near ptr 000000000000F561
call 000000000000AB50
int 3
; Total bytes of code 297 DocsProfiling workflow for dotnet/runtime repository
Regressions in System.Tests.Perf_GC<Byte>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_GC<Byte>*' PayloadsHistogramSystem.Tests.Perf_GC<Byte>.AllocateUninitializedArray(length: 10000, pinned: True)
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.CtorDefaultSize<Int32>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Collections.CtorDefaultSize<Int32>*' PayloadsHistogramSystem.Collections.CtorDefaultSize<Int32>.Stack
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
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in Microsoft.Extensions.DependencyInjection.GetService
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'Microsoft.Extensions.DependencyInjection.GetService*' PayloadsHistogramMicrosoft.Extensions.DependencyInjection.GetService.NoDI
Description of detection logic
Compare Jit Disasm; Microsoft.Extensions.DependencyInjection.GetService.NoDI()
sub rsp,28
mov rcx,offset MT_Microsoft.Extensions.DependencyInjection.ServiceProviderEngineBenchmark+A
call 0000000000002AE0
nop
add rsp,28
ret
; Total bytes of code 25 Microsoft.Extensions.DependencyInjection.GetService.Transient
Description of detection logic
Compare Jit Disasm; Microsoft.Extensions.DependencyInjection.GetService.Transient()
push rsi
sub rsp,20
mov rsi,[rcx+8]
test rsi,rsi
je short 000000000000C38C
mov rcx,offset MT_Microsoft.Extensions.DependencyInjection.ServiceProviderEngineBenchmark+A
call 0000000000005E90
mov rdx,rax
mov rcx,rsi
mov r11,7FFE84820560
call qword ptr [r11]
mov r8,rax
test r8,r8
je short 000000000000C383
mov rcx,offset MT_Microsoft.Extensions.DependencyInjection.ServiceProviderEngineBenchmark+A
cmp [r8],rcx
je short 000000000000C383
mov rdx,rax
call qword ptr [0B8B8]
mov r8,rax
mov rax,r8
add rsp,20
pop rsi
ret
mov ecx,360
mov rdx,7FFE84E70FA0
call 000000000000A140
mov rcx,rax
call qword ptr [71B0]
int 3
; Total bytes of code 122 DocsProfiling workflow for dotnet/runtime repository
Regressions in System.Text.Tests.Perf_Encoding
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Text.Tests.Perf_Encoding*' PayloadsHistogramSystem.Text.Tests.Perf_Encoding.GetChars(size: 16, encName: "utf-8")
Description of detection logic
Compare Jit Disasm; System.Text.Tests.Perf_Encoding.GetChars()
mov [rsp+8],rcx
mov rax,[rcx+10]
mov rcx,rax
mov rdx,[rsp+8]
mov rdx,[rdx+20]
mov rax,[rax]
mov rax,[rax+60]
jmp qword ptr [rax+10]
; Total bytes of code 32 System.Text.Tests.Perf_Encoding.GetEncoder(size: 16, encName: "ascii")
Description of detection logic
Compare Jit Disasm; System.Text.Tests.Perf_Encoding.GetEncoder()
mov rcx,[rcx+10]
mov rax,[rcx]
mov rax,[rax+68]
jmp qword ptr [rax+10]
; Total bytes of code 15 System.Text.Tests.Perf_Encoding.GetString(size: 16, encName: "ascii")
Description of detection logic
Compare Jit Disasm; System.Text.Tests.Perf_Encoding.GetString()
mov [rsp+8],rcx
mov rax,[rcx+10]
mov rcx,rax
mov rdx,[rsp+8]
mov rdx,[rdx+20]
mov rax,[rax]
mov rax,[rax+68]
jmp qword ptr [rax+28]
; Total bytes of code 32 System.Text.Tests.Perf_Encoding.GetEncoder(size: 512, encName: "ascii")
Description of detection logic
Compare Jit Disasm; System.Text.Tests.Perf_Encoding.GetEncoder()
mov rcx,[rcx+10]
mov rax,[rcx]
mov rax,[rax+68]
jmp qword ptr [rax+10]
; Total bytes of code 15 System.Text.Tests.Perf_Encoding.GetBytes(size: 16, encName: "utf-8")
Description of detection logic
Compare Jit Disasm; System.Text.Tests.Perf_Encoding.GetBytes()
mov [rsp+8],rcx
mov rax,[rcx+10]
mov rcx,rax
mov rdx,[rsp+8]
mov rdx,[rdx+18]
mov rax,[rax]
mov rax,[rax+58]
jmp qword ptr [rax+10]
; Total bytes of code 32 DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Tests.Perf_Version
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_Version*' PayloadsHistogramSystem.Tests.Perf_Version.Ctor2
Description of detection logic
; System.Version..ctor(Int32, Int32)
push rdi
push rsi
sub rsp,28
test edx,edx
jl short 000000000000F41B
test r8d,r8d
jl short 000000000000F478
mov [rcx+8],edx
mov [rcx+0C],r8d
mov dword ptr [rcx+10],0FFFFFFFF
mov dword ptr [rcx+14],0FFFFFFFF
add rsp,28
pop rsi
pop rdi
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,13F04
mov rdx,7FFE96E24000
call 00000000000014A0
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FFE96E24000
call 00000000000014A0
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,13F10
mov rdx,7FFE96E24000
call 00000000000014A0
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FFE96E24000
call 00000000000014A0
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
int 3
; Total bytes of code 230 Compare Jit Disasm; System.Tests.Perf_Version.Ctor2()
push rsi
sub rsp,20
mov rcx,offset MT_System.Version
call 0000000000002AE0
mov rsi,rax
mov rcx,rsi
mov edx,1
mov r8d,2
call qword ptr [1030]
mov rax,rsi
add rsp,20
pop rsi
ret
; Total bytes of code 52 ; System.Version..ctor(Int32, Int32)
push rdi
push rsi
sub rsp,28
test edx,edx
jl short 000000000000F41B
test r8d,r8d
jl short 000000000000F478
mov [rcx+8],edx
mov [rcx+0C],r8d
mov dword ptr [rcx+10],0FFFFFFFF
mov dword ptr [rcx+14],0FFFFFFFF
add rsp,28
pop rsi
pop rdi
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,13F76
mov rdx,7FFED9154000
call 000000000000A140
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FFED9154000
call 000000000000A140
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,13F82
mov rdx,7FFED9154000
call 000000000000A140
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FFED9154000
call 000000000000A140
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
int 3
; Total bytes of code 230 System.Tests.Perf_Version.Ctor3
Description of detection logic
; System.Version..ctor(Int32, Int32, Int32)
push rdi
push rsi
sub rsp,28
test edx,edx
jl short 000000000000F425
test r8d,r8d
jl near ptr 000000000000F482
test r9d,r9d
jl near ptr 000000000000F4DF
mov [rcx+8],edx
mov [rcx+0C],r8d
mov [rcx+10],r9d
mov dword ptr [rcx+14],0FFFFFFFF
add rsp,28
pop rsi
pop rdi
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,13F04
mov rdx,7FF7F0AC4000
call 00000000000014A0
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FF7F0AC4000
call 00000000000014A0
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,13F10
mov rdx,7FF7F0AC4000
call 00000000000014A0
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FF7F0AC4000
call 00000000000014A0
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,13F1C
mov rdx,7FF7F0AC4000
call 00000000000014A0
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FF7F0AC4000
call 00000000000014A0
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
int 3
; Total bytes of code 333 Compare Jit Disasm; System.Tests.Perf_Version.Ctor3()
push rsi
sub rsp,20
mov rcx,offset MT_System.Version
call 0000000000002AE0
mov rsi,rax
mov rcx,rsi
mov edx,1
mov r8d,2
mov r9d,3
call qword ptr [1018]
mov rax,rsi
add rsp,20
pop rsi
ret
; Total bytes of code 58 ; System.Version..ctor(Int32, Int32, Int32)
push rdi
push rsi
sub rsp,28
test edx,edx
jl short 000000000000F425
test r8d,r8d
jl near ptr 000000000000F482
test r9d,r9d
jl near ptr 000000000000F4DF
mov [rcx+8],edx
mov [rcx+0C],r8d
mov [rcx+10],r9d
mov dword ptr [rcx+14],0FFFFFFFF
add rsp,28
pop rsi
pop rdi
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,13F76
mov rdx,7FFCD6424000
call 000000000000A140
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FFCD6424000
call 000000000000A140
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,13F82
mov rdx,7FFCD6424000
call 000000000000A140
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FFCD6424000
call 000000000000A140
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,13F8E
mov rdx,7FFCD6424000
call 000000000000A140
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FFCD6424000
call 000000000000A140
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
int 3
; Total bytes of code 333 System.Tests.Perf_Version.Ctor4
Description of detection logic
; System.Version..ctor(Int32, Int32, Int32, Int32)
push rdi
push rsi
sub rsp,28
mov eax,[rsp+60]
test edx,edx
jl short 000000000000F44D
test r8d,r8d
jl near ptr 000000000000F4AA
test r9d,r9d
jl near ptr 000000000000F507
test eax,eax
jl near ptr 000000000000F564
mov [rcx+8],edx
mov [rcx+0C],r8d
mov [rcx+10],r9d
mov [rcx+14],eax
add rsp,28
pop rsi
pop rdi
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,13F04
mov rdx,7FFB18D54000
call 00000000000014A0
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FFB18D54000
call 00000000000014A0
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,13F10
mov rdx,7FFB18D54000
call 00000000000014A0
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FFB18D54000
call 00000000000014A0
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,13F1C
mov rdx,7FFB18D54000
call 00000000000014A0
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FFB18D54000
call 00000000000014A0
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,13F28
mov rdx,7FFB18D54000
call 00000000000014A0
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FFB18D54000
call 00000000000014A0
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
int 3
; Total bytes of code 434 Compare Jit Disasm; System.Tests.Perf_Version.Ctor4()
push rsi
sub rsp,30
mov rcx,offset MT_System.Version
call 0000000000002AE0
mov rsi,rax
mov dword ptr [rsp+20],4
mov rcx,rsi
mov edx,1
mov r8d,2
mov r9d,3
call qword ptr [1000]
mov rax,rsi
add rsp,30
pop rsi
ret
; Total bytes of code 66 ; System.Version..ctor(Int32, Int32, Int32, Int32)
push rdi
push rsi
sub rsp,28
mov eax,[rsp+60]
test edx,edx
jl short 000000000000F44D
test r8d,r8d
jl near ptr 000000000000F4AA
test r9d,r9d
jl near ptr 000000000000F507
test eax,eax
jl near ptr 000000000000F564
mov [rcx+8],edx
mov [rcx+0C],r8d
mov [rcx+10],r9d
mov [rcx+14],eax
add rsp,28
pop rsi
pop rdi
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,13F76
mov rdx,7FFB57614000
call 000000000000A140
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FFB57614000
call 000000000000A140
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,13F82
mov rdx,7FFB57614000
call 000000000000A140
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FFB57614000
call 000000000000A140
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,13F8E
mov rdx,7FFB57614000
call 000000000000A140
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FFB57614000
call 000000000000A140
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,13F9A
mov rdx,7FFB57614000
call 000000000000A140
mov rdi,rax
mov ecx,0A7B1
mov rdx,7FFB57614000
call 000000000000A140
mov rcx,rax
call qword ptr [57E0]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
int 3
; Total bytes of code 434 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in System.Collections.Tests.Perf_BitArray
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Collections.Tests.Perf_BitArray*' PayloadsHistogramSystem.Collections.Tests.Perf_BitArray.BitArrayLengthValueCtor(Size: 4)
Description of detection logic
; System.Collections.BitArray..ctor(Int32, Boolean)
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov edi,edx
mov ebx,r8d
test edi,edi
jl short 0000000000000243
lea edx,[rdi+1F]
shr edx,5
movsxd rdx,edx
mov rcx,offset MT_System.Int32[]
call 000000000000C4B0
lea rcx,[rsi+8]
mov rdx,rax
call 0000000000000010
mov [rsi+10],edi
test bl,bl
je short 0000000000000236
mov rcx,[rsi+8]
mov edx,0FFFFFFFF
call qword ptr [37E0]
and edi,1F
jle short 0000000000000236
mov rcx,[rsi+8]
mov eax,[rcx+8]
lea edx,[rax+0FFFF]
cmp edx,eax
jae near ptr 00000000000002B9
mov eax,edx
mov edx,1
shlx edx,edx,edi
dec edx
mov [rcx+rax*4+10],edx
xor ecx,ecx
mov [rsi+14],ecx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,offset MT_System.Int32
call 000000000000C390
mov rsi,rax
mov [rsi+8],edi
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rdi,rax
mov ecx,7AD
mov rdx,7FFA0171E098
call 00000000000014A0
mov rbx,rax
mov ecx,81
mov rdx,7FFA0171E098
call 00000000000014A0
mov rcx,rax
call qword ptr [3810]
mov r9,rax
mov rdx,rbx
mov r8,rsi
mov rcx,rdi
call qword ptr [1858]
mov rcx,rdi
call 0000000000004690
int 3
call 0000000000006930
int 3
; Total bytes of code 255 Compare Jit Disasm; System.Collections.Tests.Perf_BitArray.BitArrayLengthValueCtor()
push rdi
push rsi
sub rsp,28
mov rsi,rcx
mov rcx,offset MT_System.Collections.BitArray
call 0000000000002AE0
mov rdi,rax
mov edx,[rsi+30]
mov rcx,rdi
mov r8d,1
call qword ptr [1018]
mov rax,rdi
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 55 ; System.Collections.BitArray..ctor(Int32, Boolean)
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov edi,edx
mov ebx,r8d
test edi,edi
jl short 0000000000000243
lea edx,[rdi+1F]
shr edx,5
movsxd rdx,edx
mov rcx,offset MT_System.Int32[]
call 0000000000002C00
lea rcx,[rsi+8]
mov rdx,rax
call 0000000000000010
mov [rsi+10],edi
test bl,bl
je short 0000000000000236
mov rcx,[rsi+8]
mov edx,0FFFFFFFF
call qword ptr [37E0]
and edi,1F
jle short 0000000000000236
mov rcx,[rsi+8]
mov eax,[rcx+8]
lea edx,[rax+0FFFF]
cmp edx,eax
jae near ptr 00000000000002B9
mov eax,edx
mov edx,1
shlx edx,edx,edi
dec edx
mov [rcx+rax*4+10],edx
xor ecx,ecx
mov [rsi+14],ecx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,offset MT_System.Int32
call 0000000000002AE0
mov rsi,rax
mov [rsi+8],edi
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rdi,rax
mov ecx,7AD
mov rdx,7FFE9735E1E0
call 000000000000A140
mov rbx,rax
mov ecx,81
mov rdx,7FFE9735E1E0
call 000000000000A140
mov rcx,rax
call qword ptr [3810]
mov r9,rax
mov rdx,rbx
mov r8,rsi
mov rcx,rdi
call qword ptr [1858]
mov rcx,rdi
call 0000000000002B00
int 3
call 000000000000AB50
int 3
; Total bytes of code 255 System.Collections.Tests.Perf_BitArray.BitArrayBitArrayCtor(Size: 512)
Description of detection logic
; System.Collections.BitArray..ctor(System.Collections.BitArray)
push rdi
push rsi
push rbx
sub rsp,20
mov rdi,rcx
mov rsi,rdx
test rsi,rsi
je short 000000000000019E
mov ebx,[rsi+10]
add ebx,1F
shr ebx,5
movsxd rdx,ebx
mov rcx,offset MT_System.Int32[]
call 000000000000C4B0
lea rcx,[rdi+8]
mov rdx,rax
call 0000000000000010
mov rcx,[rsi+8]
mov rdx,[rdi+8]
mov r8d,ebx
call qword ptr [9018]
mov ecx,[rsi+10]
mov [rdi+10],ecx
mov ecx,[rsi+14]
mov [rdi+14],ecx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov ecx,7D5
mov rdx,7FF95FE7E098
call 00000000000014A0
mov rcx,rax
call qword ptr [33F0]
int 3
; Total bytes of code 124 Compare Jit Disasm; System.Collections.Tests.Perf_BitArray.BitArrayBitArrayCtor()
push rdi
push rsi
sub rsp,28
mov rsi,rcx
mov rcx,offset MT_System.Collections.BitArray
call 0000000000002AE0
mov rdi,rax
mov rdx,[rsi+8]
mov rcx,rdi
call qword ptr [1078]
mov rax,rdi
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 50 ; System.Collections.BitArray..ctor(System.Collections.BitArray)
push rdi
push rsi
push rbx
sub rsp,20
mov rdi,rcx
mov rsi,rdx
test rsi,rsi
je short 000000000000019E
mov ebx,[rsi+10]
add ebx,1F
shr ebx,5
movsxd rdx,ebx
mov rcx,offset MT_System.Int32[]
call 0000000000002C00
lea rcx,[rdi+8]
mov rdx,rax
call 0000000000000010
mov rcx,[rsi+8]
mov rdx,[rdi+8]
mov r8d,ebx
call qword ptr [9018]
mov ecx,[rsi+10]
mov [rdi+10],ecx
mov ecx,[rsi+14]
mov [rdi+14],ecx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov ecx,7D5
mov rdx,7FFB26CCE1E0
call 000000000000A140
mov rcx,rax
call qword ptr [33F0]
int 3
; Total bytes of code 124 System.Collections.Tests.Perf_BitArray.BitArrayNot(Size: 4)
Description of detection logic
; System.Collections.BitArray.Not()
sub rsp,28
vzeroupper
mov rax,[rcx+8]
mov edx,[rcx+10]
add edx,1F
shr edx,5
cmp edx,7
ja near ptr 000000000000FDCE
mov edx,edx
lea r8,[0FE78]
mov r8d,[r8+rdx*4]
lea r9,[0FCE7]
add r8,r9
jmp r8
mov r9d,[rax+8]
cmp r9d,6
jbe near ptr 000000000000FE6F
mov r9d,[rax+28]
mov edx,r9d
not edx
mov [rax+28],edx
mov r9d,[rax+8]
cmp r9d,5
jbe near ptr 000000000000FE6F
mov r9d,[rax+24]
mov edx,r9d
not edx
mov [rax+24],edx
mov r9d,[rax+8]
cmp r9d,4
jbe near ptr 000000000000FE6F
mov r9d,[rax+20]
mov edx,r9d
not edx
mov [rax+20],edx
mov r9d,[rax+8]
cmp r9d,3
jbe near ptr 000000000000FE6F
mov r9d,[rax+1C]
mov edx,r9d
not edx
mov [rax+1C],edx
mov r9d,[rax+8]
cmp r9d,2
jbe near ptr 000000000000FE6F
mov r9d,[rax+18]
mov edx,r9d
not edx
mov [rax+18],edx
mov r9d,[rax+8]
cmp r9d,1
jbe near ptr 000000000000FE6F
mov r9d,[rax+14]
mov edx,r9d
not edx
mov [rax+14],edx
mov r9d,[rax+8]
test r9d,r9d
je near ptr 000000000000FE6F
mov edx,[rax+10]
not edx
mov [rax+10],edx
jmp near ptr 000000000000FE61
nop
xor r8d,r8d
cmp [rax],al
lea r9,[rax+10]
lea r10d,[rdx+0FFF9]
test r10d,r10d
jbe short 000000000000FDFD
mov r11d,r8d
vpcmpeqd ymm0,ymm0,ymm0
vpxor ymm0,ymm0,[r9+r11*4]
vmovdqu ymmword ptr [r9+r11*4],ymm0
add r8d,8
cmp r8d,r10d
jb short 000000000000FDE0
cmp r8d,edx
jae short 000000000000FE61
test r8d,r8d
jl short 000000000000FE3A
test edx,edx
jl short 000000000000FE3A
mov r9d,[rax+8]
cmp r9d,edx
jl short 000000000000FE3A
nop dword ptr [rax]
nop dword ptr [rax+rax]
mov r9d,r8d
mov r10d,[rax+r9*4+10]
not r10d
mov [rax+r9*4+10],r10d
inc r8d
cmp r8d,edx
jb short 000000000000FE20
jmp short 000000000000FE61
mov r9d,[rax+8]
cmp r8d,r9d
jae short 000000000000FE6F
mov r10d,r8d
mov r9d,[rax+r10*4+10]
mov r10d,r9d
not r10d
mov r9d,r8d
mov [rax+r9*4+10],r10d
inc r8d
cmp r8d,edx
jb short 000000000000FE3A
inc dword ptr [rcx+14]
mov rax,rcx
vzeroupper
add rsp,28
ret
call 0000000000006930
int 3
; Total bytes of code 405 Compare Jit Disasm; System.Collections.Tests.Perf_BitArray.BitArrayNot()
mov rcx,[rcx+8]
cmp [rcx],ecx
jmp qword ptr [1150]
; Total bytes of code 12 ; System.Collections.BitArray.Not()
sub rsp,28
vzeroupper
mov rax,[rcx+8]
mov edx,[rcx+10]
add edx,1F
shr edx,5
cmp edx,7
ja near ptr 000000000000FDCE
mov edx,edx
lea r8,[0FE78]
mov r8d,[r8+rdx*4]
lea r9,[0FCE7]
add r8,r9
jmp r8
mov r9d,[rax+8]
cmp r9d,6
jbe near ptr 000000000000FE6F
mov r9d,[rax+28]
mov edx,r9d
not edx
mov [rax+28],edx
mov r9d,[rax+8]
cmp r9d,5
jbe near ptr 000000000000FE6F
mov r9d,[rax+24]
mov edx,r9d
not edx
mov [rax+24],edx
mov r9d,[rax+8]
cmp r9d,4
jbe near ptr 000000000000FE6F
mov r9d,[rax+20]
mov edx,r9d
not edx
mov [rax+20],edx
mov r9d,[rax+8]
cmp r9d,3
jbe near ptr 000000000000FE6F
mov r9d,[rax+1C]
mov edx,r9d
not edx
mov [rax+1C],edx
mov r9d,[rax+8]
cmp r9d,2
jbe near ptr 000000000000FE6F
mov r9d,[rax+18]
mov edx,r9d
not edx
mov [rax+18],edx
mov r9d,[rax+8]
cmp r9d,1
jbe near ptr 000000000000FE6F
mov r9d,[rax+14]
mov edx,r9d
not edx
mov [rax+14],edx
mov r9d,[rax+8]
test r9d,r9d
je near ptr 000000000000FE6F
mov edx,[rax+10]
not edx
mov [rax+10],edx
jmp near ptr 000000000000FE61
nop
xor r8d,r8d
cmp [rax],al
lea r9,[rax+10]
lea r10d,[rdx+0FFF9]
test r10d,r10d
jbe short 000000000000FDFD
mov r11d,r8d
vpcmpeqd ymm0,ymm0,ymm0
vpxor ymm0,ymm0,[r9+r11*4]
vmovdqu ymmword ptr [r9+r11*4],ymm0
add r8d,8
cmp r8d,r10d
jb short 000000000000FDE0
cmp r8d,edx
jae short 000000000000FE61
test r8d,r8d
jl short 000000000000FE3A
test edx,edx
jl short 000000000000FE3A
mov r9d,[rax+8]
cmp r9d,edx
jl short 000000000000FE3A
nop dword ptr [rax]
nop dword ptr [rax+rax]
mov r9d,r8d
mov r10d,[rax+r9*4+10]
not r10d
mov [rax+r9*4+10],r10d
inc r8d
cmp r8d,edx
jb short 000000000000FE20
jmp short 000000000000FE61
mov r9d,[rax+8]
cmp r8d,r9d
jae short 000000000000FE6F
mov r10d,r8d
mov r9d,[rax+r10*4+10]
mov r10d,r9d
not r10d
mov r9d,r8d
mov [rax+r9*4+10],r10d
inc r8d
cmp r8d,edx
jb short 000000000000FE3A
inc dword ptr [rcx+14]
mov rax,rcx
vzeroupper
add rsp,28
ret
call 000000000000AB50
int 3
; Total bytes of code 405 System.Collections.Tests.Perf_BitArray.BitArrayBitArrayCtor(Size: 4)
Description of detection logic
; System.Collections.BitArray..ctor(System.Collections.BitArray)
push rdi
push rsi
push rbx
sub rsp,20
mov rdi,rcx
mov rsi,rdx
test rsi,rsi
je short 000000000000015E
mov ebx,[rsi+10]
add ebx,1F
shr ebx,5
movsxd rdx,ebx
mov rcx,offset MT_System.Int32[]
call 000000000000C4B0
lea rcx,[rdi+8]
mov rdx,rax
call 0000000000000010
mov rcx,[rsi+8]
mov rdx,[rdi+8]
mov r8d,ebx
call qword ptr [9018]
mov ecx,[rsi+10]
mov [rdi+10],ecx
mov ecx,[rsi+14]
mov [rdi+14],ecx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov ecx,7D5
mov rdx,7FF95FEFE098
call 00000000000014A0
mov rcx,rax
call qword ptr [33F0]
int 3
; Total bytes of code 124 Compare Jit Disasm; System.Collections.Tests.Perf_BitArray.BitArrayBitArrayCtor()
push rdi
push rsi
sub rsp,28
mov rsi,rcx
mov rcx,offset MT_System.Collections.BitArray
call 0000000000002AE0
mov rdi,rax
mov rdx,[rsi+8]
mov rcx,rdi
call qword ptr [1078]
mov rax,rdi
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 50 ; System.Collections.BitArray..ctor(System.Collections.BitArray)
push rdi
push rsi
push rbx
sub rsp,20
mov rdi,rcx
mov rsi,rdx
test rsi,rsi
je short 000000000000015E
mov ebx,[rsi+10]
add ebx,1F
shr ebx,5
movsxd rdx,ebx
mov rcx,offset MT_System.Int32[]
call 0000000000002C00
lea rcx,[rdi+8]
mov rdx,rax
call 0000000000000010
mov rcx,[rsi+8]
mov rdx,[rdi+8]
mov r8d,ebx
call qword ptr [9018]
mov ecx,[rsi+10]
mov [rdi+10],ecx
mov ecx,[rsi+14]
mov [rdi+14],ecx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov ecx,7D5
mov rdx,7FFB26D1E1E0
call 000000000000A140
mov rcx,rax
call qword ptr [33F0]
int 3
; Total bytes of code 124 System.Collections.Tests.Perf_BitArray.BitArrayLengthCtor(Size: 512)
Description of detection logic
; System.Collections.BitArray..ctor(Int32, Boolean)
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov edi,edx
mov ebx,r8d
test edi,edi
jl short 000000000000F683
lea edx,[rdi+1F]
shr edx,5
movsxd rdx,edx
mov rcx,offset MT_System.Int32[]
call 000000000000C4B0
lea rcx,[rsi+8]
mov rdx,rax
call 0000000000000010
mov [rsi+10],edi
test bl,bl
je short 000000000000F676
mov rcx,[rsi+8]
mov edx,0FFFFFFFF
call qword ptr [37E0]
and edi,1F
jle short 000000000000F676
mov rcx,[rsi+8]
mov eax,[rcx+8]
lea edx,[rax+0FFFF]
cmp edx,eax
jae near ptr 000000000000F6F9
mov eax,edx
mov edx,1
shlx edx,edx,edi
dec edx
mov [rcx+rax*4+10],edx
xor ecx,ecx
mov [rsi+14],ecx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,offset MT_System.Int32
call 000000000000C390
mov rsi,rax
mov [rsi+8],edi
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rdi,rax
mov ecx,7AD
mov rdx,7FFB3B6BE098
call 00000000000014A0
mov rbx,rax
mov ecx,81
mov rdx,7FFB3B6BE098
call 00000000000014A0
mov rcx,rax
call qword ptr [3810]
mov r9,rax
mov rdx,rbx
mov r8,rsi
mov rcx,rdi
call qword ptr [1858]
mov rcx,rdi
call 0000000000004690
int 3
call 0000000000006930
int 3
; Total bytes of code 255 Compare Jit Disasm; System.Collections.Tests.Perf_BitArray.BitArrayLengthCtor()
push rdi
push rsi
sub rsp,28
mov rsi,rcx
mov rcx,offset MT_System.Collections.BitArray
call 0000000000002AE0
mov rdi,rax
mov edx,[rsi+30]
mov rcx,rdi
xor r8d,r8d
call qword ptr [1018]
mov rax,rdi
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 52 ; System.Collections.BitArray..ctor(Int32, Boolean)
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov edi,edx
mov ebx,r8d
test edi,edi
jl short 000000000000F683
lea edx,[rdi+1F]
shr edx,5
movsxd rdx,edx
mov rcx,offset MT_System.Int32[]
call 0000000000002C00
lea rcx,[rsi+8]
mov rdx,rax
call 0000000000000010
mov [rsi+10],edi
test bl,bl
je short 000000000000F676
mov rcx,[rsi+8]
mov edx,0FFFFFFFF
call qword ptr [37E0]
and edi,1F
jle short 000000000000F676
mov rcx,[rsi+8]
mov eax,[rcx+8]
lea edx,[rax+0FFFF]
cmp edx,eax
jae near ptr 000000000000F6F9
mov eax,edx
mov edx,1
shlx edx,edx,edi
dec edx
mov [rcx+rax*4+10],edx
xor ecx,ecx
mov [rsi+14],ecx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,offset MT_System.Int32
call 0000000000002AE0
mov rsi,rax
mov [rsi+8],edi
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rdi,rax
mov ecx,7AD
mov rdx,7FF929CBE1E0
call 000000000000A140
mov rbx,rax
mov ecx,81
mov rdx,7FF929CBE1E0
call 000000000000A140
mov rcx,rax
call qword ptr [3810]
mov r9,rax
mov rdx,rbx
mov r8,rsi
mov rcx,rdi
call qword ptr [1858]
mov rcx,rdi
call 0000000000002B00
int 3
call 000000000000AB50
int 3
; Total bytes of code 255 System.Collections.Tests.Perf_BitArray.BitArrayBoolArrayCtor(Size: 4)
Description of detection logic
; System.Collections.BitArray..ctor(Boolean[])
push rdi
push rsi
push rbx
sub rsp,20
vzeroupper
mov rsi,rcx
mov rdi,rdx
test rdi,rdi
je near ptr 0000000000000488
mov ebx,[rdi+8]
mov edx,ebx
add edx,1F
shr edx,5
movsxd rdx,edx
mov rcx,offset MT_System.Int32[]
call 000000000000C4B0
lea rcx,[rsi+8]
mov rdx,rax
call 0000000000000010
mov [rsi+10],ebx
xor ecx,ecx
cmp ebx,20
jl short 00000000000003F0
lea rdx,[rdi+10]
cmp ebx,20
jb short 00000000000003F0
mov eax,ecx
vxorps ymm0,ymm0,ymm0
vpcmpeqb ymm0,ymm0,[rdx+rax]
vpmovmskb eax,ymm0
mov r8,[rsi+8]
mov r9d,ecx
shr r9d,5
cmp r9d,[r8+8]
jae near ptr 00000000000004A6
mov r9d,r9d
not eax
mov [r8+r9*4+10],eax
add ecx,20
lea eax,[rcx+20]
cmp ebx,eax
jae short 00000000000003B5
cmp ebx,ecx
jbe near ptr 0000000000000478
test ecx,ecx
jl short 000000000000043D
nop dword ptr [rax]
mov edx,ecx
cmp byte ptr [rdi+rdx+10],0
je short 0000000000000435
mov edx,ecx
shr edx,5
mov eax,ecx
and eax,1F
mov r8,[rsi+8]
cmp edx,[r8+8]
jae near ptr 00000000000004A6
mov edx,edx
lea rdx,[r8+rdx*4+10]
mov r8d,1
shlx eax,r8d,eax
or [rdx],eax
inc ecx
cmp ebx,ecx
ja short 0000000000000400
jmp short 0000000000000478
cmp ecx,ebx
jae short 00000000000004A6
mov edx,ecx
cmp byte ptr [rdi+rdx+10],0
je short 0000000000000472
mov edx,ecx
shr edx,5
mov eax,ecx
and eax,1F
mov r8,[rsi+8]
cmp edx,[r8+8]
jae short 00000000000004A6
mov edx,edx
lea rdx,[r8+rdx*4+10]
mov r8d,1
shlx eax,r8d,eax
or [rdx],eax
inc ecx
cmp ebx,ecx
ja short 000000000000043D
xor ecx,ecx
mov [rsi+14],ecx
vzeroupper
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov ecx,7C7
mov rdx,7FFDC689E098
call 00000000000014A0
mov rcx,rax
call qword ptr [33F0]
int 3
call 0000000000006930
int 3
; Total bytes of code 332 Compare Jit Disasm; System.Collections.Tests.Perf_BitArray.BitArrayBoolArrayCtor()
push rdi
push rsi
sub rsp,28
mov rsi,rcx
mov rcx,offset MT_System.Collections.BitArray
call 0000000000002AE0
mov rdi,rax
mov rdx,[rsi+20]
mov rcx,rdi
call qword ptr [1048]
mov rax,rdi
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 50 ; System.Collections.BitArray..ctor(Boolean[])
push rdi
push rsi
push rbx
sub rsp,20
vzeroupper
mov rsi,rcx
mov rdi,rdx
test rdi,rdi
je near ptr 00000000000006E8
mov ebx,[rdi+8]
mov edx,ebx
add edx,1F
shr edx,5
movsxd rdx,edx
mov rcx,offset MT_System.Int32[]
call 0000000000002C00
lea rcx,[rsi+8]
mov rdx,rax
call 0000000000000010
mov [rsi+10],ebx
xor ecx,ecx
cmp ebx,20
jl short 0000000000000650
lea rdx,[rdi+10]
cmp ebx,20
jb short 0000000000000650
mov eax,ecx
vxorps ymm0,ymm0,ymm0
vpcmpeqb ymm0,ymm0,[rdx+rax]
vpmovmskb eax,ymm0
mov r8,[rsi+8]
mov r9d,ecx
shr r9d,5
cmp r9d,[r8+8]
jae near ptr 0000000000000706
mov r9d,r9d
not eax
mov [r8+r9*4+10],eax
add ecx,20
lea eax,[rcx+20]
cmp ebx,eax
jae short 0000000000000615
cmp ebx,ecx
jbe near ptr 00000000000006D8
test ecx,ecx
jl short 000000000000069D
nop dword ptr [rax]
mov edx,ecx
cmp byte ptr [rdi+rdx+10],0
je short 0000000000000695
mov edx,ecx
shr edx,5
mov eax,ecx
and eax,1F
mov r8,[rsi+8]
cmp edx,[r8+8]
jae near ptr 0000000000000706
mov edx,edx
lea rdx,[r8+rdx*4+10]
mov r8d,1
shlx eax,r8d,eax
or [rdx],eax
inc ecx
cmp ebx,ecx
ja short 0000000000000660
jmp short 00000000000006D8
cmp ecx,ebx
jae short 0000000000000706
mov edx,ecx
cmp byte ptr [rdi+rdx+10],0
je short 00000000000006D2
mov edx,ecx
shr edx,5
mov eax,ecx
and eax,1F
mov r8,[rsi+8]
cmp edx,[r8+8]
jae short 0000000000000706
mov edx,edx
lea rdx,[r8+rdx*4+10]
mov r8d,1
shlx eax,r8d,eax
or [rdx],eax
inc ecx
cmp ebx,ecx
ja short 000000000000069D
xor ecx,ecx
mov [rsi+14],ecx
vzeroupper
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov ecx,7C7
mov rdx,7FFB39DAE1E0
call 000000000000A140
mov rcx,rax
call qword ptr [33F0]
int 3
call 000000000000AB50
int 3
; Total bytes of code 332 System.Collections.Tests.Perf_BitArray.BitArrayIntArrayCtor(Size: 4)
Description of detection logic
; System.Collections.BitArray..ctor(Int32[])
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov rdi,rdx
test rdi,rdi
je short 00000000000001DD
mov ebx,[rdi+8]
cmp ebx,3FFFFFF
jg short 00000000000001FB
mov edx,ebx
mov rcx,offset MT_System.Int32[]
call 000000000000C4B0
lea rcx,[rsi+8]
mov rdx,rax
call 0000000000000010
mov rdx,[rsi+8]
mov r8d,ebx
mov rcx,rdi
call qword ptr [9018]
shl ebx,5
mov [rsi+10],ebx
xor ecx,ecx
mov [rsi+14],ecx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov ecx,7C7
mov rdx,7FFE84CBE098
call 00000000000014A0
mov rcx,rax
call qword ptr [33F0]
int 3
mov rcx,offset MT_System.Int32
call 000000000000C390
mov rsi,rax
mov ecx,41D
mov rdx,7FFE84CBE098
call 00000000000014A0
mov rcx,rax
call qword ptr [37F8]
mov rdi,rax
mov dword ptr [rsi+8],20
mov rcx,offset MT_System.ArgumentException
call 000000000000C390
mov rbx,rax
mov rdx,rsi
mov rcx,rdi
call qword ptr [3810]
mov rsi,rax
mov ecx,7C7
mov rdx,7FFE84CBE098
call 00000000000014A0
mov r8,rax
mov rdx,rsi
mov rcx,rbx
call qword ptr [0BBD0]
mov rcx,rbx
call 0000000000004690
int 3
; Total bytes of code 257 Compare Jit Disasm; System.Collections.Tests.Perf_BitArray.BitArrayIntArrayCtor()
push rdi
push rsi
sub rsp,28
mov rsi,rcx
mov rcx,offset MT_System.Collections.BitArray
call 0000000000002AE0
mov rdi,rax
mov rdx,[rsi+28]
mov rcx,rdi
call qword ptr [1060]
mov rax,rdi
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 50 ; System.Collections.BitArray..ctor(Int32[])
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov rdi,rdx
test rdi,rdi
je short 000000000000041D
mov ebx,[rdi+8]
cmp ebx,3FFFFFF
jg short 000000000000043B
mov edx,ebx
mov rcx,offset MT_System.Int32[]
call 0000000000002C00
lea rcx,[rsi+8]
mov rdx,rax
call 0000000000000010
mov rdx,[rsi+8]
mov r8d,ebx
mov rcx,rdi
call qword ptr [9018]
shl ebx,5
mov [rsi+10],ebx
xor ecx,ecx
mov [rsi+14],ecx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov ecx,7C7
mov rdx,7FFDB913E1E0
call 000000000000A140
mov rcx,rax
call qword ptr [33F0]
int 3
mov rcx,offset MT_System.Int32
call 0000000000002AE0
mov rsi,rax
mov ecx,41D
mov rdx,7FFDB913E1E0
call 000000000000A140
mov rcx,rax
call qword ptr [37F8]
mov rdi,rax
mov dword ptr [rsi+8],20
mov rcx,offset MT_System.ArgumentException
call 0000000000002AE0
mov rbx,rax
mov rdx,rsi
mov rcx,rdi
call qword ptr [3810]
mov rsi,rax
mov ecx,7C7
mov rdx,7FFDB913E1E0
call 000000000000A140
mov r8,rax
mov rdx,rsi
mov rcx,rbx
call qword ptr [0BBD0]
mov rcx,rbx
call 0000000000002B00
int 3
; Total bytes of code 257 System.Collections.Tests.Perf_BitArray.BitArrayLengthCtor(Size: 4)
Description of detection logic
; System.Collections.BitArray..ctor(Int32, Boolean)
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov edi,edx
mov ebx,r8d
test edi,edi
jl short 000000000000F683
lea edx,[rdi+1F]
shr edx,5
movsxd rdx,edx
mov rcx,offset MT_System.Int32[]
call 000000000000C4B0
lea rcx,[rsi+8]
mov rdx,rax
call 0000000000000010
mov [rsi+10],edi
test bl,bl
je short 000000000000F676
mov rcx,[rsi+8]
mov edx,0FFFFFFFF
call qword ptr [37E0]
and edi,1F
jle short 000000000000F676
mov rcx,[rsi+8]
mov eax,[rcx+8]
lea edx,[rax+0FFFF]
cmp edx,eax
jae near ptr 000000000000F6F9
mov eax,edx
mov edx,1
shlx edx,edx,edi
dec edx
mov [rcx+rax*4+10],edx
xor ecx,ecx
mov [rsi+14],ecx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,offset MT_System.Int32
call 000000000000C390
mov rsi,rax
mov [rsi+8],edi
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rdi,rax
mov ecx,7AD
mov rdx,7FFB3B72E098
call 00000000000014A0
mov rbx,rax
mov ecx,81
mov rdx,7FFB3B72E098
call 00000000000014A0
mov rcx,rax
call qword ptr [3810]
mov r9,rax
mov rdx,rbx
mov r8,rsi
mov rcx,rdi
call qword ptr [1858]
mov rcx,rdi
call 0000000000004690
int 3
call 0000000000006930
int 3
; Total bytes of code 255 Compare Jit Disasm; System.Collections.Tests.Perf_BitArray.BitArrayLengthCtor()
push rdi
push rsi
sub rsp,28
mov rsi,rcx
mov rcx,offset MT_System.Collections.BitArray
call 0000000000002AE0
mov rdi,rax
mov edx,[rsi+30]
mov rcx,rdi
xor r8d,r8d
call qword ptr [1018]
mov rax,rdi
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 52 ; System.Collections.BitArray..ctor(Int32, Boolean)
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov edi,edx
mov ebx,r8d
test edi,edi
jl short 000000000000F683
lea edx,[rdi+1F]
shr edx,5
movsxd rdx,edx
mov rcx,offset MT_System.Int32[]
call 0000000000002C00
lea rcx,[rsi+8]
mov rdx,rax
call 0000000000000010
mov [rsi+10],edi
test bl,bl
je short 000000000000F676
mov rcx,[rsi+8]
mov edx,0FFFFFFFF
call qword ptr [37E0]
and edi,1F
jle short 000000000000F676
mov rcx,[rsi+8]
mov eax,[rcx+8]
lea edx,[rax+0FFFF]
cmp edx,eax
jae near ptr 000000000000F6F9
mov eax,edx
mov edx,1
shlx edx,edx,edi
dec edx
mov [rcx+rax*4+10],edx
xor ecx,ecx
mov [rsi+14],ecx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,offset MT_System.Int32
call 0000000000002AE0
mov rsi,rax
mov [rsi+8],edi
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rdi,rax
mov ecx,7AD
mov rdx,7FF929D3E1E0
call 000000000000A140
mov rbx,rax
mov ecx,81
mov rdx,7FF929D3E1E0
call 000000000000A140
mov rcx,rax
call qword ptr [3810]
mov r9,rax
mov rdx,rbx
mov r8,rsi
mov rcx,rdi
call qword ptr [1858]
mov rcx,rdi
call 0000000000002B00
int 3
call 000000000000AB50
int 3
; Total bytes of code 255 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in System.Tests.Perf_GC<Char>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_GC<Char>*' PayloadsHistogramSystem.Tests.Perf_GC<Char>.AllocateUninitializedArray(length: 10000, pinned: True)
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository
Regressions in System.Xml.Linq.Perf_XDocument
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Xml.Linq.Perf_XDocument*' PayloadsHistogramSystem.Xml.Linq.Perf_XDocument.Create
Description of detection logic
Compare Jit Disasm; System.Xml.Linq.Perf_XDocument.Create()
sub rsp,28
mov rcx,offset MT_System.Xml.Linq.XDocument
call 0000000000002AE0
nop
add rsp,28
ret
; Total bytes of code 25 DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Tests.Perf_UInt32
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_UInt32*' PayloadsHistogramSystem.Tests.Perf_UInt32.ToString(value: 0)
Description of detection logic
; System.Number.UInt32ToDecStr(UInt32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
mov eax,esi
mov ecx,1
cmp eax,186A0
jae near ptr 000000000000F47D
cmp eax,0A
jae short 000000000000F3F1
mov edi,ecx
cmp edi,1
jne short 000000000000F3FA
mov rax,1FC410002C8
mov rax,[rax]
cmp esi,[rax+8]
jae near ptr 000000000000F49E
mov ecx,esi
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp eax,64
jae short 000000000000F457
inc ecx
jmp short 000000000000F3C6
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F497
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F41F
xor edx,edx
mov [rsp+20],rdx
add rsp,28
pop rsi
pop rdi
ret
cmp eax,3E8
jae short 000000000000F466
add ecx,2
jmp near ptr 000000000000F3C6
cmp eax,2710
jae short 000000000000F475
add ecx,3
jmp near ptr 000000000000F3C6
add ecx,4
jmp near ptr 000000000000F3C6
mov eax,esi
shr eax,5
imul rax,0A7C5AC5
shr rax,27
mov ecx,6
jmp near ptr 000000000000F3C1
xor edx,edx
jmp near ptr 000000000000F418
call 0000000000006930
int 3
; Total bytes of code 260 Compare Jit Disasm; System.Tests.Perf_UInt32.ToString(UInt32)
sub rsp,28
mov ecx,edx
call qword ptr [93F0]
nop
add rsp,28
ret
; Total bytes of code 18 ; System.Number.UInt32ToDecStr(UInt32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
mov eax,esi
mov ecx,1
cmp eax,186A0
jae near ptr 000000000000F47D
cmp eax,0A
jae short 000000000000F3F1
mov edi,ecx
cmp edi,1
jne short 000000000000F3FA
mov rax,1E5DE0002C8
mov rax,[rax]
cmp esi,[rax+8]
jae near ptr 000000000000F49E
mov ecx,esi
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp eax,64
jae short 000000000000F457
inc ecx
jmp short 000000000000F3C6
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F497
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F41F
xor edx,edx
mov [rsp+20],rdx
add rsp,28
pop rsi
pop rdi
ret
cmp eax,3E8
jae short 000000000000F466
add ecx,2
jmp near ptr 000000000000F3C6
cmp eax,2710
jae short 000000000000F475
add ecx,3
jmp near ptr 000000000000F3C6
add ecx,4
jmp near ptr 000000000000F3C6
mov eax,esi
shr eax,5
imul rax,0A7C5AC5
shr rax,27
mov ecx,6
jmp near ptr 000000000000F3C1
xor edx,edx
jmp near ptr 000000000000F418
call 000000000000AB50
int 3
; Total bytes of code 260 System.Tests.Perf_UInt32.ToString(value: 12345)
Description of detection logic
; System.Number.UInt32ToDecStr(UInt32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
mov eax,esi
mov ecx,1
cmp eax,186A0
jae near ptr 000000000000F47D
cmp eax,0A
jae short 000000000000F3F1
mov edi,ecx
cmp edi,1
jne short 000000000000F3FA
mov rax,1A360C002C8
mov rax,[rax]
cmp esi,[rax+8]
jae near ptr 000000000000F49E
mov ecx,esi
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp eax,64
jae short 000000000000F457
inc ecx
jmp short 000000000000F3C6
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F497
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F41F
xor edx,edx
mov [rsp+20],rdx
add rsp,28
pop rsi
pop rdi
ret
cmp eax,3E8
jae short 000000000000F466
add ecx,2
jmp near ptr 000000000000F3C6
cmp eax,2710
jae short 000000000000F475
add ecx,3
jmp near ptr 000000000000F3C6
add ecx,4
jmp near ptr 000000000000F3C6
mov eax,esi
shr eax,5
imul rax,0A7C5AC5
shr rax,27
mov ecx,6
jmp near ptr 000000000000F3C1
xor edx,edx
jmp near ptr 000000000000F418
call 0000000000006930
int 3
; Total bytes of code 260 Compare Jit Disasm; System.Tests.Perf_UInt32.ToString(UInt32)
sub rsp,28
mov ecx,edx
call qword ptr [93F0]
nop
add rsp,28
ret
; Total bytes of code 18 ; System.Number.UInt32ToDecStr(UInt32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
mov eax,esi
mov ecx,1
cmp eax,186A0
jae near ptr 000000000000F47D
cmp eax,0A
jae short 000000000000F3F1
mov edi,ecx
cmp edi,1
jne short 000000000000F3FA
mov rax,29C174002C8
mov rax,[rax]
cmp esi,[rax+8]
jae near ptr 000000000000F49E
mov ecx,esi
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp eax,64
jae short 000000000000F457
inc ecx
jmp short 000000000000F3C6
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F497
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F41F
xor edx,edx
mov [rsp+20],rdx
add rsp,28
pop rsi
pop rdi
ret
cmp eax,3E8
jae short 000000000000F466
add ecx,2
jmp near ptr 000000000000F3C6
cmp eax,2710
jae short 000000000000F475
add ecx,3
jmp near ptr 000000000000F3C6
add ecx,4
jmp near ptr 000000000000F3C6
mov eax,esi
shr eax,5
imul rax,0A7C5AC5
shr rax,27
mov ecx,6
jmp near ptr 000000000000F3C1
xor edx,edx
jmp near ptr 000000000000F418
call 000000000000AB50
int 3
; Total bytes of code 260 System.Tests.Perf_UInt32.ToString(value: 4294967295)
Description of detection logic
; System.Number.UInt32ToDecStr(UInt32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
mov eax,esi
mov ecx,1
cmp eax,186A0
jae near ptr 000000000000F47D
cmp eax,0A
jae short 000000000000F3F1
mov edi,ecx
cmp edi,1
jne short 000000000000F3FA
mov rax,1BD99C002C8
mov rax,[rax]
cmp esi,[rax+8]
jae near ptr 000000000000F49E
mov ecx,esi
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp eax,64
jae short 000000000000F457
inc ecx
jmp short 000000000000F3C6
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F497
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F41F
xor edx,edx
mov [rsp+20],rdx
add rsp,28
pop rsi
pop rdi
ret
cmp eax,3E8
jae short 000000000000F466
add ecx,2
jmp near ptr 000000000000F3C6
cmp eax,2710
jae short 000000000000F475
add ecx,3
jmp near ptr 000000000000F3C6
add ecx,4
jmp near ptr 000000000000F3C6
mov eax,esi
shr eax,5
imul rax,0A7C5AC5
shr rax,27
mov ecx,6
jmp near ptr 000000000000F3C1
xor edx,edx
jmp near ptr 000000000000F418
call 0000000000006930
int 3
; Total bytes of code 260 Compare Jit Disasm; System.Tests.Perf_UInt32.ToString(UInt32)
sub rsp,28
mov ecx,edx
call qword ptr [93F0]
nop
add rsp,28
ret
; Total bytes of code 18 ; System.Number.UInt32ToDecStr(UInt32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
mov eax,esi
mov ecx,1
cmp eax,186A0
jae near ptr 000000000000F47D
cmp eax,0A
jae short 000000000000F3F1
mov edi,ecx
cmp edi,1
jne short 000000000000F3FA
mov rax,294880002C8
mov rax,[rax]
cmp esi,[rax+8]
jae near ptr 000000000000F49E
mov ecx,esi
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp eax,64
jae short 000000000000F457
inc ecx
jmp short 000000000000F3C6
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F497
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F41F
xor edx,edx
mov [rsp+20],rdx
add rsp,28
pop rsi
pop rdi
ret
cmp eax,3E8
jae short 000000000000F466
add ecx,2
jmp near ptr 000000000000F3C6
cmp eax,2710
jae short 000000000000F475
add ecx,3
jmp near ptr 000000000000F3C6
add ecx,4
jmp near ptr 000000000000F3C6
mov eax,esi
shr eax,5
imul rax,0A7C5AC5
shr rax,27
mov ecx,6
jmp near ptr 000000000000F3C1
xor edx,edx
jmp near ptr 000000000000F418
call 000000000000AB50
int 3
; Total bytes of code 260 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in System.Tests.Perf_Uri
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_Uri*' PayloadsHistogramSystem.Tests.Perf_Uri.PathAndQuery
Description of detection logic
; System.Uri.get_PathAndQuery()
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
cmp qword ptr [rsi+18],0
je short 0000000000008B74
mov rcx,rsi
call qword ptr [1198]
mov rdi,rax
cmp qword ptr [rdi+20],0
jne short 0000000000008B68
mov rcx,rsi
mov edx,30
mov r8d,1
call qword ptr [1AF8]
mov rbx,rax
mov rcx,rsi
call qword ptr [1048]
test eax,eax
je short 0000000000008B5C
mov r8d,[rbx+8]
test r8d,r8d
je short 0000000000008BB8
cmp word ptr [rbx+0C],2F
jne short 0000000000008B5C
dec r8d
mov rcx,rbx
mov edx,1
call qword ptr [3360]
mov rbx,rax
lea rcx,[rdi+20]
mov rdx,rbx
call 0000000000000010
mov rax,[rdi+20]
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,offset MT_System.InvalidOperationException
call 000000000000C390
mov rsi,rax
mov ecx,60F
mov rdx,7FF952D52730
call 00000000000014A0
mov rcx,rax
call qword ptr [3018]
mov rdx,rax
mov rcx,rsi
call qword ptr [0D2B8]
mov rcx,rsi
call 0000000000004690
int 3
call 0000000000006930
int 3
; Total bytes of code 206 Compare Jit Disasm; System.Tests.Perf_Uri.PathAndQuery()
mov rcx,[rcx+8]
cmp [rcx],ecx
jmp qword ptr [13F0]
; Total bytes of code 12 ; System.Uri.get_PathAndQuery()
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
cmp qword ptr [rsi+18],0
je near ptr 0000000000008BAD
mov rcx,rsi
call qword ptr [1198]
mov rdi,rax
cmp qword ptr [rdi+20],0
jne near ptr 0000000000008BA1
mov rcx,rsi
mov edx,30
mov r8d,1
call qword ptr [1AF8]
mov rbx,rax
mov rcx,rsi
call qword ptr [1048]
test eax,eax
je short 0000000000008B95
mov ecx,[rbx+8]
test ecx,ecx
je near ptr 0000000000008BFF
cmp word ptr [rbx+0C],2F
jne short 0000000000008B95
lea r8d,[rcx+0FFFF]
test r8d,r8d
jne short 0000000000008B6A
mov rcx,20626802028
mov rsi,[rcx]
jmp short 0000000000008B92
test ecx,ecx
je near ptr 0000000000008BF0
mov ecx,r8d
call 0
mov rsi,rax
mov r8d,[rsi+8]
lea rcx,[rsi+0C]
lea rdx,[rbx+0E]
add r8,r8
call qword ptr [0BE10]
mov rbx,rsi
lea rcx,[rdi+20]
mov rdx,rbx
call 0000000000000010
mov rax,[rdi+20]
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,offset MT_System.InvalidOperationException
call 0000000000002AE0
mov rbx,rax
mov ecx,60F
mov rdx,7FFCD6972878
call 000000000000A140
mov rcx,rax
call qword ptr [3018]
mov rdx,rax
mov rcx,rbx
call qword ptr [0D2B8]
mov rcx,rbx
call 0000000000002B00
mov rcx,rbx
mov edx,1
call qword ptr [3378]
int 3
call 000000000000AB50
int 3
; Total bytes of code 277 DocsProfiling workflow for dotnet/runtime repository
Regressions in Microsoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'Microsoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark*' PayloadsHistogramMicrosoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark.Parse_ParallelAsync(Length: 128, Chunks: 16)
Description of detection logic
; System.Threading.Tasks.Task.GetAwaiter()
mov rax,rcx
ret
; Total bytes of code 4 ; System.Runtime.CompilerServices.TaskAwaiter.GetResult()
mov rcx,[rcx]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000019B3
ret
jmp qword ptr [78A0]
; Total bytes of code 25 ; Microsoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark.ParallelWriter()
sub rsp,58
xor eax,eax
mov [rsp+28],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rsp+30],xmm4
vmovdqa xmmword ptr [rsp+40],xmm4
mov [rsp+50],rax
xor eax,eax
mov [rsp+40],rax
mov [rsp+28],rcx
mov dword ptr [rsp+30],0FFFFFFFF
lea rcx,[rsp+28]
call qword ptr [57F8]
mov rax,[rsp+40]
test rax,rax
je short 000000000000192E
add rsp,58
ret
lea rcx,[rsp+40]
call qword ptr [3948]
jmp short 0000000000001929
; Total bytes of code 91 ; System.Threading.Tasks.Task.Run(System.Func`1<System.Threading.Tasks.Task>, System.Threading.CancellationToken)
push rdi
push rsi
push rbp
push rbx
sub rsp,38
mov rsi,rcx
mov rdi,rdx
test rsi,rsi
je near ptr 000000000000F5FE
test rdi,rdi
jne near ptr 000000000000F57E
mov rbx,offset MT_System.Threading.Tasks.Task`1[[System.Threading.Tasks.Task, System.Private.CoreLib]]
mov rcx,rbx
call qword ptr [9228]
mov rcx,175DB000A70
mov rbp,[rcx]
cmp [rax],al
mov rcx,rbx
call 000000000000C390
mov rbx,rax
mov r9,rdi
mov dword ptr [rsp+20],8
mov dword ptr [rsp+28],2000
mov [rsp+30],rbp
mov rcx,rbx
mov rdx,rsi
xor r8d,r8d
call qword ptr [0F198]
call qword ptr [0B8A0]
mov rsi,rax
test rsi,rsi
je near ptr 000000000000F572
mov rcx,175DB000850
cmp rsi,[rcx]
je short 000000000000F49A
mov rcx,rbx
call qword ptr [0F4E0]
lea rcx,[rax+8]
mov rdx,rsi
call 0000000000000010
mov rcx,rbx
xor edx,edx
call qword ptr [0F6D8]
mov rcx,offset MT_System.Threading.Tasks.UnwrapPromise`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib]]
call 000000000000C390
mov rsi,rax
mov edi,[rbx+34]
and edi,4
test edi,0FFFFFFBB
jne near ptr 000000000000F5DF
test dil,4
jne near ptr 000000000000F60A
mov [rsp+20],edi
mov dword ptr [rsp+28],400
xor ecx,ecx
mov [rsp+30],rcx
mov rcx,rsi
xor r9d,r9d
xor edx,edx
xor r8d,r8d
call qword ptr [0F198]
mov byte ptr [rsi+3A],1
mov rcx,175DB000AB0
mov rcx,[rcx]
cmp byte ptr [rcx+9D],0
jne near ptr 000000000000F645
cmp byte ptr [5678],0
jne near ptr 000000000000F67B
test dword ptr [rbx+34],1600000
jne near ptr 000000000000F5B7
test dword ptr [rbx+34],1600000
jne short 000000000000F58A
cmp qword ptr [rbx+20],0
jne short 000000000000F553
lea rcx,[rbx+20]
mov rdx,rsi
xor r8d,r8d
call 000000000000F030
test rax,rax
je short 000000000000F566
mov rcx,rbx
mov rdx,rsi
xor r8d,r8d
call qword ptr [0FF00]
test eax,eax
je short 000000000000F58A
mov rax,rsi
add rsp,38
pop rbx
pop rbp
pop rsi
pop rdi
ret
or dword ptr [rbx+34],20000000
jmp near ptr 000000000000F49A
cmp dword ptr [rdi+20],0
je near ptr 000000000000F410
jmp short 000000000000F5EB
call 000000000000F050
test eax,eax
jne short 000000000000F5A1
mov rcx,rsi
mov rdx,rbx
call qword ptr [7F60]
jmp short 000000000000F566
movzx ecx,byte ptr [rsi+39]
test ecx,ecx
jne short 000000000000F5C5
mov rcx,rsi
mov rdx,rbx
call qword ptr [7F78]
jmp short 000000000000F566
mov rcx,rsi
mov rdx,rbx
call qword ptr [7F78]
jmp short 000000000000F566
cmp ecx,1
jne short 000000000000F566
mov rcx,rsi
mov rdx,rbx
xor r8d,r8d
call qword ptr [7F90]
mov byte ptr [rsi+39],2
jmp short 000000000000F566
mov ecx,2E
call qword ptr [0B7E0]
int 3
mov rcx,rdi
call qword ptr [1198]
nop
add rsp,38
pop rbx
pop rbp
pop rsi
pop rdi
ret
mov ecx,2F
call qword ptr [0B7B0]
int 3
mov rcx,7FF881BB4BE0
mov edx,39F
call 000000000000FE00
mov rbp,[rax+48]
test rbp,rbp
je near ptr 000000000000F4D3
mov rcx,rsi
call qword ptr [0F4E0]
lea rcx,[rax+30]
mov rdx,rbp
call 0000000000000010
jmp near ptr 000000000000F4D3
mov rcx,175DB000AB0
mov rdi,[rcx]
mov rcx,rsi
call qword ptr [0F408]
mov edx,eax
mov rcx,rdi
mov r8,175DB005938
mov r8,[r8]
xor r9d,r9d
call qword ptr [30F0]
jmp near ptr 000000000000F515
mov rcx,rsi
call qword ptr [0F048]
jmp near ptr 000000000000F522
; Total bytes of code 665 ; Microsoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark.ParallelReader()
sub rsp,78
xor eax,eax
mov [rsp+28],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rsp+30],xmm4
vmovdqa xmmword ptr [rsp+40],xmm4
vmovdqa xmmword ptr [rsp+50],xmm4
vmovdqa xmmword ptr [rsp+60],xmm4
mov [rsp+70],rax
xor eax,eax
mov [rsp+40],rax
mov [rsp+28],rcx
mov dword ptr [rsp+38],0FFFFFFFF
lea rcx,[rsp+28]
call qword ptr [57C8]
mov rax,[rsp+40]
test rax,rax
je short 0000000000001FAA
add rsp,78
ret
lea rcx,[rsp+40]
call qword ptr [3948]
jmp short 0000000000001FA5
; Total bytes of code 103 ; System.Threading.Tasks.Task.WhenAll(System.Threading.Tasks.Task[])
push rdi
push rsi
push rbp
push rbx
sub rsp,28
mov rsi,rcx
test rsi,rsi
je near ptr 00000000000016FC
mov edi,[rsi+8]
test edi,edi
je short 00000000000016A3
movsxd rdx,edi
mov rcx,offset MT_System.Threading.Tasks.Task[]
call 000000000000C510
mov rbx,rax
xor ebp,ebp
test edi,edi
jle short 00000000000016DA
test edi,edi
jl short 00000000000016B4
mov edx,[rsi+8]
cmp [rbx+8],edi
jl short 00000000000016B4
mov edx,ebp
mov rax,[rsi+rdx*8+10]
test rax,rax
je short 00000000000016EB
lea rcx,[rbx+rdx*8+10]
mov rdx,rax
call 0000000000000010
inc ebp
cmp ebp,edi
jl short 0000000000001682
jmp short 00000000000016DA
mov rcx,rsi
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
jmp qword ptr [1378]
mov edx,ebp
mov rax,[rsi+rdx*8+10]
test rax,rax
je short 00000000000016EB
cmp ebp,[rbx+8]
jae short 0000000000001708
mov edx,ebp
lea rcx,[rbx+rdx*8+10]
mov rdx,rax
call 0000000000000010
inc ebp
cmp ebp,edi
jl short 00000000000016B4
mov rcx,rbx
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
jmp qword ptr [1378]
mov ecx,1C
mov edx,33
call qword ptr [0B768]
int 3
mov ecx,33
call qword ptr [0B7B0]
int 3
call 0000000000006930
int 3
; Total bytes of code 206 ; System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
push rsi
sub rsp,20
mov rsi,rcx
test dword ptr [rsi+34],1600000
jne short 0000000000001B52
mov rcx,rsi
xor r8d,r8d
mov edx,0FFFFFFFF
call qword ptr [0FAE0]
mov rcx,rsi
call qword ptr [0F270]
mov ecx,[rsi+34]
and ecx,1600000
cmp ecx,1000000
je short 0000000000001B75
mov rcx,rsi
call qword ptr [78B8]
nop
add rsp,20
pop rsi
ret
; Total bytes of code 76 Compare Jit Disasm; Microsoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark.Parse_ParallelAsync()
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov rdi,offset MT_System.Func`1[[System.Threading.Tasks.Task, System.Private.CoreLib]]
mov rcx,rdi
call 0000000000002AE0
mov rbx,rax
test rsi,rsi
je near ptr 0000000000001604
lea rcx,[rbx+8]
mov rdx,rsi
call 0000000000000010
mov rcx,offset Microsoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark.ParallelWriter()
mov [rbx+18],rcx
mov rcx,rbx
xor edx,edx
call qword ptr [1270]
mov rbx,rax
mov rcx,rdi
call 0000000000002AE0
mov rdi,rax
lea rcx,[rdi+8]
mov rdx,rsi
call 0000000000000010
mov rcx,offset Microsoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark.ParallelReader()
mov [rdi+18],rcx
mov rcx,rdi
xor edx,edx
call qword ptr [1270]
mov rsi,rax
mov rcx,offset MT_System.Threading.Tasks.Task[]
mov edx,2
call 0000000000002C60
mov rdi,rax
lea rcx,[rdi+10]
mov rdx,rbx
call 0000000000000010
lea rcx,[rdi+18]
mov rdx,rsi
call 0000000000000010
mov rcx,rdi
call qword ptr [1360]
nop
add rsp,20
pop rbx
pop rsi
pop rdi
ret
call qword ptr [0B630]
int 3
; Total bytes of code 203 ; System.Threading.Tasks.Task.GetAwaiter()
mov rax,rcx
ret
; Total bytes of code 4 ; System.Runtime.CompilerServices.TaskAwaiter.GetResult()
mov rcx,[rcx]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 0000000000001913
ret
jmp qword ptr [78A0]
; Total bytes of code 25 ; Microsoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark.ParallelWriter()
sub rsp,58
xor eax,eax
mov [rsp+28],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rsp+30],xmm4
vmovdqa xmmword ptr [rsp+40],xmm4
mov [rsp+50],rax
xor eax,eax
mov [rsp+40],rax
mov [rsp+28],rcx
mov dword ptr [rsp+30],0FFFFFFFF
lea rcx,[rsp+28]
call qword ptr [57C8]
mov rax,[rsp+40]
test rax,rax
je short 0000000000002A9E
add rsp,58
ret
lea rcx,[rsp+40]
call qword ptr [37F8]
jmp short 0000000000002A99
; Total bytes of code 91 ; System.Threading.Tasks.Task.Run(System.Func`1<System.Threading.Tasks.Task>, System.Threading.CancellationToken)
push rdi
push rsi
push rbp
push rbx
sub rsp,38
mov rsi,rcx
mov rdi,rdx
test rsi,rsi
je near ptr 000000000000F5FE
test rdi,rdi
jne near ptr 000000000000F57E
mov rbx,offset MT_System.Threading.Tasks.Task`1[[System.Threading.Tasks.Task, System.Private.CoreLib]]
mov rcx,rbx
call qword ptr [9228]
mov rcx,199BD800A70
mov rbp,[rcx]
cmp [rax],al
mov rcx,rbx
call 0000000000002AE0
mov rbx,rax
mov r9,rdi
mov dword ptr [rsp+20],8
mov dword ptr [rsp+28],2000
mov [rsp+30],rbp
mov rcx,rbx
mov rdx,rsi
xor r8d,r8d
call qword ptr [0F198]
call qword ptr [0B8A0]
mov rsi,rax
test rsi,rsi
je near ptr 000000000000F572
mov rcx,199BD800850
cmp rsi,[rcx]
je short 000000000000F49A
mov rcx,rbx
call qword ptr [0F4E0]
lea rcx,[rax+8]
mov rdx,rsi
call 0000000000000010
mov rcx,rbx
xor edx,edx
call qword ptr [0F6D8]
mov rcx,offset MT_System.Threading.Tasks.UnwrapPromise`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib]]
call 0000000000002AE0
mov rsi,rax
mov edi,[rbx+34]
and edi,4
test edi,0FFFFFFBB
jne near ptr 000000000000F5DF
test dil,4
jne near ptr 000000000000F60A
mov [rsp+20],edi
mov dword ptr [rsp+28],400
xor ecx,ecx
mov [rsp+30],rcx
mov rcx,rsi
xor r9d,r9d
xor edx,edx
xor r8d,r8d
call qword ptr [0F198]
mov byte ptr [rsi+3A],1
mov rcx,199BD800AB0
mov rcx,[rcx]
cmp byte ptr [rcx+9D],0
jne near ptr 000000000000F645
cmp byte ptr [5690],0
jne near ptr 000000000000F67B
test dword ptr [rbx+34],1600000
jne near ptr 000000000000F5B7
test dword ptr [rbx+34],1600000
jne short 000000000000F58A
cmp qword ptr [rbx+20],0
jne short 000000000000F553
lea rcx,[rbx+20]
mov rdx,rsi
xor r8d,r8d
call 000000000000EC00
test rax,rax
je short 000000000000F566
mov rcx,rbx
mov rdx,rsi
xor r8d,r8d
call qword ptr [0FF00]
test eax,eax
je short 000000000000F58A
mov rax,rsi
add rsp,38
pop rbx
pop rbp
pop rsi
pop rdi
ret
or dword ptr [rbx+34],20000000
jmp near ptr 000000000000F49A
cmp dword ptr [rdi+20],0
je near ptr 000000000000F410
jmp short 000000000000F5EB
call 0000000000000BC0
test eax,eax
jne short 000000000000F5A1
mov rcx,rsi
mov rdx,rbx
call qword ptr [7F60]
jmp short 000000000000F566
movzx ecx,byte ptr [rsi+39]
test ecx,ecx
jne short 000000000000F5C5
mov rcx,rsi
mov rdx,rbx
call qword ptr [7F78]
jmp short 000000000000F566
mov rcx,rsi
mov rdx,rbx
call qword ptr [7F78]
jmp short 000000000000F566
cmp ecx,1
jne short 000000000000F566
mov rcx,rsi
mov rdx,rbx
xor r8d,r8d
call qword ptr [7F90]
mov byte ptr [rsi+39],2
jmp short 000000000000F566
mov ecx,2E
call qword ptr [0B7E0]
int 3
mov rcx,rdi
call qword ptr [1198]
nop
add rsp,38
pop rbx
pop rbp
pop rsi
pop rdi
ret
mov ecx,2F
call qword ptr [0B7B0]
int 3
mov rcx,7FFE976D4BF0
mov edx,3A0
call 000000000000E5B0
mov rbp,[rax+48]
test rbp,rbp
je near ptr 000000000000F4D3
mov rcx,rsi
call qword ptr [0F4E0]
lea rcx,[rax+30]
mov rdx,rbp
call 0000000000000010
jmp near ptr 000000000000F4D3
mov rcx,199BD800AB0
mov rdi,[rcx]
mov rcx,rsi
call qword ptr [0F408]
mov edx,eax
mov rcx,rdi
mov r8,199BD805928
mov r8,[r8]
xor r9d,r9d
call qword ptr [30F0]
jmp near ptr 000000000000F515
mov rcx,rsi
call qword ptr [0F048]
jmp near ptr 000000000000F522
; Total bytes of code 665 ; Microsoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark.ParallelReader()
sub rsp,78
xor eax,eax
mov [rsp+28],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rsp+30],xmm4
vmovdqa xmmword ptr [rsp+40],xmm4
vmovdqa xmmword ptr [rsp+50],xmm4
vmovdqa xmmword ptr [rsp+60],xmm4
mov [rsp+70],rax
xor eax,eax
mov [rsp+40],rax
mov [rsp+28],rcx
mov dword ptr [rsp+38],0FFFFFFFF
lea rcx,[rsp+28]
call qword ptr [57F8]
mov rax,[rsp+40]
test rax,rax
je short 000000000000308A
add rsp,78
ret
lea rcx,[rsp+40]
call qword ptr [37F8]
jmp short 0000000000003085
; Total bytes of code 103 ; System.Threading.Tasks.Task.WhenAll(System.Threading.Tasks.Task[])
push rdi
push rsi
push rbp
push rbx
sub rsp,28
mov rsi,rcx
test rsi,rsi
je near ptr 00000000000016FC
mov edi,[rsi+8]
test edi,edi
je short 00000000000016A3
movsxd rdx,edi
mov rcx,offset MT_System.Threading.Tasks.Task[]
call 0000000000002C60
mov rbx,rax
xor ebp,ebp
test edi,edi
jle short 00000000000016DA
test edi,edi
jl short 00000000000016B4
mov edx,[rsi+8]
cmp [rbx+8],edi
jl short 00000000000016B4
mov edx,ebp
mov rax,[rsi+rdx*8+10]
test rax,rax
je short 00000000000016EB
lea rcx,[rbx+rdx*8+10]
mov rdx,rax
call 0000000000000010
inc ebp
cmp ebp,edi
jl short 0000000000001682
jmp short 00000000000016DA
mov rcx,rsi
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
jmp qword ptr [1378]
mov edx,ebp
mov rax,[rsi+rdx*8+10]
test rax,rax
je short 00000000000016EB
cmp ebp,[rbx+8]
jae short 0000000000001708
mov edx,ebp
lea rcx,[rbx+rdx*8+10]
mov rdx,rax
call 0000000000000010
inc ebp
cmp ebp,edi
jl short 00000000000016B4
mov rcx,rbx
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
jmp qword ptr [1378]
mov ecx,1C
mov edx,33
call qword ptr [0B768]
int 3
mov ecx,33
call qword ptr [0B7B0]
int 3
call 000000000000AB50
int 3
; Total bytes of code 206 ; System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
push rsi
sub rsp,20
mov rsi,rcx
test dword ptr [rsi+34],1600000
jne short 0000000000001952
mov rcx,rsi
xor r8d,r8d
mov edx,0FFFFFFFF
call qword ptr [0FAE0]
mov rcx,rsi
call qword ptr [0F270]
mov ecx,[rsi+34]
and ecx,1600000
cmp ecx,1000000
je short 0000000000001975
mov rcx,rsi
call qword ptr [78B8]
nop
add rsp,20
pop rsi
ret
; Total bytes of code 76 DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Linq.Tests.Perf_Enumerable
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Linq.Tests.Perf_Enumerable*' PayloadsHistogramSystem.Linq.Tests.Perf_Enumerable.CastToBaseClass(input: IEnumerable)
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.IsInstanceOfAny(Void*, System.Object)
push rdi
push rsi
test rdx,rdx
je near ptr 0000000000001968
mov rax,[rdx]
cmp rax,rcx
je near ptr 0000000000001968
mov r8,2399D800D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 0000000000001945
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 0000000000001945
cmp esi,[r11]
jne short 0000000000001959
mov r8d,edi
cmp r8d,1
je short 0000000000001968
jmp short 0000000000001961
test esi,esi
je short 0000000000001959
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000190A
mov r8d,2
jmp short 000000000000193D
test r8d,r8d
jne short 000000000000196E
xor edx,edx
mov rax,rdx
pop rsi
pop rdi
ret
pop rsi
pop rdi
jmp near ptr 0000000000000580
; Total bytes of code 181 ; BenchmarkDotNet.Engines.ConsumerExtensions.Consume[[System.__Canon, System.Private.CoreLib]](System.Collections.Generic.IEnumerable`1<System.__Canon>, BenchmarkDotNet.Engines.Consumer)
push rbp
push r14
push rdi
push rsi
push rbx
sub rsp,40
lea rbp,[rsp+60]
xor eax,eax
mov [rbp+0FFD0],rax
mov [rbp+0FFC0],rsp
mov [rbp+0FFD8],rcx
mov rsi,rcx
mov rbx,rdx
mov rdi,r8
mov r14,[rsi+10]
mov r11,[r14+10]
test r11,r11
je short 0000000000001A75
jmp short 0000000000001A8A
mov rcx,rsi
mov rdx,7FFBE676F020
call 000000000000F380
mov r11,rax
mov rcx,rbx
call qword ptr [r11]
mov rbx,rax
mov [rbp+0FFC8],rbx
mov rcx,rbx
mov r11,7FFBE6100590
call qword ptr [r11]
test eax,eax
je short 0000000000001B18
mov r11,[r14+18]
test r11,r11
je short 0000000000001AB6
jmp short 0000000000001ACB
mov rcx,rsi
mov rdx,7FFBE676F0F8
call 000000000000F380
mov r11,rax
mov rcx,rbx
call qword ptr [r11]
mov [rbp+0FFD0],rax
mov rdx,[r14+20]
test rdx,rdx
je short 0000000000001AE0
jmp short 0000000000001AF5
mov rcx,rsi
mov rdx,7FFBE676F260
call 000000000000F380
mov rdx,rax
lea r8,[rbp+0FFD0]
mov rcx,rdi
cmp [rcx],ecx
call qword ptr [5B88]
mov rcx,rbx
mov r11,7FFBE6100590
call qword ptr [r11]
test eax,eax
jne short 0000000000001AAB
mov rcx,rbx
mov r11,7FFBE6100598
call qword ptr [r11]
nop
add rsp,40
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
push rbp
push r14
push rdi
push rsi
push rbx
sub rsp,30
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+60]
cmp qword ptr [rbp+0FFC8],0
je short 0000000000001B63
mov rcx,[rbp+0FFC8]
mov r11,7FFBE6100598
call qword ptr [r11]
nop
add rsp,30
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
; Total bytes of code 303 Compare Jit Disasm; System.Linq.Tests.Perf_Enumerable.CastToBaseClass(System.Linq.Tests.LinqTestData)
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov rdi,[rdx+8]
mov rdx,rdi
mov rcx,offset MT_System.Collections.Generic.IEnumerable`1[[System.Object, System.Private.CoreLib]]
call qword ptr [0B7F8]
mov rdx,rax
test rdx,rdx
je short 000000000000176B
jmp short 00000000000017A0
test rdi,rdi
je short 00000000000017BB
mov rcx,offset MT_System.Linq.Enumerable+<CastIterator>d__67`1[[System.Object, System.Private.CoreLib]]
call 0000000000002AE0
mov rbx,rax
mov dword ptr [rbx+28],0FFFFFFFE
call 0000000000009E60
mov [rbx+2C],eax
lea rcx,[rbx+18]
mov rdx,rdi
call 0000000000000010
mov rdx,rbx
mov r8,[rsi+8]
mov rcx,offset MD_BenchmarkDotNet.Engines.ConsumerExtensions.Consume(System.Collections.Generic.IEnumerable`1<!!0>, BenchmarkDotNet.Engines.Consumer)
add rsp,20
pop rbx
pop rsi
pop rdi
jmp qword ptr [5870]
mov ecx,10
call qword ptr [0F780]
int 3
; Total bytes of code 135 ; System.Runtime.CompilerServices.CastHelpers.IsInstanceOfAny(Void*, System.Object)
push rdi
push rsi
test rdx,rdx
je near ptr 0000000000001968
mov rax,[rdx]
cmp rax,rcx
je near ptr 0000000000001968
mov r8,24415C00D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 0000000000001945
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 0000000000001945
cmp esi,[r11]
jne short 0000000000001959
mov r8d,edi
cmp r8d,1
je short 0000000000001968
jmp short 0000000000001961
test esi,esi
je short 0000000000001959
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000190A
mov r8d,2
jmp short 000000000000193D
test r8d,r8d
jne short 000000000000196E
xor edx,edx
mov rax,rdx
pop rsi
pop rdi
ret
pop rsi
pop rdi
jmp near ptr 0000000000008DE0
; Total bytes of code 181 ; BenchmarkDotNet.Engines.ConsumerExtensions.Consume[[System.__Canon, System.Private.CoreLib]](System.Collections.Generic.IEnumerable`1<System.__Canon>, BenchmarkDotNet.Engines.Consumer)
push rbp
push r14
push rdi
push rsi
push rbx
sub rsp,40
lea rbp,[rsp+60]
xor eax,eax
mov [rbp+0FFD0],rax
mov [rbp+0FFC0],rsp
mov [rbp+0FFD8],rcx
mov rsi,rcx
mov rbx,rdx
mov rdi,r8
mov r14,[rsi+10]
mov r11,[r14+10]
test r11,r11
je short 0000000000001A75
jmp short 0000000000001A8A
mov rcx,rsi
mov rdx,7FF8CCBAFA58
call 0000000000000EF0
mov r11,rax
mov rcx,rbx
call qword ptr [r11]
mov rbx,rax
mov [rbp+0FFC8],rbx
mov rcx,rbx
mov r11,7FF8CC540590
call qword ptr [r11]
test eax,eax
je short 0000000000001B18
mov r11,[r14+18]
test r11,r11
je short 0000000000001AB6
jmp short 0000000000001ACB
mov rcx,rsi
mov rdx,7FF8CCBAFB30
call 0000000000000EF0
mov r11,rax
mov rcx,rbx
call qword ptr [r11]
mov [rbp+0FFD0],rax
mov rdx,[r14+20]
test rdx,rdx
je short 0000000000001AE0
jmp short 0000000000001AF5
mov rcx,rsi
mov rdx,7FF8CCBAFC98
call 0000000000000EF0
mov rdx,rax
lea r8,[rbp+0FFD0]
mov rcx,rdi
cmp [rcx],ecx
call qword ptr [5B88]
mov rcx,rbx
mov r11,7FF8CC540590
call qword ptr [r11]
test eax,eax
jne short 0000000000001AAB
mov rcx,rbx
mov r11,7FF8CC540598
call qword ptr [r11]
nop
add rsp,40
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
push rbp
push r14
push rdi
push rsi
push rbx
sub rsp,30
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+60]
cmp qword ptr [rbp+0FFC8],0
je short 0000000000001B63
mov rcx,[rbp+0FFC8]
mov r11,7FF8CC540598
call qword ptr [r11]
nop
add rsp,30
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
; Total bytes of code 303 DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Xml.Linq.Perf_XElementList
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Xml.Linq.Perf_XElementList*' PayloadsHistogramSystem.Xml.Linq.Perf_XElementList.Enumerator
Description of detection logic
Compare Jit Disasm; System.Xml.Linq.Perf_XElementList.Enumerator()
push rbp
push rsi
sub rsp,38
lea rbp,[rsp+40]
mov [rbp+0FFE0],rsp
mov r11,[rcx+10]
mov rsi,[rcx+8]
mov rcx,r11
mov r11,7FF8B92D0558
call qword ptr [r11]
mov rcx,rax
mov [rbp+0FFF0],rcx
mov r11,7FF8B92D0560
call qword ptr [r11]
test eax,eax
je short 00000000000090B1
mov rcx,[rbp+0FFF0]
mov r11,7FF8B92D0568
call qword ptr [r11]
lea rcx,[rsi+10]
mov rdx,rax
call 0000000000000010
mov rcx,[rbp+0FFF0]
mov r11,7FF8B92D0560
call qword ptr [r11]
test eax,eax
jne short 000000000000907F
mov rcx,[rbp+0FFF0]
mov r11,7FF8B92D0570
call qword ptr [r11]
nop
add rsp,38
pop rsi
pop rbp
ret
push rbp
push rsi
sub rsp,28
mov rbp,[rcx+20]
mov [rsp+20],rbp
lea rbp,[rbp+40]
cmp qword ptr [rbp+0FFF0],0
je short 00000000000090F5
mov rcx,[rbp+0FFF0]
mov r11,7FF8B92D0570
call qword ptr [r11]
nop
add rsp,28
pop rsi
pop rbp
ret
; Total bytes of code 189 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in System.Tests.Perf_UInt16
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_UInt16*' PayloadsHistogramSystem.Tests.Perf_UInt16.ToString(value: 0)
Description of detection logic
; System.Number.UInt32ToDecStr(UInt32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
mov eax,esi
mov ecx,1
cmp eax,186A0
jae near ptr 000000000000F43D
cmp eax,0A
jae short 000000000000F3B1
mov edi,ecx
cmp edi,1
jne short 000000000000F3BA
mov rax,26F3C4002C8
mov rax,[rax]
cmp esi,[rax+8]
jae near ptr 000000000000F45E
mov ecx,esi
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp eax,64
jae short 000000000000F417
inc ecx
jmp short 000000000000F386
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F457
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F3DF
xor edx,edx
mov [rsp+20],rdx
add rsp,28
pop rsi
pop rdi
ret
cmp eax,3E8
jae short 000000000000F426
add ecx,2
jmp near ptr 000000000000F386
cmp eax,2710
jae short 000000000000F435
add ecx,3
jmp near ptr 000000000000F386
add ecx,4
jmp near ptr 000000000000F386
mov eax,esi
shr eax,5
imul rax,0A7C5AC5
shr rax,27
mov ecx,6
jmp near ptr 000000000000F381
xor edx,edx
jmp near ptr 000000000000F3D8
call 0000000000006930
int 3
; Total bytes of code 260 Compare Jit Disasm; System.Tests.Perf_UInt16.ToString(UInt16)
sub rsp,28
movzx ecx,dx
call qword ptr [93F0]
nop
add rsp,28
ret
; Total bytes of code 19 ; System.Number.UInt32ToDecStr(UInt32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
mov eax,esi
mov ecx,1
cmp eax,186A0
jae near ptr 000000000000F43D
cmp eax,0A
jae short 000000000000F3B1
mov edi,ecx
cmp edi,1
jne short 000000000000F3BA
mov rax,11A400002C8
mov rax,[rax]
cmp esi,[rax+8]
jae near ptr 000000000000F45E
mov ecx,esi
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp eax,64
jae short 000000000000F417
inc ecx
jmp short 000000000000F386
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F457
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F3DF
xor edx,edx
mov [rsp+20],rdx
add rsp,28
pop rsi
pop rdi
ret
cmp eax,3E8
jae short 000000000000F426
add ecx,2
jmp near ptr 000000000000F386
cmp eax,2710
jae short 000000000000F435
add ecx,3
jmp near ptr 000000000000F386
add ecx,4
jmp near ptr 000000000000F386
mov eax,esi
shr eax,5
imul rax,0A7C5AC5
shr rax,27
mov ecx,6
jmp near ptr 000000000000F381
xor edx,edx
jmp near ptr 000000000000F3D8
call 000000000000AB50
int 3
; Total bytes of code 260 System.Tests.Perf_UInt16.ToString(value: 65535)
Description of detection logic
; System.Number.UInt32ToDecStr(UInt32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
mov eax,esi
mov ecx,1
cmp eax,186A0
jae near ptr 000000000000F43D
cmp eax,0A
jae short 000000000000F3B1
mov edi,ecx
cmp edi,1
jne short 000000000000F3BA
mov rax,285FB8002C8
mov rax,[rax]
cmp esi,[rax+8]
jae near ptr 000000000000F45E
mov ecx,esi
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp eax,64
jae short 000000000000F417
inc ecx
jmp short 000000000000F386
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F457
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F3DF
xor edx,edx
mov [rsp+20],rdx
add rsp,28
pop rsi
pop rdi
ret
cmp eax,3E8
jae short 000000000000F426
add ecx,2
jmp near ptr 000000000000F386
cmp eax,2710
jae short 000000000000F435
add ecx,3
jmp near ptr 000000000000F386
add ecx,4
jmp near ptr 000000000000F386
mov eax,esi
shr eax,5
imul rax,0A7C5AC5
shr rax,27
mov ecx,6
jmp near ptr 000000000000F381
xor edx,edx
jmp near ptr 000000000000F3D8
call 0000000000006930
int 3
; Total bytes of code 260 Compare Jit Disasm; System.Tests.Perf_UInt16.ToString(UInt16)
sub rsp,28
movzx ecx,dx
call qword ptr [93F0]
nop
add rsp,28
ret
; Total bytes of code 19 ; System.Number.UInt32ToDecStr(UInt32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
mov eax,esi
mov ecx,1
cmp eax,186A0
jae near ptr 000000000000F43D
cmp eax,0A
jae short 000000000000F3B1
mov edi,ecx
cmp edi,1
jne short 000000000000F3BA
mov rax,2D2824002C8
mov rax,[rax]
cmp esi,[rax+8]
jae near ptr 000000000000F45E
mov ecx,esi
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp eax,64
jae short 000000000000F417
inc ecx
jmp short 000000000000F386
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F457
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F3DF
xor edx,edx
mov [rsp+20],rdx
add rsp,28
pop rsi
pop rdi
ret
cmp eax,3E8
jae short 000000000000F426
add ecx,2
jmp near ptr 000000000000F386
cmp eax,2710
jae short 000000000000F435
add ecx,3
jmp near ptr 000000000000F386
add ecx,4
jmp near ptr 000000000000F386
mov eax,esi
shr eax,5
imul rax,0A7C5AC5
shr rax,27
mov ecx,6
jmp near ptr 000000000000F381
xor edx,edx
jmp near ptr 000000000000F3D8
call 000000000000AB50
int 3
; Total bytes of code 260 System.Tests.Perf_UInt16.ToString(value: 12345)
Description of detection logic
; System.Number.UInt32ToDecStr(UInt32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
mov eax,esi
mov ecx,1
cmp eax,186A0
jae near ptr 000000000000F43D
cmp eax,0A
jae short 000000000000F3B1
mov edi,ecx
cmp edi,1
jne short 000000000000F3BA
mov rax,270BF4002C8
mov rax,[rax]
cmp esi,[rax+8]
jae near ptr 000000000000F45E
mov ecx,esi
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp eax,64
jae short 000000000000F417
inc ecx
jmp short 000000000000F386
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F457
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F3DF
xor edx,edx
mov [rsp+20],rdx
add rsp,28
pop rsi
pop rdi
ret
cmp eax,3E8
jae short 000000000000F426
add ecx,2
jmp near ptr 000000000000F386
cmp eax,2710
jae short 000000000000F435
add ecx,3
jmp near ptr 000000000000F386
add ecx,4
jmp near ptr 000000000000F386
mov eax,esi
shr eax,5
imul rax,0A7C5AC5
shr rax,27
mov ecx,6
jmp near ptr 000000000000F381
xor edx,edx
jmp near ptr 000000000000F3D8
call 0000000000006930
int 3
; Total bytes of code 260 Compare Jit Disasm; System.Tests.Perf_UInt16.ToString(UInt16)
sub rsp,28
movzx ecx,dx
call qword ptr [93F0]
nop
add rsp,28
ret
; Total bytes of code 19 ; System.Number.UInt32ToDecStr(UInt32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
mov eax,esi
mov ecx,1
cmp eax,186A0
jae near ptr 000000000000F43D
cmp eax,0A
jae short 000000000000F3B1
mov edi,ecx
cmp edi,1
jne short 000000000000F3BA
mov rax,15C55C002C8
mov rax,[rax]
cmp esi,[rax+8]
jae near ptr 000000000000F45E
mov ecx,esi
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp eax,64
jae short 000000000000F417
inc ecx
jmp short 000000000000F386
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F457
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F3DF
xor edx,edx
mov [rsp+20],rdx
add rsp,28
pop rsi
pop rdi
ret
cmp eax,3E8
jae short 000000000000F426
add ecx,2
jmp near ptr 000000000000F386
cmp eax,2710
jae short 000000000000F435
add ecx,3
jmp near ptr 000000000000F386
add ecx,4
jmp near ptr 000000000000F386
mov eax,esi
shr eax,5
imul rax,0A7C5AC5
shr rax,27
mov ecx,6
jmp near ptr 000000000000F381
xor edx,edx
jmp near ptr 000000000000F3D8
call 000000000000AB50
int 3
; Total bytes of code 260 DocsProfiling workflow for dotnet/runtime repository
Regressions in XmlDocumentTests.XmlNodeTests.Perf_XmlNode
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'XmlDocumentTests.XmlNodeTests.Perf_XmlNode*' PayloadsHistogramXmlDocumentTests.XmlNodeTests.Perf_XmlNode.GetAttributes
Description of detection logic
Compare Jit Disasm; XmlDocumentTests.XmlNodeTests.Perf_XmlNode.GetAttributes()
mov rcx,[rcx+8]
mov rax,[rcx]
mov rax,[rax+48]
jmp qword ptr [rax+28]
; Total bytes of code 15 DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.Sort<IntClass>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Collections.Sort<IntClass>*' PayloadsHistogramSystem.Collections.Sort<IntClass>.Array_ComparerClass(Size: 512)
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
Regressions in System.Tests.Perf_Int32
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_Int32*' PayloadsHistogramSystem.Tests.Perf_Int32.ToStringHex(value: 12345)
Description of detection logic
; System.Number.<FormatInt32>g__FormatInt32Slow|38_0(Int32, Int32, System.String, System.IFormatProvider)
push rbp
push r15
push r14
push r12
push rdi
push rsi
push rbx
sub rsp,0A0
lea rbp,[rsp+30]
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp],xmm4
vmovdqa xmmword ptr [rbp+10],xmm4
vmovdqa xmmword ptr [rbp+20],xmm4
vmovdqa xmmword ptr [rbp+30],xmm4
vmovdqa xmmword ptr [rbp+40],xmm4
mov rax,40392B2AAA4E
mov [rbp+68],rax
mov esi,ecx
mov edi,edx
mov rbx,r9
test r8,r8
je short 000000000000F886
lea r14,[r8+0C]
mov r15d,[r8+8]
mov [rbp],r14
mov [rbp+8],r15d
lea rcx,[rbp]
lea rdx,[rbp+50]
call qword ptr [96F0]
mov r12d,eax
mov ecx,r12d
and ecx,0FFDF
cmp ecx,47
je short 000000000000F8C4
cmp ecx,44
jne short 000000000000F8CE
jmp near ptr 000000000000FA65
xor r14d,r14d
xor r15d,r15d
jmp short 000000000000F855
mov r10d,0CCCCCCCD
mov r11d,r8d
imul r10,r11
shr r10,23
lea r11d,[r10+r10*4]
add r11d,r11d
sub r8d,r11d
dec rcx
add r8d,30
mov [rcx],r8b
dec eax
mov r8d,r10d
jns short 000000000000F88E
test r8d,r8d
jne short 000000000000F88E
jmp near ptr 000000000000F95B
cmp dword ptr [rbp+50],0
jle near ptr 000000000000FA65
cmp ecx,58
je near ptr 000000000000F99B
test rbx,rbx
je near ptr 000000000000FA4B
mov rcx,rbx
call qword ptr [5CA8]
mov r9,rax
lea r8,[rbp+58]
xor edx,edx
mov [rbp+30],edx
mov [rbp+34],edx
mov byte ptr [rbp+38],0
mov byte ptr [rbp+39],0
mov byte ptr [rbp+3A],1
mov [rbp+40],r8
mov dword ptr [rbp+48],0B
lea r8,[rbp+40]
cmp dword ptr [r8+8],0
jbe near ptr 000000000000FB06
mov r8,[r8]
mov byte ptr [r8],0
mov r8d,esi
mov dword ptr [rbp+30],0A
test r8d,r8d
jl near ptr 000000000000FA59
mov byte ptr [rbp+38],0
lea rdx,[rbp+40]
cmp dword ptr [rdx+8],0
jbe near ptr 000000000000FB06
mov rdx,[rdx]
lea rcx,[rdx+0A]
mov eax,0FFFFFFFF
jmp near ptr 000000000000F8BA
mov r8,rcx
add rdx,0A
sub rdx,r8
mov [rbp+30],edx
mov [rbp+34],edx
lea rcx,[rbp+40]
cmp dword ptr [rcx+8],0
jbe near ptr 000000000000FB06
mov rcx,[rcx]
dec edx
js short 000000000000F9D6
lea rax,[rcx+1]
lea r10,[r8+1]
movzx r8d,byte ptr [r8]
mov [rcx],r8b
dec edx
mov rcx,rax
mov r8,r10
jns short 000000000000F980
jmp short 000000000000F9D6
mov ecx,esi
and ecx,edi
add r12d,0FFFFFFDF
movzx edx,r12w
mov r8d,[rbp+50]
call qword ptr [9348]
mov rcx,40392B2AAA4E
cmp [rbp+68],rcx
je short 000000000000F9C6
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov byte ptr [rcx],0
test [rsp],esp
sub rsp,40
lea r8,[rsp+30]
xor edx,edx
mov [rbp+10],rdx
mov [rbp+20],r8
mov dword ptr [rbp+28],20
mov [rbp+18],edx
test r12d,r12d
jne near ptr 000000000000FAE7
mov [rbp],r14
mov [rbp+8],r15d
lea r8,[rbp]
lea rdx,[rbp+30]
lea rcx,[rbp+10]
call qword ptr [9720]
lea rcx,[rbp+10]
call qword ptr [1480]
mov rcx,40392B2AAA4E
cmp [rbp+68],rcx
je short 000000000000FA3B
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
call qword ptr [5858]
mov r9,rax
jmp near ptr 000000000000F8EC
mov byte ptr [rbp+38],1
neg r8d
jmp near ptr 000000000000F93C
test esi,esi
jge short 000000000000FAB7
mov r14d,[rbp+50]
test rbx,rbx
je short 000000000000FA7D
mov rcx,rbx
call qword ptr [5CA8]
jmp short 000000000000FA83
call qword ptr [5858]
mov r8,[rax+28]
mov ecx,esi
mov edx,r14d
call qword ptr [9318]
mov rcx,40392B2AAA4E
cmp [rbp+68],rcx
je short 000000000000FAA7
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov ecx,esi
mov edx,[rbp+50]
call qword ptr [9408]
mov rcx,40392B2AAA4E
cmp [rbp+68],rcx
je short 000000000000FAD7
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov [rsp+20],r9
lea rcx,[rbp+10]
lea rdx,[rbp+30]
mov r8d,r12d
mov r9d,[rbp+50]
call qword ptr [9708]
jmp near ptr 000000000000FA1C
call 0000000000006930
int 3
; Total bytes of code 780 Compare Jit Disasm; System.Tests.Perf_Int32.ToStringHex(Int32)
sub rsp,28
mov ecx,edx
mov r8,23971805890
mov r8,[r8]
mov edx,0FFFFFFFF
xor r9d,r9d
call qword ptr [9FA8]
nop
add rsp,28
ret
; Total bytes of code 39 ; System.Number.<FormatInt32>g__FormatInt32Slow|38_0(Int32, Int32, System.String, System.IFormatProvider)
push rbp
push r15
push r14
push r12
push rdi
push rsi
push rbx
sub rsp,0A0
lea rbp,[rsp+30]
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp],xmm4
vmovdqa xmmword ptr [rbp+10],xmm4
vmovdqa xmmword ptr [rbp+20],xmm4
vmovdqa xmmword ptr [rbp+30],xmm4
vmovdqa xmmword ptr [rbp+40],xmm4
mov rax,36A2C2858969
mov [rbp+68],rax
mov esi,ecx
mov edi,edx
mov rbx,r9
test r8,r8
je short 000000000000F8A6
lea r14,[r8+0C]
mov r15d,[r8+8]
mov [rbp],r14
mov [rbp+8],r15d
lea rcx,[rbp]
lea rdx,[rbp+50]
call qword ptr [96F0]
mov r12d,eax
mov ecx,r12d
and ecx,0FFDF
cmp ecx,47
je short 000000000000F8E4
cmp ecx,44
jne short 000000000000F8EE
jmp near ptr 000000000000FA85
xor r14d,r14d
xor r15d,r15d
jmp short 000000000000F875
mov r10d,0CCCCCCCD
mov r11d,r8d
imul r10,r11
shr r10,23
lea r11d,[r10+r10*4]
add r11d,r11d
sub r8d,r11d
dec rcx
add r8d,30
mov [rcx],r8b
dec eax
mov r8d,r10d
jns short 000000000000F8AE
test r8d,r8d
jne short 000000000000F8AE
jmp near ptr 000000000000F97B
cmp dword ptr [rbp+50],0
jle near ptr 000000000000FA85
cmp ecx,58
je near ptr 000000000000F9BB
test rbx,rbx
je near ptr 000000000000FA6B
mov rcx,rbx
call qword ptr [5CA8]
mov r9,rax
lea r8,[rbp+58]
xor edx,edx
mov [rbp+30],edx
mov [rbp+34],edx
mov byte ptr [rbp+38],0
mov byte ptr [rbp+39],0
mov byte ptr [rbp+3A],1
mov [rbp+40],r8
mov dword ptr [rbp+48],0B
lea r8,[rbp+40]
cmp dword ptr [r8+8],0
jbe near ptr 000000000000FB26
mov r8,[r8]
mov byte ptr [r8],0
mov r8d,esi
mov dword ptr [rbp+30],0A
test r8d,r8d
jl near ptr 000000000000FA79
mov byte ptr [rbp+38],0
lea rdx,[rbp+40]
cmp dword ptr [rdx+8],0
jbe near ptr 000000000000FB26
mov rdx,[rdx]
lea rcx,[rdx+0A]
mov eax,0FFFFFFFF
jmp near ptr 000000000000F8DA
mov r8,rcx
add rdx,0A
sub rdx,r8
mov [rbp+30],edx
mov [rbp+34],edx
lea rcx,[rbp+40]
cmp dword ptr [rcx+8],0
jbe near ptr 000000000000FB26
mov rcx,[rcx]
dec edx
js short 000000000000F9F6
lea rax,[rcx+1]
lea r10,[r8+1]
movzx r8d,byte ptr [r8]
mov [rcx],r8b
dec edx
mov rcx,rax
mov r8,r10
jns short 000000000000F9A0
jmp short 000000000000F9F6
mov ecx,esi
and ecx,edi
add r12d,0FFFFFFDF
movzx edx,r12w
mov r8d,[rbp+50]
call qword ptr [9348]
mov rcx,36A2C2858969
cmp [rbp+68],rcx
je short 000000000000F9E6
call 000000000000C410
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov byte ptr [rcx],0
test [rsp],esp
sub rsp,40
lea r8,[rsp+30]
xor edx,edx
mov [rbp+10],rdx
mov [rbp+20],r8
mov dword ptr [rbp+28],20
mov [rbp+18],edx
test r12d,r12d
jne near ptr 000000000000FB07
mov [rbp],r14
mov [rbp+8],r15d
lea r8,[rbp]
lea rdx,[rbp+30]
lea rcx,[rbp+10]
call qword ptr [9720]
lea rcx,[rbp+10]
call qword ptr [1480]
mov rcx,36A2C2858969
cmp [rbp+68],rcx
je short 000000000000FA5B
call 000000000000C410
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
call qword ptr [5858]
mov r9,rax
jmp near ptr 000000000000F90C
mov byte ptr [rbp+38],1
neg r8d
jmp near ptr 000000000000F95C
test esi,esi
jge short 000000000000FAD7
mov r14d,[rbp+50]
test rbx,rbx
je short 000000000000FA9D
mov rcx,rbx
call qword ptr [5CA8]
jmp short 000000000000FAA3
call qword ptr [5858]
mov r8,[rax+28]
mov ecx,esi
mov edx,r14d
call qword ptr [9318]
mov rcx,36A2C2858969
cmp [rbp+68],rcx
je short 000000000000FAC7
call 000000000000C410
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov ecx,esi
mov edx,[rbp+50]
call qword ptr [9408]
mov rcx,36A2C2858969
cmp [rbp+68],rcx
je short 000000000000FAF7
call 000000000000C410
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov [rsp+20],r9
lea rcx,[rbp+10]
lea rdx,[rbp+30]
mov r8d,r12d
mov r9d,[rbp+50]
call qword ptr [9708]
jmp near ptr 000000000000FA3C
call 000000000000AB50
int 3
; Total bytes of code 780 System.Tests.Perf_Int32.ToStringHex(value: -2147483648)
Description of detection logic
; System.Number.<FormatInt32>g__FormatInt32Slow|38_0(Int32, Int32, System.String, System.IFormatProvider)
push rbp
push r15
push r14
push r12
push rdi
push rsi
push rbx
sub rsp,0A0
lea rbp,[rsp+30]
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp],xmm4
vmovdqa xmmword ptr [rbp+10],xmm4
vmovdqa xmmword ptr [rbp+20],xmm4
vmovdqa xmmword ptr [rbp+30],xmm4
vmovdqa xmmword ptr [rbp+40],xmm4
mov rax,4B4E8F811412
mov [rbp+68],rax
mov esi,ecx
mov edi,edx
mov rbx,r9
test r8,r8
je short 000000000000F886
lea r14,[r8+0C]
mov r15d,[r8+8]
mov [rbp],r14
mov [rbp+8],r15d
lea rcx,[rbp]
lea rdx,[rbp+50]
call qword ptr [96F0]
mov r12d,eax
mov ecx,r12d
and ecx,0FFDF
cmp ecx,47
je short 000000000000F8C4
cmp ecx,44
jne short 000000000000F8CE
jmp near ptr 000000000000FA65
xor r14d,r14d
xor r15d,r15d
jmp short 000000000000F855
mov r10d,0CCCCCCCD
mov r11d,r8d
imul r10,r11
shr r10,23
lea r11d,[r10+r10*4]
add r11d,r11d
sub r8d,r11d
dec rcx
add r8d,30
mov [rcx],r8b
dec eax
mov r8d,r10d
jns short 000000000000F88E
test r8d,r8d
jne short 000000000000F88E
jmp near ptr 000000000000F95B
cmp dword ptr [rbp+50],0
jle near ptr 000000000000FA65
cmp ecx,58
je near ptr 000000000000F99B
test rbx,rbx
je near ptr 000000000000FA4B
mov rcx,rbx
call qword ptr [5CA8]
mov r9,rax
lea r8,[rbp+58]
xor edx,edx
mov [rbp+30],edx
mov [rbp+34],edx
mov byte ptr [rbp+38],0
mov byte ptr [rbp+39],0
mov byte ptr [rbp+3A],1
mov [rbp+40],r8
mov dword ptr [rbp+48],0B
lea r8,[rbp+40]
cmp dword ptr [r8+8],0
jbe near ptr 000000000000FB06
mov r8,[r8]
mov byte ptr [r8],0
mov r8d,esi
mov dword ptr [rbp+30],0A
test r8d,r8d
jl near ptr 000000000000FA59
mov byte ptr [rbp+38],0
lea rdx,[rbp+40]
cmp dword ptr [rdx+8],0
jbe near ptr 000000000000FB06
mov rdx,[rdx]
lea rcx,[rdx+0A]
mov eax,0FFFFFFFF
jmp near ptr 000000000000F8BA
mov r8,rcx
add rdx,0A
sub rdx,r8
mov [rbp+30],edx
mov [rbp+34],edx
lea rcx,[rbp+40]
cmp dword ptr [rcx+8],0
jbe near ptr 000000000000FB06
mov rcx,[rcx]
dec edx
js short 000000000000F9D6
lea rax,[rcx+1]
lea r10,[r8+1]
movzx r8d,byte ptr [r8]
mov [rcx],r8b
dec edx
mov rcx,rax
mov r8,r10
jns short 000000000000F980
jmp short 000000000000F9D6
mov ecx,esi
and ecx,edi
add r12d,0FFFFFFDF
movzx edx,r12w
mov r8d,[rbp+50]
call qword ptr [9348]
mov rcx,4B4E8F811412
cmp [rbp+68],rcx
je short 000000000000F9C6
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov byte ptr [rcx],0
test [rsp],esp
sub rsp,40
lea r8,[rsp+30]
xor edx,edx
mov [rbp+10],rdx
mov [rbp+20],r8
mov dword ptr [rbp+28],20
mov [rbp+18],edx
test r12d,r12d
jne near ptr 000000000000FAE7
mov [rbp],r14
mov [rbp+8],r15d
lea r8,[rbp]
lea rdx,[rbp+30]
lea rcx,[rbp+10]
call qword ptr [9720]
lea rcx,[rbp+10]
call qword ptr [1480]
mov rcx,4B4E8F811412
cmp [rbp+68],rcx
je short 000000000000FA3B
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
call qword ptr [5858]
mov r9,rax
jmp near ptr 000000000000F8EC
mov byte ptr [rbp+38],1
neg r8d
jmp near ptr 000000000000F93C
test esi,esi
jge short 000000000000FAB7
mov r14d,[rbp+50]
test rbx,rbx
je short 000000000000FA7D
mov rcx,rbx
call qword ptr [5CA8]
jmp short 000000000000FA83
call qword ptr [5858]
mov r8,[rax+28]
mov ecx,esi
mov edx,r14d
call qword ptr [9318]
mov rcx,4B4E8F811412
cmp [rbp+68],rcx
je short 000000000000FAA7
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov ecx,esi
mov edx,[rbp+50]
call qword ptr [9408]
mov rcx,4B4E8F811412
cmp [rbp+68],rcx
je short 000000000000FAD7
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov [rsp+20],r9
lea rcx,[rbp+10]
lea rdx,[rbp+30]
mov r8d,r12d
mov r9d,[rbp+50]
call qword ptr [9708]
jmp near ptr 000000000000FA1C
call 0000000000006930
int 3
; Total bytes of code 780 Compare Jit Disasm; System.Tests.Perf_Int32.ToStringHex(Int32)
sub rsp,28
mov ecx,edx
mov r8,17891405890
mov r8,[r8]
mov edx,0FFFFFFFF
xor r9d,r9d
call qword ptr [9FA8]
nop
add rsp,28
ret
; Total bytes of code 39 ; System.Number.<FormatInt32>g__FormatInt32Slow|38_0(Int32, Int32, System.String, System.IFormatProvider)
push rbp
push r15
push r14
push r12
push rdi
push rsi
push rbx
sub rsp,0A0
lea rbp,[rsp+30]
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp],xmm4
vmovdqa xmmword ptr [rbp+10],xmm4
vmovdqa xmmword ptr [rbp+20],xmm4
vmovdqa xmmword ptr [rbp+30],xmm4
vmovdqa xmmword ptr [rbp+40],xmm4
mov rax,56CA0957DE9F
mov [rbp+68],rax
mov esi,ecx
mov edi,edx
mov rbx,r9
test r8,r8
je short 000000000000F8A6
lea r14,[r8+0C]
mov r15d,[r8+8]
mov [rbp],r14
mov [rbp+8],r15d
lea rcx,[rbp]
lea rdx,[rbp+50]
call qword ptr [96F0]
mov r12d,eax
mov ecx,r12d
and ecx,0FFDF
cmp ecx,47
je short 000000000000F8E4
cmp ecx,44
jne short 000000000000F8EE
jmp near ptr 000000000000FA85
xor r14d,r14d
xor r15d,r15d
jmp short 000000000000F875
mov r10d,0CCCCCCCD
mov r11d,r8d
imul r10,r11
shr r10,23
lea r11d,[r10+r10*4]
add r11d,r11d
sub r8d,r11d
dec rcx
add r8d,30
mov [rcx],r8b
dec eax
mov r8d,r10d
jns short 000000000000F8AE
test r8d,r8d
jne short 000000000000F8AE
jmp near ptr 000000000000F97B
cmp dword ptr [rbp+50],0
jle near ptr 000000000000FA85
cmp ecx,58
je near ptr 000000000000F9BB
test rbx,rbx
je near ptr 000000000000FA6B
mov rcx,rbx
call qword ptr [5CA8]
mov r9,rax
lea r8,[rbp+58]
xor edx,edx
mov [rbp+30],edx
mov [rbp+34],edx
mov byte ptr [rbp+38],0
mov byte ptr [rbp+39],0
mov byte ptr [rbp+3A],1
mov [rbp+40],r8
mov dword ptr [rbp+48],0B
lea r8,[rbp+40]
cmp dword ptr [r8+8],0
jbe near ptr 000000000000FB26
mov r8,[r8]
mov byte ptr [r8],0
mov r8d,esi
mov dword ptr [rbp+30],0A
test r8d,r8d
jl near ptr 000000000000FA79
mov byte ptr [rbp+38],0
lea rdx,[rbp+40]
cmp dword ptr [rdx+8],0
jbe near ptr 000000000000FB26
mov rdx,[rdx]
lea rcx,[rdx+0A]
mov eax,0FFFFFFFF
jmp near ptr 000000000000F8DA
mov r8,rcx
add rdx,0A
sub rdx,r8
mov [rbp+30],edx
mov [rbp+34],edx
lea rcx,[rbp+40]
cmp dword ptr [rcx+8],0
jbe near ptr 000000000000FB26
mov rcx,[rcx]
dec edx
js short 000000000000F9F6
lea rax,[rcx+1]
lea r10,[r8+1]
movzx r8d,byte ptr [r8]
mov [rcx],r8b
dec edx
mov rcx,rax
mov r8,r10
jns short 000000000000F9A0
jmp short 000000000000F9F6
mov ecx,esi
and ecx,edi
add r12d,0FFFFFFDF
movzx edx,r12w
mov r8d,[rbp+50]
call qword ptr [9348]
mov rcx,56CA0957DE9F
cmp [rbp+68],rcx
je short 000000000000F9E6
call 000000000000C410
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov byte ptr [rcx],0
test [rsp],esp
sub rsp,40
lea r8,[rsp+30]
xor edx,edx
mov [rbp+10],rdx
mov [rbp+20],r8
mov dword ptr [rbp+28],20
mov [rbp+18],edx
test r12d,r12d
jne near ptr 000000000000FB07
mov [rbp],r14
mov [rbp+8],r15d
lea r8,[rbp]
lea rdx,[rbp+30]
lea rcx,[rbp+10]
call qword ptr [9720]
lea rcx,[rbp+10]
call qword ptr [1480]
mov rcx,56CA0957DE9F
cmp [rbp+68],rcx
je short 000000000000FA5B
call 000000000000C410
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
call qword ptr [5858]
mov r9,rax
jmp near ptr 000000000000F90C
mov byte ptr [rbp+38],1
neg r8d
jmp near ptr 000000000000F95C
test esi,esi
jge short 000000000000FAD7
mov r14d,[rbp+50]
test rbx,rbx
je short 000000000000FA9D
mov rcx,rbx
call qword ptr [5CA8]
jmp short 000000000000FAA3
call qword ptr [5858]
mov r8,[rax+28]
mov ecx,esi
mov edx,r14d
call qword ptr [9318]
mov rcx,56CA0957DE9F
cmp [rbp+68],rcx
je short 000000000000FAC7
call 000000000000C410
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov ecx,esi
mov edx,[rbp+50]
call qword ptr [9408]
mov rcx,56CA0957DE9F
cmp [rbp+68],rcx
je short 000000000000FAF7
call 000000000000C410
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov [rsp+20],r9
lea rcx,[rbp+10]
lea rdx,[rbp+30]
mov r8d,r12d
mov r9d,[rbp+50]
call qword ptr [9708]
jmp near ptr 000000000000FA3C
call 000000000000AB50
int 3
; Total bytes of code 780 System.Tests.Perf_Int32.ToStringHex(value: 2147483647)
Description of detection logic
; System.Number.<FormatInt32>g__FormatInt32Slow|38_0(Int32, Int32, System.String, System.IFormatProvider)
push rbp
push r15
push r14
push r12
push rdi
push rsi
push rbx
sub rsp,0A0
lea rbp,[rsp+30]
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp],xmm4
vmovdqa xmmword ptr [rbp+10],xmm4
vmovdqa xmmword ptr [rbp+20],xmm4
vmovdqa xmmword ptr [rbp+30],xmm4
vmovdqa xmmword ptr [rbp+40],xmm4
mov rax,406E350A9AF2
mov [rbp+68],rax
mov esi,ecx
mov edi,edx
mov rbx,r9
test r8,r8
je short 000000000000F886
lea r14,[r8+0C]
mov r15d,[r8+8]
mov [rbp],r14
mov [rbp+8],r15d
lea rcx,[rbp]
lea rdx,[rbp+50]
call qword ptr [96F0]
mov r12d,eax
mov ecx,r12d
and ecx,0FFDF
cmp ecx,47
je short 000000000000F8C4
cmp ecx,44
jne short 000000000000F8CE
jmp near ptr 000000000000FA65
xor r14d,r14d
xor r15d,r15d
jmp short 000000000000F855
mov r10d,0CCCCCCCD
mov r11d,r8d
imul r10,r11
shr r10,23
lea r11d,[r10+r10*4]
add r11d,r11d
sub r8d,r11d
dec rcx
add r8d,30
mov [rcx],r8b
dec eax
mov r8d,r10d
jns short 000000000000F88E
test r8d,r8d
jne short 000000000000F88E
jmp near ptr 000000000000F95B
cmp dword ptr [rbp+50],0
jle near ptr 000000000000FA65
cmp ecx,58
je near ptr 000000000000F99B
test rbx,rbx
je near ptr 000000000000FA4B
mov rcx,rbx
call qword ptr [5CA8]
mov r9,rax
lea r8,[rbp+58]
xor edx,edx
mov [rbp+30],edx
mov [rbp+34],edx
mov byte ptr [rbp+38],0
mov byte ptr [rbp+39],0
mov byte ptr [rbp+3A],1
mov [rbp+40],r8
mov dword ptr [rbp+48],0B
lea r8,[rbp+40]
cmp dword ptr [r8+8],0
jbe near ptr 000000000000FB06
mov r8,[r8]
mov byte ptr [r8],0
mov r8d,esi
mov dword ptr [rbp+30],0A
test r8d,r8d
jl near ptr 000000000000FA59
mov byte ptr [rbp+38],0
lea rdx,[rbp+40]
cmp dword ptr [rdx+8],0
jbe near ptr 000000000000FB06
mov rdx,[rdx]
lea rcx,[rdx+0A]
mov eax,0FFFFFFFF
jmp near ptr 000000000000F8BA
mov r8,rcx
add rdx,0A
sub rdx,r8
mov [rbp+30],edx
mov [rbp+34],edx
lea rcx,[rbp+40]
cmp dword ptr [rcx+8],0
jbe near ptr 000000000000FB06
mov rcx,[rcx]
dec edx
js short 000000000000F9D6
lea rax,[rcx+1]
lea r10,[r8+1]
movzx r8d,byte ptr [r8]
mov [rcx],r8b
dec edx
mov rcx,rax
mov r8,r10
jns short 000000000000F980
jmp short 000000000000F9D6
mov ecx,esi
and ecx,edi
add r12d,0FFFFFFDF
movzx edx,r12w
mov r8d,[rbp+50]
call qword ptr [9348]
mov rcx,406E350A9AF2
cmp [rbp+68],rcx
je short 000000000000F9C6
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov byte ptr [rcx],0
test [rsp],esp
sub rsp,40
lea r8,[rsp+30]
xor edx,edx
mov [rbp+10],rdx
mov [rbp+20],r8
mov dword ptr [rbp+28],20
mov [rbp+18],edx
test r12d,r12d
jne near ptr 000000000000FAE7
mov [rbp],r14
mov [rbp+8],r15d
lea r8,[rbp]
lea rdx,[rbp+30]
lea rcx,[rbp+10]
call qword ptr [9720]
lea rcx,[rbp+10]
call qword ptr [1480]
mov rcx,406E350A9AF2
cmp [rbp+68],rcx
je short 000000000000FA3B
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
call qword ptr [5858]
mov r9,rax
jmp near ptr 000000000000F8EC
mov byte ptr [rbp+38],1
neg r8d
jmp near ptr 000000000000F93C
test esi,esi
jge short 000000000000FAB7
mov r14d,[rbp+50]
test rbx,rbx
je short 000000000000FA7D
mov rcx,rbx
call qword ptr [5CA8]
jmp short 000000000000FA83
call qword ptr [5858]
mov r8,[rax+28]
mov ecx,esi
mov edx,r14d
call qword ptr [9318]
mov rcx,406E350A9AF2
cmp [rbp+68],rcx
je short 000000000000FAA7
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov ecx,esi
mov edx,[rbp+50]
call qword ptr [9408]
mov rcx,406E350A9AF2
cmp [rbp+68],rcx
je short 000000000000FAD7
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov [rsp+20],r9
lea rcx,[rbp+10]
lea rdx,[rbp+30]
mov r8d,r12d
mov r9d,[rbp+50]
call qword ptr [9708]
jmp near ptr 000000000000FA1C
call 0000000000006930
int 3
; Total bytes of code 780 Compare Jit Disasm; System.Tests.Perf_Int32.ToStringHex(Int32)
sub rsp,28
mov ecx,edx
mov r8,2016D405890
mov r8,[r8]
mov edx,0FFFFFFFF
xor r9d,r9d
call qword ptr [9FA8]
nop
add rsp,28
ret
; Total bytes of code 39 ; System.Number.<FormatInt32>g__FormatInt32Slow|38_0(Int32, Int32, System.String, System.IFormatProvider)
push rbp
push r15
push r14
push r12
push rdi
push rsi
push rbx
sub rsp,0A0
lea rbp,[rsp+30]
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp],xmm4
vmovdqa xmmword ptr [rbp+10],xmm4
vmovdqa xmmword ptr [rbp+20],xmm4
vmovdqa xmmword ptr [rbp+30],xmm4
vmovdqa xmmword ptr [rbp+40],xmm4
mov rax,186E5878A65F
mov [rbp+68],rax
mov esi,ecx
mov edi,edx
mov rbx,r9
test r8,r8
je short 000000000000F8A6
lea r14,[r8+0C]
mov r15d,[r8+8]
mov [rbp],r14
mov [rbp+8],r15d
lea rcx,[rbp]
lea rdx,[rbp+50]
call qword ptr [96F0]
mov r12d,eax
mov ecx,r12d
and ecx,0FFDF
cmp ecx,47
je short 000000000000F8E4
cmp ecx,44
jne short 000000000000F8EE
jmp near ptr 000000000000FA85
xor r14d,r14d
xor r15d,r15d
jmp short 000000000000F875
mov r10d,0CCCCCCCD
mov r11d,r8d
imul r10,r11
shr r10,23
lea r11d,[r10+r10*4]
add r11d,r11d
sub r8d,r11d
dec rcx
add r8d,30
mov [rcx],r8b
dec eax
mov r8d,r10d
jns short 000000000000F8AE
test r8d,r8d
jne short 000000000000F8AE
jmp near ptr 000000000000F97B
cmp dword ptr [rbp+50],0
jle near ptr 000000000000FA85
cmp ecx,58
je near ptr 000000000000F9BB
test rbx,rbx
je near ptr 000000000000FA6B
mov rcx,rbx
call qword ptr [5CA8]
mov r9,rax
lea r8,[rbp+58]
xor edx,edx
mov [rbp+30],edx
mov [rbp+34],edx
mov byte ptr [rbp+38],0
mov byte ptr [rbp+39],0
mov byte ptr [rbp+3A],1
mov [rbp+40],r8
mov dword ptr [rbp+48],0B
lea r8,[rbp+40]
cmp dword ptr [r8+8],0
jbe near ptr 000000000000FB26
mov r8,[r8]
mov byte ptr [r8],0
mov r8d,esi
mov dword ptr [rbp+30],0A
test r8d,r8d
jl near ptr 000000000000FA79
mov byte ptr [rbp+38],0
lea rdx,[rbp+40]
cmp dword ptr [rdx+8],0
jbe near ptr 000000000000FB26
mov rdx,[rdx]
lea rcx,[rdx+0A]
mov eax,0FFFFFFFF
jmp near ptr 000000000000F8DA
mov r8,rcx
add rdx,0A
sub rdx,r8
mov [rbp+30],edx
mov [rbp+34],edx
lea rcx,[rbp+40]
cmp dword ptr [rcx+8],0
jbe near ptr 000000000000FB26
mov rcx,[rcx]
dec edx
js short 000000000000F9F6
lea rax,[rcx+1]
lea r10,[r8+1]
movzx r8d,byte ptr [r8]
mov [rcx],r8b
dec edx
mov rcx,rax
mov r8,r10
jns short 000000000000F9A0
jmp short 000000000000F9F6
mov ecx,esi
and ecx,edi
add r12d,0FFFFFFDF
movzx edx,r12w
mov r8d,[rbp+50]
call qword ptr [9348]
mov rcx,186E5878A65F
cmp [rbp+68],rcx
je short 000000000000F9E6
call 000000000000C410
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov byte ptr [rcx],0
test [rsp],esp
sub rsp,40
lea r8,[rsp+30]
xor edx,edx
mov [rbp+10],rdx
mov [rbp+20],r8
mov dword ptr [rbp+28],20
mov [rbp+18],edx
test r12d,r12d
jne near ptr 000000000000FB07
mov [rbp],r14
mov [rbp+8],r15d
lea r8,[rbp]
lea rdx,[rbp+30]
lea rcx,[rbp+10]
call qword ptr [9720]
lea rcx,[rbp+10]
call qword ptr [1480]
mov rcx,186E5878A65F
cmp [rbp+68],rcx
je short 000000000000FA5B
call 000000000000C410
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
call qword ptr [5858]
mov r9,rax
jmp near ptr 000000000000F90C
mov byte ptr [rbp+38],1
neg r8d
jmp near ptr 000000000000F95C
test esi,esi
jge short 000000000000FAD7
mov r14d,[rbp+50]
test rbx,rbx
je short 000000000000FA9D
mov rcx,rbx
call qword ptr [5CA8]
jmp short 000000000000FAA3
call qword ptr [5858]
mov r8,[rax+28]
mov ecx,esi
mov edx,r14d
call qword ptr [9318]
mov rcx,186E5878A65F
cmp [rbp+68],rcx
je short 000000000000FAC7
call 000000000000C410
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov ecx,esi
mov edx,[rbp+50]
call qword ptr [9408]
mov rcx,186E5878A65F
cmp [rbp+68],rcx
je short 000000000000FAF7
call 000000000000C410
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r12
pop r14
pop r15
pop rbp
ret
mov [rsp+20],r9
lea rcx,[rbp+10]
lea rdx,[rbp+30]
mov r8d,r12d
mov r9d,[rbp+50]
call qword ptr [9708]
jmp near ptr 000000000000FA3C
call 000000000000AB50
int 3
; Total bytes of code 780 System.Tests.Perf_Int32.ToString(value: 4)
Description of detection logic
; System.Number.Int32ToDecStr(Int32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
test esi,esi
jl near ptr 000000000000F61D
mov ecx,esi
mov eax,1
cmp ecx,186A0
jae near ptr 000000000000F603
cmp ecx,0A
jae short 000000000000F57A
mov edi,eax
cmp edi,1
jne short 000000000000F583
mov rcx,29E2F0002C8
mov rcx,[rcx]
cmp esi,[rcx+8]
jae near ptr 000000000000F643
mov eax,esi
mov rax,[rcx+rax*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp ecx,64
jae short 000000000000F5DB
inc eax
jmp short 000000000000F54F
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F63C
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F5A8
xor edx,edx
mov [rsp+20],rdx
jmp short 000000000000F573
cmp ecx,3E8
jae short 000000000000F5EB
add eax,2
jmp near ptr 000000000000F54F
cmp ecx,2710
jae short 000000000000F5FB
add eax,3
jmp near ptr 000000000000F54F
add eax,4
jmp near ptr 000000000000F54F
mov ecx,esi
shr ecx,5
imul rcx,0A7C5AC5
shr rcx,27
mov eax,6
jmp near ptr 000000000000F54A
call qword ptr [5858]
mov r8,[rax+28]
mov ecx,esi
mov edx,0FFFFFFFF
call qword ptr [9318]
nop
add rsp,28
pop rsi
pop rdi
ret
xor edx,edx
jmp near ptr 000000000000F5A1
call 0000000000006930
int 3
; Total bytes of code 297 Compare Jit Disasm; System.Tests.Perf_Int32.ToString(Int32)
sub rsp,28
mov ecx,edx
call qword ptr [9300]
nop
add rsp,28
ret
; Total bytes of code 18 ; System.Number.Int32ToDecStr(Int32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
test esi,esi
jl near ptr 000000000000F61D
mov ecx,esi
mov eax,1
cmp ecx,186A0
jae near ptr 000000000000F603
cmp ecx,0A
jae short 000000000000F57A
mov edi,eax
cmp edi,1
jne short 000000000000F583
mov rcx,18E5AC002C8
mov rcx,[rcx]
cmp esi,[rcx+8]
jae near ptr 000000000000F643
mov eax,esi
mov rax,[rcx+rax*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp ecx,64
jae short 000000000000F5DB
inc eax
jmp short 000000000000F54F
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F63C
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F5A8
xor edx,edx
mov [rsp+20],rdx
jmp short 000000000000F573
cmp ecx,3E8
jae short 000000000000F5EB
add eax,2
jmp near ptr 000000000000F54F
cmp ecx,2710
jae short 000000000000F5FB
add eax,3
jmp near ptr 000000000000F54F
add eax,4
jmp near ptr 000000000000F54F
mov ecx,esi
shr ecx,5
imul rcx,0A7C5AC5
shr rcx,27
mov eax,6
jmp near ptr 000000000000F54A
call qword ptr [5858]
mov r8,[rax+28]
mov ecx,esi
mov edx,0FFFFFFFF
call qword ptr [9318]
nop
add rsp,28
pop rsi
pop rdi
ret
xor edx,edx
jmp near ptr 000000000000F5A1
call 000000000000AB50
int 3
; Total bytes of code 297 System.Tests.Perf_Int32.ToString(value: 2147483647)
Description of detection logic
; System.Number.Int32ToDecStr(Int32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
test esi,esi
jl near ptr 000000000000F61D
mov ecx,esi
mov eax,1
cmp ecx,186A0
jae near ptr 000000000000F603
cmp ecx,0A
jae short 000000000000F57A
mov edi,eax
cmp edi,1
jne short 000000000000F583
mov rcx,139F74002C8
mov rcx,[rcx]
cmp esi,[rcx+8]
jae near ptr 000000000000F643
mov eax,esi
mov rax,[rcx+rax*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp ecx,64
jae short 000000000000F5DB
inc eax
jmp short 000000000000F54F
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F63C
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F5A8
xor edx,edx
mov [rsp+20],rdx
jmp short 000000000000F573
cmp ecx,3E8
jae short 000000000000F5EB
add eax,2
jmp near ptr 000000000000F54F
cmp ecx,2710
jae short 000000000000F5FB
add eax,3
jmp near ptr 000000000000F54F
add eax,4
jmp near ptr 000000000000F54F
mov ecx,esi
shr ecx,5
imul rcx,0A7C5AC5
shr rcx,27
mov eax,6
jmp near ptr 000000000000F54A
call qword ptr [5858]
mov r8,[rax+28]
mov ecx,esi
mov edx,0FFFFFFFF
call qword ptr [9318]
nop
add rsp,28
pop rsi
pop rdi
ret
xor edx,edx
jmp near ptr 000000000000F5A1
call 0000000000006930
int 3
; Total bytes of code 297 Compare Jit Disasm; System.Tests.Perf_Int32.ToString(Int32)
sub rsp,28
mov ecx,edx
call qword ptr [9300]
nop
add rsp,28
ret
; Total bytes of code 18 ; System.Number.Int32ToDecStr(Int32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
test esi,esi
jl near ptr 000000000000F61D
mov ecx,esi
mov eax,1
cmp ecx,186A0
jae near ptr 000000000000F603
cmp ecx,0A
jae short 000000000000F57A
mov edi,eax
cmp edi,1
jne short 000000000000F583
mov rcx,24E458002C8
mov rcx,[rcx]
cmp esi,[rcx+8]
jae near ptr 000000000000F643
mov eax,esi
mov rax,[rcx+rax*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp ecx,64
jae short 000000000000F5DB
inc eax
jmp short 000000000000F54F
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F63C
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F5A8
xor edx,edx
mov [rsp+20],rdx
jmp short 000000000000F573
cmp ecx,3E8
jae short 000000000000F5EB
add eax,2
jmp near ptr 000000000000F54F
cmp ecx,2710
jae short 000000000000F5FB
add eax,3
jmp near ptr 000000000000F54F
add eax,4
jmp near ptr 000000000000F54F
mov ecx,esi
shr ecx,5
imul rcx,0A7C5AC5
shr rcx,27
mov eax,6
jmp near ptr 000000000000F54A
call qword ptr [5858]
mov r8,[rax+28]
mov ecx,esi
mov edx,0FFFFFFFF
call qword ptr [9318]
nop
add rsp,28
pop rsi
pop rdi
ret
xor edx,edx
jmp near ptr 000000000000F5A1
call 000000000000AB50
int 3
; Total bytes of code 297 System.Tests.Perf_Int32.ToString(value: 12345)
Description of detection logic
; System.Number.Int32ToDecStr(Int32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
test esi,esi
jl near ptr 000000000000F61D
mov ecx,esi
mov eax,1
cmp ecx,186A0
jae near ptr 000000000000F603
cmp ecx,0A
jae short 000000000000F57A
mov edi,eax
cmp edi,1
jne short 000000000000F583
mov rcx,2CE774002C8
mov rcx,[rcx]
cmp esi,[rcx+8]
jae near ptr 000000000000F643
mov eax,esi
mov rax,[rcx+rax*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp ecx,64
jae short 000000000000F5DB
inc eax
jmp short 000000000000F54F
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F63C
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F5A8
xor edx,edx
mov [rsp+20],rdx
jmp short 000000000000F573
cmp ecx,3E8
jae short 000000000000F5EB
add eax,2
jmp near ptr 000000000000F54F
cmp ecx,2710
jae short 000000000000F5FB
add eax,3
jmp near ptr 000000000000F54F
add eax,4
jmp near ptr 000000000000F54F
mov ecx,esi
shr ecx,5
imul rcx,0A7C5AC5
shr rcx,27
mov eax,6
jmp near ptr 000000000000F54A
call qword ptr [5858]
mov r8,[rax+28]
mov ecx,esi
mov edx,0FFFFFFFF
call qword ptr [9318]
nop
add rsp,28
pop rsi
pop rdi
ret
xor edx,edx
jmp near ptr 000000000000F5A1
call 0000000000006930
int 3
; Total bytes of code 297 Compare Jit Disasm; System.Tests.Perf_Int32.ToString(Int32)
sub rsp,28
mov ecx,edx
call qword ptr [9300]
nop
add rsp,28
ret
; Total bytes of code 18 ; System.Number.Int32ToDecStr(Int32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
test esi,esi
jl near ptr 000000000000F61D
mov ecx,esi
mov eax,1
cmp ecx,186A0
jae near ptr 000000000000F603
cmp ecx,0A
jae short 000000000000F57A
mov edi,eax
cmp edi,1
jne short 000000000000F583
mov rcx,252E34002C8
mov rcx,[rcx]
cmp esi,[rcx+8]
jae near ptr 000000000000F643
mov eax,esi
mov rax,[rcx+rax*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp ecx,64
jae short 000000000000F5DB
inc eax
jmp short 000000000000F54F
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F63C
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F5A8
xor edx,edx
mov [rsp+20],rdx
jmp short 000000000000F573
cmp ecx,3E8
jae short 000000000000F5EB
add eax,2
jmp near ptr 000000000000F54F
cmp ecx,2710
jae short 000000000000F5FB
add eax,3
jmp near ptr 000000000000F54F
add eax,4
jmp near ptr 000000000000F54F
mov ecx,esi
shr ecx,5
imul rcx,0A7C5AC5
shr rcx,27
mov eax,6
jmp near ptr 000000000000F54A
call qword ptr [5858]
mov r8,[rax+28]
mov ecx,esi
mov edx,0FFFFFFFF
call qword ptr [9318]
nop
add rsp,28
pop rsi
pop rdi
ret
xor edx,edx
jmp near ptr 000000000000F5A1
call 000000000000AB50
int 3
; Total bytes of code 297 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in BenchmarksGame.KNucleotide_9
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'BenchmarksGame.KNucleotide_9*' PayloadsHistogramBenchmarksGame.KNucleotide_9.RunBench
Description of detection logic
; BenchmarksGame.KNucleotide_9.Bench(BenchmarksGame.NucleotideHelpers, Boolean)
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,0B8
lea rbp,[rsp+0F0]
xor eax,eax
mov [rbp+0FF98],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp+0FFA0],xmm4
vmovdqa xmmword ptr [rbp+0FFB0],xmm4
mov [rbp+0FFC0],rax
mov [rbp+0FF68],rsp
mov [rbp+18],edx
mov rsi,rcx
mov rcx,offset MT_BenchmarksGame.KNucleotide_9+<>c__DisplayClass18_0
call 000000000000C390
mov rdx,rax
mov [rbp+0FF98],rdx
lea rcx,[rdx+8]
mov rdx,rsi
call 0000000000000010
mov rcx,2887E008348
mov rcx,[rcx]
inc dword ptr [rcx+14]
mov r8d,[rcx+10]
xor edx,edx
mov [rcx+10],edx
test r8d,r8d
jle short 0000000000002CFC
mov rcx,[rcx+8]
xor edx,edx
call qword ptr [90C0]
xor ecx,ecx
mov [0BFDC],ecx
mov [0BFE0],ecx
mov rcx,2887E008350
mov rcx,[rcx]
mov rax,rcx
mov edx,[rax+8]
cmp edx,63
jbe near ptr 00000000000034BA
mov byte ptr [rax+73],1
mov rax,rcx
mov byte ptr [rax+53],1
mov rax,rcx
cmp edx,67
jbe near ptr 00000000000034BA
mov byte ptr [rax+77],2
mov rax,rcx
mov byte ptr [rax+57],2
mov rax,rcx
cmp edx,74
jbe near ptr 00000000000034BA
mov byte ptr [rax+84],3
mov rax,rcx
mov byte ptr [rax+64],3
mov rax,rcx
mov byte ptr [rax+1A],0FF
mov rax,rcx
mov byte ptr [rax+4E],0FF
cmp edx,0FF
jbe near ptr 00000000000034BA
mov byte ptr [rcx+10F],0FF
mov rdx,[rbp+0FF98]
mov rcx,[rdx+8]
mov rsi,[rcx+8]
mov rcx,offset MT_System.IO.FileStream
call 0000000000000330
mov rdi,rax
mov dword ptr [rsp+20],1000
xor ecx,ecx
mov [rsp+28],ecx
mov [rsp+30],rcx
mov rcx,rsi
mov edx,3
mov r8d,3
mov r9d,1
call qword ptr [71B0]
mov rcx,offset MT_System.IO.Strategies.SyncWindowsFileStreamStrategy
call 000000000000C390
mov rbx,rax
mov rdx,rsi
xor ecx,ecx
mov [rsp+30],rcx
mov byte ptr [rbp+0FFA0],0
mov [rbp+0FFA4],ecx
mov rcx,rbx
mov r8d,3
mov r9d,3
mov dword ptr [rsp+20],1
xor eax,eax
mov [rsp+28],eax
mov rax,[rbp+0FFA0]
mov [rsp+38],rax
call qword ptr [7540]
mov rcx,offset MT_System.IO.Strategies.BufferedFileStreamStrategy
call 000000000000C390
mov rsi,rax
lea rcx,[rsi+10]
mov rdx,rbx
call 0000000000000010
mov dword ptr [rsi+20],1000
mov rdx,rsi
mov rcx,rdi
call qword ptr [7180]
lea rcx,[rdi+10]
mov rdx,rax
call 0000000000000010
mov rcx,rdi
mov [rbp+0FF90],rcx
call qword ptr [0B150]
nop
mov rcx,rsp
call 00000000000034C0
nop
mov rcx,2887E008818
mov rsi,[rcx]
mov rcx,2887E008348
mov rdi,[rcx]
test rsi,rsi
jne short 0000000000002ED8
mov rcx,offset MT_System.Action`1[[System.Byte[], System.Private.CoreLib]]
call 000000000000C390
mov rsi,rax
mov rdx,2887E0087F8
mov rdx,[rdx]
lea rcx,[rsi+8]
call 0000000000000010
mov rdx,offset BenchmarksGame.KNucleotide_9+<>c.<Bench>b__18_0(Byte[])
mov [rsi+18],rdx
mov rcx,2887E008818
mov rdx,rsi
call 0000000000000010
test rdi,rdi
je near ptr 00000000000033D5
test rsi,rsi
je near ptr 00000000000033F3
mov rdx,2887E009520
mov rbx,[rdx]
mov rdx,[rbx+18]
mov [rbp+0FFA8],rdx
cmp qword ptr [rbp+0FFA8],0
jne short 0000000000002F62
mov rdx,rdi
mov rcx,offset MT_System.Byte[][]
call qword ptr [0B7F8]
test rax,rax
je short 0000000000002F71
mov [rsp+20],rsi
xor ecx,ecx
mov [rsp+28],rcx
mov [rsp+30],rcx
mov [rsp+38],rcx
mov [rsp+40],rcx
mov [rsp+48],rcx
mov [rsp+50],rcx
lea rcx,[rbp+0FFB0]
mov r8,rax
mov r9,rbx
mov rdx,offset MD_System.Threading.Tasks.Parallel.ForEachWorker(!!0[], System.Threading.Tasks.ParallelOptions, System.Action`1<!!0>, System.Action`2<!!0,System.Threading.Tasks.ParallelLoopState>, System.Action`3<!!0,System.Threading.Tasks.ParallelLoopState,Int64>, System.Func`4<!!0,System.Threading.Tasks.ParallelLoopState,!!1,!!1>, System.Func`5<!!0,System.Threading.Tasks.ParallelLoopState,Int64,!!1,!!1>, System.Func`1<!!1>, System.Action`1<!!1>)
call qword ptr [0D300]
jmp near ptr 000000000000301F
mov rdx,[rbp+0FFA8]
cmp dword ptr [rdx+20],0
je short 0000000000002F06
jmp near ptr 0000000000003411
mov rdx,rdi
mov rcx,offset MT_System.Collections.Generic.IList`1[[System.Byte[], System.Private.CoreLib]]
call qword ptr [0B810]
test rax,rax
je short 0000000000002FCA
mov [rsp+20],rsi
xor ecx,ecx
mov [rsp+28],rcx
mov [rsp+30],rcx
mov [rsp+38],rcx
mov [rsp+40],rcx
mov [rsp+48],rcx
mov [rsp+50],rcx
lea rcx,[rbp+0FFB0]
mov r8,rax
mov r9,rbx
mov rdx,offset MD_System.Threading.Tasks.Parallel.ForEachWorker(System.Collections.Generic.IList`1<!!0>, System.Threading.Tasks.ParallelOptions, System.Action`1<!!0>, System.Action`2<!!0,System.Threading.Tasks.ParallelLoopState>, System.Action`3<!!0,System.Threading.Tasks.ParallelLoopState,Int64>, System.Func`4<!!0,System.Threading.Tasks.ParallelLoopState,!!1,!!1>, System.Func`5<!!0,System.Threading.Tasks.ParallelLoopState,Int64,!!1,!!1>, System.Func`1<!!1>, System.Action`1<!!1>)
call qword ptr [0D2B8]
jmp short 000000000000301F
mov rdx,rdi
mov rcx,offset MD_System.Collections.Concurrent.Partitioner.Create(System.Collections.Generic.IEnumerable`1<!!0>, System.Collections.Concurrent.EnumerablePartitionerOptions)
xor r8d,r8d
call qword ptr [3768]
mov r8,rax
mov [rsp+20],rsi
xor ecx,ecx
mov [rsp+28],rcx
mov [rsp+30],rcx
mov [rsp+38],rcx
mov [rsp+40],rcx
mov [rsp+48],rcx
mov [rsp+50],rcx
lea rcx,[rbp+0FFB0]
mov r9,rbx
mov rdx,offset MD_System.Threading.Tasks.Parallel.PartitionerForEachWorker(System.Collections.Concurrent.Partitioner`1<!!0>, System.Threading.Tasks.ParallelOptions, System.Action`1<!!0>, System.Action`2<!!0,System.Threading.Tasks.ParallelLoopState>, System.Action`3<!!0,System.Threading.Tasks.ParallelLoopState,Int64>, System.Func`4<!!0,System.Threading.Tasks.ParallelLoopState,!!1,!!1>, System.Func`5<!!0,System.Threading.Tasks.ParallelLoopState,Int64,!!1,!!1>, System.Func`1<!!1>, System.Action`1<!!1>)
call qword ptr [0D270]
mov rdx,[rbp+0FF98]
mov byte ptr [rdx+10],1
mov rsi,offset MT_System.Func`2[[System.Collections.Generic.Dictionary`2[[System.Int64, System.Private.CoreLib],[BenchmarksGame.Wrapper, MicroBenchmarks]], System.Private.CoreLib],[System.String, System.Private.CoreLib]]
mov rcx,rsi
call 000000000000C390
mov rdi,rax
lea rcx,[rdi+8]
mov rdx,[rbp+0FF98]
call 0000000000000010
mov r8,offset BenchmarksGame.KNucleotide_9+<>c__DisplayClass18_0.<Bench>b__1(System.Collections.Generic.Dictionary`2<Int64,BenchmarksGame.Wrapper>)
mov [rdi+18],r8
mov r8,rdi
mov ecx,12
mov rdx,7FFFFFFFF
call qword ptr [0B1C8]
mov rdi,rax
mov rcx,rsi
call 000000000000C390
mov rbx,rax
lea rcx,[rbx+8]
mov rdx,[rbp+0FF98]
call 0000000000000010
mov r8,offset BenchmarksGame.KNucleotide_9+<>c__DisplayClass18_0.<Bench>b__2(System.Collections.Generic.Dictionary`2<Int64,BenchmarksGame.Wrapper>)
mov [rbx+18],r8
mov r8,rbx
mov ecx,0C
mov edx,7FFFFF
call qword ptr [0B1C8]
mov rbx,rax
mov rcx,rsi
call 000000000000C390
mov r14,rax
lea rcx,[r14+8]
mov rdx,[rbp+0FF98]
call 0000000000000010
mov r8,offset BenchmarksGame.KNucleotide_9+<>c__DisplayClass18_0.<Bench>b__3(System.Collections.Generic.Dictionary`2<Int64,BenchmarksGame.Wrapper>)
mov [r14+18],r8
mov r8,r14
mov ecx,6
mov edx,3FF
call qword ptr [0B198]
mov r14,rax
mov rcx,rsi
call 000000000000C390
mov r15,rax
lea rcx,[r15+8]
mov rdx,[rbp+0FF98]
call 0000000000000010
mov r8,offset BenchmarksGame.KNucleotide_9+<>c__DisplayClass18_0.<Bench>b__4(System.Collections.Generic.Dictionary`2<Int64,BenchmarksGame.Wrapper>)
mov [r15+18],r8
mov r8,r15
mov ecx,4
mov edx,3F
call qword ptr [0B198]
mov r15,rax
mov rcx,rsi
call 000000000000C390
mov r12,rax
lea rcx,[r12+8]
mov rdx,[rbp+0FF98]
call 0000000000000010
mov r8,offset BenchmarksGame.KNucleotide_9+<>c__DisplayClass18_0.<Bench>b__5(System.Collections.Generic.Dictionary`2<Int64,BenchmarksGame.Wrapper>)
mov [r12+18],r8
mov r8,r12
mov ecx,3
mov edx,0F
call qword ptr [0B198]
mov r12,rax
mov rcx,rsi
call 000000000000C390
mov r13,rax
lea rcx,[r13+8]
mov rdx,[rbp+0FF98]
call 0000000000000010
mov r8,offset BenchmarksGame.KNucleotide_9+<>c__DisplayClass18_0.<Bench>b__6(System.Collections.Generic.Dictionary`2<Int64,BenchmarksGame.Wrapper>)
mov [r13+18],r8
mov r8,r13
mov ecx,2
mov edx,3
call qword ptr [0B198]
mov r13,rax
mov rcx,rsi
call 000000000000C390
mov rsi,rax
lea rcx,[rsi+8]
mov rdx,[rbp+0FF98]
call 0000000000000010
mov r8,offset BenchmarksGame.KNucleotide_9+<>c__DisplayClass18_0.<Bench>b__7(System.Collections.Generic.Dictionary`2<Int64,BenchmarksGame.Wrapper>)
mov [rsi+18],r8
mov r8,rsi
mov ecx,1
xor edx,edx
call qword ptr [0B198]
mov rsi,rax
cmp byte ptr [rbp+18],0
je near ptr 0000000000003338
call qword ptr [13C0]
mov [rbp+0FF80],rax
mov ecx,[rsi+34]
and ecx,11000000
cmp ecx,1000000
jne near ptr 000000000000341C
mov rdx,[rsi+38]
mov rcx,rax
mov rax,[rax]
mov rax,[rax+78]
call qword ptr [rax+18]
call qword ptr [13C0]
mov rsi,rax
mov ecx,[r13+34]
and ecx,11000000
cmp ecx,1000000
jne near ptr 0000000000003436
mov rdx,[r13+38]
mov rcx,rsi
mov rax,[rsi]
mov rax,[rax+78]
call qword ptr [rax+18]
call qword ptr [13C0]
mov rsi,rax
mov ecx,[r12+34]
and ecx,11000000
cmp ecx,1000000
jne near ptr 000000000000344C
mov rdx,[r12+38]
mov rcx,rsi
mov rax,[rsi]
mov rax,[rax+78]
call qword ptr [rax+18]
call qword ptr [13C0]
mov rsi,rax
mov ecx,[r15+34]
and ecx,11000000
cmp ecx,1000000
jne near ptr 0000000000003462
mov rdx,[r15+38]
mov rcx,rsi
mov rax,[rsi]
mov rax,[rax+78]
call qword ptr [rax+18]
call qword ptr [13C0]
mov rsi,rax
mov ecx,[r14+34]
and ecx,11000000
cmp ecx,1000000
jne near ptr 0000000000003478
mov rdx,[r14+38]
mov rcx,rsi
mov rax,[rsi]
mov rax,[rax+78]
call qword ptr [rax+18]
call qword ptr [13C0]
mov rsi,rax
mov ecx,[rbx+34]
and ecx,11000000
cmp ecx,1000000
jne near ptr 000000000000348E
mov rdx,[rbx+38]
mov rcx,rsi
mov rax,[rsi]
mov rax,[rax+78]
call qword ptr [rax+18]
call qword ptr [13C0]
mov rsi,rax
mov ecx,[rdi+34]
and ecx,11000000
cmp ecx,1000000
jne near ptr 00000000000034A4
mov rdx,[rdi+38]
mov rcx,rsi
mov rax,[rsi]
mov rax,[rax+78]
call qword ptr [rax+18]
jmp near ptr 00000000000033B9
mov rcx,offset MT_System.Threading.Tasks.Task[]
mov edx,7
call 000000000000C510
mov [rbp+0FF88],rax
lea rcx,[rax+10]
mov rdx,rsi
call 0000000000000010
mov rsi,[rbp+0FF88]
lea rcx,[rsi+18]
mov rdx,r13
call 0000000000000010
lea rcx,[rsi+20]
mov rdx,r12
call 0000000000000010
lea rcx,[rsi+28]
mov rdx,r15
call 0000000000000010
lea rcx,[rsi+30]
mov rdx,r14
call 0000000000000010
lea rcx,[rsi+38]
mov rdx,rbx
call 0000000000000010
lea rcx,[rsi+40]
mov rdx,rdi
call 0000000000000010
mov rcx,rsi
xor r8d,r8d
mov edx,0FFFFFFFF
call qword ptr [1060]
mov rdx,[rbp+0FF98]
movzx eax,byte ptr [rdx+10]
add rsp,0B8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov ecx,3C3
mov rdx,7FFCC01148A0
call 00000000000014A0
mov rcx,rax
call qword ptr [33F0]
int 3
mov ecx,38B
mov rdx,7FFCC01148A0
call 00000000000014A0
mov rcx,rax
call qword ptr [33F0]
int 3
lea rcx,[rbp+0FFA8]
call qword ptr [1720]
int 3
mov rcx,rsi
mov edx,1
call qword ptr [3AB0]
mov rdx,rax
mov rax,[rbp+0FF80]
jmp near ptr 0000000000003206
mov rcx,r13
mov edx,1
call qword ptr [3AB0]
mov rdx,rax
jmp near ptr 0000000000003236
mov rcx,r12
mov edx,1
call qword ptr [3AB0]
mov rdx,rax
jmp near ptr 0000000000003268
mov rcx,r15
mov edx,1
call qword ptr [3AB0]
mov rdx,rax
jmp near ptr 0000000000003298
mov rcx,r14
mov edx,1
call qword ptr [3AB0]
mov rdx,rax
jmp near ptr 00000000000032C8
mov rcx,rbx
mov edx,1
call qword ptr [3AB0]
mov rdx,rax
jmp near ptr 00000000000032F7
mov rcx,rdi
mov edx,1
call qword ptr [3AB0]
mov rdx,rax
jmp near ptr 0000000000003326
call 0000000000006930
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,68
mov rbp,[rcx+58]
mov [rsp+58],rbp
lea rbp,[rbp+0F0]
mov rcx,[rbp+0FF90]
mov rdx,[rcx+10]
mov [rbp+0FF78],rdx
test rdx,rdx
je short 0000000000003558
mov rax,offset MT_System.IO.Strategies.SyncWindowsFileStreamStrategy
cmp [rdx],rax
jne short 000000000000353F
mov rax,[rdx+10]
test rax,rax
je short 0000000000003558
test byte ptr [rax+10],1
jne short 0000000000003558
mov rsi,[rdx+10]
mov rax,[rsi+28]
test rax,rax
je short 0000000000003523
mov byte ptr [rax+10],1
cmp [rsi],sil
mov rcx,rsi
mov edx,1
call qword ptr [93C0]
mov rcx,rsi
call qword ptr [0BAC8]
jmp short 0000000000003558
mov rcx,rdx
mov edx,1
mov rax,[rbp+0FF78]
mov rax,[rax]
mov rax,[rax+50]
call qword ptr [rax+20]
mov rcx,[rbp+0FF90]
call 000000000000F440
nop
add rsp,68
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
; Total bytes of code 2307 Compare Jit Disasm; BenchmarksGame.KNucleotide_9.RunBench()
mov rcx,[rcx+8]
xor edx,edx
jmp qword ptr [0B228]
; Total bytes of code 12 ; BenchmarksGame.KNucleotide_9.Bench(BenchmarksGame.NucleotideHelpers, Boolean)
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,0B8
lea rbp,[rsp+0F0]
xor eax,eax
mov [rbp+0FF98],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp+0FFA0],xmm4
vmovdqa xmmword ptr [rbp+0FFB0],xmm4
mov [rbp+0FFC0],rax
mov [rbp+0FF68],rsp
mov [rbp+18],edx
mov rsi,rcx
mov rcx,offset MT_BenchmarksGame.KNucleotide_9+<>c__DisplayClass18_0
call 0000000000002AE0
mov rdx,rax
mov [rbp+0FF98],rdx
lea rcx,[rdx+8]
mov rdx,rsi
call 0000000000000010
mov rcx,22F4F408348
mov rcx,[rcx]
inc dword ptr [rcx+14]
mov r8d,[rcx+10]
xor edx,edx
mov [rcx+10],edx
test r8d,r8d
jle short 000000000000318C
mov rcx,[rcx+8]
xor edx,edx
call qword ptr [90C0]
xor ecx,ecx
mov [0C124],ecx
mov [0C128],ecx
mov rcx,22F4F408350
mov rcx,[rcx]
mov rax,rcx
mov edx,[rax+8]
cmp edx,63
jbe near ptr 000000000000394A
mov byte ptr [rax+73],1
mov rax,rcx
mov byte ptr [rax+53],1
mov rax,rcx
cmp edx,67
jbe near ptr 000000000000394A
mov byte ptr [rax+77],2
mov rax,rcx
mov byte ptr [rax+57],2
mov rax,rcx
cmp edx,74
jbe near ptr 000000000000394A
mov byte ptr [rax+84],3
mov rax,rcx
mov byte ptr [rax+64],3
mov rax,rcx
mov byte ptr [rax+1A],0FF
mov rax,rcx
mov byte ptr [rax+4E],0FF
cmp edx,0FF
jbe near ptr 000000000000394A
mov byte ptr [rcx+10F],0FF
mov rdx,[rbp+0FF98]
mov rcx,[rdx+8]
mov rsi,[rcx+8]
mov rcx,offset MT_System.IO.FileStream
call 0000000000006B80
mov rdi,rax
mov dword ptr [rsp+20],1000
xor ecx,ecx
mov [rsp+28],ecx
mov [rsp+30],rcx
mov rcx,rsi
mov edx,3
mov r8d,3
mov r9d,1
call qword ptr [71B0]
mov rcx,offset MT_System.IO.Strategies.SyncWindowsFileStreamStrategy
call 0000000000002AE0
mov rbx,rax
mov rdx,rsi
xor ecx,ecx
mov [rsp+30],rcx
mov byte ptr [rbp+0FFA0],0
mov [rbp+0FFA4],ecx
mov rcx,rbx
mov r8d,3
mov r9d,3
mov dword ptr [rsp+20],1
xor eax,eax
mov [rsp+28],eax
mov rax,[rbp+0FFA0]
mov [rsp+38],rax
call qword ptr [7540]
mov rcx,offset MT_System.IO.Strategies.BufferedFileStreamStrategy
call 0000000000002AE0
mov rsi,rax
lea rcx,[rsi+10]
mov rdx,rbx
call 0000000000000010
mov dword ptr [rsi+20],1000
mov rdx,rsi
mov rcx,rdi
call qword ptr [7180]
lea rcx,[rdi+10]
mov rdx,rax
call 0000000000000010
mov rcx,rdi
mov [rbp+0FF90],rcx
call qword ptr [0B150]
nop
mov rcx,rsp
call 0000000000003950
nop
mov rcx,22F4F408818
mov rsi,[rcx]
mov rcx,22F4F408348
mov rdi,[rcx]
test rsi,rsi
jne short 0000000000003368
mov rcx,offset MT_System.Action`1[[System.Byte[], System.Private.CoreLib]]
call 0000000000002AE0
mov rsi,rax
mov rdx,22F4F4087F8
mov rdx,[rdx]
lea rcx,[rsi+8]
call 0000000000000010
mov rdx,offset BenchmarksGame.KNucleotide_9+<>c.<Bench>b__18_0(Byte[])
mov [rsi+18],rdx
mov rcx,22F4F408818
mov rdx,rsi
call 0000000000000010
test rdi,rdi
je near ptr 0000000000003865
test rsi,rsi
je near ptr 0000000000003883
mov rdx,22F4F409520
mov rbx,[rdx]
mov rdx,[rbx+18]
mov [rbp+0FFA8],rdx
cmp qword ptr [rbp+0FFA8],0
jne short 00000000000033F2
mov rdx,rdi
mov rcx,offset MT_System.Byte[][]
call qword ptr [0B7F8]
test rax,rax
je short 0000000000003401
mov [rsp+20],rsi
xor ecx,ecx
mov [rsp+28],rcx
mov [rsp+30],rcx
mov [rsp+38],rcx
mov [rsp+40],rcx
mov [rsp+48],rcx
mov [rsp+50],rcx
lea rcx,[rbp+0FFB0]
mov r8,rax
mov r9,rbx
mov rdx,offset MD_System.Threading.Tasks.Parallel.ForEachWorker(!!0[], System.Threading.Tasks.ParallelOptions, System.Action`1<!!0>, System.Action`2<!!0,System.Threading.Tasks.ParallelLoopState>, System.Action`3<!!0,System.Threading.Tasks.ParallelLoopState,Int64>, System.Func`4<!!0,System.Threading.Tasks.ParallelLoopState,!!1,!!1>, System.Func`5<!!0,System.Threading.Tasks.ParallelLoopState,Int64,!!1,!!1>, System.Func`1<!!1>, System.Action`1<!!1>)
call qword ptr [0D300]
jmp near ptr 00000000000034AF
mov rdx,[rbp+0FFA8]
cmp dword ptr [rdx+20],0
je short 0000000000003396
jmp near ptr 00000000000038A1
mov rdx,rdi
mov rcx,offset MT_System.Collections.Generic.IList`1[[System.Byte[], System.Private.CoreLib]]
call qword ptr [0B810]
test rax,rax
je short 000000000000345A
mov [rsp+20],rsi
xor ecx,ecx
mov [rsp+28],rcx
mov [rsp+30],rcx
mov [rsp+38],rcx
mov [rsp+40],rcx
mov [rsp+48],rcx
mov [rsp+50],rcx
lea rcx,[rbp+0FFB0]
mov r8,rax
mov r9,rbx
mov rdx,offset MD_System.Threading.Tasks.Parallel.ForEachWorker(System.Collections.Generic.IList`1<!!0>, System.Threading.Tasks.ParallelOptions, System.Action`1<!!0>, System.Action`2<!!0,System.Threading.Tasks.ParallelLoopState>, System.Action`3<!!0,System.Threading.Tasks.ParallelLoopState,Int64>, System.Func`4<!!0,System.Threading.Tasks.ParallelLoopState,!!1,!!1>, System.Func`5<!!0,System.Threading.Tasks.ParallelLoopState,Int64,!!1,!!1>, System.Func`1<!!1>, System.Action`1<!!1>)
call qword ptr [0D2B8]
jmp short 00000000000034AF
mov rdx,rdi
mov rcx,offset MD_System.Collections.Concurrent.Partitioner.Create(System.Collections.Generic.IEnumerable`1<!!0>, System.Collections.Concurrent.EnumerablePartitionerOptions)
xor r8d,r8d
call qword ptr [5798]
mov r8,rax
mov [rsp+20],rsi
xor ecx,ecx
mov [rsp+28],rcx
mov [rsp+30],rcx
mov [rsp+38],rcx
mov [rsp+40],rcx
mov [rsp+48],rcx
mov [rsp+50],rcx
lea rcx,[rbp+0FFB0]
mov r9,rbx
mov rdx,offset MD_System.Threading.Tasks.Parallel.PartitionerForEachWorker(System.Collections.Concurrent.Partitioner`1<!!0>, System.Threading.Tasks.ParallelOptions, System.Action`1<!!0>, System.Action`2<!!0,System.Threading.Tasks.ParallelLoopState>, System.Action`3<!!0,System.Threading.Tasks.ParallelLoopState,Int64>, System.Func`4<!!0,System.Threading.Tasks.ParallelLoopState,!!1,!!1>, System.Func`5<!!0,System.Threading.Tasks.ParallelLoopState,Int64,!!1,!!1>, System.Func`1<!!1>, System.Action`1<!!1>)
call qword ptr [0D270]
mov rdx,[rbp+0FF98]
mov byte ptr [rdx+10],1
mov rsi,offset MT_System.Func`2[[System.Collections.Generic.Dictionary`2[[System.Int64, System.Private.CoreLib],[BenchmarksGame.Wrapper, MicroBenchmarks]], System.Private.CoreLib],[System.String, System.Private.CoreLib]]
mov rcx,rsi
call 0000000000002AE0
mov rdi,rax
lea rcx,[rdi+8]
mov rdx,[rbp+0FF98]
call 0000000000000010
mov r8,offset BenchmarksGame.KNucleotide_9+<>c__DisplayClass18_0.<Bench>b__1(System.Collections.Generic.Dictionary`2<Int64,BenchmarksGame.Wrapper>)
mov [rdi+18],r8
mov r8,rdi
mov ecx,12
mov rdx,7FFFFFFFF
call qword ptr [0B1C8]
mov rdi,rax
mov rcx,rsi
call 0000000000002AE0
mov rbx,rax
lea rcx,[rbx+8]
mov rdx,[rbp+0FF98]
call 0000000000000010
mov r8,offset BenchmarksGame.KNucleotide_9+<>c__DisplayClass18_0.<Bench>b__2(System.Collections.Generic.Dictionary`2<Int64,BenchmarksGame.Wrapper>)
mov [rbx+18],r8
mov r8,rbx
mov ecx,0C
mov edx,7FFFFF
call qword ptr [0B1C8]
mov rbx,rax
mov rcx,rsi
call 0000000000002AE0
mov r14,rax
lea rcx,[r14+8]
mov rdx,[rbp+0FF98]
call 0000000000000010
mov r8,offset BenchmarksGame.KNucleotide_9+<>c__DisplayClass18_0.<Bench>b__3(System.Collections.Generic.Dictionary`2<Int64,BenchmarksGame.Wrapper>)
mov [r14+18],r8
mov r8,r14
mov ecx,6
mov edx,3FF
call qword ptr [0B198]
mov r14,rax
mov rcx,rsi
call 0000000000002AE0
mov r15,rax
lea rcx,[r15+8]
mov rdx,[rbp+0FF98]
call 0000000000000010
mov r8,offset BenchmarksGame.KNucleotide_9+<>c__DisplayClass18_0.<Bench>b__4(System.Collections.Generic.Dictionary`2<Int64,BenchmarksGame.Wrapper>)
mov [r15+18],r8
mov r8,r15
mov ecx,4
mov edx,3F
call qword ptr [0B198]
mov r15,rax
mov rcx,rsi
call 0000000000002AE0
mov r12,rax
lea rcx,[r12+8]
mov rdx,[rbp+0FF98]
call 0000000000000010
mov r8,offset BenchmarksGame.KNucleotide_9+<>c__DisplayClass18_0.<Bench>b__5(System.Collections.Generic.Dictionary`2<Int64,BenchmarksGame.Wrapper>)
mov [r12+18],r8
mov r8,r12
mov ecx,3
mov edx,0F
call qword ptr [0B198]
mov r12,rax
mov rcx,rsi
call 0000000000002AE0
mov r13,rax
lea rcx,[r13+8]
mov rdx,[rbp+0FF98]
call 0000000000000010
mov r8,offset BenchmarksGame.KNucleotide_9+<>c__DisplayClass18_0.<Bench>b__6(System.Collections.Generic.Dictionary`2<Int64,BenchmarksGame.Wrapper>)
mov [r13+18],r8
mov r8,r13
mov ecx,2
mov edx,3
call qword ptr [0B198]
mov r13,rax
mov rcx,rsi
call 0000000000002AE0
mov rsi,rax
lea rcx,[rsi+8]
mov rdx,[rbp+0FF98]
call 0000000000000010
mov r8,offset BenchmarksGame.KNucleotide_9+<>c__DisplayClass18_0.<Bench>b__7(System.Collections.Generic.Dictionary`2<Int64,BenchmarksGame.Wrapper>)
mov [rsi+18],r8
mov r8,rsi
mov ecx,1
xor edx,edx
call qword ptr [0B198]
mov rsi,rax
cmp byte ptr [rbp+18],0
je near ptr 00000000000037C8
call qword ptr [13C0]
mov [rbp+0FF80],rax
mov ecx,[rsi+34]
and ecx,11000000
cmp ecx,1000000
jne near ptr 00000000000038AC
mov rdx,[rsi+38]
mov rcx,rax
mov rax,[rax]
mov rax,[rax+78]
call qword ptr [rax+18]
call qword ptr [13C0]
mov rsi,rax
mov ecx,[r13+34]
and ecx,11000000
cmp ecx,1000000
jne near ptr 00000000000038C6
mov rdx,[r13+38]
mov rcx,rsi
mov rax,[rsi]
mov rax,[rax+78]
call qword ptr [rax+18]
call qword ptr [13C0]
mov rsi,rax
mov ecx,[r12+34]
and ecx,11000000
cmp ecx,1000000
jne near ptr 00000000000038DC
mov rdx,[r12+38]
mov rcx,rsi
mov rax,[rsi]
mov rax,[rax+78]
call qword ptr [rax+18]
call qword ptr [13C0]
mov rsi,rax
mov ecx,[r15+34]
and ecx,11000000
cmp ecx,1000000
jne near ptr 00000000000038F2
mov rdx,[r15+38]
mov rcx,rsi
mov rax,[rsi]
mov rax,[rax+78]
call qword ptr [rax+18]
call qword ptr [13C0]
mov rsi,rax
mov ecx,[r14+34]
and ecx,11000000
cmp ecx,1000000
jne near ptr 0000000000003908
mov rdx,[r14+38]
mov rcx,rsi
mov rax,[rsi]
mov rax,[rax+78]
call qword ptr [rax+18]
call qword ptr [13C0]
mov rsi,rax
mov ecx,[rbx+34]
and ecx,11000000
cmp ecx,1000000
jne near ptr 000000000000391E
mov rdx,[rbx+38]
mov rcx,rsi
mov rax,[rsi]
mov rax,[rax+78]
call qword ptr [rax+18]
call qword ptr [13C0]
mov rsi,rax
mov ecx,[rdi+34]
and ecx,11000000
cmp ecx,1000000
jne near ptr 0000000000003934
mov rdx,[rdi+38]
mov rcx,rsi
mov rax,[rsi]
mov rax,[rax+78]
call qword ptr [rax+18]
jmp near ptr 0000000000003849
mov rcx,offset MT_System.Threading.Tasks.Task[]
mov edx,7
call 0000000000002C60
mov [rbp+0FF88],rax
lea rcx,[rax+10]
mov rdx,rsi
call 0000000000000010
mov rsi,[rbp+0FF88]
lea rcx,[rsi+18]
mov rdx,r13
call 0000000000000010
lea rcx,[rsi+20]
mov rdx,r12
call 0000000000000010
lea rcx,[rsi+28]
mov rdx,r15
call 0000000000000010
lea rcx,[rsi+30]
mov rdx,r14
call 0000000000000010
lea rcx,[rsi+38]
mov rdx,rbx
call 0000000000000010
lea rcx,[rsi+40]
mov rdx,rdi
call 0000000000000010
mov rcx,rsi
xor r8d,r8d
mov edx,0FFFFFFFF
call qword ptr [1060]
mov rdx,[rbp+0FF98]
movzx eax,byte ptr [rdx+10]
add rsp,0B8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov ecx,3C3
mov rdx,7FF7E69E4978
call 000000000000A140
mov rcx,rax
call qword ptr [33F0]
int 3
mov ecx,38B
mov rdx,7FF7E69E4978
call 000000000000A140
mov rcx,rax
call qword ptr [33F0]
int 3
lea rcx,[rbp+0FFA8]
call qword ptr [1720]
int 3
mov rcx,rsi
mov edx,1
call qword ptr [3AB0]
mov rdx,rax
mov rax,[rbp+0FF80]
jmp near ptr 0000000000003696
mov rcx,r13
mov edx,1
call qword ptr [3AB0]
mov rdx,rax
jmp near ptr 00000000000036C6
mov rcx,r12
mov edx,1
call qword ptr [3AB0]
mov rdx,rax
jmp near ptr 00000000000036F8
mov rcx,r15
mov edx,1
call qword ptr [3AB0]
mov rdx,rax
jmp near ptr 0000000000003728
mov rcx,r14
mov edx,1
call qword ptr [3AB0]
mov rdx,rax
jmp near ptr 0000000000003758
mov rcx,rbx
mov edx,1
call qword ptr [3AB0]
mov rdx,rax
jmp near ptr 0000000000003787
mov rcx,rdi
mov edx,1
call qword ptr [3AB0]
mov rdx,rax
jmp near ptr 00000000000037B6
call 000000000000AB50
int 3
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp,68
mov rbp,[rcx+58]
mov [rsp+58],rbp
lea rbp,[rbp+0F0]
mov rcx,[rbp+0FF90]
mov rdx,[rcx+10]
mov [rbp+0FF78],rdx
test rdx,rdx
je short 00000000000039E8
mov rax,offset MT_System.IO.Strategies.SyncWindowsFileStreamStrategy
cmp [rdx],rax
jne short 00000000000039CF
mov rax,[rdx+10]
test rax,rax
je short 00000000000039E8
test byte ptr [rax+10],1
jne short 00000000000039E8
mov rsi,[rdx+10]
mov rax,[rsi+28]
test rax,rax
je short 00000000000039B3
mov byte ptr [rax+10],1
cmp [rsi],sil
mov rcx,rsi
mov edx,1
call qword ptr [93C0]
mov rcx,rsi
call qword ptr [0BAC8]
jmp short 00000000000039E8
mov rcx,rdx
mov edx,1
mov rax,[rbp+0FF78]
mov rax,[rax]
mov rax,[rax+50]
call qword ptr [rax+20]
mov rcx,[rbp+0FF90]
call 0000000000000FB0
nop
add rsp,68
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
; Total bytes of code 2307 DocsProfiling workflow for dotnet/runtime repository
Regressions in PerfLabTests.EnumPerf
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'PerfLabTests.EnumPerf*' PayloadsHistogramPerfLabTests.EnumPerf.ObjectGetType
Description of detection logic
Compare Jit Disasm; PerfLabTests.EnumPerf.ObjectGetType()
sub rsp,28
mov rcx,offset MT_PerfLabTests.Color
call 0000000000005E90
nop
add rsp,28
ret
; Total bytes of code 25 PerfLabTests.EnumPerf.ObjectGetTypeNoBoxing
Description of detection logic
Compare Jit Disasm; PerfLabTests.EnumPerf.ObjectGetTypeNoBoxing()
sub rsp,28
mov rcx,[rcx+8]
call 000000000000CAB0
nop
add rsp,28
ret
; Total bytes of code 19 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in System.IO.Tests.StreamReaderReadToEndTests
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.IO.Tests.StreamReaderReadToEndTests*' PayloadsHistogramSystem.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync(LineLengthRange: [ 1, 1])
Description of detection logic
; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 0000000000004A17
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [9A68]
jmp short 0000000000004A0A
; Total bytes of code 47 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000004C69
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 0000000000004C5F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 Compare Jit Disasm; System.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+58]
call qword ptr [rax+10]
mov rcx,rax
xor edx,edx
mov rax,[rax]
mov rax,[rax+48]
call qword ptr [rax+18]
mov rcx,[rsi+18]
cmp [rcx],ecx
call qword ptr [5210]
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+50]
add rsp,20
pop rsi
jmp qword ptr [rax+10]
; Total bytes of code 69 ; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000065D7
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [9A68]
jmp short 00000000000065CA
; Total bytes of code 47 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000006829
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 000000000000681F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 System.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync(LineLengthRange: [ 1, 8])
Description of detection logic
; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 0000000000004A17
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [9A68]
jmp short 0000000000004A0A
; Total bytes of code 47 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000004C69
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 0000000000004C5F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 Compare Jit Disasm; System.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+58]
call qword ptr [rax+10]
mov rcx,rax
xor edx,edx
mov rax,[rax]
mov rax,[rax+48]
call qword ptr [rax+18]
mov rcx,[rsi+18]
cmp [rcx],ecx
call qword ptr [5210]
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+50]
add rsp,20
pop rsi
jmp qword ptr [rax+10]
; Total bytes of code 69 ; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000065F7
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [9A68]
jmp short 00000000000065EA
; Total bytes of code 47 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000006849
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 000000000000683F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 0, 0])
Description of detection logic
; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 00000000000040D9
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 00000000000040CF
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 Compare Jit Disasm; System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+58]
call qword ptr [rax+10]
mov rcx,rax
xor edx,edx
mov rax,[rax]
mov rax,[rax+48]
call qword ptr [rax+18]
mov rcx,[rsi+18]
cmp [rcx],ecx
call qword ptr [5210]
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+48]
add rsp,20
pop rsi
jmp qword ptr [rax+20]
; Total bytes of code 69 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000005C19
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 0000000000005C0F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 9, 32])
Description of detection logic
; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 00000000000040D9
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 00000000000040CF
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 Compare Jit Disasm; System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+58]
call qword ptr [rax+10]
mov rcx,rax
xor edx,edx
mov rax,[rax]
mov rax,[rax+48]
call qword ptr [rax+18]
mov rcx,[rsi+18]
cmp [rcx],ecx
call qword ptr [5210]
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+48]
add rsp,20
pop rsi
jmp qword ptr [rax+20]
; Total bytes of code 69 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000005BF9
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 0000000000005BEF
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 System.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync(LineLengthRange: [ 0, 0])
Description of detection logic
; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000049F7
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [9A68]
jmp short 00000000000049EA
; Total bytes of code 47 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000004C49
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 0000000000004C3F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 Compare Jit Disasm; System.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+58]
call qword ptr [rax+10]
mov rcx,rax
xor edx,edx
mov rax,[rax]
mov rax,[rax+48]
call qword ptr [rax+18]
mov rcx,[rsi+18]
cmp [rcx],ecx
call qword ptr [5210]
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+50]
add rsp,20
pop rsi
jmp qword ptr [rax+10]
; Total bytes of code 69 ; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000065D7
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [9A68]
jmp short 00000000000065CA
; Total bytes of code 47 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000006829
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 000000000000681F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 System.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync(LineLengthRange: [ 0, 1024])
Description of detection logic
; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 0000000000004A17
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [9A68]
jmp short 0000000000004A0A
; Total bytes of code 47 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000004C69
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 0000000000004C5F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 Compare Jit Disasm; System.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+58]
call qword ptr [rax+10]
mov rcx,rax
xor edx,edx
mov rax,[rax]
mov rax,[rax+48]
call qword ptr [rax+18]
mov rcx,[rsi+18]
cmp [rcx],ecx
call qword ptr [5210]
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+50]
add rsp,20
pop rsi
jmp qword ptr [rax+10]
; Total bytes of code 69 ; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000065D7
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [9A68]
jmp short 00000000000065CA
; Total bytes of code 47 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000006829
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 000000000000681F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 33, 128])
Description of detection logic
; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 00000000000040D9
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 00000000000040CF
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 Compare Jit Disasm; System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+58]
call qword ptr [rax+10]
mov rcx,rax
xor edx,edx
mov rax,[rax]
mov rax,[rax+48]
call qword ptr [rax+18]
mov rcx,[rsi+18]
cmp [rcx],ecx
call qword ptr [5210]
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+48]
add rsp,20
pop rsi
jmp qword ptr [rax+20]
; Total bytes of code 69 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000005C19
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 0000000000005C0F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 1, 1])
Description of detection logic
; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000004999
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 000000000000498F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 Compare Jit Disasm; System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+58]
call qword ptr [rax+10]
mov rcx,rax
xor edx,edx
mov rax,[rax]
mov rax,[rax+48]
call qword ptr [rax+18]
mov rcx,[rsi+18]
cmp [rcx],ecx
call qword ptr [5210]
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+48]
add rsp,20
pop rsi
jmp qword ptr [rax+20]
; Total bytes of code 69 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000005C19
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 0000000000005C0F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 System.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync(LineLengthRange: [ 9, 32])
Description of detection logic
; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 0000000000004A17
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [9A68]
jmp short 0000000000004A0A
; Total bytes of code 47 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000004C69
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 0000000000004C5F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 Compare Jit Disasm; System.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+58]
call qword ptr [rax+10]
mov rcx,rax
xor edx,edx
mov rax,[rax]
mov rax,[rax+48]
call qword ptr [rax+18]
mov rcx,[rsi+18]
cmp [rcx],ecx
call qword ptr [5210]
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+50]
add rsp,20
pop rsi
jmp qword ptr [rax+10]
; Total bytes of code 69 ; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000065D7
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [9A68]
jmp short 00000000000065CA
; Total bytes of code 47 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000006829
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 000000000000681F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd(LineLengthRange: [1025, 2048])
Description of detection logic
; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000004999
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 000000000000498F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 Compare Jit Disasm; System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+58]
call qword ptr [rax+10]
mov rcx,rax
xor edx,edx
mov rax,[rax]
mov rax,[rax+48]
call qword ptr [rax+18]
mov rcx,[rsi+18]
cmp [rcx],ecx
call qword ptr [5210]
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+48]
add rsp,20
pop rsi
jmp qword ptr [rax+20]
; Total bytes of code 69 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000005C19
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 0000000000005C0F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 0, 1024])
Description of detection logic
; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000004999
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 000000000000498F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 Compare Jit Disasm; System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+58]
call qword ptr [rax+10]
mov rcx,rax
xor edx,edx
mov rax,[rax]
mov rax,[rax+48]
call qword ptr [rax+18]
mov rcx,[rsi+18]
cmp [rcx],ecx
call qword ptr [5210]
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+48]
add rsp,20
pop rsi
jmp qword ptr [rax+20]
; Total bytes of code 69 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000005C19
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 0000000000005C0F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 129, 1024])
Description of detection logic
; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000004999
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 000000000000498F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 Compare Jit Disasm; System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+58]
call qword ptr [rax+10]
mov rcx,rax
xor edx,edx
mov rax,[rax]
mov rax,[rax+48]
call qword ptr [rax+18]
mov rcx,[rsi+18]
cmp [rcx],ecx
call qword ptr [5210]
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+48]
add rsp,20
pop rsi
jmp qword ptr [rax+20]
; Total bytes of code 69 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000005BF9
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 0000000000005BEF
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 System.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync(LineLengthRange: [ 129, 1024])
Description of detection logic
; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 0000000000004A17
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [9A68]
jmp short 0000000000004A0A
; Total bytes of code 47 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000004C69
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 0000000000004C5F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 Compare Jit Disasm; System.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+58]
call qword ptr [rax+10]
mov rcx,rax
xor edx,edx
mov rax,[rax]
mov rax,[rax+48]
call qword ptr [rax+18]
mov rcx,[rsi+18]
cmp [rcx],ecx
call qword ptr [5210]
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+50]
add rsp,20
pop rsi
jmp qword ptr [rax+10]
; Total bytes of code 69 ; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000065B7
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [9A68]
jmp short 00000000000065AA
; Total bytes of code 47 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000006809
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 00000000000067FF
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 System.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync(LineLengthRange: [ 33, 128])
Description of detection logic
; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000049F7
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [9A68]
jmp short 00000000000049EA
; Total bytes of code 47 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000004C49
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 0000000000004C3F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 Compare Jit Disasm; System.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+58]
call qword ptr [rax+10]
mov rcx,rax
xor edx,edx
mov rax,[rax]
mov rax,[rax+48]
call qword ptr [rax+18]
mov rcx,[rsi+18]
cmp [rcx],ecx
call qword ptr [5210]
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+50]
add rsp,20
pop rsi
jmp qword ptr [rax+10]
; Total bytes of code 69 ; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000065F7
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [9A68]
jmp short 00000000000065EA
; Total bytes of code 47 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000006849
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 000000000000683F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 System.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync(LineLengthRange: [1025, 2048])
Description of detection logic
; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 0000000000004A17
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [9A68]
jmp short 0000000000004A0A
; Total bytes of code 47 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000004C69
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 0000000000004C5F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 Compare Jit Disasm; System.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+58]
call qword ptr [rax+10]
mov rcx,rax
xor edx,edx
mov rax,[rax]
mov rax,[rax+48]
call qword ptr [rax+18]
mov rcx,[rsi+18]
cmp [rcx],ecx
call qword ptr [5210]
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+50]
add rsp,20
pop rsi
jmp qword ptr [rax+10]
; Total bytes of code 69 ; System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib]].GetAwaiter()
push rax
mov [rsp],rcx
cmp [rcx],ecx
mov rax,rcx
add rsp,8
ret
; Total bytes of code 15 ; System.Runtime.CompilerServices.TaskAwaiter`1[[System.__Canon, System.Private.CoreLib]].GetResult()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi]
mov eax,[rcx+34]
and eax,11000000
cmp eax,1000000
jne short 00000000000065F7
mov rax,[rsi]
mov rax,[rax+38]
add rsp,20
pop rsi
ret
call qword ptr [9A68]
jmp short 00000000000065EA
; Total bytes of code 47 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000006849
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 000000000000683F
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 1, 8])
Description of detection logic
; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 00000000000040D9
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 00000000000040CF
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 Compare Jit Disasm; System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+58]
call qword ptr [rax+10]
mov rcx,rax
xor edx,edx
mov rax,[rax]
mov rax,[rax+48]
call qword ptr [rax+18]
mov rcx,[rsi+18]
cmp [rcx],ecx
call qword ptr [5210]
mov rcx,[rsi+18]
mov rax,[rcx]
mov rax,[rax+48]
add rsp,20
pop rsi
jmp qword ptr [rax+20]
; Total bytes of code 69 ; System.IO.StreamReader.DiscardBufferedData()
push rsi
sub rsp,20
mov rsi,rcx
mov rcx,[rsi+30]
test dword ptr [rcx+34],1600000
je short 0000000000005BF9
xor ecx,ecx
mov [rsi+40],ecx
mov [rsi+3C],ecx
mov [rsi+38],ecx
mov rcx,[rsi+10]
test rcx,rcx
je short 0000000000005BEF
mov rax,[rcx]
mov rax,[rax+68]
call qword ptr [rax+8]
lea rcx,[rsi+18]
mov rdx,rax
call 0000000000000010
mov byte ptr [rsi+4F],0
add rsp,20
pop rsi
ret
call qword ptr [5018]
int 3
; Total bytes of code 80 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in PerfLabTests.CastingPerf
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'PerfLabTests.CastingPerf*' PayloadsHistogramPerfLabTests.CastingPerf.ObjScalarValueType
Description of detection logic
Compare Jit Disasm; PerfLabTests.CastingPerf.ObjScalarValueType()
push rdi
push rsi
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000EE70
mov rdx,23D8D407D60
mov rdx,[rdx]
mov rcx,23D8D407D70
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000EE4E
pop rsi
pop rdi
ret
; Total bytes of code 51 PerfLabTests.CastingPerf.ObjObjrefValueType
Description of detection logic
Compare Jit Disasm; PerfLabTests.CastingPerf.ObjObjrefValueType()
push rdi
push rsi
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000F650
mov rdx,1B7A5407D68
mov rdx,[rdx]
mov rcx,1B7A5407D70
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F62E
pop rsi
pop rdi
ret
; Total bytes of code 51 PerfLabTests.CastingPerf.FooObjIsDescendant
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F63D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F63D
mov r8,1EEA1800D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F647
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F647
cmp esi,[r11]
jne short 000000000000F65B
mov eax,edi
cmp eax,1
jne short 000000000000F665
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F65B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F606
mov eax,2
cmp eax,1
je short 000000000000F63D
call 0000000000007530
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 Compare Jit Disasm; PerfLabTests.CastingPerf.FooObjIsDescendant()
push rdi
push rsi
sub rsp,28
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000F6E7
mov rdx,1F545407D70
mov rdx,[rdx]
mov rcx,offset MT_PerfLabTests.Foo[]
call qword ptr [0B858]
mov rcx,1F545407D80
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F6B2
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 78 ; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F63D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F63D
mov r8,1F545400D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F647
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F647
cmp esi,[r11]
jne short 000000000000F65B
mov eax,edi
cmp eax,1
jne short 000000000000F665
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F65B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F606
mov eax,2
cmp eax,1
je short 000000000000F63D
call 000000000000DCD0
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 PerfLabTests.CastingPerf.CheckArrayIsInterfaceYes
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.IsInstanceOfAny(Void*, System.Object)
push rdi
push rsi
test rdx,rdx
je near ptr 000000000000F7C8
mov rax,[rdx]
cmp rax,rcx
je near ptr 000000000000F7C8
mov r8,1FC41400D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F7A5
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F7A5
cmp esi,[r11]
jne short 000000000000F7B9
mov r8d,edi
cmp r8d,1
je short 000000000000F7C8
jmp short 000000000000F7C1
test esi,esi
je short 000000000000F7B9
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F76A
mov r8d,2
jmp short 000000000000F79D
test r8d,r8d
jne short 000000000000F7CE
xor edx,edx
mov rax,rdx
pop rsi
pop rdi
ret
pop rsi
pop rdi
jmp near ptr 0000000000000580
; Total bytes of code 181 Compare Jit Disasm; PerfLabTests.CastingPerf.CheckArrayIsInterfaceYes()
push rdi
push rsi
sub rsp,28
xor eax,eax
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000F840
mov rdx,204D7007DB0
mov rdx,[rdx]
mov rcx,offset MT_PerfLabTests.IMyInterface1[]
call qword ptr [0B7F8]
test rax,rax
setne al
movzx eax,al
inc esi
cmp esi,edi
jl short 000000000000F814
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 71 ; System.Runtime.CompilerServices.CastHelpers.IsInstanceOfAny(Void*, System.Object)
push rdi
push rsi
test rdx,rdx
je near ptr 000000000000F7C8
mov rax,[rdx]
cmp rax,rcx
je near ptr 000000000000F7C8
mov r8,204D7000D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F7A5
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F7A5
cmp esi,[r11]
jne short 000000000000F7B9
mov r8d,edi
cmp r8d,1
je short 000000000000F7C8
jmp short 000000000000F7C1
test esi,esi
je short 000000000000F7B9
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F76A
mov r8d,2
jmp short 000000000000F79D
test r8d,r8d
jne short 000000000000F7CE
xor edx,edx
mov rax,rdx
pop rsi
pop rdi
ret
pop rsi
pop rdi
jmp near ptr 0000000000008DE0
; Total bytes of code 181 PerfLabTests.CastingPerf.CheckArrayIsArrayByVariance
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.IsInstanceOfAny(Void*, System.Object)
push rdi
push rsi
test rdx,rdx
je near ptr 000000000000F6E8
mov rax,[rdx]
cmp rax,rcx
je near ptr 000000000000F6E8
mov r8,20EF5800D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F6C5
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F6C5
cmp esi,[r11]
jne short 000000000000F6D9
mov r8d,edi
cmp r8d,1
je short 000000000000F6E8
jmp short 000000000000F6E1
test esi,esi
je short 000000000000F6D9
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F68A
mov r8d,2
jmp short 000000000000F6BD
test r8d,r8d
jne short 000000000000F6EE
xor edx,edx
mov rax,rdx
pop rsi
pop rdi
ret
pop rsi
pop rdi
jmp near ptr 0000000000000580
; Total bytes of code 181 Compare Jit Disasm; PerfLabTests.CastingPerf.CheckArrayIsArrayByVariance()
sub rsp,28
mov rdx,2B700007DC0
mov rdx,[rdx]
mov rcx,offset MT_PerfLabTests.IMyInterface2[]
call qword ptr [0B7F8]
test rax,rax
setne al
movzx eax,al
add rsp,28
ret
; Total bytes of code 47 ; System.Runtime.CompilerServices.CastHelpers.IsInstanceOfAny(Void*, System.Object)
push rdi
push rsi
test rdx,rdx
je near ptr 0000000000006408
mov rax,[rdx]
cmp rax,rcx
je near ptr 0000000000006408
mov r8,2B700000D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 00000000000063E5
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 00000000000063E5
cmp esi,[r11]
jne short 00000000000063F9
mov r8d,edi
cmp r8d,1
je short 0000000000006408
jmp short 0000000000006401
test esi,esi
je short 00000000000063F9
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 00000000000063AA
mov r8d,2
jmp short 00000000000063DD
test r8d,r8d
jne short 000000000000640E
xor edx,edx
mov rax,rdx
pop rsi
pop rdi
ret
pop rsi
pop rdi
jmp near ptr 0000000000008DE0
; Total bytes of code 181 PerfLabTests.CastingPerf.FooObjIsFoo
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F63D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F63D
mov r8,2BCC0800D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F647
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F647
cmp esi,[r11]
jne short 000000000000F65B
mov eax,edi
cmp eax,1
jne short 000000000000F665
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F65B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F606
mov eax,2
cmp eax,1
je short 000000000000F63D
call 0000000000007530
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 Compare Jit Disasm; PerfLabTests.CastingPerf.FooObjIsFoo()
push rdi
push rsi
sub rsp,28
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000F6E7
mov rdx,28398007D70
mov rdx,[rdx]
mov rcx,offset MT_PerfLabTests.Foo[]
call qword ptr [0B858]
mov rcx,28398007D80
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F6B2
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 78 ; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F63D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F63D
mov r8,28398000D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F647
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F647
cmp esi,[r11]
jne short 000000000000F65B
mov eax,edi
cmp eax,1
jne short 000000000000F665
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F65B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F606
mov eax,2
cmp eax,1
je short 000000000000F63D
call 000000000000DCD0
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 PerfLabTests.CastingPerf.ObjrefValueTypeObj
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F63D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F63D
mov r8,1B118400D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F647
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F647
cmp esi,[r11]
jne short 000000000000F65B
mov eax,edi
cmp eax,1
jne short 000000000000F665
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F65B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F606
mov eax,2
cmp eax,1
je short 000000000000F63D
call 0000000000007530
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 Compare Jit Disasm; PerfLabTests.CastingPerf.ObjrefValueTypeObj()
push rdi
push rsi
sub rsp,28
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000F6E7
mov rdx,1F1DF007D70
mov rdx,[rdx]
mov rcx,offset MT_PerfLabTests.FooORVT[]
call qword ptr [0B858]
mov rcx,1F1DF007D68
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F6B2
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 78 ; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F63D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F63D
mov r8,1F1DF000D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F647
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F647
cmp esi,[r11]
jne short 000000000000F65B
mov eax,edi
cmp eax,1
jne short 000000000000F665
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F65B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F606
mov eax,2
cmp eax,1
je short 000000000000F63D
call 000000000000DCD0
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 PerfLabTests.CastingPerf.FooObjIsNull
Description of detection logic
Compare Jit Disasm; PerfLabTests.CastingPerf.FooObjIsNull()
push rdi
push rsi
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000F650
mov rdx,139A4407D50
mov rdx,[rdx]
mov rcx,139A4407D70
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F62E
pop rsi
pop rdi
ret
; Total bytes of code 51 PerfLabTests.CastingPerf.IFooFooIsIFoo
Description of detection logic
Compare Jit Disasm; PerfLabTests.CastingPerf.IFooFooIsIFoo()
push rdi
push rsi
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000F670
mov rdx,15A10807D40
mov rdx,[rdx]
mov rcx,15A10807D88
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F64E
pop rsi
pop rdi
ret
; Total bytes of code 51 PerfLabTests.CastingPerf.IFooObjIsDescendantOfIFoo
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F63D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F63D
mov r8,25E7FC00D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F647
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F647
cmp esi,[r11]
jne short 000000000000F65B
mov eax,edi
cmp eax,1
jne short 000000000000F665
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F65B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F606
mov eax,2
cmp eax,1
je short 000000000000F63D
call 0000000000007530
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 Compare Jit Disasm; PerfLabTests.CastingPerf.IFooObjIsDescendantOfIFoo()
push rdi
push rsi
sub rsp,28
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000F6E7
mov rdx,25EBB407D70
mov rdx,[rdx]
mov rcx,offset MT_PerfLabTests.IFoo[]
call qword ptr [0B858]
mov rcx,25EBB407D88
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F6B2
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 78 ; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F63D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F63D
mov r8,25EBB400D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F647
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F647
cmp esi,[r11]
jne short 000000000000F65B
mov eax,edi
cmp eax,1
jne short 000000000000F665
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F65B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F606
mov eax,2
cmp eax,1
je short 000000000000F63D
call 000000000000DCD0
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 PerfLabTests.CastingPerf.FooObjIsFoo2
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F65D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F65D
mov r8,2A1DB400D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F667
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F667
cmp esi,[r11]
jne short 000000000000F67B
mov eax,edi
cmp eax,1
jne short 000000000000F685
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F67B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F626
mov eax,2
cmp eax,1
je short 000000000000F65D
call 0000000000007530
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 Compare Jit Disasm; PerfLabTests.CastingPerf.FooObjIsFoo2()
push rdi
push rsi
sub rsp,28
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000F707
mov rdx,21E64807D78
mov rdx,[rdx]
mov rcx,offset MT_PerfLabTests.Foo[]
call qword ptr [0B858]
mov rcx,21E64807D80
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F6D2
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 78 ; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F65D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F65D
mov r8,21E64800D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F667
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F667
cmp esi,[r11]
jne short 000000000000F67B
mov eax,edi
cmp eax,1
jne short 000000000000F685
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F67B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F626
mov eax,2
cmp eax,1
je short 000000000000F65D
call 000000000000DCD0
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 PerfLabTests.CastingPerf.ScalarValueTypeObj
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F63D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F63D
mov r8,223CD800D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F647
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F647
cmp esi,[r11]
jne short 000000000000F65B
mov eax,edi
cmp eax,1
jne short 000000000000F665
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F65B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F606
mov eax,2
cmp eax,1
je short 000000000000F63D
call 0000000000007530
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 Compare Jit Disasm; PerfLabTests.CastingPerf.ScalarValueTypeObj()
push rdi
push rsi
sub rsp,28
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000F6E7
mov rdx,2156B007D70
mov rdx,[rdx]
mov rcx,offset MT_PerfLabTests.FooSVT[]
call qword ptr [0B858]
mov rcx,2156B007D60
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F6B2
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 78 ; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F63D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F63D
mov r8,2156B000D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F647
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F647
cmp esi,[r11]
jne short 000000000000F65B
mov eax,edi
cmp eax,1
jne short 000000000000F665
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F65B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F606
mov eax,2
cmp eax,1
je short 000000000000F63D
call 000000000000DCD0
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 PerfLabTests.CastingPerf.CheckArrayIsNonvariantGenericInterfaceNo
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.IsInstanceOfInterface(Void*, System.Object)
test rdx,rdx
je short 000000000000F6A1
mov rax,[rdx]
movzx r8d,word ptr [rax+0E]
test r8,r8
je short 000000000000F697
mov r9,[rax+38]
cmp r8,4
jl short 000000000000F686
cmp [r9],rcx
je short 000000000000F6A1
cmp [r9+8],rcx
je short 000000000000F6A1
cmp [r9+10],rcx
je short 000000000000F6A1
cmp [r9+18],rcx
je short 000000000000F6A1
add r9,20
add r8,0FFFFFFFFFFFFFFFC
cmp r8,4
jge short 000000000000F65C
test r8,r8
je short 000000000000F697
cmp [r9],rcx
je short 000000000000F6A1
add r9,8
dec r8
test r8,r8
jg short 000000000000F686
test dword ptr [rax],406C0000
jne short 000000000000F6A5
xor edx,edx
mov rax,rdx
ret
jmp qword ptr [0B840]
; Total bytes of code 107 Compare Jit Disasm; PerfLabTests.CastingPerf.CheckArrayIsNonvariantGenericInterfaceNo()
sub rsp,28
mov rdx,221DB407DC0
mov rdx,[rdx]
mov rcx,offset MT_System.Collections.Generic.ICollection`1[[System.Exception, System.Private.CoreLib]]
call qword ptr [0B810]
test rax,rax
setne al
movzx eax,al
add rsp,28
ret
; Total bytes of code 47 ; System.Runtime.CompilerServices.CastHelpers.IsInstanceOfInterface(Void*, System.Object)
test rdx,rdx
je short 000000000000F6A1
mov rax,[rdx]
movzx r8d,word ptr [rax+0E]
test r8,r8
je short 000000000000F697
mov r9,[rax+38]
cmp r8,4
jl short 000000000000F686
cmp [r9],rcx
je short 000000000000F6A1
cmp [r9+8],rcx
je short 000000000000F6A1
cmp [r9+10],rcx
je short 000000000000F6A1
cmp [r9+18],rcx
je short 000000000000F6A1
add r9,20
add r8,0FFFFFFFFFFFFFFFC
cmp r8,4
jge short 000000000000F65C
test r8,r8
je short 000000000000F697
cmp [r9],rcx
je short 000000000000F6A1
add r9,8
dec r8
test r8,r8
jg short 000000000000F686
test dword ptr [rax],406C0000
jne short 000000000000F6A5
xor edx,edx
mov rax,rdx
ret
jmp qword ptr [0B840]
; Total bytes of code 107 PerfLabTests.CastingPerf.ObjObjIsFoo
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F63D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F63D
mov r8,14EEE000D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F647
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F647
cmp esi,[r11]
jne short 000000000000F65B
mov eax,edi
cmp eax,1
jne short 000000000000F665
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F65B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F606
mov eax,2
cmp eax,1
je short 000000000000F63D
call 0000000000007530
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 Compare Jit Disasm; PerfLabTests.CastingPerf.ObjObjIsFoo()
push rdi
push rsi
sub rsp,28
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000EE27
mov rdx,167E8407D70
mov rdx,[rdx]
mov rcx,offset MT_System.Object[]
call qword ptr [0B858]
mov rcx,167E8407D78
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000EDF2
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 78 ; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000FEBD
mov rax,[rdx]
cmp rax,rcx
je short 000000000000FEBD
mov r8,167E8400D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000FEC7
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000FEC7
cmp esi,[r11]
jne short 000000000000FEDB
mov eax,edi
cmp eax,1
jne short 000000000000FEE5
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000FEDB
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000FE86
mov eax,2
cmp eax,1
je short 000000000000FEBD
call 000000000000DCD0
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 PerfLabTests.CastingPerf.ObjInt
Description of detection logic
Compare Jit Disasm; PerfLabTests.CastingPerf.ObjInt()
push rdi
push rsi
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000F650
mov rdx,1E528807D30
mov rdx,[rdx]
mov rcx,1E528807D70
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F62E
pop rsi
pop rdi
ret
; Total bytes of code 51 PerfLabTests.CastingPerf.IntObj
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F63D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F63D
mov r8,1C2FE000D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F647
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F647
cmp esi,[r11]
jne short 000000000000F65B
mov eax,edi
cmp eax,1
jne short 000000000000F665
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F65B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F606
mov eax,2
cmp eax,1
je short 000000000000F63D
call 0000000000007530
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 Compare Jit Disasm; PerfLabTests.CastingPerf.IntObj()
push rdi
push rsi
sub rsp,28
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000F6E7
mov rdx,1DCA3C07D70
mov rdx,[rdx]
mov rcx,offset MT_System.Int32[]
call qword ptr [0B858]
mov rcx,1DCA3C07D38
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F6B2
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 78 ; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F63D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F63D
mov r8,1DCA3C00D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F647
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F647
cmp esi,[r11]
jne short 000000000000F65B
mov eax,edi
cmp eax,1
jne short 000000000000F665
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F65B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F606
mov eax,2
cmp eax,1
je short 000000000000F63D
call 000000000000DCD0
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 PerfLabTests.CastingPerf.FooObjCastIfIsa
Description of detection logic
; System.Runtime.CompilerServices.CastHelpers.IsInstanceOfAny(Void*, System.Object)
push rdi
push rsi
test rdx,rdx
je near ptr 000000000000F788
mov rax,[rdx]
cmp rax,rcx
je near ptr 000000000000F788
mov r8,1C3B3000D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F765
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F765
cmp esi,[r11]
jne short 000000000000F779
mov r8d,edi
cmp r8d,1
je short 000000000000F788
jmp short 000000000000F781
test esi,esi
je short 000000000000F779
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F72A
mov r8d,2
jmp short 000000000000F75D
test r8d,r8d
jne short 000000000000F78E
xor edx,edx
mov rax,rdx
pop rsi
pop rdi
ret
pop rsi
pop rdi
jmp near ptr 0000000000000580
; Total bytes of code 181 ; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F67D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F67D
mov r8,1C3B3000D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F687
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F687
cmp esi,[r11]
jne short 000000000000F69B
mov eax,edi
cmp eax,1
jne short 000000000000F6A5
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F69B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F646
mov eax,2
cmp eax,1
je short 000000000000F67D
call 0000000000007530
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 Compare Jit Disasm; PerfLabTests.CastingPerf.FooObjCastIfIsa()
push rdi
push rsi
push rbx
sub rsp,20
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000F823
mov rdx,27F46007D70
mov rbx,[rdx]
mov rdx,rbx
mov rcx,offset MT_PerfLabTests.Foo[]
call qword ptr [0B7F8]
test rax,rax
je short 000000000000F81D
mov rdx,rbx
mov rcx,offset MT_PerfLabTests.Foo[]
call qword ptr [0B858]
mov rcx,27F46007D80
mov rdx,rax
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F7D3
add rsp,20
pop rbx
pop rsi
pop rdi
ret
; Total bytes of code 107 ; System.Runtime.CompilerServices.CastHelpers.IsInstanceOfAny(Void*, System.Object)
push rdi
push rsi
test rdx,rdx
je near ptr 000000000000F788
mov rax,[rdx]
cmp rax,rcx
je near ptr 000000000000F788
mov r8,27F46000D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F765
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F765
cmp esi,[r11]
jne short 000000000000F779
mov r8d,edi
cmp r8d,1
je short 000000000000F788
jmp short 000000000000F781
test esi,esi
je short 000000000000F779
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F72A
mov r8d,2
jmp short 000000000000F75D
test r8d,r8d
jne short 000000000000F78E
xor edx,edx
mov rax,rdx
pop rsi
pop rdi
ret
pop rsi
pop rdi
jmp near ptr 0000000000008DE0
; Total bytes of code 181 ; System.Runtime.CompilerServices.CastHelpers.ChkCastAny(Void*, System.Object)
push rdi
push rsi
sub rsp,28
test rdx,rdx
je short 000000000000F67D
mov rax,[rdx]
cmp rax,rcx
je short 000000000000F67D
mov r8,27F46000D10
mov r8,[r8]
add r8,10
rorx r9,rax,20
xor r9,rcx
mov r10,79B97F4A7C15
imul r9,r10
mov r10d,[r8]
shrx r9,r9,r10
xor r10d,r10d
lea r11d,[r9+1]
movsxd r11,r11d
lea r11,[r11+r11*2]
lea r11,[r8+r11*8]
mov esi,[r11]
mov rdi,[r11+8]
and esi,0FFFFFFFE
cmp rdi,rax
jne short 000000000000F687
mov rdi,[r11+10]
xor rdi,rcx
cmp rdi,1
ja short 000000000000F687
cmp esi,[r11]
jne short 000000000000F69B
mov eax,edi
cmp eax,1
jne short 000000000000F6A5
mov rax,rdx
add rsp,28
pop rsi
pop rdi
ret
test esi,esi
je short 000000000000F69B
inc r10d
add r9d,r10d
and r9d,[r8+4]
cmp r10d,8
jl short 000000000000F646
mov eax,2
cmp eax,1
je short 000000000000F67D
call 000000000000DCD0
nop
add rsp,28
pop rsi
pop rdi
ret
; Total bytes of code 178 PerfLabTests.CastingPerf.ObjFooIsObj
Description of detection logic
Compare Jit Disasm; PerfLabTests.CastingPerf.ObjFooIsObj()
push rdi
push rsi
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000F650
mov rdx,1A259C07D40
mov rdx,[rdx]
mov rcx,1A259C07D70
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F62E
pop rsi
pop rdi
ret
; Total bytes of code 51 PerfLabTests.CastingPerf.ObjFooIsObj2
Description of detection logic
Compare Jit Disasm; PerfLabTests.CastingPerf.ObjFooIsObj2()
push rdi
push rsi
xor esi,esi
mov edi,[0BE50]
test edi,edi
jle short 000000000000F670
mov rdx,1EB43807D40
mov rdx,[rdx]
mov rcx,1EB43807D78
call 0000000000000010
inc esi
cmp esi,edi
jl short 000000000000F64E
pop rsi
pop rdi
ret
; Total bytes of code 51 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in PerfLabTests.LowLevelPerf
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'PerfLabTests.LowLevelPerf*' PayloadsHistogramPerfLabTests.LowLevelPerf.GenericClassWithSTringGenericInstanceMethod
Description of detection logic
Compare Jit Disasm; PerfLabTests.LowLevelPerf.GenericClassWithSTringGenericInstanceMethod()
push rdi
push rsi
push rbp
push rbx
mov rdx,19D9C407E20
mov rsi,[rdx]
mov rdx,19D9C407E00
mov rdi,[rdx]
xor ebx,ebx
mov ebp,[0BE60]
test ebp,ebp
jle short 000000000000F1BC
lea rcx,[rsi+8]
mov rdx,rdi
call 0000000000000010
inc ebx
cmp ebx,ebp
jl short 000000000000F1AA
pop rbx
pop rbp
pop rsi
pop rdi
ret
; Total bytes of code 65 DocsProfiling workflow for dotnet/runtime repository
Regressions in System.Xml.Linq.Perf_XName
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Xml.Linq.Perf_XName*' PayloadsHistogramSystem.Xml.Linq.Perf_XName.NonEmptyNameSpaceToString
Description of detection logic
; System.Xml.Linq.XName.ToString()
mov rax,[rcx+8]
mov rdx,[rax+8]
cmp dword ptr [rdx+8],0
jne short 0000000000000A93
mov rax,[rcx+10]
ret
mov r9,[rcx+10]
mov r8,271B7C020E0
mov r8,[r8]
mov rcx,271B7C058C0
mov rcx,[rcx]
jmp qword ptr [1C90]
; Total bytes of code 55 Compare Jit Disasm; System.Xml.Linq.Perf_XName.NonEmptyNameSpaceToString()
mov rcx,[rcx+10]
cmp [rcx],ecx
jmp qword ptr [1F28]
; Total bytes of code 12 ; System.Xml.Linq.XName.ToString()
mov rax,[rcx+8]
mov rdx,[rax+8]
cmp dword ptr [rdx+8],0
jne short 0000000000000A93
mov rax,[rcx+10]
ret
mov r9,[rcx+10]
mov r8,184850020E0
mov r8,[r8]
mov rcx,184850058B0
mov rcx,[rcx]
jmp qword ptr [1C90]
; Total bytes of code 55 System.Xml.Linq.Perf_XName.EmptyNameSpaceToString
Description of detection logic
; System.Xml.Linq.XName.ToString()
mov rax,[rcx+8]
mov rdx,[rax+8]
cmp dword ptr [rdx+8],0
jne short 0000000000000683
mov rax,[rcx+10]
ret
mov r9,[rcx+10]
mov r8,24C3A0020E0
mov r8,[r8]
mov rcx,24C3A0058B8
mov rcx,[rcx]
jmp qword ptr [1C90]
; Total bytes of code 55 Compare Jit Disasm; System.Xml.Linq.Perf_XName.EmptyNameSpaceToString()
mov rcx,[rcx+8]
cmp [rcx],ecx
jmp qword ptr [1F28]
; Total bytes of code 12 ; System.Xml.Linq.XName.ToString()
mov rax,[rcx+8]
mov rdx,[rax+8]
cmp dword ptr [rdx+8],0
jne short 0000000000000683
mov rax,[rcx+10]
ret
mov r9,[rcx+10]
mov r8,17065C020E0
mov r8,[r8]
mov rcx,17065C058A8
mov rcx,[rcx]
jmp qword ptr [1C90]
; Total bytes of code 55 DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in Microsoft.Extensions.Primitives.Performance.StringValuesBenchmark
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'Microsoft.Extensions.Primitives.Performance.StringValuesBenchmark*' PayloadsHistogramMicrosoft.Extensions.Primitives.Performance.StringValuesBenchmark.Indexer_FirstElement_String
Description of detection logic
Compare Jit Disasm; Microsoft.Extensions.Primitives.Performance.StringValuesBenchmark.Indexer_FirstElement_String()
sub rsp,28
mov rax,[rcx+18]
mov rdx,rax
test rdx,rdx
je short 000000000000F591
mov rcx,offset MT_System.String
cmp [rdx],rcx
je short 000000000000F591
xor edx,edx
test rdx,rdx
je short 000000000000F598
jmp short 000000000000F5A7
test rax,rax
je short 000000000000F5AF
cmp dword ptr [rax+8],0
jbe short 000000000000F5B9
mov rdx,[rax+10]
mov rax,rdx
add rsp,28
ret
add rsp,28
jmp qword ptr [0B2A0]
call 000000000000AB50
int 3
; Total bytes of code 79 Microsoft.Extensions.Primitives.Performance.StringValuesBenchmark.Indexer_FirstElement_Array
Description of detection logic
Compare Jit Disasm; Microsoft.Extensions.Primitives.Performance.StringValuesBenchmark.Indexer_FirstElement_Array()
sub rsp,28
mov rax,[rcx+20]
mov rdx,rax
test rdx,rdx
je short 000000000000F591
mov rcx,offset MT_System.String
cmp [rdx],rcx
je short 000000000000F591
xor edx,edx
test rdx,rdx
je short 000000000000F598
jmp short 000000000000F5A7
test rax,rax
je short 000000000000F5AF
cmp dword ptr [rax+8],0
jbe short 000000000000F5B9
mov rdx,[rax+10]
mov rax,rdx
add rsp,28
ret
add rsp,28
jmp qword ptr [0B2A0]
call 000000000000AB50
int 3
; Total bytes of code 79 DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Tests.Perf_Boolean
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_Boolean*' PayloadsHistogramSystem.Tests.Perf_Boolean.ToString(value: False)
Description of detection logic
Compare Jit Disasm; System.Tests.Perf_Boolean.ToString(Boolean)
mov [rsp+10],edx
cmp byte ptr [rsp+10],0
je short 000000000000F379
mov rax,1AA23805898
mov rax,[rax]
ret
mov rax,1AA23805890
mov rax,[rax]
jmp short 000000000000F378
; Total bytes of code 40 DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Tests.Perf_Byte
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_Byte*' PayloadsHistogramSystem.Tests.Perf_Byte.ToString(value: 0)
Description of detection logic
; System.Number.UInt32ToDecStr(UInt32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
mov eax,esi
mov ecx,1
cmp eax,186A0
jae near ptr 000000000000F43D
cmp eax,0A
jae short 000000000000F3B1
mov edi,ecx
cmp edi,1
jne short 000000000000F3BA
mov rax,1658BC002C8
mov rax,[rax]
cmp esi,[rax+8]
jae near ptr 000000000000F45E
mov ecx,esi
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp eax,64
jae short 000000000000F417
inc ecx
jmp short 000000000000F386
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F457
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F3DF
xor edx,edx
mov [rsp+20],rdx
add rsp,28
pop rsi
pop rdi
ret
cmp eax,3E8
jae short 000000000000F426
add ecx,2
jmp near ptr 000000000000F386
cmp eax,2710
jae short 000000000000F435
add ecx,3
jmp near ptr 000000000000F386
add ecx,4
jmp near ptr 000000000000F386
mov eax,esi
shr eax,5
imul rax,0A7C5AC5
shr rax,27
mov ecx,6
jmp near ptr 000000000000F381
xor edx,edx
jmp near ptr 000000000000F3D8
call 0000000000006930
int 3
; Total bytes of code 260 Compare Jit Disasm; System.Tests.Perf_Byte.ToString(Byte)
sub rsp,28
movzx ecx,dl
call qword ptr [93F0]
nop
add rsp,28
ret
; Total bytes of code 19 ; System.Number.UInt32ToDecStr(UInt32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
mov eax,esi
mov ecx,1
cmp eax,186A0
jae near ptr 000000000000F43D
cmp eax,0A
jae short 000000000000F3B1
mov edi,ecx
cmp edi,1
jne short 000000000000F3BA
mov rax,27AF70002C8
mov rax,[rax]
cmp esi,[rax+8]
jae near ptr 000000000000F45E
mov ecx,esi
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp eax,64
jae short 000000000000F417
inc ecx
jmp short 000000000000F386
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F457
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F3DF
xor edx,edx
mov [rsp+20],rdx
add rsp,28
pop rsi
pop rdi
ret
cmp eax,3E8
jae short 000000000000F426
add ecx,2
jmp near ptr 000000000000F386
cmp eax,2710
jae short 000000000000F435
add ecx,3
jmp near ptr 000000000000F386
add ecx,4
jmp near ptr 000000000000F386
mov eax,esi
shr eax,5
imul rax,0A7C5AC5
shr rax,27
mov ecx,6
jmp near ptr 000000000000F381
xor edx,edx
jmp near ptr 000000000000F3D8
call 000000000000AB50
int 3
; Total bytes of code 260 System.Tests.Perf_Byte.ToString(value: 255)
Description of detection logic
; System.Number.UInt32ToDecStr(UInt32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
mov eax,esi
mov ecx,1
cmp eax,186A0
jae near ptr 000000000000F43D
cmp eax,0A
jae short 000000000000F3B1
mov edi,ecx
cmp edi,1
jne short 000000000000F3BA
mov rax,281B7C002C8
mov rax,[rax]
cmp esi,[rax+8]
jae near ptr 000000000000F45E
mov ecx,esi
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp eax,64
jae short 000000000000F417
inc ecx
jmp short 000000000000F386
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F457
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F3DF
xor edx,edx
mov [rsp+20],rdx
add rsp,28
pop rsi
pop rdi
ret
cmp eax,3E8
jae short 000000000000F426
add ecx,2
jmp near ptr 000000000000F386
cmp eax,2710
jae short 000000000000F435
add ecx,3
jmp near ptr 000000000000F386
add ecx,4
jmp near ptr 000000000000F386
mov eax,esi
shr eax,5
imul rax,0A7C5AC5
shr rax,27
mov ecx,6
jmp near ptr 000000000000F381
xor edx,edx
jmp near ptr 000000000000F3D8
call 0000000000006930
int 3
; Total bytes of code 260 Compare Jit Disasm; System.Tests.Perf_Byte.ToString(Byte)
sub rsp,28
movzx ecx,dl
call qword ptr [93F0]
nop
add rsp,28
ret
; Total bytes of code 19 ; System.Number.UInt32ToDecStr(UInt32)
push rdi
push rsi
sub rsp,28
xor eax,eax
mov [rsp+20],rax
mov esi,ecx
mov eax,esi
mov ecx,1
cmp eax,186A0
jae near ptr 000000000000F43D
cmp eax,0A
jae short 000000000000F3B1
mov edi,ecx
cmp edi,1
jne short 000000000000F3BA
mov rax,1B9C94002C8
mov rax,[rax]
cmp esi,[rax+8]
jae near ptr 000000000000F45E
mov ecx,esi
mov rax,[rax+rcx*8+10]
add rsp,28
pop rsi
pop rdi
ret
cmp eax,64
jae short 000000000000F417
inc ecx
jmp short 000000000000F386
mov ecx,edi
call 0
test rax,rax
je near ptr 000000000000F457
lea rdx,[rax+0C]
mov [rsp+20],rdx
mov rdx,[rsp+20]
movsxd rcx,edi
lea rdx,[rdx+rcx*2]
mov ecx,0CCCCCCCD
mov r8d,esi
imul rcx,r8
shr rcx,23
lea r8d,[rcx+rcx*4]
add r8d,r8d
sub esi,r8d
add rdx,0FFFFFFFFFFFFFFFE
add esi,30
mov [rdx],si
test ecx,ecx
mov esi,ecx
jne short 000000000000F3DF
xor edx,edx
mov [rsp+20],rdx
add rsp,28
pop rsi
pop rdi
ret
cmp eax,3E8
jae short 000000000000F426
add ecx,2
jmp near ptr 000000000000F386
cmp eax,2710
jae short 000000000000F435
add ecx,3
jmp near ptr 000000000000F386
add ecx,4
jmp near ptr 000000000000F386
mov eax,esi
shr eax,5
imul rax,0A7C5AC5
shr rax,27
mov ecx,6
jmp near ptr 000000000000F381
xor edx,edx
jmp near ptr 000000000000F3D8
call 000000000000AB50
int 3
; Total bytes of code 260 DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in Benchstone.MDBenchI.MDNDhrystone
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'Benchstone.MDBenchI.MDNDhrystone*' PayloadsHistogramBenchstone.MDBenchI.MDNDhrystone.Test
Description of detection logic
Compare Jit Disasm; BenchmarkDotNet.Autogenerated.Runnable_0.__ForDisassemblyDiagnoser__()
push rbp
sub rsp,20
lea rbp,[rsp+20]
mov [rbp+10],rcx
mov rcx,[rbp+10]
cmp dword ptr [rcx+40],0B
jne short 0000000000005AE9
mov rcx,[rbp+10]
call qword ptr [0B240]
nop
add rsp,20
pop rbp
ret
xor eax,eax
add rsp,20
pop rbp
ret
; Total bytes of code 49 DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in System.Tests.Perf_String
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_String*' PayloadsHistogramSystem.Tests.Perf_String.Replace_String(text: "This is a very nice sentence", oldValue: "bad", newValue: "nice")
Description of detection logic
; System.String.Replace(System.String, System.String)
push rbp
push r15
push r14
push rdi
push rsi
push rbx
sub rsp,58
lea rbp,[rsp+20]
xor eax,eax
mov [rbp+8],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp+10],xmm4
vmovdqa xmmword ptr [rbp+20],xmm4
mov [rbp+30],rax
mov rax,0BC07955ABE5F
mov [rbp],rax
mov rsi,rcx
mov rdi,rdx
mov rbx,r8
test rdi,rdi
je near ptr 000000000000F73B
mov r14d,[rdi+8]
test r14d,r14d
je near ptr 000000000000F73B
test rbx,rbx
jne short 000000000000F568
mov rdx,266ECC02028
mov rbx,[rdx]
test [rsp],esp
sub rsp,200
lea rdx,[rsp+20]
mov [rbp+28],rdx
mov dword ptr [rbp+30],80
xor edx,edx
mov [rbp+18],rdx
mov [rbp+20],edx
cmp r14d,1
jne near ptr 000000000000F629
cmp dword ptr [rbx+8],1
jne short 000000000000F5D0
movzx edx,word ptr [rdi+0C]
movzx r8d,word ptr [rbx+0C]
mov rcx,rsi
call qword ptr [30C0]
mov rcx,0BC07955ABE5F
cmp [rbp],rcx
je short 000000000000F5C2
call 00000000000081F0
nop
lea rsp,[rbp+38]
pop rbx
pop rsi
pop rdi
pop r14
pop r15
pop rbp
ret
movzx edi,word ptr [rdi+0C]
xor r15d,r15d
movsxd rcx,r15d
lea rcx,[rsi+rcx*2+0C]
mov r8d,[rsi+8]
sub r8d,r15d
mov edx,edi
call qword ptr [0F408]
test eax,eax
jl near ptr 000000000000F67E
add r15d,eax
mov edx,r15d
mov ecx,[rbp+20]
mov rax,[rbp+28]
mov r8d,[rbp+30]
cmp ecx,r8d
jae short 000000000000F61A
mov r8d,ecx
mov [rax+r8*4],edx
inc ecx
mov [rbp+20],ecx
jmp short 000000000000F624
lea rcx,[rbp+18]
call qword ptr [5B58]
inc r15d
jmp short 000000000000F5D7
xor r15d,r15d
movsxd rcx,r15d
lea rcx,[rsi+rcx*2+0C]
mov edx,[rsi+8]
sub edx,r15d
lea r8,[rdi+0C]
mov r9d,r14d
call qword ptr [0F3A8]
test eax,eax
jl short 000000000000F67E
add r15d,eax
mov edx,r15d
mov ecx,[rbp+20]
mov rax,[rbp+28]
mov r8d,[rbp+30]
cmp ecx,r8d
jae short 000000000000F66F
mov r8d,ecx
mov [rax+r8*4],edx
inc ecx
mov [rbp+20],ecx
jmp short 000000000000F679
lea rcx,[rbp+18]
call qword ptr [5B58]
add r15d,r14d
jmp short 000000000000F62C
cmp dword ptr [rbp+20],0
jne short 000000000000F6AA
mov rax,rsi
mov rcx,0BC07955ABE5F
cmp [rbp],rcx
je short 000000000000F69C
call 00000000000081F0
nop
lea rsp,[rbp+38]
pop rbx
pop rsi
pop rdi
pop r14
pop r15
pop rbp
ret
mov edx,r14d
mov ecx,[rbp+20]
cmp ecx,[rbp+30]
ja near ptr 000000000000F75C
mov r8,[rbp+28]
mov [rbp+8],r8
mov [rbp+10],ecx
mov rcx,rsi
mov r8,rbx
lea r9,[rbp+8]
call qword ptr [30F0]
mov rdi,rax
mov rsi,[rbp+18]
test rsi,rsi
je short 000000000000F715
xor ecx,ecx
mov [rbp+18],rcx
mov rcx,7FFB43F24BE0
mov edx,2F
call 00000000000019F0
mov rcx,266ECC09578
mov rcx,[rcx]
mov rdx,rsi
xor r8d,r8d
cmp [rcx],ecx
call qword ptr [0B4D0]
mov rax,rdi
mov rcx,0BC07955ABE5F
cmp [rbp],rcx
je short 000000000000F72D
call 00000000000081F0
nop
lea rsp,[rbp+38]
pop rbx
pop rsi
pop rdi
pop r14
pop r15
pop rbp
ret
mov ecx,16AF
mov rdx,7FFB43E04000
call 00000000000014A0
mov rdx,rax
mov rcx,rdi
call qword ptr [0BC78]
int 3
call qword ptr [0B498]
int 3
; Total bytes of code 611 Compare Jit Disasm; System.Tests.Perf_String.Replace_String(System.String, System.String, System.String)
mov rcx,rdx
mov rdx,r8
mov r8,r9
cmp [rcx],ecx
jmp qword ptr [30D8]
; Total bytes of code 17 ; System.String.Replace(System.String, System.String)
push rbp
push r15
push r14
push rdi
push rsi
push rbx
sub rsp,58
lea rbp,[rsp+20]
xor eax,eax
mov [rbp+8],rax
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rbp+10],xmm4
vmovdqa xmmword ptr [rbp+20],xmm4
mov [rbp+30],rax
mov rax,4F76AB8632A0
mov [rbp],rax
mov rsi,rcx
mov rdi,rdx
mov rbx,r8
test rdi,rdi
je near ptr 000000000000F73B
mov r14d,[rdi+8]
test r14d,r14d
je near ptr 000000000000F73B
test rbx,rbx
jne short 000000000000F568
mov rdx,1892DC02028
mov rbx,[rdx]
test [rsp],esp
sub rsp,200
lea rdx,[rsp+20]
mov [rbp+28],rdx
mov dword ptr [rbp+30],80
xor edx,edx
mov [rbp+18],rdx
mov [rbp+20],edx
cmp r14d,1
jne near ptr 000000000000F629
cmp dword ptr [rbx+8],1
jne short 000000000000F5D0
movzx edx,word ptr [rdi+0C]
movzx r8d,word ptr [rbx+0C]
mov rcx,rsi
call qword ptr [30C0]
mov rcx,4F76AB8632A0
cmp [rbp],rcx
je short 000000000000F5C2
call 000000000000C410
nop
lea rsp,[rbp+38]
pop rbx
pop rsi
pop rdi
pop r14
pop r15
pop rbp
ret
movzx edi,word ptr [rdi+0C]
xor r15d,r15d
movsxd rcx,r15d
lea rcx,[rsi+rcx*2+0C]
mov r8d,[rsi+8]
sub r8d,r15d
mov edx,edi
call qword ptr [0F408]
test eax,eax
jl near ptr 000000000000F67E
add r15d,eax
mov edx,r15d
mov ecx,[rbp+20]
mov rax,[rbp+28]
mov r8d,[rbp+30]
cmp ecx,r8d
jae short 000000000000F61A
mov r8d,ecx
mov [rax+r8*4],edx
inc ecx
mov [rbp+20],ecx
jmp short 000000000000F624
lea rcx,[rbp+18]
call qword ptr [5B58]
inc r15d
jmp short 000000000000F5D7
xor r15d,r15d
movsxd rcx,r15d
lea rcx,[rsi+rcx*2+0C]
mov edx,[rsi+8]
sub edx,r15d
lea r8,[rdi+0C]
mov r9d,r14d
call qword ptr [0F3A8]
test eax,eax
jl short 000000000000F67E
add r15d,eax
mov edx,r15d
mov ecx,[rbp+20]
mov rax,[rbp+28]
mov r8d,[rbp+30]
cmp ecx,r8d
jae short 000000000000F66F
mov r8d,ecx
mov [rax+r8*4],edx
inc ecx
mov [rbp+20],ecx
jmp short 000000000000F679
lea rcx,[rbp+18]
call qword ptr [5B58]
add r15d,r14d
jmp short 000000000000F62C
cmp dword ptr [rbp+20],0
jne short 000000000000F6AA
mov rax,rsi
mov rcx,4F76AB8632A0
cmp [rbp],rcx
je short 000000000000F69C
call 000000000000C410
nop
lea rsp,[rbp+38]
pop rbx
pop rsi
pop rdi
pop r14
pop r15
pop rbp
ret
mov edx,r14d
mov ecx,[rbp+20]
cmp ecx,[rbp+30]
ja near ptr 000000000000F75C
mov r8,[rbp+28]
mov [rbp+8],r8
mov [rbp+10],ecx
mov rcx,rsi
mov r8,rbx
lea r9,[rbp+8]
call qword ptr [30F0]
mov rdi,rax
mov rsi,[rbp+18]
test rsi,rsi
je short 000000000000F715
xor ecx,ecx
mov [rbp+18],rcx
mov rcx,7FFC6C7D4BF0
mov edx,2F
call 0000000000001230
mov rcx,1892DC09578
mov rcx,[rcx]
mov rdx,rsi
xor r8d,r8d
cmp [rcx],ecx
call qword ptr [0B5D8]
mov rax,rdi
mov rcx,4F76AB8632A0
cmp [rbp],rcx
je short 000000000000F72D
call 000000000000C410
nop
lea rsp,[rbp+38]
pop rbx
pop rsi
pop rdi
pop r14
pop r15
pop rbp
ret
mov ecx,16AF
mov rdx,7FFC6C6B4000
call 000000000000A140
mov rdx,rax
mov rcx,rdi
call qword ptr [0BC78]
int 3
call qword ptr [0B498]
int 3
; Total bytes of code 611 System.Tests.Perf_String.TrimEnd_CharArr(s: "Test", c: [' ', ' '])
Description of detection logic
; System.String.TrimEnd(Char[])
sub rsp,28
xor eax,eax
mov [rsp+20],rax
test rdx,rdx
je short 000000000000F4D9
mov r8d,[rdx+8]
test r8d,r8d
je short 000000000000F4D9
add rdx,10
mov [rsp+20],rdx
mov rdx,[rsp+20]
mov r9d,2
call qword ptr [3510]
nop
add rsp,28
ret
mov edx,2
call qword ptr [34F8]
nop
add rsp,28
ret
; Total bytes of code 74 Compare Jit Disasm; System.Tests.Perf_String.TrimEnd_CharArr(System.String, Char[])
mov rcx,rdx
mov rdx,r8
cmp [rcx],ecx
jmp qword ptr [34F8]
; Total bytes of code 14 ; System.String.TrimEnd(Char[])
sub rsp,28
xor eax,eax
mov [rsp+20],rax
test rdx,rdx
je short 000000000000F4D9
mov r8d,[rdx+8]
test r8d,r8d
je short 000000000000F4D9
add rdx,10
mov [rsp+20],rdx
mov rdx,[rsp+20]
mov r9d,2
call qword ptr [3528]
nop
add rsp,28
ret
mov edx,2
call qword ptr [3510]
nop
add rsp,28
ret
; Total bytes of code 74 System.Tests.Perf_String.Remove_IntInt(s: "dzsdzsDDZSDZSDZSddsz", i1: 7, i2: 4)
Description of detection logic
; System.String.Remove(Int32, Int32)
push r15
push r14
push r12
push rdi
push rsi
push rbp
push rbx
sub rsp,20
mov rbx,rcx
mov esi,edx
mov edi,r8d
test esi,esi
jl near ptr 000000000000F6FC
test edi,edi
jl near ptr 000000000000F759
mov ebp,[rbx+8]
mov ecx,ebp
sub ecx,esi
cmp ecx,edi
jl near ptr 000000000000F7B6
test edi,edi
je near ptr 000000000000F813
sub ebp,edi
je near ptr 000000000000F825
mov ecx,ebp
call 0
mov r14,rax
cmp [r14],r14b
lea r15,[r14+0C]
mov rcx,r15
add rbx,0C
mov rdx,rbx
movsxd r12,esi
add r12,r12
mov r8,r12
call qword ptr [0BE10]
lea rcx,[r15+r12]
add edi,esi
movsxd r8,edi
lea rdx,[rbx+r8*2]
sub ebp,esi
movsxd r8,ebp
add r8,r8
call qword ptr [0BE10]
mov rax,r14
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r14
pop r15
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,163D
mov rdx,7FF8E05C4000
call 00000000000014A0
mov rdi,rax
mov ecx,0A50B
mov rdx,7FF8E05C4000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,1C7
mov rdx,7FF8E05C4000
call 00000000000014A0
mov rdi,rax
mov ecx,0A18D
mov rdx,7FF8E05C4000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,1C7
mov rdx,7FF8E05C4000
call 00000000000014A0
mov rdi,rax
mov ecx,9AEF
mov rdx,7FF8E05C4000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rax,rbx
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r14
pop r15
ret
mov rax,2706F802028
mov rax,[rax]
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r14
pop r15
ret
; Total bytes of code 481 Compare Jit Disasm; System.Tests.Perf_String.Remove_IntInt(System.String, Int32, Int32)
mov rcx,rdx
mov edx,r8d
mov r8d,r9d
cmp [rcx],ecx
jmp qword ptr [3030]
; Total bytes of code 17 ; System.String.Remove(Int32, Int32)
push r15
push r14
push r12
push rdi
push rsi
push rbp
push rbx
sub rsp,20
mov rbx,rcx
mov esi,edx
mov edi,r8d
test esi,esi
jl near ptr 000000000000F6FC
test edi,edi
jl near ptr 000000000000F759
mov ebp,[rbx+8]
mov ecx,ebp
sub ecx,esi
cmp ecx,edi
jl near ptr 000000000000F7B6
test edi,edi
je near ptr 000000000000F813
sub ebp,edi
je near ptr 000000000000F825
mov ecx,ebp
call 0
mov r14,rax
cmp [r14],r14b
lea r15,[r14+0C]
mov rcx,r15
add rbx,0C
mov rdx,rbx
movsxd r12,esi
add r12,r12
mov r8,r12
call qword ptr [0BE10]
lea rcx,[r15+r12]
add edi,esi
movsxd r8,edi
lea rdx,[rbx+r8*2]
sub ebp,esi
movsxd r8,ebp
add r8,r8
call qword ptr [0BE10]
mov rax,r14
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r14
pop r15
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,163D
mov rdx,7FFCBFAA4000
call 000000000000A140
mov rdi,rax
mov ecx,0A50B
mov rdx,7FFCBFAA4000
call 000000000000A140
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,1C7
mov rdx,7FFCBFAA4000
call 000000000000A140
mov rdi,rax
mov ecx,0A18D
mov rdx,7FFCBFAA4000
call 000000000000A140
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,1C7
mov rdx,7FFCBFAA4000
call 000000000000A140
mov rdi,rax
mov ecx,9AEF
mov rdx,7FFCBFAA4000
call 000000000000A140
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
mov rax,rbx
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r14
pop r15
ret
mov rax,19C02002028
mov rax,[rax]
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r14
pop r15
ret
; Total bytes of code 481 System.Tests.Perf_String.Substring_IntInt(s: "dzsdzsDDZSDZSDZSddsz", i1: 10, i2: 1)
Description of detection logic
; System.String.Substring(Int32, Int32)
push rdi
push rsi
push rbx
sub rsp,20
mov rdi,rcx
mov esi,edx
test esi,esi
jl near ptr 000000000000F6F1
mov ecx,[rdi+8]
cmp ecx,esi
jl near ptr 000000000000F74E
test r8d,r8d
jl near ptr 000000000000F7AB
mov eax,ecx
sub eax,r8d
cmp eax,esi
jl near ptr 000000000000F808
test r8d,r8d
je short 000000000000F6DC
test esi,esi
je short 000000000000F6CC
mov ecx,r8d
call 0
mov rbx,rax
mov r8d,[rbx+8]
lea rcx,[rbx+0C]
mov edx,esi
lea rdx,[rdi+rdx*2+0C]
add r8,r8
call qword ptr [0BE10]
mov rax,rbx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
cmp ecx,r8d
jne short 000000000000F69E
mov rax,rdi
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rax,20E65002028
mov rax,[rax]
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,163D
mov rdx,7FFED6D44000
call 00000000000014A0
mov rdi,rax
mov ecx,0A50B
mov rdx,7FFED6D44000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,163D
mov rdx,7FFED6D44000
call 00000000000014A0
mov rdi,rax
mov ecx,0A547
mov rdx,7FFED6D44000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,57
mov rdx,7FFED6D44000
call 00000000000014A0
mov rdi,rax
mov ecx,0A1CF
mov rdx,7FFED6D44000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,57
mov rdx,7FFED6D44000
call 00000000000014A0
mov rdi,rax
mov ecx,9B73
mov rdx,7FFED6D44000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
int 3
; Total bytes of code 518 Compare Jit Disasm; System.Tests.Perf_String.Substring_IntInt(System.String, Int32, Int32)
mov rcx,rdx
mov edx,r8d
mov r8d,r9d
cmp [rcx],ecx
jmp qword ptr [3360]
; Total bytes of code 17 ; System.String.Substring(Int32, Int32)
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov edi,edx
mov eax,edi
mov ecx,r8d
add rax,rcx
mov ecx,[rsi+8]
mov edx,ecx
cmp rax,rdx
ja short 000000000000F6D6
test r8d,r8d
jne short 000000000000F698
mov rax,1F15A802028
mov rax,[rax]
add rsp,20
pop rbx
pop rsi
pop rdi
ret
cmp ecx,r8d
jne short 000000000000F6A8
mov rax,rsi
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov ecx,r8d
call 0
mov rbx,rax
mov r8d,[rbx+8]
lea rcx,[rbx+0C]
mov edx,edi
lea rdx,[rsi+rdx*2+0C]
add r8,r8
call qword ptr [0BE10]
mov rax,rbx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,rsi
mov edx,edi
call qword ptr [3378]
int 3
; Total bytes of code 130 System.Tests.Perf_String.Replace_Char(text: "This is a very nice sentence", oldChar: 'i', newChar: 'I')
Description of detection logic
; System.String.Replace(Char, Char)
push r15
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,28
vzeroupper
mov rsi,rcx
mov edi,r8d
movzx ebx,dx
movzx ecx,di
cmp ebx,ecx
je near ptr 000000000000F7F2
lea rcx,[rsi+0C]
mov r8d,[rsi+8]
mov edx,ebx
call qword ptr [0F408]
mov ebp,eax
test ebp,ebp
jge short 000000000000F72C
mov rax,rsi
vzeroupper
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
mov r14d,[rsi+8]
sub r14d,ebp
mov ecx,[rsi+8]
call 0
mov r15,rax
test ebp,ebp
jle short 000000000000F759
cmp [r15],r15b
lea rcx,[r15+0C]
lea rdx,[rsi+0C]
mov r8d,ebp
add r8,r8
call qword ptr [0BE10]
movsxd rax,ebp
add rax,rax
lea rdx,[rsi+rax+0C]
cmp [r15],r15b
lea rcx,[r15+rax+0C]
cmp r14d,10
jl short 000000000000F7B7
imul eax,ebx,10001
vmovd xmm0,eax
vpbroadcastd ymm0,xmm0
movzx eax,di
imul eax,10001
vmovd xmm1,eax
vpbroadcastd ymm1,xmm1
vmovupd ymm2,[rdx]
vpcmpeqw ymm3,ymm2,ymm0
vpblendvb ymm2,ymm2,ymm1,ymm3
vmovupd [rcx],ymm2
add rdx,20
add rcx,20
add r14d,0FFFFFFF0
cmp r14d,10
jge short 000000000000F793
test r14d,r14d
jle short 000000000000F7DA
movzx eax,word ptr [rdx]
mov r8,rcx
cmp eax,ebx
je short 000000000000F7ED
mov [r8],ax
add rdx,2
add rcx,2
dec r14d
test r14d,r14d
jg short 000000000000F7BC
mov rax,r15
vzeroupper
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
movzx eax,di
jmp short 000000000000F7C6
mov rax,rsi
vzeroupper
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
; Total bytes of code 293 Compare Jit Disasm; System.Tests.Perf_String.Replace_Char(System.String, Char, Char)
mov [rsp+18],r8d
mov rcx,rdx
movzx r8d,r9w
mov edx,[rsp+18]
movzx edx,dx
cmp [rcx],ecx
jmp qword ptr [30C0]
; Total bytes of code 27 ; System.String.Replace(Char, Char)
push r15
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,28
vzeroupper
mov rsi,rcx
mov edi,r8d
movzx ebx,dx
movzx ecx,di
cmp ebx,ecx
je near ptr 000000000000F7F2
lea rcx,[rsi+0C]
mov r8d,[rsi+8]
mov edx,ebx
call qword ptr [0F408]
mov ebp,eax
test ebp,ebp
jge short 000000000000F72C
mov rax,rsi
vzeroupper
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
mov r14d,[rsi+8]
sub r14d,ebp
mov ecx,[rsi+8]
call 0
mov r15,rax
test ebp,ebp
jle short 000000000000F759
cmp [r15],r15b
lea rcx,[r15+0C]
lea rdx,[rsi+0C]
mov r8d,ebp
add r8,r8
call qword ptr [0BE10]
movsxd rax,ebp
add rax,rax
lea rdx,[rsi+rax+0C]
cmp [r15],r15b
lea rcx,[r15+rax+0C]
cmp r14d,10
jl short 000000000000F7B7
imul eax,ebx,10001
vmovd xmm0,eax
vpbroadcastd ymm0,xmm0
movzx eax,di
imul eax,10001
vmovd xmm1,eax
vpbroadcastd ymm1,xmm1
vmovupd ymm2,[rdx]
vpcmpeqw ymm3,ymm2,ymm0
vpblendvb ymm2,ymm2,ymm1,ymm3
vmovupd [rcx],ymm2
add rdx,20
add rcx,20
add r14d,0FFFFFFF0
cmp r14d,10
jge short 000000000000F793
test r14d,r14d
jle short 000000000000F7DA
movzx eax,word ptr [rdx]
mov r8,rcx
cmp eax,ebx
je short 000000000000F7ED
mov [r8],ax
add rdx,2
add rcx,2
dec r14d
test r14d,r14d
jg short 000000000000F7BC
mov rax,r15
vzeroupper
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
movzx eax,di
jmp short 000000000000F7C6
mov rax,rsi
vzeroupper
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
; Total bytes of code 293 System.Tests.Perf_String.Trim_CharArr(s: " Test", c: [' ', ' '])
Description of detection logic
; System.String.Trim(Char[])
sub rsp,28
xor eax,eax
mov [rsp+20],rax
test rdx,rdx
je short 000000000000F629
mov r8d,[rdx+8]
test r8d,r8d
je short 000000000000F629
add rdx,10
mov [rsp+20],rdx
mov rdx,[rsp+20]
mov r9d,3
call qword ptr [3510]
nop
add rsp,28
ret
mov edx,3
call qword ptr [34F8]
nop
add rsp,28
ret
; Total bytes of code 74 Compare Jit Disasm; System.Tests.Perf_String.Trim_CharArr(System.String, Char[])
mov rcx,rdx
mov rdx,r8
cmp [rcx],ecx
jmp qword ptr [3468]
; Total bytes of code 14 ; System.String.Trim(Char[])
sub rsp,28
xor eax,eax
mov [rsp+20],rax
test rdx,rdx
je short 000000000000F629
mov r8d,[rdx+8]
test r8d,r8d
je short 000000000000F629
add rdx,10
mov [rsp+20],rdx
mov rdx,[rsp+20]
mov r9d,3
call qword ptr [3528]
nop
add rsp,28
ret
mov edx,3
call qword ptr [3510]
nop
add rsp,28
ret
; Total bytes of code 74 System.Tests.Perf_String.GetChars(size: 100)
Description of detection logic
; System.String.ToCharArray()
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov edi,[rsi+8]
test edi,edi
je short 000000000000F7C4
mov edx,edi
mov rcx,offset MT_System.Char[]
call 000000000000C4B0
mov rbx,rax
lea rcx,[rbx+10]
lea rdx,[rsi+0C]
mov r8d,edi
add r8,r8
call qword ptr [0BE10]
mov rax,rbx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,7FF973B74BE0
mov edx,32
call 00000000000019F0
mov rax,20053409538
mov rax,[rax]
add rsp,20
pop rbx
pop rsi
pop rdi
ret
; Total bytes of code 109 Compare Jit Disasm; System.Tests.Perf_String.GetChars(System.Tests.StringArguments)
mov rcx,[rdx+8]
cmp [rcx],ecx
jmp qword ptr [17E0]
; Total bytes of code 12 ; System.String.ToCharArray()
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov edi,[rsi+8]
test edi,edi
je short 000000000000FD94
mov edx,edi
mov rcx,offset MT_System.Char[]
call 0000000000002C00
mov rbx,rax
lea rcx,[rbx+10]
lea rdx,[rsi+0C]
mov r8d,edi
add r8,r8
call qword ptr [0BE10]
mov rax,rbx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,7FFDB3B84BF0
mov edx,2F
call 0000000000001230
mov rax,2044D009528
mov rax,[rax]
add rsp,20
pop rbx
pop rsi
pop rdi
ret
; Total bytes of code 109 System.Tests.Perf_String.Trim_CharArr(s: "Test ", c: [' ', ' '])
Description of detection logic
; System.String.Trim(Char[])
sub rsp,28
xor eax,eax
mov [rsp+20],rax
test rdx,rdx
je short 000000000000F629
mov r8d,[rdx+8]
test r8d,r8d
je short 000000000000F629
add rdx,10
mov [rsp+20],rdx
mov rdx,[rsp+20]
mov r9d,3
call qword ptr [3510]
nop
add rsp,28
ret
mov edx,3
call qword ptr [34F8]
nop
add rsp,28
ret
; Total bytes of code 74 Compare Jit Disasm; System.Tests.Perf_String.Trim_CharArr(System.String, Char[])
mov rcx,rdx
mov rdx,r8
cmp [rcx],ecx
jmp qword ptr [3468]
; Total bytes of code 14 ; System.String.Trim(Char[])
sub rsp,28
xor eax,eax
mov [rsp+20],rax
test rdx,rdx
je short 000000000000F629
mov r8d,[rdx+8]
test r8d,r8d
je short 000000000000F629
add rdx,10
mov [rsp+20],rdx
mov rdx,[rsp+20]
mov r9d,3
call qword ptr [3528]
nop
add rsp,28
ret
mov edx,3
call qword ptr [3510]
nop
add rsp,28
ret
; Total bytes of code 74 System.Tests.Perf_String.TrimEnd_CharArr(s: "Test ", c: [' ', ' '])
Description of detection logic
; System.String.TrimEnd(Char[])
sub rsp,28
xor eax,eax
mov [rsp+20],rax
test rdx,rdx
je short 000000000000F629
mov r8d,[rdx+8]
test r8d,r8d
je short 000000000000F629
add rdx,10
mov [rsp+20],rdx
mov rdx,[rsp+20]
mov r9d,2
call qword ptr [3510]
nop
add rsp,28
ret
mov edx,2
call qword ptr [34F8]
nop
add rsp,28
ret
; Total bytes of code 74 Compare Jit Disasm; System.Tests.Perf_String.TrimEnd_CharArr(System.String, Char[])
mov rcx,rdx
mov rdx,r8
cmp [rcx],ecx
jmp qword ptr [34F8]
; Total bytes of code 14 ; System.String.TrimEnd(Char[])
sub rsp,28
xor eax,eax
mov [rsp+20],rax
test rdx,rdx
je short 000000000000F629
mov r8d,[rdx+8]
test r8d,r8d
je short 000000000000F629
add rdx,10
mov [rsp+20],rdx
mov rdx,[rsp+20]
mov r9d,2
call qword ptr [3528]
nop
add rsp,28
ret
mov edx,2
call qword ptr [3510]
nop
add rsp,28
ret
; Total bytes of code 74 System.Tests.Perf_String.ToLowerInvariant(s: "test")
Description of detection logic
; System.Globalization.TextInfo.ToLower(System.String)
sub rsp,28
test rdx,rdx
je short 000000000000F3E3
add rsp,28
jmp qword ptr [17E0]
mov ecx,15FB
mov rdx,7FF92C7F4000
call 00000000000014A0
mov rcx,rax
call qword ptr [33F0]
int 3
; Total bytes of code 49 Compare Jit Disasm; System.Tests.Perf_String.ToLowerInvariant(System.String)
cmp [rdx],dl
mov rcx,219C6C00708
mov rcx,[rcx]
jmp qword ptr [0F1B0]
; Total bytes of code 21 ; System.Globalization.TextInfo.ToLower(System.String)
sub rsp,28
test rdx,rdx
je short 000000000000F3E3
add rsp,28
jmp qword ptr [17E0]
mov ecx,15FB
mov rdx,7FF94E1F4000
call 000000000000A140
mov rcx,rax
call qword ptr [33F0]
int 3
; Total bytes of code 49 System.Tests.Perf_String.ToUpperInvariant(s: "TEST")
Description of detection logic
; System.Globalization.TextInfo.ToUpper(System.String)
sub rsp,28
test rdx,rdx
je short 000000000000F383
add rsp,28
jmp qword ptr [0B1E0]
mov ecx,15FB
mov rdx,7FFE57BC4000
call 00000000000014A0
mov rcx,rax
call qword ptr [33F0]
int 3
; Total bytes of code 49 Compare Jit Disasm; System.Tests.Perf_String.ToUpperInvariant(System.String)
cmp [rdx],dl
mov rcx,1F844C00708
mov rcx,[rcx]
jmp qword ptr [0F2B8]
; Total bytes of code 21 ; System.Globalization.TextInfo.ToUpper(System.String)
sub rsp,28
test rdx,rdx
je short 000000000000F383
add rsp,28
jmp qword ptr [0B1E0]
mov ecx,15FB
mov rdx,7FFC925B4000
call 000000000000A140
mov rcx,rax
call qword ptr [33F0]
int 3
; Total bytes of code 49 System.Tests.Perf_String.CtorCharCount(size: 1)
Description of detection logic
Compare Jit Disasm; System.Tests.Perf_String.CtorCharCount(Int32)
sub rsp,28
mov ecx,61
call 0000000000000690
nop
add rsp,28
ret
; Total bytes of code 20 System.Tests.Perf_String.Insert(s1: "Test", i: 2, s2: " Test")
Description of detection logic
; System.String.Insert(Int32, System.String)
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbp
push rbx
sub rsp,28
mov rdi,rcx
mov ebx,edx
mov rsi,r8
test rsi,rsi
je near ptr 000000000000F74F
mov ebp,[rdi+8]
cmp ebp,ebx
jb near ptr 000000000000F76D
mov r14d,[rsi+8]
test ebp,ebp
jne short 000000000000F6C8
mov rax,rsi
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
test r14d,r14d
jne short 000000000000F6E1
mov rax,rdi
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
lea ecx,[r14+rbp]
call 0
mov r15,rax
cmp [r15],r15b
lea r12,[r15+0C]
mov rcx,r12
lea rdx,[rdi+0C]
movsxd r13,ebx
add r13,r13
mov r8,r13
call qword ptr [0BE10]
lea rcx,[r12+r13]
lea rdx,[rsi+0C]
movsxd r8,r14d
add r8,r8
call qword ptr [0BE10]
add r14d,ebx
movsxd r8,r14d
lea rcx,[r12+r8*2]
lea rdx,[rdi+r13+0C]
sub ebp,ebx
movsxd r8,ebp
add r8,r8
call qword ptr [0BE10]
mov rax,r15
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx,303
mov rdx,7FF9A6784000
call 00000000000014A0
mov rcx,rax
call qword ptr [33F0]
int 3
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,163D
mov rdx,7FF9A6784000
call 00000000000014A0
mov rdx,rax
mov rcx,rsi
call qword ptr [1810]
mov rcx,rsi
call 0000000000004690
int 3
; Total bytes of code 296 Compare Jit Disasm; System.Tests.Perf_String.Insert(System.String, Int32, System.String)
mov rcx,rdx
mov edx,r8d
mov r8,r9
cmp [rcx],ecx
jmp qword ptr [1DE0]
; Total bytes of code 17 ; System.String.Insert(Int32, System.String)
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbp
push rbx
sub rsp,28
mov rdi,rcx
mov ebx,edx
mov rsi,r8
test rsi,rsi
je near ptr 000000000000F74F
mov ebp,[rdi+8]
cmp ebp,ebx
jb near ptr 000000000000F76D
mov r14d,[rsi+8]
test ebp,ebp
jne short 000000000000F6C8
mov rax,rsi
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
test r14d,r14d
jne short 000000000000F6E1
mov rax,rdi
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
lea ecx,[r14+rbp]
call 0
mov r15,rax
cmp [r15],r15b
lea r12,[r15+0C]
mov rcx,r12
lea rdx,[rdi+0C]
movsxd r13,ebx
add r13,r13
mov r8,r13
call qword ptr [0BE10]
lea rcx,[r12+r13]
lea rdx,[rsi+0C]
movsxd r8,r14d
add r8,r8
call qword ptr [0BE10]
add r14d,ebx
movsxd r8,r14d
lea rcx,[r12+r8*2]
lea rdx,[rdi+r13+0C]
sub ebp,ebx
movsxd r8,ebp
add r8,r8
call qword ptr [0BE10]
mov rax,r15
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx,303
mov rdx,7FFD5D634000
call 000000000000A140
mov rcx,rax
call qword ptr [33F0]
int 3
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,163D
mov rdx,7FFD5D634000
call 000000000000A140
mov rdx,rax
mov rcx,rsi
call qword ptr [1810]
mov rcx,rsi
call 0000000000002B00
int 3
; Total bytes of code 296 System.Tests.Perf_String.PadLeft(n: 18)
Description of detection logic
; System.String.PadLeft(Int32, Char)
push r15
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,28
mov rsi,rcx
mov edi,r8d
test edx,edx
jl short 000000000000F5DC
mov ebx,[rsi+8]
mov ebp,edx
sub ebp,ebx
test ebp,ebp
jle near ptr 000000000000F639
mov ecx,edx
call 0
mov r14,rax
cmp [r14],r14b
lea r15,[r14+0C]
mov rcx,r15
movzx r8d,di
mov edx,ebp
call qword ptr [0DEA0]
movsxd r8,ebp
lea rcx,[r15+r8*2]
lea rdx,[rsi+0C]
movsxd r8,ebx
add r8,r8
call qword ptr [0BE10]
mov rax,r14
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,1699
mov rdx,7FFED4954000
call 00000000000014A0
mov rdi,rax
mov ecx,0A037
mov rdx,7FFED4954000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rax,rsi
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
; Total bytes of code 217 Compare Jit Disasm; System.Tests.Perf_String.PadLeft(Int32)
mov rcx,29E3F005890
mov rcx,[rcx]
mov r8d,20
jmp qword ptr [1F48]
; Total bytes of code 25 ; System.String.PadLeft(Int32, Char)
push r15
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,28
mov rsi,rcx
mov edi,r8d
test edx,edx
jl short 000000000000F5DC
mov ebx,[rsi+8]
mov ebp,edx
sub ebp,ebx
test ebp,ebp
jle near ptr 000000000000F639
mov ecx,edx
call 0
mov r14,rax
cmp [r14],r14b
lea r15,[r14+0C]
mov rcx,r15
movzx r8d,di
mov edx,ebp
call qword ptr [0DEA0]
movsxd r8,ebp
lea rcx,[r15+r8*2]
lea rdx,[rsi+0C]
movsxd r8,ebx
add r8,r8
call qword ptr [0BE10]
mov rax,r14
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,1699
mov rdx,7FFA71114000
call 000000000000A140
mov rdi,rax
mov ecx,0A037
mov rdx,7FFA71114000
call 000000000000A140
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
mov rax,rsi
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
; Total bytes of code 217 System.Tests.Perf_String.Substring_IntInt(s: "dzsdzsDDZSDZSDZSddsz", i1: 0, i2: 8)
Description of detection logic
; System.String.Substring(Int32, Int32)
push rdi
push rsi
push rbx
sub rsp,20
mov rdi,rcx
mov esi,edx
test esi,esi
jl near ptr 000000000000F6F1
mov ecx,[rdi+8]
cmp ecx,esi
jl near ptr 000000000000F74E
test r8d,r8d
jl near ptr 000000000000F7AB
mov eax,ecx
sub eax,r8d
cmp eax,esi
jl near ptr 000000000000F808
test r8d,r8d
je short 000000000000F6DC
test esi,esi
je short 000000000000F6CC
mov ecx,r8d
call 0
mov rbx,rax
mov r8d,[rbx+8]
lea rcx,[rbx+0C]
mov edx,esi
lea rdx,[rdi+rdx*2+0C]
add r8,r8
call qword ptr [0BE10]
mov rax,rbx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
cmp ecx,r8d
jne short 000000000000F69E
mov rax,rdi
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rax,274E4002028
mov rax,[rax]
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,163D
mov rdx,7FFED6D44000
call 00000000000014A0
mov rdi,rax
mov ecx,0A50B
mov rdx,7FFED6D44000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,163D
mov rdx,7FFED6D44000
call 00000000000014A0
mov rdi,rax
mov ecx,0A547
mov rdx,7FFED6D44000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,57
mov rdx,7FFED6D44000
call 00000000000014A0
mov rdi,rax
mov ecx,0A1CF
mov rdx,7FFED6D44000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,57
mov rdx,7FFED6D44000
call 00000000000014A0
mov rdi,rax
mov ecx,9B73
mov rdx,7FFED6D44000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
int 3
; Total bytes of code 518 Compare Jit Disasm; System.Tests.Perf_String.Substring_IntInt(System.String, Int32, Int32)
mov rcx,rdx
mov edx,r8d
mov r8d,r9d
cmp [rcx],ecx
jmp qword ptr [3360]
; Total bytes of code 17 ; System.String.Substring(Int32, Int32)
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov edi,edx
mov eax,edi
mov ecx,r8d
add rax,rcx
mov ecx,[rsi+8]
mov edx,ecx
cmp rax,rdx
ja short 000000000000F6D6
test r8d,r8d
jne short 000000000000F698
mov rax,163D6C02028
mov rax,[rax]
add rsp,20
pop rbx
pop rsi
pop rdi
ret
cmp ecx,r8d
jne short 000000000000F6A8
mov rax,rsi
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov ecx,r8d
call 0
mov rbx,rax
mov r8d,[rbx+8]
lea rcx,[rbx+0C]
mov edx,edi
lea rdx,[rsi+rdx*2+0C]
add r8,r8
call qword ptr [0BE10]
mov rax,rbx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,rsi
mov edx,edi
call qword ptr [3378]
int 3
; Total bytes of code 130 System.Tests.Perf_String.TrimStart_CharArr(s: " Test", c: [' ', ' '])
Description of detection logic
; System.String.TrimStart(Char[])
sub rsp,28
xor eax,eax
mov [rsp+20],rax
test rdx,rdx
je short 000000000000F629
mov r8d,[rdx+8]
test r8d,r8d
je short 000000000000F629
add rdx,10
mov [rsp+20],rdx
mov rdx,[rsp+20]
mov r9d,1
call qword ptr [3510]
nop
add rsp,28
ret
mov edx,1
call qword ptr [34F8]
nop
add rsp,28
ret
; Total bytes of code 74 Compare Jit Disasm; System.Tests.Perf_String.TrimStart_CharArr(System.String, Char[])
mov rcx,rdx
mov rdx,r8
cmp [rcx],ecx
jmp qword ptr [34B0]
; Total bytes of code 14 ; System.String.TrimStart(Char[])
sub rsp,28
xor eax,eax
mov [rsp+20],rax
test rdx,rdx
je short 000000000000F629
mov r8d,[rdx+8]
test r8d,r8d
je short 000000000000F629
add rdx,10
mov [rsp+20],rdx
mov rdx,[rsp+20]
mov r9d,1
call qword ptr [3528]
nop
add rsp,28
ret
mov edx,1
call qword ptr [3510]
nop
add rsp,28
ret
; Total bytes of code 74 System.Tests.Perf_String.Insert(s1: "dzsdzsDDZSDZSDZSddsz", i: 7, s2: "Test")
Description of detection logic
; System.String.Insert(Int32, System.String)
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbp
push rbx
sub rsp,28
mov rdi,rcx
mov ebx,edx
mov rsi,r8
test rsi,rsi
je near ptr 000000000000F74F
mov ebp,[rdi+8]
cmp ebp,ebx
jb near ptr 000000000000F76D
mov r14d,[rsi+8]
test ebp,ebp
jne short 000000000000F6C8
mov rax,rsi
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
test r14d,r14d
jne short 000000000000F6E1
mov rax,rdi
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
lea ecx,[r14+rbp]
call 0
mov r15,rax
cmp [r15],r15b
lea r12,[r15+0C]
mov rcx,r12
lea rdx,[rdi+0C]
movsxd r13,ebx
add r13,r13
mov r8,r13
call qword ptr [0BE10]
lea rcx,[r12+r13]
lea rdx,[rsi+0C]
movsxd r8,r14d
add r8,r8
call qword ptr [0BE10]
add r14d,ebx
movsxd r8,r14d
lea rcx,[r12+r8*2]
lea rdx,[rdi+r13+0C]
sub ebp,ebx
movsxd r8,ebp
add r8,r8
call qword ptr [0BE10]
mov rax,r15
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx,303
mov rdx,7FF9A6724000
call 00000000000014A0
mov rcx,rax
call qword ptr [33F0]
int 3
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,163D
mov rdx,7FF9A6724000
call 00000000000014A0
mov rdx,rax
mov rcx,rsi
call qword ptr [1810]
mov rcx,rsi
call 0000000000004690
int 3
; Total bytes of code 296 Compare Jit Disasm; System.Tests.Perf_String.Insert(System.String, Int32, System.String)
mov rcx,rdx
mov edx,r8d
mov r8,r9
cmp [rcx],ecx
jmp qword ptr [1DE0]
; Total bytes of code 17 ; System.String.Insert(Int32, System.String)
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbp
push rbx
sub rsp,28
mov rdi,rcx
mov ebx,edx
mov rsi,r8
test rsi,rsi
je near ptr 000000000000F74F
mov ebp,[rdi+8]
cmp ebp,ebx
jb near ptr 000000000000F76D
mov r14d,[rsi+8]
test ebp,ebp
jne short 000000000000F6C8
mov rax,rsi
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
test r14d,r14d
jne short 000000000000F6E1
mov rax,rdi
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
lea ecx,[r14+rbp]
call 0
mov r15,rax
cmp [r15],r15b
lea r12,[r15+0C]
mov rcx,r12
lea rdx,[rdi+0C]
movsxd r13,ebx
add r13,r13
mov r8,r13
call qword ptr [0BE10]
lea rcx,[r12+r13]
lea rdx,[rsi+0C]
movsxd r8,r14d
add r8,r8
call qword ptr [0BE10]
add r14d,ebx
movsxd r8,r14d
lea rcx,[r12+r8*2]
lea rdx,[rdi+r13+0C]
sub ebp,ebx
movsxd r8,ebp
add r8,r8
call qword ptr [0BE10]
mov rax,r15
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx,303
mov rdx,7FFD5D5B4000
call 000000000000A140
mov rcx,rax
call qword ptr [33F0]
int 3
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,163D
mov rdx,7FFD5D5B4000
call 000000000000A140
mov rdx,rax
mov rcx,rsi
call qword ptr [1810]
mov rcx,rsi
call 0000000000002B00
int 3
; Total bytes of code 296 System.Tests.Perf_String.Remove_IntInt(s: "dzsdzsDDZSDZSDZSddsz", i1: 0, i2: 8)
Description of detection logic
; System.String.Remove(Int32, Int32)
push r15
push r14
push r12
push rdi
push rsi
push rbp
push rbx
sub rsp,20
mov rbx,rcx
mov esi,edx
mov edi,r8d
test esi,esi
jl near ptr 000000000000F6FC
test edi,edi
jl near ptr 000000000000F759
mov ebp,[rbx+8]
mov ecx,ebp
sub ecx,esi
cmp ecx,edi
jl near ptr 000000000000F7B6
test edi,edi
je near ptr 000000000000F813
sub ebp,edi
je near ptr 000000000000F825
mov ecx,ebp
call 0
mov r14,rax
cmp [r14],r14b
lea r15,[r14+0C]
mov rcx,r15
add rbx,0C
mov rdx,rbx
movsxd r12,esi
add r12,r12
mov r8,r12
call qword ptr [0BE10]
lea rcx,[r15+r12]
add edi,esi
movsxd r8,edi
lea rdx,[rbx+r8*2]
sub ebp,esi
movsxd r8,ebp
add r8,r8
call qword ptr [0BE10]
mov rax,r14
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r14
pop r15
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,163D
mov rdx,7FF8E0674000
call 00000000000014A0
mov rdi,rax
mov ecx,0A50B
mov rdx,7FF8E0674000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,1C7
mov rdx,7FF8E0674000
call 00000000000014A0
mov rdi,rax
mov ecx,0A18D
mov rdx,7FF8E0674000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,1C7
mov rdx,7FF8E0674000
call 00000000000014A0
mov rdi,rax
mov ecx,9AEF
mov rdx,7FF8E0674000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rax,rbx
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r14
pop r15
ret
mov rax,27140802028
mov rax,[rax]
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r14
pop r15
ret
; Total bytes of code 481 Compare Jit Disasm; System.Tests.Perf_String.Remove_IntInt(System.String, Int32, Int32)
mov rcx,rdx
mov edx,r8d
mov r8d,r9d
cmp [rcx],ecx
jmp qword ptr [3030]
; Total bytes of code 17 ; System.String.Remove(Int32, Int32)
push r15
push r14
push r12
push rdi
push rsi
push rbp
push rbx
sub rsp,20
mov rbx,rcx
mov esi,edx
mov edi,r8d
test esi,esi
jl near ptr 000000000000F6FC
test edi,edi
jl near ptr 000000000000F759
mov ebp,[rbx+8]
mov ecx,ebp
sub ecx,esi
cmp ecx,edi
jl near ptr 000000000000F7B6
test edi,edi
je near ptr 000000000000F813
sub ebp,edi
je near ptr 000000000000F825
mov ecx,ebp
call 0
mov r14,rax
cmp [r14],r14b
lea r15,[r14+0C]
mov rcx,r15
add rbx,0C
mov rdx,rbx
movsxd r12,esi
add r12,r12
mov r8,r12
call qword ptr [0BE10]
lea rcx,[r15+r12]
add edi,esi
movsxd r8,edi
lea rdx,[rbx+r8*2]
sub ebp,esi
movsxd r8,ebp
add r8,r8
call qword ptr [0BE10]
mov rax,r14
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r14
pop r15
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,163D
mov rdx,7FFCBFB34000
call 000000000000A140
mov rdi,rax
mov ecx,0A50B
mov rdx,7FFCBFB34000
call 000000000000A140
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,1C7
mov rdx,7FFCBFB34000
call 000000000000A140
mov rdi,rax
mov ecx,0A18D
mov rdx,7FFCBFB34000
call 000000000000A140
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov ecx,1C7
mov rdx,7FFCBFB34000
call 000000000000A140
mov rdi,rax
mov ecx,9AEF
mov rdx,7FFCBFB34000
call 000000000000A140
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000002B00
mov rax,rbx
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r14
pop r15
ret
mov rax,220A4002028
mov rax,[rax]
add rsp,20
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r14
pop r15
ret
; Total bytes of code 481 System.Tests.Perf_String.TrimStart_CharArr(s: "Test", c: [' ', ' '])
Description of detection logic
; System.String.TrimStart(Char[])
sub rsp,28
xor eax,eax
mov [rsp+20],rax
test rdx,rdx
je short 000000000000F4D9
mov r8d,[rdx+8]
test r8d,r8d
je short 000000000000F4D9
add rdx,10
mov [rsp+20],rdx
mov rdx,[rsp+20]
mov r9d,1
call qword ptr [3510]
nop
add rsp,28
ret
mov edx,1
call qword ptr [34F8]
nop
add rsp,28
ret
; Total bytes of code 74 Compare Jit Disasm; System.Tests.Perf_String.TrimStart_CharArr(System.String, Char[])
mov rcx,rdx
mov rdx,r8
cmp [rcx],ecx
jmp qword ptr [34B0]
; Total bytes of code 14 ; System.String.TrimStart(Char[])
sub rsp,28
xor eax,eax
mov [rsp+20],rax
test rdx,rdx
je short 000000000000F4D9
mov r8d,[rdx+8]
test r8d,r8d
je short 000000000000F4D9
add rdx,10
mov [rsp+20],rdx
mov rdx,[rsp+20]
mov r9d,1
call qword ptr [3528]
nop
add rsp,28
ret
mov edx,1
call qword ptr [3510]
nop
add rsp,28
ret
; Total bytes of code 74 System.Tests.Perf_String.Substring_IntInt(s: "dzsdzsDDZSDZSDZSddsz", i1: 7, i2: 4)
Description of detection logic
; System.String.Substring(Int32, Int32)
push rdi
push rsi
push rbx
sub rsp,20
mov rdi,rcx
mov esi,edx
test esi,esi
jl near ptr 000000000000F6F1
mov ecx,[rdi+8]
cmp ecx,esi
jl near ptr 000000000000F74E
test r8d,r8d
jl near ptr 000000000000F7AB
mov eax,ecx
sub eax,r8d
cmp eax,esi
jl near ptr 000000000000F808
test r8d,r8d
je short 000000000000F6DC
test esi,esi
je short 000000000000F6CC
mov ecx,r8d
call 0
mov rbx,rax
mov r8d,[rbx+8]
lea rcx,[rbx+0C]
mov edx,esi
lea rdx,[rdi+rdx*2+0C]
add r8,r8
call qword ptr [0BE10]
mov rax,rbx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
cmp ecx,r8d
jne short 000000000000F69E
mov rax,rdi
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rax,1AB06802028
mov rax,[rax]
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,163D
mov rdx,7FFED6D54000
call 00000000000014A0
mov rdi,rax
mov ecx,0A50B
mov rdx,7FFED6D54000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,163D
mov rdx,7FFED6D54000
call 00000000000014A0
mov rdi,rax
mov ecx,0A547
mov rdx,7FFED6D54000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,57
mov rdx,7FFED6D54000
call 00000000000014A0
mov rdi,rax
mov ecx,0A1CF
mov rdx,7FFED6D54000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.ArgumentOutOfRangeException
call 000000000000C390
mov rsi,rax
mov ecx,57
mov rdx,7FFED6D54000
call 00000000000014A0
mov rdi,rax
mov ecx,9B73
mov rdx,7FFED6D54000
call 00000000000014A0
mov rcx,rax
call qword ptr [7030]
mov r8,rax
mov rdx,rdi
mov rcx,rsi
call qword ptr [1828]
mov rcx,rsi
call 0000000000004690
int 3
; Total bytes of code 518 Compare Jit Disasm; System.Tests.Perf_String.Substring_IntInt(System.String, Int32, Int32)
mov rcx,rdx
mov edx,r8d
mov r8d,r9d
cmp [rcx],ecx
jmp qword ptr [3360]
; Total bytes of code 17 ; System.String.Substring(Int32, Int32)
push rdi
push rsi
push rbx
sub rsp,20
mov rsi,rcx
mov edi,edx
mov eax,edi
mov ecx,r8d
add rax,rcx
mov ecx,[rsi+8]
mov edx,ecx
cmp rax,rdx
ja short 000000000000F6D6
test r8d,r8d
jne short 000000000000F698
mov rax,2462C402028
mov rax,[rax]
add rsp,20
pop rbx
pop rsi
pop rdi
ret
cmp ecx,r8d
jne short 000000000000F6A8
mov rax,rsi
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov ecx,r8d
call 0
mov rbx,rax
mov r8d,[rbx+8]
lea rcx,[rbx+0C]
mov edx,edi
lea rdx,[rsi+rdx*2+0C]
add r8,r8
call qword ptr [0BE10]
mov rax,rbx
add rsp,20
pop rbx
pop rsi
pop rdi
ret
mov rcx,rsi
mov edx,edi
call qword ptr [3378]
int 3
; Total bytes of code 130 System.Tests.Perf_String.Concat_str_str(size: 100)
Description of detection logic
; System.String.Concat(System.String, System.String)
push r15
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,28
mov rdi,rcx
mov rsi,rdx
test rdi,rdi
je short 000000000000FE65
mov ebx,[rdi+8]
test ebx,ebx
je short 000000000000FE65
test rsi,rsi
je short 000000000000FE89
jmp short 000000000000FE99
test rsi,rsi
je near ptr 000000000000FF01
mov ebp,[rsi+8]
test ebp,ebp
je near ptr 000000000000FF01
mov rax,rsi
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
mov rax,rdi
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
mov ebp,[rsi+8]
test ebp,ebp
je short 000000000000FE89
mov r14d,ebx
lea ecx,[r14+rbp]
call 0
mov r15,rax
cmp [r15+8],ebx
jl near ptr 000000000000FF3E
lea rcx,[r15+0C]
lea rdx,[rdi+0C]
mov r8d,ebx
add r8,r8
call qword ptr [0BE10]
mov r8d,[r15+8]
sub r8d,r14d
cmp r8d,ebp
jl short 000000000000FF1B
movsxd r8,r14d
lea rcx,[r15+r8*2+0C]
lea rdx,[rsi+0C]
mov r8d,ebp
add r8,r8
call qword ptr [0BE10]
mov rax,r15
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
mov rax,1DAE9C02028
mov rax,[rax]
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
mov rcx,offset MT_System.IndexOutOfRangeException
call 000000000000C390
mov rsi,rax
mov rcx,rsi
call qword ptr [3D80]
mov rcx,rsi
call 0000000000004690
mov rcx,offset MT_System.IndexOutOfRangeException
call 000000000000C390
mov rsi,rax
mov rcx,rsi
call qword ptr [3D80]
mov rcx,rsi
call 0000000000004690
int 3
; Total bytes of code 290 Compare Jit Disasm; System.Tests.Perf_String.Concat_str_str(System.Tests.StringArguments)
mov rcx,[rdx+8]
mov rdx,[rdx+10]
jmp qword ptr [1C60]
; Total bytes of code 14 ; System.String.Concat(System.String, System.String)
push r15
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,28
mov rdi,rcx
mov rsi,rdx
test rdi,rdi
je short 000000000000FE65
mov ebx,[rdi+8]
test ebx,ebx
je short 000000000000FE65
test rsi,rsi
je short 000000000000FE89
jmp short 000000000000FE99
test rsi,rsi
je near ptr 000000000000FF01
mov ebp,[rsi+8]
test ebp,ebp
je near ptr 000000000000FF01
mov rax,rsi
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
mov rax,rdi
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
mov ebp,[rsi+8]
test ebp,ebp
je short 000000000000FE89
mov r14d,ebx
lea ecx,[r14+rbp]
call 0
mov r15,rax
cmp [r15+8],ebx
jl near ptr 000000000000FF3E
lea rcx,[r15+0C]
lea rdx,[rdi+0C]
mov r8d,ebx
add r8,r8
call qword ptr [0BE10]
mov r8d,[r15+8]
sub r8d,r14d
cmp r8d,ebp
jl short 000000000000FF1B
movsxd r8,r14d
lea rcx,[r15+r8*2+0C]
lea rdx,[rsi+0C]
mov r8d,ebp
add r8,r8
call qword ptr [0BE10]
mov rax,r15
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
mov rax,2914C002028
mov rax,[rax]
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
mov rcx,offset MT_System.IndexOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov rcx,rsi
call qword ptr [3F78]
mov rcx,rsi
call 0000000000002B00
mov rcx,offset MT_System.IndexOutOfRangeException
call 0000000000002AE0
mov rsi,rax
mov rcx,rsi
call qword ptr [3F78]
mov rcx,rsi
call 0000000000002B00
int 3
; Total bytes of code 290 System.Tests.Perf_String.CtorCharCount(size: 10)
Description of detection logic
Compare Jit Disasm; System.Tests.Perf_String.CtorCharCount(Int32)
sub rsp,28
mov ecx,61
call 0000000000000690
nop
add rsp,28
ret
; Total bytes of code 20 System.Tests.Perf_String.Replace_Char(text: "Hello", oldChar: 'l', newChar: '!')
Description of detection logic
; System.String.Replace(Char, Char)
push r15
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,28
vzeroupper
mov rsi,rcx
mov edi,r8d
movzx ebx,dx
movzx ecx,di
cmp ebx,ecx
je near ptr 000000000000F792
lea rcx,[rsi+0C]
mov r8d,[rsi+8]
mov edx,ebx
call qword ptr [0F408]
mov ebp,eax
test ebp,ebp
jge short 000000000000F6CC
mov rax,rsi
vzeroupper
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
mov r14d,[rsi+8]
sub r14d,ebp
mov ecx,[rsi+8]
call 0
mov r15,rax
test ebp,ebp
jle short 000000000000F6F9
cmp [r15],r15b
lea rcx,[r15+0C]
lea rdx,[rsi+0C]
mov r8d,ebp
add r8,r8
call qword ptr [0BE10]
movsxd rax,ebp
add rax,rax
lea rdx,[rsi+rax+0C]
cmp [r15],r15b
lea rcx,[r15+rax+0C]
cmp r14d,10
jl short 000000000000F757
imul eax,ebx,10001
vmovd xmm0,eax
vpbroadcastd ymm0,xmm0
movzx eax,di
imul eax,10001
vmovd xmm1,eax
vpbroadcastd ymm1,xmm1
vmovupd ymm2,[rdx]
vpcmpeqw ymm3,ymm2,ymm0
vpblendvb ymm2,ymm2,ymm1,ymm3
vmovupd [rcx],ymm2
add rdx,20
add rcx,20
add r14d,0FFFFFFF0
cmp r14d,10
jge short 000000000000F733
test r14d,r14d
jle short 000000000000F77A
movzx eax,word ptr [rdx]
mov r8,rcx
cmp eax,ebx
je short 000000000000F78D
mov [r8],ax
add rdx,2
add rcx,2
dec r14d
test r14d,r14d
jg short 000000000000F75C
mov rax,r15
vzeroupper
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
movzx eax,di
jmp short 000000000000F766
mov rax,rsi
vzeroupper
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
; Total bytes of code 293 Compare Jit Disasm; System.Tests.Perf_String.Replace_Char(System.String, Char, Char)
mov [rsp+18],r8d
mov rcx,rdx
movzx r8d,r9w
mov edx,[rsp+18]
movzx edx,dx
cmp [rcx],ecx
jmp qword ptr [30C0]
; Total bytes of code 27 ; System.String.Replace(Char, Char)
push r15
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,28
vzeroupper
mov rsi,rcx
mov edi,r8d
movzx ebx,dx
movzx ecx,di
cmp ebx,ecx
je near ptr 000000000000F792
lea rcx,[rsi+0C]
mov r8d,[rsi+8]
mov edx,ebx
call qword ptr [0F408]
mov ebp,eax
test ebp,ebp
jge short 000000000000F6CC
mov rax,rsi
vzeroupper
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
mov r14d,[rsi+8]
sub r14d,ebp
mov ecx,[rsi+8]
call 0
mov r15,rax
test ebp,ebp
jle short 000000000000F6F9
cmp [r15],r15b
lea rcx,[r15+0C]
lea rdx,[rsi+0C]
mov r8d,ebp
add r8,r8
call qword ptr [0BE10]
movsxd rax,ebp
add rax,rax
lea rdx,[rsi+rax+0C]
cmp [r15],r15b
lea rcx,[r15+rax+0C]
cmp r14d,10
jl short 000000000000F757
imul eax,ebx,10001
vmovd xmm0,eax
vpbroadcastd ymm0,xmm0
movzx eax,di
imul eax,10001
vmovd xmm1,eax
vpbroadcastd ymm1,xmm1
vmovupd ymm2,[rdx]
vpcmpeqw ymm3,ymm2,ymm0
vpblendvb ymm2,ymm2,ymm1,ymm3
vmovupd [rcx],ymm2
add rdx,20
add rcx,20
add r14d,0FFFFFFF0
cmp r14d,10
jge short 000000000000F733
test r14d,r14d
jle short 000000000000F77A
movzx eax,word ptr [rdx]
mov r8,rcx
cmp eax,ebx
je short 000000000000F78D
mov [r8],ax
add rdx,2
add rcx,2
dec r14d
test r14d,r14d
jg short 000000000000F75C
mov rax,r15
vzeroupper
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
movzx eax,di
jmp short 000000000000F766
mov rax,rsi
vzeroupper
add rsp,28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
; Total bytes of code 293 System.Tests.Perf_String.Trim_CharArr(s: " Te st ", c: [' ', ' '])
Description of detection logic
; System.String.Trim(Char[])
sub rsp,28
xor eax,eax
mov [rsp+20],rax
test rdx,rdx
je short 000000000000F629
mov r8d,[rdx+8]
test r8d,r8d
je short 000000000000F629
add rdx,10
mov [rsp+20],rdx
mov rdx,[rsp+20]
mov r9d,3
call qword ptr [3510]
nop
add rsp,28
ret
mov edx,3
call qword ptr [34F8]
nop
add rsp,28
ret
; Total bytes of code 74 Compare Jit Disasm; System.Tests.Perf_String.Trim_CharArr(System.String, Char[])
mov rcx,rdx
mov rdx,r8
cmp [rcx],ecx
jmp qword ptr [3468]
; Total bytes of code 14 ; System.String.Trim(Char[])
sub rsp,28
xor eax,eax
mov [rsp+20],rax
test rdx,rdx
je short 000000000000F629
mov r8d,[rdx+8]
test r8d,r8d
je short 000000000000F629
add rdx,10
mov [rsp+20],rdx
mov rdx,[rsp+20]
mov r9d,3
call qword ptr [3528]
nop
add rsp,28
ret
mov edx,3
call qword ptr [3510]
nop
add rsp,28
ret
; Total bytes of code 74 System.Tests.Perf_String.CtorCharCount(size: 100)
Description of detection logic
Compare Jit Disasm; System.Tests.Perf_String.CtorCharCount(Int32)
sub rsp,28
mov ecx,61
call 0000000000000690
nop
add rsp,28
ret
; Total bytes of code 20 DocsProfiling workflow for dotnet/runtime repository |
We dont have data to see when regression was exactly introduced, but it might be from one of the following PRs: |
After looking at this in considerable detail, my conclusion is that while the regressions are for real, they are likely to affect only micro benchmarks. Details: I don't think that PR #73434 causes regressions. PR #67389 causes regressions in microbenchmarks that obtain an object pointer by using some very fast mechanism (e.g. a simple cast) and assign it to a field in an object in generation 1 or 2, but don't trigger many GCs. In this kind of scenario, the extra tests done by the more precise write barrier show up as overhead. On the other hand, the benefit of setting fewer cards and thus speeding up the card marking phase in the GC is not realized. Should customers run into this kind of situation, they can switch to a faster but less precise write barrier by using set COMPLUS_GCWriteBarrier=3. PR #73375 causes regressions in microbenchmarks that cause very frequent GCs, but do very little besides allocating lots of memory, and have a pretty small heap size. In this situation, most of the objects marked as live by the GC fit in L1 or L2 processor caches, and thus prefetching won't yield benefits. On the other hand, prefetching adds instructions and thus hurts performance in this situation. A more realistic GC performance test (GCPerfSim) shows sizeable benefits from both changes:
We have also seen worthwhile benefits from both changes in more real-world scenarios. The overall expectation is to see slightly more time spent in the writebarrier code, while GC pause times should be lower. The cost in the writebarrier depends on where most pointer writes occur - if most are to objects in gen 0, the new write barrier will be faster, if most are to objects in gen 1 or 2, the new write barrier will be slower. |
Have we seen any impact on ASP.NET apps that are optimized to reduce allocation? Based on this description, I'd expect some of those workloads that are tuned to avoid allocating and instead do lots of pooling will end up taking a hit. |
Right, workloads that do lots of object pooling and low allocation may conceivably run into this. The escape hatch that we provide would be to set COMPLUS_GCWriteBarrier=3 which would use a less precise but faster write barrier. That is the same writebarrier we used with SVR GC on .NET 6.0, so performance should be the same. |
Doesn't this describe ASP.NET itself? Did this show up in TechEmpower benchmarks at all? |
We haven't noticed any latency/throughput regressions in TE. @sebastienros as fyi. |
I need an ELI5 to better understand how this affects workloads. What does object pooling mean here exactly? Does it matter what technique is used to do the pooling or just the fact that objects are long lived and reused? |
a simple thing that you can use to gauge how much your workload might be affected is to see how much time of course with microbenchmarks, you could have does this help? I was thinking to write a blog entry on this subject but it hasn't been easy to find time... |
Thanks.
Yes, please :-) |
Given the fix to improve decommit here: #76306, moving this to 8 now. With the decommit fix, a normalized run is showing a regression of < 5% for most benchmarks. We have a couple more improvements planned, but they might not meet the bar for 8. |
@PeterSolMS we noticed a regression with the PerfLabTests.LowLevelPerf.GenericClassWithSTringGenericInstanceMethod
|
We also noticed regressions in Sample of one of them: Adding our data for whoever investigates this in the future: System.Text.Tests.Perf_Encoding.GetEncoder(size: 16, encName: "utf-8")
System.Text.Tests.Perf_Encoding.GetEncoder(size: 512, encName: "ascii")
System.Text.Tests.Perf_Encoding.GetEncoder(size: 16, encName: "ascii")
System.Text.Tests.Perf_Encoding.GetEncoder(size: 512, encName: "utf-8")
And these other benchmarks also showed-up with regression. System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 1, 1]), System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 33, 128]), System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 1, 1])
System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 33, 128])
System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 129, 1024])
System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 0, 0])
System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 0, 1024])
|
The above System.IO.Tests.StreamReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 0, 1024])
(etc) |
Closing in lieu of #73592 with the latest .NET 8 results. |
No description provided.
The text was updated successfully, but these errors were encountered: