Module: wine Branch: master Commit: 1ce0c9578a3708b19967e6e1a8ccb6771823306f URL: http://source.winehq.org/git/wine.git/?a=commit;h=1ce0c9578a3708b19967e6e1a8...
Author: James Eder jimportal@gmail.com Date: Sat Oct 20 18:40:43 2012 -0600
ntdll: Add support for cpuid on x86_64.
---
dlls/ntdll/nt.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c index 878c58b..972277d 100644 --- a/dlls/ntdll/nt.c +++ b/dlls/ntdll/nt.c @@ -827,6 +827,13 @@ static inline void do_cpuid(unsigned int ax, unsigned int *p) "popl %%ebx" : "=a" (p[0]), "=S" (p[1]), "=c" (p[2]), "=d" (p[3]) : "0" (ax)); +#elif defined(__x86_64__) + __asm__("push %%rbx\n\t" + "cpuid\n\t" + "movq %%rbx, %%rsi\n\t" + "pop %%rbx" + : "=a" (p[0]), "=S" (p[1]), "=c" (p[2]), "=d" (p[3]) + : "0" (ax)); #endif }
@@ -848,6 +855,8 @@ static inline int have_cpuid(void) : "=&r" (f1), "=&r" (f2) : "ir" (0x00200000)); return ((f1^f2) & 0x00200000) != 0; +#elif defined(__x86_64__) + return 1; #else return 0; #endif