uint32 __a,__d;
uint64 val;
win32.use asm
__asm {
cpuid
rdtsc
mov __a, eax
mov __d, edx
}
val = ((uint64)__a) | (((uint64)__d)<<32);
x64.use intrinsic
int dwBuf[4] = {-1};
__cpuid(dwBuf, 0);
val =__rdtsc();
linux .use asm:
asm volatile("rdtsc" : "=a" (__a), "=d" (__d));
val = ((uint64)__a) | (((uint64)__d)<<32);