2017-10-09 143 views
0

有沒有人可以幫助我確定下面編譯器錯誤的原因。下面的代碼中「不可能約束」asm「錯誤的原因

.. \ TestRT \ TDP \ PPCGNU \ LIB \ custom.h:428:錯誤:‘ASM’不可能的約束」: enter image description here

在此先感謝

代碼!

+0

什麼是您的目標架構? –

+0

嗨,這段代碼覆蓋活動通過使用RTRT。 –

+0

嗨weimer,TDP是** cpcgnu **,在Windows 7 PC上使用cygwin gcc編譯 –

回答

0

我認爲文檔回答了這個問題。您可能有x86代碼正在爲x86-64構建。 A適用於x86,但不適用於x86-64。 GCC documentation介紹瞭如何通過對x86-64的A替換爲:

「這是不是在正確的x86-64的,因爲它會在任一斧或DX分配剔你必須使用下面的變種,而不是:」

unsigned long long rdtsc (void) 
{ 
    unsigned int tickl, tickh; 
    __asm__ __volatile__("rdtsc":"=a"(tickl),"=d"(tickh)); 
    return ((unsigned long long)tickh << 32)|tickl; 
} 
相關問題