dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dotgnu-pnet-commits] [SCM] DotGNU Portable.NET engine, compilers and to


From: Klaus Treichel
Subject: [dotgnu-pnet-commits] [SCM] DotGNU Portable.NET engine, compilers and tools (pnet) branch, master, updated. f339bfb01915e953ddb43978ebd49095759f55d3
Date: Sat, 27 Mar 2010 12:00:19 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "DotGNU Portable.NET engine, compilers and tools (pnet)".

The branch, master has been updated
       via  f339bfb01915e953ddb43978ebd49095759f55d3 (commit)
      from  34ba84934e6bd990c01fe4e6219632a3fdfd44fe (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit/pnet.git/commit/?id=f339bfb01915e953ddb43978ebd49095759f55d3

commit f339bfb01915e953ddb43978ebd49095759f55d3
Author: Klaus Treichel <address@hidden>
Date:   Sat Mar 27 12:59:20 2010 +0100

    Disable InterlockedExchange on arm architectures < 6.

diff --git a/ChangeLog b/ChangeLog
index c19cfd1..7f34a3d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2010-03-27  Klaus Treichel  <address@hidden>
 
+       * support/interlocked_arm.h: Disable the InterlockedExchange functions
+       for arm architectures < 6 because they don't interoperate correctly with
+       the emulated InterlockedCompareAndExchange functions.
+
        * support/interlocked_slist.c (ILInterlockedSListAppend): Exchange the
        list's tail with release semantics to make sure all changes done before
        are visible by other cpus at the time the exchange is done.
diff --git a/support/interlocked_arm.h b/support/interlocked_arm.h
index 3d205ae..604ac0f 100644
--- a/support/interlocked_arm.h
+++ b/support/interlocked_arm.h
@@ -838,6 +838,15 @@ static IL_INLINE void ILInterlockedOrU4_Full(volatile 
ILUInt32 *dest,
 #else /* __ARM_ARCH__ <= 5 || __ARM_ARCH_6M__ */
 
 /*
+ * Disable the InterlockedExchange functions on ARM V5 and less because they
+ * dont interact correctly with the emulated InterlockedCompareAndExchange
+ * versions.
+ * We may use them later for TestAndSet implemenations which are not
+ * guaranteed to interact correctly with the other functions.
+ */
+#if 0
+
+/*
  * Exchange two 32 bit integers.
  */
 static IL_INLINE ILInt32 ILInterlockedExchangeI4_Full(volatile ILInt32 *dest,
@@ -877,6 +886,8 @@ static IL_INLINE void *ILInterlockedExchangeP_Full(void * 
volatile *dest,
 }
 #define IL_HAVE_INTERLOCKED_EXCHANGEP_FULL 1
 
+#endif /* 0 */
+
 #endif /* __ARM_ARCH__ <= 5  || __ARM_ARCH_6M__ */
 
 #endif /* defined(__GNUC__) */

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                 |    4 ++++
 support/interlocked_arm.h |   11 +++++++++++
 2 files changed, 15 insertions(+), 0 deletions(-)


hooks/post-receive
-- 
DotGNU Portable.NET engine, compilers and tools (pnet)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]