Samples: 25K of event 'cpu-clock', 4999 Hz, Event count (approx.): 5047009200, [percent: local period] instance int32 [benchapp] Bench::Lookup()[OptimizedTier1]() /tmp/jitted-38661-27380.so 7.54 push rbp 7.63 push r15 push r14 push r13 push r12 push rbx sub rsp,0x18 lea rbp,[rsp+0x40] 7.74 xor eax,eax mov QWORD PTR [rbp-0x30],rax mov QWORD PTR [rbp-0x38],rax mov rbx,QWORD PTR [rdi+0x8] cmp QWORD PTR [rbx+0x8],0x0 ↓ je 2bd mov r15,QWORD PTR [rbx+0x18] movabs rdi,0x7694b9360220 cmp QWORD PTR [r15],rdi 7.41 ↓ jne 19a movabs rdi,0x769527200020 mov QWORD PTR [rbp-0x30],rdi xor edi,edi mov QWORD PTR [rbp-0x38],rdi lea rdi,[rbp-0x30] cmp QWORD PTR [rbp-0x38],0x0 0.00 ↓ jne 79 mov rdi,QWORD PTR [rbp-0x30] 0.45 mov QWORD PTR [rbp-0x38],rdi 7.18 lea rdi,[rbp-0x38] cmp QWORD PTR [rbp-0x38],0x0 ↓ je 17d 79: mov r14,QWORD PTR [rdi] movabs rdi,0x7694b7c5a320 cmp QWORD PTR [r14],rdi ↓ jne 185 mov rdi,r14 → call instance int32 [benchapp] Bench::Lookup()[OptimizedTier1]+0x7d528c70 test eax,eax ↓ je 169 9f: mov r14d,eax a2: xor edi,edi mov QWORD PTR [rbp-0x38],rdi a8: mov rdi,QWORD PTR [rbx+0x8] mov esi,r14d imul rsi,QWORD PTR [rbx+0x30] 7.43 shr rsi,0x20 inc rsi mov eax,DWORD PTR [rdi+0x8] mov ecx,eax imul rsi,rcx shr rsi,0x20 cmp esi,eax ↓ jae 2de mov esi,esi 7.53 lea rdi,[rdi+rsi*4+0x10] mov r13d,DWORD PTR [rdi] mov rbx,QWORD PTR [rbx+0x10] xor r12d,r12d dec r13d mov eax,DWORD PTR [rbx+0x8] cmp eax,r13d 13.88 ↓ jbe 2bd movabs rdi,0x7694b9360220 cmp QWORD PTR [r15],rdi ↓ jne 1bc 103: mov edi,r13d lea rdi,[rdi+rdi*2] lea r15,[rbx+rdi*8+0x10] cmp DWORD PTR [r15+0x8],r14d 0.54 ↓ jne 1ff mov rcx,QWORD PTR [r15] 17.33 test rcx,rcx ↓ je 1ff movabs rdi,0x7694b7c5a320 cmp QWORD PTR [rcx],rdi 0.60 ↓ jne 1e1 movabs rdi,0x769527200020 cmp rcx,rdi sete dl movzx edx,dl 0.43 14b: test edx,edx 6.78 ↓ je 1ff 153: add r15,0x10 mov eax,DWORD PTR [r15] add rsp,0x18 0.32 pop rbx pop r12 pop r13 0.34 pop r14 6.87 pop r15 0.00 pop rbp ← ret 169: mov rdi,r14 movabs rax,0x7694b906c000 → call QWORD PTR [rax] ↑ jmp 9f 17d: xor r14d,r14d ↑ jmp a2 185: mov rdi,r14 mov rax,QWORD PTR [r14] mov rax,QWORD PTR [rax+0x40] → call QWORD PTR [rax+0x18] mov r14d,eax ↑ jmp a2 19a: mov rdi,r15 movabs r11,0x7694b7c62b30 movabs rsi,0x769527200020 → call QWORD PTR [r11] mov r14d,eax ↑ jmp a8 1bc: mov edi,r13d lea rdi,[rdi+rdi*2] lea rdi,[rbx+rdi*8+0x10] mov r13,rdi cmp DWORD PTR [r13+0x8],r14d ↓ jne 24c ↓ jmp 213 1d3: cmp eax,r13d ↓ jbe 2bd ↑ jmp 103 1e1: mov rdi,rcx movabs rsi,0x769527200020 mov rax,QWORD PTR [rcx] mov rax,QWORD PTR [rax+0x40] → call QWORD PTR [rax+0x10] mov edx,eax ↑ jmp 14b 1ff: mov r13d,DWORD PTR [r15+0xc] inc r12d mov eax,DWORD PTR [rbx+0x8] cmp eax,r12d ↑ jae 1d3 ↓ jmp 2b0 213: mov rcx,QWORD PTR [r13+0x0] movabs rdi,0x7694b9360220 cmp QWORD PTR [r15],rdi ↓ je 247 mov rdi,r15 mov rsi,rcx movabs r11,0x7694b7c62b38 movabs rdx,0x769527200020 → call QWORD PTR [r11] mov edx,eax ↓ jmp 29a 247: test rcx,rcx ↓ jne 25d 24c: mov r13d,DWORD PTR [r13+0xc] inc r12d mov eax,DWORD PTR [rbx+0x8] cmp eax,r12d ↓ jae 2a6 ↓ jmp 2b0 25d: movabs rdi,0x7694b7c5a320 cmp QWORD PTR [rcx],rdi ↓ je 287 mov rdi,rcx movabs rsi,0x769527200020 mov rax,QWORD PTR [rcx] mov rax,QWORD PTR [rax+0x40] → call QWORD PTR [rax+0x10] mov edx,eax ↓ jmp 29a 287: movabs rdi,0x769527200020 cmp rcx,rdi sete dl movzx edx,dl 29a: test edx,edx ↑ je 24c mov r15,r13 ↑ jmp 153 2a6: cmp eax,r13d ↓ jbe 2bd ↑ jmp 1bc 2b0: movabs rax,0x7694b9066928 → call QWORD PTR [rax] int3 2bd: movabs rdi,0x7694b9a4cc68 movabs rsi,0x769527200020 movabs rax,0x7694b9647960 → call QWORD PTR [rax] int3 2de: → call instance int32 [benchapp] Bench::Lookup()[OptimizedTier1]+0xffffffffff3915b8 int3 Samples: 25K of event 'cpu-clock', 4999 Hz, Event count (approx.): 5047009200, [percent: local period] ObjectNative::TryGetHashCode(Object*)() /home/egorbot_work/core_roots/main/libcoreclr.so 48.94 xor eax,eax test rdi,rdi ↓ je 5d mov ecx,DWORD PTR [rdi-0x4] test ecx,0x8000000 ↓ je 5d test ecx,0x4000000 ↓ jne 55 push rbp mov rbp,rsp lea rax,[rip+0x13d493] mov rcx,QWORD PTR [rax] mov edx,DWORD PTR [rdi-0x4] mov esi,edx and esi,0xc000000 and edx,0x3ffffff xor eax,eax cmp esi,0x8000000 cmovne edx,eax shl edx,0x4 mov rcx,QWORD PTR [rcx+rdx*1] test rcx,rcx ↓ je 53 mov eax,DWORD PTR [rcx+0x28] 53: pop rbp ← ret 55: and ecx,0x3ffffff mov eax,ecx 51.06 5d: ← ret