任何人都可以帮助我确定以下编译器错误的原因。
“ .. \ TestRT \ TDP \ PPCGNU \ lib \ custom.h:428:错误:“asm”中的不可能约束”
码:
提前致谢!
最佳答案
我认为文档可以回答这个问题。您可能具有要为x86-64构建的x86代码。 A对x86有效,但对x86-64无效。 GCC documentation解释了x86-64如何用A替换A:
“这在x86-64上是不正确的,因为它将在ax或dx中分配刻度。您必须使用以下变体:”
unsigned long long rdtsc (void)
{
unsigned int tickl, tickh;
__asm__ __volatile__("rdtsc":"=a"(tickl),"=d"(tickh));
return ((unsigned long long)tickh << 32)|tickl;
}