mirror of
https://github.com/Interlisp/maiko.git
synced 2026-04-25 12:01:46 +00:00
Clean up \#ifdefs. Add entry for FPTEST/FPCLEAR for MacOS and FreeBSD
This commit is contained in:
@@ -24,6 +24,7 @@
|
|||||||
#ifdef DOS
|
#ifdef DOS
|
||||||
#include <i32.h>
|
#include <i32.h>
|
||||||
#endif /* DOS */
|
#endif /* DOS */
|
||||||
|
|
||||||
#ifdef ULTRIX
|
#ifdef ULTRIX
|
||||||
#include <ieeefp.h>
|
#include <ieeefp.h>
|
||||||
#endif /* ULTRIX */
|
#endif /* ULTRIX */
|
||||||
@@ -67,18 +68,15 @@ volatile extern int FP_error;
|
|||||||
For sparc, should also check for isnan? Don't know what isnormal
|
For sparc, should also check for isnan? Don't know what isnormal
|
||||||
& issubnormal do (these are sunos4.0 only)
|
& issubnormal do (these are sunos4.0 only)
|
||||||
*/
|
*/
|
||||||
|
#if defined(OS5)
|
||||||
#ifdef OS5
|
|
||||||
|
|
||||||
#define FPCLEAR
|
#define FPCLEAR
|
||||||
#define FPTEST(result) (!finite(result))
|
#define FPTEST(result) (!finite(result))
|
||||||
|
|
||||||
#elif (defined(sparc) || defined(I386) || defined(HPUX))
|
#elif (defined(sparc) || defined(I386) || defined(HPUX))
|
||||||
|
|
||||||
#define FPCLEAR
|
#define FPCLEAR
|
||||||
#define FPTEST(result) (isinf(result) || isnan(result))
|
#define FPTEST(result) (isinf(result) || isnan(result))
|
||||||
|
|
||||||
#elif APOLLO
|
#elif defined(APOLLO)
|
||||||
/**********************************************************/
|
/**********************************************************/
|
||||||
/* Need values.h & nan.h, so we all parts of IsNANorINF */
|
/* Need values.h & nan.h, so we all parts of IsNANorINF */
|
||||||
/* are defined. IsNANorINF uses structure aliasing to */
|
/* are defined. IsNANorINF uses structure aliasing to */
|
||||||
@@ -92,23 +90,28 @@ volatile extern int FP_error;
|
|||||||
#undef REGISTER
|
#undef REGISTER
|
||||||
#define REGISTER
|
#define REGISTER
|
||||||
|
|
||||||
#elif OSF1
|
#elif defined(OSF1)
|
||||||
#include <fp.h>
|
#include <fp.h>
|
||||||
#define FPCLEAR
|
#define FPCLEAR
|
||||||
#define FPTEST(result) (!FINITE(result))
|
#define FPTEST(result) (!FINITE(result))
|
||||||
|
|
||||||
|
#elif defined(INDIGO)
|
||||||
#elif INDIGO
|
|
||||||
#include <nan.h>
|
#include <nan.h>
|
||||||
#define FPCLEAR
|
#define FPCLEAR
|
||||||
#define FPTEST(result) (IsNANorINF(result))
|
#define FPTEST(result) (IsNANorINF(result))
|
||||||
#else
|
|
||||||
#ifdef AIX
|
#elif defined(AIX)
|
||||||
#define FPCLEAR
|
#define FPCLEAR
|
||||||
#define FPTEST(result) ((!finite(result)) || isnan(result))
|
#define FPTEST(result) ((!finite(result)) || isnan(result))
|
||||||
#elif DOS
|
|
||||||
|
#elif defined(MACOSX) || defined(FREEBSD)
|
||||||
|
#define FPCLEAR
|
||||||
|
#define FPTEST(result) (!finite(result))
|
||||||
|
|
||||||
|
#elif defined(DOS)
|
||||||
#define FPCLEAR
|
#define FPCLEAR
|
||||||
#define FPTEST(result) (_getrealerror() & ( I87_ZERO_DIVIDE | I87_OVERFLOW | I87_UNDERFLOW))
|
#define FPTEST(result) (_getrealerror() & ( I87_ZERO_DIVIDE | I87_OVERFLOW | I87_UNDERFLOW))
|
||||||
|
|
||||||
#else
|
#else
|
||||||
static int constant0 = 0;
|
static int constant0 = 0;
|
||||||
unsigned int fpstatus_();
|
unsigned int fpstatus_();
|
||||||
@@ -116,10 +119,7 @@ unsigned int fpstatus_();
|
|||||||
#define FPCLEAR fpstatus_(&constant0);
|
#define FPCLEAR fpstatus_(&constant0);
|
||||||
#define FPTEST(result) (fpstatus_(&constant0) & 0xF0)
|
#define FPTEST(result) (fpstatus_(&constant0) & 0xF0)
|
||||||
|
|
||||||
#endif /* AIX */
|
#endif
|
||||||
|
|
||||||
#endif /* sparc | I386 */
|
|
||||||
|
|
||||||
#endif /* FLTINT */
|
#endif /* FLTINT */
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user