Skip to content

Instantly share code, notes, and snippets.

@EgorBot
Created September 4, 2024 17:51
Show Gist options
  • Save EgorBot/ad4db5cbd12ab4274e164c37ed170334 to your computer and use it in GitHub Desktop.
Save EgorBot/ad4db5cbd12ab4274e164c37ed170334 to your computer and use it in GitHub Desktop.
diff_asm_50a6e111.asm
Samples: 300K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6013580000, [percent: local period]
instance void [benchapp] System.Text.Json.Tests.Perf_Basic::WriteBasicUtf8()[OptimizedTier1]() /tmp/jitted-47883-2720.so
Percent
Disassembly of section .text:
0000000000000080 <instance void [benchapp] System.Text.Json.Tests.Perf_Basic::WriteBasicUtf8()[OptimizedTier1]>:
instance void [benchapp] System.Text.Json.Tests.Perf_Basic::WriteBasicUtf8()[OptimizedTier1]():
0.35 push rbp
0.01 push r15
0.00 push r14
0.01 push r13
push r12
0.00 push rbx
0.02 sub rsp,0x108
0.39 lea rbp,[rsp+0x130]
0.00 xor eax,eax
0.00 mov QWORD PTR [rbp-0xd8],rax
0.02 vxorps xmm8,xmm8,xmm8
0.01 vmovdqu YMMWORD PTR [rbp-0xd0],ymm8
0.08 vmovdqu YMMWORD PTR [rbp-0xb0],ymm8
0.00 vmovdqu YMMWORD PTR [rbp-0x90],ymm8
0.11 vmovdqu YMMWORD PTR [rbp-0x70],ymm8
0.31 vmovdqu YMMWORD PTR [rbp-0x50],ymm8
0.02 mov QWORD PTR [rbp-0x30],rax
0.08 mov QWORD PTR [rbp-0x128],rsp
0.03 mov rbx,rdi
0.00 mov r15,QWORD PTR [rbx+0x8]
0.19 mov rdi,QWORD PTR [r15+0x8]
1.20 mov r14d,DWORD PTR [r15+0x10]
0.22 test rdi,rdi
0.27 ↓ je 1eb3
cmp DWORD PTR [rdi+0x8],r14d
1.66 ↓ jb 1eb8
0.33 add rdi,0x10
7a: mov esi,r14d
movabs rax,0x789023385788
→ call QWORD PTR [rax]
0.31 xor edi,edi
0.02 mov DWORD PTR [r15+0x10],edi
0.00 mov r13,QWORD PTR [rbx+0x8]
0.02 cmp BYTE PTR [rbx+0x64],0x0
0.03 setne r12b
0.02 movzx r12d,r12b
0.03 cmp BYTE PTR [rbx+0x65],0x0
0.25 ↓ jne 1ecf
0.00 and r12d,0xfffffffd
0.04 ad: movabs rdi,0x789023910520
0.01 → call instance void [benchapp] System.Text.Json.Tests.Perf_Basic::WriteBasicUtf8()[OptimizedTier1]+0x7e2f5400
0.05 mov r15,rax
test r13,r13
0.01 ↓ je 1f06
lea rdi,[r15+0x8]
mov rsi,r13
0.19 → call instance void [benchapp] System.Text.Json.Tests.Perf_Basic::WriteBasicUtf8()[OptimizedTier1]+0x7e458d60
0.08 xor edi,edi
0.05 mov QWORD PTR [r15+0x68],rdi
0.02 mov DWORD PTR [r15+0x70],edi
0.01 mov DWORD PTR [r15+0x74],r12d
0.04 mov edi,0x9
0.29 mov esi,0x20
test BYTE PTR [r15+0x74],0x8
1.29 cmove edi,esi
0.30 mov BYTE PTR [r15+0x3b],dil
0.02 mov eax,r12d
and eax,0x7f0
0.00 sar eax,0x4
0.01 ↓ jne 1ed8
0.02 mov ecx,0x2
10e: mov DWORD PTR [r15+0x2c],ecx
0.02 test r12b,0x4
0.30 ↓ jne 1ee5
movabs rdx,0x789098401c40
0.02 126: mov edi,DWORD PTR [rdx+0x8]
0.01 mov DWORD PTR [r15+0x30],edi
0.01 mov DWORD PTR [r15+0x70],0x3e8
0.01 mov r13,r15
0.03 mov QWORD PTR [rbp-0xf0],r13
0.01 mov edi,DWORD PTR [r15+0x28]
0.02 and edi,0x7fffffff
0.29 cmp edi,DWORD PTR [r15+0x70]
0.16 ↓ jge 1e72
0.13 mov r14d,DWORD PTR [r15+0x74]
mov esi,r14d
0.00 and esi,0x3
0.01 cmp esi,0x2
0.01 ↓ je 14aa
test r14b,0x1
0.01 ↓ jne 1443
cmp BYTE PTR [r15+0x38],0x0
0.14 ↓ jne 1009
0.02 test edi,edi
0.13 ↓ jne 18a
cmp BYTE PTR [r15+0x3a],0x0
0.00 ↓ jne 1201
0.02 18a: lea r14,[r15+0x50]
0.02 cmp DWORD PTR [r14+0x10],0x40
0.02 ↓ jge 1220
0.02 mov rdi,QWORD PTR [r14+0x8]
0.18 add rdi,rdi
0.02 or rdi,0x1
0.10 mov QWORD PTR [r14+0x8],rdi
0.01 1a8: inc DWORD
0.02 mov BYTE PTR [r15+0x38],0x1
0.02 mov edi,DWORD PTR [r15+0x4c]
0.02 mov esi,edi
0.02 sub esi,DWORD PTR [r15+0x34]
0.15 cmp esi,0x2
0.01 ↓ jge 253
test edi,edi
0.12 ↓ jne 132b
cmp QWORD PTR [r15+0x10],0x0
0.01 ↓ jne 12f5
0.03 mov rdi,QWORD PTR [r15+0x8]
0.03 mov r12,rdi
0.02 movabs rdi,0x7890238589d0
0.02 cmp QWORD PTR [r12],rdi
0.34 ↓ jne 12c7
0.09 mov rdi,QWORD PTR [r12+0x8]
0.14 mov edi,DWORD PTR [rdi+0x8]
0.82 sub edi,DWORD PTR [r12+0x10]
0.32 cmp edi,0x100
0.28 ↓ jl 1239
20b: mov rsi,QWORD PTR [r12+0x8]
0.01 mov r14d,DWORD PTR [r12+0x10]
0.01 test rsi,rsi
0.03 ↓ je 12b1
cmp DWORD PTR [rsi+0x8],r14d
0.52 ↓ jb 1e3f
0.00 mov r15d,DWORD PTR [rsi+0x8]
0.08 sub r15d,r14d
0.06 22f: lea r12,[r13+0x40]
0.10 mov rdi,r12
→ call instance void [benchapp] System.Text.Json.Tests.Perf_Basic::WriteBasicUtf8()[OptimizedTier1]+0x7e458d60
0.03 mov DWORD PTR [r12+0x8],r14d
0.17 mov DWORD PTR [r12+0xc],r15d
0.14 cmp DWORD PTR [r13+0x4c],0x100
1.94 ↓ jl 1390
0.32 253: lea r12,[r13+0x40]
0.03 xor esi,esi
xor eax,eax
mov rdi,QWORD PTR [r12]
test rdi,rdi
0.04 ↓ je 29f
mov rsi,QWORD PTR [rdi]
0.37 test DWORD PTR [rsi],0x80000000
1.40 ↓ je 13ef
lea rsi,[rdi+0x10]
0.03 mov eax,DWORD PTR [rdi+0x8]
0.01 27a: mov edx,DWORD PTR [r12+0x8]
and edx,0x7fffffff
0.00 mov edi,DWORD PTR [r12+0xc]
0.00 mov ecx,edi
0.00 add rcx,rdx
0.01 mov eax,eax
0.28 cmp rcx,rax
0.03 ↓ ja 1e3f
add rsi,rdx
0.01 mov eax,edi
29f: cmp DWORD PTR [r13+0x28],0x0
↓ jl 1403
2aa: mov ecx,DWORD PTR [r13+0x34]
0.01 lea edx,[rcx+0x1]
0.00 mov DWORD PTR [r13+0x34],edx
0.31 cmp ecx,eax
0.04 ↓ jae 1e4c
mov edx,ecx
mov BYTE PTR [rsi+rdx*1],0x7b
0.09 2c3: mov esi,DWORD PTR [r13+0x28]
0.03 and esi,0x7fffffff
0.00 mov DWORD PTR [r13+0x28],esi
0.01 inc esi
0.01 mov DWORD PTR [r13+0x28],esi
0.25 mov BYTE PTR [r13+0x3a],0x1
0.04 mov rsi,QWORD PTR [rbx+0x30]
0.01 test rsi,rsi
0.03 ↓ je 1019
lea r12,[rsi+0x10]
mov r15d,DWORD PTR [rsi+0x8]
0.04 2f1: cmp r15d,0x9ef21aa
0.03 ↓ jg 1e62
mov rdi,QWORD PTR [r13+0x68]
0.00 movabs rsi,0x78500c001388
0.22 test rdi,rdi
0.03 cmove rdi,QWORD PTR [rsi]
0.03 movabs r14,0x7890239146a0
0.03 cmp QWORD PTR [rdi],r14
0.24 ↓ jne 14c3
mov rsi,r12
0.00 mov edx,r15d
mov rdi,QWORD PTR [rdi+0x8]
0.22 movabs rax,0x78902386f600
0.02 cmp DWORD PTR [rdi],edi
0.47 → call QWORD PTR [rax]
0.26 33e: cmp eax,0xffffffff
0.02 ↓ jne 1515
mov esi,DWORD PTR [r13+0x74]
0.01 test sil,0x2
0.03 ↓ jne 367
cmp BYTE PTR [r13+0x38],0x0
0.04 ↓ je 14d7
0.04 cmp BYTE PTR [r13+0x3a],0x5
0.04 ↓ je 14d7
0.22 367: test sil,0x1
0.00 ↓ jne 14f6
mov rsi,r12
0.03 mov edx,r15d
mov rdi,r13
0.02 mov ecx,0x2a
movabs rax,0x78902386f7f8
0.02 → call QWORD PTR [rax]
0.28 38b: or DWORD PTR [r13+0x28],0x80000000
0.25 mov BYTE PTR [r13+0x3a],0x8
0.02 mov rdi,QWORD PTR [rbx+0x20]
0.07 test rdi,rdi
0.02 ↓ je 1024
lea r15,[rdi+0x10]
0.01 mov r12d,DWORD PTR [rdi+0x8]
0.26 3ad: movabs rax,0x789098409e2c
0.18 mov QWORD PTR [rbp-0x108],rax
0.03 cmp r12d,0x9ef21aa
0.08 ↓ jg 102f
0.00 3cb: lea rsi,[r13+0x68]
0.00 mov rdi,QWORD PTR [rsi]
0.13 mov QWORD PTR [rbp-0x78],rax
0.00 mov rsi,rax
0.01 movabs rdx,0x78500c001388
0.03 test rdi,rdi
0.19 cmove rdi,QWORD PTR [rdx]
0.05 cmp QWORD PTR [rdi],r14
0.65 ↓ jne 1537
0.11 mov rdi,QWORD PTR [rdi+0x8]
0.20 cmp BYTE PTR [rdi],dil
0.92 mov edx,0x4
0.00 movabs rcx,0x78902386f9c0
0.01 → call QWORD PTR [rcx]
0.07 40b: mov DWORD PTR [rbp-0x6c],eax
xor esi,esi
mov QWORD PTR [rbp-0x78],rsi
mov rdi,QWORD PTR [r13+0x68]
0.01 movabs rsi,0x78500c001388
0.28 test rdi,rdi
cmove rdi,QWORD PTR [rsi]
0.08 cmp QWORD PTR [rdi],r14
0.04 ↓ jne 154f
0.01 mov rsi,r15
mov edx,r12d
mov rdi,QWORD PTR [rdi+0x8]
0.02 movabs rax,0x78902386f600
0.22 cmp DWORD PTR [rdi],edi
0.14 → call QWORD PTR [rax]
0.00 44a: mov r9d,DWORD PTR [rbp-0x6c]
0.01 lea ecx,[r9+rax*1]
0.00 cmp ecx,0xfffffffe
0.19 ↓ jne 15a9
mov ecx,DWORD PTR [r13+0x74]
0.01 test cl,0x2
0.01 ↓ jne 47a
cmp BYTE PTR [r13+0x38],0x0
0.15 ↓ je 1563
0.01 cmp BYTE PTR [r13+0x3a],0x5
0.01 ↓ je 1563
0.01 47a: test cl,0x1
↓ jne 1582
mov rcx,QWORD PTR [rbp-0x108]
0.18 mov r8d,0x4
mov rsi,r15
0.00 mov edx,r12d
0.12 mov rdi,r13
0.01 movabs rax,0x78902386fa50
0.00 → call QWORD PTR [rax]
4a5: or DWORD PTR [r13+0x28],0x80000000
0.02 mov BYTE PTR [r13+0x3a],0x7
mov rdi,QWORD PTR [rbx+0x28]
0.00 test rdi,rdi
0.00 ↓ je 1056
0.00 lea r12,[rdi+0x10]
0.01 mov r15d,DWORD PTR [rdi+0x8]
0.38 4c7: movabs rax,0x789098409e4c
mov QWORD PTR [rbp-0x110],rax
0.00 cmp r15d,0x9ef21aa
0.03 ↓ jg 1061
0.00 4e5: lea rsi,[r13+0x68]
0.00 mov rdi,QWORD PTR [rsi]
0.00 mov QWORD PTR [rbp-0x88],rax
0.00 mov rsi,rax
0.01 movabs rdx,0x78500c001388
0.31 test rdi,rdi
0.00 cmove rdi,QWORD PTR [rdx]
0.00 cmp QWORD PTR [rdi],r14
0.13 ↓ jne 15db
0.05 mov rdi,QWORD PTR [rdi+0x8]
0.02 cmp BYTE PTR [rdi],dil
0.48 mov edx,0x5
0.00 movabs rcx,0x78902386f9c0
0.17 → call QWORD PTR [rcx]
0.00 528: mov DWORD PTR [rbp-0x7c],eax
0.17 xor esi,esi
mov QWORD PTR [rbp-0x88],rsi
0.00 mov rdi,QWORD PTR [r13+0x68]
0.17 movabs rsi,0x78500c001388
test rdi,rdi
cmove rdi,QWORD PTR [rsi]
0.01 cmp QWORD PTR [rdi],r14
0.13 ↓ jne 15f3
0.07 mov rsi,r12
mov edx,r15d
mov rdi,QWORD PTR [rdi+0x8]
0.15 movabs rax,0x78902386f600
cmp DWORD PTR [rdi],edi
0.16 → call QWORD PTR [rax]
0.00 56a: mov r9d,DWORD PTR [rbp-0x7c]
0.13 lea ecx,[r9+rax*1]
cmp ecx,0xfffffffe
↓ jne 164d
mov ecx,DWORD PTR [r13+0x74]
0.00 test cl,0x2
↓ jne 59a
cmp BYTE PTR [r13+0x38],0x0
0.23 ↓ je 1607
0.01 cmp BYTE PTR [r13+0x3a],0x5
0.00 ↓ je 1607
0.14 59a: test cl,0x1
0.00 ↓ jne 1626
mov rcx,QWORD PTR [rbp-0x110]
0.00 mov r8d,0x5
mov rsi,r12
mov edx,r15d
0.22 mov rdi,r13
0.01 movabs rax,0x78902386fa50
0.00 → call QWORD PTR [rax]
5c5: mov edx,DWORD PTR [r13+0x28]
0.01 or edx,0x80000000
0.01 mov DWORD PTR [r13+0x28],edx
0.00 mov BYTE PTR [r13+0x3a],0x7
0.01 mov rdi,QWORD PTR [rbx+0x38]
0.05 test rdi,rdi
0.26 ↓ je 1088
lea r15,[rdi+0x10]
0.00 mov r12d,DWORD PTR [rdi+0x8]
0.04 5ed: cmp r12d,0x9ef21aa
0.03 ↓ jg 1093
mov edi,edx
0.00 and edi,0x7fffffff
0.00 cmp edi,DWORD PTR [r13+0x70]
0.01 ↓ jge 1093
60c: mov rdi,QWORD PTR [r13+0x68]
0.07 movabs rsi,0x78500c001388
0.27 test rdi,rdi
cmove rdi,QWORD PTR [rsi]
0.00 cmp QWORD PTR [rdi],r14
0.15 ↓ jne 167f
mov rsi,r15
mov edx,r12d
mov rdi,QWORD PTR [rdi+0x8]
0.10 movabs rax,0x78902386f600
0.23 cmp DWORD PTR [rdi],edi
0.62 → call QWORD PTR [rax]
642: cmp eax,0xffffffff
0.17 ↓ jne 16ee
test BYTE PTR [r13+0x74],0x2
0.02 ↓ jne 68b
0.06 cmp BYTE PTR [r13+0x38],0x0
0.01 ↓ je 16b0
0.11 cmp BYTE PTR [r13+0x3a],0x5
0.01 ↓ je 16b0
lea r8,[r13+0x50]
mov QWORD PTR [rbp-0xf8],r8
0.18 cmp DWORD PTR [r8+0x10],0x40
0.01 ↓ jge 1693
0.06 shl QWORD PTR [r8+0x8],1
0.12 682: inc DWORD
mov BYTE PTR [r13+0x38],0x0
68b: test BYTE PTR [r13+0x74],0x1
0.01 ↓ jne 16cf
0.17 mov rsi,r15
0.01 mov edx,r12d
0.07 mov rdi,r13
0.11 mov ecx,0x5b
0.00 movabs rax,0x78902386fb58
→ call QWORD PTR [rax]
0.02 6b0: mov esi,DWORD PTR [r13+0x28]
0.01 and esi,0x7fffffff
0.01 mov DWORD PTR [r13+0x28],esi
inc esi
0.01 mov DWORD PTR [r13+0x28],esi
0.00 mov BYTE PTR [r13+0x3a],0x3
0.33 movabs r12,0x789098409e6c
0.01 lea rsi,[r13+0x68]
mov rdi,QWORD PTR [rsi]
0.02 mov QWORD PTR [rbp-0x90],r12
0.00 mov rsi,r12
0.00 movabs rdx,0x78500c001388
0.00 test rdi,rdi
cmove rdi,QWORD PTR [rdx]
0.33 cmp QWORD PTR [rdi],r14
0.10 ↓ jne 1710
mov rdi,QWORD PTR [rdi+0x8]
0.05 cmp BYTE PTR [rdi],dil
0.34 mov edx,0xc
movabs rax,0x78902386f9c0
0.00 → call QWORD PTR [rax]
0.09 mov ecx,eax
718: xor esi,esi
mov QWORD PTR [rbp-0x90],rsi
cmp ecx,0xffffffff
0.20 ↓ jne 178b
mov eax,DWORD PTR [r13+0x74]
0.02 test al,0x2
↓ jne 74b
cmp BYTE PTR [r13+0x38],0x0
0.12 ↓ jne 10ae
0.00 test DWORD PTR [r13+0x28],0x7fffffff
0.00 ↓ je 1726
74b: test al,0x1
0.00 ↓ jne 176f
mov rsi,r12
0.21 mov edx,0xc
0.04 mov rdi,r13
movabs rax,0x78902386fc48
0.10 → call QWORD PTR [rax]
0.00 76a: or DWORD PTR [r13+0x28],0x80000000
0.01 mov BYTE PTR [r13+0x3a],0x7
0.00 movabs r15,0x789098409e9c
lea rsi,[r13+0x68]
mov rdi,QWORD PTR [rsi]
0.01 mov QWORD PTR [rbp-0x98],r15
0.36 mov rsi,r15
movabs rdx,0x78500c001388
test rdi,rdi
0.01 cmove rdi,QWORD PTR [rdx]
0.01 cmp QWORD PTR [rdi],r14
0.26 ↓ jne 17a7
mov rdi,QWORD PTR [rdi+0x8]
0.03 cmp BYTE PTR [rdi],dil
0.71 mov edx,0xc
movabs rax,0x78902386f9c0
→ call QWORD PTR [rax]
0.23 mov ecx,eax
7c6: xor esi,esi
mov QWORD PTR [rbp-0x98],rsi
cmp ecx,0xffffffff
0.08 ↓ jne 1822
mov eax,DWORD PTR [r13+0x74]
0.01 test al,0x2
↓ jne 7f9
cmp BYTE PTR [r13+0x38],0x0
0.24 ↓ jne 10be
test DWORD PTR [r13+0x28],0x7fffffff
0.00 ↓ je 17bd
0.00 7f9: test al,0x1
↓ jne 1806
mov rsi,r15
0.09 mov edx,0xc
0.01 mov rdi,r13
movabs rax,0x78902386fc48
0.19 → call QWORD PTR [rax]
0.01 818: or DWORD PTR [r13+0x28],0x80000000
0.01 mov BYTE PTR [r13+0x3a],0x7
0.00 mov eax,DWORD PTR [r13+0x74]
0.01 mov edi,eax
0.00 and edi,0x3
cmp edi,0x2
0.37 ↓ je 189c
test al,0x1
0.00 ↓ jne 186b
mov rdi,r13
mov esi,0x5d
0.00 movabs rax,0x78902386fca8
→ call QWORD PTR [rax]
0.03 mov esi,DWORD PTR [r13+0x4c]
sub esi,DWORD PTR [r13+0x34]
0.01 test esi,esi
0.02 ↓ jle 183e
863: lea r15,[r13+0x40]
0.26 xor esi,esi
0.01 xor eax,eax
mov rdi,QWORD PTR [r15]
0.01 test rdi,rdi
↓ je 8ac
mov rsi,QWORD PTR [rdi]
0.04 test DWORD PTR [rsi],0x80000000
0.43 ↓ je 1857
0.02 lea rsi,[rdi+0x10]
0.05 mov eax,DWORD PTR [rdi+0x8]
0.16 889: mov edx,DWORD PTR [r15+0x8]
and edx,0x7fffffff
mov edi,DWORD PTR [r15+0xc]
0.01 mov ecx,edi
add rcx,rdx
0.00 mov eax,eax
0.13 cmp rcx,rax
0.07 ↓ ja 1e3f
add rsi,rdx
0.15 mov eax,edi
8ac: mov edx,DWORD PTR [r13+0x34]
0.00 lea edi,[rdx+0x1]
0.00 mov DWORD PTR [r13+0x34],edi
cmp edx,eax
0.00 ↓ jae 1e4c
0.01 mov BYTE PTR [rsi+rdx*1],0x5d
0.17 8c3: mov esi,DWORD PTR [r13+0x28]
0.05 or esi,0x80000000
0.14 mov DWORD PTR [r13+0x28],esi
test esi,0x7fffffff
0.00 ↓ je 8df
dec esi
0.00 mov DWORD PTR [r13+0x28],esi
8df: mov BYTE PTR [r13+0x3a],0x4
0.01 mov rsi,QWORD PTR [rbx+0x40]
0.11 test rsi,rsi
0.08 ↓ je 10ce
0.01 lea r15,[rsi+0x10]
0.13 mov r12d,DWORD PTR [rsi+0x8]
0.02 8f9: cmp r12d,0x9ef21aa
0.01 ↓ jg 10d9
mov esi,DWORD PTR [r13+0x28]
0.11 and esi,0x7fffffff
0.04 cmp esi,DWORD PTR [r13+0x70]
0.08 ↓ jge 10d9
0.01 91a: mov rdi,QWORD PTR [r13+0x68]
0.11 movabs rsi,0x78500c001388
0.04 test rdi,rdi
0.11 cmove rdi,QWORD PTR [rsi]
0.01 cmp QWORD PTR [rdi],r14
0.20 ↓ jne 18b5
mov rsi,r15
0.01 mov edx,r12d
0.04 mov rdi,QWORD PTR [rdi+0x8]
0.16 movabs rax,0x78902386f600
0.05 cmp DWORD PTR [rdi],edi
0.67 → call QWORD PTR [rax]
0.19 950: cmp eax,0xffffffff
0.01 ↓ jne 1927
test BYTE PTR [r13+0x74],0x2
0.03 ↓ jne 9a4
0.01 cmp BYTE PTR [r13+0x38],0x0
0.04 ↓ je 18e9
0.09 cmp BYTE PTR [r13+0x3a],0x5
0.03 ↓ je 18e9
0.20 lea r8,[r13+0x50]
mov QWORD PTR [rbp-0x100],r8
0.01 cmp DWORD PTR [r8+0x10],0x40
0.00 ↓ jge 18c9
0.02 mov rsi,QWORD PTR [r8+0x8]
0.00 add rsi,rsi
0.08 or rsi,0x1
0.02 mov QWORD PTR [r8+0x8],rsi
0.19 99b: inc DWORD
0.00 mov BYTE PTR [r13+0x38],0x1
0.02 9a4: test BYTE PTR [r13+0x74],0x1
0.02 ↓ jne 1908
0.03 mov rsi,r15
0.00 mov edx,r12d
0.07 mov rdi,r13
0.02 mov ecx,0x7b
0.19 movabs rax,0x78902386fb58
0.00 → call QWORD PTR [rax]
0.01 9c9: mov esi,DWORD PTR [r13+0x28]
0.01 and esi,0x7fffffff
0.00 mov DWORD PTR [r13+0x28],esi
inc esi
0.01 mov DWORD PTR [r13+0x28],esi
mov BYTE PTR [r13+0x3a],0x1
0.34 mov rsi,QWORD PTR [rbx+0x48]
0.01 test rsi,rsi
↓ je 10f8
lea r15,[rsi+0x10]
mov r12d,DWORD PTR [rsi+0x8]
0.02 9f7: movabs rax,0x789098409ecc
mov QWORD PTR [rbp-0x118],rax
0.01 cmp r12d,0x9ef21aa
0.00 ↓ jg 1103
a15: lea rsi,[r13+0x68]
0.30 mov rdi,QWORD PTR [rsi]
0.01 mov QWORD PTR [rbp-0xa8],rax
0.00 mov rsi,rax
movabs rdx,0x78500c001388
0.00 test rdi,rdi
0.00 cmove rdi,QWORD PTR [rdx]
0.02 cmp QWORD PTR [rdi],r14
0.14 ↓ jne 1949
0.33 mov rdi,QWORD PTR [rdi+0x8]
0.05 cmp BYTE PTR [rdi],dil
0.19 mov edx,0xf
movabs rcx,0x78902386f9c0
→ call QWORD PTR [rcx]
a58: mov DWORD PTR [rbp-0x9c],eax
0.01 xor esi,esi
0.18 mov QWORD PTR [rbp-0xa8],rsi
0.01 mov rdi,QWORD PTR [r13+0x68]
0.01 movabs rsi,0x78500c001388
test rdi,rdi
0.14 cmove rdi,QWORD PTR [rsi]
0.01 cmp QWORD PTR [rdi],r14
0.06 ↓ jne 1961
0.02 mov rsi,r15
0.20 mov edx,r12d
mov rdi,QWORD PTR [rdi+0x8]
0.02 movabs rax,0x78902386f600
cmp DWORD PTR [rdi],edi
0.29 → call QWORD PTR [rax]
0.19 a9d: mov r9d,DWORD PTR [rbp-0x9c]
0.00 lea ecx,[r9+rax*1]
cmp ecx,0xfffffffe
0.18 ↓ jne 19bb
mov ecx,DWORD PTR [r13+0x74]
test cl,0x2
0.00 ↓ jne ad0
cmp BYTE PTR [r13+0x38],0x0
0.01 ↓ je 1975
0.17 cmp BYTE PTR [r13+0x3a],0x5
0.00 ↓ je 1975
0.01 ad0: test cl,0x1
↓ jne 1994
mov rcx,QWORD PTR [rbp-0x118]
0.17 mov r8d,0xf
mov rsi,r15
0.00 mov edx,r12d
0.00 mov rdi,r13
0.19 movabs rax,0x78902386fa50
→ call QWORD PTR [rax]
afb: or DWORD PTR [r13+0x28],0x80000000
0.01 mov BYTE PTR [r13+0x3a],0x7
0.00 mov rsi,QWORD PTR [rbx+0x50]
test rsi,rsi
0.00 ↓ je 112a
lea r12,[rsi+0x10]
0.01 mov r15d,DWORD PTR [rsi+0x8]
0.32 b1d: movabs rax,0x789098409f04
mov QWORD PTR [rbp-0x120],rax
cmp r15d,0x9ef21aa
0.01 ↓ jg 1135
b3b: lea rsi,[r13+0x68]
0.00 mov rdi,QWORD PTR [rsi]
0.00 mov QWORD PTR [rbp-0xb8],rax
0.00 mov rsi,rax
0.01 movabs rdx,0x78500c001388
0.34 test rdi,rdi
0.00 cmove rdi,QWORD PTR [rdx]
0.01 cmp QWORD PTR [rdi],r14
0.09 ↓ jne 19f0
mov rdi,QWORD PTR [rdi+0x8]
0.01 cmp BYTE PTR [rdi],dil
0.28 mov edx,0x7
0.01 movabs rcx,0x78902386f9c0
0.23 → call QWORD PTR [rcx]
0.01 b7e: mov DWORD PTR [rbp-0xac],eax
0.00 xor esi,esi
mov QWORD PTR [rbp-0xb8],rsi
0.18 mov rdi,QWORD PTR [r13+0x68]
0.01 movabs rsi,0x78500c001388
0.01 test rdi,rdi
0.13 cmove rdi,QWORD PTR [rsi]
cmp QWORD PTR [rdi],r14
0.08 ↓ jne 1a08
mov rsi,r12
mov edx,r15d
0.16 mov rdi,QWORD PTR [rdi+0x8]
0.02 movabs rax,0x78902386f600
0.00 cmp DWORD PTR [rdi],edi
0.42 → call QWORD PTR [rax]
0.03 bc3: mov r9d,DWORD PTR [rbp-0xac]
0.16 lea ecx,[r9+rax*1]
cmp ecx,0xfffffffe
↓ jne 1a62
mov ecx,DWORD PTR [r13+0x74]
test cl,0x2
0.02 ↓ jne bf6
cmp BYTE PTR [r13+0x38],0x0
0.13 ↓ je 1a1c
0.02 cmp BYTE PTR [r13+0x3a],0x5
0.00 ↓ je 1a1c
0.19 bf6: test cl,0x1
↓ jne 1a3b
mov rcx,QWORD PTR [rbp-0x120]
mov r8d,0x7
mov rsi,r12
0.03 mov edx,r15d
0.13 mov rdi,r13
0.04 movabs rax,0x78902386fa50
→ call QWORD PTR [rax]
0.00 c21: or DWORD PTR [r13+0x28],0x80000000
0.01 mov BYTE PTR [r13+0x3a],0x7
mov rsi,QWORD PTR [rbx+0x58]
test rsi,rsi
0.00 ↓ je 115c
lea r15,[rsi+0x10]
0.02 mov r12d,DWORD PTR [rsi+0x8]
0.35 c43: cmp r12d,0x9ef21aa
0.01 ↓ jg 1e52
mov rdi,QWORD PTR [r13+0x68]
movabs rsi,0x78500c001388
0.01 test rdi,rdi
0.00 cmove rdi,QWORD PTR [rsi]
0.00 cmp QWORD PTR [rdi],r14
0.07 ↓ jne 1a97
0.00 mov rsi,r15
0.29 mov edx,r12d
0.01 mov rdi,QWORD PTR [rdi+0x8]
0.01 movabs rax,0x78902386f600
0.00 cmp DWORD PTR [rdi],edi
0.21 → call QWORD PTR [rax]
0.27 c86: cmp eax,0xffffffff
0.01 ↓ jne 1ae9
mov esi,DWORD PTR [r13+0x74]
0.00 test sil,0x2
0.02 ↓ jne caf
cmp BYTE PTR [r13+0x38],0x0
0.01 ↓ je 1aab
0.02 cmp BYTE PTR [r13+0x3a],0x5
0.03 ↓ je 1aab
0.26 caf: test sil,0x1
↓ jne 1aca
mov rsi,r15
0.02 mov edx,r12d
mov rdi,r13
0.03 mov ecx,0x17f04
0.00 movabs rax,0x78902386f7f8
0.02 → call QWORD PTR [rax]
0.08 cd3: or DWORD PTR [r13+0x28],0x80000000
0.13 mov BYTE PTR [r13+0x3a],0x8
0.16 mov r15d,DWORD PTR [r13+0x74]
0.05 mov edi,r15d
0.01 and edi,0x3
0.01 cmp edi,0x2
0.02 ↓ je 1b6b
test r15b,0x1
0.07 ↓ jne 1b38
mov rdi,r13
mov esi,0x7d
0.08 movabs rax,0x78902386fca8
0.16 → call QWORD PTR [rax]
0.09 mov esi,DWORD PTR [r13+0x4c]
0.02 sub esi,DWORD PTR [r13+0x34]
0.01 test esi,esi
0.07 ↓ jle 1b0b
d21: lea r15,[r13+0x40]
0.14 xor r12d,r12d
0.02 xor eax,eax
0.00 mov rdi,QWORD PTR [r15]
0.13 test rdi,rdi
0.01 ↓ je d6b
mov rax,QWORD PTR [rdi]
0.17 test DWORD PTR [rax],0x80000000
0.63 ↓ je 1b24
lea r12,[rdi+0x10]
0.02 mov eax,DWORD PTR [rdi+0x8]
0.16 d48: mov esi,DWORD PTR [r15+0x8]
0.01 and esi,0x7fffffff
0.00 mov edx,DWORD PTR [r15+0xc]
0.04 mov edi,edx
add rdi,rsi
0.00 mov eax,eax
0.16 cmp rdi,rax
0.07 ↓ ja 1e3f
add r12,rsi
0.12 mov eax,edx
0.01 d6b: mov esi,DWORD PTR [r13+0x34]
0.00 lea edx,[rsi+0x1]
0.03 mov DWORD PTR [r13+0x34],edx
cmp esi,eax
↓ jae 1e4c
mov BYTE PTR [r12+rsi*1],0x7d
0.17 d83: mov esi,DWORD PTR [r13+0x28]
0.05 or esi,0x80000000
0.09 mov DWORD PTR [r13+0x28],esi
0.00 test esi,0x7fffffff
0.01 ↓ je d9f
dec esi
0.02 mov DWORD PTR [r13+0x28],esi
0.00 d9f: mov BYTE PTR [r13+0x3a],0x2
0.00 mov rsi,QWORD PTR [rbx+0x18]
0.15 test rsi,rsi
0.06 ↓ je 1167
lea r15,[rsi+0x10]
0.10 mov r12d,DWORD PTR [rsi+0x8]
0.04 db9: cmp r12d,0x9ef21aa
0.02 ↓ jg 1172
mov esi,DWORD PTR [r13+0x28]
0.17 and esi,0x7fffffff
0.07 cmp esi,DWORD PTR [r13+0x70]
0.07 ↓ jge 1172
dda: mov rdi,QWORD PTR [r13+0x68]
0.11 movabs rsi,0x78500c001388
0.03 test rdi,rdi
0.08 cmove rdi,QWORD PTR [rsi]
0.01 cmp QWORD PTR [rdi],r14
0.28 ↓ jne 1b84
mov rsi,r15
mov edx,r12d
0.05 mov rdi,QWORD PTR [rdi+0x8]
0.16 movabs rax,0x78902386f600
0.04 cmp DWORD PTR [rdi],edi
0.73 → call QWORD PTR [rax]
0.09 e10: cmp eax,0xffffffff
0.25 ↓ jne 1bec
test BYTE PTR [r13+0x74],0x2
0.02 ↓ jne e52
0.01 cmp BYTE PTR [r13+0x38],0x0
0.06 ↓ je 1bae
0.01 cmp BYTE PTR [r13+0x3a],0x5
0.03 ↓ je 1bae
0.08 lea r14,[r13+0x50]
cmp DWORD PTR [r14+0x10],0x40
0.26 ↓ jge 1b98
0.01 shl QWORD PTR [r14+0x8],1
0.02 e49: inc DWORD
0.02 mov BYTE PTR [r13+0x38],0x0
0.02 e52: test BYTE PTR [r13+0x74],0x1
0.08 ↓ jne 1bcd
0.02 mov rsi,r15
0.21 mov edx,r12d
0.01 mov rdi,r13
0.01 mov ecx,0x5b
movabs rax,0x78902386fb58
0.01 → call QWORD PTR [rax]
0.01 e77: and DWORD PTR [r13+0x28],0x7fffffff
0.02 inc DWORD
0.27 mov BYTE PTR [r13+0x3a],0x3
0.03 xor r15d,r15d
0.00 cmp DWORD PTR [rbx+0x60],0x0
0.01 ↓ jle fd7
0.28 e95: mov rsi,QWORD PTR [rbx+0x10]
0.01 cmp r15d,DWORD PTR [rsi+0x8]
0.25 ↓ jae 1e4c
0.01 mov esi,DWORD PTR [rsi+r15*4+0x10]
3.03 movsxd r12,esi
0.29 test BYTE PTR [r13+0x74],0x2
0.03 ↓ jne ecb
0.02 cmp BYTE PTR [r13+0x38],0x0
0.03 ↓ jne 1191
0.31 test DWORD PTR [r13+0x28],0x7fffffff
0.30 ↓ je 1c0e
0.11 ecb: test BYTE PTR [r13+0x74],0x1
2.67 ↓ jne 11ea
0.31 mov esi,DWORD PTR [r13+0x4c]
0.02 sub esi,DWORD PTR [r13+0x34]
0.38 cmp esi,0x15
0.34 ↓ jl 1c57
ee7: lea r14,[r13+0x40]
0.12 xor esi,esi
0.00 xor eax,eax
0.08 mov rdi,QWORD PTR [r14]
2.46 test rdi,rdi
0.27 ↓ je f30
mov rsi,QWORD PTR [rdi]
0.56 test DWORD PTR [rsi],0x80000000
3.22 ↓ je 1c70
lea rsi,[rdi+0x10]
0.24 mov eax,DWORD PTR [rdi+0x8]
0.19 f0d: mov edx,DWORD PTR [r14+0x8]
0.03 and edx,0x7fffffff
0.06 mov ecx,DWORD PTR [r14+0xc]
1.97 mov edi,ecx
0.15 add rdi,rdx
0.02 mov eax,eax
0.70 cmp rdi,rax
0.27 ↓ ja 1e3f
add rsi,rdx
0.14 mov eax,ecx
0.00 f30: cmp DWORD PTR [r13+0x28],0x0
0.06 ↓ jge f4e
1.98 mov edx,DWORD PTR [r13+0x34]
0.14 lea ecx,[rdx+0x1]
0.01 mov DWORD PTR [r13+0x34],ecx
0.72 cmp edx,eax
0.13 ↓ jae 1e4c
mov BYTE PTR [rsi+rdx*1],0x2c
0.69 f4e: mov edx,DWORD PTR [r13+0x34]
0.84 cmp edx,eax
0.48 ↓ ja 1e3f
mov r14d,edx
1.65 add r14,rsi
0.28 sub eax,edx
0.25 mov DWORD PTR [rbp-0xe0],eax
0.56 mov WORD PTR [rbp-0xc8],0x0
0.16 rex movzx esi,BYTE PTR [rbp-0xc8]
0.98 movzx edx,BYTE PTR [rbp-0xc7]
3.54 or esi,edx
1.35 ↓ jne 1c8b
test r12,r12
1.14 ↓ jl 11a1
mov rsi,r14
0.13 mov edx,eax
0.09 lea rcx,[rbp-0xc0]
0.18 mov rdi,r12
0.03 movabs rax,0x78902386f858
0.05 → call QWORD PTR [rax]
0.99 fac: mov edi,DWORD PTR [rbp-0xc0]
0.55 add DWORD PTR [r13+0x34],edi
0.40 fb6: mov rdi,r13
1.17 movabs rax,0x78902386eb80
0.25 → call QWORD PTR [rax]
0.75 mov BYTE PTR [r13+0x3a],0x8
inc r15d
cmp r15d,DWORD PTR [rbx+0x60]
0.01 ↑ jl e95
fd7: mov rdi,r13
movabs rax,0x78902386e5e0
→ call QWORD PTR [rax]
0.24 mov rdi,r13
movabs rax,0x78902386e610
0.14 → call QWORD PTR [rax]
0.26 mov rdi,r13
movabs rax,0x78902386e640
0.16 → call QWORD PTR [rax]
0.01 ↓ jmp 1e91
1009: cmp BYTE PTR [r15+0x3a],0x5
↑ je 18a
↓ jmp 1424
1019: xor r12d,r12d
xor r15d,r15d
↑ jmp 2f1
1024: xor r15d,r15d
xor r12d,r12d
↑ jmp 3ad
102f: mov rdi,r15
mov esi,r12d
mov rdx,rax
mov ecx,0x4
movabs r8,0x78902386f8e8
→ call QWORD PTR [r8]
mov rax,QWORD PTR [rbp-0x108]
↑ jmp 3cb
1056: xor r12d,r12d
xor r15d,r15d
↑ jmp 4c7
1061: mov rdi,r12
mov esi,r15d
mov rdx,rax
mov ecx,0x5
movabs r8,0x78902386f8e8
→ call QWORD PTR [r8]
mov rax,QWORD PTR [rbp-0x110]
↑ jmp 4e5
1088: xor r15d,r15d
xor r12d,r12d
↑ jmp 5ed
1093: mov rdi,r15
mov esi,r12d
mov ecx,DWORD PTR [r13+0x70]
movabs rax,0x78902386fae0
→ call QWORD PTR [rax]
↑ jmp 60c
10ae: cmp BYTE PTR [r13+0x3a],0x5
↑ je 74b
↓ jmp 1750
10be: cmp BYTE PTR [r13+0x3a],0x5
↑ je 7f9
↓ jmp 17e7
10ce: xor r15d,r15d
xor r12d,r12d
↑ jmp 8f9
10d9: mov rdi,r15
mov esi,r12d
mov edx,DWORD PTR [r13+0x28]
mov ecx,DWORD PTR [r13+0x70]
movabs rax,0x78902386fae0
→ call QWORD PTR [rax]
↑ jmp 91a
10f8: xor r15d,r15d
xor r12d,r12d
↑ jmp 9f7
1103: mov rdi,r15
mov esi,r12d
mov rdx,rax
mov ecx,0xf
movabs r8,0x78902386f8e8
→ call QWORD PTR [r8]
mov rax,QWORD PTR [rbp-0x118]
↑ jmp a15
112a: xor r12d,r12d
xor r15d,r15d
↑ jmp b1d
1135: mov rdi,r12
mov esi,r15d
mov rdx,rax
mov ecx,0x7
movabs r8,0x78902386f8e8
→ call QWORD PTR [r8]
mov rax,QWORD PTR [rbp-0x120]
↑ jmp b3b
115c: xor r15d,r15d
xor r12d,r12d
↑ jmp c43
1167: xor r15d,r15d
xor r12d,r12d
↑ jmp db9
1172: mov rdi,r15
mov esi,r12d
mov edx,DWORD PTR [r13+0x28]
mov ecx,DWORD PTR [r13+0x70]
movabs rax,0x78902386fae0
→ call QWORD PTR [rax]
↑ jmp dda
1191: cmp BYTE PTR [r13+0x3a],0x5
↑ je ecb
↓ jmp 1c38
11a1: cmp BYTE PTR [rbp-0xc7],0xff
0.61 ↓ je 1c84
0.49 rex movzx esi,BYTE PTR [rbp-0xc7]
0.21 11b6: movabs rdx,0x78902252fbc8
0.01 lea r8,[rbp-0xc0]
0.06 mov QWORD PTR [rsp],r8
mov r8,r14
0.33 mov r9d,eax
0.59 mov ecx,0x1
0.04 mov rdi,r12
0.45 movabs rax,0x78902386fd80
0.22 → call QWORD PTR [rax]
0.04 ↑ jmp fac
11ea: mov rdi,r13
mov rsi,r12
movabs rax,0x78902386fd38
→ call QWORD PTR [rax]
↑ jmp fb6
1201: movzx r8d,BYTE PTR [r15+0x3a]
mov edx,DWORD PTR [r15+0x70]
mov edi,0x1c
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
1220: mov rdi,r14
mov esi,0x1
movabs rax,0x78902386e910
→ call QWORD PTR [rax]
↑ jmp 1a8
1239: mov rdi,QWORD PTR [r12+0x8]
mov edi,DWORD PTR [rdi+0x8]
mov esi,0x100
cmp edi,0x100
cmovg esi,edi
mov eax,esi
test edi,edi
↓ jne 1265
mov eax,0x100
cmp esi,0x100
cmovl esi,eax
mov eax,esi
1265: lea esi,[rdi+rax*1]
test esi,esi
↓ jge 129b
mov rax,QWORD PTR [r12+0x8]
mov eax,DWORD PTR [rax+0x8]
sub eax,DWORD PTR [r12+0x10]
sub edi,eax
add edi,0x100
cmp edi,0x7fffffc7
↓ jbe 1296
movabs rax,0x78902386ead8
→ call QWORD PTR [rax]
int3
1296: mov esi,0x7fffffc7
129b: lea rdi,[r12+0x8]
movabs rax,0x7890238665e0
→ call QWORD PTR [rax]
↑ jmp 20b
12b1: test r14d,r14d
↓ jne 1e3f
xor esi,esi
xor r14d,r14d
xor r15d,r15d
↑ jmp 22f
12c7: mov rdi,r12
movabs r11,0x789022460630
mov esi,0x100
→ call QWORD PTR [r11]
mov QWORD PTR [rbp-0x48],rax
mov QWORD PTR [rbp-0x40],rdx
mov rsi,QWORD PTR [rbp-0x48]
mov r14d,DWORD PTR [rbp-0x40]
mov r15d,DWORD PTR [rbp-0x3c]
↑ jmp 22f
12f5: lea r14,[r15+0x40]
mov rdi,QWORD PTR [r15+0x18]
mov esi,0x100
movabs rax,0x789023858a68
cmp DWORD PTR [rdi],edi
→ call QWORD PTR [rax]
mov QWORD PTR [rbp-0x58],rax
mov QWORD PTR [rbp-0x50],rdx
mov rdi,r14
lea rsi,[rbp-0x58]
→ call instance void [benchapp] System.Text.Json.Tests.Perf_Basic::WriteBasicUtf8()[OptimizedTier1]+0x7e458660
movs QWORD PTR es:[rdi],QWORD PTR ds:[rsi]
↑ jmp 253
132b: cmp QWORD PTR [r15+0x10],0x0
↓ jne 139d
mov rdi,QWORD PTR [r15+0x8]
mov esi,DWORD PTR [r15+0x34]
movabs r11,0x789022460620
→ call QWORD PTR [r11]
movsxd rdi,DWORD PTR [r15+0x34]
add QWORD PTR [r15+0x20],rdi
xor edi,edi
mov DWORD PTR [r15+0x34],edi
mov rdi,QWORD PTR [r15+0x8]
movabs r11,0x789022460628
mov esi,0x1000
→ call QWORD PTR [r11]
mov QWORD PTR [rbp-0x38],rax
mov QWORD PTR [rbp-0x30],rdx
lea rdi,[r15+0x40]
lea rsi,[rbp-0x38]
→ call instance void [benchapp] System.Text.Json.Tests.Perf_Basic::WriteBasicUtf8()[OptimizedTier1]+0x7e458660
movs QWORD PTR es:[rdi],QWORD PTR ds:[rsi]
cmp DWORD PTR [r15+0x4c],0x1000
↑ jge 253
1390: movabs rax,0x78902386ea48
→ call QWORD PTR [rax]
int3
139d: mov esi,DWORD PTR [r15+0x34]
add esi,0x1000
cmp esi,0x7fefffff
↓ jbe 13be
mov edi,esi
movabs rax,0x789023966fb8
→ call QWORD PTR [rax]
int3
13be: lea r14,[r15+0x40]
mov rdi,QWORD PTR [r15+0x18]
movabs rax,0x789023858a68
cmp DWORD PTR [rdi],edi
→ call QWORD PTR [rax]
mov QWORD PTR [rbp-0x68],rax
mov QWORD PTR [rbp-0x60],rdx
mov rdi,r14
lea rsi,[rbp-0x68]
→ call instance void [benchapp] System.Text.Json.Tests.Perf_Basic::WriteBasicUtf8()[OptimizedTier1]+0x7e458660
movs QWORD PTR es:[rdi],QWORD PTR ds:[rsi]
↑ jmp 253
13ef: mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x40]
→ call QWORD PTR [rax+0x28]
mov rsi,rax
mov eax,edx
↑ jmp 27a
1403: mov ecx,DWORD PTR [r13+0x34]
lea r8d,[rcx+0x1]
mov DWORD PTR [r13+0x34],r8d
cmp ecx,eax
↓ jae 1e4c
mov r8d,ecx
mov BYTE PTR [rsi+r8*1],0x2c
↑ jmp 2aa
1424: movzx r8d,BYTE PTR [r15+0x3a]
mov edx,DWORD PTR [r15+0x70]
mov edi,0x1b
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
1443: test r14b,0x2
↓ jne 1491
mov rdi,r15
movabs rax,0x78902386e898
→ call QWORD PTR [rax]
lea r14,[r15+0x50]
cmp DWORD PTR [r14+0x10],0x40
↓ jge 1474
mov rdi,QWORD PTR [r14+0x8]
add rdi,rdi
or rdi,0x1
mov QWORD PTR [r14+0x8],rdi
↓ jmp 1488
1474: mov rdi,r14
mov esi,0x1
movabs rax,0x78902386e910
→ call QWORD PTR [rax]
1488: inc DWORD
mov BYTE PTR [r15+0x38],0x1
1491: mov rdi,r15
mov esi,0x7b
movabs rax,0x78902386e8c8
→ call QWORD PTR [rax]
↑ jmp 2c3
14aa: mov rdi,r15
mov esi,0x7b
movabs rax,0x78902386e850
→ call QWORD PTR [rax]
↑ jmp 2c3
14c3: mov rsi,r12
mov edx,r15d
mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x50]
→ call QWORD PTR [rax]
↑ jmp 33e
14d7: movzx r8d,BYTE PTR [r13+0x3a]
mov edx,DWORD PTR [r13+0x70]
mov edi,0x1f
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
14f6: mov rsi,r12
mov edx,r15d
mov rdi,r13
mov ecx,0x2a
movabs rax,0x78902386f7e0
→ call QWORD PTR [rax]
↑ jmp 38b
1515: mov rsi,r12
mov edx,r15d
mov rdi,r13
mov r8d,eax
mov ecx,0x2a
movabs rax,0x78902386ebe0
→ call QWORD PTR [rax]
↑ jmp 38b
1537: mov edx,0x4
mov rcx,QWORD PTR [rdi]
mov rcx,QWORD PTR [rcx+0x40]
→ call QWORD PTR [rcx+0x28]
mov esi,eax
mov eax,esi
↑ jmp 40b
154f: mov rsi,r15
mov edx,r12d
mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x50]
→ call QWORD PTR [rax]
↑ jmp 44a
1563: movzx r8d,BYTE PTR [r13+0x3a]
mov edx,DWORD PTR [r13+0x70]
mov edi,0x1f
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
1582: mov rcx,QWORD PTR [rbp-0x108]
mov r8d,0x4
mov rsi,r15
mov edx,r12d
mov rdi,r13
movabs rax,0x78902386fa38
→ call QWORD PTR [rax]
↑ jmp 4a5
15a9: mov r9d,DWORD PTR [rbp-0x6c]
mov DWORD PTR [rsp],r9d
mov rcx,QWORD PTR [rbp-0x108]
mov r8d,0x4
mov rsi,r15
mov edx,r12d
mov rdi,r13
mov r9d,eax
movabs rax,0x78902386f918
→ call QWORD PTR [rax]
↑ jmp 4a5
15db: mov edx,0x5
mov rcx,QWORD PTR [rdi]
mov rcx,QWORD PTR [rcx+0x40]
→ call QWORD PTR [rcx+0x28]
mov esi,eax
mov eax,esi
↑ jmp 528
15f3: mov rsi,r12
mov edx,r15d
mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x50]
→ call QWORD PTR [rax]
↑ jmp 56a
1607: movzx r8d,BYTE PTR [r13+0x3a]
mov edx,DWORD PTR [r13+0x70]
mov edi,0x1f
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
1626: mov rcx,QWORD PTR [rbp-0x110]
mov r8d,0x5
mov rsi,r12
mov edx,r15d
mov rdi,r13
movabs rax,0x78902386fa38
→ call QWORD PTR [rax]
↑ jmp 5c5
164d: mov r9d,DWORD PTR [rbp-0x7c]
mov DWORD PTR [rsp],r9d
mov rcx,QWORD PTR [rbp-0x110]
mov r8d,0x5
mov rsi,r12
mov edx,r15d
mov rdi,r13
mov r9d,eax
movabs rax,0x78902386f918
→ call QWORD PTR [rax]
↑ jmp 5c5
167f: mov rsi,r15
mov edx,r12d
mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x50]
→ call QWORD PTR [rax]
↑ jmp 642
1693: mov rdi,r8
xor esi,esi
movabs rax,0x78902386e910
→ call QWORD PTR [rax]
mov r8,QWORD PTR [rbp-0xf8]
↑ jmp 682
16b0: movzx r8d,BYTE PTR [r13+0x3a]
mov edx,DWORD PTR [r13+0x70]
mov edi,0x1f
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
16cf: mov rsi,r15
mov edx,r12d
mov rdi,r13
mov ecx,0x5b
movabs rax,0x78902386fb40
→ call QWORD PTR [rax]
↑ jmp 6b0
16ee: mov rsi,r15
mov edx,r12d
mov rdi,r13
mov r8d,eax
mov ecx,0x5b
movabs rax,0x78902386faf8
→ call QWORD PTR [rax]
↑ jmp 6b0
1710: mov edx,0xc
mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x40]
→ call QWORD PTR [rax+0x28]
mov ecx,eax
↑ jmp 718
1726: cmp BYTE PTR [r13+0x3a],0x0
↑ je 74b
movzx r8d,BYTE PTR [r13+0x3a]
mov edx,DWORD PTR [r13+0x70]
mov edi,0x1e
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
1750: movzx r8d,BYTE PTR [r13+0x3a]
mov edx,DWORD PTR [r13+0x70]
mov edi,0x1d
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
176f: mov rsi,r12
mov edx,0xc
mov rdi,r13
movabs rax,0x78902386fc30
→ call QWORD PTR [rax]
↑ jmp 76a
178b: mov rsi,r12
mov edx,0xc
mov rdi,r13
movabs rax,0x78902386fbe8
→ call QWORD PTR [rax]
↑ jmp 76a
17a7: mov edx,0xc
mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x40]
→ call QWORD PTR [rax+0x28]
mov ecx,eax
↑ jmp 7c6
17bd: cmp BYTE PTR [r13+0x3a],0x0
↑ je 7f9
movzx r8d,BYTE PTR [r13+0x3a]
mov edx,DWORD PTR [r13+0x70]
mov edi,0x1e
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
17e7: movzx r8d,BYTE PTR [r13+0x3a]
mov edx,DWORD PTR [r13+0x70]
mov edi,0x1d
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
1806: mov rsi,r15
mov edx,0xc
mov rdi,r13
movabs rax,0x78902386fc30
→ call QWORD PTR [rax]
↑ jmp 818
1822: mov rsi,r15
mov edx,0xc
mov rdi,r13
movabs rax,0x78902386fbe8
→ call QWORD PTR [rax]
↑ jmp 818
183e: mov rdi,r13
mov esi,0x1
movabs rax,0x78902386e958
→ call QWORD PTR [rax]
↑ jmp 863
1857: mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x40]
→ call QWORD PTR [rax+0x28]
mov rsi,rax
mov eax,edx
↑ jmp 889
186b: test al,0x2
↓ jne 1883
mov rdi,r13
mov esi,0x5d
movabs rax,0x78902386fca8
→ call QWORD PTR [rax]
1883: mov rdi,r13
mov esi,0x5d
movabs rax,0x78902386fcc0
→ call QWORD PTR [rax]
↑ jmp 8c3
189c: mov rdi,r13
mov esi,0x5d
movabs rax,0x78902386fc90
→ call QWORD PTR [rax]
↑ jmp 8c3
18b5: mov rsi,r15
mov edx,r12d
mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x50]
→ call QWORD PTR [rax]
↑ jmp 950
18c9: mov rdi,r8
mov esi,0x1
movabs rax,0x78902386e910
→ call QWORD PTR [rax]
mov r8,QWORD PTR [rbp-0x100]
↑ jmp 99b
18e9: movzx r8d,BYTE PTR [r13+0x3a]
mov edx,DWORD PTR [r13+0x70]
mov edi,0x1f
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
1908: mov rsi,r15
mov edx,r12d
mov rdi,r13
mov ecx,0x7b
movabs rax,0x78902386fb40
→ call QWORD PTR [rax]
↑ jmp 9c9
1927: mov rsi,r15
mov edx,r12d
mov rdi,r13
mov r8d,eax
mov ecx,0x7b
movabs rax,0x78902386faf8
→ call QWORD PTR [rax]
↑ jmp 9c9
1949: mov edx,0xf
mov rcx,QWORD PTR [rdi]
mov rcx,QWORD PTR [rcx+0x40]
→ call QWORD PTR [rcx+0x28]
mov esi,eax
mov eax,esi
↑ jmp a58
1961: mov rsi,r15
mov edx,r12d
mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x50]
→ call QWORD PTR [rax]
↑ jmp a9d
1975: movzx r8d,BYTE PTR [r13+0x3a]
mov edx,DWORD PTR [r13+0x70]
mov edi,0x1f
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
1994: mov rcx,QWORD PTR [rbp-0x118]
mov r8d,0xf
mov rsi,r15
mov edx,r12d
mov rdi,r13
movabs rax,0x78902386fa38
→ call QWORD PTR [rax]
↑ jmp afb
19bb: mov r9d,DWORD PTR [rbp-0x9c]
mov DWORD PTR [rsp],r9d
mov rcx,QWORD PTR [rbp-0x118]
mov r8d,0xf
mov rsi,r15
mov edx,r12d
mov rdi,r13
mov r9d,eax
movabs rax,0x78902386f918
→ call QWORD PTR [rax]
↑ jmp afb
19f0: mov edx,0x7
mov rcx,QWORD PTR [rdi]
mov rcx,QWORD PTR [rcx+0x40]
→ call QWORD PTR [rcx+0x28]
mov esi,eax
mov eax,esi
↑ jmp b7e
1a08: mov rsi,r12
mov edx,r15d
mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x50]
→ call QWORD PTR [rax]
↑ jmp bc3
1a1c: movzx r8d,BYTE PTR [r13+0x3a]
mov edx,DWORD PTR [r13+0x70]
mov edi,0x1f
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
1a3b: mov rcx,QWORD PTR [rbp-0x120]
mov r8d,0x7
mov rsi,r12
mov edx,r15d
mov rdi,r13
movabs rax,0x78902386fa38
→ call QWORD PTR [rax]
↑ jmp c21
1a62: mov r9d,DWORD PTR [rbp-0xac]
mov DWORD PTR [rsp],r9d
mov rcx,QWORD PTR [rbp-0x120]
mov r8d,0x7
mov rsi,r12
mov edx,r15d
mov rdi,r13
mov r9d,eax
movabs rax,0x78902386f918
→ call QWORD PTR [rax]
↑ jmp c21
1a97: mov rsi,r15
mov edx,r12d
mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x50]
→ call QWORD PTR [rax]
↑ jmp c86
1aab: movzx r8d,BYTE PTR [r13+0x3a]
mov edx,DWORD PTR [r13+0x70]
mov edi,0x1f
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
1aca: mov rsi,r15
mov edx,r12d
mov rdi,r13
mov ecx,0x17f04
movabs rax,0x78902386f7e0
→ call QWORD PTR [rax]
↑ jmp cd3
1ae9: mov rsi,r15
mov edx,r12d
mov rdi,r13
mov r8d,eax
mov ecx,0x17f04
movabs rax,0x78902386ebe0
→ call QWORD PTR [rax]
↑ jmp cd3
1b0b: mov rdi,r13
mov esi,0x1
movabs rax,0x78902386e958
→ call QWORD PTR [rax]
↑ jmp d21
1b24: mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x40]
→ call QWORD PTR [rax+0x28]
mov r12,rax
mov eax,edx
↑ jmp d48
1b38: test r15b,0x2
↓ jne 1b52
mov rdi,r13
mov esi,0x7d
movabs rax,0x78902386fca8
→ call QWORD PTR [rax]
1b52: mov rdi,r13
mov esi,0x7d
movabs rax,0x78902386fcc0
→ call QWORD PTR [rax]
↑ jmp d83
1b6b: mov rdi,r13
mov esi,0x7d
movabs rax,0x78902386fc90
→ call QWORD PTR [rax]
↑ jmp d83
1b84: mov rsi,r15
mov edx,r12d
mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x50]
→ call QWORD PTR [rax]
↑ jmp e10
1b98: mov rdi,r14
xor esi,esi
movabs rax,0x78902386e910
→ call QWORD PTR [rax]
↑ jmp e49
1bae: movzx r8d,BYTE PTR [r13+0x3a]
mov edx,DWORD PTR [r13+0x70]
mov edi,0x1f
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
1bcd: mov rsi,r15
mov edx,r12d
mov rdi,r13
mov ecx,0x5b
movabs rax,0x78902386fb40
→ call QWORD PTR [rax]
↑ jmp e77
1bec: mov rsi,r15
mov edx,r12d
mov rdi,r13
mov r8d,eax
mov ecx,0x5b
movabs rax,0x78902386faf8
→ call QWORD PTR [rax]
↑ jmp e77
1c0e: cmp BYTE PTR [r13+0x3a],0x0
↑ je ecb
movzx r8d,BYTE PTR [r13+0x3a]
mov edx,DWORD PTR [r13+0x70]
mov edi,0x1e
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
1c38: movzx r8d,BYTE PTR [r13+0x3a]
mov edx,DWORD PTR [r13+0x70]
mov edi,0x1d
xor esi,esi
xor ecx,ecx
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
1c57: mov rdi,r13
mov esi,0x15
movabs rax,0x78902386e958
→ call QWORD PTR [rax]
↑ jmp ee7
1c70: mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x40]
→ call QWORD PTR [rax+0x28]
mov rsi,rax
mov eax,edx
↑ jmp f0d
1c84: xor esi,esi
↑ jmp 11b6
1c8b: movzx ecx,BYTE PTR [rbp-0xc8]
or ecx,0x20
cmp ecx,0x67
↓ jg 1caa
cmp ecx,0x64
↓ je 1d3a
cmp ecx,0x67
↓ je 1d10
↓ jmp 1cc1
1caa: cmp ecx,0x6e
↓ je 1e07
cmp ecx,0x72
↓ je 1cbf
cmp ecx,0x78
↓ jne 1cc1
↓ jmp 1cce
1cbf: ↓ jmp 1d10
1cc1: movabs rax,0x7890239668c8
→ call QWORD PTR [rax]
int3
1cce: movzx ecx,BYTE PTR [rbp-0xc8]
add ecx,0xffffffdf
movzx esi,cx
cmp BYTE PTR [rbp-0xc7],0xff
↓ je 1ced
movzx edx,BYTE PTR [rbp-0xc7]
↓ jmp 1cef
1ced: xor edx,edx
1cef: mov rcx,r14
mov r8d,eax
lea r9,[rbp-0xc0]
mov rdi,r12
movabs rax,0x789023966700
→ call QWORD PTR [rax]
↑ jmp fac
1d10: lea rdi,[rbp-0xc8]
movabs rcx,0x789023966fd0
→ call QWORD PTR [rcx]
test eax,eax
mov eax,DWORD PTR [rbp-0xe0]
↓ je 1d3a
movabs rax,0x7890239668e0
→ call QWORD PTR [rax]
int3
1d3a: test r12,r12
↓ jge 1dce
cmp BYTE PTR [rbp-0xc7],0xff
↓ je 1d5b
movzx ecx,BYTE PTR [rbp-0xc7]
mov DWORD PTR [rbp-0xdc],ecx
↓ jmp 1d63
1d5b: xor ecx,ecx
mov DWORD PTR [rbp-0xdc],ecx
1d63: vxorps xmm0,xmm0,xmm0
vmovdqu XMMWORD PTR [rbp-0xd8],xmm0
lea rdi,[rbp-0xd8]
movabs rsi,0x78902252fbc8
mov edx,0x1
movabs r8,0x789023756310
→ call QWORD PTR [r8]
lea r8,[rbp-0xc0]
mov QWORD PTR [rsp],r8
mov r8,r14
mov r9d,DWORD PTR [rbp-0xe0]
mov rdx,QWORD PTR [rbp-0xd8]
mov ecx,DWORD PTR [rbp-0xd0]
mov rdi,r12
mov esi,DWORD PTR [rbp-0xdc]
movabs rax,0x78902386fd80
→ call QWORD PTR [rax]
↑ jmp fac
1dce: lea rdi,[rbp-0xc8]
movabs rcx,0x78902386fd68
→ call QWORD PTR [rcx]
mov esi,eax
mov rdx,r14
mov ecx,DWORD PTR [rbp-0xe0]
lea r8,[rbp-0xc0]
mov rdi,r12
movabs rax,0x7890239666e8
→ call QWORD PTR [rax]
↑ jmp fac
1e07: movzx r8d,WORD PTR [rbp-0xc8]
mov WORD PTR [rbp-0xe8],r8w
movzx r8d,WORD PTR [rbp-0xe8]
mov rsi,r14
mov edx,eax
lea rcx,[rbp-0xc0]
mov rdi,r12
movabs rax,0x7890239666d0
→ call QWORD PTR [rax]
↑ jmp fac
1e3f: movabs rax,0x78902360c060
→ call QWORD PTR [rax]
int3
1e4c: → call instance void [benchapp] System.Text.Json.Tests.Perf_Basic::WriteBasicUtf8()[OptimizedTier1]+0xfffffffffff23da8
int3
1e52: mov edi,r12d
movabs rax,0x78902386eb98
→ call QWORD PTR [rax]
int3
1e62: mov edi,r15d
movabs rax,0x78902386eb98
→ call QWORD PTR [rax]
int3
1e72: mov edx,DWORD PTR [r15+0x70]
mov esi,DWORD PTR [r15+0x28]
mov edi,0x1a
xor ecx,ecx
xor r8d,r8d
movabs rax,0x78902386e808
→ call QWORD PTR [rax]
int3
1e91: mov rdi,r13
movabs rax,0x7890239105a0
→ call QWORD PTR [rax]
0.14 nop
0.16 add rsp,0x108
0.03 pop rbx
0.02 pop r12
0.02 pop r13
0.01 pop r14
0.09 pop r15
0.02 pop rbp
0.17 ← ret
1eb3: test r14d,r14d
↓ je 1ec5
1eb8: movabs rax,0x78902360c060
→ call QWORD PTR [rax]
int3
1ec5: xor edi,edi
xor r14d,r14d
↑ jmp 7a
1ecf: or r12d,0x2
↑ jmp ad
1ed8: xor ecx,ecx
cmp eax,0x2
cmovne ecx,eax
↑ jmp 10e
1ee5: movabs rdi,0x789023910458
→ call instance void [benchapp] System.Text.Json.Tests.Perf_Basic::WriteBasicUtf8()[OptimizedTier1]+0x7e2f3c20
movabs rdi,0x78500c001368
mov rdx,QWORD PTR [rdi]
↑ jmp 126
1f06: mov edi,0x3ad4
movabs rsi,0x7890238ec028
→ call instance void [benchapp] System.Text.Json.Tests.Perf_Basic::WriteBasicUtf8()[OptimizedTier1]+0x7e2f5cc0
mov rdi,rax
movabs rax,0x78902386e6e8
→ call QWORD PTR [rax]
int3
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp,0x18
mov rbp,QWORD PTR [rdi+0x8]
mov QWORD PTR [rsp+0x8],rbp
lea rbp,[rbp+0x130]
mov rdi,QWORD PTR [rbp-0xf0]
movabs rax,0x7890239105a0
→ call QWORD PTR [rax]
nop
add rsp,0x18
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
← ret
Samples: 300K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6013580000, [percent: local period]
instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::WriteStringMinimized(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8>,valuetype [System.Runtime]System.ReadOnlySpan`1<char>)[OptimizedTier1]() /tmp/jitted-47883-2683.so
Percent
Disassembly of section .text:
0000000000000080 <instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::WriteStringMinimized(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8>,valuetype [System.Runtime]System.ReadOnlySpan`1<char>)[OptimizedTier1]>:
instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::WriteStringMinimized(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8>,valuetype [System.Runtime]System.ReadOnlySpan`1<char>)[OptimizedTier1]():
3.00 push rbp
2.27 push r15
0.00 push r14
0.00 push r13
0.10 push r12
0.01 push rbx
0.01 sub rsp,0x38
lea rbp,[rsp+0x60]
2.09 mov rbx,rdi
mov r13,rsi
mov r15d,edx
0.08 mov r12,rcx
0.01 mov r14d,r8d
0.00 lea edx,[r14+r14*2]
0.00 lea esi,[rdx+r15*1+0x6]
2.24 mov edx,DWORD PTR [rbx+0x4c]
0.05 sub edx,DWORD PTR [rbx+0x34]
0.16 cmp edx,esi
0.14 ↓ jl 1ac
39: lea rax,[rbx+0x40]
mov QWORD PTR [rbp-0x50],rax
0.03 xor edx,edx
0.00 xor ecx,ecx
1.97 mov rdi,QWORD PTR [rax]
0.04 test rdi,rdi
0.08 ↓ je 84
mov rdx,QWORD PTR [rdi]
0.49 test DWORD PTR [rdx],0x80000000
2.34 ↓ je 1c0
0.43 lea rdx,[rdi+0x10]
mov ecx,DWORD PTR [rdi+0x8]
63: mov edi,DWORD PTR [rax+0x8]
0.77 and edi,0x7fffffff
0.82 mov esi,DWORD PTR [rax+0xc]
mov eax,esi
add rax,rdi
0.00 mov ecx,ecx
0.72 cmp rax,rcx
↓ ja 1e5
add rdx,rdi
mov ecx,esi
0.74 84: cmp DWORD PTR [rbx+0x28],0x0
0.91 ↓ jge 9f
mov eax,DWORD PTR [rbx+0x34]
lea edi,[rax+0x1]
mov DWORD PTR [rbx+0x34],edi
0.61 cmp eax,ecx
0.05 ↓ jae 1f2
0.00 mov BYTE PTR [rdx+rax*1],0x2c
0.04 9f: mov eax,DWORD PTR [rbx+0x34]
1.10 lea edi,[rax+0x1]
1.40 mov DWORD PTR [rbx+0x34],edi
0.11 cmp eax,ecx
0.03 ↓ jae 1f2
mov edi,eax
0.01 mov BYTE PTR [rdx+rdi*1],0x22
3.09 mov edi,DWORD PTR [rbx+0x34]
4.57 cmp edi,ecx
1.28 ↓ ja 1e5
mov esi,edi
0.01 mov QWORD PTR [rbp-0x48],rdx
0.34 add rsi,rdx
0.17 mov DWORD PTR [rbp-0x2c],ecx
mov eax,ecx
0.00 sub eax,edi
1.46 cmp r15d,eax
1.26 ↓ ja 1d8
mov edx,r15d
mov rdi,rsi
0.03 mov rsi,r13
0.29 movabs rax,0x7890233857b8
0.03 → call QWORD PTR [rax]
0.22 add r15d,DWORD PTR [rbx+0x34]
0.03 mov eax,r15d
0.47 mov DWORD PTR [rbx+0x34],eax
0.15 lea edi,[rax+0x1]
1.51 mov DWORD PTR [rbx+0x34],edi
0.02 mov r15d,DWORD PTR [rbp-0x2c]
0.07 cmp eax,r15d
0.11 ↓ jae 1f2
mov r13,QWORD PTR [rbp-0x48]
0.00 mov BYTE PTR [rax+r13*1],0x22
1.07 mov eax,DWORD PTR [rbx+0x34]
2.13 lea edi,[rax+0x1]
0.89 mov DWORD PTR [rbx+0x34],edi
0.71 cmp eax,r15d
↓ jae 1f2
mov BYTE PTR [rax+r13*1],0x3a
6.94 mov eax,DWORD PTR [rbx+0x34]
4.91 lea edi,[rax+0x1]
1.64 mov DWORD PTR [rbx+0x34],edi
0.03 cmp eax,r15d
0.05 ↓ jae 1f2
mov edi,eax
mov BYTE PTR [rdi+r13*1],0x22
11.04 mov edi,DWORD PTR [rbx+0x34]
5.19 cmp edi,r15d
1.58 ↓ ja 1e5
mov edx,edi
add rdx,r13
mov ecx,r15d
sub ecx,edi
0.00 xor edi,edi
mov DWORD PTR [rsp],edi
0.58 mov DWORD PTR [rsp+0x8],0x1
mov rdi,r12
1.63 mov esi,r14d
lea r8,[rbp-0x40]
lea r9,[rbp-0x38]
movabs rax,0x78902386fa98
→ call QWORD PTR [rax]
0.96 mov eax,DWORD PTR [rbx+0x34]
0.40 add eax,DWORD PTR [rbp-0x38]
9.22 mov DWORD PTR [rbx+0x34],eax
0.18 lea edi,[rax+0x1]
1.72 mov DWORD PTR [rbx+0x34],edi
0.14 cmp eax,r15d
0.01 ↓ jae 1f2
mov edi,eax
0.38 mov BYTE PTR [rdi+r13*1],0x22
8.36 add rsp,0x38
0.01 pop rbx
0.01 pop r12
0.01 pop r13
0.01 pop r14
0.01 pop r15
0.13 pop rbp
2.08 ← ret
1ac: mov rdi,rbx
movabs rax,0x78902386e958
→ call QWORD PTR [rax]
↑ jmp 39
1c0: mov rcx,QWORD PTR [rdi]
mov rcx,QWORD PTR [rcx+0x40]
→ call QWORD PTR [rcx+0x28]
mov ecx,edx
mov rdx,rax
mov rax,QWORD PTR [rbp-0x50]
↑ jmp 63
1d8: movabs rax,0x78902386f450
→ call QWORD PTR [rax]
int3
1e5: movabs rax,0x78902360c060
→ call QWORD PTR [rax]
int3
1f2: → call instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::WriteStringMinimized(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8
int3
Samples: 300K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6013580000, [percent: local period]
bool [System.Private.CoreLib] System.Number::TryNegativeInt64ToDecStr(int64,int32,valuetype System.ReadOnlySpan`1<!!0>,valuetype System.Span`1<!!0>,int32&)[OptimizedTier1]() /tmp/jitted-47883-2674.so
Percent
Disassembly of section .text:
0000000000000080 <bool [System.Private.CoreLib] System.Number::TryNegativeInt64ToDecStr(int64,int32,valuetype System.ReadOnlySpan`1<!!0>,valuetype System.Span`1<!!0>,int32&)[OptimizedTier1]>:
bool [System.Private.CoreLib] System.Number::TryNegativeInt64ToDecStr(int64,int32,valuetype System.ReadOnlySpan`1<!!0>,valuetype System.Span`1<!!0>,int32&)[OptimizedTier1]():
4.82 push rbp
3.79 push rbx
0.00 push rax
lea rbp,[rsp+0x10]
xor eax,eax
mov QWORD PTR [rbp-0x10],rax
0.04 mov r10,rdx
mov eax,0x1
test esi,esi
3.88 cmovle esi,eax
0.00 mov rax,rdi
neg rax
0.02 mov rdx,rax
or rdx,0x1
0.01 lzcnt rdx,rdx
0.00 xor edx,0x3f
0.00 movsxd rdx,edx
4.00 movabs r11,0x78902252fc20
0.00 movzx edx,BYTE PTR [rdx+r11*1]
0.48 mov r11d,edx
movabs rbx,0x789022536738
cmp rax,QWORD PTR [rbx+r11*8]
5.17 setb al
2.00 movzx eax,al
2.69 sub edx,eax
3.91 cmp esi,edx
2.85 mov eax,edx
cmovge eax,esi
3.00 add eax,ecx
3.59 cmp eax,r9d
3.51 ↓ jg 14b
mov r9,QWORD PTR [rbp+0x10]
mov DWORD PTR [r9],eax
0.02 mov QWORD PTR [rbp-0x10],r8
0.57 movsxd r9,eax
add r8,r9
3.57 neg rdi
cmp rdi,0x64
↓ jb d8
movabs rax,0x78500c0005d8
mov r9,QWORD PTR [rax]
0.04 94: add r8,0xfffffffffffffffe
3.49 add esi,0xfffffffe
0.25 movabs rdx,0x28f5c28f5c28f5c3
mov rax,rdi
shr rax,0x2
mul rdx
0.01 shr rdx,0x2
0.01 imul rax,rdx,0x64
3.52 sub rdi,rax
0.44 mov r11,rdx
0.00 mov rax,r9
add edi,edi
0.01 mov edx,edi
mov ax,WORD PTR [rax+rdx*1+0x10]
1.46 mov WORD PTR [r8],ax
12.47 cmp r11,0x64
0.05 ↓ jb 10f
mov rdi,r11
↑ jmp 94
d8: mov r11,rdi
↓ jmp 10f
nop
e0: dec esi
0.12 movabs rdx,0xcccccccccccccccd
mov rax,r11
0.00 mul rdx
0.41 shr rdx,0x3
3.72 lea rax,[rdx+rdx*4]
3.66 add rax,rax
0.17 mov rdi,r11
0.13 sub rdi,rax
0.03 mov r11,rdx
dec r8
0.36 add edi,0x30
0.07 mov BYTE PTR [r8],dil
8.96 10f: test r11,r11
3.20 ↑ jne e0
test esi,esi
↑ jg e0
mov rax,r8
0.14 lea edx,[rcx-0x1]
test edx,edx
0.00 ↓ jge 134
122: xor eax,eax
mov QWORD PTR [rbp-0x10],rax
0.13 mov eax,0x1
0.06 add rsp,0x8
3.60 pop rbx
0.60 pop rbp
0.17 ← ret
134: dec rax
0.14 cmp edx,ecx
0.05 ↓ jae 15b
mov edi,edx
0.55 movzx edi,BYTE PTR [r10+rdi*1]
3.02 mov BYTE PTR [rax],dil
0.92 dec edx
0.07 ↑ jns 134
↑ jmp 122
14b: xor eax,eax
mov r9,QWORD PTR [rbp+0x10]
mov DWORD PTR [r9],eax
add rsp,0x8
pop rbx
pop rbp
← ret
15b: → call bool [System.Private.CoreLib] System.Number::TryNegativeInt64ToDecStr(int64,int32,valuetype System.ReadOnlySpan`1<!!0
int3
Samples: 300K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6013580000, [percent: local period]
instance int32 [System.Text.Encodings.Web] System.Text.Encodings.Web.OptimizedInboxTextEncoder::GetIndexOfFirstByteToEncode(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8>)[OptimizedTier1]() /tmp/jitted-47883-2654.so
Percent
Disassembly of section .text:
0000000000000080 <instance int32 [System.Text.Encodings.Web] System.Text.Encodings.Web.OptimizedInboxTextEncoder::GetIndexOfFirstByteToEncode(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8>)[OptimizedTier1]>:
instance int32 [System.Text.Encodings.Web] System.Text.Encodings.Web.OptimizedInboxTextEncoder::GetIndexOfFirstByteToEncode(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8>)[OptimizedTier1]():
10.45 push rbp
7.72 push r15
push r14
0.01 push r13
0.02 push rbx
sub rsp,0x20
lea rbp,[rsp+0x40]
xor eax,eax
7.26 mov QWORD PTR [rbp-0x28],rax
0.10 mov rbx,rdi
mov r14,rsi
0.01 mov r15d,edx
xor eax,eax
test r15d,r15d
cmovne rax,r14
0.02 mov QWORD PTR [rbp-0x28],rax
7.62 mov rdi,rax
mov esi,r15d
vxorps xmm0,xmm0,xmm0
0.02 vmovups xmm1,XMMWORD PTR [rip+0x1e1] # 2a0 <instance int32 [System.Text.Encodings.Web] System.Text.Encodings.Web.OptimizedInboxTextEncoder::GetIndexOfFirstByteToEncode(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8>)[OptimizedTier1]+0x220>
0.03 vmovups xmm2,XMMWORD PTR [rip+0x1e9] # 2b0 <instance int32 [System.Text.Encodings.Web] System.Text.Encodings.Web.OptimizedInboxTextEncoder::GetIndexOfFirstByteToEncode(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8>)[OptimizedTier1]+0x230>
0.08 vmovups xmm3,XMMWORD PTR [rbx+0x18]
5.04 xor edx,edx
cmp rsi,0x10
6.14 ↓ jae 11c
58: test sil,0x8
↓ jne eb
62: test sil,0x4
0.02 ↓ je 99
vmovd xmm4,DWORD PTR [rdi+rdx*1]
0.06 vpshufb xmm3,xmm3,xmm4
2.19 vpsrld xmm4,xmm4,0x4
0.27 vpand xmm1,xmm4,xmm1
0.15 vpshufb xmm2,xmm2,xmm1
0.80 vpand xmm1,xmm2,xmm3
4.30 vpcmpeqb xmm0,xmm1,xmm0
1.21 vpmovmskb ecx,xmm0
test cl,0xf
8.65 ↓ jne 15e
0.06 add rdx,0x4
0.03 99: test sil,0x3
0.22 ↓ je c8
0.00 9f: lea rax,[rbx+0x18]
0.74 movzx ecx,BYTE PTR [rdi+rdx*1]
1.86 cmp ecx,0x7f
2.55 ↓ ja c8
mov r8d,ecx
0.64 and r8d,0xf
1.80 movzx eax,BYTE PTR [rax+r8*1]
3.10 shr ecx,0x4
1.51 bt eax,ecx
1.70 ↓ jae c8
1.25 inc rdx
1.50 cmp rdx,rsi
2.59 ↑ jne 9f
c8: mov eax,edx
0.01 xor edx,edx
0.59 mov QWORD PTR [rbp-0x28],rdx
1.53 cmp eax,r15d
1.39 ↓ jb 16c
d9: mov eax,0xffffffff
0.98 add rsp,0x20
1.99 pop rbx
0.29 pop r13
1.30 pop r14
0.03 pop r15
0.72 pop rbp
1.37 ← ret
eb: vmovq xmm4,QWORD PTR [rdi+rdx*1]
0.06 vpshufb xmm5,xmm3,xmm4
1.41 vpsrld xmm4,xmm4,0x4
vpand xmm4,xmm4,xmm1
0.18 vpshufb xmm4,xmm2,xmm4
0.18 vpand xmm4,xmm4,xmm5
0.63 vpcmpeqb xmm4,xmm4,xmm0
1.46 vpmovmskb ecx,xmm4
test cl,cl
4.17 ↓ jne 15e
add rdx,0x8
↑ jmp 62
11c: mov rax,rsi
and rax,0xfffffffffffffff0
123: vmovups xmm4,XMMWORD PTR [rdi+rdx*1]
vpshufb xmm5,xmm3,xmm4
vpsrld xmm4,xmm4,0x4
vpand xmm4,xmm4,xmm1
vpshufb xmm4,xmm2,xmm4
vpand xmm4,xmm4,xmm5
vpcmpeqb xmm4,xmm4,xmm0
vpmovmskb ecx,xmm4
movzx r8d,cx
test r8d,r8d
↓ jne 15e
add rdx,0x10
cmp rdx,rax
↑ jb 123
↑ jmp 58
15e: xor edi,edi
tzcnt edi,ecx
add rdx,rdi
↑ jmp c8
16c: mov edi,eax
cmp BYTE PTR [r14+rdi*1],0x7f
↓ jbe 20a
mov edi,eax
add r14,rdi
mov edi,r15d
sub edi,eax
mov r13d,edi
test r13d,r13d
↓ je 1ee
18b: mov rdi,r14
mov esi,r13d
lea rdx,[rbp-0x30]
lea rcx,[rbp-0x38]
movabs rax,0x78902386f678
→ call QWORD PTR [rax]
test eax,eax
↓ jne 1ee
cmp DWORD PTR [rbp-0x38],0x4
↓ jge 1ee
lea rax,[rbx+0x428]
movzx ecx,WORD PTR [rbp-0x30]
mov edx,ecx
shr edx,0x5
mov eax,DWORD PTR [rax+rdx*4]
bt eax,ecx
↓ jae 1ee
mov eax,DWORD PTR [rbp-0x38]
cmp eax,r13d
↓ ja 1e1
mov ecx,eax
add rcx,r14
sub r13d,eax
mov r14,rcx
test r13d,r13d
↑ jne 18b
↓ jmp 1ee
1e1: movabs rax,0x78902360c060
→ call QWORD PTR [rax]
int3
1ee: test r13d,r13d
↑ je d9
mov eax,r15d
sub eax,r13d
add rsp,0x20
pop rbx
pop r13
pop r14
pop r15
pop rbp
← ret
20a: add rsp,0x20
pop rbx
pop r13
pop r14
pop r15
pop rbp
← ret
Samples: 300K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6013580000, [percent: local period]
instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::WritePropertyNameMinimized(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8>,uint8)[OptimizedTier1]() /tmp/jitted-47883-2694.so
Percent
Disassembly of section .text:
0000000000000080 <instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::WritePropertyNameMinimized(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8>,uint8)[OptimizedTier1]>:
instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::WritePropertyNameMinimized(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8>,uint8)[OptimizedTier1]():
3.24 push rbp
2.86 push r15
0.00 push r14
0.00 push r13
0.04 push r12
0.01 push rbx
0.01 sub rsp,0x18
lea rbp,[rsp+0x40]
2.59 mov rbx,rdi
0.00 mov r13,rsi
mov r15d,edx
0.02 mov r14d,ecx
0.00 lea esi,[r15+0x5]
0.01 mov edx,DWORD PTR [rbx+0x4c]
0.12 sub edx,DWORD PTR [rbx+0x34]
0.14 cmp edx,esi
2.61 ↓ jl 160
31: lea r12,[rbx+0x40]
0.00 xor edx,edx
xor eax,eax
0.00 mov rdi,QWORD PTR [r12]
0.06 test rdi,rdi
0.04 ↓ je 7d
mov rdx,QWORD PTR [rdi]
0.66 test DWORD PTR [rdx],0x80000000
3.05 ↓ je 174
0.01 lea rdx,[rdi+0x10]
1.71 mov eax,DWORD PTR [rdi+0x8]
0.00 58: mov edi,DWORD PTR [r12+0x8]
0.01 and edi,0x7fffffff
0.01 mov esi,DWORD PTR [r12+0xc]
0.01 mov ecx,esi
add rcx,rdi
0.00 mov eax,eax
0.85 cmp rcx,rax
1.81 ↓ ja 197
add rdx,rdi
mov eax,esi
7d: cmp DWORD PTR [rbx+0x28],0x0
0.01 ↓ jge 9f
0.02 mov r12d,DWORD PTR [rbx+0x34]
0.01 lea edi,[r12+0x1]
0.00 mov DWORD PTR [rbx+0x34],edi
0.80 cmp r12d,eax
1.84 ↓ jae 1a4
0.00 mov edi,r12d
mov BYTE PTR [rdx+rdi*1],0x2c
0.38 9f: mov r12d,DWORD PTR [rbx+0x34]
1.44 lea edi,[r12+0x1]
0.70 mov DWORD PTR [rbx+0x34],edi
cmp r12d,eax
↓ jae 1a4
mov edi,r12d
0.40 mov BYTE PTR [rdx+rdi*1],0x22
6.97 mov edi,DWORD PTR [rbx+0x34]
4.64 cmp edi,eax
1.59 ↓ ja 197
0.01 mov esi,edi
mov QWORD PTR [rbp-0x38],rdx
add rsi,rdx
0.19 mov DWORD PTR [rbp-0x2c],eax
0.00 mov ecx,eax
0.03 sub ecx,edi
1.42 cmp r15d,ecx
1.40 ↓ ja 18a
0.00 mov edx,r15d
mov rdi,rsi
mov rsi,r13
movabs rcx,0x7890233857b8
0.12 → call QWORD PTR [rcx]
0.10 add r15d,DWORD PTR [rbx+0x34]
6.55 mov r12d,r15d
0.16 mov DWORD PTR [rbx+0x34],r12d
0.51 lea edi,[r12+0x1]
2.02 mov DWORD PTR [rbx+0x34],edi
0.06 mov r15d,DWORD PTR [rbp-0x2c]
0.03 cmp r12d,r15d
0.04 ↓ jae 1a4
mov edi,r12d
mov r13,QWORD PTR [rbp-0x38]
0.22 mov BYTE PTR [rdi+r13*1],0x22
9.10 mov r12d,DWORD PTR [rbx+0x34]
4.61 lea edi,[r12+0x1]
1.81 mov DWORD PTR [rbx+0x34],edi
0.03 cmp r12d,r15d
↓ jae 1a4
mov edi,r12d
0.00 mov BYTE PTR [rdi+r13*1],0x3a
10.75 mov r12d,DWORD PTR [rbx+0x34]
6.10 lea edi,[r12+0x1]
1.92 mov DWORD PTR [rbx+0x34],edi
0.05 cmp r12d,r15d
0.04 ↓ jae 1a4
mov edi,r12d
mov BYTE PTR [rdi+r13*1],r14b
11.37 add rsp,0x18
0.06 pop rbx
0.02 pop r12
0.01 pop r13
0.01 pop r14
0.05 pop r15
0.02 pop rbp
2.46 ← ret
160: mov rdi,rbx
movabs rax,0x78902386e958
→ call QWORD PTR [rax]
↑ jmp 31
174: mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x40]
→ call QWORD PTR [rax+0x28]
mov ecx,edx
mov rdx,rax
mov eax,ecx
↑ jmp 58
18a: movabs rax,0x78902386f450
→ call QWORD PTR [rax]
int3
197: movabs rax,0x78902360c060
→ call QWORD PTR [rax]
int3
1a4: → call instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::WritePropertyNameMinimized(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8
int3
Samples: 300K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6013580000, [percent: local period]
bool [System.Private.CoreLib] System.Number::TryUInt64ToDecStr(uint64,valuetype System.Span`1<!!0>,int32&)[OptimizedTier1]() /tmp/jitted-47883-2748.so
Percent
Disassembly of section .text:
0000000000000080 <bool [System.Private.CoreLib] System.Number::TryUInt64ToDecStr(uint64,valuetype System.Span`1<!!0>,int32&)[OptimizedTier1]>:
bool [System.Private.CoreLib] System.Number::TryUInt64ToDecStr(uint64,valuetype System.Span`1<!!0>,int32&)[OptimizedTier1]():
9.50 push rbp
5.86 sub rsp,0x10
lea rbp,[rsp+0x10]
xor eax,eax
mov QWORD PTR [rbp-0x8],rax
0.21 mov rax,rdi
or rax,0x1
0.01 lzcnt rax,rax
5.60 xor eax,0x3f
cdqe
movabs r8,0x78902252fc20
0.02 movzx eax,BYTE PTR [rax+r8*1]
0.75 mov r8d,eax
0.02 movabs r9,0x789022536738
cmp rdi,QWORD PTR [r9+r8*8]
7.92 setb r8b
5.92 movzx r8d,r8b
2.27 sub eax,r8d
2.84 cmp eax,edx
3.34 ↓ jg ec
mov DWORD PTR [rcx],eax
0.01 mov QWORD PTR [rbp-0x8],rsi
0.08 movsxd rcx,eax
add rcx,rsi
3.91 cmp rdi,0xa
1.90 ↓ jae c2
66: dec rcx
0.01 add edi,0x30
mov BYTE PTR [rcx],dil
5.86 6f: xor eax,eax
0.19 mov QWORD PTR [rbp-0x8],rax
0.10 mov eax,0x1
0.51 add rsp,0x10
pop rbp
0.47 ← ret
80: add rcx,0xfffffffffffffffe
4.01 movabs rdx,0x28f5c28f5c28f5c3
mov rax,rdi
shr rax,0x2
mul rdx
0.01 shr rdx,0x2
1.89 imul rax,rdx,0x64
0.04 mov rsi,rdi
3.81 sub rsi,rax
0.04 mov rdi,rdx
movabs rax,0x78500c0005d8
mov rax,QWORD PTR [rax]
0.06 add esi,esi
0.01 mov edx,esi
1.88 mov ax,WORD PTR [rax+rdx*1+0x10]
2.50 mov WORD PTR [rcx],ax
18.83 c2: cmp rdi,0x64
0.10 ↑ jae 80
cmp rdi,0xa
0.01 ↑ jb 66
add rcx,0xfffffffffffffffe
movabs rax,0x78500c0005d8
0.01 mov rax,QWORD PTR [rax]
0.12 lea edx,[rdi+rdi*1]
0.53 mov ax,WORD PTR [rax+rdx*1+0x10]
0.97 mov WORD PTR [rcx],ax
7.91 ↑ jmp 6f
ec: xor eax,eax
mov DWORD PTR [rcx],eax
add rsp,0x10
pop rbp
← ret
Samples: 300K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6013580000, [percent: local period]
valuetype System.Buffers.OperationStatus [System.Private.CoreLib] System.Text.Unicode.Utf8::FromUtf16(valuetype System.ReadOnlySpan`1<char>,valuetype System.Span`1<uint8>,int32&,int32&,bool,bool)[OptimizedTier1]() /tmp/jitted-47883-2661.so
Percent
Disassembly of section .text:
0000000000000080 <valuetype System.Buffers.OperationStatus [System.Private.CoreLib] System.Text.Unicode.Utf8::FromUtf16(valuetype System.ReadOnlySpan`1<char>,valuetype System.Span`1<uint8>,int32&,int32&,bool,bool)[OptimizedTier1]>:
valuetype System.Buffers.OperationStatus [System.Private.CoreLib] System.Text.Unicode.Utf8::FromUtf16(valuetype System.ReadOnlySpan`1<char>,valuetype System.Span`1<uint8>,int32&,int32&,bool,bool)[OptimizedTier1]():
26.65 push rbp
6.83 push r15
push r14
push r13
0.01 push r12
push rbx
0.01 sub rsp,0x38
lea rbp,[rsp+0x60]
7.01 mov rbx,rdi
mov r12d,esi
mov r15,rdx
mov eax,ecx
mov r14,r8
0.01 mov r13,r9
0.02 mov QWORD PTR [rbp-0x38],rbx
0.03 mov r10,rbx
6.85 mov QWORD PTR [rbp-0x30],r10
mov QWORD PTR [rbp-0x48],r15
mov r11,r15
mov QWORD PTR [rbp-0x40],r11
0.04 xor ecx,ecx
mov QWORD PTR [rbp-0x50],r10
mov QWORD PTR [rbp-0x58],r11
test r12d,r12d
7.30 ↓ je 72
49: mov rdi,rbx
mov rdx,r15
0.01 lea r9,[rbp-0x58]
0.01 lea r8,[rbp-0x50]
0.01 mov esi,r12d
mov DWORD PTR [rbp-0x5c],eax
0.01 mov ecx,eax
movabs rax,0x78902338e700
7.20 → call QWORD PTR [rax]
0.24 mov ecx,eax
0.07 cmp ecx,0x1
3.23 ↓ jg a7
72: mov rax,QWORD PTR [rbp-0x50]
1.40 sub rax,QWORD PTR [rbp-0x30]
5.44 mov r10,rax
0.22 shr r10,0x3f
5.23 add rax,r10
3.02 sar rax,1
3.24 mov DWORD PTR [r14],eax
0.19 mov rax,QWORD PTR [rbp-0x58]
4.89 sub rax,QWORD PTR [rbp-0x40]
2.17 mov DWORD PTR [r13+0x0],eax
1.08 mov eax,ecx
add rsp,0x38
2.15 pop rbx
1.13 pop r12
0.13 pop r13
0.87 pop r14
2.24 pop r15
1.01 pop rbp
0.06 ← ret
a7: mov eax,DWORD PTR [rbp-0x5c]
cmp ecx,0x2
↓ jne ba
movzx edx,BYTE PTR [rbp+0x18]
test dl,dl
mov DWORD PTR [rbp+0x18],edx
↑ je 72
ba: rex movzx edi,BYTE PTR [rbp+0x10]
test dil,dil
↓ je 157
mov rcx,QWORD PTR [rbp-0x58]
mov rsi,r15
sub ecx,esi
cmp ecx,eax
↓ ja 14a
mov esi,ecx
add r15,rsi
sub eax,ecx
cmp eax,0x2
↓ jle 140
mov WORD PTR [r15],0xbfef
mov BYTE PTR [r15+0x2],0xbd
cmp eax,0x3
↓ jb 14a
add r15,0x3
add eax,0xfffffffd
mov rcx,QWORD PTR [rbp-0x50]
mov rsi,rbx
sub rcx,rsi
mov rsi,rcx
shr rsi,0x3f
add rcx,rsi
sar rcx,1
inc ecx
cmp ecx,r12d
↓ ja 14a
mov esi,ecx
lea rbx,[rbx+rsi*2]
sub r12d,ecx
xor ecx,ecx
mov rsi,rbx
mov QWORD PTR [rbp-0x50],rsi
mov rsi,r15
mov QWORD PTR [rbp-0x58],rsi
test r12d,r12d
mov DWORD PTR [rbp+0x10],edi
↑ jne 49
↑ jmp 72
140: mov ecx,0x1
↑ jmp 72
14a: movabs rax,0x78902360c060
→ call QWORD PTR [rax]
int3
157: mov ecx,0x3
↑ jmp 72
Samples: 300K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6013580000, [percent: local period]
instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::WriteNumberMinimized(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8>,int64)[OptimizedTier1]() /tmp/jitted-47883-2714.so
Percent
Disassembly of section .text:
0000000000000080 <instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::WriteNumberMinimized(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8>,int64)[OptimizedTier1]>:
instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::WriteNumberMinimized(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8>,int64)[OptimizedTier1]():
4.17 push rbp
2.53 push r15
push r14
0.01 push r13
0.06 push r12
0.01 push rbx
0.02 sub rsp,0x38
lea rbp,[rsp+0x60]
2.46 xor eax,eax
mov QWORD PTR [rbp-0x48],rax
0.12 mov rbx,rdi
0.02 mov r13,rsi
mov r15d,edx
mov r14,rcx
lea esi,[r15+0x18]
mov edx,DWORD PTR [rbx+0x4c]
2.33 sub edx,DWORD PTR [rbx+0x34]
0.20 cmp edx,esi
0.18 ↓ jl 2b5
37: lea r12,[rbx+0x40]
xor edx,edx
xor eax,eax
mov rdi,QWORD PTR [r12]
0.06 test rdi,rdi
0.10 ↓ je 83
mov rdx,QWORD PTR [rdi]
2.75 test DWORD PTR [rdx],0x80000000
3.41 ↓ je 2c9
lea rdx,[rdi+0x10]
0.02 mov eax,DWORD PTR [rdi+0x8]
0.04 5e: mov edi,DWORD PTR [r12+0x8]
and edi,0x7fffffff
0.01 mov esi,DWORD PTR [r12+0xc]
0.01 mov ecx,esi
add rcx,rdi
1.75 mov eax,eax
0.78 cmp rcx,rax
0.10 ↓ ja 41b
add rdx,rdi
mov eax,esi
83: cmp DWORD PTR [rbx+0x28],0x0
0.01 ↓ jge a5
mov r12d,DWORD PTR [rbx+0x34]
0.02 lea edi,[r12+0x1]
1.07 mov DWORD PTR [rbx+0x34],edi
0.49 cmp r12d,eax
0.80 ↓ jae 428
0.04 mov edi,r12d
mov BYTE PTR [rdx+rdi*1],0x2c
0.18 a5: mov r12d,DWORD PTR [rbx+0x34]
0.37 lea edi,[r12+0x1]
0.76 mov DWORD PTR [rbx+0x34],edi
0.70 cmp r12d,eax
1.30 ↓ jae 428
0.01 mov edi,r12d
0.17 mov BYTE PTR [rdx+rdi*1],0x22
1.67 mov edi,DWORD PTR [rbx+0x34]
2.08 cmp edi,eax
0.81 ↓ ja 41b
mov esi,edi
mov QWORD PTR [rbp-0x58],rdx
0.49 add rsi,rdx
0.38 mov DWORD PTR [rbp-0x34],eax
0.40 mov ecx,eax
0.07 sub ecx,edi
0.51 cmp r15d,ecx
0.92 ↓ ja 40e
mov edx,r15d
mov rdi,rsi
mov rsi,r13
0.56 movabs rcx,0x7890233857b8
0.40 → call QWORD PTR [rcx]
0.49 add r15d,DWORD PTR [rbx+0x34]
1.59 mov r12d,r15d
mov DWORD PTR [rbx+0x34],r12d
0.24 lea eax,[r12+0x1]
0.07 mov DWORD PTR [rbx+0x34],eax
0.03 mov r13d,DWORD PTR [rbp-0x34]
0.15 cmp r12d,r13d
0.33 ↓ jae 428
mov eax,r12d
mov r15,QWORD PTR [rbp-0x58]
1.58 mov BYTE PTR [r15+rax*1],0x22
0.76 mov r12d,DWORD PTR [rbx+0x34]
3.04 lea eax,[r12+0x1]
1.20 mov DWORD PTR [rbx+0x34],eax
cmp r12d,r13d
0.01 ↓ jae 428
mov eax,r12d
0.15 mov BYTE PTR [r15+rax*1],0x3a
6.79 mov eax,DWORD PTR [rbx+0x34]
6.73 cmp eax,r13d
2.00 ↓ ja 41b
mov r8d,eax
0.01 add r8,r15
0.09 sub r13d,eax
0.01 mov r12,r8
mov r15d,r13d
0.02 mov WORD PTR [rbp-0x40],0x0
0.18 movzx eax,BYTE PTR [rbp-0x40]
0.26 rex movzx esi,BYTE PTR [rbp-0x3f]
2.41 or eax,esi
0.32 ↓ jne 2df
test r14,r14
0.04 ↓ jl 277
mov rax,r14
or rax,0x1
lzcnt rax,rax
0.02 xor eax,0x3f
0.21 cdqe
0.02 movabs rdx,0x78902252fc20
1.67 movzx eax,BYTE PTR [rax+rdx*1]
0.44 mov edx,eax
0.02 movabs rsi,0x789022536738
0.01 cmp r14,QWORD PTR [rsi+rdx*8]
1.46 setb dl
0.49 movzx edx,dl
1.11 sub eax,edx
0.89 cmp eax,r13d
2.00 ↓ jg 1f8
mov DWORD PTR [rbp-0x30],eax
0.16 mov QWORD PTR [rbp-0x48],r8
0.05 movsxd r9,eax
0.01 add r8,r9
0.93 cmp r14,0xa
0.02 ↓ jae 243
1cd: dec r8
add r14d,0x30
0.16 mov BYTE PTR [r8],r14b
0.56 1d7: xor eax,eax
0.29 mov QWORD PTR [rbp-0x48],rax
0.60 1dd: xor eax,eax
0.05 mov QWORD PTR [rbp-0x48],rax
1e3: mov eax,DWORD PTR [rbp-0x30]
0.16 add DWORD PTR [rbx+0x34],eax
0.35 add rsp,0x38
1.26 pop rbx
0.59 pop r12
1.01 pop r13
0.15 pop r14
0.24 pop r15
0.26 pop rbp
0.22 ← ret
1f8: xor eax,eax
mov DWORD PTR [rbp-0x30],eax
↑ jmp 1dd
1ff: add r8,0xfffffffffffffffe
0.56 movabs rdx,0x28f5c28f5c28f5c3
0.55 mov rax,r14
0.03 shr rax,0x2
0.04 mul rdx
0.36 shr rdx,0x2
0.92 imul r9,rdx,0x64
0.05 mov rcx,r14
0.56 sub rcx,r9
0.50 mov r14,rdx
0.02 movabs r9,0x78500c0005d8
0.04 mov r9,QWORD PTR [r9]
0.33 add ecx,ecx
0.02 mov edx,ecx
1.00 mov r9w,WORD PTR [r9+rdx*1+0x10]
6.40 mov WORD PTR [r8],r9w
2.15 243: cmp r14,0x64
0.20 ↑ jae 1ff
cmp r14,0xa
0.01 ↑ jb 1cd
add r8,0xfffffffffffffffe
0.99 movabs r9,0x78500c0005d8
0.04 mov r9,QWORD PTR [r9]
0.01 lea edx,[r14+r14*1]
mov r9w,WORD PTR [r9+rdx*1+0x10]
0.31 mov WORD PTR [r8],r9w
5.63 ↑ jmp 1d7
277: xor r8d,r8d
cmp esi,0xff
cmove esi,r8d
movabs rdx,0x78902252fbc8
lea r8,[rbp-0x30]
mov QWORD PTR [rsp],r8
mov r8,r12
mov r9d,r15d
mov ecx,0x1
mov rdi,r14
movabs rax,0x78902386fd80
→ call QWORD PTR [rax]
↑ jmp 1e3
2b5: mov rdi,rbx
movabs rax,0x78902386e958
→ call QWORD PTR [rax]
↑ jmp 37
2c9: mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x40]
→ call QWORD PTR [rax+0x28]
mov ecx,edx
mov rdx,rax
mov eax,ecx
↑ jmp 5e
2df: movzx eax,BYTE PTR [rbp-0x40]
or eax,0x20
cmp eax,0x67
↓ jg 2f7
cmp eax,0x64
↓ je 369
cmp eax,0x67
↓ je 354
↓ jmp 30a
2f7: cmp eax,0x6e
↓ je 3e1
cmp eax,0x72
↓ je 354
cmp eax,0x78
↓ je 317
30a: movabs rax,0x7890239668c8
→ call QWORD PTR [rax]
int3
317: movzx r13d,BYTE PTR [rbp-0x40]
lea rdi,[rbp-0x40]
movabs rax,0x78902386fd68
→ call QWORD PTR [rax]
mov edx,eax
mov rcx,r12
mov r8d,r15d
add r13d,0xffffffdf
movzx esi,r13w
lea r9,[rbp-0x30]
mov rdi,r14
movabs rax,0x789023966700
→ call QWORD PTR [rax]
↑ jmp 1e3
354: cmp esi,0xff
↓ je 369
movabs rax,0x7890239668e0
→ call QWORD PTR [rax]
int3
369: test r14,r14
↓ jge 3b1
lea rdi,[rbp-0x40]
movabs rax,0x78902386fd68
→ call QWORD PTR [rax]
mov esi,eax
movabs rdx,0x78902252fbc8
lea r8,[rbp-0x30]
mov QWORD PTR [rsp],r8
mov r8,r12
mov r9d,r15d
mov ecx,0x1
mov rdi,r14
movabs rax,0x78902386fd80
→ call QWORD PTR [rax]
↑ jmp 1e3
3b1: lea rdi,[rbp-0x40]
movabs rax,0x78902386fd68
→ call QWORD PTR [rax]
mov esi,eax
mov rdx,r12
mov ecx,r15d
lea r8,[rbp-0x30]
mov rdi,r14
movabs rax,0x7890239666e8
→ call QWORD PTR [rax]
↑ jmp 1e3
3e1: movzx r8d,WORD PTR [rbp-0x40]
mov WORD PTR [rbp-0x50],r8w
movzx r8d,WORD PTR [rbp-0x50]
mov rsi,r12
mov edx,r15d
lea rcx,[rbp-0x30]
mov rdi,r14
movabs rax,0x7890239666d0
→ call QWORD PTR [rax]
↑ jmp 1e3
40e: movabs rax,0x78902386f450
→ call QWORD PTR [rax]
int3
41b: movabs rax,0x78902360c060
→ call QWORD PTR [rax]
int3
428: → call instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::WriteNumberMinimized(valuetype [System.Runtime]System.ReadOnlySpan`1<uint8
int3
Samples: 300K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6013580000, [percent: local period]
instance int32 [System.Text.Encodings.Web] System.Text.Encodings.Web.OptimizedInboxTextEncoder::GetIndexOfFirstCharToEncode(valuetype [System.Runtime]System.ReadOnlySpan`1<char>)[OptimizedTier1]() /tmp/jitted-47883-2670.so
Percent
Disassembly of section .text:
0000000000000080 <instance int32 [System.Text.Encodings.Web] System.Text.Encodings.Web.OptimizedInboxTextEncoder::GetIndexOfFirstCharToEncode(valuetype [System.Runtime]System.ReadOnlySpan`1<char>)[OptimizedTier1]>:
instance int32 [System.Text.Encodings.Web] System.Text.Encodings.Web.OptimizedInboxTextEncoder::GetIndexOfFirstCharToEncode(valuetype [System.Runtime]System.ReadOnlySpan`1<char>)[OptimizedTier1]():
16.69 push rbp
7.84 sub rsp,0x10
lea rbp,[rsp+0x10]
xor eax,eax
mov QWORD PTR [rbp-0x8],rax
0.03 xor eax,eax
0.01 test edx,edx
0.01 cmovne rax,rsi
7.75 mov QWORD PTR [rbp-0x8],rax
0.01 mov rcx,rax
mov edx,edx
vxorps xmm0,xmm0,xmm0
vmovups xmm1,XMMWORD PTR [rip+0x2b3] # 360 <instance int32 [System.Text.Encodings.Web] System.Text.Encodings.Web.OptimizedInboxTextEncoder::GetIndexOfFirstCharToEncode(valuetype [System.Runtime]System.ReadOnlySpan`1<char>)[OptimizedTier1]+0x2e0>
0.05 vmovups xmm2,XMMWORD PTR [rip+0x2bb] # 370 <instance int32 [System.Text.Encodings.Web] System.Text.Encodings.Web.OptimizedInboxTextEncoder::GetIndexOfFirstCharToEncode(valuetype [System.Runtime]System.ReadOnlySpan`1<char>)[OptimizedTier1]+0x2f0>
0.05 vmovups xmm3,XMMWORD PTR [rdi+0x18]
4.56 xor esi,esi
7.11 cmp rdx,0x10
↓ jae 110
46: test dl,0x8
0.02 ↓ jne a7
4b: test dl,0x4
0.01 ↓ je 86
vmovq xmm4,QWORD PTR [rcx+rsi*2]
2.25 vpackuswb xmm4,xmm4,xmm0
0.44 vpshufb xmm3,xmm3,xmm4
1.32 vpsrld xmm4,xmm4,0x4
0.08 vpand xmm1,xmm4,xmm1
5.33 vpshufb xmm2,xmm2,xmm1
0.13 vpand xmm1,xmm2,xmm3
0.75 vpcmpeqb xmm0,xmm1,xmm0
1.27 vpmovmskb r8d,xmm0
1.91 test r8b,0xf
8.14 ↓ jne 158
0.06 add rsi,0x4
86: test dl,0x3
0.03 ↓ jne e1
8b: mov rax,rsi
1.52 cmp rax,rdx
0.77 ↓ jb 167
97: mov ecx,0xffffffff
0.71 cmp eax,edx
0.63 cmove eax,ecx
1.81 add rsp,0x10
1.16 pop rbp
1.32 ← ret
a7: vmovups xmm4,XMMWORD PTR [rcx+rsi*2]
0.08 vpackuswb xmm4,xmm4,xmm0
0.28 vpshufb xmm5,xmm3,xmm4
1.25 vpsrld xmm4,xmm4,0x4
vpand xmm4,xmm4,xmm1
0.08 vpshufb xmm4,xmm2,xmm4
3.06 vpand xmm4,xmm4,xmm5
0.48 vpcmpeqb xmm4,xmm4,xmm0
0.92 vpmovmskb r8d,xmm4
test r8b,r8b
6.78 ↓ jne 158
add rsi,0x8
0.01 ↑ jmp 4b
0.01 e1: lea r8,[rdi+0x18]
1.59 movzx eax,WORD PTR [rcx+rsi*2]
0.81 cmp eax,0x7f
1.57 ↑ ja 8b
mov r9d,eax
and r9d,0xf
0.79 movzx r8d,BYTE PTR [r8+r9*1]
2.80 shr eax,0x4
0.63 bt r8d,eax
0.83 ↑ jae 8b
1.90 inc rsi
0.65 cmp rsi,rdx
1.71 ↑ jne e1
↑ jmp 8b
110: mov rax,rdx
and rax,0xfffffffffffffff0
117: vmovups xmm4,XMMWORD PTR [rcx+rsi*2]
vpackuswb xmm4,xmm4,XMMWORD PTR [rcx+rsi*2+0x10]
vpshufb xmm5,xmm3,xmm4
vpsrld xmm4,xmm4,0x4
vpand xmm4,xmm4,xmm1
vpshufb xmm4,xmm2,xmm4
vpand xmm4,xmm4,xmm5
vpcmpeqb xmm4,xmm4,xmm0
vpmovmskb r8d,xmm4
movzx r9d,r8w
test r9d,r9d
↓ jne 158
add rsi,0x10
cmp rsi,rax
↑ jb 117
↑ jmp 46
158: xor eax,eax
tzcnt eax,r8d
add rsi,rax
↑ jmp 8b
167: mov rsi,rdx
sub rsi,rax
cmp rsi,0x8
↓ jb 2ac
xor esi,esi
lea r8,[rdi+0x428]
movzx r9d,WORD PTR [rcx+rax*2]
mov r10d,r9d
shr r10d,0x5
mov r8d,DWORD PTR [r8+r10*4]
bt r8d,r9d
↓ jae 2a4
mov esi,0x1
lea r8,[rdi+0x428]
movzx r9d,WORD PTR [rcx+rax*2+0x2]
mov r10d,r9d
shr r10d,0x5
mov r8d,DWORD PTR [r8+r10*4]
bt r8d,r9d
↓ jae 2a4
mov esi,0x2
lea r8,[rdi+0x428]
movzx r9d,WORD PTR [rcx+rax*2+0x4]
mov r10d,r9d
shr r10d,0x5
mov r8d,DWORD PTR [r8+r10*4]
bt r8d,r9d
↓ jae 2a4
mov esi,0x3
lea r8,[rdi+0x428]
movzx r9d,WORD PTR [rcx+rax*2+0x6]
mov r10d,r9d
shr r10d,0x5
mov r8d,DWORD PTR [r8+r10*4]
bt r8d,r9d
↓ jae 2a4
mov esi,0x4
lea r8,[rdi+0x428]
movzx r9d,WORD PTR [rcx+rax*2+0x8]
mov r10d,r9d
shr r10d,0x5
mov r8d,DWORD PTR [r8+r10*4]
bt r8d,r9d
↓ jae 2a4
mov esi,0x5
lea r8,[rdi+0x428]
movzx r9d,WORD PTR [rcx+rax*2+0xa]
mov r10d,r9d
shr r10d,0x5
mov r8d,DWORD PTR [r8+r10*4]
bt r8d,r9d
↓ jae 2a4
mov esi,0x6
lea r8,[rdi+0x428]
movzx r9d,WORD PTR [rcx+rax*2+0xc]
mov r10d,r9d
shr r10d,0x5
mov r8d,DWORD PTR [r8+r10*4]
bt r8d,r9d
↓ jae 2a4
mov esi,0x7
lea r8,[rdi+0x428]
movzx r9d,WORD PTR [rcx+rax*2+0xe]
mov r10d,r9d
shr r10d,0x5
mov r8d,DWORD PTR [r8+r10*4]
bt r8d,r9d
↓ jae 2a4
add rax,0x8
↑ jmp 167
2a4: add rax,rsi
↑ jmp 97
2ac: cmp rax,rdx
↑ jae 97
lea rsi,[rdi+0x428]
movzx r8d,WORD PTR [rcx+rax*2]
mov r9d,r8d
shr r9d,0x5
mov esi,DWORD PTR [rsi+r9*4]
bt esi,r8d
↑ jae 97
inc rax
↑ jmp 2ac
Samples: 300K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6013580000, [percent: local period]
void [System.Private.CoreLib] System.SpanHelpers::Memmove(uint8&,uint8&,native uint)[OptimizedTier1]() /tmp/jitted-47883-2632.so
Percent
Disassembly of section .text:
0000000000000080 <void [System.Private.CoreLib] System.SpanHelpers::Memmove(uint8&,uint8&,native uint)[OptimizedTier1]>:
void [System.Private.CoreLib] System.SpanHelpers::Memmove(uint8&,uint8&,native uint)[OptimizedTier1]():
20.51 push rbp
16.38 mov rbp,rsp
mov rax,rdi
sub rax,rsi
cmp rax,rdx
↓ jb 121
mov rax,rsi
sub rax,rdi
0.02 cmp rax,rdx
2.03 ↓ jb 121
lea rax,[rsi+rdx*1]
14.56 lea rcx,[rdi+rdx*1]
cmp rdx,0x10
↓ ja 75
test dl,0x18
0.02 ↓ jne 65
test dl,0x4
0.08 ↓ je 49
mov edx,DWORD PTR [rsi]
0.10 mov DWORD PTR [rdi],edx
14.16 mov esi,DWORD PTR [rax-0x4]
0.66 mov DWORD PTR [rcx-0x4],esi
11.69 44: vzeroupper
0.01 pop rbp
1.62 ← ret
49: test rdx,rdx
0.01 ↑ je 44
rex movzx esi,BYTE PTR [rsi]
0.03 mov BYTE PTR [rdi],sil
1.54 test dl,0x2
3.28 ↑ je 44
movsx rdi,WORD PTR [rax-0x2]
0.04 mov WORD PTR [rcx-0x2],di
1.14 ↑ jmp 44
65: mov rdx,QWORD PTR [rsi]
0.13 mov QWORD PTR [rdi],rdx
6.86 mov rdi,QWORD PTR [rax-0x8]
0.06 mov QWORD PTR [rcx-0x8],rdi
5.08 ↑ jmp 44
75: cmp rdx,0x40
↓ jbe ea
cmp rdx,0x800
↓ ja 12e
cmp rdx,0x100
↓ jb ba
mov r8,rdi
and r8,0x3f
neg r8
add r8,0x40
vmovdqu ymm0,YMMWORD PTR [rsi]
vmovdqu YMMWORD PTR [rdi],ymm0
vmovdqu ymm0,YMMWORD PTR [rsi+0x20]
vmovdqu YMMWORD PTR [rdi+0x20],ymm0
add rsi,r8
add rdi,r8
sub rdx,r8
ba: mov r8,rdx
shr r8,0x6
c1: vmovdqu ymm0,YMMWORD PTR [rsi]
vmovdqu YMMWORD PTR [rdi],ymm0
vmovdqu ymm0,YMMWORD PTR [rsi+0x20]
vmovdqu YMMWORD PTR [rdi+0x20],ymm0
add rdi,0x40
add rsi,0x40
dec r8
↑ jne c1
and rdx,0x3f
cmp rdx,0x10
↓ jbe 112
ea: vmovups xmm0,XMMWORD PTR [rsi]
vmovups XMMWORD PTR [rdi],xmm0
cmp rdx,0x20
↓ jbe 112
vmovups xmm0,XMMWORD PTR [rsi+0x10]
vmovups XMMWORD PTR [rdi+0x10],xmm0
cmp rdx,0x30
↓ jbe 112
vmovups xmm0,XMMWORD PTR [rsi+0x20]
vmovups XMMWORD PTR [rdi+0x20],xmm0
112: vmovups xmm0,XMMWORD PTR [rax-0x10]
vmovups XMMWORD PTR [rcx-0x10],xmm0
↑ jmp 44
121: cmp rdi,rsi
↓ jne 12e
cmp BYTE PTR [rsi],sil
↑ jmp 44
12e: cmp BYTE PTR [rdi],dil
cmp BYTE PTR [rsi],sil
movabs rax,0x7890233864f0
vzeroupper
pop rbp
rex.W jmp QWORD PTR [rax]
Samples: 300K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6013580000, [percent: local period]
instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::WriteStringMinimized(valuetype [System.Runtime]System.ReadOnlySpan`1<char>)[OptimizedTier1]() /tmp/jitted-47883-2700.so
Percent
Disassembly of section .text:
0000000000000080 <instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::WriteStringMinimized(valuetype [System.Runtime]System.ReadOnlySpan`1<char>)[OptimizedTier1]>:
instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::WriteStringMinimized(valuetype [System.Runtime]System.ReadOnlySpan`1<char>)[OptimizedTier1]():
4.36 push rbp
4.07 push r15
push r14
push r13
0.02 push r12
0.01 push rbx
0.01 sub rsp,0x28
lea rbp,[rsp+0x50]
4.27 mov rbx,rdi
mov r14,rsi
mov r15d,edx
lea esi,[r15+r15*2]
add esi,0x3
mov edi,DWORD PTR [rbx+0x4c]
0.19 sub edi,DWORD PTR [rbx+0x34]
0.18 cmp edi,esi
3.97 ↓ jl 12e
31: lea r13,[rbx+0x40]
xor r12d,r12d
xor eax,eax
mov rdi,QWORD PTR [r13+0x0]
0.07 test rdi,rdi
0.01 ↓ je 7c
mov rax,QWORD PTR [rdi]
0.41 test DWORD PTR [rax],0x80000000
1.55 ↓ je 142
0.01 lea r12,[rdi+0x10]
3.81 mov eax,DWORD PTR [rdi+0x8]
0.05 59: mov edi,DWORD PTR [r13+0x8]
0.08 and edi,0x7fffffff
mov esi,DWORD PTR [r13+0xc]
mov edx,esi
add rdx,rdi
0.04 mov eax,eax
0.40 cmp rdx,rax
3.79 ↓ ja 156
add r12,rdi
mov eax,esi
7c: cmp DWORD PTR [rbx+0x28],0x0
0.01 ↓ jl 111
86: mov r13d,DWORD PTR [rbx+0x34]
0.18 lea edi,[r13+0x1]
0.08 mov DWORD PTR [rbx+0x34],edi
0.24 cmp r13d,eax
1.83 ↓ jae 163
0.02 mov edi,r13d
1.92 mov BYTE PTR [r12+rdi*1],0x22
0.78 mov edi,DWORD PTR [rbx+0x34]
1.42 cmp edi,eax
0.49 ↓ ja 156
mov edx,edi
add rdx,r12
mov DWORD PTR [rbp-0x2c],eax
0.22 mov ecx,eax
1.84 sub ecx,edi
1.56 xor edi,edi
0.04 mov DWORD PTR [rsp],edi
mov DWORD PTR [rsp+0x8],0x1
0.58 mov rdi,r14
mov esi,r15d
lea r8,[rbp-0x40]
0.19 lea r9,[rbp-0x38]
1.95 movabs r10,0x78902386fa98
1.32 → call QWORD PTR [r10]
0.33 mov r13d,DWORD PTR [rbx+0x34]
1.64 add r13d,DWORD PTR [rbp-0x38]
25.03 mov DWORD PTR [rbx+0x34],r13d
0.13 lea edi,[r13+0x1]
3.69 mov DWORD PTR [rbx+0x34],edi
0.19 cmp r13d,DWORD PTR [rbp-0x2c]
0.02 ↓ jae 163
mov edi,r13d
mov BYTE PTR [r12+rdi*1],0x22
20.17 add rsp,0x28
0.07 pop rbx
pop r12
pop r13
0.02 pop r14
0.02 pop r15
0.02 pop rbp
4.21 ← ret
0.01 111: mov r13d,DWORD PTR [rbx+0x34]
lea edi,[r13+0x1]
mov DWORD PTR [rbx+0x34],edi
0.21 cmp r13d,eax
2.11 ↓ jae 163
0.01 mov edi,r13d
mov BYTE PTR [r12+rdi*1],0x2c
0.08 ↑ jmp 86
12e: mov rdi,rbx
movabs rax,0x78902386e958
→ call QWORD PTR [rax]
↑ jmp 31
142: mov rax,QWORD PTR [rdi]
mov rax,QWORD PTR [rax+0x40]
→ call QWORD PTR [rax+0x28]
mov r12,rax
mov eax,edx
↑ jmp 59
156: movabs rax,0x78902360c060
→ call QWORD PTR [rax]
int3
163: → call instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::WriteStringMinimized(valuetype [System.Runtime]System.ReadOnlySpan`1<char
int3
Samples: 300K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6013580000, [percent: local period]
valuetype System.Buffers.OperationStatus [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::TranscodeToUtf8(char*,int32,uint8*,int32,char*&,uint8*&)[OptimizedTier1]() /tmp/jitted-47883-2662.so
Percent
Disassembly of section .text:
0000000000000080 <valuetype System.Buffers.OperationStatus [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::TranscodeToUtf8(char*,int32,uint8*,int32,char*&,uint8*&)[OptimizedTier1]>:
valuetype System.Buffers.OperationStatus [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::TranscodeToUtf8(char*,int32,uint8*,int32,char*&,uint8*&)[OptimizedTier1]():
18.24 push rbp
13.42 push r15
push r14
push r13
0.09 push r12
push rbx
push rax
0.10 lea rbp,[rsp+0x30]
mov QWORD PTR [rbp-0x30],r9
14.05 mov rbx,rdi
mov r14d,esi
mov r15,rdx
mov r13d,ecx
0.06 mov r12,r8
cmp r14d,r13d
0.07 mov edx,r13d
cmovle edx,r14d
13.33 mov rdi,rbx
mov rsi,r15
0.05 movabs rcx,0x78902338e718
0.06 → call QWORD PTR [rcx]
7.78 lea rbx,[rbx+rax*2]
0.13 add r15,rax
0.13 cmp eax,r14d
6.68 ↓ jne 68
mov QWORD PTR [r12],rbx
0.10 mov r12,QWORD PTR [rbp-0x30]
1.31 mov QWORD PTR [r12],r15
3.66 xor eax,eax
5.81 add rsp,0x8
0.09 pop rbx
1.01 pop r12
6.27 pop r13
0.19 pop r14
0.25 pop r15
1.04 pop rbp
6.09 ← ret
68: sub r14d,eax
sub r13d,eax
cmp r14d,0x2
↓ jl 474
mov eax,r14d
lea rax,[rbx+rax*2-0x4]
80: mov ecx,DWORD PTR [rbx]
82: test ecx,0xff80ff80
↓ jne 1a3
cmp r13d,0x2
↓ jl 235
mov edx,ecx
shr edx,0x8
or edx,ecx
mov WORD PTR [r15],dx
add rbx,0x4
add r15,0x2
add r13d,0xfffffffe
mov rcx,rax
sub rcx,rbx
mov rdx,rcx
shr rdx,0x3f
add rcx,rdx
sar rcx,1
add ecx,0x2
movsxd rdx,r13d
cmp rcx,rdx
↓ jle cf
↓ jmp d2
cf: mov rdx,rcx
d2: mov ecx,edx
shr ecx,0x3
xor edi,edi
d9: cmp edi,ecx
↓ jae 138
vmovups xmm0,XMMWORD PTR [rbx]
vptest xmm0,XMMWORD PTR [rip+0x466] # 5d0 <valuetype System.Buffers.OperationStatus [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::TranscodeToUtf8(char*,int32,uint8*,int32,char*&,uint8*&)[OptimizedTier1]+0x550>
↓ jne 101
vpackuswb xmm0,xmm0,xmm0
vmovq QWORD PTR [r15],xmm0
add rbx,0x10
add r15,0x8
inc edi
↑ jmp d9
101: shl edi,0x3
sub r13d,edi
vmovq rcx,xmm0
movabs rdx,0xff80ff80ff80ff80
test rdx,rcx
↓ jne 15d
vpackuswb xmm1,xmm0,xmm0
vmovd DWORD PTR [r15],xmm1
add rbx,0x8
add r15,0x4
add r13d,0xfffffffc
vpextrq rcx,xmm0,0x1
↓ jmp 15d
138: lea ecx,[rdi*8+0x0]
sub r13d,ecx
test dl,0x4
↓ je 457
mov rcx,QWORD PTR [rbx]
movabs rdx,0xff80ff80ff80ff80
test rdx,rcx
↓ je 18c
15d: mov edx,ecx
test edx,0xff80ff80
↓ jne 188
mov edi,edx
shr edi,0x8
or edi,edx
mov WORD PTR [r15],di
add rbx,0x4
add r15,0x2
add r13d,0xfffffffe
shr rcx,0x20
mov edx,ecx
mov ecx,edx
↓ jmp 1a3
188: mov ecx,edx
↓ jmp 1a3
18c: vmovq xmm0,rcx
vpackuswb xmm0,xmm0,xmm0
vmovd DWORD PTR [r15],xmm0
add rbx,0x8
↓ jmp 44f
1a3: test ecx,0xff80
↓ jne 1cc
test r13d,r13d
↓ je 50c
mov BYTE PTR [r15],cl
add rbx,0x2
inc r15
dec r13d
cmp rbx,rax
↓ ja 460
mov ecx,DWORD PTR [rbx]
1cc: test ecx,0xf800
↓ jne 2b3
1d8: lea edx,[rcx-0x800000]
cmp edx,0x77fffff
↓ ja 23d
cmp r13d,0x4
↓ jl 235
mov edx,ecx
shr edx,0x6
and edx,0x1f001f
shl ecx,0x8
and ecx,0x3f003f00
add ecx,edx
add ecx,0x80c080c0
mov DWORD PTR [r15],ecx
add rbx,0x4
add r15,0x4
add r13d,0xfffffffc
cmp rbx,rax
↓ ja 460
mov ecx,DWORD PTR [rbx]
lea edx,[rcx-0x80]
movzx edx,dx
cmp edx,0x780
↑ jb 1d8
↑ jmp 82
235: movzx edx,cx
↓ jmp 480
23d: cmp r13d,0x2
↓ jl 50c
lea edx,[rcx*4+0x0]
and edx,0x1f00
mov edi,ecx
and edi,0x3f
lea edx,[rdx+rdi*1+0xc080]
movzx edx,dx
movbe WORD PTR [r15],dx
cmp ecx,0x800000
↓ jae 29c
cmp r13d,0x3
↓ jl 28f
shr ecx,0x10
mov BYTE PTR [r15+0x2],cl
add rbx,0x4
add r15,0x3
add r13d,0xfffffffd
↓ jmp 457
28f: add rbx,0x2
add r15,0x2
↓ jmp 50c
29c: add rbx,0x2
add r15,0x2
add r13d,0xfffffffe
cmp rbx,rax
↓ ja 460
mov ecx,DWORD PTR [rbx]
2b3: lea edx,[rcx-0xd800]
test edx,0xf800
↓ je 3f4
test ecx,0xf8000000
↓ je 36a
lea edx,[rcx+0x28000000]
cmp edx,0x8000000
↓ jb 36a
cmp r13d,0x6
↓ jl 36a
lea edx,[rcx*4+0x0]
and edx,0x3f00
mov edi,ecx
and edi,0x3f
shl edi,0x10
or edx,edi
mov edi,ecx
shr edi,0x4
and edi,0xf000000
mov esi,ecx
shr esi,0xc
and esi,0xf
or edi,esi
add edx,edi
add edx,0xe08080e0
mov DWORD PTR [r15],edx
mov edx,ecx
shr edx,0x16
and edx,0x3f
shr ecx,0x8
and ecx,0x3f00
add ecx,edx
add ecx,0x8080
mov WORD PTR [r15+0x4],cx
add rbx,0x4
add r15,0x6
add r13d,0xfffffffa
cmp rbx,rax
↓ ja 460
mov ecx,DWORD PTR [rbx]
test ecx,0xf800
↑ jne 2b3
↑ jmp 82
36a: cmp r13d,0x3
↓ jl 50c
lea edx,[rcx*4+0x0]
and edx,0x3f00
movzx edi,cx
shr edi,0xc
add edx,edi
add edx,0x80e0
mov WORD PTR [r15],dx
mov edx,ecx
and edx,0x3f
or edx,0xffffff80
mov BYTE PTR [r15+0x2],dl
add rbx,0x2
add r15,0x3
add r13d,0xfffffffd
cmp ecx,0x800000
↓ jae 3e8
test r13d,r13d
↓ je 50c
shr ecx,0x10
mov BYTE PTR [r15],cl
add rbx,0x2
inc r15
dec r13d
cmp rbx,rax
↓ ja 460
mov ecx,DWORD PTR [rbx]
test ecx,0xf800
↑ jne 2b3
↑ jmp 82
3e8: cmp rbx,rax
↓ ja 460
mov ecx,DWORD PTR [rbx]
↑ jmp 1a3
3f4: lea edx,[rcx+0x23ff2800]
test edx,0xfc00fc00
↓ jne 522
cmp r13d,0x4
↓ jl 50c
add ecx,0x40
mov edx,ecx
and edx,0x3
shl edx,0x14
or edx,0x808080f0
mov edi,ecx
and edi,0x3f0700
bswap edi
rol edi,0x10
or edx,edi
mov edi,ecx
shr edi,0x6
and edi,0xf0000
or edx,edi
and ecx,0xfc
shl ecx,0x6
or ecx,edx
mov DWORD PTR [r15],ecx
add rbx,0x4
44f: add r15,0x4
add r13d,0xfffffffc
457: cmp rbx,rax
↑ jbe 80
460: sub rax,rbx
mov r14,rax
shr r14,0x3f
add r14,rax
sar r14,1
add r14d,0x2
474: test r14d,r14d
↓ je 529
movzx edx,WORD PTR [rbx]
480: cmp edx,0x7f
↓ ja 49a
test r13d,r13d
↓ je 50c
mov BYTE PTR [r15],dl
add rbx,0x2
inc r15
↓ jmp 506
49a: cmp edx,0x800
↓ jae 4c7
cmp r13d,0x2
↓ jl 50c
mov eax,edx
and eax,0x3f
or eax,0xffffff80
mov BYTE PTR [r15+0x1],al
shr edx,0x6
or edx,0xffffffc0
mov BYTE PTR [r15],dl
add rbx,0x2
add r15,0x2
↓ jmp 506
4c7: lea eax,[rdx-0xd800]
cmp eax,0x7ff
↓ jbe 513
cmp r13d,0x3
↓ jl 50c
mov eax,edx
and eax,0x3f
or eax,0xffffff80
mov BYTE PTR [r15+0x2],al
mov eax,edx
shr eax,0x6
and eax,0x3f
or eax,0xffffff80
mov BYTE PTR [r15+0x1],al
shr edx,0xc
or edx,0xffffffe0
mov BYTE PTR [r15],dl
add rbx,0x2
add r15,0x3
506: cmp r14d,0x1
↓ jle 529
50c: mov eax,0x1
↓ jmp 52b
513: cmp edx,0xdbff
↓ ja 522
mov eax,0x2
↓ jmp 52b
522: mov eax,0x3
↓ jmp 52b
529: xor eax,eax
52b: mov QWORD PTR [r12],rbx
mov r12,QWORD PTR [rbp-0x30]
mov QWORD PTR [r12],r15
add rsp,0x8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
← ret
Samples: 300K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6013580000, [percent: local period]
native uint [System.Private.CoreLib] System.Text.Ascii::NarrowUtf16ToAscii(char*,uint8*,native uint)[OptimizedTier1]() /tmp/jitted-47883-2663.so
Percent
Disassembly of section .text:
0000000000000080 <native uint [System.Private.CoreLib] System.Text.Ascii::NarrowUtf16ToAscii(char*,uint8*,native uint)[OptimizedTier1]>:
native uint [System.Private.CoreLib] System.Text.Ascii::NarrowUtf16ToAscii(char*,uint8*,native uint)[OptimizedTier1]():
19.06 push rbp
21.41 mov rbp,rsp
xor eax,eax
cmp rdx,0x20
↓ jae 8d
10: sub rdx,rax
cmp rdx,0x4
↓ jb 4c
lea rcx,[rax+rdx*1-0x4]
0.15 1e: mov r8,QWORD PTR [rdi+rax*2]
30.81 movabs r9,0xff80ff80ff80ff80
test r9,r8
0.44 ↓ jne 220
vmovq xmm0,r8
0.06 vpackuswb xmm0,xmm0,xmm0
5.04 vmovd DWORD PTR [rsi+rax*1],xmm0
0.30 add rax,0x4
0.01 cmp rax,rcx
0.01 ↑ jbe 1e
4c: test dl,0x2
13.87 ↓ jne 6a
4.44 51: test dl,0x1
0.52 ↓ je 65
movzx ecx,WORD PTR [rdi+rax*2]
0.96 cmp ecx,0x7f
0.31 ↓ ja 65
0.01 5f: mov BYTE PTR [rsi+rax*1],cl
0.39 inc rax
0.04 65: vzeroupper
0.06 pop rbp
0.35 ← ret
6a: mov ecx,DWORD PTR [rdi+rax*2]
1.14 test ecx,0xff80ff80
0.26 ↓ jne 242
lea r8,[rsi+rax*1]
mov BYTE PTR [r8],cl
0.31 shr ecx,0x10
0.03 mov BYTE PTR [r8+0x1],cl
add rax,0x2
0.03 ↑ jmp 51
8d: mov r8,QWORD PTR [rdi]
movabs rcx,0xff80ff80ff80ff80
test rcx,r8
↓ jne 220
cmp rdx,0x40
↓ jb 172
mov rax,rdi
vmovups ymm0,YMMWORD PTR [rax]
vptest ymm0,YMMWORD PTR [rip+0x1a3] # 2e0 <native uint [System.Private.CoreLib] System.Text.Ascii::NarrowUtf16ToAscii(char*,uint8*,native uint)[OptimizedTier1]+0x260>
↓ jne 16b
mov r8,rsi
vpackuswb ymm0,ymm0,ymm0
vpermq ymm0,ymm0,0xd8
vmovups XMMWORD PTR [r8],xmm0
mov ecx,0x10
test sil,0x10
↓ jne 100
vmovups ymm0,YMMWORD PTR [rax+0x20]
vptest ymm0,YMMWORD PTR [rip+0x172] # 2e0 <native uint [System.Private.CoreLib] System.Text.Ascii::NarrowUtf16ToAscii(char*,uint8*,native uint)[OptimizedTier1]+0x260>
↓ jne 166
vpackuswb ymm0,ymm0,ymm0
vpermq ymm0,ymm0,0xd8
vmovups XMMWORD PTR [r8+0x10],xmm0
100: mov rcx,rsi
and rcx,0x1f
neg rcx
add rcx,0x20
lea r9,[rdx-0x20]
112: vmovups ymm0,YMMWORD PTR [rax+rcx*2]
vmovups ymm1,YMMWORD PTR [rax+rcx*2+0x20]
vpor ymm2,ymm0,ymm1
vptest ymm2,YMMWORD PTR [rip+0x136] # 2e0 <native uint [System.Private.CoreLib] System.Text.Ascii::NarrowUtf16ToAscii(char*,uint8*,native uint)[OptimizedTier1]+0x260>
↓ jne 147
vpackuswb ymm0,ymm0,ymm1
vpermq ymm0,ymm0,0xd8
vmovups YMMWORD PTR [r8+rcx*1],ymm0
add rcx,0x20
cmp rcx,r9
↑ jbe 112
↓ jmp 166
147: vptest ymm0,YMMWORD PTR [rip+0x110] # 2e0 <native uint [System.Private.CoreLib] System.Text.Ascii::NarrowUtf16ToAscii(char*,uint8*,native uint)[OptimizedTier1]+0x260>
↓ jne 166
vpackuswb ymm0,ymm0,ymm0
vpermq ymm0,ymm0,0xd8
vmovups XMMWORD PTR [r8+rcx*1],xmm0
add rcx,0x10
166: mov rax,rcx
↓ jmp 16d
16b: xor eax,eax
16d: ↑ jmp 10
172: mov rax,rdi
vmovups xmm0,XMMWORD PTR [rax]
vptest xmm0,XMMWORD PTR [rip+0xde] # 2e0 <native uint [System.Private.CoreLib] System.Text.Ascii::NarrowUtf16ToAscii(char*,uint8*,native uint)[OptimizedTier1]+0x260>
↓ jne 219
mov rcx,rsi
vpackuswb xmm0,xmm0,xmm0
vmovsd QWORD PTR [rcx],xmm0
mov r8d,0x8
test sil,0x8
↓ jne 1b8
vmovups xmm0,XMMWORD PTR [rax+0x10]
vptest xmm0,XMMWORD PTR [rip+0xb3] # 2e0 <native uint [System.Private.CoreLib] System.Text.Ascii::NarrowUtf16ToAscii(char*,uint8*,native uint)[OptimizedTier1]+0x260>
↓ jne 214
vpackuswb xmm0,xmm0,xmm0
vmovsd QWORD PTR [rcx+0x8],xmm0
1b8: mov r8,rsi
and r8,0xf
neg r8
add r8,0x10
lea r9,[rdx-0x10]
1ca: vmovups xmm0,XMMWORD PTR [rax+r8*2]
vmovups xmm1,XMMWORD PTR [rax+r8*2+0x10]
vpor xmm2,xmm0,xmm1
vptest xmm2,XMMWORD PTR [rip+0x7c] # 2e0 <native uint [System.Private.CoreLib] System.Text.Ascii::NarrowUtf16ToAscii(char*,uint8*,native uint)[OptimizedTier1]+0x260>
↓ jne 1fb
vpackuswb xmm0,xmm0,xmm1
vmovups XMMWORD PTR [rcx+r8*1],xmm0
add r8,0x10
cmp r8,r9
↑ jbe 1ca
↓ jmp 214
1fb: vptest xmm0,XMMWORD PTR [rip+0x5c] # 2e0 <native uint [System.Private.CoreLib] System.Text.Ascii::NarrowUtf16ToAscii(char*,uint8*,native uint)[OptimizedTier1]+0x260>
↓ jne 214
vpackuswb xmm0,xmm0,xmm0
vmovsd QWORD PTR [rcx+r8*1],xmm0
add r8,0x8
214: mov rax,r8
↓ jmp 21b
219: xor eax,eax
21b: ↑ jmp 10
220: mov ecx,r8d
test ecx,0xff80ff80
↓ jne 242
lea rdx,[rsi+rax*1]
mov BYTE PTR [rdx],cl
shr ecx,0x10
mov BYTE PTR [rdx+0x1],cl
shr r8,0x20
mov ecx,r8d
add rax,0x2
242: test ecx,0xff80
↑ je 5f
↑ jmp 65
Samples: 300K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6013580000, [percent: local period]
instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::SetFlagToAddListSeparatorBeforeNextItem()[OptimizedTier1]() /tmp/jitted-47883-2640.so
Percent
Disassembly of section .text:
0000000000000080 <instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::SetFlagToAddListSeparatorBeforeNextItem()[OptimizedTier1]>:
instance void [System.Text.Json] System.Text.Json.Utf8JsonWriter::SetFlagToAddListSeparatorBeforeNextItem()[OptimizedTier1]():
70.49 or DWORD PTR [rdi+0x28],0x80000000
29.51 ← ret
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment