Skip to content

Instantly share code, notes, and snippets.

@EgorBot
Created October 18, 2024 11:07
Show Gist options
  • Save EgorBot/ab8a6bba765290b112cf31c076bcbf93 to your computer and use it in GitHub Desktop.
Save EgorBot/ab8a6bba765290b112cf31c076bcbf93 to your computer and use it in GitHub Desktop.
diff_asm_123e8e65.asm
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