diff --git a/ghc/includes/MachDeps.h b/ghc/includes/MachDeps.h index eb8b6d7088d671d2e86bacd3767de11a260ec0d4..48c54e8ac1cf8e085824e61ff31941308f93ff70 100644 --- a/ghc/includes/MachDeps.h +++ b/ghc/includes/MachDeps.h @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: MachDeps.h,v 1.3 1999/02/05 16:02:23 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 @@ -29,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