add declaration of the "double trunc (double _x)" and winsock2.h
This allow to build a windows version of the nimrod compiler.
This commit is contained in:
parent
4b61f7f04b
commit
351e2ec334
1 changed files with 21 additions and 0 deletions
|
@ -597,6 +597,27 @@ extern "C" {
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define FE_TONEAREST 0x0000
|
||||||
|
#define FE_DOWNWARD 0x0400
|
||||||
|
#define FE_UPWARD 0x0800
|
||||||
|
#define FE_TOWARDZERO 0x0c00
|
||||||
|
|
||||||
|
__CRT_INLINE double trunc (double _x)
|
||||||
|
{
|
||||||
|
double retval;
|
||||||
|
unsigned short saved_cw;
|
||||||
|
unsigned short tmp_cw;
|
||||||
|
__asm__ ("fnstcw %0;" : "=m" (saved_cw)); /* save FPU control word */
|
||||||
|
tmp_cw = (saved_cw & ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO))
|
||||||
|
| FE_TOWARDZERO;
|
||||||
|
__asm__ ("fldcw %0;" : : "m" (tmp_cw));
|
||||||
|
__asm__ ("fldl %1;"
|
||||||
|
"frndint;"
|
||||||
|
"fstl %0;" : "=m" (retval) : "m" (_x)); /* round towards zero */
|
||||||
|
__asm__ ("fldcw %0;" : : "m" (saved_cw) ); /* restore saved control word */
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
/* 7.12.9.6 */
|
/* 7.12.9.6 */
|
||||||
/* round away from zero, regardless of fpu control word settings */
|
/* round away from zero, regardless of fpu control word settings */
|
||||||
extern double __cdecl round (double);
|
extern double __cdecl round (double);
|
||||||
|
|
Loading…
Reference in a new issue