OSCompareAndSwap(Mac OS X)等价于CMPXCHG8B吗?OSCompareAndSwap(Mac OS X)等价于CMPXCHG8B吗?
2
A
回答
1
你可以找到的定义XNU源中的OSAtomic.s文件中的原子函数。例如,这里是在1486年2月11日版本OSAtomicCompareAndSwapPtr for x86_64:
_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
0
相关问题
- 1. NSColor等价于UIColor underPageBackgroundColor在Mac OS X上使用?
- 2. 的Linux/Mac OS X的等价物Windows通信基础
- 3. Mac OS X上XDG_CONFIG_HOME和XDG_DATA_HOME的等价物?
- 4. OSCompareAndSwap是否对像CMPXCHG8B这样的ABA问题有效?
- 5. 等同于OutputDebugString()的OS X?
- 6. 的Mac OS X - 控制等窗口
- 7. OS X中的GNU Linker等价命令
- 8. 在OS X Cocoa中的java.awt.Robot等价物?
- 9. .def文件等效于OS X
- 10. Apple Mac OS X是免费的吗?
- 11. Java FileChannel.tryLock在Mac OS X上工作吗?
- 12. SDL + emacs + Mac OS X
- 13. FreeTDS Mac OS X MiniPortile
- 14. Subversion与Mac OS X
- 15. 就在Mac OS X
- 16. 升级MAC OS X
- 17. SetWindowsHookEx for Mac OS X?
- 18. Mac OS X和Mercurial
- 19. MAC OS X - Xcode4和
- 20. Mac OS X + cakephp + SqlServer
- 21. MSCGen for Mac OS X
- 22. 适用于Mac OS X的MapKit?
- 23. 如何安装PostgreSQL用于Mac OS X
- 24. 适用于Mac OS X的ldconfig
- 25. EnumWindows相当于Mac OS X(C++)
- 26. _wfopen在Mac OS X下相当于
- 27. 适用于Mac OS X的AirPlay API
- 28. 适用于Mac OS X的乳胶
- 29. 适用于Mac OS X的UIPopoverController?
- 30. 关于Mac OS X Lion上的Apache
+1谢谢。那么OSCompareAndSwap最终是不是像CMPXCHG8B这样的ABA问题? – Viet 2010-03-19 11:55:47
我并不十分熟悉CMPXCHG8B,但看起来它与cmpxchg具有相同的语义,并且仅在它看起来有所不同。在32位中,寄存器只有32位宽,因此CMPXCHG8B查看寄存器对以允许执行64位CAS。您可以看到它用于i386位OSAtomic.s文件中的64位CAS操作。 – Ken 2010-03-19 21:51:27
这意味着没有。谢谢。 – Viet 2010-03-20 12:36:54