X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=ghc%2Fincludes%2FMachDeps.h;h=48c54e8ac1cf8e085824e61ff31941308f93ff70;hb=cdea314fdd4fbe667692985fb385d789be1fbdd8;hp=1b52fd043a6f1bbd39b4147a892d6abaf0970c2d;hpb=438596897ebbe25a07e1c82085cfbc5bdb00f09e;p=ghc-hetmet.git diff --git a/ghc/includes/MachDeps.h b/ghc/includes/MachDeps.h index 1b52fd0..48c54e8 100644 --- a/ghc/includes/MachDeps.h +++ b/ghc/includes/MachDeps.h @@ -1,7 +1,8 @@ /* ----------------------------------------------------------------------------- - * $Id: MachDeps.h,v 1.2 1998/12/02 13:21:12 simonm Exp $ + * $Id: MachDeps.h,v 1.4 2000/01/25 14:39:14 panne Exp $ * * (c) The GRASP/AQUA Project, Glasgow University, 1998 + * (c) The GHC Team, 1998-1999 * * Definitions that characterise machine specific properties of basic * Stg types provided as unboxed types (mirrors the typedefs in @@ -28,4 +29,38 @@ #define DOUBLE_SIZE_IN_BYTES SIZEOF_DOUBLE #endif +#define SIZEOF_INT8 SIZEOF_CHAR +#define ALIGNMENT_INT8 ALIGNMENT_CHAR +#define SIZEOF_WORD8 SIZEOF_UNSIGNED_CHAR +#define ALIGNMENT_WORD8 ALIGNMENT_UNSIGNED_CHAR + +#define SIZEOF_INT16 SIZEOF_SHORT +#define ALIGNMENT_INT16 ALIGNMENT_SHORT +#define SIZEOF_WORD16 SIZEOF_UNSIGNED_SHORT +#define ALIGNMENT_WORD16 ALIGNMENT_UNSIGNED_SHORT + +#if SIZEOF_UNSIGNED_INT == 4 +#define SIZEOF_INT32 ALIGNMENT_INT +#define ALIGNMENT_INT32 SIZEOF_INT +#define SIZEOF_WORD32 ALIGNMENT_UNSIGNED_INT +#define ALIGNMENT_WORD32 SIZEOF_UNSIGNED_INT +#else +#error GHC untested on this architecture: sizeof(unsigned int) != 4 +#endif + +#if HAVE_LONG_LONG && SIZEOF_VOID_P < 8 +/* assume long long is 64 bits */ +#define SIZEOF_INT64 SIZEOF_LONG_LONG +#define ALIGNMENT_INT64 ALIGNMENT_LONG_LONG +#define SIZEOF_WORD64 SIZEOF_UNSIGNED_LONG_LONG +#define ALIGNMENT_WORD64 ALIGNMENT_UNSIGNED_LONG_LONG +#elif SIZEOF_LONG == 8 +#define SIZEOF_INT64 SIZEOF_LONG +#define ALIGNMENT_INT64 ALIGNMENT_LONG +#define SIZEOF_WORD64 SIZEOF_UNSIGNED_LONG +#define ALIGNMENT_WORD64 ALIGNMENT_UNSIGNED_LONG +#else +#error GHC untested on this architecture: sizeof(void *) < 8 and no long longs. +#endif + #endif