任何人都可以帮助我确定以下编译器错误的原因。

.. \ TestRT \ TDP \ PPCGNU \ lib \ custom.h:428:错误:“asm”中的不可能约束

码:
gcc - 以下代码中 “impossible constraint in ‘asm”错误的原因-LMLPHP

提前致谢!

最佳答案

我认为文档可以回答这个问题。您可能具有要为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;
}

10-02 00:33
查看更多