What about the more simpler
```C unsigned a, d; __asm__ volatile("rdtsc" : "=a" (a), "=d" (d)); value= ((unsigned long long)a) | (((unsigned long long)d) << 32); ```
which should work for both x86 and x86_64 according to https://web.archive.org/web/20161215213659/http://www.cs.wm.edu/~kearns/001l... ?
vm-dev@lists.squeakfoundation.org