12 Dec
2022
12 Dec
'22
2:25 p.m.
On Mon Dec 12 13:49:41 2022 +0000, Rémi Bernon wrote:
Interesting, for me it brings test 46 from 70k (with wine-8.0-rc1) to 82k, which is roughly what direct calls were. What does `objdump --disassemble=thunk64_vkGetDescriptorEXT dlls/winevulkan/winevulkan.so` output for instance, when you run in your 64-bit build folder with this MR?
objdump --disassemble=thunk64_vkGetDescriptorEXT dlls/winevulkan/winevulkan.so
dlls/winevulkan/winevulkan.so: file format elf64-x86-64
Disassembly of section .init:
Disassembly of section .plt:
Disassembly of section .text:
000000000007e4b9 <thunk64_vkGetDescriptorEXT>:
7e4b9: 55 push %rbp
7e4ba: 48 89 e5 mov %rsp,%rbp
7e4bd: 41 56 push %r14
7e4bf: 41 55 push %r13
7e4c1: 41 54 push %r12
7e4c3: 53 push %rbx
7e4c4: 48 83 ec 20 sub $0x20,%rsp
7e4c8: 48 89 7d c8 mov %rdi,-0x38(%rbp)
7e4cc: 48 8b 45 c8 mov -0x38(%rbp),%rax
7e4d0: 48 89 45 d8 mov %rax,-0x28(%rbp)
7e4d4: 48 8b 45 d8 mov -0x28(%rbp),%rax
7e4d8: 48 8b 00 mov (%rax),%rax
7e4db: 48 89 c7 mov %rax,%rdi
7e4de: e8 e7 3c fa ff call 221ca <wine_device_from_handle>
7e4e3: 4c 8b b0 e8 0a 00 00 mov 0xae8(%rax),%r14
7e4ea: 48 8b 45 d8 mov -0x28(%rbp),%rax
7e4ee: 4c 8b 68 18 mov 0x18(%rax),%r13
7e4f2: 48 8b 45 d8 mov -0x28(%rbp),%rax
7e4f6: 4c 8b 60 10 mov 0x10(%rax),%r12
7e4fa: 48 8b 45 d8 mov -0x28(%rbp),%rax
7e4fe: 48 8b 58 08 mov 0x8(%rax),%rbx
7e502: 48 8b 45 d8 mov -0x28(%rbp),%rax
7e506: 48 8b 00 mov (%rax),%rax
7e509: 48 89 c7 mov %rax,%rdi
7e50c: e8 b9 3c fa ff call 221ca <wine_device_from_handle>
7e511: 48 8b 80 90 0e 00 00 mov 0xe90(%rax),%rax
7e518: 4c 89 e9 mov %r13,%rcx
7e51b: 4c 89 e2 mov %r12,%rdx
7e51e: 48 89 de mov %rbx,%rsi
7e521: 48 89 c7 mov %rax,%rdi
7e524: 41 ff d6 call *%r14
7e527: 90 nop
7e528: 48 83 c4 20 add $0x20,%rsp
7e52c: 5b pop %rbx
7e52d: 41 5c pop %r12
7e52f: 41 5d pop %r13
7e531: 41 5e pop %r14
7e533: 5d pop %rbp
7e534: c3 ret
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/1763#note_19462