ReactOS  0.4.14-dev-98-gb0d4763
float.h File Reference
#include <crtdefs.h>
Include dependency graph for float.h:

Go to the source code of this file.

Macros

#define _MCW_EM   0x0008001F /* Error masks */
 
#define _MCW_IC   0x00040000 /* Infinity */
 
#define _MCW_RC   0x00000300 /* Rounding */
 
#define _MCW_PC   0x00030000 /* Precision */
 
#define _MCW_DN   0x03000000 /* Denormal */
 
#define _EM_INVALID   0x00000010
 
#define _EM_DENORMAL   0x00080000
 
#define _EM_ZERODIVIDE   0x00000008
 
#define _EM_OVERFLOW   0x00000004
 
#define _EM_UNDERFLOW   0x00000002
 
#define _EM_INEXACT   0x00000001
 
#define _IC_AFFINE   0x00040000
 
#define _IC_PROJECTIVE   0x00000000
 
#define _RC_CHOP   0x00000300
 
#define _RC_UP   0x00000200
 
#define _RC_DOWN   0x00000100
 
#define _RC_NEAR   0x00000000
 
#define _PC_24   0x00020000
 
#define _PC_53   0x00010000
 
#define _PC_64   0x00000000
 
#define __MINGW_FPCLASS_DEFINED   1
 
#define _FPCLASS_SNAN   0x0001 /* Signaling "Not a Number" */
 
#define _FPCLASS_QNAN   0x0002 /* Quiet "Not a Number" */
 
#define _FPCLASS_NINF   0x0004 /* Negative Infinity */
 
#define _FPCLASS_NN   0x0008 /* Negative Normal */
 
#define _FPCLASS_ND   0x0010 /* Negative Denormal */
 
#define _FPCLASS_NZ   0x0020 /* Negative Zero */
 
#define _FPCLASS_PZ   0x0040 /* Positive Zero */
 
#define _FPCLASS_PD   0x0080 /* Positive Denormal */
 
#define _FPCLASS_PN   0x0100 /* Positive Normal */
 
#define _FPCLASS_PINF   0x0200 /* Positive Infinity */
 
#define _SW_UNEMULATED   0x0040 /* unemulated instruction */
 
#define _SW_SQRTNEG   0x0080 /* square root of a neg number */
 
#define _SW_STACKOVERFLOW   0x0200 /* FP stack overflow */
 
#define _SW_STACKUNDERFLOW   0x0400 /* FP stack underflow */
 
#define _FPE_INVALID   0x81
 
#define _FPE_DENORMAL   0x82
 
#define _FPE_ZERODIVIDE   0x83
 
#define _FPE_OVERFLOW   0x84
 
#define _FPE_UNDERFLOW   0x85
 
#define _FPE_INEXACT   0x86
 
#define _FPE_UNEMULATED   0x87
 
#define _FPE_SQRTNEG   0x88
 
#define _FPE_STACKOVERFLOW   0x8a
 
#define _FPE_STACKUNDERFLOW   0x8b
 
#define _FPE_EXPLICITGEN   0x8c /* raise( SIGFPE ); */
 
#define _clear87   _clearfp
 
#define _status87   _statusfp
 
#define _fpecode   (*(__fpecode()))
 

Functions

__MINGW_NOTHROW _CRTIMP unsigned int __cdecl _controlfp (_In_ unsigned int unNew, _In_ unsigned int unMask)
 
__MINGW_NOTHROW _CRTIMP unsigned int __cdecl _control87 (_In_ unsigned int unNew, _In_ unsigned int unMask)
 
__MINGW_NOTHROW _CRTIMP unsigned int __cdecl _clearfp (void)
 
__MINGW_NOTHROW _CRTIMP unsigned int __cdecl _statusfp (void)
 
__MINGW_NOTHROW void __cdecl _fpreset (void)
 
__MINGW_NOTHROW void __cdecl fpreset (void)
 
__MINGW_NOTHROW _CRTIMP int *__cdecl __fpecode (void)
 
_Check_return_ __MINGW_NOTHROW _CRTIMP double __cdecl _chgsign (_In_ double)
 
_Check_return_ __MINGW_NOTHROW _CRTIMP double __cdecl _copysign (_In_ double, _In_ double)
 
_Check_return_ __MINGW_NOTHROW _CRTIMP double __cdecl _logb (_In_ double)
 
_Check_return_ __MINGW_NOTHROW _CRTIMP double __cdecl _nextafter (_In_ double, _In_ double)
 
_Check_return_ __MINGW_NOTHROW _CRTIMP double __cdecl _scalb (_In_ double, _In_ long)
 
_Check_return_ __MINGW_NOTHROW _CRTIMP int __cdecl _finite (_In_ double)
 
_Check_return_ __MINGW_NOTHROW _CRTIMP int __cdecl _fpclass (_In_ double)
 
_Check_return_ __MINGW_NOTHROW _CRTIMP int __cdecl _isnan (_In_ double)
 

Macro Definition Documentation

◆ __MINGW_FPCLASS_DEFINED

#define __MINGW_FPCLASS_DEFINED   1

Definition at line 67 of file float.h.

◆ _clear87

#define _clear87   _clearfp

Definition at line 127 of file float.h.

◆ _EM_DENORMAL

#define _EM_DENORMAL   0x00080000

Definition at line 48 of file float.h.

◆ _EM_INEXACT

#define _EM_INEXACT   0x00000001

Definition at line 52 of file float.h.

◆ _EM_INVALID

#define _EM_INVALID   0x00000010

Definition at line 47 of file float.h.

◆ _EM_OVERFLOW

#define _EM_OVERFLOW   0x00000004

Definition at line 50 of file float.h.

◆ _EM_UNDERFLOW

#define _EM_UNDERFLOW   0x00000002

Definition at line 51 of file float.h.

◆ _EM_ZERODIVIDE

#define _EM_ZERODIVIDE   0x00000008

Definition at line 49 of file float.h.

◆ _FPCLASS_ND

#define _FPCLASS_ND   0x0010 /* Negative Denormal */

Definition at line 72 of file float.h.

◆ _FPCLASS_NINF

#define _FPCLASS_NINF   0x0004 /* Negative Infinity */

Definition at line 70 of file float.h.

◆ _FPCLASS_NN

#define _FPCLASS_NN   0x0008 /* Negative Normal */

Definition at line 71 of file float.h.

◆ _FPCLASS_NZ

#define _FPCLASS_NZ   0x0020 /* Negative Zero */

Definition at line 73 of file float.h.

◆ _FPCLASS_PD

#define _FPCLASS_PD   0x0080 /* Positive Denormal */

Definition at line 75 of file float.h.

◆ _FPCLASS_PINF

#define _FPCLASS_PINF   0x0200 /* Positive Infinity */

Definition at line 77 of file float.h.

◆ _FPCLASS_PN

#define _FPCLASS_PN   0x0100 /* Positive Normal */

Definition at line 76 of file float.h.

◆ _FPCLASS_PZ

#define _FPCLASS_PZ   0x0040 /* Positive Zero */

Definition at line 74 of file float.h.

◆ _FPCLASS_QNAN

#define _FPCLASS_QNAN   0x0002 /* Quiet "Not a Number" */

Definition at line 69 of file float.h.

◆ _FPCLASS_SNAN

#define _FPCLASS_SNAN   0x0001 /* Signaling "Not a Number" */

Definition at line 68 of file float.h.

◆ _FPE_DENORMAL

#define _FPE_DENORMAL   0x82

Definition at line 88 of file float.h.

◆ _FPE_EXPLICITGEN

#define _FPE_EXPLICITGEN   0x8c /* raise( SIGFPE ); */

Definition at line 97 of file float.h.

◆ _FPE_INEXACT

#define _FPE_INEXACT   0x86

Definition at line 92 of file float.h.

◆ _FPE_INVALID

#define _FPE_INVALID   0x81

Definition at line 87 of file float.h.

◆ _FPE_OVERFLOW

#define _FPE_OVERFLOW   0x84

Definition at line 90 of file float.h.

◆ _FPE_SQRTNEG

#define _FPE_SQRTNEG   0x88

Definition at line 94 of file float.h.

◆ _FPE_STACKOVERFLOW

#define _FPE_STACKOVERFLOW   0x8a

Definition at line 95 of file float.h.

◆ _FPE_STACKUNDERFLOW

#define _FPE_STACKUNDERFLOW   0x8b

Definition at line 96 of file float.h.

◆ _FPE_UNDERFLOW

#define _FPE_UNDERFLOW   0x85

Definition at line 91 of file float.h.

◆ _FPE_UNEMULATED

#define _FPE_UNEMULATED   0x87

Definition at line 93 of file float.h.

◆ _FPE_ZERODIVIDE

#define _FPE_ZERODIVIDE   0x83

Definition at line 89 of file float.h.

◆ _fpecode

#define _fpecode   (*(__fpecode()))

Definition at line 145 of file float.h.

◆ _IC_AFFINE

#define _IC_AFFINE   0x00040000

Definition at line 53 of file float.h.

◆ _IC_PROJECTIVE

#define _IC_PROJECTIVE   0x00000000

Definition at line 54 of file float.h.

◆ _MCW_DN

#define _MCW_DN   0x03000000 /* Denormal */

Definition at line 44 of file float.h.

◆ _MCW_EM

#define _MCW_EM   0x0008001F /* Error masks */

Definition at line 40 of file float.h.

◆ _MCW_IC

#define _MCW_IC   0x00040000 /* Infinity */

Definition at line 41 of file float.h.

◆ _MCW_PC

#define _MCW_PC   0x00030000 /* Precision */

Definition at line 43 of file float.h.

◆ _MCW_RC

#define _MCW_RC   0x00000300 /* Rounding */

Definition at line 42 of file float.h.

◆ _PC_24

#define _PC_24   0x00020000

Definition at line 59 of file float.h.

◆ _PC_53

#define _PC_53   0x00010000

Definition at line 60 of file float.h.

◆ _PC_64

#define _PC_64   0x00000000

Definition at line 61 of file float.h.

◆ _RC_CHOP

#define _RC_CHOP   0x00000300

Definition at line 55 of file float.h.

◆ _RC_DOWN

#define _RC_DOWN   0x00000100

Definition at line 57 of file float.h.

◆ _RC_NEAR

#define _RC_NEAR   0x00000000

Definition at line 58 of file float.h.

◆ _RC_UP

#define _RC_UP   0x00000200

Definition at line 56 of file float.h.

◆ _status87

#define _status87   _statusfp

Definition at line 128 of file float.h.

◆ _SW_SQRTNEG

#define _SW_SQRTNEG   0x0080 /* square root of a neg number */

Definition at line 82 of file float.h.

◆ _SW_STACKOVERFLOW

#define _SW_STACKOVERFLOW   0x0200 /* FP stack overflow */

Definition at line 83 of file float.h.

◆ _SW_STACKUNDERFLOW

#define _SW_STACKUNDERFLOW   0x0400 /* FP stack underflow */

Definition at line 84 of file float.h.

◆ _SW_UNEMULATED

#define _SW_UNEMULATED   0x0040 /* unemulated instruction */

Definition at line 81 of file float.h.

Function Documentation

◆ __fpecode()

Definition at line 16 of file fpecode.c.

17 {
18  return &msvcrt_get_thread_data()->fpecode;
19 }
thread_data_t * msvcrt_get_thread_data(void)
Definition: tls.c:31

◆ _chgsign()

◆ _clearfp()

__MINGW_NOTHROW _CRTIMP unsigned int __cdecl _clearfp ( void  )

Definition at line 18 of file clearfp.c.

19 {
20  unsigned int retVal = _statusfp();
21 #if defined(__GNUC__)
22  __asm__ __volatile__( "fnclex" );
23 #else
24  __asm fnclex;
25 #endif
26  return retVal;
27 }
unsigned int _statusfp(void)
Definition: statfp.c:25
__asm__("\t.globl GetPhys\n" "GetPhys:\t\n" "mflr 0\n\t" "stwu 0,-16(1)\n\t" "mfmsr 5\n\t" "andi. 6,5,0xffef\n\t" "mtmsr 6\n\t" "isync\n\t" "sync\n\t" "lwz 3,0(3)\n\t" "mtmsr 5\n\t" "isync\n\t" "sync\n\t" "lwz 0,0(1)\n\t" "addi 1,1,16\n\t" "mtlr 0\n\t" "blr")

◆ _control87()

__MINGW_NOTHROW _CRTIMP unsigned int __cdecl _control87 ( _In_ unsigned int  unNew,
_In_ unsigned int  unMask 
)

◆ _controlfp()

__MINGW_NOTHROW _CRTIMP unsigned int __cdecl _controlfp ( _In_ unsigned int  unNew,
_In_ unsigned int  unMask 
)

Referenced by __declspec().

◆ _copysign()

◆ _finite()

◆ _fpclass()

◆ _fpreset()

__MINGW_NOTHROW void __cdecl _fpreset ( void  )

Definition at line 13 of file fpreset.c.

14 {
15  const unsigned short x86_cw = 0x27f;
16 #ifdef _MSC_VER
17  __asm { fninit }
18  __asm { fldcw [x86_cw] }
19 #else
20  __asm__ __volatile__( "fninit; fldcw %0" : : "m" (x86_cw) );
21 #endif
23  {
24  const unsigned long sse2_cw = 0x1f80;
25 #ifdef _MSC_VER
26  __asm { ldmxcsr [sse2_cw] }
27 #else
28  __asm__ __volatile__( "ldmxcsr %0" : : "m" (sse2_cw) );
29 #endif
30  }
31 }
__asm__("\t.globl GetPhys\n" "GetPhys:\t\n" "mflr 0\n\t" "stwu 0,-16(1)\n\t" "mfmsr 5\n\t" "andi. 6,5,0xffef\n\t" "mtmsr 6\n\t" "isync\n\t" "sync\n\t" "lwz 3,0(3)\n\t" "mtmsr 5\n\t" "isync\n\t" "sync\n\t" "lwz 0,0(1)\n\t" "addi 1,1,16\n\t" "mtlr 0\n\t" "blr")
BOOL WINAPI IsProcessorFeaturePresent(IN DWORD ProcessorFeature)
Definition: sysinfo.c:168
#define PF_XMMI64_INSTRUCTIONS_AVAILABLE

◆ _isnan()

◆ _logb()

◆ _nextafter()

◆ _scalb()

◆ _statusfp()

__MINGW_NOTHROW _CRTIMP unsigned int __cdecl _statusfp ( void  )

Definition at line 25 of file statfp.c.

26 {
27  unsigned int retVal = 0;
28  unsigned short fpword;
29 
30 #ifdef _M_AMD64
31  fpword = _mm_getcsr();
32 #elif defined(__GNUC__)
33  __asm__ __volatile__( "fstsw %0" : "=m" (fpword) : );
34 #else // _MSC_VER
35  __asm fstsw [fpword];
36 #endif
37  if (fpword & 0x1) retVal |= _SW_INVALID;
38  if (fpword & 0x2) retVal |= _SW_DENORMAL;
39  if (fpword & 0x4) retVal |= _SW_ZERODIVIDE;
40  if (fpword & 0x8) retVal |= _SW_OVERFLOW;
41  if (fpword & 0x10) retVal |= _SW_UNDERFLOW;
42  if (fpword & 0x20) retVal |= _SW_INEXACT;
43  return retVal;
44 }
#define _SW_ZERODIVIDE
Definition: statfp.c:16
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3706
#define _SW_INEXACT
Definition: statfp.c:19
__asm__("\t.globl GetPhys\n" "GetPhys:\t\n" "mflr 0\n\t" "stwu 0,-16(1)\n\t" "mfmsr 5\n\t" "andi. 6,5,0xffef\n\t" "mtmsr 6\n\t" "isync\n\t" "sync\n\t" "lwz 3,0(3)\n\t" "mtmsr 5\n\t" "isync\n\t" "sync\n\t" "lwz 0,0(1)\n\t" "addi 1,1,16\n\t" "mtlr 0\n\t" "blr")
#define _SW_DENORMAL
Definition: statfp.c:20
__INTRIN_INLINE unsigned int _mm_getcsr(void)
Definition: xmmintrin.h:55
#define _SW_UNDERFLOW
Definition: statfp.c:17
#define _SW_INVALID
Definition: statfp.c:15
#define _SW_OVERFLOW
Definition: statfp.c:18
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3706

◆ fpreset()