X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fruntime.h;h=fec8c7789500652633d1625a54a38e552ad4db9d;hb=3c25a14fa1f4c7f063babed8ef0a1a5d335298c6;hp=4d7ab2ec13feda804a9ce4ac0527a9e69603be76;hpb=e26e24ac5b2c744fc5104f7123c5ddcf884dca02;p=sbcl.git diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h index 4d7ab2e..fec8c77 100644 --- a/src/runtime/runtime.h +++ b/src/runtime/runtime.h @@ -199,14 +199,25 @@ extern sigset_t blockable_sigset; /* even on alpha, int happens to be 4 bytes. long is longer. */ /* FIXME: these names really shouldn't reflect their length and this is not quite right for some of the FFI stuff */ +#if defined(LISP_FEATURE_WIN32)&&defined(LISP_FEATURE_X86_64) +typedef unsigned long long u64; +typedef signed long long s64; +#else typedef unsigned long u64; typedef signed long s64; +#endif typedef unsigned int u32; typedef signed int s32; /* this is an integral type the same length as a machine pointer */ typedef uintptr_t pointer_sized_uint_t; +#ifdef _WIN64 +#define AMD64_SYSV_ABI __attribute__((sysv_abi)) +#else +#define AMD64_SYSV_ABI +#endif + #include #if defined(LISP_FEATURE_SB_THREAD) @@ -243,7 +254,7 @@ widetag_of(lispobj obj) return obj & WIDETAG_MASK; } -static inline unsigned long +static inline uword_t HeaderValue(lispobj obj) { return obj >> N_WIDETAG_BITS; @@ -312,12 +323,12 @@ make_lispobj(void *o, int low_tag) #define MAKE_FIXNUM(n) (n << N_FIXNUM_TAG_BITS) static inline lispobj -make_fixnum(long n) +make_fixnum(sword_t n) { return MAKE_FIXNUM(n); } -static inline long +static inline sword_t fixnum_value(lispobj n) { return n >> N_FIXNUM_TAG_BITS;