簡體   English   中英

Sparc V8的比較和交換功能的內聯匯編

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM