OSCompareAndSwap(Mac OS X)是否等同于CMPXCHG8B?

OSCompareAndSwap(Mac OS X)是否等同于CMPXCHG8B?     
已邀请:
您可以在XNU源中的OSAtomic.s文件中找到原子函数的定义。例如,这是版本1486.2.11中x86_64的OSAtomicCompareAndSwapPtr:
_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
    
锁 CMPXCHG8B 更确切地说 它适用于英特尔处理器,但考虑到,osx不仅存在于英特尔架构中,因此asm将会有所不同     

要回复问题请先登录注册