Diff
Not logged in

Differences From Artifact [72e63d9419]:

To Artifact [271580c5a3]:


986
987
988
989
990
991
992
993
994


995
996
997
998
999




1000
1001
1002
1003
1004
1005
1006
1007
986
987
988
989
990
991
992


993
994
995




996
997
998
999

1000
1001
1002
1003
1004
1005
1006







-
-
+
+

-
-
-
-
+
+
+
+
-







int
TclWinCPUID(
    unsigned int index,		/* Which CPUID value to retrieve. */
    unsigned int *regsPtr)	/* Registers after the CPUID. */
{
    int status = TCL_ERROR;

#if defined(HAVE_CPUID) && defined(__CYGWIN__)
    __asm__ __volatile__("pushl %%ebx      \n\t" /* save %ebx */
#if defined(HAVE_CPUID)
    __asm__ __volatile__("mov %%ebx, %%edi     \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)
                 "mov %%ebx, %%esi   \n\t" /* save what cpuid just put in %ebx */
                 "mov %%edi, %%ebx  \n\t" /* restore the old %ebx */
                 : "=a"(regsPtr[0]), "=S"(regsPtr[1]), "=c"(regsPtr[2]), "=d"(regsPtr[3])
                 : "a"(index));
                 : "cc");
    status = TCL_OK;
#endif
    return status;
}

/*
 * Local Variables: