Move more things into compiler-specific headers
This commit has probably broken all compilers except GCC/Clang.
This commit is contained in:
parent
9409096c0a
commit
f72c3e9f02
50
c/scheme.h
50
c/scheme.h
|
@ -15,18 +15,6 @@
|
||||||
//
|
//
|
||||||
// We assume the LP64 convention for 64-bit platforms.
|
// We assume the LP64 convention for 64-bit platforms.
|
||||||
|
|
||||||
#undef BITS32
|
|
||||||
#undef BITS64
|
|
||||||
|
|
||||||
typedef uintptr_t value_t;
|
|
||||||
typedef uintptr_t ufixnum_t;
|
|
||||||
typedef intptr_t fixnum_t;
|
|
||||||
#ifdef BITS64
|
|
||||||
#define T_FIXNUM T_INT64
|
|
||||||
#else
|
|
||||||
#define T_FIXNUM T_INT32
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __DMC__
|
#ifdef __DMC__
|
||||||
#include "scheme_compiler_dmc.h"
|
#include "scheme_compiler_dmc.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -43,19 +31,6 @@ typedef intptr_t fixnum_t;
|
||||||
#include "scheme_compiler_watcomc.h"
|
#include "scheme_compiler_watcomc.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __WATCOMC__
|
|
||||||
typedef float float_t;
|
|
||||||
typedef double double_t;
|
|
||||||
#define __ORDER_BIG_ENDIAN__ 4321
|
|
||||||
#define __ORDER_LITTLE_ENDIAN__ 1234
|
|
||||||
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
|
|
||||||
#define BITS32
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __WATCOMC__
|
|
||||||
#define BITS64
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define LLT_ALLOC(n) malloc(n)
|
#define LLT_ALLOC(n) malloc(n)
|
||||||
#define LLT_REALLOC(p, n) realloc((p), (n))
|
#define LLT_REALLOC(p, n) realloc((p), (n))
|
||||||
#define LLT_FREE(x) free(x)
|
#define LLT_FREE(x) free(x)
|
||||||
|
@ -72,31 +47,6 @@ typedef int bool_t;
|
||||||
|
|
||||||
#define LLT_ALIGN(x, sz) (((x) + (sz - 1)) & (-sz))
|
#define LLT_ALIGN(x, sz) (((x) + (sz - 1)) & (-sz))
|
||||||
|
|
||||||
// branch prediction annotations
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#define __unlikely(x) __builtin_expect(!!(x), 0)
|
|
||||||
#define __likely(x) __builtin_expect(!!(x), 1)
|
|
||||||
#else
|
|
||||||
#define __unlikely(x) (x)
|
|
||||||
#define __likely(x) (x)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define DBL_MAXINT 9007199254740992LL
|
|
||||||
#define FLT_MAXINT 16777216
|
|
||||||
#define U64_MAX 18446744073709551615ULL
|
|
||||||
#define S64_MAX 9223372036854775807LL
|
|
||||||
#define S64_MIN (-S64_MAX - 1LL)
|
|
||||||
#define BIT63 0x8000000000000000LL
|
|
||||||
#define BIT31 0x80000000
|
|
||||||
|
|
||||||
#define LOG2_10 3.3219280948873626
|
|
||||||
#define sign_bit(r) ((*(int64_t *)&(r)) & BIT63)
|
|
||||||
#define LABS(n) (((n) ^ ((n) >> (NBITS - 1))) - ((n) >> (NBITS - 1)))
|
|
||||||
#define NBABS(n, nb) (((n) ^ ((n) >> ((nb)-1))) - ((n) >> ((nb)-1)))
|
|
||||||
#define DFINITE(d) \
|
|
||||||
(((*(int64_t *)&(d)) & 0x7ff0000000000000LL) != 0x7ff0000000000000LL)
|
|
||||||
#define DNAN(d) ((d) != (d))
|
|
||||||
|
|
||||||
extern double D_PNAN;
|
extern double D_PNAN;
|
||||||
extern double D_NNAN;
|
extern double D_NNAN;
|
||||||
extern double D_PINF;
|
extern double D_PINF;
|
||||||
|
|
|
@ -1,3 +1,13 @@
|
||||||
|
typedef uintptr_t value_t;
|
||||||
|
typedef uintptr_t ufixnum_t;
|
||||||
|
typedef intptr_t fixnum_t;
|
||||||
|
|
||||||
|
#ifdef BITS64
|
||||||
|
#define T_FIXNUM T_INT64
|
||||||
|
#else
|
||||||
|
#define T_FIXNUM T_INT32
|
||||||
|
#endif
|
||||||
|
|
||||||
void DivideByZeroError(void) __attribute__((__noreturn__));
|
void DivideByZeroError(void) __attribute__((__noreturn__));
|
||||||
|
|
||||||
void lerrorf(value_t e, const char *format, ...)
|
void lerrorf(value_t e, const char *format, ...)
|
||||||
|
@ -12,3 +22,28 @@ __attribute__((__noreturn__));
|
||||||
|
|
||||||
void bounds_error(const char *fname, value_t arr, value_t ind)
|
void bounds_error(const char *fname, value_t arr, value_t ind)
|
||||||
__attribute__((__noreturn__));
|
__attribute__((__noreturn__));
|
||||||
|
|
||||||
|
// branch prediction annotations
|
||||||
|
#ifdef __GNUC__
|
||||||
|
#define __unlikely(x) __builtin_expect(!!(x), 0)
|
||||||
|
#define __likely(x) __builtin_expect(!!(x), 1)
|
||||||
|
#else
|
||||||
|
#define __unlikely(x) (x)
|
||||||
|
#define __likely(x) (x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define DBL_MAXINT 9007199254740992LL
|
||||||
|
#define FLT_MAXINT 16777216
|
||||||
|
#define U64_MAX 18446744073709551615ULL
|
||||||
|
#define S64_MAX 9223372036854775807LL
|
||||||
|
#define S64_MIN (-S64_MAX - 1LL)
|
||||||
|
#define BIT63 0x8000000000000000LL
|
||||||
|
#define BIT31 0x80000000
|
||||||
|
|
||||||
|
#define LOG2_10 3.3219280948873626
|
||||||
|
#define sign_bit(r) ((*(int64_t *)&(r)) & BIT63)
|
||||||
|
#define LABS(n) (((n) ^ ((n) >> (NBITS - 1))) - ((n) >> (NBITS - 1)))
|
||||||
|
#define NBABS(n, nb) (((n) ^ ((n) >> ((nb)-1))) - ((n) >> ((nb)-1)))
|
||||||
|
#define DFINITE(d) \
|
||||||
|
(((*(int64_t *)&(d)) & 0x7ff0000000000000LL) != 0x7ff0000000000000LL)
|
||||||
|
#define DNAN(d) ((d) != (d))
|
||||||
|
|
|
@ -1,3 +1,12 @@
|
||||||
|
#ifdef __WATCOMC__
|
||||||
|
typedef float float_t;
|
||||||
|
typedef double double_t;
|
||||||
|
#define __ORDER_BIG_ENDIAN__ 4321
|
||||||
|
#define __ORDER_LITTLE_ENDIAN__ 1234
|
||||||
|
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
|
||||||
|
#define BITS32
|
||||||
|
#endif
|
||||||
|
|
||||||
#pragma aux DivideByZeroError aborts;
|
#pragma aux DivideByZeroError aborts;
|
||||||
extern void DivideByZeroError(void);
|
extern void DivideByZeroError(void);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue