Module: wine Branch: master Commit: e32bd2896b836effc35bdcb9d469815294ddb820 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e32bd2896b836effc35bdcb9d4...
Author: Maarten Lankhorst m.b.lankhorst@gmail.com Date: Wed Nov 26 14:42:48 2008 +0100
include: Add NtCurrentTeb assembly for win64.
---
include/winnt.h | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/include/winnt.h b/include/winnt.h index a1e9fe0..90c4d3b 100644 --- a/include/winnt.h +++ b/include/winnt.h @@ -2007,6 +2007,21 @@ extern inline struct _TEB * WINAPI NtCurrentTeb(void) __asm mov teb, eax; return teb; } +#elif defined(__x86_64__) && defined(__GNUC__) +extern inline struct _TEB * WINAPI NtCurrentTeb(void) +{ + struct _TEB *teb; + __asm__(".byte 0x65\n\tmovq (0x30),%0" : "=r" (teb)); + return teb; +} +#elif defined(__x86_64__) && defined (_MSC_VER) +extern inline struct _TEB * WINAPI NtCurrentTeb(void) +{ + struct _TEB *teb; + __asm mov rax, gs:[0x30]; + __asm mov teb, rax; + return teb; +} #else extern struct _TEB * WINAPI NtCurrentTeb(void); #endif