![](/img/trans.png)
[英]undefined reference to `__sync_val_compare_and_swap_4' error at compilation, using gcc 4.1.1 and 4.2.0 for Sparc v8 target
[英]Implementation inline assembly of compare and swap function for Sparc V8
我的gcc交叉編譯器不支持用於原子內存訪問的內置函數 。 如何使用Sparc V8架構的內聯匯編實現以下功能:
long __sync_val_compare_and_swap (long *ptr, long oldval long newval)
{
....
}
那些內置函數執行原子比較和交換。 也就是說,如果* ptr的當前值為oldval,則將newval寫入* ptr。
SPARC V8沒有CAS指令,因此您必須以某種方式模擬它。 例如,在http://www.oracle.com/technetwork/server-storage/solaris10/index-142944.html上使用CAS的類似C的偽代碼,並使用靜態pthread互斥量來確保原子{}區域的原子性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.