#undef HAVE_LONGLONG
#endif
#endif
- #if defined(HAVE_LONGLONG) && (defined(__alpha__) || defined(__ia64__) || defined(__mips64__) || defined(__powerpc64__) || defined(__sparc64__) || defined(__x86_64__))
+ #if defined(HAVE_LONGLONG) && (defined(__alpha__) || defined(__ia64__) || defined(__mips64__) || defined(__powerpc64__) || defined(__s390x__) || (defined(__sparc__) && defined(__arch64__)) || defined(__x86_64__))
// 64 bit registers in hardware
#define HAVE_FAST_LONGLONG
#endif
typedef uint64 uintQ;
#endif
-// Boolean type.
-#if 1
- typedef enum { cl_false = 0, cl_true = 1 }
- cl_boolean;
-#else
- typedef bool cl_boolean;
- #define cl_false 0
- #define cl_true 1
-#endif
-
// Type for three values (0, +1, -1).
typedef int cl_signean;
#define signean_plus 1
#define signean_minus -1
// Integer type used for counters.
- #if (defined(HAVE_FAST_LONGLONG) && (defined(__alpha__) || defined(__ia64__) || defined(__powerpc64__) || defined(__x86_64__)))
+// Constraint: sizeof(uintC) >= sizeof(uintL)
+ #if (defined(HAVE_FAST_LONGLONG) && (defined(__alpha__) || defined(__ia64__) || defined(__powerpc64__) || defined(__s390x__) || (defined(__sparc__) && defined(__arch64__)) || defined(__x86_64__)))
#define intCsize long_bitsize
typedef long sintC;
typedef unsigned long uintC;
typedef unsigned int uintC;
#endif
+// Integer type used for lfloat exponents.
+// Constraint: sizeof(uintE) >= sizeof(uintC)
+#if (defined(HAVE_LONGLONG) && (defined(__alpha__) || defined(__ia64__) || defined(__powerpc64__) || defined(__s390x__) || (defined(__sparc__) && defined(__arch64__)) || defined(__x86_64__) || defined(__i386__) || defined(__mips__) || defined(__rs6000__)))
+ #define intEsize 64
+ typedef sint64 sintE;
+ typedef uint64 uintE;
+ #else
+ #define intEsize 32
+ typedef sint32 sintE;
+ typedef uint32 uintE;
+ #endif
+
// Integer type as large as a pointer.
// Assumption: sizeof(long) == sizeof(void*)
#define intPsize long_bitsize
typedef long sintP;
typedef unsigned long uintP;
+// Integer type used for the value of a fixnum.
+ #define intVsize long_bitsize
+ typedef long sintV;
+ typedef unsigned long uintV;
+
// Numbers in the heap are stored as "digit" sequences.
// A digit is an unsigned int with intDsize bits.
// intDsize should be 8 or 16 or 32 or 64 and it should match mp_limb_t,
typedef int sintD;
typedef unsigned int uintD;
#else // we are not using GMP, so just guess something reasonable
- #if (defined(HAVE_FAST_LONGLONG) && (defined(__alpha__) || defined(__ia64__) || defined(__powerpc64__) || defined(__x86_64__)))
+ #if (defined(HAVE_FAST_LONGLONG) && (defined(__alpha__) || defined(__ia64__) || defined(__powerpc64__) || (defined(__sparc__) && defined(__arch64__)) || defined(__s390x__) || defined(__x86_64__)))
#define intDsize 64
typedef sint64 sintD;
typedef uint64 uintD;