Chinaunix

标题: ios开发xcode不认arm内嵌汇编? [打印本页]

作者: w_anthony    时间: 2013-03-15 15:59
标题: ios开发xcode不认arm内嵌汇编?

  1. static volatile int g_interlock = 0;
  2. static void NcInterLock()
  3. {
  4.         __asm__ volatile("\
  5.                 mov r0, #1\r\n\t\
  6.         1:\r\n\t\
  7.                 swp r0, r0, [%0]\r\n\t\
  8.                 teqne r0, #0\r\n\t\
  9.                 bne 1b" \
  10.                 : \
  11.                 : "r"(&g_interlock)
  12.                 : "r0", "cc");
  13. }
复制代码
第一个错误是不认最后那行冒号后面的r0寄存器,如果把"r0"删了,
编译则
提示错误:Instruction requires: arm-mode
              Predicated instructions must be in IT block
第一个错误指向第一行r0寄存器,第二个是指向swp

那个xcode是否支持arm汇编呢?还是项目属性哪里不对?这段汇编主要是想有一个忙等的自旋锁,如果有内置的自旋锁API也可以,那就不需要汇编了。

作者: w_anthony    时间: 2013-03-22 10:16
找到OSAtomicCompareAndSwap32系列的,可以实现功能,不需要内嵌汇编了
作者: lxy572535121    时间: 2015-08-01 17:27
这肯定要用交叉编译的吧,关键选对编译器吧




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2