-
-
Save EgorBot/ab8a6bba765290b112cf31c076bcbf93 to your computer and use it in GitHub Desktop.
diff_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.): 5032014750, [percent: local period] | |
Buffer::BulkMoveWithWriteBarrier(void*, void*, unsigned long)() /home/egorbot/core_root_diff/libcoreclr.so | |
Percent | |
Disassembly of section .text: | |
0000000000317fd0 <GetCLRRuntimeHost@@V1.0+0x1051f0>: | |
2.12 push rbp | |
0.01 mov rbp,rsp | |
push r14 | |
push rbx | |
mov r9,rdi | |
sub r9,rsi | |
↓ je 103 | |
test rdx,rdx | |
↓ je 103 | |
0.36 lea rax,[rip+0x3f223d] | |
1.57 cmp QWORD PTR [rax],rdi | |
seta cl | |
1.36 lea rax,[rip+0x3f2238] | |
cmp QWORD PTR [rax],rdi | |
setbe al | |
1.33 or al,cl | |
1.68 cmp rdx,0x8 | |
↓ jb ff | |
0.01 mov rcx,rdx | |
shr rcx,0x3 | |
0.12 xor r8d,r8d | |
cmp rdx,0x30 | |
↓ jb 98 | |
0.67 cmp r9,0x20 | |
↓ jb 98 | |
0.03 mov r8,rcx | |
0.12 and r8,0xfffffffffffffffc | |
1.45 xor r9d,r9d | |
data16 data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0] | |
1.77 70: movdqu xmm0,XMMWORD PTR [rsi+r9*8] | |
0.03 movdqu xmm1,XMMWORD PTR [rsi+r9*8+0x10] | |
4.06 movdqu XMMWORD PTR [rdi+r9*8],xmm0 | |
50.35 movdqu XMMWORD PTR [rdi+r9*8+0x10],xmm1 | |
16.70 add r9,0x4 | |
0.07 cmp r8,r9 | |
↑ jne 70 | |
0.04 cmp rcx,r8 | |
↓ je ff | |
98: mov r10,rcx | |
mov r9,r8 | |
and r10,0x3 | |
↓ je c0 | |
mov r9,r8 | |
nop | |
b0: mov r11,QWORD PTR [rsi+r9*8] | |
mov QWORD PTR [rdi+r9*8],r11 | |
inc r9 | |
dec r10 | |
↑ jne b0 | |
c0: sub r8,rcx | |
cmp r8,0xfffffffffffffffc | |
↓ ja ff | |
nop | |
d0: mov r8,QWORD PTR [rsi+r9*8] | |
mov QWORD PTR [rdi+r9*8],r8 | |
mov r8,QWORD PTR [rsi+r9*8+0x8] | |
mov QWORD PTR [rdi+r9*8+0x8],r8 | |
mov r8,QWORD PTR [rsi+r9*8+0x10] | |
mov QWORD PTR [rdi+r9*8+0x10],r8 | |
mov r8,QWORD PTR [rsi+r9*8+0x18] | |
mov QWORD PTR [rdi+r9*8+0x18],r8 | |
add r9,0x4 | |
cmp rcx,r9 | |
↑ jne d0 | |
ff: test al,al | |
↓ je 13a | |
0.09 103: lea rax,[rip+0x3f33d6] | |
0.03 cmp DWORD PTR [rax],0x0 | |
0.20 ↓ je 135 | |
lea rdi,[rip+0xfffffffffffffeea] | |
xor esi,esi | |
→ call FC_GCPoll(void*, Object*) | |
test rax,rax | |
↓ jne 135 | |
lea rax,[rip+0x3f1c07] | |
nop | |
130: cmp DWORD PTR [rax],0x0 | |
↑ je 130 | |
0.16 135: pop rbx | |
0.01 pop r14 | |
0.92 pop rbp | |
0.57 ← ret | |
13a: lea rax,[rip+0x3f22a7] | |
cmp BYTE PTR [rax],0x0 | |
↓ je 184 | |
mov rax,rdi | |
shr rax,0xc | |
lea rcx,[rdi+rdx*1] | |
dec rcx | |
shr rcx,0xc | |
lea rsi,[rip+0x3f2281] | |
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 | |
1.52 184: lea rax,[rdi+rdx*1] | |
0.36 mov rsi,rdi | |
0.01 shr rsi,0xb | |
0.13 lea rcx,[rdi+rdx*1] | |
add rcx,0x7ff | |
shr rcx,0xb | |
0.01 sub rcx,rsi | |
0.01 lea rdx,[rip+0x3f20b0] | |
1.57 add rsi,QWORD PTR [rdx] | |
0.25 cmp rcx,0x8 | |
↓ jae 1bc | |
1b1: mov r8,rsi | |
0.07 mov r9,rcx | |
0.01 ↓ jmp 735 | |
1bc: cmp rcx,0x20 | |
↓ jae 1c9 | |
xor edx,edx | |
↓ jmp 5d7 | |
1c9: mov rdx,rcx | |
and rdx,0xffffffffffffffe0 | |
xor r8d,r8d | |
pcmpeqd xmm0,xmm0 | |
↓ jmp 1ed | |
nop | |
1e0: add r8,0x20 | |
cmp rdx,r8 | |
↓ je 5c5 | |
1ed: movdqu xmm2,XMMWORD PTR [rsi+r8*1] | |
pcmpeqb xmm2,xmm0 | |
movd r9d,xmm2 | |
mov r10d,r9d | |
not r10b | |
test r10b,0x1 | |
↓ jne 4e0 | |
test r9d,0x100 | |
sete r10b | |
test r10b,r10b | |
↓ jne 4f9 | |
220: test r9d,0x10000 | |
sete r10b | |
test r10b,r10b | |
↓ jne 513 | |
234: test r9d,0x1000000 | |
sete r9b | |
test r9b,r9b | |
↓ je 24a | |
244: mov BYTE PTR [rsi+r8*1+0x3],0xff | |
24a: pextrw r9d,xmm2,0x2 | |
mov r10d,r9d | |
not r10b | |
test r10b,0x1 | |
↓ je 262 | |
mov BYTE PTR [rsi+r8*1+0x4],0xff | |
262: test r9d,0x100 | |
sete r9b | |
test r9b,r9b | |
↓ je 278 | |
mov BYTE PTR [rsi+r8*1+0x5],0xff | |
278: pextrw r9d,xmm2,0x3 | |
mov r10d,r9d | |
not r10b | |
test r10b,0x1 | |
↓ je 290 | |
mov BYTE PTR [rsi+r8*1+0x6],0xff | |
290: test r9d,0x100 | |
sete r9b | |
test r9b,r9b | |
↓ je 2a6 | |
mov BYTE PTR [rsi+r8*1+0x7],0xff | |
2a6: pextrw r9d,xmm2,0x4 | |
mov r10d,r9d | |
not r10b | |
test r10b,0x1 | |
↓ je 2be | |
mov BYTE PTR [rsi+r8*1+0x8],0xff | |
2be: test r9d,0x100 | |
sete r9b | |
test r9b,r9b | |
↓ je 2d4 | |
mov BYTE PTR [rsi+r8*1+0x9],0xff | |
2d4: pextrw r9d,xmm2,0x5 | |
movdqu xmm1,XMMWORD PTR [rsi+r8*1+0x10] | |
mov r10d,r9d | |
not r10b | |
test r10b,0x1 | |
↓ je 2f3 | |
mov BYTE PTR [rsi+r8*1+0xa],0xff | |
2f3: test r9d,0x100 | |
sete r9b | |
test r9b,r9b | |
↓ je 309 | |
mov BYTE PTR [rsi+r8*1+0xb],0xff | |
309: pextrw r9d,xmm2,0x6 | |
mov r10d,r9d | |
not r10b | |
test r10b,0x1 | |
↓ je 321 | |
mov BYTE PTR [rsi+r8*1+0xc],0xff | |
321: test r9d,0x100 | |
sete r9b | |
test r9b,r9b | |
↓ je 337 | |
mov BYTE PTR [rsi+r8*1+0xd],0xff | |
337: pextrw r9d,xmm2,0x7 | |
mov r10d,r9d | |
not r10b | |
test r10b,0x1 | |
↓ je 34f | |
mov BYTE PTR [rsi+r8*1+0xe],0xff | |
34f: test r9d,0x100 | |
sete r9b | |
test r9b,r9b | |
↓ je 365 | |
mov BYTE PTR [rsi+r8*1+0xf],0xff | |
365: pcmpeqb xmm1,xmm0 | |
movd r9d,xmm1 | |
mov r10d,r9d | |
not r10b | |
test r10b,0x1 | |
↓ jne 540 | |
test r9d,0x100 | |
sete r10b | |
test r10b,r10b | |
↓ jne 55a | |
392: test r9d,0x10000 | |
sete r10b | |
test r10b,r10b | |
↓ jne 574 | |
3a6: test r9d,0x1000000 | |
sete r9b | |
test r9b,r9b | |
↓ je 3bc | |
3b6: mov BYTE PTR [rsi+r8*1+0x13],0xff | |
3bc: pextrw r9d,xmm1,0x2 | |
mov r10d,r9d | |
not r10b | |
test r10b,0x1 | |
↓ je 3d4 | |
mov BYTE PTR [rsi+r8*1+0x14],0xff | |
3d4: test r9d,0x100 | |
sete r9b | |
test r9b,r9b | |
↓ je 3ea | |
mov BYTE PTR [rsi+r8*1+0x15],0xff | |
3ea: pextrw r9d,xmm1,0x3 | |
mov r10d,r9d | |
not r10b | |
test r10b,0x1 | |
↓ je 402 | |
mov BYTE PTR [rsi+r8*1+0x16],0xff | |
402: test r9d,0x100 | |
sete r9b | |
test r9b,r9b | |
↓ je 418 | |
mov BYTE PTR [rsi+r8*1+0x17],0xff | |
418: pextrw r9d,xmm1,0x4 | |
mov r10d,r9d | |
not r10b | |
test r10b,0x1 | |
↓ je 430 | |
mov BYTE PTR [rsi+r8*1+0x18],0xff | |
430: test r9d,0x100 | |
sete r9b | |
test r9b,r9b | |
↓ je 446 | |
mov BYTE PTR [rsi+r8*1+0x19],0xff | |
446: pextrw r9d,xmm1,0x5 | |
mov r10d,r9d | |
not r10b | |
test r10b,0x1 | |
↓ je 45e | |
mov BYTE PTR [rsi+r8*1+0x1a],0xff | |
45e: test r9d,0x100 | |
sete r9b | |
test r9b,r9b | |
↓ je 474 | |
mov BYTE PTR [rsi+r8*1+0x1b],0xff | |
474: pextrw r9d,xmm1,0x6 | |
mov r10d,r9d | |
not r10b | |
test r10b,0x1 | |
↓ je 48c | |
mov BYTE PTR [rsi+r8*1+0x1c],0xff | |
48c: test r9d,0x100 | |
sete r9b | |
test r9b,r9b | |
↓ je 4a2 | |
mov BYTE PTR [rsi+r8*1+0x1d],0xff | |
4a2: pextrw r9d,xmm1,0x7 | |
mov r10d,r9d | |
not r10b | |
test r10b,0x1 | |
↓ jne 5a0 | |
test r9d,0x100 | |
sete r9b | |
test r9b,r9b | |
↑ je 1e0 | |
↓ jmp 5ba | |
data16 data16 data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0] | |
4e0: mov BYTE PTR [rsi+r8*1],0xff | |
test r9d,0x100 | |
sete r10b | |
test r10b,r10b | |
↑ je 220 | |
4f9: mov BYTE PTR [rsi+r8*1+0x1],0xff | |
test r9d,0x10000 | |
sete r10b | |
test r10b,r10b | |
↑ je 234 | |
513: mov BYTE PTR [rsi+r8*1+0x2],0xff | |
test r9d,0x1000000 | |
sete r9b | |
test r9b,r9b | |
↑ jne 244 | |
↑ jmp 24a | |
data16 data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0] | |
540: mov BYTE PTR [rsi+r8*1+0x10],0xff | |
test r9d,0x100 | |
sete r10b | |
test r10b,r10b | |
↑ je 392 | |
55a: mov BYTE PTR [rsi+r8*1+0x11],0xff | |
test r9d,0x10000 | |
sete r10b | |
test r10b,r10b | |
↑ je 3a6 | |
574: mov BYTE PTR [rsi+r8*1+0x12],0xff | |
test r9d,0x1000000 | |
sete r9b | |
test r9b,r9b | |
↑ jne 3b6 | |
↑ jmp 3bc | |
data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0] | |
5a0: mov BYTE PTR [rsi+r8*1+0x1e],0xff | |
test r9d,0x100 | |
sete r9b | |
test r9b,r9b | |
↑ je 1e0 | |
5ba: mov BYTE PTR [rsi+r8*1+0x1f],0xff | |
↑ jmp 1e0 | |
5c5: cmp rcx,rdx | |
↓ je 709 | |
test cl,0x18 | |
↓ je c78 | |
5d7: mov r10,rcx | |
and r10,0xfffffffffffffff8 | |
lea r8,[rsi+r10*1] | |
mov r9d,ecx | |
and r9d,0x7 | |
pcmpeqd xmm0,xmm0 | |
↓ jmp 5fd | |
nop | |
5f0: add rdx,0x8 | |
cmp r10,rdx | |
↓ je 704 | |
5fd: movq xmm1,QWORD PTR [rsi+rdx*1] | |
movdqa xmm2,xmm1 | |
pcmpeqb xmm2,xmm0 | |
movd r11d,xmm2 | |
not r11b | |
test r11b,0x1 | |
↓ je 61c | |
mov BYTE PTR [rsi+rdx*1],0xff | |
61c: punpcklbw xmm1,xmm1 | |
pcmpeqb xmm1,xmm0 | |
pxor xmm1,xmm0 | |
movd r11d,xmm1 | |
shr r11d,0x10 | |
test r11b,0x1 | |
↓ jne 690 | |
pextrw r11d,xmm1,0x2 | |
test r11b,0x1 | |
↓ jne 6a1 | |
643: pextrw r11d,xmm1,0x3 | |
test r11b,0x1 | |
↓ jne 6b2 | |
64f: pextrw r11d,xmm1,0x4 | |
test r11b,0x1 | |
↓ jne 6c3 | |
65b: pextrw r11d,xmm1,0x5 | |
test r11b,0x1 | |
↓ jne 6d4 | |
667: pextrw r11d,xmm1,0x6 | |
test r11b,0x1 | |
↓ jne 6e5 | |
673: pextrw r11d,xmm1,0x7 | |
test r11b,0x1 | |
↑ je 5f0 | |
↓ jmp 6fa | |
data16 cs nop WORD PTR [rax+rax*1+0x0] | |
690: mov BYTE PTR [rsi+rdx*1+0x1],0xff | |
pextrw r11d,xmm1,0x2 | |
test r11b,0x1 | |
↑ je 643 | |
6a1: mov BYTE PTR [rsi+rdx*1+0x2],0xff | |
pextrw r11d,xmm1,0x3 | |
test r11b,0x1 | |
↑ je 64f | |
6b2: mov BYTE PTR [rsi+rdx*1+0x3],0xff | |
pextrw r11d,xmm1,0x4 | |
test r11b,0x1 | |
↑ je 65b | |
6c3: mov BYTE PTR [rsi+rdx*1+0x4],0xff | |
pextrw r11d,xmm1,0x5 | |
test r11b,0x1 | |
↑ je 667 | |
6d4: mov BYTE PTR [rsi+rdx*1+0x5],0xff | |
pextrw r11d,xmm1,0x6 | |
test r11b,0x1 | |
↑ je 673 | |
6e5: mov BYTE PTR [rsi+rdx*1+0x6],0xff | |
pextrw r11d,xmm1,0x7 | |
test r11b,0x1 | |
↑ je 5f0 | |
6fa: mov BYTE PTR [rsi+rdx*1+0x7],0xff | |
↑ jmp 5f0 | |
704: cmp rcx,r10 | |
↓ jne 735 | |
0.08 709: shr rdi,0x15 | |
0.13 add rax,0x1fffff | |
0.07 shr rax,0x15 | |
sub rax,rdi | |
0.01 lea rcx,[rip+0x3f1b67] | |
add rdi,QWORD PTR [rcx] | |
1.30 cmp rax,0x8 | |
↓ jae 756 | |
0.40 72a: mov rdx,rax | |
0.05 mov rsi,rdi | |
0.09 ↓ jmp c4d | |
735: xor ecx,ecx | |
↓ jmp 748 | |
nop | |
2.13 740: inc rcx | |
0.65 cmp r9,rcx | |
↑ je 709 | |
748: cmp BYTE PTR [r8+rcx*1],0xff | |
2.82 ↑ je 740 | |
mov BYTE PTR [r8+rcx*1],0xff | |
↑ jmp 740 | |
756: cmp rax,0x20 | |
↓ jae 763 | |
xor ecx,ecx | |
↓ jmp b13 | |
763: mov rcx,rax | |
and rcx,0xffffffffffffffe0 | |
xor edx,edx | |
pcmpeqd xmm0,xmm0 | |
↓ jmp 78d | |
data16 data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0] | |
780: add rdx,0x20 | |
cmp rcx,rdx | |
↓ je b02 | |
78d: movdqu xmm2,XMMWORD PTR [rdi+rdx*1] | |
pcmpeqb xmm2,xmm0 | |
movd esi,xmm2 | |
mov r8d,esi | |
not r8b | |
test r8b,0x1 | |
↓ jne a40 | |
test esi,0x100 | |
sete r8b | |
test r8b,r8b | |
↓ jne a57 | |
7bd: test esi,0x10000 | |
sete r8b | |
test r8b,r8b | |
↓ jne a6f | |
7d0: test esi,0x1000000 | |
sete sil | |
test sil,sil | |
↓ je 7e4 | |
7df: mov BYTE PTR [rdi+rdx*1+0x3],0xff | |
7e4: pextrw esi,xmm2,0x2 | |
mov r8d,esi | |
not r8b | |
test r8b,0x1 | |
↓ je 7fa | |
mov BYTE PTR [rdi+rdx*1+0x4],0xff | |
7fa: test esi,0x100 | |
sete sil | |
test sil,sil | |
↓ je 80e | |
mov BYTE PTR [rdi+rdx*1+0x5],0xff | |
80e: pextrw esi,xmm2,0x3 | |
mov r8d,esi | |
not r8b | |
test r8b,0x1 | |
↓ je 824 | |
mov BYTE PTR [rdi+rdx*1+0x6],0xff | |
824: test esi,0x100 | |
sete sil | |
test sil,sil | |
↓ je 838 | |
mov BYTE PTR [rdi+rdx*1+0x7],0xff | |
838: pextrw esi,xmm2,0x4 | |
mov r8d,esi | |
not r8b | |
test r8b,0x1 | |
↓ je 84e | |
mov BYTE PTR [rdi+rdx*1+0x8],0xff | |
84e: test esi,0x100 | |
sete sil | |
test sil,sil | |
↓ je 862 | |
mov BYTE PTR [rdi+rdx*1+0x9],0xff | |
862: pextrw esi,xmm2,0x5 | |
movdqu xmm1,XMMWORD PTR [rdi+rdx*1+0x10] | |
mov r8d,esi | |
not r8b | |
test r8b,0x1 | |
↓ je 87e | |
mov BYTE PTR [rdi+rdx*1+0xa],0xff | |
87e: test esi,0x100 | |
sete sil | |
test sil,sil | |
↓ je 892 | |
mov BYTE PTR [rdi+rdx*1+0xb],0xff | |
892: pextrw esi,xmm2,0x6 | |
mov r8d,esi | |
not r8b | |
test r8b,0x1 | |
↓ je 8a8 | |
mov BYTE PTR [rdi+rdx*1+0xc],0xff | |
8a8: test esi,0x100 | |
sete sil | |
test sil,sil | |
↓ je 8bc | |
mov BYTE PTR [rdi+rdx*1+0xd],0xff | |
8bc: pextrw esi,xmm2,0x7 | |
mov r8d,esi | |
not r8b | |
test r8b,0x1 | |
↓ je 8d2 | |
mov BYTE PTR [rdi+rdx*1+0xe],0xff | |
8d2: test esi,0x100 | |
sete sil | |
test sil,sil | |
↓ je 8e6 | |
mov BYTE PTR [rdi+rdx*1+0xf],0xff | |
8e6: pcmpeqb xmm1,xmm0 | |
movd esi,xmm1 | |
mov r8d,esi | |
not r8b | |
test r8b,0x1 | |
↓ jne a90 | |
test esi,0x100 | |
sete r8b | |
test r8b,r8b | |
↓ jne aa8 | |
911: test esi,0x10000 | |
sete r8b | |
test r8b,r8b | |
↓ jne ac0 | |
924: test esi,0x1000000 | |
sete sil | |
test sil,sil | |
↓ je 938 | |
933: mov BYTE PTR [rdi+rdx*1+0x13],0xff | |
938: pextrw esi,xmm1,0x2 | |
mov r8d,esi | |
not r8b | |
test r8b,0x1 | |
↓ je 94e | |
mov BYTE PTR [rdi+rdx*1+0x14],0xff | |
94e: test esi,0x100 | |
sete sil | |
test sil,sil | |
↓ je 962 | |
mov BYTE PTR [rdi+rdx*1+0x15],0xff | |
962: pextrw esi,xmm1,0x3 | |
mov r8d,esi | |
not r8b | |
test r8b,0x1 | |
↓ je 978 | |
mov BYTE PTR [rdi+rdx*1+0x16],0xff | |
978: test esi,0x100 | |
sete sil | |
test sil,sil | |
↓ je 98c | |
mov BYTE PTR [rdi+rdx*1+0x17],0xff | |
98c: pextrw esi,xmm1,0x4 | |
mov r8d,esi | |
not r8b | |
test r8b,0x1 | |
↓ je 9a2 | |
mov BYTE PTR [rdi+rdx*1+0x18],0xff | |
9a2: test esi,0x100 | |
sete sil | |
test sil,sil | |
↓ je 9b6 | |
mov BYTE PTR [rdi+rdx*1+0x19],0xff | |
9b6: pextrw esi,xmm1,0x5 | |
mov r8d,esi | |
not r8b | |
test r8b,0x1 | |
↓ je 9cc | |
mov BYTE PTR [rdi+rdx*1+0x1a],0xff | |
9cc: test esi,0x100 | |
sete sil | |
test sil,sil | |
↓ je 9e0 | |
mov BYTE PTR [rdi+rdx*1+0x1b],0xff | |
9e0: pextrw esi,xmm1,0x6 | |
mov r8d,esi | |
not r8b | |
test r8b,0x1 | |
↓ je 9f6 | |
mov BYTE PTR [rdi+rdx*1+0x1c],0xff | |
9f6: test esi,0x100 | |
sete sil | |
test sil,sil | |
↓ je a0a | |
mov BYTE PTR [rdi+rdx*1+0x1d],0xff | |
a0a: pextrw esi,xmm1,0x7 | |
mov r8d,esi | |
not r8b | |
test r8b,0x1 | |
↓ jne ae0 | |
test esi,0x100 | |
sete sil | |
test sil,sil | |
↑ je 780 | |
↓ jmp af8 | |
nop | |
a40: mov BYTE PTR [rdi+rdx*1],0xff | |
test esi,0x100 | |
sete r8b | |
test r8b,r8b | |
↑ je 7bd | |
a57: mov BYTE PTR [rdi+rdx*1+0x1],0xff | |
test esi,0x10000 | |
sete r8b | |
test r8b,r8b | |
↑ je 7d0 | |
a6f: mov BYTE PTR [rdi+rdx*1+0x2],0xff | |
test esi,0x1000000 | |
sete sil | |
test sil,sil | |
↑ jne 7df | |
↑ jmp 7e4 | |
nop | |
a90: mov BYTE PTR [rdi+rdx*1+0x10],0xff | |
test esi,0x100 | |
sete r8b | |
test r8b,r8b | |
↑ je 911 | |
aa8: mov BYTE PTR [rdi+rdx*1+0x11],0xff | |
test esi,0x10000 | |
sete r8b | |
test r8b,r8b | |
↑ je 924 | |
ac0: mov BYTE PTR [rdi+rdx*1+0x12],0xff | |
test esi,0x1000000 | |
sete sil | |
test sil,sil | |
↑ jne 933 | |
↑ jmp 938 | |
nop | |
ae0: mov BYTE PTR [rdi+rdx*1+0x1e],0xff | |
test esi,0x100 | |
sete sil | |
test sil,sil | |
↑ je 780 | |
af8: mov BYTE PTR [rdi+rdx*1+0x1f],0xff | |
↑ jmp 780 | |
b02: cmp rax,rcx | |
↑ je 103 | |
test al,0x18 | |
↓ je c83 | |
b13: mov r8,rax | |
and r8,0xfffffffffffffff8 | |
mov edx,eax | |
and edx,0x7 | |
lea rsi,[rdi+r8*1] | |
pcmpeqd xmm0,xmm0 | |
↓ jmp b3d | |
nop | |
b30: add rcx,0x8 | |
cmp r8,rcx | |
↓ je c44 | |
b3d: movq xmm1,QWORD PTR [rdi+rcx*1] | |
movdqa xmm2,xmm1 | |
pcmpeqb xmm2,xmm0 | |
movd r9d,xmm2 | |
not r9b | |
test r9b,0x1 | |
↓ je b5c | |
mov BYTE PTR [rdi+rcx*1],0xff | |
b5c: punpcklbw xmm1,xmm1 | |
pcmpeqb xmm1,xmm0 | |
pxor xmm1,xmm0 | |
movd r9d,xmm1 | |
shr r9d,0x10 | |
test r9b,0x1 | |
↓ jne bd0 | |
pextrw r9d,xmm1,0x2 | |
test r9b,0x1 | |
↓ jne be1 | |
b83: pextrw r9d,xmm1,0x3 | |
test r9b,0x1 | |
↓ jne bf2 | |
b8f: pextrw r9d,xmm1,0x4 | |
test r9b,0x1 | |
↓ jne c03 | |
b9b: pextrw r9d,xmm1,0x5 | |
test r9b,0x1 | |
↓ jne c14 | |
ba7: pextrw r9d,xmm1,0x6 | |
test r9b,0x1 | |
↓ jne c25 | |
bb3: pextrw r9d,xmm1,0x7 | |
test r9b,0x1 | |
↑ je b30 | |
↓ jmp c3a | |
data16 cs nop WORD PTR [rax+rax*1+0x0] | |
bd0: mov BYTE PTR [rdi+rcx*1+0x1],0xff | |
pextrw r9d,xmm1,0x2 | |
test r9b,0x1 | |
↑ je b83 | |
be1: mov BYTE PTR [rdi+rcx*1+0x2],0xff | |
pextrw r9d,xmm1,0x3 | |
test r9b,0x1 | |
↑ je b8f | |
bf2: mov BYTE PTR [rdi+rcx*1+0x3],0xff | |
pextrw r9d,xmm1,0x4 | |
test r9b,0x1 | |
↑ je b9b | |
c03: mov BYTE PTR [rdi+rcx*1+0x4],0xff | |
pextrw r9d,xmm1,0x5 | |
test r9b,0x1 | |
↑ je ba7 | |
c14: mov BYTE PTR [rdi+rcx*1+0x5],0xff | |
pextrw r9d,xmm1,0x6 | |
test r9b,0x1 | |
↑ je bb3 | |
c25: mov BYTE PTR [rdi+rcx*1+0x6],0xff | |
pextrw r9d,xmm1,0x7 | |
test r9b,0x1 | |
↑ je b30 | |
c3a: mov BYTE PTR [rdi+rcx*1+0x7],0xff | |
↑ jmp b30 | |
c44: cmp rax,r8 | |
↑ je 103 | |
0.05 c4d: xor eax,eax | |
↓ jmp c6c | |
data16 data16 data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0] | |
0.77 c60: inc rax | |
0.03 cmp rdx,rax | |
↑ je 103 | |
0.03 c6c: cmp BYTE PTR [rsi+rax*1],0xff | |
1.60 ↑ je c60 | |
mov BYTE PTR [rsi+rax*1],0xff | |
↑ jmp c60 | |
c78: and ecx,0x1f | |
add rsi,rdx | |
↑ jmp 1b1 | |
c83: add rdi,rcx | |
and eax,0x1f | |
↑ jmp 72a | |
Samples: 10K of event 'cpu-clock', 1999 Hz, Event count (approx.): 5032014750, [percent: local period] | |
instance void [7282ab40-16c7-43c0-a621-057fb26574e7Emitted] BenchmarkDotNet.Autogenerated.Runnable_0::WorkloadActionUnroll(int64)[Optimized]() /tmp/jitted-49028-7266.so | |
Percent | |
Disassembly of section .text: | |
0000000000000080 <instance void [7282ab40-16c7-43c0-a621-057fb26574e7Emitted] 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 | |
0.22 18: mov rax,QWORD PTR [rbx+0x30] | |
0.75 mov rdi,QWORD PTR [rax+0x8] | |
1.12 → call QWORD PTR [rax+0x18] | |
0.60 mov rax,QWORD PTR [rbx+0x30] | |
2.25 mov rdi,QWORD PTR [rax+0x8] | |
3.07 → call QWORD PTR [rax+0x18] | |
0.67 mov rax,QWORD PTR [rbx+0x30] | |
2.32 mov rdi,QWORD PTR [rax+0x8] | |
3.45 → call QWORD PTR [rax+0x18] | |
0.07 mov rax,QWORD PTR [rbx+0x30] | |
1.65 mov rdi,QWORD PTR [rax+0x8] | |
2.85 → call QWORD PTR [rax+0x18] | |
mov rax,QWORD PTR [rbx+0x30] | |
4.42 mov rdi,QWORD PTR [rax+0x8] | |
3.75 → call QWORD PTR [rax+0x18] | |
mov rax,QWORD PTR [rbx+0x30] | |
2.40 mov rdi,QWORD PTR [rax+0x8] | |
3.75 → call QWORD PTR [rax+0x18] | |
mov rax,QWORD PTR [rbx+0x30] | |
2.92 mov rdi,QWORD PTR [rax+0x8] | |
4.65 → call QWORD PTR [rax+0x18] | |
mov rax,QWORD PTR [rbx+0x30] | |
2.32 mov rdi,QWORD PTR [rax+0x8] | |
3.67 → call QWORD PTR [rax+0x18] | |
0.07 mov rax,QWORD PTR [rbx+0x30] | |
3.67 mov rdi,QWORD PTR [rax+0x8] | |
3.60 → call QWORD PTR [rax+0x18] | |
mov rax,QWORD PTR [rbx+0x30] | |
2.70 mov rdi,QWORD PTR [rax+0x8] | |
3.45 → call QWORD PTR [rax+0x18] | |
mov rax,QWORD PTR [rbx+0x30] | |
2.62 mov rdi,QWORD PTR [rax+0x8] | |
3.97 → call QWORD PTR [rax+0x18] | |
0.07 mov rax,QWORD PTR [rbx+0x30] | |
2.70 mov rdi,QWORD PTR [rax+0x8] | |
3.30 → call QWORD PTR [rax+0x18] | |
mov rax,QWORD PTR [rbx+0x30] | |
3.52 mov rdi,QWORD PTR [rax+0x8] | |
3.97 → call QWORD PTR [rax+0x18] | |
mov rax,QWORD PTR [rbx+0x30] | |
1.95 mov rdi,QWORD PTR [rax+0x8] | |
3.75 → call QWORD PTR [rax+0x18] | |
mov rax,QWORD PTR [rbx+0x30] | |
3.90 mov rdi,QWORD PTR [rax+0x8] | |
2.55 → call QWORD PTR [rax+0x18] | |
mov rax,QWORD PTR [rbx+0x30] | |
3.90 mov rdi,QWORD PTR [rax+0x8] | |
3.37 → call QWORD PTR [rax+0x18] | |
dec r15 | |
↑ jne 18 | |
d1: pop rbx | |
pop r15 | |
pop rbp | |
← ret | |
Samples: 10K of event 'cpu-clock', 1999 Hz, Event count (approx.): 5032014750, [percent: local period] | |
instance void [benchapp] Bench::CopyObjects128()[OptimizedTier1]() /tmp/jitted-49028-7304.so | |
Percent | |
Disassembly of section .text: | |
0000000000000080 <instance void [benchapp] Bench::CopyObjects128()[OptimizedTier1]>: | |
0.76 push rbp | |
push r15 | |
push rbx | |
lea rbp,[rsp+0x10] | |
movabs rax,0x7231c8002d18 | |
mov rax,QWORD PTR [rax] | |
14.31 test rax,rax | |
↓ je 87 | |
0.85 movabs rcx,0x7271e1992360 | |
cmp QWORD PTR [rax],rcx | |
↓ jne 8d | |
35.07 lea rsi,[rax+0x10] | |
mov ebx,DWORD PTR [rax+0x8] | |
31: movabs rax,0x7231c8002d20 | |
mov rax,QWORD PTR [rax] | |
test rax,rax | |
↓ je 9a | |
0.19 movabs rcx,0x7271e1992360 | |
cmp QWORD PTR [rax],rcx | |
↓ jne 8d | |
35.92 lea rdi,[rax+0x10] | |
mov r15d,DWORD PTR [rax+0x8] | |
5a: cmp ebx,r15d | |
↓ jg a1 | |
4.74 mov edx,ebx | |
shl rdx,0x3 | |
0.57 cmp rdx,0x4000 | |
↓ ja 79 | |
3.13 → call instance void [benchapp] Bench::CopyObjects128()[OptimizedTier1]+0x7d918b70 | |
1.33 73: nop | |
0.95 pop rbx | |
0.57 pop r15 | |
1.04 pop rbp | |
0.57 ← ret | |
79: movabs rax,0x7271e259d470 | |
→ call QWORD PTR [rax] | |
↑ jmp 73 | |
87: xor esi,esi | |
xor ebx,ebx | |
↑ jmp 31 | |
8d: movabs rax,0x7271e259d3e0 | |
→ call QWORD PTR [rax] | |
int3 | |
9a: xor edi,edi | |
xor r15d,r15d | |
↑ jmp 5a | |
a1: movabs rax,0x7271e1f2ffa8 | |
→ call QWORD PTR [rax] | |
int3 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment