Alexandre Julliard : kernel32: Add an x86_64 implementation for the TEB access functions.

Alexandre Julliard julliard at winehq.org
Fri May 7 09:41:15 CDT 2010


Module: wine
Branch: master
Commit: 383879f6866005689ade46ed2ce003ebe7e13fbe
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=383879f6866005689ade46ed2ce003ebe7e13fbe

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri May  7 14:15:25 2010 +0200

kernel32: Add an x86_64 implementation for the TEB access functions.

---

 dlls/kernel32/thread.c |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 deletions(-)

diff --git a/dlls/kernel32/thread.c b/dlls/kernel32/thread.c
index 5130286..024e825 100644
--- a/dlls/kernel32/thread.c
+++ b/dlls/kernel32/thread.c
@@ -602,7 +602,39 @@ __ASM_STDCALL_FUNC( GetCurrentThreadId, 0, ".byte 0x64\n\tmovl 0x24,%eax\n\tret"
 /* HANDLE WINAPI GetProcessHeap(void) */
 __ASM_STDCALL_FUNC( GetProcessHeap, 0, ".byte 0x64\n\tmovl 0x30,%eax\n\tmovl 0x18(%eax),%eax\n\tret");
 
-#else  /* __i386__ */
+#elif defined(__x86_64__)
+
+/***********************************************************************
+ *		SetLastError (KERNEL32.@)
+ */
+/* void WINAPI SetLastError( DWORD error ); */
+__ASM_STDCALL_FUNC( SetLastError, 8, ".byte 0x65\n\tmovl %ecx,0x68\n\tret" );
+
+/***********************************************************************
+ *		GetLastError (KERNEL32.@)
+ */
+/* DWORD WINAPI GetLastError(void); */
+__ASM_STDCALL_FUNC( GetLastError, 0, ".byte 0x65\n\tmovl 0x68,%eax\n\tret" );
+
+/***********************************************************************
+ *		GetCurrentProcessId (KERNEL32.@)
+ */
+/* DWORD WINAPI GetCurrentProcessId(void) */
+__ASM_STDCALL_FUNC( GetCurrentProcessId, 0, ".byte 0x65\n\tmovl 0x40,%eax\n\tret" );
+
+/***********************************************************************
+ *		GetCurrentThreadId (KERNEL32.@)
+ */
+/* DWORD WINAPI GetCurrentThreadId(void) */
+__ASM_STDCALL_FUNC( GetCurrentThreadId, 0, ".byte 0x65\n\tmovl 0x48,%eax\n\tret" );
+
+/***********************************************************************
+ *		GetProcessHeap (KERNEL32.@)
+ */
+/* HANDLE WINAPI GetProcessHeap(void) */
+__ASM_STDCALL_FUNC( GetProcessHeap, 0, ".byte 0x65\n\tmovq 0x60,%rax\n\tmovq 0x30(%rax),%rax\n\tret");
+
+#else  /* __x86_64__ */
 
 /**********************************************************************
  *		SetLastError (KERNEL32.@)




More information about the wine-cvs mailing list