update orcfunctions.c
authorDavid Schleef <ds@schleef.org>
Tue, 27 Jul 2010 23:55:42 +0000 (16:55 -0700)
committerDavid Schleef <ds@schleef.org>
Wed, 28 Jul 2010 08:01:11 +0000 (01:01 -0700)
orc/orcfunctions.c
orc/orcfunctions.h

index 0cec4ea..14c8ea1 100644 (file)
@@ -6,9 +6,12 @@
 #endif
 #ifndef DISABLE_ORC
 #include <orc/orc.h>
-#else
-/* begin Orc C target preamble */
-#if defined(__STDC__) && __STDC__ && __STDC_VERSION__ >= 199901L
+#endif
+#include <math.h>
+
+#ifndef _ORC_INTEGER_TYPEDEFS_
+#define _ORC_INTEGER_TYPEDEFS_
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
 #include <stdint.h>
 typedef int8_t orc_int8;
 typedef int16_t orc_int16;
@@ -45,6 +48,13 @@ typedef unsigned long orc_uint64;
 #endif
 typedef union { orc_int32 i; float f; } orc_union32;
 typedef union { orc_int64 i; double f; } orc_union64;
+#endif
+
+void orc_memcpy (void * d1, const void * s1, int n);
+void orc_memset (void * d1, int p1, int n);
+
+
+/* begin Orc C target preamble */
 #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
 #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
 #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
@@ -70,11 +80,11 @@ typedef union { orc_int64 i; double f; } orc_union64;
 #define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))
 #define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))
 #define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
+#define ORC_MIN_NORMAL (1.1754944909521339405e-38)
+#define ORC_DENORMAL(x) (((x) > -ORC_MIN_NORMAL && (x) < ORC_MIN_NORMAL) ? ((x)<0 ? (-0.0f) : (0.0f)) : (x))
+#define ORC_MINF(a,b) (isnan(a) ? a : isnan(b) ? b : ((a)<(b)) ? (a) : (b))
+#define ORC_MAXF(a,b) (isnan(a) ? a : isnan(b) ? b : ((a)>(b)) ? (a) : (b))
 /* end Orc C target preamble */
-#endif
-
-void orc_memcpy (void * d1, const void * s1, int n);
-void orc_memset (void * d1, int p1, int n);
 
 
 
@@ -172,7 +182,7 @@ orc_memset (void * d1, int p1, int n){
   int i;
   orc_int8 var0;
   orc_int8 * ptr0;
-  const orc_int8 var24 = p1;
+  const int var24 = p1;
 
   ptr0 = (orc_int8 *)d1;
 
@@ -193,7 +203,7 @@ _backup_orc_memset (OrcExecutor *ex)
   int n = ex->n;
   orc_int8 var0;
   orc_int8 * ptr0;
-  const orc_int8 var24 = ex->params[24];
+  const int var24 = ex->params[24];
 
   ptr0 = (orc_int8 *)ex->arrays[0];
 
index ad8c1f8..684c17e 100644 (file)
@@ -9,6 +9,47 @@
 extern "C" {
 #endif
 
+#ifndef _ORC_INTEGER_TYPEDEFS_
+#define _ORC_INTEGER_TYPEDEFS_
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#include <stdint.h>
+typedef int8_t orc_int8;
+typedef int16_t orc_int16;
+typedef int32_t orc_int32;
+typedef int64_t orc_int64;
+typedef uint8_t orc_uint8;
+typedef uint16_t orc_uint16;
+typedef uint32_t orc_uint32;
+typedef uint64_t orc_uint64;
+#elif defined(_MSC_VER)
+typedef signed __int8 orc_int8;
+typedef signed __int16 orc_int16;
+typedef signed __int32 orc_int32;
+typedef signed __int64 orc_int64;
+typedef unsigned __int8 orc_uint8;
+typedef unsigned __int16 orc_uint16;
+typedef unsigned __int32 orc_uint32;
+typedef unsigned __int64 orc_uint64;
+#else
+#include <limits.h>
+typedef signed char orc_int8;
+typedef short orc_int16;
+typedef int orc_int32;
+typedef unsigned char orc_uint8;
+typedef unsigned short orc_uint16;
+typedef unsigned int orc_uint32;
+#if INT_MAX == LONG_MAX
+typedef long long orc_int64;
+typedef unsigned long long orc_uint64;
+#else
+typedef long orc_int64;
+typedef unsigned long orc_uint64;
+#endif
+#endif
+typedef union { orc_int32 i; float f; } orc_union32;
+typedef union { orc_int64 i; double f; } orc_union64;
+#endif
+
 void orc_memcpy (void * d1, const void * s1, int n);
 void orc_memset (void * d1, int p1, int n);