Merge pull request #3591 from directhex/mono_libdir_fallback
[mono.git] / mono / dis / util.c
old mode 100644 (file)
new mode 100755 (executable)
index 737f6fd..70f3f6e
 #include <glib.h>
 #include <string.h>
 #include <stdio.h>
+#include <math.h>
 #include "util.h"
+#include "mono/utils/mono-compiler.h"
+
+#ifdef HAVE_IEEEFP_H
+#include <ieeefp.h>
+#endif
 
 /**
  * map:
@@ -122,3 +128,36 @@ data_dump (const char *data, int len, const char* prefix) {
        return g_string_free (str, FALSE);
 }
 
+int
+dis_isinf (double num)
+{
+#ifdef HAVE_ISINF
+       return isinf (num);
+#elif defined(HAVE_IEEEFP_H)
+       fpclass_t klass;
+
+       klass = fpclass (num);
+       if (klass == FP_NINF)
+               return -1;
+
+       if (klass == FP_PINF)
+               return 1;
+
+       return 0;
+#elif defined(HAVE__FINITE)
+       return _finite (num) ? 0 : 1;
+#else
+#error "Don't know how to implement isinf for this platform."
+#endif
+}
+
+int
+dis_isnan (double num)
+{
+#ifdef __MINGW32_VERSION
+return _isnan (num);
+#else
+return isnan (num);
+#endif
+}
+