summaryrefslogtreecommitdiff
path: root/ACE/ace/Atomic_Op_GCC_T.cpp
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2010-03-05 12:20:47 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2010-03-05 12:20:47 +0000
commit8e121d80373a2fb09e8e7b0295f948b0515f250d (patch)
treeb60fffb76d5b66cfa1dc7839f9d8ba00c4d55bff /ACE/ace/Atomic_Op_GCC_T.cpp
parentbc9dda30559fa47bad2fa3025176dedb53fc44ed (diff)
downloadATCD-8e121d80373a2fb09e8e7b0295f948b0515f250d.tar.gz
Fri Mar 5 12:20:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
* ace/Atomic_Op.h: * ace/Atomic_Op.inl: * ace/Atomic_Op_GCC_T.cpp: * ace/Atomic_Op_GCC_T.h: * ace/Atomic_Op_GCC_T.inl: Added new Atomic template for the GCC builtin atomic op support. This is used on PPC64/PPC32/IA64 for int/unsigned int/long/unsigned long. On EM64T we do use this for int/unsigned int, the ACE assembly version for long/unsigned long is faster than the GCC. * ace/config-g++-common.h: Enable the new builtin atomic also for EM64T * ace/ace.mpc: * ace/Makefile.am: Added new files
Diffstat (limited to 'ACE/ace/Atomic_Op_GCC_T.cpp')
-rw-r--r--ACE/ace/Atomic_Op_GCC_T.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/ACE/ace/Atomic_Op_GCC_T.cpp b/ACE/ace/Atomic_Op_GCC_T.cpp
new file mode 100644
index 00000000000..1cfec57eef9
--- /dev/null
+++ b/ACE/ace/Atomic_Op_GCC_T.cpp
@@ -0,0 +1,27 @@
+// $Id$
+
+#include "ace/OS_NS_unistd.h"
+
+ACE_RCSID (ace,
+ Atomic_Op_GCC,
+ "$Id$")
+
+#if defined (ACE_HAS_GCC_ATOMIC_BUILTINS) && (ACE_HAS_GCC_ATOMIC_BUILTINS == 1)
+
+#if !defined (__ACE_INLINE__)
+#include "ace/Atomic_Op_GCC_T.inl"
+#endif /* __ACE_INLINE__ */
+
+template <typename T>
+void
+ACE_Atomic_Op_GCC<T>::dump (void) const
+{
+#if defined (ACE_HAS_DUMP)
+ ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
+ ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
+#endif /* ACE_HAS_DUMP */
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_GCC_ATOMIC_BUILTINS */