Domanda

È OSCompareAndSwap (Mac OS X) equivalente a CMPXCHG8B?

È stato utile?

Soluzione

È possibile trovare la definizione delle funzioni atomiche nel file OSAtomic.s nella fonte XNU. Ad esempio, ecco OSAtomicCompareAndSwapPtr per x86_64 nella versione 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

Altri suggerimenti

Blocco CMPXCHG8B

, più esattamente

E 'per processori Intel, ma prendere in considerazione, esiste che osx non solo per l'architettura Intel, così ASM sarà diverso

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top