Please review, i'll commit it, just need an OK.
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 5aa4900..7245956 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -1359,29 +1359,11 @@ libarm32/libvfw32.a: libarm32/vfw32.mri libarm32/libmsvfw32.a libarm32/libavifil
dx32_DATA =
dx32_DATA += libarm32/libxinput.a
-dx32_DATA += libarm32/libxapofx.a
-dx32_DATA += libarm32/libx3daudio.a
-dx32_DATA += libarm32/libd3dx9.a
-dx32_DATA += libarm32/libd3dx10.a
-dx32_DATA += libarm32/libd3dx11.a
-dx32_DATA += libarm32/libd3dcsxd.a
dx32_DATA += libarm32/libd3dcompiler.a
-libarm32/libxinput.a: libarm32/$(xinput).def
+libarm32/libxinput.a: libarm32/xinput1_4.def
$(DTDEFARM32) $<
-libarm32/libxapofx.a: libarm32/$(xapofx).def
- $(DTDEFARM32) $<
-libarm32/libx3daudio.a: libarm32/$(x3daudio).def
- $(DTDEFARM32) $<
-libarm32/libd3dx9.a: libarm32/$(d3dx9).def
- $(DTDEFARM32) $<
-libarm32/libd3dx10.a: libarm32/$(d3dx10).def
- $(DTDEFARM32) $<
-libarm32/libd3dx11.a: libarm32/$(d3dx11).def
- $(DTDEFARM32) $<
-libarm32/libd3dcsxd.a: libarm32/$(d3dcsxd).def
- $(DTDEFARM32) $<
-libarm32/libd3dcompiler.a: libarm32/$(d3dcompiler).def
+libarm32/libd3dcompiler.a: libarm32/d3dcompiler_47.def
$(DTDEFARM32) $<
endif
diff --git a/mingw-w64-crt/Makefile.in b/mingw-w64-crt/Makefile.in
index fcdf276..2d0c2fe 100644
--- a/mingw-w64-crt/Makefile.in
+++ b/mingw-w64-crt/Makefile.in
@@ -5584,10 +5584,8 @@ winrtlibs = \
@LIB32_TRUE@ lib32/libx3daudio.a lib32/libd3dx9.a \
@LIB32_TRUE@ lib32/libd3dx10.a lib32/libd3dx11.a \
@LIB32_TRUE@ lib32/libd3dcsxd.a lib32/libd3dcompiler.a
-@LIBARM32_TRUE@dx32_DATA = libarm32/libxinput.a libarm32/libxapofx.a \
-@LIBARM32_TRUE@ libarm32/libx3daudio.a libarm32/libd3dx9.a \
-@LIBARM32_TRUE@ libarm32/libd3dx10.a libarm32/libd3dx11.a \
-@LIBARM32_TRUE@ libarm32/libd3dcsxd.a libarm32/libd3dcompiler.a
+@LIBARM32_TRUE@dx32_DATA = libarm32/libxinput.a \
+@LIBARM32_TRUE@ libarm32/libd3dcompiler.a
# End 32-bit runtime
# ##########
@@ -48374,21 +48372,9 @@ lib64/DFP_src_%.dfp.obj: math/DFP/mpdecimal/libmpdec/%.c
@LIBARM32_TRUE@ $(AR) -M < $<
@LIBARM32_TRUE@ $(RANLIB) $@
-@LIBARM32_TRUE@libarm32/libxinput.a: libarm32/$(xinput).def
+@LIBARM32_TRUE@libarm32/libxinput.a: libarm32/xinput1_4.def
@LIBARM32_TRUE@ $(DTDEFARM32) $<
-@LIBARM32_TRUE@libarm32/libxapofx.a: libarm32/$(xapofx).def
-@LIBARM32_TRUE@ $(DTDEFARM32) $<
-@LIBARM32_TRUE@libarm32/libx3daudio.a: libarm32/$(x3daudio).def
-@LIBARM32_TRUE@ $(DTDEFARM32) $<
-@LIBARM32_TRUE@libarm32/libd3dx9.a: libarm32/$(d3dx9).def
-@LIBARM32_TRUE@ $(DTDEFARM32) $<
-@LIBARM32_TRUE@libarm32/libd3dx10.a: libarm32/$(d3dx10).def
-@LIBARM32_TRUE@ $(DTDEFARM32) $<
-@LIBARM32_TRUE@libarm32/libd3dx11.a: libarm32/$(d3dx11).def
-@LIBARM32_TRUE@ $(DTDEFARM32) $<
-@LIBARM32_TRUE@libarm32/libd3dcsxd.a: libarm32/$(d3dcsxd).def
-@LIBARM32_TRUE@ $(DTDEFARM32) $<
-@LIBARM32_TRUE@libarm32/libd3dcompiler.a: libarm32/$(d3dcompiler).def
+@LIBARM32_TRUE@libarm32/libd3dcompiler.a: libarm32/d3dcompiler_47.def
@LIBARM32_TRUE@ $(DTDEFARM32) $<
# End ARM 32-bit runtime
diff --git a/mingw-w64-crt/math/sqrt.def.h b/mingw-w64-crt/math/sqrt.def.h
index 431fb3d..dc48905 100644
--- a/mingw-w64-crt/math/sqrt.def.h
+++ b/mingw-w64-crt/math/sqrt.def.h
@@ -54,7 +54,6 @@ asm(".def __fsqrt_internal; .scl 2; .type 32; .endef\n"
"\t.text\n"
"\t.align 4\n"
"\t.globl __fsqrt_internal\n"
- //"\t.type __fsqrt_internal,2\n"
"__fsqrt_internal:\n"
#if _NEW_COMPLEX_FLOAT
"\t" "fsqrts s0, s0\n"
diff --git a/mingw-w64-crt/misc/feclearexcept.c b/mingw-w64-crt/misc/feclearexcept.c
index 63bf999..d6c65d2 100644
--- a/mingw-w64-crt/misc/feclearexcept.c
+++ b/mingw-w64-crt/misc/feclearexcept.c
@@ -5,6 +5,7 @@
*/
#include <fenv.h>
+#if !(defined(_ARM_) || defined(__arm__))
int __mingw_has_sse (void);
int __mingw_has_sse(void)
@@ -31,6 +32,7 @@ int __mingw_has_sse(void)
return 1;
return 0;
}
+#endif /* !(defined(_ARM_) || defined(__arm__)) */
/* 7.6.2.1
The feclearexcept function clears the supported exceptions
@@ -38,9 +40,13 @@ int __mingw_has_sse(void)
int feclearexcept (int excepts)
{
+#if defined(_ARM_) || defined(__arm__)
fenv_t _env;
+ __asm__ volatile ("fmrx %0, FPSCR" : "=r" (_env));
+ _env.__cw &= ~(excepts & FE_ALL_EXCEPT);
+ __asm__ volatile ("fmxr FPSCR, %0" : : "r" (_env));
+#else
int _mxcsr;
-
if (excepts == FE_ALL_EXCEPT)
{
__asm__ volatile ("fnclex");
@@ -57,5 +63,6 @@ int feclearexcept (int excepts)
_mxcsr &= ~(((excepts & FE_ALL_EXCEPT)));
__asm__ volatile ("ldmxcsr %0" : : "m" (_mxcsr));
}
+#endif /* defined(_ARM_) || defined(__arm__) */
return (0);
}
diff --git a/mingw-w64-crt/misc/fegetenv.c b/mingw-w64-crt/misc/fegetenv.c
index 6e08d77..96f57e4 100644
--- a/mingw-w64-crt/misc/fegetenv.c
+++ b/mingw-w64-crt/misc/fegetenv.c
@@ -5,7 +5,9 @@
*/
#include <fenv.h>
+#if !(defined(_ARM_) || defined(__arm__))
int __mingw_has_sse (void);
+#endif /* !(defined(_ARM_) || defined(__arm__)) */
/* 7.6.4.1
The fegetenv function stores the current floating-point environment
@@ -13,6 +15,9 @@ int __mingw_has_sse (void);
int fegetenv (fenv_t * envp)
{
+#if defined(_ARM_) || defined(__arm__)
+ __asm__ volatile ("fmrx %0, FPSCR" : "=r" (*envp));
+#else
__asm__ __volatile__ ("fnstenv %0;": "=m" (*envp));
/* fnstenv sets control word to non-stop for all exceptions, so we
need to reload our env to restore the original mask. */
@@ -24,6 +29,7 @@ int fegetenv (fenv_t * envp)
envp->__unused0 = (((unsigned int) _mxcsr) >> 16);
envp->__unused1 = (((unsigned int) _mxcsr) & 0xffff);
}
+#endif /* defined(_ARM_) || defined(__arm__) */
return 0;
}
diff --git a/mingw-w64-crt/misc/fegetexceptflag.c b/mingw-w64-crt/misc/fegetexceptflag.c
index aa55826..e8dae96 100644
--- a/mingw-w64-crt/misc/fegetexceptflag.c
+++ b/mingw-w64-crt/misc/fegetexceptflag.c
@@ -5,7 +5,9 @@
*/
#include <fenv.h>
+#if !(defined(_ARM_) || defined(__arm__))
extern int __mingw_has_sse (void);
+#endif /* !(defined(_ARM_) || defined(__arm__)) */
/* 7.6.2.2
The fegetexceptflag function stores an implementation-defined
@@ -14,6 +16,11 @@ extern int __mingw_has_sse (void);
int fegetexceptflag (fexcept_t * flagp, int excepts)
{
+#if defined(_ARM_) || defined(__arm__)
+ fenv_t _env;
+ __asm__ volatile ("fmrx %0, FPSCR" : "=r" (_env));
+ *flagp = _env.__cw & excepts & FE_ALL_EXCEPT;
+#else
int _mxcsr;
unsigned short _status;
@@ -23,5 +30,6 @@ int fegetexceptflag (fexcept_t * flagp, int excepts)
__asm__ volatile ("stmxcsr %0" : "=m" (_mxcsr));
*flagp = (_mxcsr | _status) & excepts & FE_ALL_EXCEPT;
+#endif /* defined(_ARM_) || defined(__arm__) */
return 0;
}
diff --git a/mingw-w64-crt/misc/fegetround.c b/mingw-w64-crt/misc/fegetround.c
index d1bae6e..b4b757b 100644
--- a/mingw-w64-crt/misc/fegetround.c
+++ b/mingw-w64-crt/misc/fegetround.c
@@ -12,8 +12,13 @@
int
fegetround (void)
{
+#if defined(_ARM_) || defined(__arm__)
+ fenv_t _env;
+ __asm__ volatile ("fmrx %0, FPSCR" : "=r" (_env));
+ return (_env.__cw & (FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO));
+#else
int _control;
-
__asm__ volatile ("fnstcw %0" : "=m" (*&_control));
return (_control & (FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO));
+#endif /* defined(_ARM_) || defined(__arm__) */
}
diff --git a/mingw-w64-crt/misc/feholdexcept.c b/mingw-w64-crt/misc/feholdexcept.c
index c2d8630..a2b7834 100644
--- a/mingw-w64-crt/misc/feholdexcept.c
+++ b/mingw-w64-crt/misc/feholdexcept.c
@@ -13,9 +13,17 @@
int feholdexcept (fenv_t * envp)
{
+#if defined(_ARM_) || defined(__arm__)
+ fenv_t _env;
+ __asm__ volatile ("fmrx %0, FPSCR" : "=r" (_env));
+ envp->__cw = _env.__cw;
+ _env.__cw &= ~(FE_ALL_EXCEPT);
+ __asm__ volatile ("fmxr FPSCR, %0" : : "r" (_env));
+#else
__asm__ __volatile__ ("fnstenv %0;" : "=m" (* envp)); /* save current into envp */
/* fnstenv sets control word to non-stop for all exceptions, so all we
need to do is clear the exception flags. */
__asm__ __volatile__ ("fnclex");
+#endif /* defined(_ARM_) || defined(__arm__) */
return 0;
}
diff --git a/mingw-w64-crt/misc/feraiseexcept.c b/mingw-w64-crt/misc/feraiseexcept.c
index 4a39966..5175026 100644
--- a/mingw-w64-crt/misc/feraiseexcept.c
+++ b/mingw-w64-crt/misc/feraiseexcept.c
@@ -16,9 +16,15 @@
int feraiseexcept (int excepts)
{
fenv_t _env;
+#if defined(_ARM_) || defined(__arm__)
+ __asm__ volatile ("fmrx %0, FPSCR" : "=r" (_env));
+ _env.__cw |= excepts & FE_ALL_EXCEPT;
+ __asm__ volatile ("fmxr FPSCR, %0" : : "r" (_env));
+#else
__asm__ volatile ("fnstenv %0;" : "=m" (_env));
_env.__status_word |= excepts & FE_ALL_EXCEPT;
__asm__ volatile ("fldenv %0;"
"fwait;" : : "m" (_env));
+#endif /* defined(_ARM_) || defined(__arm__) */
return 0;
}
diff --git a/mingw-w64-crt/misc/fesetenv.c b/mingw-w64-crt/misc/fesetenv.c
index d523d90..d16dd65 100644
--- a/mingw-w64-crt/misc/fesetenv.c
+++ b/mingw-w64-crt/misc/fesetenv.c
@@ -7,7 +7,9 @@
#include <fenv.h>
#include <float.h>
+#if !(defined(_ARM_) || defined(__arm__))
extern int __mingw_has_sse (void);
+#endif /* !(defined(_ARM_) || defined(__arm__)) */
/* 7.6.4.3
The fesetenv function establishes the floating-point environment
@@ -24,6 +26,13 @@ extern void _fpreset(void);
int fesetenv (const fenv_t * envp)
{
+#if defined(_ARM_) || defined(__arm__)
+ if (envp == FE_DFL_ENV)
+ /* Use the choice made at app startup */
+ _fpreset();
+ else
+ __asm__ volatile ("fmxr FPSCR, %0" : : "r" (*envp));
+#else
if (envp == FE_PC64_ENV)
/*
* fninit initializes the control register to 0x37f,
@@ -61,5 +70,6 @@ int fesetenv (const fenv_t * envp)
__asm__ volatile ("ldmxcsr %0" : : "m" (*&_mxcsr));
}
+#endif /* defined(_ARM_) || defined(__arm__) */
return 0;
}
diff --git a/mingw-w64-crt/misc/fesetexceptflag.c b/mingw-w64-crt/misc/fesetexceptflag.c
index cec7b7c..cb9ba3f 100644
--- a/mingw-w64-crt/misc/fesetexceptflag.c
+++ b/mingw-w64-crt/misc/fesetexceptflag.c
@@ -5,7 +5,9 @@
*/
#include <fenv.h>
+#if !(defined(_ARM_) || defined(__arm__))
extern int __mingw_has_sse (void);
+#endif /* !(defined(_ARM_) || defined(__arm__)) */
/* 7.6.2.4
The fesetexceptflag function sets the complete status for those
@@ -21,6 +23,13 @@ int fesetexceptflag (const fexcept_t * flagp, int excepts)
fenv_t _env;
excepts &= FE_ALL_EXCEPT;
+
+#if defined(_ARM_) || defined(__arm__)
+ __asm__ volatile ("fmrx %0, FPSCR" : "=r" (_env));
+ _env.__cw &= ~excepts;
+ _env.__cw |= (*flagp & excepts);
+ __asm__ volatile ("fmxr FPSCR, %0" : : "r" (_env));
+#else
__asm__ volatile ("fnstenv %0;" : "=m" (_env));
_env.__status_word &= ~excepts;
_env.__status_word |= (*flagp & excepts);
@@ -35,5 +44,6 @@ int fesetexceptflag (const fexcept_t * flagp, int excepts)
__asm__ volatile ("ldmxcsr %0" : : "m" (sse_cw));
}
+#endif /* defined(_ARM_) || defined(__arm__) */
return 0;
}
diff --git a/mingw-w64-crt/misc/fesetround.c b/mingw-w64-crt/misc/fesetround.c
index acb2e0e..74dc355 100644
--- a/mingw-w64-crt/misc/fesetround.c
+++ b/mingw-w64-crt/misc/fesetround.c
@@ -5,7 +5,9 @@
*/
#include <fenv.h>
+#if !(defined(_ARM_) || defined(__arm__))
int __mingw_has_sse (void);
+#endif /* !(defined(_ARM_) || defined(__arm__)) */
/* 7.6.3.2
The fesetround function establishes the rounding direction
@@ -15,6 +17,15 @@ int __mingw_has_sse (void);
int fesetround (int mode)
{
+#if defined(_ARM_) || defined(__arm__)
+ fenv_t _env;
+ if ((mode & ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO)) != 0)
+ return -1;
+ __asm__ volatile ("fmrx %0, FPSCR" : "=r" (_env));
+ _env.__cw &= ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO);
+ _env.__cw |= mode;
+ __asm__ volatile ("fmxr FPSCR, %0" : : "r" (_env));
+#else
unsigned short _cw;
if ((mode & ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO))
!= 0)
@@ -33,5 +44,6 @@ int fesetround (int mode)
mxcsr |= mode << 3;
__asm__ volatile ("ldmxcsr %0" : : "m" (*&mxcsr));
}
+#endif /* defined(_ARM_) || defined(__arm__) */
return 0;
}
diff --git a/mingw-w64-crt/misc/fetestexcept.c b/mingw-w64-crt/misc/fetestexcept.c
index 12d22da..f27d535 100644
--- a/mingw-w64-crt/misc/fetestexcept.c
+++ b/mingw-w64-crt/misc/fetestexcept.c
@@ -6,7 +6,9 @@
#include <fenv.h>
+#if !(defined(_ARM_) || defined(__arm__))
extern int __mingw_has_sse (void);
+#endif /* !(defined(_ARM_) || defined(__arm__)) */
/* 7.6.2.5
The fetestexcept function determines which of a specified subset of
@@ -18,6 +20,11 @@ extern int __mingw_has_sse (void);
int fetestexcept (int excepts)
{
+#if defined(_ARM_) || defined(__arm__)
+ fenv_t _env;
+ __asm__ volatile ("fmrx %0, FPSCR" : "=r" (_env));
+ return _env.__cw & excepts & FE_ALL_EXCEPT;
+#else
unsigned short _sw;
__asm__ __volatile__ ("fnstsw %%ax" : "=a" (_sw));
@@ -27,6 +34,6 @@ int fetestexcept (int excepts)
__asm__ __volatile__ ("stmxcsr %0;" : "=m" (sse_sw));
_sw |= sse_sw;
}
-
return _sw & excepts & FE_ALL_EXCEPT;
+#endif /* defined(_ARM_) || defined(__arm__) */
}
diff --git a/mingw-w64-crt/misc/winbs_uint64.c b/mingw-w64-crt/misc/winbs_uint64.c
index 7592ab2..6eb475d 100644
--- a/mingw-w64-crt/misc/winbs_uint64.c
+++ b/mingw-w64-crt/misc/winbs_uint64.c
@@ -2,11 +2,11 @@ unsigned long long __cdecl _byteswap_uint64(unsigned long long _Int64);
unsigned long long __cdecl _byteswap_uint64(unsigned long long _Int64)
{
-#ifdef _WIN64
+#if defined(_AMD64_) || defined(__x86_64__)
unsigned long long retval;
__asm__ __volatile__ ("bswapq %[retval]" : [retval] "=rm" (retval) : "[retval]" (_Int64));
return retval;
-#else
+#elif defined(_X86_) || defined(__i386__)
union {
long long int64part;
struct {
@@ -19,5 +19,20 @@ unsigned long long __cdecl _byteswap_uint64(unsigned long long _Int64)
"bswapl %[hipart]\n"
: [lowpart] "=rm" (retval.hipart), [hipart] "=rm" (retval.lowpart) : "[lowpart]" (retval.lowpart), "[hipart]" (retval.hipart));
return retval.int64part;
+#else
+ unsigned char *b = (void*)&_Int64;
+ unsigned char tmp;
+ tmp = b[0];
+ b[0] = b[7];
+ b[7] = tmp;
+ tmp = b[1];
+ b[1] = b[6];
+ b[6] = tmp;
+ tmp = b[2];
+ b[2] = b[5];
+ b[5] = tmp;
+ tmp = b[3];
+ b[3] = b[4];
+ b[4] = tmp;
#endif
}
diff --git a/mingw-w64-crt/misc/winbs_ulong.c b/mingw-w64-crt/misc/winbs_ulong.c
index ed26c2d..5fb5613 100644
--- a/mingw-w64-crt/misc/winbs_ulong.c
+++ b/mingw-w64-crt/misc/winbs_ulong.c
@@ -3,6 +3,17 @@ unsigned long __cdecl _byteswap_ulong (unsigned long _Long);
unsigned long __cdecl _byteswap_ulong (unsigned long _Long)
{
unsigned long retval;
+#if defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__)
__asm__ __volatile__ ("bswapl %[retval]" : [retval] "=rm" (retval) : "[retval]" (_Long));
+#else
+ unsigned char *b = (void*)&_Long;
+ unsigned char tmp;
+ tmp = b[0];
+ b[0] = b[3];
+ b[3] = tmp;
+ tmp = b[1];
+ b[1] = b[2];
+ b[2] = tmp;
+#endif /* defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__) */
return retval;
}
diff --git a/mingw-w64-crt/misc/winbs_ushort.c b/mingw-w64-crt/misc/winbs_ushort.c
index b05345f..8773c49 100644
--- a/mingw-w64-crt/misc/winbs_ushort.c
+++ b/mingw-w64-crt/misc/winbs_ushort.c
@@ -3,6 +3,14 @@ unsigned short __cdecl _byteswap_ushort(unsigned short _Short);
unsigned short __cdecl _byteswap_ushort(unsigned short _Short)
{
unsigned short retval;
+#if defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__)
__asm__ __volatile__ ("rorw $8, %w[retval]" : [retval] "=rm" (retval) : "[retval]" (_Short));
+#else
+ unsigned char *b = (void*)&_Short;
+ unsigned char tmp;
+ tmp = b[0];
+ b[0] = b[1];
+ b[1] = tmp;
+#endif /* defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__) */
return retval;
}
diff --git a/mingw-w64-headers/crt/fenv.h b/mingw-w64-headers/crt/fenv.h
index 168926a..3339337 100644
--- a/mingw-w64-headers/crt/fenv.h
+++ b/mingw-w64-headers/crt/fenv.h
@@ -8,7 +8,27 @@
#include <crtdefs.h>
+#if defined(_ARM_) || defined(__arm__)
+
/* FPU status word exception flags */
+#define FE_INVALID 0x01
+#define FE_DIVBYZERO 0x02
+#define FE_OVERFLOW 0x04
+#define FE_UNDERFLOW 0x08
+#define FE_INEXACT 0x10
+#define FE_ALL_EXCEPT (FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT)
+
+/* FPU control word rounding flags */
+#define FE_TONEAREST 0x00000000
+#define FE_UPWARD 0x00400000
+#define FE_DOWNWARD 0x00800000
+#define FE_TOWARDZERO 0x00c00000
+
+/* Amount to shift by to convert an exception to a mask bit. */
+#define FE_EXCEPT_SHIFT 0x08
+
+#else
+
#define FE_INVALID 0x01
#define FE_DENORMAL 0x02
#define FE_DIVBYZERO 0x04
@@ -36,7 +56,26 @@
to get MXCSR rounding flags, */
#define __MXCSR_ROUND_FLAG_SHIFT 3
+#endif /* defined(_ARM_) || defined(__arm__) */
+
#ifndef RC_INVOKED
+
+#if defined(_ARM_) || defined(__arm__)
+
+/* Type representing exception flags. */
+typedef unsigned int fexcept_t;
+
+/* Type representing floating-point environment. */
+typedef struct
+{
+ unsigned int __cw;
+} fenv_t;
+
+/* If the default argument is used we use this value. */
+#define FE_DFL_ENV ((const fenv_t *) -1l)
+
+#else
+
/*
For now, support only for the basic abstraction of flags that are
either set or clear. fexcept_t could be structure that holds more
@@ -79,6 +118,8 @@ typedef struct
fesetenv will use the environment set at app startup.*/
#define FE_DFL_ENV ((const fenv_t *) 0)
+#endif /* defined(_ARM_) || defined(__arm__) */
+
#ifdef __cplusplus
extern "C" {
#endif
------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public