2009-09-08 Ozkan Sezer <sezeroz@gmail.com>
* intrincs/*.c: Update all declarations to match intrin.h. Include
only intrin.h, not windows.h. Removed aliases for non-underscored
InterlockedAdd, InterlockedAdd64 and InterlockedBitTestAndComplement.
Added non-underscored aliases for InterlockedAdd, InterlockedAdd64
and InterlockedBitTestAndComplement, which aren't actually prototyped
in intrin.h but are wrappers around other intrinsics. currentfiber.c,
currentteb.c, fiberdata.c, membarrier.c, mul128ex.c and umul128ex.c
remain untouched.
* Makefile.am (membarrier.c): Moved under src_libmingwex32 (x86-only)
* Makefile.in: Regenerated.
git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@1332 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-crt/intrincs/__stosb.c b/mingw-w64-crt/intrincs/__stosb.c
index 9547b0c..d55bbc0 100644
--- a/mingw-w64-crt/intrincs/__stosb.c
+++ b/mingw-w64-crt/intrincs/__stosb.c
@@ -1,12 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-VOID __stosb(PBYTE Dest,BYTE Data,SIZE_T Count);
-
-VOID __stosb(PBYTE Dest,BYTE Data,SIZE_T Count)
+void __stosb(unsigned char *Dest, unsigned char Data, size_t Count)
{
__asm__ __volatile__
(
@@ -16,5 +10,3 @@
);
}
-
-
diff --git a/mingw-w64-crt/intrincs/__stosd.c b/mingw-w64-crt/intrincs/__stosd.c
index 29cb371..7143bbd 100644
--- a/mingw-w64-crt/intrincs/__stosd.c
+++ b/mingw-w64-crt/intrincs/__stosd.c
@@ -1,12 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-VOID __stosd(PDWORD Dest,DWORD Data,SIZE_T Count);
-
-VOID __stosd(PDWORD Dest,DWORD Data,SIZE_T Count)
+void __stosd(unsigned long *Dest, unsigned long Data, size_t Count)
{
__asm__ __volatile__
(
@@ -16,5 +10,3 @@
);
}
-
-
diff --git a/mingw-w64-crt/intrincs/__stosq.c b/mingw-w64-crt/intrincs/__stosq.c
index 3c7e877..269baf8 100644
--- a/mingw-w64-crt/intrincs/__stosq.c
+++ b/mingw-w64-crt/intrincs/__stosq.c
@@ -1,10 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
-#ifdef _WIN64
-VOID __stosq(PDWORD64 Dest,DWORD64 Data,SIZE_T Count)
+#include <intrin.h>
+
+void __stosq(unsigned __int64 *Dest, unsigned __int64 Data, size_t Count)
{
__asm__ __volatile__
(
@@ -14,5 +10,3 @@
);
}
-#endif
-
diff --git a/mingw-w64-crt/intrincs/__stosw.c b/mingw-w64-crt/intrincs/__stosw.c
index 96932a6..befa4ec 100644
--- a/mingw-w64-crt/intrincs/__stosw.c
+++ b/mingw-w64-crt/intrincs/__stosw.c
@@ -1,12 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-VOID __stosw(PWORD Dest,WORD Data,SIZE_T Count);
-
-VOID __stosw(PWORD Dest,WORD Data,SIZE_T Count)
+void __stosw(unsigned short *Dest, unsigned short Data, size_t Count)
{
__asm__ __volatile__
(
@@ -16,5 +10,3 @@
);
}
-
-
diff --git a/mingw-w64-crt/intrincs/bitscanfwd.c b/mingw-w64-crt/intrincs/bitscanfwd.c
index 2f4eeae..350a8f9 100644
--- a/mingw-w64-crt/intrincs/bitscanfwd.c
+++ b/mingw-w64-crt/intrincs/bitscanfwd.c
@@ -1,12 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-BOOLEAN _BitScanForward(DWORD *Index,DWORD Mask);
-
-BOOLEAN _BitScanForward(DWORD *Index,DWORD Mask)
+unsigned char _BitScanForward(unsigned long *Index, unsigned long Mask)
{
__asm__ __volatile__("bsfl %1,%0" : "=r" (Mask),"=m" ((*(volatile long *)Index)));
return (Mask != 0);
diff --git a/mingw-w64-crt/intrincs/bitscanfwd64.c b/mingw-w64-crt/intrincs/bitscanfwd64.c
index 64e3eb9..8d78d81 100644
--- a/mingw-w64-crt/intrincs/bitscanfwd64.c
+++ b/mingw-w64-crt/intrincs/bitscanfwd64.c
@@ -1,10 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-BOOLEAN _BitScanForward64(DWORD *Index,DWORD64 Mask)
+unsigned char _BitScanForward64(unsigned long *Index, unsigned __int64 Mask)
{
__asm__ __volatile__("bsfq %1,%0" : "=r" (Mask),"=m" ((*(volatile long long *)Index)));
return (Mask != 0);
diff --git a/mingw-w64-crt/intrincs/bitscanrev.c b/mingw-w64-crt/intrincs/bitscanrev.c
index b92bef3..09ca88b 100644
--- a/mingw-w64-crt/intrincs/bitscanrev.c
+++ b/mingw-w64-crt/intrincs/bitscanrev.c
@@ -1,12 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-BOOLEAN _BitScanReverse(DWORD *Index,DWORD Mask);
-
-BOOLEAN _BitScanReverse(DWORD *Index,DWORD Mask)
+unsigned char _BitScanReverse(unsigned long *Index, unsigned long Mask)
{
__asm__ __volatile__("bsrl %1,%0" : "=r" (Mask),"=m" ((*(volatile long *)Index)));
return (Mask != 0);
diff --git a/mingw-w64-crt/intrincs/bitscanrev64.c b/mingw-w64-crt/intrincs/bitscanrev64.c
index 8be2d87..d0cfc55 100644
--- a/mingw-w64-crt/intrincs/bitscanrev64.c
+++ b/mingw-w64-crt/intrincs/bitscanrev64.c
@@ -1,10 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-BOOLEAN _BitScanReverse64(DWORD *Index,DWORD64 Mask)
+unsigned char _BitScanReverse64(unsigned long *Index, unsigned __int64 Mask)
{
__asm__ __volatile__("bsrq %1,%0" : "=r" (Mask),"=m" ((*(volatile long long *)Index)));
return (Mask != 0);
diff --git a/mingw-w64-crt/intrincs/bittest.c b/mingw-w64-crt/intrincs/bittest.c
index ab732a5..47b4542 100644
--- a/mingw-w64-crt/intrincs/bittest.c
+++ b/mingw-w64-crt/intrincs/bittest.c
@@ -1,17 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-BOOLEAN _bittest(LONG const *Base,LONG Offset);
-
-BOOLEAN _bittest(LONG const *Base,LONG Offset)
+unsigned char _bittest(long const *Base, long Offset)
{
int old = 0;
__asm__ __volatile__("btl %2,%1\n\tsbbl %0,%0 "
:"=r" (old),"=m" ((*(volatile long *) Base))
:"Ir" (Offset));
- return (BOOLEAN) (old != 0);
+ return (old != 0);
}
diff --git a/mingw-w64-crt/intrincs/bittest64.c b/mingw-w64-crt/intrincs/bittest64.c
index 668cd0e..59ce793 100644
--- a/mingw-w64-crt/intrincs/bittest64.c
+++ b/mingw-w64-crt/intrincs/bittest64.c
@@ -1,17 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-#ifdef _WIN64
-BOOLEAN _bittest64(LONG64 const *Base,LONG64 Offset)
+unsigned char _bittest64(__int64 const *Base, __int64 Offset)
{
int old = 0;
__asm__ __volatile__("btq %2,%1\n\tsbbl %0,%0 "
:"=r" (old),"=m" ((*(volatile long long *) Base))
:"Ir" (Offset));
- return (BOOLEAN) (old != 0);
+ return (old != 0);
}
-#endif
diff --git a/mingw-w64-crt/intrincs/bittestc.c b/mingw-w64-crt/intrincs/bittestc.c
index 1bc9b7d..0add00f 100644
--- a/mingw-w64-crt/intrincs/bittestc.c
+++ b/mingw-w64-crt/intrincs/bittestc.c
@@ -1,17 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-BOOLEAN _bittestandcomplement(LONG *Base,LONG Offset);
-
-BOOLEAN _bittestandcomplement(LONG *Base,LONG Offset)
+unsigned char _bittestandcomplement(long *Base, long Offset)
{
int old = 0;
__asm__ __volatile__("btcl %2,%1\n\tsbbl %0,%0 "
:"=r" (old),"=m" ((*(volatile long *) Base))
:"Ir" (Offset));
- return (BOOLEAN) (old != 0);
+ return (old != 0);
}
diff --git a/mingw-w64-crt/intrincs/bittestc64.c b/mingw-w64-crt/intrincs/bittestc64.c
index da8a0bd..6e0e421 100644
--- a/mingw-w64-crt/intrincs/bittestc64.c
+++ b/mingw-w64-crt/intrincs/bittestc64.c
@@ -1,15 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-BOOLEAN _bittestandcomplement64(LONG64 *Base,LONG64 Offset)
+unsigned char _bittestandcomplement64(__int64 *Base, __int64 Offset)
{
int old = 0;
__asm__ __volatile__("btcq %2,%1\n\tsbbl %0,%0 "
:"=r" (old),"=m" ((*(volatile long long *) Base))
:"Ir" (Offset));
- return (BOOLEAN) (old != 0);
+ return (old != 0);
}
diff --git a/mingw-w64-crt/intrincs/bittestci.c b/mingw-w64-crt/intrincs/bittestci.c
index 1c89ee7..7855825 100644
--- a/mingw-w64-crt/intrincs/bittestci.c
+++ b/mingw-w64-crt/intrincs/bittestci.c
@@ -1,15 +1,14 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-BOOLEAN InterlockedBitTestAndComplement(LONG *Base,LONG Bit)
+unsigned char _InterlockedBitTestAndComplement(long *Base, long Bit); /* not in intrin.h */
+unsigned char _InterlockedBitTestAndComplement(long *Base, long Bit)
{
int old = 0;
__asm__ __volatile__("lock ; btcl %2,%1\n\tsbbl %0,%0 "
:"=r" (old),"=m" ((*(volatile long *) Base))
:"Ir" (Bit));
- return (BOOLEAN) (old != 0);
+ return (old != 0);
}
+unsigned char InterlockedBitTestAndComplement(long *Base, long Bit) __attribute__((alias("_InterlockedBitTestAndComplement")));
+
diff --git a/mingw-w64-crt/intrincs/bittestr.c b/mingw-w64-crt/intrincs/bittestr.c
index c4254eb..0039db8 100644
--- a/mingw-w64-crt/intrincs/bittestr.c
+++ b/mingw-w64-crt/intrincs/bittestr.c
@@ -1,17 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-BOOLEAN _bittestandreset(LONG *Base,LONG Offset);
-
-BOOLEAN _bittestandreset(LONG *Base,LONG Offset)
+unsigned char _bittestandreset(long *Base, long Offset)
{
int old = 0;
__asm__ __volatile__("btrl %2,%1\n\tsbbl %0,%0 "
:"=r" (old),"=m" ((*(volatile long *) Base))
:"Ir" (Offset));
- return (BOOLEAN) (old != 0);
+ return (old != 0);
}
diff --git a/mingw-w64-crt/intrincs/bittestr64.c b/mingw-w64-crt/intrincs/bittestr64.c
index 799b4ba..dcfacf3 100644
--- a/mingw-w64-crt/intrincs/bittestr64.c
+++ b/mingw-w64-crt/intrincs/bittestr64.c
@@ -1,15 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-BOOLEAN _bittestandreset64(LONG64 *Base,LONG64 Offset)
+unsigned char _bittestandreset64(__int64 *Base, __int64 Offset)
{
int old = 0;
__asm__ __volatile__("btrq %2,%1\n\tsbbl %0,%0 "
:"=r" (old),"=m" ((*(volatile long long *) Base))
:"Ir" (Offset));
- return (BOOLEAN) (old != 0);
+ return (old != 0);
}
diff --git a/mingw-w64-crt/intrincs/bittestri.c b/mingw-w64-crt/intrincs/bittestri.c
index d90fd76..a7b765b 100644
--- a/mingw-w64-crt/intrincs/bittestri.c
+++ b/mingw-w64-crt/intrincs/bittestri.c
@@ -1,17 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-BOOLEAN _interlockedbittestandreset(LONG *Base,LONG Offset);
-
-BOOLEAN _interlockedbittestandreset(LONG *Base,LONG Offset)
+unsigned char _interlockedbittestandreset(long *Base, long Offset)
{
int old = 0;
__asm__ __volatile__("lock ; btrl %2,%1\n\tsbbl %0,%0 "
:"=r" (old),"=m" ((*(volatile long *) Base))
:"Ir" (Offset));
- return (BOOLEAN) (old != 0);
+ return (old != 0);
}
diff --git a/mingw-w64-crt/intrincs/bittestri64.c b/mingw-w64-crt/intrincs/bittestri64.c
index afef57e..a8fb1de 100644
--- a/mingw-w64-crt/intrincs/bittestri64.c
+++ b/mingw-w64-crt/intrincs/bittestri64.c
@@ -1,15 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-BOOLEAN _interlockedbittestandreset64(LONG64 *Base,LONG64 Offset)
+unsigned char _interlockedbittestandreset64(__int64 *Base, __int64 Offset)
{
int old = 0;
__asm__ __volatile__("lock ; btrq %2,%1\n\tsbbl %0,%0 "
:"=r" (old),"=m" ((*(volatile long long *) Base))
:"Ir" (Offset));
- return (BOOLEAN) (old != 0);
+ return (old != 0);
}
diff --git a/mingw-w64-crt/intrincs/bittests.c b/mingw-w64-crt/intrincs/bittests.c
index 8c40b75..b5cbf89 100644
--- a/mingw-w64-crt/intrincs/bittests.c
+++ b/mingw-w64-crt/intrincs/bittests.c
@@ -1,17 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-BOOLEAN _bittestandset(LONG *Base,LONG Offset);
-
-BOOLEAN _bittestandset(LONG *Base,LONG Offset)
+unsigned char _bittestandset(long *Base, long Offset)
{
int old = 0;
__asm__ __volatile__("btsl %2,%1\n\tsbbl %0,%0 "
:"=r" (old),"=m" ((*(volatile long *) Base))
:"Ir" (Offset));
- return (BOOLEAN) (old != 0);
+ return (old != 0);
}
diff --git a/mingw-w64-crt/intrincs/bittests64.c b/mingw-w64-crt/intrincs/bittests64.c
index 3e9ae63..f40d33c 100644
--- a/mingw-w64-crt/intrincs/bittests64.c
+++ b/mingw-w64-crt/intrincs/bittests64.c
@@ -1,15 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-BOOLEAN _bittestandset64(LONG64 *Base,LONG64 Offset)
+unsigned char _bittestandset64(__int64 *Base, __int64 Offset)
{
int old = 0;
__asm__ __volatile__("btsq %2,%1\n\tsbbl %0,%0 "
:"=r" (old),"=m" ((*(volatile long long *) Base))
:"Ir" (Offset));
- return (BOOLEAN) (old != 0);
+ return (old != 0);
}
diff --git a/mingw-w64-crt/intrincs/bittestsi.c b/mingw-w64-crt/intrincs/bittestsi.c
index 0babeb9..af1fda3 100644
--- a/mingw-w64-crt/intrincs/bittestsi.c
+++ b/mingw-w64-crt/intrincs/bittestsi.c
@@ -1,17 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-BOOLEAN _interlockedbittestandset(LONG *Base,LONG Offset);
-
-BOOLEAN _interlockedbittestandset(LONG *Base,LONG Offset)
+unsigned char _interlockedbittestandset(long *Base, long Offset)
{
int old = 0;
__asm__ __volatile__("lock ; btsl %2,%1\n\tsbbl %0,%0 "
:"=r" (old),"=m" ((*(volatile long *) Base))
:"Ir" (Offset));
- return (BOOLEAN) (old != 0);
+ return (old != 0);
}
diff --git a/mingw-w64-crt/intrincs/bittestsi64.c b/mingw-w64-crt/intrincs/bittestsi64.c
index 6a6966f..384f4c6 100644
--- a/mingw-w64-crt/intrincs/bittestsi64.c
+++ b/mingw-w64-crt/intrincs/bittestsi64.c
@@ -1,15 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-BOOLEAN _interlockedbittestandset64(LONG64 *Base,LONG64 Offset)
+unsigned char _interlockedbittestandset64(__int64 *Base, __int64 Offset)
{
int old = 0;
__asm__ __volatile__("lock ; btsq %2,%1\n\tsbbl %0,%0 "
:"=r" (old),"=m" ((*(volatile long long *) Base))
:"Ir" (Offset));
- return (BOOLEAN) (old != 0);
+ return (old != 0);
}
diff --git a/mingw-w64-crt/intrincs/cpuid.c b/mingw-w64-crt/intrincs/cpuid.c
index 00369e8..0a87bf1 100644
--- a/mingw-w64-crt/intrincs/cpuid.c
+++ b/mingw-w64-crt/intrincs/cpuid.c
@@ -4,10 +4,7 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
-
- void __cpuid(int CPUInfo[4], int InfoType);
+#include <intrin.h>
void __cpuid(int CPUInfo[4], int InfoType)
{
diff --git a/mingw-w64-crt/intrincs/ilockadd.c b/mingw-w64-crt/intrincs/ilockadd.c
index 26b5e86..ed6eddd 100644
--- a/mingw-w64-crt/intrincs/ilockadd.c
+++ b/mingw-w64-crt/intrincs/ilockadd.c
@@ -1,15 +1,10 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-/* for __x86_64 only */
-
-LONG InterlockedAdd(LONG volatile *Addend,LONG Value)
+long _InterlockedAdd(long volatile *Addend, long Value); /* not in intrin.h */
+long _InterlockedAdd(long volatile *Addend, long Value)
{
/* return InterlockedExchangeAdd(Addend,Value) + Value; */
- LONG ret;
+ long ret;
__asm__ __volatile__ ("lock\n\t"
"xaddl %0,(%1)"
: "=r" (ret)
@@ -18,3 +13,5 @@
return ret + Value;
}
+long InterlockedAdd(long volatile *Addend, long Value) __attribute__((alias("_InterlockedAdd")));
+
diff --git a/mingw-w64-crt/intrincs/ilockadd64.c b/mingw-w64-crt/intrincs/ilockadd64.c
index 991febe..49b61d1 100644
--- a/mingw-w64-crt/intrincs/ilockadd64.c
+++ b/mingw-w64-crt/intrincs/ilockadd64.c
@@ -1,15 +1,10 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-/* for __x86_64 only */
-
-LONG64 InterlockedAdd64(LONG64 volatile *Addend,LONG64 Value)
+__int64 _InterlockedAdd64(__int64 volatile *Addend, __int64 Value); /* not in intrin.h */
+__int64 _InterlockedAdd64(__int64 volatile *Addend, __int64 Value)
{
/* return InterlockedExchangeAdd64(Addend,Value) + Value; */
- LONG64 ret;
+ __int64 ret;
__asm__ __volatile__ ("lock\n\t"
"xaddq %0,(%1)"
: "=r" (ret)
@@ -18,3 +13,5 @@
return ret + Value;
}
+__int64 InterlockedAdd64(__int64 volatile *Addend, __int64 Value) __attribute__((alias("_InterlockedAdd64")));
+
diff --git a/mingw-w64-crt/intrincs/ilockand.c b/mingw-w64-crt/intrincs/ilockand.c
index 2fa125d..cda4e20 100644
--- a/mingw-w64-crt/intrincs/ilockand.c
+++ b/mingw-w64-crt/intrincs/ilockand.c
@@ -1,12 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-LONG InterlockedAnd(LONG volatile *Destination,LONG Value);
-
-LONG InterlockedAnd(LONG volatile *Destination,LONG Value)
+long _InterlockedAnd(long volatile *Destination, long Value)
{
__asm__ __volatile__("lock ; andl %0,%1"
: :"r"(Value),"m"(*Destination)
diff --git a/mingw-w64-crt/intrincs/ilockand64.c b/mingw-w64-crt/intrincs/ilockand64.c
index 1b66820..390bee7 100644
--- a/mingw-w64-crt/intrincs/ilockand64.c
+++ b/mingw-w64-crt/intrincs/ilockand64.c
@@ -1,10 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-LONG64 InterlockedAnd64(LONG64 volatile *Destination,LONG64 Value)
+__int64 _InterlockedAnd64(__int64 volatile *Destination, __int64 Value)
{
__asm__ __volatile__("lock ; andq %0,%1"
: : "r"(Value),"m"(*Destination) : "memory");
diff --git a/mingw-w64-crt/intrincs/ilockcxch.c b/mingw-w64-crt/intrincs/ilockcxch.c
index 8118354..550efbe 100644
--- a/mingw-w64-crt/intrincs/ilockcxch.c
+++ b/mingw-w64-crt/intrincs/ilockcxch.c
@@ -1,19 +1,9 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-#undef InterlockedCompareExchange
-LONG _InterlockedCompareExchange(LONG volatile *Destination,LONG ExChange,LONG Comperand);
-
-LONG _InterlockedCompareExchange(LONG volatile *Destination,LONG ExChange,LONG Comperand)
+long _InterlockedCompareExchange(long volatile *Destination, long ExChange, long Comperand)
{
- LONG prev;
+ long prev;
__asm__ __volatile__("lock ; cmpxchgl %1,%2" : "=a" (prev) : "q" (ExChange),"m" (*Destination), "0" (Comperand) : "memory");
return prev;
}
-LONG InterlockedCompareExchange(LONG volatile *Destination,LONG ExChange,LONG Comperand)
- __attribute__((alias("_InterlockedCompareExchange")));
-
diff --git a/mingw-w64-crt/intrincs/ilockcxch16.c b/mingw-w64-crt/intrincs/ilockcxch16.c
index 9cadb50..5cddcce 100644
--- a/mingw-w64-crt/intrincs/ilockcxch16.c
+++ b/mingw-w64-crt/intrincs/ilockcxch16.c
@@ -1,14 +1,8 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-SHORT InterlockedCompareExchange16(SHORT volatile *Destination,SHORT ExChange,SHORT Comperand);
-
-SHORT InterlockedCompareExchange16(SHORT volatile *Destination,SHORT ExChange,SHORT Comperand)
+short _InterlockedCompareExchange16(short volatile *Destination, short ExChange, short Comperand)
{
- SHORT prev;
+ short prev;
__asm__ __volatile__("lock ; cmpxchgw %w1,%2"
:"=a"(prev)
:"q"(ExChange), "m"(*Destination), "0"(Comperand)
diff --git a/mingw-w64-crt/intrincs/ilockcxch64.c b/mingw-w64-crt/intrincs/ilockcxch64.c
index d539291..a897702 100644
--- a/mingw-w64-crt/intrincs/ilockcxch64.c
+++ b/mingw-w64-crt/intrincs/ilockcxch64.c
@@ -1,12 +1,8 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-LONG64 InterlockedCompareExchange64(LONG64 volatile *Destination,LONG64 ExChange,LONG64 Comperand)
+__int64 _InterlockedCompareExchange64(__int64 volatile *Destination, __int64 ExChange, __int64 Comperand)
{
- LONG64 prev;
+ __int64 prev;
__asm__ __volatile__("lock ; cmpxchgq %1,%2" : "=a" (prev) : "q" (ExChange),"m" (*Destination), "0" (Comperand) : "memory");
return prev;
}
diff --git a/mingw-w64-crt/intrincs/ilockcxchptr.c b/mingw-w64-crt/intrincs/ilockcxchptr.c
index 2628ca4..971d4b0 100644
--- a/mingw-w64-crt/intrincs/ilockcxchptr.c
+++ b/mingw-w64-crt/intrincs/ilockcxchptr.c
@@ -1,12 +1,8 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-PVOID InterlockedCompareExchangePointer(PVOID volatile *Destination,PVOID ExChange,PVOID Comperand)
+void *_InterlockedCompareExchangePointer(void * volatile *Destination, void *ExChange, void *Comperand)
{
- PVOID prev;
+ void *prev;
__asm__ __volatile__("lock ; cmpxchgq %1,%2" : "=a" (prev) : "q" (ExChange),"m" (*Destination), "0" (Comperand) : "memory");
return prev;
}
diff --git a/mingw-w64-crt/intrincs/ilockdec.c b/mingw-w64-crt/intrincs/ilockdec.c
index fd8fa3e..b285666 100644
--- a/mingw-w64-crt/intrincs/ilockdec.c
+++ b/mingw-w64-crt/intrincs/ilockdec.c
@@ -1,12 +1,8 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-LONG InterlockedDecrement(LONG volatile *Addend)
+long _InterlockedDecrement(long volatile *Addend)
{
- LONG ret = -1;
+ long ret = -1;
__asm__ __volatile__ ("lock\n\t"
"xaddl %0,%1"
: "+r" (ret), "+m" (*Addend)
diff --git a/mingw-w64-crt/intrincs/ilockdec16.c b/mingw-w64-crt/intrincs/ilockdec16.c
index 65270a5..dd457ac 100644
--- a/mingw-w64-crt/intrincs/ilockdec16.c
+++ b/mingw-w64-crt/intrincs/ilockdec16.c
@@ -1,14 +1,8 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-SHORT InterlockedDecrement16(SHORT volatile *Addend);
-
-SHORT InterlockedDecrement16(SHORT volatile *Addend)
+short _InterlockedDecrement16(short volatile *Addend)
{
- SHORT ret = -1;
+ short ret = -1;
__asm__ __volatile__ ("lock\n\t"
"xaddw %0,%1"
: "+r" (ret), "+m" (*Addend)
diff --git a/mingw-w64-crt/intrincs/ilockdec64.c b/mingw-w64-crt/intrincs/ilockdec64.c
index b5956b6..c58e376 100644
--- a/mingw-w64-crt/intrincs/ilockdec64.c
+++ b/mingw-w64-crt/intrincs/ilockdec64.c
@@ -1,12 +1,8 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-LONG64 InterlockedDecrement64(LONG64 volatile *Addend)
+__int64 _InterlockedDecrement64(__int64 volatile *Addend)
{
- LONG64 ret = -1LL;
+ __int64 ret = -1LL;
__asm__ __volatile__ ("lock\n\t"
"xaddq %0,%1"
: "+r" (ret), "+m" (*Addend)
diff --git a/mingw-w64-crt/intrincs/ilockexch.c b/mingw-w64-crt/intrincs/ilockexch.c
index ae3267a..b90ab54 100644
--- a/mingw-w64-crt/intrincs/ilockexch.c
+++ b/mingw-w64-crt/intrincs/ilockexch.c
@@ -1,13 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-#undef InterlockedExchange
-LONG _InterlockedExchange(LONG volatile *Target,LONG Value);
-
-LONG _InterlockedExchange(LONG volatile *Target,LONG Value)
+long _InterlockedExchange(long volatile *Target, long Value)
{
__asm__ __volatile("lock ; xchgl %0,%1"
: "=r"(Value)
@@ -16,6 +9,3 @@
return Value;
}
-LONG InterlockedExchange(LONG volatile *Target,LONG Value)
- __attribute__((alias("_InterlockedExchange")));
-
diff --git a/mingw-w64-crt/intrincs/ilockexch64.c b/mingw-w64-crt/intrincs/ilockexch64.c
index fea2af1..245bb3a 100644
--- a/mingw-w64-crt/intrincs/ilockexch64.c
+++ b/mingw-w64-crt/intrincs/ilockexch64.c
@@ -1,10 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-LONG64 InterlockedExchange64(LONG64 volatile *Target,LONG64 Value)
+__int64 _InterlockedExchange64(__int64 volatile *Target, __int64 Value)
{
__asm__ __volatile("lock ; xchgq %0,%1"
: "=r"(Value)
diff --git a/mingw-w64-crt/intrincs/ilockexchadd.c b/mingw-w64-crt/intrincs/ilockexchadd.c
index 11cfdbf..d6a0ced 100644
--- a/mingw-w64-crt/intrincs/ilockexchadd.c
+++ b/mingw-w64-crt/intrincs/ilockexchadd.c
@@ -1,11 +1,8 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#include <windows.h>
+#include <intrin.h>
-LONG InterlockedExchangeAdd(LONG volatile *Addend,LONG Value)
+long _InterlockedExchangeAdd(long volatile *Addend, long Value)
{
- LONG ret;
+ long ret;
__asm__ __volatile__ ("lock\n\t"
"xaddl %0,(%1)"
: "=r" (ret)
diff --git a/mingw-w64-crt/intrincs/ilockexchadd64.c b/mingw-w64-crt/intrincs/ilockexchadd64.c
index 1d468d6..9b2e900 100644
--- a/mingw-w64-crt/intrincs/ilockexchadd64.c
+++ b/mingw-w64-crt/intrincs/ilockexchadd64.c
@@ -1,11 +1,8 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#include <windows.h>
+#include <intrin.h>
-LONG64 InterlockedExchangeAdd64(LONG64 volatile *Addend,LONG64 Value)
+__int64 _InterlockedExchangeAdd64(__int64 volatile *Addend, __int64 Value)
{
- LONG64 ret;
+ __int64 ret;
__asm__ __volatile__ ("lock\n\t"
"xaddq %0,(%1)"
: "=r" (ret)
diff --git a/mingw-w64-crt/intrincs/ilockexchptr.c b/mingw-w64-crt/intrincs/ilockexchptr.c
index 2c5b7ec..3c21ec6 100644
--- a/mingw-w64-crt/intrincs/ilockexchptr.c
+++ b/mingw-w64-crt/intrincs/ilockexchptr.c
@@ -1,10 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-PVOID InterlockedExchangePointer(PVOID volatile *Target,PVOID Value)
+void *_InterlockedExchangePointer(void * volatile *Target, void *Value)
{
__asm__ __volatile("lock ; xchgq %0,%1"
: "=r"(Value)
diff --git a/mingw-w64-crt/intrincs/ilockinc.c b/mingw-w64-crt/intrincs/ilockinc.c
index abed8d2..0adba46 100644
--- a/mingw-w64-crt/intrincs/ilockinc.c
+++ b/mingw-w64-crt/intrincs/ilockinc.c
@@ -1,12 +1,8 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-LONG InterlockedIncrement(LONG volatile *Addend)
+long _InterlockedIncrement(long volatile *Addend)
{
- LONG ret = 1;
+ long ret = 1;
__asm__ __volatile__ ("lock\n\t"
"xaddl %0,%1"
: "+r" (ret), "+m" (*Addend)
diff --git a/mingw-w64-crt/intrincs/ilockinc16.c b/mingw-w64-crt/intrincs/ilockinc16.c
index 21ff898..2ae70d2 100644
--- a/mingw-w64-crt/intrincs/ilockinc16.c
+++ b/mingw-w64-crt/intrincs/ilockinc16.c
@@ -1,17 +1,12 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-SHORT InterlockedIncrement16(SHORT volatile *Addend);
-
-SHORT InterlockedIncrement16(SHORT volatile *Addend)
+short _InterlockedIncrement16(short volatile *Addend)
{
- SHORT ret = 1;
+ short ret = 1;
__asm__ __volatile__ ("lock\n\t"
"xaddw %0,%1"
: "+r" (ret), "+m" (*Addend)
: : "memory");
return ret + 1;
}
+
diff --git a/mingw-w64-crt/intrincs/ilockinc64.c b/mingw-w64-crt/intrincs/ilockinc64.c
index 2549f0e..02b011d 100644
--- a/mingw-w64-crt/intrincs/ilockinc64.c
+++ b/mingw-w64-crt/intrincs/ilockinc64.c
@@ -1,12 +1,8 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-LONG64 InterlockedIncrement64(LONG64 volatile *Addend)
+__int64 _InterlockedIncrement64(__int64 volatile *Addend)
{
- LONG64 ret = 1LL;
+ __int64 ret = 1LL;
__asm__ __volatile__ ("lock\n\t"
"xaddq %0,%1"
: "+r" (ret), "+m" (*Addend)
diff --git a/mingw-w64-crt/intrincs/ilockor.c b/mingw-w64-crt/intrincs/ilockor.c
index e3371dbe..debdf2a 100644
--- a/mingw-w64-crt/intrincs/ilockor.c
+++ b/mingw-w64-crt/intrincs/ilockor.c
@@ -1,12 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-LONG InterlockedOr(LONG volatile *Destination,LONG Value);
-
-LONG InterlockedOr(LONG volatile *Destination,LONG Value)
+long _InterlockedOr(long volatile *Destination, long Value)
{
__asm__ __volatile__("lock ; orl %0,%1"
: : "r"(Value),"m"(*Destination) : "memory");
diff --git a/mingw-w64-crt/intrincs/ilockor64.c b/mingw-w64-crt/intrincs/ilockor64.c
index e379b6f..ebec02e 100644
--- a/mingw-w64-crt/intrincs/ilockor64.c
+++ b/mingw-w64-crt/intrincs/ilockor64.c
@@ -1,10 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-LONG64 InterlockedOr64(LONG64 volatile *Destination,LONG64 Value)
+__int64 _InterlockedOr64(__int64 volatile *Destination, __int64 Value)
{
__asm__ __volatile__("lock ; orq %0,%1"
: : "r"(Value),"m"(*Destination) : "memory");
diff --git a/mingw-w64-crt/intrincs/ilockxor.c b/mingw-w64-crt/intrincs/ilockxor.c
index 190ce1f..3b17db0 100644
--- a/mingw-w64-crt/intrincs/ilockxor.c
+++ b/mingw-w64-crt/intrincs/ilockxor.c
@@ -1,12 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-LONG InterlockedXor(LONG volatile *Destination,LONG Value);
-
-LONG InterlockedXor(LONG volatile *Destination,LONG Value)
+long _InterlockedXor(long volatile *Destination, long Value)
{
__asm__ __volatile__("lock ; xorl %0,%1"
: : "r"(Value),"m"(*Destination) : "memory");
diff --git a/mingw-w64-crt/intrincs/ilockxor64.c b/mingw-w64-crt/intrincs/ilockxor64.c
index 7b81218..2976430 100644
--- a/mingw-w64-crt/intrincs/ilockxor64.c
+++ b/mingw-w64-crt/intrincs/ilockxor64.c
@@ -1,10 +1,6 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
-LONG64 InterlockedXor64(LONG64 volatile *Destination,LONG64 Value)
+__int64 _InterlockedXor64(__int64 volatile *Destination, __int64 Value)
{
__asm__ __volatile__("lock ; xorq %0,%1"
: : "r"(Value),"m"(*Destination) : "memory");
diff --git a/mingw-w64-crt/intrincs/inbyte.c b/mingw-w64-crt/intrincs/inbyte.c
index 1d4c9d6..16b68dd 100644
--- a/mingw-w64-crt/intrincs/inbyte.c
+++ b/mingw-w64-crt/intrincs/inbyte.c
@@ -4,10 +4,7 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
-
-unsigned char __inbyte(unsigned short);
+#include <intrin.h>
unsigned char __inbyte(unsigned short Port)
{
diff --git a/mingw-w64-crt/intrincs/inbytestring.c b/mingw-w64-crt/intrincs/inbytestring.c
index 73517e4..9f85fbe 100644
--- a/mingw-w64-crt/intrincs/inbytestring.c
+++ b/mingw-w64-crt/intrincs/inbytestring.c
@@ -4,10 +4,7 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
-
-void __inbytestring(unsigned short, unsigned char *, unsigned long);
+#include <intrin.h>
void __inbytestring(unsigned short Port, unsigned char *Buffer, unsigned long Count)
{
diff --git a/mingw-w64-crt/intrincs/indword.c b/mingw-w64-crt/intrincs/indword.c
index e289902..42c9ab8 100644
--- a/mingw-w64-crt/intrincs/indword.c
+++ b/mingw-w64-crt/intrincs/indword.c
@@ -4,10 +4,7 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
-
-unsigned long __indword(unsigned short);
+#include <intrin.h>
unsigned long __indword(unsigned short Port)
{
diff --git a/mingw-w64-crt/intrincs/indwordstring.c b/mingw-w64-crt/intrincs/indwordstring.c
index 3dbd66f..f347aad 100644
--- a/mingw-w64-crt/intrincs/indwordstring.c
+++ b/mingw-w64-crt/intrincs/indwordstring.c
@@ -4,10 +4,7 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
-
-void __indwordstring(unsigned short Port,unsigned long *Buffer,unsigned long Count);
+#include <intrin.h>
void __indwordstring(unsigned short Port,unsigned long *Buffer,unsigned long Count)
{
diff --git a/mingw-w64-crt/intrincs/inword.c b/mingw-w64-crt/intrincs/inword.c
index fedd26f..813ea10 100644
--- a/mingw-w64-crt/intrincs/inword.c
+++ b/mingw-w64-crt/intrincs/inword.c
@@ -4,10 +4,7 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
-
-unsigned short __inword(unsigned short Port);
+#include <intrin.h>
unsigned short __inword(unsigned short Port)
{
diff --git a/mingw-w64-crt/intrincs/inwordstring.c b/mingw-w64-crt/intrincs/inwordstring.c
index 7487c6f..78c006d 100644
--- a/mingw-w64-crt/intrincs/inwordstring.c
+++ b/mingw-w64-crt/intrincs/inwordstring.c
@@ -4,10 +4,7 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
-
-void __inwordstring(unsigned short Port,unsigned short *Buffer,unsigned long Count);
+#include <intrin.h>
void __inwordstring(unsigned short Port,unsigned short *Buffer,unsigned long Count)
{
diff --git a/mingw-w64-crt/intrincs/membarrier.c b/mingw-w64-crt/intrincs/membarrier.c
index 26d6960..b6f239a 100644
--- a/mingw-w64-crt/intrincs/membarrier.c
+++ b/mingw-w64-crt/intrincs/membarrier.c
@@ -1,15 +1,9 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
-#if(defined(_X86_) && !defined(__x86_64))
-VOID MemoryBarrier (VOID)
+void MemoryBarrier (void);
+void MemoryBarrier (void)
{
- LONG Barrier = 0;
+ long Barrier = 0;
__asm__ __volatile__("xchgl %%eax,%0 "
:"=r" (Barrier));
}
-#endif
diff --git a/mingw-w64-crt/intrincs/outbyte.c b/mingw-w64-crt/intrincs/outbyte.c
index a1f1993..fed6811 100644
--- a/mingw-w64-crt/intrincs/outbyte.c
+++ b/mingw-w64-crt/intrincs/outbyte.c
@@ -4,10 +4,7 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
-
-void __outbyte(unsigned short Port,unsigned char Data);
+#include <intrin.h>
void __outbyte(unsigned short Port,unsigned char Data)
{
diff --git a/mingw-w64-crt/intrincs/outbytestring.c b/mingw-w64-crt/intrincs/outbytestring.c
index 21b9615..5878c19 100644
--- a/mingw-w64-crt/intrincs/outbytestring.c
+++ b/mingw-w64-crt/intrincs/outbytestring.c
@@ -4,10 +4,7 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
-
-void __outbytestring(unsigned short Port,unsigned char *Buffer,unsigned long Count);
+#include <intrin.h>
void __outbytestring(unsigned short Port,unsigned char *Buffer,unsigned long Count)
{
diff --git a/mingw-w64-crt/intrincs/outdword.c b/mingw-w64-crt/intrincs/outdword.c
index f270cfa..c2d3431 100644
--- a/mingw-w64-crt/intrincs/outdword.c
+++ b/mingw-w64-crt/intrincs/outdword.c
@@ -4,10 +4,7 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
-
-void __outdword(unsigned short Port,unsigned long Data);
+#include <intrin.h>
void __outdword(unsigned short Port,unsigned long Data)
{
diff --git a/mingw-w64-crt/intrincs/outdwordstring.c b/mingw-w64-crt/intrincs/outdwordstring.c
index 2a10a7c..416f91d 100644
--- a/mingw-w64-crt/intrincs/outdwordstring.c
+++ b/mingw-w64-crt/intrincs/outdwordstring.c
@@ -4,10 +4,7 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
-
-void __outdwordstring(unsigned short Port,unsigned long *Buffer,unsigned long Count);
+#include <intrin.h>
void __outdwordstring(unsigned short Port,unsigned long *Buffer,unsigned long Count)
{
diff --git a/mingw-w64-crt/intrincs/outword.c b/mingw-w64-crt/intrincs/outword.c
index a33f7cd..375ec94 100644
--- a/mingw-w64-crt/intrincs/outword.c
+++ b/mingw-w64-crt/intrincs/outword.c
@@ -4,10 +4,7 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
-
-void __outword(unsigned short Port,unsigned short Data);
+#include <intrin.h>
void __outword(unsigned short Port,unsigned short Data)
{
diff --git a/mingw-w64-crt/intrincs/outwordstring.c b/mingw-w64-crt/intrincs/outwordstring.c
index d322d8c..824511e 100644
--- a/mingw-w64-crt/intrincs/outwordstring.c
+++ b/mingw-w64-crt/intrincs/outwordstring.c
@@ -4,10 +4,7 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
-
-void __outwordstring(unsigned short Port,unsigned short *Buffer,unsigned long Count);
+#include <intrin.h>
void __outwordstring(unsigned short Port,unsigned short *Buffer,unsigned long Count)
{
diff --git a/mingw-w64-crt/intrincs/rdtsc.c b/mingw-w64-crt/intrincs/rdtsc.c
index 64b02fa..08ac45f 100644
--- a/mingw-w64-crt/intrincs/rdtsc.c
+++ b/mingw-w64-crt/intrincs/rdtsc.c
@@ -4,13 +4,10 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
+#include <intrin.h>
- unsigned __int64 __rdtsc(void);
-
- unsigned __int64 __rdtsc(void)
- {
+unsigned __int64 __rdtsc(void)
+{
#ifdef _WIN64
unsigned __int64 val1, val2;
#else
@@ -20,5 +17,5 @@
"rdtsc"
: "=a" (val1), "=d" (val2));
return ((unsigned __int64)val1) | (((unsigned __int64)val2) << 32);
- }
+}
diff --git a/mingw-w64-crt/intrincs/readcr0.c b/mingw-w64-crt/intrincs/readcr0.c
index 7665a9d..6c635e3 100644
--- a/mingw-w64-crt/intrincs/readcr0.c
+++ b/mingw-w64-crt/intrincs/readcr0.c
@@ -4,16 +4,13 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
+#include <intrin.h>
/* Register sizes are different between 32/64 bit mode.
* So we have to do this for _WIN64 and _WIN32 seperatly.
*/
#ifdef _WIN64
- unsigned __int64 __readcr0(void);
-
unsigned __int64 __readcr0(void)
{
unsigned __int64 value;
@@ -23,8 +20,6 @@
return value;
}
#else
- unsigned long __readcr0(void);
-
unsigned long __readcr0(void)
{
unsigned long value;
diff --git a/mingw-w64-crt/intrincs/readcr2.c b/mingw-w64-crt/intrincs/readcr2.c
index f42cf5b..20873ec 100644
--- a/mingw-w64-crt/intrincs/readcr2.c
+++ b/mingw-w64-crt/intrincs/readcr2.c
@@ -4,16 +4,13 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
+#include <intrin.h>
/* Register sizes are different between 32/64 bit mode.
* So we have to do this for _WIN64 and _WIN32 seperatly.
*/
#ifdef _WIN64
- unsigned __int64 __readcr2(void);
-
unsigned __int64 __readcr2(void)
{
unsigned __int64 value;
@@ -23,8 +20,6 @@
return value;
}
#else
- unsigned long __readcr2(void);
-
unsigned long __readcr2(void)
{
unsigned long value;
diff --git a/mingw-w64-crt/intrincs/readcr3.c b/mingw-w64-crt/intrincs/readcr3.c
index 43bfc7d..9538474 100644
--- a/mingw-w64-crt/intrincs/readcr3.c
+++ b/mingw-w64-crt/intrincs/readcr3.c
@@ -4,16 +4,13 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
+#include <intrin.h>
/* Register sizes are different between 32/64 bit mode.
* So we have to do this for _WIN64 and _WIN32 seperatly.
*/
#ifdef _WIN64
- unsigned __int64 __readcr3(void);
-
unsigned __int64 __readcr3(void)
{
unsigned __int64 value;
@@ -23,8 +20,6 @@
return value;
}
#else
- unsigned long __readcr3(void);
-
unsigned long __readcr3(void)
{
unsigned long value;
diff --git a/mingw-w64-crt/intrincs/readcr4.c b/mingw-w64-crt/intrincs/readcr4.c
index 4ef7a14..f60bc5c 100644
--- a/mingw-w64-crt/intrincs/readcr4.c
+++ b/mingw-w64-crt/intrincs/readcr4.c
@@ -4,16 +4,13 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
+#include <intrin.h>
/* Register sizes are different between 32/64 bit mode.
* So we have to do this for _WIN64 and _WIN32 seperatly.
*/
#ifdef _WIN64
- unsigned __int64 __readcr4(void);
-
unsigned __int64 __readcr4(void)
{
unsigned __int64 value;
@@ -23,8 +20,6 @@
return value;
}
#else
- unsigned long __readcr4(void);
-
unsigned long __readcr4(void)
{
unsigned long value;
diff --git a/mingw-w64-crt/intrincs/readcr8.c b/mingw-w64-crt/intrincs/readcr8.c
index c90b4f6..b4e19e4 100644
--- a/mingw-w64-crt/intrincs/readcr8.c
+++ b/mingw-w64-crt/intrincs/readcr8.c
@@ -4,16 +4,13 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
+#include <intrin.h>
/* Register sizes are different between 32/64 bit mode.
* So we have to do this for _WIN64 and _WIN32 seperatly.
*/
#ifdef _WIN64
- unsigned __int64 __readcr8(void);
-
unsigned __int64 __readcr8(void)
{
unsigned __int64 value;
@@ -23,8 +20,6 @@
return value;
}
#else
- unsigned long __readcr8(void);
-
unsigned long __readcr8(void)
{
unsigned long value;
diff --git a/mingw-w64-crt/intrincs/readfsbyte.c b/mingw-w64-crt/intrincs/readfsbyte.c
index 6d12df2..e65ebcb 100644
--- a/mingw-w64-crt/intrincs/readfsbyte.c
+++ b/mingw-w64-crt/intrincs/readfsbyte.c
@@ -1,17 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
/* for x86 only */
- BYTE __readfsbyte(DWORD Offset);
-
- BYTE __readfsbyte(DWORD Offset)
- {
- BYTE ret;
+unsigned char __readfsbyte(unsigned long Offset)
+{
+ unsigned char ret;
__asm__ volatile ("movb %%fs:%1,%0"
: "=r" (ret) ,"=m" ((*(volatile long *) Offset)));
return ret;
- }
+}
diff --git a/mingw-w64-crt/intrincs/readfsdword.c b/mingw-w64-crt/intrincs/readfsdword.c
index 276550b..b1a0c7c 100644
--- a/mingw-w64-crt/intrincs/readfsdword.c
+++ b/mingw-w64-crt/intrincs/readfsdword.c
@@ -1,17 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
/* for x86 only */
- DWORD __readfsdword(DWORD Offset);
-
- DWORD __readfsdword(DWORD Offset)
- {
- DWORD ret;
+unsigned long __readfsdword(unsigned long Offset)
+{
+ unsigned long ret;
__asm__ volatile ("movl %%fs:%1,%0"
: "=r" (ret) ,"=m" ((*(volatile long *) Offset)));
return ret;
- }
+}
diff --git a/mingw-w64-crt/intrincs/readfsword.c b/mingw-w64-crt/intrincs/readfsword.c
index 1a0c071..1646bd6 100644
--- a/mingw-w64-crt/intrincs/readfsword.c
+++ b/mingw-w64-crt/intrincs/readfsword.c
@@ -1,17 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
/* for x86 only */
- WORD __readfsword(DWORD Offset);
-
- WORD __readfsword(DWORD Offset)
- {
- WORD ret;
+unsigned short __readfsword(unsigned long Offset)
+{
+ unsigned short ret;
__asm__ volatile ("movw %%fs:%1,%0"
: "=r" (ret) ,"=m" ((*(volatile long *) Offset)));
return ret;
- }
+}
diff --git a/mingw-w64-crt/intrincs/readgsbyte.c b/mingw-w64-crt/intrincs/readgsbyte.c
index 670276a..e40f1f7 100644
--- a/mingw-w64-crt/intrincs/readgsbyte.c
+++ b/mingw-w64-crt/intrincs/readgsbyte.c
@@ -1,16 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
/* for __x86_64 only */
-
- BYTE __readgsbyte(DWORD Offset)
- {
- BYTE ret;
+unsigned char __readgsbyte(unsigned long Offset)
+{
+ unsigned char ret;
__asm__ volatile ("movb %%gs:%1,%0"
- : "=r" (ret) ,"=m" ((*(volatile long *) (DWORD64) Offset)));
+ : "=r" (ret) ,"=m" ((*(volatile long *) (unsigned __int64) Offset)));
return ret;
- }
+}
diff --git a/mingw-w64-crt/intrincs/readgsdword.c b/mingw-w64-crt/intrincs/readgsdword.c
index 0d5a6e4..18d448a 100644
--- a/mingw-w64-crt/intrincs/readgsdword.c
+++ b/mingw-w64-crt/intrincs/readgsdword.c
@@ -1,16 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
/* for __x86_64 only */
-
- DWORD __readgsdword(DWORD Offset)
- {
- DWORD ret;
+unsigned long __readgsdword(unsigned long Offset)
+{
+ unsigned long ret;
__asm__ volatile ("movl %%gs:%1,%0"
- : "=r" (ret) ,"=m" ((*(volatile long *) (DWORD64) Offset)));
+ : "=r" (ret) ,"=m" ((*(volatile long *) (unsigned __int64) Offset)));
return ret;
- }
+}
diff --git a/mingw-w64-crt/intrincs/readgsqword.c b/mingw-w64-crt/intrincs/readgsqword.c
index dcd8a72..7510913 100644
--- a/mingw-w64-crt/intrincs/readgsqword.c
+++ b/mingw-w64-crt/intrincs/readgsqword.c
@@ -1,16 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
/* for __x86_64 only */
-
- DWORD64 __readgsqword(DWORD Offset)
- {
+unsigned __int64 __readgsqword(unsigned long Offset)
+{
void *ret;
__asm__ volatile ("movq %%gs:%1,%0"
- : "=r" (ret) ,"=m" ((*(volatile long *) (DWORD64) Offset)));
- return (DWORD64) ret;
- }
+ : "=r" (ret) ,"=m" ((*(volatile long *) (unsigned __int64) Offset)));
+ return (unsigned __int64) ret;
+}
diff --git a/mingw-w64-crt/intrincs/readgsword.c b/mingw-w64-crt/intrincs/readgsword.c
index c589900..d2a5476 100644
--- a/mingw-w64-crt/intrincs/readgsword.c
+++ b/mingw-w64-crt/intrincs/readgsword.c
@@ -1,16 +1,11 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
/* for __x86_64 only */
-
- WORD __readgsword(DWORD Offset)
- {
- WORD ret;
+unsigned short __readgsword(unsigned long Offset)
+{
+ unsigned short ret;
__asm__ volatile ("movw %%gs:%1,%0"
- : "=r" (ret) ,"=m" ((*(volatile long *) (DWORD64) Offset)));
+ : "=r" (ret) ,"=m" ((*(volatile long *) (unsigned __int64) Offset)));
return ret;
- }
+}
diff --git a/mingw-w64-crt/intrincs/readmsr.c b/mingw-w64-crt/intrincs/readmsr.c
index 4c417ec..263b328 100644
--- a/mingw-w64-crt/intrincs/readmsr.c
+++ b/mingw-w64-crt/intrincs/readmsr.c
@@ -4,13 +4,10 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
+#include <intrin.h>
- unsigned __int64 __readmsr(unsigned long msr);
-
- unsigned __int64 __readmsr(unsigned long msr)
- {
+unsigned __int64 __readmsr(unsigned long msr)
+{
#ifdef _WIN64
unsigned __int64 val1, val2;
#else
@@ -21,5 +18,5 @@
: "=a" (val1), "=d" (val2)
: "c" (msr));
return ((unsigned __int64) val1) | (((unsigned __int64)val2) << 32);
- }
+}
diff --git a/mingw-w64-crt/intrincs/writecr0.c b/mingw-w64-crt/intrincs/writecr0.c
index 40e73f8..90b1078 100644
--- a/mingw-w64-crt/intrincs/writecr0.c
+++ b/mingw-w64-crt/intrincs/writecr0.c
@@ -4,16 +4,13 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
+#include <intrin.h>
/* Register sizes are different between 32/64 bit mode.
* So we have to do this for _WIN64 and _WIN32 seperatly.
*/
#ifdef _WIN64
- void __writecr0(unsigned __int64 Data);
-
void __writecr0(unsigned __int64 Data)
{
__asm__ __volatile__ (
@@ -23,8 +20,6 @@
: "memory");
}
#else
- void __writecr0(unsigned Data);
-
void __writecr0(unsigned Data)
{
__asm__ __volatile__ (
diff --git a/mingw-w64-crt/intrincs/writecr2.c b/mingw-w64-crt/intrincs/writecr2.c
index b78f6b0..41230fa 100644
--- a/mingw-w64-crt/intrincs/writecr2.c
+++ b/mingw-w64-crt/intrincs/writecr2.c
@@ -4,16 +4,14 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
+#include <intrin.h>
/* Register sizes are different between 32/64 bit mode.
* So we have to do this for _WIN64 and _WIN32 seperatly.
*/
#ifdef _WIN64
- void __writecr2(unsigned __int64 Data);
-
+ void __writecr2(unsigned __int64 Data); /* not in intrin.h */
void __writecr2(unsigned __int64 Data)
{
__asm__ __volatile__ (
@@ -23,8 +21,7 @@
: "memory");
}
#else
- void __writecr2(unsigned Data);
-
+ void __writecr2(unsigned Data); /* not in intrin.h */
void __writecr2(unsigned Data)
{
__asm__ __volatile__ (
diff --git a/mingw-w64-crt/intrincs/writecr3.c b/mingw-w64-crt/intrincs/writecr3.c
index b463bba..8c51a8f 100644
--- a/mingw-w64-crt/intrincs/writecr3.c
+++ b/mingw-w64-crt/intrincs/writecr3.c
@@ -4,16 +4,13 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
+#include <intrin.h>
/* Register sizes are different between 32/64 bit mode.
* So we have to do this for _WIN64 and _WIN32 seperatly.
*/
#ifdef _WIN64
- void __writecr3(unsigned __int64 Data);
-
void __writecr3(unsigned __int64 Data)
{
__asm__ __volatile__ (
@@ -23,8 +20,6 @@
: "memory");
}
#else
- void __writecr3(unsigned Data);
-
void __writecr3(unsigned Data)
{
__asm__ __volatile__ (
diff --git a/mingw-w64-crt/intrincs/writecr4.c b/mingw-w64-crt/intrincs/writecr4.c
index 38291b5..c095413 100644
--- a/mingw-w64-crt/intrincs/writecr4.c
+++ b/mingw-w64-crt/intrincs/writecr4.c
@@ -4,16 +4,13 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
+#include <intrin.h>
/* Register sizes are different between 32/64 bit mode.
* So we have to do this for _WIN64 and _WIN32 seperatly.
*/
#ifdef _WIN64
- void __writecr4(unsigned __int64 Data);
-
void __writecr4(unsigned __int64 Data)
{
__asm__ __volatile__ (
@@ -23,8 +20,6 @@
: "memory");
}
#else
- void __writecr4(unsigned Data);
-
void __writecr4(unsigned Data)
{
__asm__ __volatile__ (
diff --git a/mingw-w64-crt/intrincs/writecr8.c b/mingw-w64-crt/intrincs/writecr8.c
index a36cb62..f37a15f 100644
--- a/mingw-w64-crt/intrincs/writecr8.c
+++ b/mingw-w64-crt/intrincs/writecr8.c
@@ -4,16 +4,13 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
+#include <intrin.h>
/* Register sizes are different between 32/64 bit mode.
* So we have to do this for _WIN64 and _WIN32 seperatly.
*/
#ifdef _WIN64
- void __writecr8(unsigned __int64 Data);
-
void __writecr8(unsigned __int64 Data)
{
__asm__ __volatile__ (
@@ -23,8 +20,6 @@
: "memory");
}
#else
- void __writecr8(unsigned Data);
-
void __writecr8(unsigned Data)
{
__asm__ __volatile__ (
diff --git a/mingw-w64-crt/intrincs/writefsbyte.c b/mingw-w64-crt/intrincs/writefsbyte.c
index ef216aa..428cc53 100644
--- a/mingw-w64-crt/intrincs/writefsbyte.c
+++ b/mingw-w64-crt/intrincs/writefsbyte.c
@@ -1,15 +1,9 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
/* for x86 only */
- VOID __writefsbyte(DWORD Offset,BYTE Data);
-
- VOID __writefsbyte(DWORD Offset,BYTE Data)
- {
+void __writefsbyte(unsigned long Offset, unsigned char Data)
+{
__asm__ volatile ("movb %0,%%fs:%1"
: "=r" (Data) ,"=m" ((*(volatile long *) Offset)));
- }
+}
diff --git a/mingw-w64-crt/intrincs/writefsdword.c b/mingw-w64-crt/intrincs/writefsdword.c
index dde60d2..50b4954 100644
--- a/mingw-w64-crt/intrincs/writefsdword.c
+++ b/mingw-w64-crt/intrincs/writefsdword.c
@@ -1,15 +1,9 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
/* for x86 only */
- VOID __writefsdword(DWORD Offset,DWORD Data);
-
- VOID __writefsdword(DWORD Offset,DWORD Data)
- {
+void __writefsdword(unsigned long Offset, unsigned long Data)
+{
__asm__ volatile ("movl %0,%%fs:%1"
: "=r" (Data) ,"=m" ((*(volatile long *) Offset)));
- }
+}
diff --git a/mingw-w64-crt/intrincs/writefsword.c b/mingw-w64-crt/intrincs/writefsword.c
index 2834d17..a8177d2 100644
--- a/mingw-w64-crt/intrincs/writefsword.c
+++ b/mingw-w64-crt/intrincs/writefsword.c
@@ -1,15 +1,9 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
/* for x86 only */
- VOID __writefsword(DWORD Offset,WORD Data);
-
- VOID __writefsword(DWORD Offset,WORD Data)
- {
+void __writefsword(unsigned long Offset, unsigned short Data)
+{
__asm__ volatile ("movw %0,%%fs:%1"
: "=r" (Data) ,"=m" ((*(volatile long *) Offset)));
- }
+}
diff --git a/mingw-w64-crt/intrincs/writegsbyte.c b/mingw-w64-crt/intrincs/writegsbyte.c
index 6199d96..0e8e794 100644
--- a/mingw-w64-crt/intrincs/writegsbyte.c
+++ b/mingw-w64-crt/intrincs/writegsbyte.c
@@ -1,14 +1,9 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
/* for __x86_64 only */
-
- VOID __writegsbyte(DWORD Offset,BYTE Data)
- {
+void __writegsbyte(unsigned long Offset, unsigned char Data)
+{
__asm__ volatile ("movb %0,%%gs:%1"
- : "=r" (Data) ,"=m" ((*(volatile long *) (DWORD64) Offset)));
- }
+ : "=r" (Data) ,"=m" ((*(volatile long *) (unsigned __int64) Offset)));
+}
diff --git a/mingw-w64-crt/intrincs/writegsdword.c b/mingw-w64-crt/intrincs/writegsdword.c
index edd51f7..8ecca19 100644
--- a/mingw-w64-crt/intrincs/writegsdword.c
+++ b/mingw-w64-crt/intrincs/writegsdword.c
@@ -1,14 +1,9 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
/* for __x86_64 only */
-
- VOID __writegsdword(DWORD Offset,DWORD Data)
- {
+void __writegsdword(unsigned long Offset, unsigned long Data)
+{
__asm__ volatile ("movl %0,%%gs:%1"
- : "=r" (Data) ,"=m" ((*(volatile long *) (DWORD64) Offset)));
- }
+ : "=r" (Data) ,"=m" ((*(volatile long *) (unsigned __int64) Offset)));
+}
diff --git a/mingw-w64-crt/intrincs/writegsqword.c b/mingw-w64-crt/intrincs/writegsqword.c
index fbc3402..7ff6f0d 100644
--- a/mingw-w64-crt/intrincs/writegsqword.c
+++ b/mingw-w64-crt/intrincs/writegsqword.c
@@ -1,14 +1,9 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
/* for __x86_64 only */
-
- VOID __writegsqword(DWORD Offset,DWORD64 Data)
- {
+void __writegsqword(unsigned long Offset, unsigned __int64 Data)
+{
__asm__ volatile ("movq %0,%%gs:%1"
- : "=r" (Data) ,"=m" ((*(volatile long *) (DWORD64) Offset)));
- }
+ : "=r" (Data) ,"=m" ((*(volatile long *) (unsigned __int64) Offset)));
+}
diff --git a/mingw-w64-crt/intrincs/writegsword.c b/mingw-w64-crt/intrincs/writegsword.c
index cadb914..6b5fb37 100644
--- a/mingw-w64-crt/intrincs/writegsword.c
+++ b/mingw-w64-crt/intrincs/writegsword.c
@@ -1,14 +1,9 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define __CRT__NO_INLINE
-#include <windows.h>
+#include <intrin.h>
/* for __x86_64 only */
-
- VOID __writegsword(DWORD Offset,WORD Data)
- {
+void __writegsword(unsigned long Offset, unsigned short Data)
+{
__asm__ volatile ("movw %0,%%gs:%1"
- : "=r" (Data) ,"=m" ((*(volatile long *) (DWORD64) Offset)));
- }
+ : "=r" (Data) ,"=m" ((*(volatile long *) (unsigned __int64) Offset)));
+}
diff --git a/mingw-w64-crt/intrincs/writemsr.c b/mingw-w64-crt/intrincs/writemsr.c
index 2cd6973..552b564 100644
--- a/mingw-w64-crt/intrincs/writemsr.c
+++ b/mingw-w64-crt/intrincs/writemsr.c
@@ -4,17 +4,14 @@
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
-#define __CRT__NO_INLINE
-#include <_mingw.h>
+#include <intrin.h>
- void __writemsr (unsigned long msr, unsigned __int64 Value);
-
- void __writemsr (unsigned long msr, unsigned __int64 Value)
- {
+void __writemsr (unsigned long msr, unsigned __int64 Value)
+{
unsigned long val1 = Value, val2 = Value >> 32;
__asm__ __volatile__ (
"wrmsr"
:
: "c" (msr), "a" (val1), "d" (val2));
- }
+}