Skip to content

Instantly share code, notes, and snippets.

@EgorBot
Created October 18, 2024 11:07
Show Gist options
  • Save EgorBot/a3757736782e4274ea9d15feda38a658 to your computer and use it in GitHub Desktop.
Save EgorBot/a3757736782e4274ea9d15feda38a658 to your computer and use it in GitHub Desktop.
base_asm_123e8e65.asm
Samples: 10K of event 'cpu-clock', 1999 Hz, Event count (approx.): 5077037250, [percent: local period]
InlinedMemmoveGCRefsHelper(void*, void const*, unsigned long)() /home/egorbot/core_root_base/libcoreclr.so
Percent
Disassembly of section .text:
0000000000318040 <GetCLRRuntimeHost@@V1.0+0x105240>:
4.79 push rbp
mov rbp,rsp
push r14
push rbx
lea rax,[rip+0x3f1662]
cmp QWORD PTR [rax],rdi
seta cl
5.25 lea rax,[rip+0x3f165d]
cmp QWORD PTR [rax],rdi
setbe al
1.78 or al,cl
3.19 mov rcx,rdi
sub rcx,rsi
cmp rcx,rdx
↓ jae e4
lea r8,[rdi+rdx*1]
add rsi,rdx
mov rcx,rdx
nop
40: test cl,0x8
↓ je 5f
mov r9,QWORD PTR [rsi-0x8]
mov QWORD PTR [r8-0x8],r9
and rcx,0xfffffffffffffff7
↓ je 17b
add rsi,0xfffffffffffffff8
add r8,0xfffffffffffffff8
5f: test cl,0x10
↓ je 81
movdqu xmm0,XMMWORD PTR [rsi-0x10]
movdqu XMMWORD PTR [r8-0x10],xmm0
and rcx,0xffffffffffffffef
↓ je 17b
add rsi,0xfffffffffffffff0
add r8,0xfffffffffffffff0
81: test r8b,0x8
↓ je b0
mov r9,QWORD PTR [rsi-0x8]
add rsi,0xfffffffffffffff8
mov QWORD PTR [r8-0x8],r9
add r8,0xfffffffffffffff8
add rcx,0xfffffffffffffff8
cmp rcx,0x20
↑ jb 40
data16 data16 data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0]
b0: movups xmm0,XMMWORD PTR [rsi-0x10]
movaps XMMWORD PTR [r8-0x10],xmm0
movdqu xmm0,XMMWORD PTR [rsi-0x20]
add rsi,0xffffffffffffffe0
movdqa XMMWORD PTR [r8-0x20],xmm0
add r8,0xffffffffffffffe0
add rcx,0xffffffffffffffe0
cmp rcx,0x1f
↑ ja b0
test rcx,rcx
↑ jne 40
↓ jmp 17b
0.70 e4: mov rcx,rdi
mov r8,rdx
nop
0.12 f0: test r8b,0x8
↓ je 10a
0.22 mov r9,QWORD PTR [rsi]
0.08 mov QWORD PTR [rcx],r9
and r8,0xfffffffffffffff7
4.29 ↓ je 17b
1.04 add rsi,0x8
add rcx,0x8
2.23 10a: test r8b,0x10
↓ je 126
2.83 movdqu xmm0,XMMWORD PTR [rsi]
0.04 movdqu XMMWORD PTR [rcx],xmm0
15.64 and r8,0xffffffffffffffef
↓ je 17b
add rsi,0x10
add rcx,0x10
126: test cl,0x8
↓ je 150
mov r9,QWORD PTR [rsi]
0.02 mov QWORD PTR [rcx],r9
0.06 add rsi,0x8
add rcx,0x8
5.05 add r8,0xfffffffffffffff8
cmp r8,0x20
↑ jb f0
data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0]
150: movups xmm0,XMMWORD PTR [rsi]
movaps XMMWORD PTR [rcx],xmm0
movdqu xmm0,XMMWORD PTR [rsi+0x10]
movdqa XMMWORD PTR [rcx+0x10],xmm0
add rsi,0x20
4.45 add rcx,0x20
add r8,0xffffffffffffffe0
cmp r8,0x1f
↑ ja 150
0.16 test r8,r8
↑ jne f0
0.16 17b: test al,al
↓ je 184
17f: pop rbx
pop r14
0.02 pop rbp
← ret
0.38 184: lea rax,[rip+0x3f166d]
0.02 cmp BYTE PTR [rax],0x0
0.06 ↓ je 1ce
mov rax,rdi
shr rax,0xc
lea rcx,[rdi+rdx*1]
dec rcx
shr rcx,0xc
lea rsi,[rip+0x3f1647]
sub rcx,rax
add rax,QWORD PTR [rsi]
inc rcx
mov rbx,rdi
mov rdi,rax
mov esi,0xff
mov r14,rdx
mov rdx,rcx
→ call memset@plt
mov rdx,r14
mov rdi,rbx
0.94 1ce: lea rax,[rdi+rdx*1]
0.02 mov rsi,rdi
shr rsi,0xb
4.29 lea rcx,[rdi+rdx*1]
0.02 add rcx,0x7ff
0.28 shr rcx,0xb
0.18 sub rcx,rsi
0.98 lea rdx,[rip+0x3f1476]
0.96 add rsi,QWORD PTR [rdx]
0.24 cmp rcx,0x8
↓ jae 206
1.86 1fb: mov r8,rsi
1.46 mov r9,rcx
↓ jmp 785
206: cmp rcx,0x20
↓ jae 213
xor edx,edx
↓ jmp 627
213: mov rdx,rcx
and rdx,0xffffffffffffffe0
xor r8d,r8d
pcmpeqd xmm0,xmm0
↓ jmp 23d
data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0]
230: add r8,0x20
cmp rdx,r8
↓ je 615
23d: movdqu xmm2,XMMWORD PTR [rsi+r8*1]
pcmpeqb xmm2,xmm0
movd r9d,xmm2
mov r10d,r9d
not r10b
test r10b,0x1
↓ jne 530
test r9d,0x100
sete r10b
test r10b,r10b
↓ jne 549
270: test r9d,0x10000
sete r10b
test r10b,r10b
↓ jne 563
284: test r9d,0x1000000
sete r9b
test r9b,r9b
↓ je 29a
294: mov BYTE PTR [rsi+r8*1+0x3],0xff
29a: pextrw r9d,xmm2,0x2
mov r10d,r9d
not r10b
test r10b,0x1
↓ je 2b2
mov BYTE PTR [rsi+r8*1+0x4],0xff
2b2: test r9d,0x100
sete r9b
test r9b,r9b
↓ je 2c8
mov BYTE PTR [rsi+r8*1+0x5],0xff
2c8: pextrw r9d,xmm2,0x3
mov r10d,r9d
not r10b
test r10b,0x1
↓ je 2e0
mov BYTE PTR [rsi+r8*1+0x6],0xff
2e0: test r9d,0x100
sete r9b
test r9b,r9b
↓ je 2f6
mov BYTE PTR [rsi+r8*1+0x7],0xff
2f6: pextrw r9d,xmm2,0x4
mov r10d,r9d
not r10b
test r10b,0x1
↓ je 30e
mov BYTE PTR [rsi+r8*1+0x8],0xff
30e: test r9d,0x100
sete r9b
test r9b,r9b
↓ je 324
mov BYTE PTR [rsi+r8*1+0x9],0xff
324: pextrw r9d,xmm2,0x5
movdqu xmm1,XMMWORD PTR [rsi+r8*1+0x10]
mov r10d,r9d
not r10b
test r10b,0x1
↓ je 343
mov BYTE PTR [rsi+r8*1+0xa],0xff
343: test r9d,0x100
sete r9b
test r9b,r9b
↓ je 359
mov BYTE PTR [rsi+r8*1+0xb],0xff
359: pextrw r9d,xmm2,0x6
mov r10d,r9d
not r10b
test r10b,0x1
↓ je 371
mov BYTE PTR [rsi+r8*1+0xc],0xff
371: test r9d,0x100
sete r9b
test r9b,r9b
↓ je 387
mov BYTE PTR [rsi+r8*1+0xd],0xff
387: pextrw r9d,xmm2,0x7
mov r10d,r9d
not r10b
test r10b,0x1
↓ je 39f
mov BYTE PTR [rsi+r8*1+0xe],0xff
39f: test r9d,0x100
sete r9b
test r9b,r9b
↓ je 3b5
mov BYTE PTR [rsi+r8*1+0xf],0xff
3b5: pcmpeqb xmm1,xmm0
movd r9d,xmm1
mov r10d,r9d
not r10b
test r10b,0x1
↓ jne 590
test r9d,0x100
sete r10b
test r10b,r10b
↓ jne 5aa
3e2: test r9d,0x10000
sete r10b
test r10b,r10b
↓ jne 5c4
3f6: test r9d,0x1000000
sete r9b
test r9b,r9b
↓ je 40c
406: mov BYTE PTR [rsi+r8*1+0x13],0xff
40c: pextrw r9d,xmm1,0x2
mov r10d,r9d
not r10b
test r10b,0x1
↓ je 424
mov BYTE PTR [rsi+r8*1+0x14],0xff
424: test r9d,0x100
sete r9b
test r9b,r9b
↓ je 43a
mov BYTE PTR [rsi+r8*1+0x15],0xff
43a: pextrw r9d,xmm1,0x3
mov r10d,r9d
not r10b
test r10b,0x1
↓ je 452
mov BYTE PTR [rsi+r8*1+0x16],0xff
452: test r9d,0x100
sete r9b
test r9b,r9b
↓ je 468
mov BYTE PTR [rsi+r8*1+0x17],0xff
468: pextrw r9d,xmm1,0x4
mov r10d,r9d
not r10b
test r10b,0x1
↓ je 480
mov BYTE PTR [rsi+r8*1+0x18],0xff
480: test r9d,0x100
sete r9b
test r9b,r9b
↓ je 496
mov BYTE PTR [rsi+r8*1+0x19],0xff
496: pextrw r9d,xmm1,0x5
mov r10d,r9d
not r10b
test r10b,0x1
↓ je 4ae
mov BYTE PTR [rsi+r8*1+0x1a],0xff
4ae: test r9d,0x100
sete r9b
test r9b,r9b
↓ je 4c4
mov BYTE PTR [rsi+r8*1+0x1b],0xff
4c4: pextrw r9d,xmm1,0x6
mov r10d,r9d
not r10b
test r10b,0x1
↓ je 4dc
mov BYTE PTR [rsi+r8*1+0x1c],0xff
4dc: test r9d,0x100
sete r9b
test r9b,r9b
↓ je 4f2
mov BYTE PTR [rsi+r8*1+0x1d],0xff
4f2: pextrw r9d,xmm1,0x7
mov r10d,r9d
not r10b
test r10b,0x1
↓ jne 5f0
test r9d,0x100
sete r9b
test r9b,r9b
↑ je 230
↓ jmp 60a
data16 data16 data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0]
530: mov BYTE PTR [rsi+r8*1],0xff
test r9d,0x100
sete r10b
test r10b,r10b
↑ je 270
549: mov BYTE PTR [rsi+r8*1+0x1],0xff
test r9d,0x10000
sete r10b
test r10b,r10b
↑ je 284
563: mov BYTE PTR [rsi+r8*1+0x2],0xff
test r9d,0x1000000
sete r9b
test r9b,r9b
↑ jne 294
↑ jmp 29a
data16 data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0]
590: mov BYTE PTR [rsi+r8*1+0x10],0xff
test r9d,0x100
sete r10b
test r10b,r10b
↑ je 3e2
5aa: mov BYTE PTR [rsi+r8*1+0x11],0xff
test r9d,0x10000
sete r10b
test r10b,r10b
↑ je 3f6
5c4: mov BYTE PTR [rsi+r8*1+0x12],0xff
test r9d,0x1000000
sete r9b
test r9b,r9b
↑ jne 406
↑ jmp 40c
data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0]
5f0: mov BYTE PTR [rsi+r8*1+0x1e],0xff
test r9d,0x100
sete r9b
test r9b,r9b
↑ je 230
60a: mov BYTE PTR [rsi+r8*1+0x1f],0xff
↑ jmp 230
615: cmp rcx,rdx
↓ je 759
test cl,0x18
↓ je cc8
627: mov r10,rcx
and r10,0xfffffffffffffff8
lea r8,[rsi+r10*1]
mov r9d,ecx
and r9d,0x7
pcmpeqd xmm0,xmm0
↓ jmp 64d
nop
640: add rdx,0x8
cmp r10,rdx
↓ je 754
64d: movq xmm1,QWORD PTR [rsi+rdx*1]
movdqa xmm2,xmm1
pcmpeqb xmm2,xmm0
movd r11d,xmm2
not r11b
test r11b,0x1
↓ je 66c
mov BYTE PTR [rsi+rdx*1],0xff
66c: punpcklbw xmm1,xmm1
pcmpeqb xmm1,xmm0
pxor xmm1,xmm0
movd r11d,xmm1
shr r11d,0x10
test r11b,0x1
↓ jne 6e0
pextrw r11d,xmm1,0x2
test r11b,0x1
↓ jne 6f1
693: pextrw r11d,xmm1,0x3
test r11b,0x1
↓ jne 702
69f: pextrw r11d,xmm1,0x4
test r11b,0x1
↓ jne 713
6ab: pextrw r11d,xmm1,0x5
test r11b,0x1
↓ jne 724
6b7: pextrw r11d,xmm1,0x6
test r11b,0x1
↓ jne 735
6c3: pextrw r11d,xmm1,0x7
test r11b,0x1
↑ je 640
↓ jmp 74a
data16 cs nop WORD PTR [rax+rax*1+0x0]
6e0: mov BYTE PTR [rsi+rdx*1+0x1],0xff
pextrw r11d,xmm1,0x2
test r11b,0x1
↑ je 693
6f1: mov BYTE PTR [rsi+rdx*1+0x2],0xff
pextrw r11d,xmm1,0x3
test r11b,0x1
↑ je 69f
702: mov BYTE PTR [rsi+rdx*1+0x3],0xff
pextrw r11d,xmm1,0x4
test r11b,0x1
↑ je 6ab
713: mov BYTE PTR [rsi+rdx*1+0x4],0xff
pextrw r11d,xmm1,0x5
test r11b,0x1
↑ je 6b7
724: mov BYTE PTR [rsi+rdx*1+0x5],0xff
pextrw r11d,xmm1,0x6
test r11b,0x1
↑ je 6c3
735: mov BYTE PTR [rsi+rdx*1+0x6],0xff
pextrw r11d,xmm1,0x7
test r11b,0x1
↑ je 640
74a: mov BYTE PTR [rsi+rdx*1+0x7],0xff
↑ jmp 640
754: cmp rcx,r10
↓ jne 785
759: shr rdi,0x15
add rax,0x1fffff
shr rax,0x15
sub rax,rdi
0.06 lea rcx,[rip+0x3f0f27]
0.16 add rdi,QWORD PTR [rcx]
5.17 cmp rax,0x8
↓ jae 7a6
0.12 77a: mov rdx,rax
mov rsi,rdi
↓ jmp c9d
0.26 785: xor ecx,ecx
↓ jmp 798
nop
4.89 790: inc rcx
cmp r9,rcx
↑ je 759
0.60 798: cmp BYTE PTR [r8+rcx*1],0xff
15.14 ↑ je 790
mov BYTE PTR [r8+rcx*1],0xff
↑ jmp 790
7a6: cmp rax,0x20
↓ jae 7b3
xor ecx,ecx
↓ jmp b63
7b3: mov rcx,rax
and rcx,0xffffffffffffffe0
xor edx,edx
pcmpeqd xmm0,xmm0
↓ jmp 7dd
data16 data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0]
7d0: add rdx,0x20
cmp rcx,rdx
↓ je b52
7dd: movdqu xmm2,XMMWORD PTR [rdi+rdx*1]
pcmpeqb xmm2,xmm0
movd esi,xmm2
mov r8d,esi
not r8b
test r8b,0x1
↓ jne a90
test esi,0x100
sete r8b
test r8b,r8b
↓ jne aa7
80d: test esi,0x10000
sete r8b
test r8b,r8b
↓ jne abf
820: test esi,0x1000000
sete sil
test sil,sil
↓ je 834
82f: mov BYTE PTR [rdi+rdx*1+0x3],0xff
834: pextrw esi,xmm2,0x2
mov r8d,esi
not r8b
test r8b,0x1
↓ je 84a
mov BYTE PTR [rdi+rdx*1+0x4],0xff
84a: test esi,0x100
sete sil
test sil,sil
↓ je 85e
mov BYTE PTR [rdi+rdx*1+0x5],0xff
85e: pextrw esi,xmm2,0x3
mov r8d,esi
not r8b
test r8b,0x1
↓ je 874
mov BYTE PTR [rdi+rdx*1+0x6],0xff
874: test esi,0x100
sete sil
test sil,sil
↓ je 888
mov BYTE PTR [rdi+rdx*1+0x7],0xff
888: pextrw esi,xmm2,0x4
mov r8d,esi
not r8b
test r8b,0x1
↓ je 89e
mov BYTE PTR [rdi+rdx*1+0x8],0xff
89e: test esi,0x100
sete sil
test sil,sil
↓ je 8b2
mov BYTE PTR [rdi+rdx*1+0x9],0xff
8b2: pextrw esi,xmm2,0x5
movdqu xmm1,XMMWORD PTR [rdi+rdx*1+0x10]
mov r8d,esi
not r8b
test r8b,0x1
↓ je 8ce
mov BYTE PTR [rdi+rdx*1+0xa],0xff
8ce: test esi,0x100
sete sil
test sil,sil
↓ je 8e2
mov BYTE PTR [rdi+rdx*1+0xb],0xff
8e2: pextrw esi,xmm2,0x6
mov r8d,esi
not r8b
test r8b,0x1
↓ je 8f8
mov BYTE PTR [rdi+rdx*1+0xc],0xff
8f8: test esi,0x100
sete sil
test sil,sil
↓ je 90c
mov BYTE PTR [rdi+rdx*1+0xd],0xff
90c: pextrw esi,xmm2,0x7
mov r8d,esi
not r8b
test r8b,0x1
↓ je 922
mov BYTE PTR [rdi+rdx*1+0xe],0xff
922: test esi,0x100
sete sil
test sil,sil
↓ je 936
mov BYTE PTR [rdi+rdx*1+0xf],0xff
936: pcmpeqb xmm1,xmm0
movd esi,xmm1
mov r8d,esi
not r8b
test r8b,0x1
↓ jne ae0
test esi,0x100
sete r8b
test r8b,r8b
↓ jne af8
961: test esi,0x10000
sete r8b
test r8b,r8b
↓ jne b10
974: test esi,0x1000000
sete sil
test sil,sil
↓ je 988
983: mov BYTE PTR [rdi+rdx*1+0x13],0xff
988: pextrw esi,xmm1,0x2
mov r8d,esi
not r8b
test r8b,0x1
↓ je 99e
mov BYTE PTR [rdi+rdx*1+0x14],0xff
99e: test esi,0x100
sete sil
test sil,sil
↓ je 9b2
mov BYTE PTR [rdi+rdx*1+0x15],0xff
9b2: pextrw esi,xmm1,0x3
mov r8d,esi
not r8b
test r8b,0x1
↓ je 9c8
mov BYTE PTR [rdi+rdx*1+0x16],0xff
9c8: test esi,0x100
sete sil
test sil,sil
↓ je 9dc
mov BYTE PTR [rdi+rdx*1+0x17],0xff
9dc: pextrw esi,xmm1,0x4
mov r8d,esi
not r8b
test r8b,0x1
↓ je 9f2
mov BYTE PTR [rdi+rdx*1+0x18],0xff
9f2: test esi,0x100
sete sil
test sil,sil
↓ je a06
mov BYTE PTR [rdi+rdx*1+0x19],0xff
a06: pextrw esi,xmm1,0x5
mov r8d,esi
not r8b
test r8b,0x1
↓ je a1c
mov BYTE PTR [rdi+rdx*1+0x1a],0xff
a1c: test esi,0x100
sete sil
test sil,sil
↓ je a30
mov BYTE PTR [rdi+rdx*1+0x1b],0xff
a30: pextrw esi,xmm1,0x6
mov r8d,esi
not r8b
test r8b,0x1
↓ je a46
mov BYTE PTR [rdi+rdx*1+0x1c],0xff
a46: test esi,0x100
sete sil
test sil,sil
↓ je a5a
mov BYTE PTR [rdi+rdx*1+0x1d],0xff
a5a: pextrw esi,xmm1,0x7
mov r8d,esi
not r8b
test r8b,0x1
↓ jne b30
test esi,0x100
sete sil
test sil,sil
↑ je 7d0
↓ jmp b48
nop
a90: mov BYTE PTR [rdi+rdx*1],0xff
test esi,0x100
sete r8b
test r8b,r8b
↑ je 80d
aa7: mov BYTE PTR [rdi+rdx*1+0x1],0xff
test esi,0x10000
sete r8b
test r8b,r8b
↑ je 820
abf: mov BYTE PTR [rdi+rdx*1+0x2],0xff
test esi,0x1000000
sete sil
test sil,sil
↑ jne 82f
↑ jmp 834
nop
ae0: mov BYTE PTR [rdi+rdx*1+0x10],0xff
test esi,0x100
sete r8b
test r8b,r8b
↑ je 961
af8: mov BYTE PTR [rdi+rdx*1+0x11],0xff
test esi,0x10000
sete r8b
test r8b,r8b
↑ je 974
b10: mov BYTE PTR [rdi+rdx*1+0x12],0xff
test esi,0x1000000
sete sil
test sil,sil
↑ jne 983
↑ jmp 988
nop
b30: mov BYTE PTR [rdi+rdx*1+0x1e],0xff
test esi,0x100
sete sil
test sil,sil
↑ je 7d0
b48: mov BYTE PTR [rdi+rdx*1+0x1f],0xff
↑ jmp 7d0
b52: cmp rax,rcx
↑ je 17f
test al,0x18
↓ je cd3
b63: mov r8,rax
and r8,0xfffffffffffffff8
mov edx,eax
and edx,0x7
lea rsi,[rdi+r8*1]
pcmpeqd xmm0,xmm0
↓ jmp b8d
nop
b80: add rcx,0x8
cmp r8,rcx
↓ je c94
b8d: movq xmm1,QWORD PTR [rdi+rcx*1]
movdqa xmm2,xmm1
pcmpeqb xmm2,xmm0
movd r9d,xmm2
not r9b
test r9b,0x1
↓ je bac
mov BYTE PTR [rdi+rcx*1],0xff
bac: punpcklbw xmm1,xmm1
pcmpeqb xmm1,xmm0
pxor xmm1,xmm0
movd r9d,xmm1
shr r9d,0x10
test r9b,0x1
↓ jne c20
pextrw r9d,xmm1,0x2
test r9b,0x1
↓ jne c31
bd3: pextrw r9d,xmm1,0x3
test r9b,0x1
↓ jne c42
bdf: pextrw r9d,xmm1,0x4
test r9b,0x1
↓ jne c53
beb: pextrw r9d,xmm1,0x5
test r9b,0x1
↓ jne c64
bf7: pextrw r9d,xmm1,0x6
test r9b,0x1
↓ jne c75
c03: pextrw r9d,xmm1,0x7
test r9b,0x1
↑ je b80
↓ jmp c8a
data16 cs nop WORD PTR [rax+rax*1+0x0]
c20: mov BYTE PTR [rdi+rcx*1+0x1],0xff
pextrw r9d,xmm1,0x2
test r9b,0x1
↑ je bd3
c31: mov BYTE PTR [rdi+rcx*1+0x2],0xff
pextrw r9d,xmm1,0x3
test r9b,0x1
↑ je bdf
c42: mov BYTE PTR [rdi+rcx*1+0x3],0xff
pextrw r9d,xmm1,0x4
test r9b,0x1
↑ je beb
c53: mov BYTE PTR [rdi+rcx*1+0x4],0xff
pextrw r9d,xmm1,0x5
test r9b,0x1
↑ je bf7
c64: mov BYTE PTR [rdi+rcx*1+0x5],0xff
pextrw r9d,xmm1,0x6
test r9b,0x1
↑ je c03
c75: mov BYTE PTR [rdi+rcx*1+0x6],0xff
pextrw r9d,xmm1,0x7
test r9b,0x1
↑ je b80
c8a: mov BYTE PTR [rdi+rcx*1+0x7],0xff
↑ jmp b80
c94: cmp rax,r8
↑ je 17f
c9d: xor eax,eax
↓ jmp cbc
data16 data16 data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0]
1.97 cb0: inc rax
cmp rdx,rax
↑ je 17f
0.04 cbc: cmp BYTE PTR [rsi+rax*1],0xff
7.82 ↑ je cb0
mov BYTE PTR [rsi+rax*1],0xff
↑ jmp cb0
cc8: and ecx,0x1f
add rsi,rdx
↑ jmp 1fb
cd3: add rdi,rcx
and eax,0x1f
↑ jmp 77a
Samples: 10K of event 'cpu-clock', 1999 Hz, Event count (approx.): 5077037250, [percent: local period]
instance void [3d2bbaf0-c497-485b-941e-5cec30e5e30eEmitted] BenchmarkDotNet.Autogenerated.Runnable_0::WorkloadActionUnroll(int64)[Optimized]() /tmp/jitted-48614-7270.so
Percent
Disassembly of section .text:
0000000000000080 <instance void [3d2bbaf0-c497-485b-941e-5cec30e5e30eEmitted] BenchmarkDotNet.Autogenerated.Runnable_0::WorkloadActionUnroll(int64)[Optimized]>:
push rbp
push r15
push rbx
lea rbp,[rsp+0x10]
mov rbx,rdi
test rsi,rsi
↓ jle d1
mov r15,rsi
18: mov rax,QWORD PTR [rbx+0x30]
0.68 mov rdi,QWORD PTR [rax+0x8]
2.19 → call QWORD PTR [rax+0x18]
0.46 mov rax,QWORD PTR [rbx+0x30]
1.52 mov rdi,QWORD PTR [rax+0x8]
3.54 → call QWORD PTR [rax+0x18]
0.34 mov rax,QWORD PTR [rbx+0x30]
1.22 mov rdi,QWORD PTR [rax+0x8]
2.95 → call QWORD PTR [rax+0x18]
0.21 mov rax,QWORD PTR [rbx+0x30]
1.14 mov rdi,QWORD PTR [rax+0x8]
3.59 → call QWORD PTR [rax+0x18]
0.46 mov rax,QWORD PTR [rbx+0x30]
2.57 mov rdi,QWORD PTR [rax+0x8]
4.98 → call QWORD PTR [rax+0x18]
0.17 mov rax,QWORD PTR [rbx+0x30]
3.67 mov rdi,QWORD PTR [rax+0x8]
3.67 → call QWORD PTR [rax+0x18]
0.34 mov rax,QWORD PTR [rbx+0x30]
2.74 mov rdi,QWORD PTR [rax+0x8]
3.08 → call QWORD PTR [rax+0x18]
0.13 mov rax,QWORD PTR [rbx+0x30]
2.49 mov rdi,QWORD PTR [rax+0x8]
3.29 → call QWORD PTR [rax+0x18]
0.38 mov rax,QWORD PTR [rbx+0x30]
2.91 mov rdi,QWORD PTR [rax+0x8]
3.08 → call QWORD PTR [rax+0x18]
0.38 mov rax,QWORD PTR [rbx+0x30]
2.70 mov rdi,QWORD PTR [rax+0x8]
3.21 → call QWORD PTR [rax+0x18]
0.21 mov rax,QWORD PTR [rbx+0x30]
2.70 mov rdi,QWORD PTR [rax+0x8]
3.25 → call QWORD PTR [rax+0x18]
0.38 mov rax,QWORD PTR [rbx+0x30]
2.70 mov rdi,QWORD PTR [rax+0x8]
3.54 → call QWORD PTR [rax+0x18]
0.30 mov rax,QWORD PTR [rbx+0x30]
3.25 mov rdi,QWORD PTR [rax+0x8]
3.88 → call QWORD PTR [rax+0x18]
0.42 mov rax,QWORD PTR [rbx+0x30]
2.78 mov rdi,QWORD PTR [rax+0x8]
2.95 → call QWORD PTR [rax+0x18]
0.30 mov rax,QWORD PTR [rbx+0x30]
4.68 mov rdi,QWORD PTR [rax+0x8]
3.50 → call QWORD PTR [rax+0x18]
0.46 mov rax,QWORD PTR [rbx+0x30]
3.08 mov rdi,QWORD PTR [rax+0x8]
3.08 → call QWORD PTR [rax+0x18]
0.42 dec r15
↑ jne 18
d1: pop rbx
pop r15
pop rbp
← ret
Samples: 10K of event 'cpu-clock', 1999 Hz, Event count (approx.): 5077037250, [percent: local period]
instance void [benchapp] Bench::CopyObjects10()[OptimizedTier1]() /tmp/jitted-48614-7307.so
Percent
Disassembly of section .text:
0000000000000080 <instance void [benchapp] Bench::CopyObjects10()[OptimizedTier1]>:
1.16 push rbp
push r15
push rbx
lea rbp,[rsp+0x10]
movabs rax,0x78b8e8002d10
mov rax,QWORD PTR [rax]
14.26 test rax,rax
↓ je 87
0.77 movabs rcx,0x78f8ff182360
cmp QWORD PTR [rax],rcx
↓ jne 8d
33.98 lea rsi,[rax+0x10]
mov ebx,DWORD PTR [rax+0x8]
31: movabs rax,0x78b8e8002d20
mov rax,QWORD PTR [rax]
test rax,rax
↓ je 9a
0.06 movabs rcx,0x78f8ff182360
cmp QWORD PTR [rax],rcx
↓ jne 8d
33.65 lea rdi,[rax+0x10]
0.11 mov r15d,DWORD PTR [rax+0x8]
5a: cmp ebx,r15d
↓ jg a1
5.73 mov edx,ebx
shl rdx,0x3
0.33 cmp rdx,0x4000
↓ ja 79
3.52 → call instance void [benchapp] Bench::CopyObjects10()[OptimizedTier1]+0x7d928b90
1.05 73: nop
pop rbx
0.06 pop r15
pop rbp
5.34 ← ret
79: movabs rax,0x78f8ffd8d4e8
→ call QWORD PTR [rax]
↑ jmp 73
87: xor esi,esi
xor ebx,ebx
↑ jmp 31
8d: movabs rax,0x78f8ffd8d458
→ call QWORD PTR [rax]
int3
9a: xor edi,edi
xor r15d,r15d
↑ jmp 5a
a1: movabs rax,0x78f8ff71ffa8
→ call QWORD PTR [rax]
int3
Samples: 10K of event 'cpu-clock', 1999 Hz, Event count (approx.): 5077037250, [percent: local period]
Buffer::BulkMoveWithWriteBarrier(void*, void*, unsigned long)() /home/egorbot/core_root_base/libcoreclr.so
Percent
Disassembly of section .text:
0000000000317ff0 <GetCLRRuntimeHost@@V1.0+0x1051f0>:
40.84 push rbp
0.17 mov rbp,rsp
cmp rdi,rsi
↓ je 13
test rdx,rdx
↓ je 13
12.22 → call InlinedMemmoveGCRefsHelper(void*, void const*, unsigned long)
1.40 13: lea rax,[rip+0x3f2926]
19.72 cmp DWORD PTR [rax],0x0
21.47 ↓ je 45
lea rdi,[rip+0xffffffffffffffda]
xor esi,esi
→ call FC_GCPoll(void*, Object*)
test rax,rax
↓ jne 45
lea rax,[rip+0x3f1157]
nop
40: cmp DWORD PTR [rax],0x0
↑ je 40
4.19 45: pop rbp
← ret
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment