[ros-diffs] [tfaber] 56467: [CRT:INTRIN_X86] - Use correct check for x64 architecture - Fix Interlocked*64 return types - Add _InterlockedXor64

tfaber at svn.reactos.org tfaber at svn.reactos.org
Tue May 1 15:45:49 UTC 2012


Author: tfaber
Date: Tue May  1 15:45:49 2012
New Revision: 56467

URL: http://svn.reactos.org/svn/reactos?rev=56467&view=rev
Log:
[CRT:INTRIN_X86]
- Use correct check for x64 architecture
- Fix Interlocked*64 return types
- Add _InterlockedXor64

Modified:
    trunk/reactos/include/crt/mingw32/intrin_x86.h

Modified: trunk/reactos/include/crt/mingw32/intrin_x86.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/crt/mingw32/intrin_x86.h?rev=56467&r1=56466&r2=56467&view=diff
==============================================================================
--- trunk/reactos/include/crt/mingw32/intrin_x86.h [iso-8859-1] (original)
+++ trunk/reactos/include/crt/mingw32/intrin_x86.h [iso-8859-1] Tue May  1 15:45:49 2012
@@ -75,7 +75,7 @@
 /* TODO: __getcallerseflags but how??? */
 
 /* Maybe the same for x86? */
-#ifdef _x86_64
+#ifdef __x86_64__
 #define _alloca(s) __builtin_alloca(s)
 #endif
 
@@ -109,10 +109,10 @@
 	_WriteBarrier();
 }
 
-#ifdef _x86_64
+#ifdef __x86_64__
 __INTRIN_INLINE void __faststorefence(void)
 {
-    long local;
+	long local;
 	__asm__ __volatile__("lock; orl $0, %0;" : : "m"(local));
 }
 #endif
@@ -198,7 +198,7 @@
 }
 
 #if defined(_M_AMD64)
-__INTRIN_INLINE long _InterlockedAnd64(volatile long long * const value, const long long mask)
+__INTRIN_INLINE long long _InterlockedAnd64(volatile long long * const value, const long long mask)
 {
 	return __sync_fetch_and_and(value, mask);
 }
@@ -220,7 +220,7 @@
 }
 
 #if defined(_M_AMD64)
-__INTRIN_INLINE long _InterlockedOr64(volatile long long * const value, const long long mask)
+__INTRIN_INLINE long long _InterlockedOr64(volatile long long * const value, const long long mask)
 {
 	return __sync_fetch_and_or(value, mask);
 }
@@ -240,6 +240,13 @@
 {
 	return __sync_fetch_and_xor(value, mask);
 }
+
+#if defined(_M_AMD64)
+__INTRIN_INLINE long long _InterlockedXor64(volatile long long * const value, const long long mask)
+{
+	return __sync_fetch_and_xor(value, mask);
+}
+#endif
 
 #else
 




More information about the Ros-diffs mailing list