Android源代码编译错误:' asm'

时间:2016-11-05 22:49:43

标签: android c++ c dalvik android-runtime

对于我的项目,我必须使用内联汇编指令,例如 rdtsc 来计算stack中Android 4.3 C ++指令的执行时间。我在stackoverflow中发现了类似的问题,例如12345678910,但没有解决我遇到的问题。

我使用了以下代码:

{unsigned a, d;asm volatile("rdtsc" : "=a" (a), "=d" (d)); t0 = ((unsigned long)a) | (((unsigned long)d) << 32);}
//The C++ statement to measure its execution time
{unsigned a, d;asm volatile("rdtsc" : "=a" (a), "=d" (d)); t1 = ((unsigned long)a) | (((unsigned long)d) << 32);}
time = (t1-t0)/2-20;

但我收到错误消息:

错误:asm&#39;

中的不可能约束

我的构建环境是:

  • Ubuntu 14.04.5 LTS
  • Android 4.3
  • GCC 4.8.5
  • G ++ 4.8.5
  • 目标:x86_64-linux-gnu

我已经在独立的C程序(在相同的环境中)中尝试了上面的代码,它运行正常没问题但是一旦我将上面的代码嵌入到Android源代码中,我得到了错误信息。

我的目标:

我在x86_64-linux-gnu平台上为Android模拟器qemu构建图像。

0 个答案:

没有答案