SPARC v9是否有双字比较和交换指令?

时间:2009-08-13 15:37:51

标签: c lock-free sparc

因此;在符合v9标准的64位SPARC CPU上,我知道 cas 指令。这适用于单字长度值。

我也在网上看到了 casx 指令 - 但我找不到更多关于它的信息。

我想知道 - 这是一个双字比较和交换吗?

如果没有,一般的问题是;有双字比较和交换吗?

3 个答案:

答案 0 :(得分:1)

CASXA。请参阅The SPARC Architecture Manual

答案 1 :(得分:1)

另请注意,casx确实存在,但它是casxa的合成指令(即简化助记符)。请参阅上述SPARC架构手册中的表43

Synthetic:   casx [regrs1], regrs2, regrd 
Instruction: casxa [regrs1]#ASI_P, regrs2, regrd 
Description: compare and swap extended 

答案 2 :(得分:0)

Sparc64 - 仅在现代CPU中 - 既不实现双宽CAS也不实现LL / SC。因此,实现无锁代码是有问题的。有一个解决方案,但它们是问题的解决方案(ABA),由于它们支持CAS或LL / SC,因此在其他平台上不存在。此外,由于此限制,Sparce无法实现一系列无锁算法。