• Ken Thomases's avatar
    ntdll: For Mac 64-bit, poke the TEB address to %gs:0x30 and re-enable the… · 75019420
    Ken Thomases authored
    ntdll: For Mac 64-bit, poke the TEB address to %gs:0x30 and re-enable the inlining of NtCurrentTeb().
    
    64-bit Windows apps have hard-coded accesses to %gs:0x30 baked into them.  They
    need to find the TEB self pointer there.
    
    Technically, the gsbase register and the memory it points to belong to the
    pthread implementation on macOS.  It's used for the pthread TLS implementation.
    However, study of the sources and experimentation reveal that TLS slot 6
    (offset 0x30) is not currently used.  Furthermore, Apple has promised to not
    use that slot in the future.  So, we hijack it for our purposes.
    Signed-off-by: 's avatarKen Thomases <ken@codeweavers.com>
    Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
    75019420
Name
Last commit
Last update
dlls Loading commit data...
documentation Loading commit data...
fonts Loading commit data...
include Loading commit data...
libs Loading commit data...
loader Loading commit data...
po Loading commit data...
programs Loading commit data...
server Loading commit data...
tools Loading commit data...
.mailmap Loading commit data...
ANNOUNCE Loading commit data...
AUTHORS Loading commit data...
COPYING.LIB Loading commit data...
LICENSE Loading commit data...
LICENSE.OLD Loading commit data...
MAINTAINERS Loading commit data...
Makefile.in Loading commit data...
README Loading commit data...
VERSION Loading commit data...
aclocal.m4 Loading commit data...
configure Loading commit data...
configure.ac Loading commit data...