• Ken Thomases's avatar
    kernel32: For Mac 64-bit, re-enable the inlining of various functions,… · 2e636d4f
    Ken Thomases authored
    kernel32: For Mac 64-bit, re-enable the inlining of various functions, leveraging the TEB self pointer at %gs:0x30.
    
    On other platforms, gsbase is set to point to Wine's TEB.  So, these functions
    can use %gs-relative addressing with the field offsets to access the fields of
    the TEB.
    
    On the Mac, gsbase points to internals of the pthread implementation and that
    wouldn't work.  However, Wine hijacks %gs:0x30 and stores the TEB address there.
    So, we access the TEB fields by first loading the TEB address and then
    accessing its fields relative to that.
    Signed-off-by: 's avatarKen Thomases <ken@codeweavers.com>
    Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
    2e636d4f
winbase.h 134 KB