Est-ce que OSCompareAndSwap (Mac OS X) est équivalent à CMPXCHG8B?OSCompareAndSwap (Mac OS X) est-il équivalent à CMPXCHG8B?
2
A
Répondre
1
Vous trouverez la définition des fonctions atomiques dans le fichier OSAtomic.s dans la source XNU. Par exemple, voici OSAtomicCompareAndSwapPtr for 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
0
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
Questions connexes
- 1. équivalent showkey sur mac os x?
- 2. OSCompareAndSwap est-il immunisé contre les problèmes ABA comme CMPXCHG8B?
- 3. Windows équivalent cygwin de Mac OS X commande ouverte
- 4. à Rails 3 sur Mac OS X
- 5. Alternative à FinalBuilder pour Mac OS X?
- 6. Qt4Dotnet sur Mac OS X
- 7. Subversion avec Mac OS X
- 8. Mac OS X débogage erreur
- 9. Mac OS X: charge moyenne
- 10. Latex pour Mac OS X
- 11. Mac OS X et Mercurial
- 12. SetWindowsHookEx pour Mac OS X?
- 13. Mac OS X Binary Repositories
- 14. Comment compiler les extensions python pour Mac OS X 10.5, sur Mac OS X 10.6?
- 15. java.awt.Robot équivalent dans OS X Cocoa?
- 16. SWT sur OS X: équivalent NSSheet
- 17. Interrogation Mac OS X Spotlight de Java
- 18. Comment compiler pour Mac OS X 10.5
- 19. Equivalent GetTextExtentPoint32 sur Mac OS X
- 20. L'Apple Mac OS X est-il gratuit?
- 21. éditeur de texte gedit - mac os x
- 22. installe sqlite3 sur mac os x?
- 23. E/S asynchrones sous Mac OS X
- 24. Comment désinstaller MySQL de Mac OS X?
- 25. Ajustements Swing pour Mac OS X
- 26. Mac OS X 10.6 pilotes ODBC
- 27. Détection débogueur sous Mac OS X
- 28. développement C++ sur Mac OS X 10.6
- 29. Raccourci vers MySQL sous Mac OS X?
- 30. Bloqué: SQL Server + Rails + Mac OS X
+1 merci. Donc finalement OSCompareAndSwap est immunisé contre le problème ABA comme CMPXCHG8B? – Viet
Je ne suis pas vraiment familier avec CMPXCHG8B, mais on dirait qu'il a la même sémantique que cmpxchg et ne diffère que par ce qu'il regarde. En 32 bits, les registres ont seulement 32 bits de largeur, donc CMPXCHG8B regarde les paires de registres pour permettre de faire 64 bits CAS. Vous pouvez voir qu'il est utilisé pour les opérations CAS 64 bits dans le fichier OSAtomic.s i386 bits. – Ken
Cela signifie non. Merci. – Viet