Diff
Not logged in

Differences From Artifact [33f9f06d49]:

To Artifact [93405833e8]:


987
988
989
990
991
992
993
994
995
996



997


998
999
1000
1001
1002
1003
1004
1005
1006
TclWinCPUID(
    unsigned int index,		/* Which CPUID value to retrieve. */
    unsigned int *regsPtr)	/* Registers after the CPUID. */
{
    int status = TCL_ERROR;

#ifdef HAVE_CPUID
	/* disabled in emergency -- fails on linux */
# if 0
    __asm__ __volatile__ ("cpuid":\



    "=a" (regsPtr[0]), "=b" (regsPtr[1]), "=c" (regsPtr[2]), "=d" (regsPtr[3]) : "a" (index));


    status = TCL_OK;
# endif
#endif
    return status;
}

/*
 * Local Variables:
 * mode: c







<
<
|
>
>
>
|
>
>

<







987
988
989
990
991
992
993


994
995
996
997
998
999
1000
1001

1002
1003
1004
1005
1006
1007
1008
TclWinCPUID(
    unsigned int index,		/* Which CPUID value to retrieve. */
    unsigned int *regsPtr)	/* Registers after the CPUID. */
{
    int status = TCL_ERROR;

#ifdef HAVE_CPUID


    __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;
}

/*
 * Local Variables:
 * mode: c