07/12/08 01:46:07 BpRfKoKi
GCC のインラインアセンブリで RDTSC 命令を使いたい
#define RDTSC(X) __asm__ __volatile__ ("rdtsc" : "=A" (X))
と書いたんだけど =A という Constraints は
x86 だと edx:eax だけど amd64 では rax と扱われてしまうらしい
でも RDTSC 命令の仕様自体は x86 でも amd64 でも edx:eax に返るみたいなので
rax を使うと下位 32 bit しか返らない
amd64 環境でうまくやるにはどうすればいいんだろう?