将x86程序移植到mips32平台

3
以下是X86架构的示例代码:
#  define INC(_lval,_lqual) \
      __asm__ __volatile__ ( \
      "lock ; incl (%0)" : /*out*/ : /*in*/"r"(&(_lval)) : "memory", "cc" )

请有人帮我找一个等价的MIPS32架构。

2个回答

3

这看起来像是用于原子增量的gcc内联汇编。以下是用于原子增量的gcc内置函数:

__sync_fetch_and_add(&_lval, 1);

适用于x86、mips32等平台。


2
在mips32中获取到__sync_fetch_and_add_4的未定义引用。 - ding_dong
@ding_dong:你应该也看到了一个警告,至少这是gcc文档所述的。 - Jens Gustedt
如果gcc在那个架构上没有实现它,正如你的错误信息和Jens的答案所示,那么恐怕我无法提供太多帮助。MIPS32架构手册显示,MIPS32具有加载链接条件存储器,您需要使用它来构建原子增量。 - Ben Voigt

0

我找到了一段代码,可能对你有用这里。实际上,它似乎表明gcc的内置功能在该架构上未实现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接