Mercurial > mxe-octave
comparison src/build-msvctools/math/fpclassify.c @ 3061:f8299bb6c872
Initial support for native MSVC compilation.
* add MSVC support files: compiler wrappers and support libraries
* adapt libiconv to work with MSVC
* adapt gettext to work with MSVC
author | Michael Goffioul <michael.goffioul@gmail.com> |
---|---|
date | Mon, 17 Jun 2013 22:43:11 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
3060:cbdf4575016d | 3061:f8299bb6c872 |
---|---|
1 #include <math.h> | |
2 | |
3 /* 'fxam' sets FPU flags C3,C2,C0 'fstsw' stores: | |
4 FP_NAN 001 0x0100 | |
5 FP_NORMAL 010 0x0400 | |
6 FP_INFINITE 011 0x0500 | |
7 FP_ZERO 100 0x4000 | |
8 FP_SUBNORMAL 110 0x4400 | |
9 | |
10 and sets C1 flag (signbit) if neg */ | |
11 | |
12 int __fpclassify (double _x){ | |
13 unsigned short sw; | |
14 __asm__ ( | |
15 "fxam; fstsw %%ax;" | |
16 : "=a" (sw) | |
17 : "t" (_x) | |
18 ); | |
19 return sw & (FP_NAN | FP_NORMAL | FP_ZERO ); | |
20 } |