kernel32: For Mac 64-bit, re-enable the inlining of various functions,…
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: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Showing
Please
register
or
sign in
to comment