X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=ghc%2Fincludes%2FMachDeps.h;h=7d59d986269243799dda9c1a7fdca5fe3121fbe1;hb=eb3badbf26a59e1336fa4d3bef0a413a1a989826;hp=eb8b6d7088d671d2e86bacd3767de11a260ec0d4;hpb=7f309f1c021e7583f724cce599ce2dd3c439361b;p=ghc-hetmet.git diff --git a/ghc/includes/MachDeps.h b/ghc/includes/MachDeps.h index eb8b6d7..7d59d98 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.5 2001/07/19 09:01:40 simonmar Exp $ * * (c) The GRASP/AQUA Project, Glasgow University, 1998 * (c) The GHC Team, 1998-1999 @@ -21,12 +21,41 @@ #define INT_SIZE_IN_BYTES SIZEOF_LONG #define WORD_SIZE_IN_BYTES SIZEOF_LONG -#if SIZEOF_DOUBLE == SIZEOF_VOID_P -#define FLOAT_SIZE_IN_BYTES SIZEOF_DOUBLE -#define DOUBLE_SIZE_IN_BYTES SIZEOF_DOUBLE -#else #define FLOAT_SIZE_IN_BYTES SIZEOF_FLOAT #define DOUBLE_SIZE_IN_BYTES SIZEOF_DOUBLE + +#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