0

我需要相当于以下的原子操作代码:

__asm__ __volatile__ (
                    " lock;\n"
                    " addl %1, %0; \n"
                    " movl %0, %%eax"
                    : "=m"(a), "=a" (c)
                    : "ir"(b)
                    );

(在 Linux 上添加两个变量 a 和 b 以及存储在 a 和 c 中的输出)

在 Solaris(Sparc 架构)上需要与上述等效。有没有人可以帮帮我?

4

1 回答 1

1

本文应该深入回答您的所有问题,甚至提供代码:http: //developers.sun.com/solaris/articles/atomic_sparc/

您可能需要根据内联汇编对其进行一些重新格式化,但除此之外,应该很好。

于 2009-11-11T11:02:50.630 回答