Skip to content

Instantly share code, notes, and snippets.

@EgorBot
Created September 1, 2024 21:24
Show Gist options
  • Save EgorBot/0eafbdbdebaac4720828208b8e23ba54 to your computer and use it in GitHub Desktop.
Save EgorBot/0eafbdbdebaac4720828208b8e23ba54 to your computer and use it in GitHub Desktop.
diff_asm_626b20d4.asm
Samples: 303K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6073980000, [percent: local period]
JIT_NewArr1VC_MP_FastPortable(CORINFO_CLASS_STRUCT_*, long)() /home/egorbot/5ddd62cf-519e-4230-9ae8-90c5cae12f6c/libcoreclr.so
Percent
Disassembly of section .text:
0000000000354b10 <GetCLRRuntimeHost@@V1.0+0x13bfd0>:
10.01 push rbp
0.05 mov rbp,rsp
0.69 push r15
0.19 push r14
0.00 push r12
0.07 push rbx
0.26 mov r12,rsi
9.16 mov r14,rdi
cmp rsi,0xfeff
↓ jae 60
0.02 cmp QWORD PTR [rip+0x38172e],0x0
0.42 ↓ je 29
→ call TLS init function for t_runtime_thread_locals@plt
0.03 29: movzx eax,WORD PTR [r14]
0.01 imul rax,r12
0.02 mov ecx,DWORD PTR [r14+0x4]
9.09 lea rbx,[rcx+rax*1]
0.09 add rbx,0x7
0.03 and rbx,0xfffffffffffffff8
0.02 data16 lea rdi,[rip+0x38170f] # 6d6268 <msync@plt+0x27798>
9.30 data16 data16 rex.W call 6ad940 <__tls_get_addr@plt>
4.43 mov r15,QWORD PTR [rax]
2.16 mov rax,QWORD PTR [rax+0x8]
0.96 sub rax,r15
3.20 cmp rbx,rax
↓ jbe 73
0.41 60: mov rdi,r14
0.04 mov rsi,r12
pop rbx
0.34 pop r12
pop r14
0.04 pop r15
pop rbp
0.05 → jmp JIT_NewArr1(CORINFO_CLASS_STRUCT_*, long)
9.33 73: add rbx,r15
0.01 data16 lea rdi,[rip+0x3816da] # 6d6268 <msync@plt+0x27798>
0.00 data16 data16 rex.W call 6ad940 <__tls_get_addr@plt>
7.08 mov QWORD PTR [rax],rbx
7.81 mov QWORD PTR [r15],r14
0.02 mov DWORD PTR [r15+0x8],r12d
0.89 mov rax,r15
4.24 pop rbx
6.27 pop r12
0.15 pop r14
4.75 pop r15
2.13 pop rbp
6.25 ← ret
Samples: 303K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6073980000, [percent: local period]
__tls_get_addr() /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
Percent
Disassembly of section .text:
00000000000181d0 <__tls_get_addr@@GLIBC_2.3>:
59.84 endbr64
0.00 mov rdx,QWORD PTR fs:0x8
0.70 mov rax,QWORD PTR [rip+0x22ed4]
0.02 cmp QWORD PTR [rdx],rax
↓ jne 2f
1.31 mov rax,QWORD PTR [rdi]
0.20 shl rax,0x4
26.59 mov rax,QWORD PTR [rdx+rax*1]
1.48 cmp rax,0xffffffffffffffff
↓ je 2f
9.71 add rax,QWORD PTR [rdi+0x8]
0.15 ← ret
2f: push rbp
mov rbp,rsp
and rsp,0xfffffffffffffff0
→ call _dl_deallocate_tls@@GLIBC_PRIVATE+0x5e0
mov rsp,rbp
pop rbp
← ret
Samples: 303K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6073980000, [percent: local period]
JIT_InitPInvokeFrame(InlinedCallFrame*)() /home/egorbot/5ddd62cf-519e-4230-9ae8-90c5cae12f6c/libcoreclr.so
Percent
Disassembly of section .text:
000000000035d7a0 <GetCLRRuntimeHost@@V1.0+0x144c60>:
13.42 push rbp
1.44 mov rbp,rsp
0.00 push r14
0.13 push rbx
0.05 mov r14,rdi
0.13 data16 lea rdi,[rip+0x37898e] # 6d6140 <msync@plt+0x27670>
0.12 data16 data16 rex.W call 6ad940 <__tls_get_addr@plt>
2.59 mov rbx,QWORD PTR [rax]
29.60 mov rdi,r14
5.80 → call InlinedCallFrame::Init()
0.03 mov rax,QWORD PTR [rbx+0x8]
22.08 mov QWORD PTR [r14+0x8],rax
24.49 mov rax,rbx
0.00 pop rbx
0.07 pop r14
0.01 pop rbp
0.04 ← ret
Samples: 303K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6073980000, [percent: local period]
void [benchapp] Bench::Work(int32)[OptimizedTier1]() /tmp/jitted-50418-2339.so
Percent
Disassembly of section .text:
0000000000000080 <void [benchapp] Bench::Work(int32)[OptimizedTier1]>:
void [benchapp] Bench::Work(int32)[OptimizedTier1]():
18.48 push rbp
0.71 push r15
0.06 push r14
0.13 push r13
0.14 push r12
1.17 push rbx
0.15 sub rsp,0x48
14.61 vzeroupper
0.07 lea rbp,[rsp+0x70]
0.08 xor eax,eax
0.07 mov QWORD PTR [rbp-0x30],rax
14.56 mov ebx,edi
15.00 lea rdi,[rbp-0x68]
0.00 → call void [benchapp] Bench::Work(int32)[OptimizedTier1]+0x7e3151a0
0.37 mov r15,rax
mov rsi,rsp
15.11 mov QWORD PTR [rbp-0x50],rsi
0.08 mov rsi,rbp
0.12 mov QWORD PTR [rbp-0x40],rsi
0.30 cmp ebx,0x400
↓ jge 67
0.02 movsxd rsi,ebx
0.04 movabs rdi,0x7e7460c98328
→ call void [benchapp] Bench::Work(int32)[OptimizedTier1]+0x7e30c510
0.40 52: xor ecx,ecx
0.02 mov QWORD PTR [rbp-0x30],rcx
1.24 add rsp,0x48
1.89 pop rbx
1.39 pop r12
3.05 pop r13
8.88 pop r14
0.41 pop r15
0.26 pop rbp
1.16 ← ret
67: xor ecx,ecx
mov QWORD PTR [rbp-0x30],rcx
lea rcx,[rbp-0x30]
mov esi,ebx
movabs rdi,0x7e7460c98328
mov edx,0x10
movabs rax,0x7e7460e393b8
mov QWORD PTR [rbp-0x58],rax
lea rax,[rip+0x1d]
mov QWORD PTR [rbp-0x48],rax
lea rax,[rbp-0x68]
mov QWORD PTR [r15+0x8],rax
mov BYTE PTR [r15+0x4],0x0
movabs rax,0x7e74def18690
→ call rax
mov BYTE PTR [r15+0x4],0x1
movabs rcx,0x7e74df306530
cmp DWORD PTR [rcx],0x0
↓ je d4
movabs rdi,0x7e74df2e15d8
→ call QWORD PTR [rdi]
d4: mov rax,QWORD PTR [rbp-0x60]
mov QWORD PTR [r15+0x8],rax
mov rax,QWORD PTR [rbp-0x30]
↑ jmp 52
Samples: 303K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6073980000, [percent: local period]
__tls_get_addr@plt() /home/egorbot/5ddd62cf-519e-4230-9ae8-90c5cae12f6c/libcoreclr.so
Percent
Disassembly of section .plt:
00000000006ad940 <__tls_get_addr@plt>:
100.00 → jmp QWORD PTR [rip+0x28afa] # 6d6440 <msync@plt+0x27970>
push 0x11
→ jmp 6ad820 <GetCLRRuntimeHost@@V1.0+0x494ce0>
Samples: 303K of event 'cpu-clock', 49999 Hz, Event count (approx.): 6073980000, [percent: local period]
InlinedCallFrame::Init()() /home/egorbot/5ddd62cf-519e-4230-9ae8-90c5cae12f6c/libcoreclr.so
Percent
Disassembly of section .text:
000000000023e030 <GetCLRRuntimeHost@@V1.0+0x254f0>:
35.32 push rbp
0.27 mov rbp,rsp
0.01 lea rax,[rip+0x4830bd]
0.26 add rax,0x10
0.14 mov QWORD PTR [rdi],rax
1.13 lea rax,[rip+0xffffffffffea164f]
0.01 mov rax,QWORD PTR [rax]
35.52 mov QWORD PTR [rdi-0x8],rax
0.25 xorps xmm0,xmm0
0.08 movups XMMWORD PTR [rdi+0x10],xmm0
1.58 mov QWORD PTR [rdi+0x20],0x0
25.41 pop rbp
0.03 ← ret
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment