Ist OSCompareAndSwap (Mac OS X) entspricht CMPXCHG8B?
-
21-09-2019 - |
Frage
Is OSCompareAndSwap (Mac OS X) entspricht CMPXCHG8B?
Lösung
Sie können die Definition der atomaren Funktionen in der OSAtomic.s Datei im XNU Quelle finden. Zum Beispiel, hier ist OSAtomicCompareAndSwapPtr für x86_64 in Version 1486.02.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
Andere Tipps
Schloss CMPXCHG8B
genauer
Es ist für Intel-Prozessoren, aber berücksichtigen, dass osx für Intel-Architektur nicht nur existiert, so asm anders sein
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow