2010-11-19 27 views
3

下面以x86架构的示例代码,端口下面的x86程序MIPS32

# define INC(_lval,_lqual) \ 
     __asm__ __volatile__ (\ 
     "lock ; incl (%0)" : /*out*/ : /*in*/"r"(&(_lval)) : "memory", "cc") 

请有人帮助我相当于MIPS32拱。

回答

3

这看起来像一个原子增量的gcc内联程序集。这是gcc的内在为单位递增:

__sync_fetch_and_add(&_lval, 1);

作品在x86,MIPS32等

+2

获得对_sync_fetch_and_add_4的未定义引用mips32 – 2010-11-19 07:31:48

+0

@ding_dong:您应该也看到了一条警告,至少这是gcc文档的说明。 – 2010-11-19 10:26:52

+0

如果gcc没有在该架构上实现它,就像你的错误信息和Jens的答案所表明的那样,那么恐怕我不会有太大的帮助。 MIPS32体系结构手册显示MIPS32具有负载链接的条件存储,您需要使用它来构建原子增量。 – 2010-11-19 16:37:17

0

我发现可能对您有用here代码。事实上,它似乎表明gcc的内建程序没有在该体系结构中实现。