3
我正在做一项研究任务以测量我机器上的内存访问时间。 要确定我们的机器时钟周期,我们一直在下面的C代码片段:LLVM抱怨汇编错误“内存操作数中的意外令牌”
static inline void getcyclecount(uint64_t* cycles)
{
__asm __volatile(
"cpuid # force all previous instruction to complete\n\t"
"rdtsc # TSC -> edx:eax \n\t"
"movl %%edx, 4(0) # store edx\n\t"
"movl %%eax, 0(0) # store eax\n\t"
: : "r"(cycles) : "eax", "ebx", "ecx", "edx");
}
然而,当我尝试编译这个(的XCode 4,使用“苹果LLVM编译器2.1”),它会导致两次在rdtsc resp的“\ t”中出现错误“内存操作数中的意外令牌”。第一个movl指令行。
我知道基本的汇编程序,但不知道C内联汇编程序格式。
有没有人知道可能是这个代码的问题?
谢谢!
超级真棒!固定它,非常感谢你! – Patrick