• 0 Posts
  • 1 Comment
Joined 2 years ago
cake
Cake day: February 8th, 2023

help-circle
  • @qqq @OpenStars before wow64 introduction, wine required 32 bit process and multilib to run 32 bit code, requiring 32 bit opengl/bulkan implementations
    But it is possible to run 32 bit code in 64 bit process.
    Wine in wow64 mode enforces 64 bit process to use only lower 32 bits address space and thunks 64 bit libraries via wine nt syscall interface to loaded 32 bit PE binaries. No multilib or even 32 bit process support required, 32 bit instructions executed as is. Also this allows using machine code translation layers (like fexemu) exposing native calls with same syscall interface.
    wow64 maybe still limitted because it does not allow calling native libraries directly and increases overhead. win32 TLS code is using same fs segment register as linux 64bit TLS and workarounds may have bigger overhead, than using multilib