Pregunta

Es OSCompareAndSwap (Mac OS X) equivalente a CMPXCHG8B?

¿Fue útil?

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
scroll top