[PATCH] includes: Add NtCurrentTeb assembly for win64

mlankhorst mlankhorst at dhcp-172-29-61-127.smo.corp.google.com
Wed Nov 26 07:42:48 CST 2008


---
 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
-- 
1.5.6.5


--------------070805040404030001020904--



More information about the wine-patches mailing list