Question

est OSCompareAndSwap (Mac OS X) équivalent à CMPXCHG8B?

Était-ce utile?

La solution

Vous trouverez la définition des fonctions atomiques dans le fichier OSAtomic.s dans la source XNU. Par exemple, voici OSAtomicCompareAndSwapPtr pour x86_64 dans la version 11/02/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

Autres conseils

verrouillage CMPXCHG8B

plus exactement

Il est pour les processeurs Intel, mais prendre en compte, que osx existe non seulement pour l'architecture intel, donc asm sera différent

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top