Es OSCompareAndSwap (Mac OS X) equivalente a CMPXCHG8B?
-
21-09-2019 - |
Pregunta
Es OSCompareAndSwap (Mac OS X) equivalente a CMPXCHG8B?
Solución
Puede encontrar la definición de las funciones atómicas en el archivo OSAtomic.s en la fuente XNU. Por ejemplo, aquí está OSAtomicCompareAndSwapPtr para x86_64 en la versión 2.11.1486:
_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
Otros consejos
Bloqueo CMPXCHG8B
más exactamente
Es para los procesadores de Intel, pero toma en cuenta, que existe OSX no sólo para la arquitectura Intel, por lo asm será diferente
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow