James Eder : ntdll: Add support for cpuid on x86_64.
Module: wine Branch: master Commit: 1ce0c9578a3708b19967e6e1a8ccb6771823306f URL: http://source.winehq.org/git/wine.git/?a=commit;h=1ce0c9578a3708b19967e6e1a8... Author: James Eder <jimportal(a)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
participants (1)
-
Alexandre Julliard