-
-
Save EgorBot/a3757736782e4274ea9d15feda38a658 to your computer and use it in GitHub Desktop.
base_asm_123e8e65.asm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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