Skip to content

Instantly share code, notes, and snippets.

@EgorBot
Created October 18, 2024 12:50
Show Gist options
  • Save EgorBot/93b8c74e4b3091d048340d13294bd5de to your computer and use it in GitHub Desktop.
Save EgorBot/93b8c74e4b3091d048340d13294bd5de to your computer and use it in GitHub Desktop.
base_asm_c597969b.asm
Samples: 10K of event 'cpu-clock', 1999 Hz, Event count (approx.): 5021509500, [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>:
1.50 push rbp
mov rbp,rsp
push r14
push rbx
lea rax,[rip+0x3f1662]
cmp QWORD PTR [rax],rdi
0.01 seta cl
2.35 lea rax,[rip+0x3f165d]
cmp QWORD PTR [rax],rdi
0.05 setbe al
0.86 or al,cl
1.03 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.35 e4: mov rcx,rdi
mov r8,rdx
nop
f0: test r8b,0x8
↓ je 10a
mov r9,QWORD PTR [rsi]
mov QWORD PTR [rcx],r9
and r8,0xfffffffffffffff7
↓ je 17b
add rsi,0x8
add rcx,0x8
0.74 10a: test r8b,0x10
↓ je 126
movdqu xmm0,XMMWORD PTR [rsi]
movdqu XMMWORD PTR [rcx],xmm0
and r8,0xffffffffffffffef
↓ je 17b
add rsi,0x10
add rcx,0x10
0.73 126: test cl,0x8
↓ je 150
mov r9,QWORD PTR [rsi]
mov QWORD PTR [rcx],r9
add rsi,0x8
add rcx,0x8
add r8,0xfffffffffffffff8
cmp r8,0x20
↑ jb f0
data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0]
0.17 150: movups xmm0,XMMWORD PTR [rsi]
0.06 movaps XMMWORD PTR [rcx],xmm0
25.76 movdqu xmm0,XMMWORD PTR [rsi+0x10]
4.56 movdqa XMMWORD PTR [rcx+0x10],xmm0
48.24 add rsi,0x20
0.04 add rcx,0x20
0.41 add r8,0xffffffffffffffe0
0.64 cmp r8,0x1f
↑ ja 150
test r8,r8
↑ jne f0
17b: test al,al
↓ je 184
17f: pop rbx
pop r14
0.01 pop rbp
← ret
0.69 184: lea rax,[rip+0x3f166d]
cmp BYTE PTR [rax],0x0
1.17 ↓ 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.02 1ce: lea rax,[rdi+rdx*1]
mov rsi,rdi
shr rsi,0xb
lea rcx,[rdi+rdx*1]
add rcx,0x7ff
0.56 shr rcx,0xb
sub rcx,rsi
1.09 lea rdx,[rip+0x3f1476]
0.01 add rsi,QWORD PTR [rdx]
cmp rcx,0x8
↓ jae 206
1fb: mov r8,rsi
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
0.01 add rax,0x1fffff
shr rax,0x15
sub rax,rdi
0.06 lea rcx,[rip+0x3f0f27]
0.16 add rdi,QWORD PTR [rcx]
1.48 cmp rax,0x8
↓ jae 7a6
77a: mov rdx,rax
0.01 mov rsi,rdi
↓ jmp c9d
0.55 785: xor ecx,ecx
↓ jmp 798
nop
2.13 790: inc rcx
cmp r9,rcx
↑ je 759
0.81 798: cmp BYTE PTR [r8+rcx*1],0xff
1.35 ↑ 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]
0.57 cb0: inc rax
cmp rdx,rax
↑ je 17f
0.09 cbc: cmp BYTE PTR [rsi+rax*1],0xff
1.70 ↑ 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.): 5021509500, [percent: local period]
instance void [benchapp] Bench::CopyObjects128()[OptimizedTier1]() /tmp/jitted-48691-7303.so
Percent
Disassembly of section .text:
0000000000000080 <instance void [benchapp] Bench::CopyObjects128()[OptimizedTier1]>:
0.22 push rbp
push r15
push rbx
lea rbp,[rsp+0x10]
movabs rax,0x7e9c28002d18
mov rax,QWORD PTR [rax]
15.30 test rax,rax
↓ je 87
0.45 movabs rcx,0x7edc43d82360
cmp QWORD PTR [rax],rcx
↓ jne 8d
29.25 lea rsi,[rax+0x10]
mov ebx,DWORD PTR [rax+0x8]
31: movabs rax,0x7e9c28002d20
mov rax,QWORD PTR [rax]
test rax,rax
↓ je 9a
2.02 movabs rcx,0x7edc43d82360
cmp QWORD PTR [rax],rcx
↓ jne 8d
28.80 lea rdi,[rax+0x10]
0.22 mov r15d,DWORD PTR [rax+0x8]
0.11 5a: cmp ebx,r15d
↓ jg a1
5.17 mov edx,ebx
shl rdx,0x3
1.80 cmp rdx,0x4000
↓ ja 79
5.74 → call instance void [benchapp] Bench::CopyObjects128()[OptimizedTier1]+0x7d928b90
0.11 73: nop
pop rbx
0.45 pop r15
0.45 pop rbp
9.90 ← ret
79: movabs rax,0x7edc4498d458
→ call QWORD PTR [rax]
↑ jmp 73
87: xor esi,esi
xor ebx,ebx
↑ jmp 31
8d: movabs rax,0x7edc4498d3c8
→ call QWORD PTR [rax]
int3
9a: xor edi,edi
xor r15d,r15d
↑ jmp 5a
a1: movabs rax,0x7edc4431ffa8
→ call QWORD PTR [rax]
int3
Samples: 10K of event 'cpu-clock', 1999 Hz, Event count (approx.): 5021509500, [percent: local period]
instance void [c7c4b7de-2abf-4f97-8482-ee29d0a47553Emitted] BenchmarkDotNet.Autogenerated.Runnable_0::WorkloadActionUnroll(int64)[Optimized]() /tmp/jitted-48691-7265.so
Percent
Disassembly of section .text:
0000000000000080 <instance void [c7c4b7de-2abf-4f97-8482-ee29d0a47553Emitted] 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]
mov rdi,QWORD PTR [rax+0x8]
1.62 → call QWORD PTR [rax+0x18]
0.46 mov rax,QWORD PTR [rbx+0x30]
0.70 mov rdi,QWORD PTR [rax+0x8]
7.89 → call QWORD PTR [rax+0x18]
mov rax,QWORD PTR [rbx+0x30]
0.23 mov rdi,QWORD PTR [rax+0x8]
6.96 → call QWORD PTR [rax+0x18]
0.46 mov rax,QWORD PTR [rbx+0x30]
0.46 mov rdi,QWORD PTR [rax+0x8]
6.03 → call QWORD PTR [rax+0x18]
0.23 mov rax,QWORD PTR [rbx+0x30]
0.46 mov rdi,QWORD PTR [rax+0x8]
6.26 → call QWORD PTR [rax+0x18]
0.23 mov rax,QWORD PTR [rbx+0x30]
0.46 mov rdi,QWORD PTR [rax+0x8]
4.87 → call QWORD PTR [rax+0x18]
0.23 mov rax,QWORD PTR [rbx+0x30]
mov rdi,QWORD PTR [rax+0x8]
4.41 → call QWORD PTR [rax+0x18]
0.23 mov rax,QWORD PTR [rbx+0x30]
mov rdi,QWORD PTR [rax+0x8]
4.64 → call QWORD PTR [rax+0x18]
0.23 mov rax,QWORD PTR [rbx+0x30]
0.93 mov rdi,QWORD PTR [rax+0x8]
4.41 → call QWORD PTR [rax+0x18]
0.70 mov rax,QWORD PTR [rbx+0x30]
0.46 mov rdi,QWORD PTR [rax+0x8]
4.41 → call QWORD PTR [rax+0x18]
0.23 mov rax,QWORD PTR [rbx+0x30]
0.46 mov rdi,QWORD PTR [rax+0x8]
4.64 → call QWORD PTR [rax+0x18]
mov rax,QWORD PTR [rbx+0x30]
0.23 mov rdi,QWORD PTR [rax+0x8]
7.42 → call QWORD PTR [rax+0x18]
0.46 mov rax,QWORD PTR [rbx+0x30]
mov rdi,QWORD PTR [rax+0x8]
4.41 → call QWORD PTR [rax+0x18]
0.70 mov rax,QWORD PTR [rbx+0x30]
mov rdi,QWORD PTR [rax+0x8]
5.80 → call QWORD PTR [rax+0x18]
mov rax,QWORD PTR [rbx+0x30]
mov rdi,QWORD PTR [rax+0x8]
8.58 → call QWORD PTR [rax+0x18]
0.70 mov rax,QWORD PTR [rbx+0x30]
0.46 mov rdi,QWORD PTR [rax+0x8]
7.66 → call QWORD PTR [rax+0x18]
0.23 dec r15
↑ jne 18
d1: pop rbx
pop r15
pop rbp
← ret
Samples: 10K of event 'cpu-clock', 1999 Hz, Event count (approx.): 5021509500, [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>:
47.27 push rbp
mov rbp,rsp
cmp rdi,rsi
↓ je 13
test rdx,rdx
↓ je 13
6.11 → call InlinedMemmoveGCRefsHelper(void*, void const*, unsigned long)
0.32 13: lea rax,[rip+0x3f2926]
34.73 cmp DWORD PTR [rax],0x0
11.58 ↓ 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
45: pop rbp
← ret
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment