RDTSC命令で64bitの値を取得
LinuxKernelのinclude/asm-x86_64/msr.hより
カーネルのバージョンは2.6.17です。
#define rdtscll(val) do { \
unsigned int __a,__d; \
asm volatile("rdtsc" : "=a" (__a), "=d" (__d)); \
(val) = ((unsigned long)__a) | (((unsigned long)__d)<<32); \
} while(0)
---使い方---
volatile unsigned long long value;
rdtscll(value);
printf("%llu\n", value);