OSCompareAndSwapする(Mac OS X)はCMPXCHG8Bに相当しますか?
-
21-09-2019 - |
質問
CMPXCHG8Bに相当OSCompareAndSwapする(Mac OS X)ですか?
解決
あなたはXNUソースでOSAtomic.sファイル内の原子の関数の定義を見つけることができます。例えば、ここにx86_64版は、 OSAtomicCompareAndSwapPtrです>バージョン1486年2月11日でます:
_OSCompareAndSwap64:
_OSCompareAndSwapPtr: #;oldValue, newValue, ptr
movq %rdi, %rax
lock
cmpxchgq %rsi, 0(%rdx) #; CAS (eax is an implicit operand)
sete %al #; did CAS succeed? (TZ=1)
movzbq %al, %rax #; clear out the high bytes
ret
他のヒント
ロック CMPXCHG8B
より正確
これは、インテル・プロセッサー向けだが、考慮に入れて、そのOSXだけでなく、Intelアーキテクチャのために存在しているので、ASMは異なるものになります。
所属していません StackOverflow