From 8f59032301d90407ca472bd7f347d36abcc4c9d6 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 2 May 2012 06:43:53 +0000 Subject: TclWinCPUID now respects -fPIC compilation on 32-bit Linux --- unix/tclUnixCompat.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/unix/tclUnixCompat.c b/unix/tclUnixCompat.c index 3f7bbdf..0456faf 100644 --- a/unix/tclUnixCompat.c +++ b/unix/tclUnixCompat.c @@ -693,8 +693,13 @@ TclWinCPUID( int status = TCL_ERROR; #ifdef HAVE_CPUID - __asm__ __volatile__ ("cpuid":\ - "=a" (regsPtr[0]), "=b" (regsPtr[1]), "=c" (regsPtr[2]), "=d" (regsPtr[3]) : "a" (index)); + __asm__ __volatile__("pushl %%ebx \n\t" /* save %ebx */ + "cpuid \n\t" + "movl %%ebx, %1 \n\t" /* save what cpuid just put in %ebx */ + "popl %%ebx \n\t" /* restore the old %ebx */ + : "=a"(regsPtr[0]), "=r"(regsPtr[1]), "=c"(regsPtr[2]), "=d"(regsPtr[3]) + : "a"(index) + : "cc"); status = TCL_OK; #endif return status; -- cgit v0.12