diff options
Diffstat (limited to 'winsup/mingw/mingwex/math/llroundl.c')
-rw-r--r-- | winsup/mingw/mingwex/math/llroundl.c | 22 |
1 files changed, 0 insertions, 22 deletions
diff --git a/winsup/mingw/mingwex/math/llroundl.c b/winsup/mingw/mingwex/math/llroundl.c deleted file mode 100644 index ad334fb2c..000000000 --- a/winsup/mingw/mingwex/math/llroundl.c +++ /dev/null @@ -1,22 +0,0 @@ -#include <fenv.h> -#include <math.h> - -long long -llroundl (long double x) { - long long retval; - unsigned short saved_cw, _cw; - __asm__ ( - "fnstcw %0;" : "=m" (saved_cw) - ); /* save control word */ - _cw = ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO) - | (x > 0.0 ? FE_UPWARD : FE_DOWNWARD); /* round away from zero */ - __asm__ ( - "fldcw %0;" : : "m" (_cw) - ); /* load the rounding control */ - __asm__ __volatile__ ( - "fistpll %0" : "=m" (retval) : "t" (x) : "st"); - __asm__ ( - "fldcw %0;" : : "m" (saved_cw) - ); /* restore control word */ - return retval; -} |